witan-code 0.2.0__tar.gz → 0.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. {witan_code-0.2.0 → witan_code-0.2.1}/PKG-INFO +2 -2
  2. {witan_code-0.2.0 → witan_code-0.2.1}/pyproject.toml +19 -2
  3. {witan_code-0.2.0 → witan_code-0.2.1}/uv.lock +34 -38
  4. {witan_code-0.2.0 → witan_code-0.2.1}/.gitignore +0 -0
  5. {witan_code-0.2.0 → witan_code-0.2.1}/README.md +0 -0
  6. {witan_code-0.2.0 → witan_code-0.2.1}/config/claude.json +0 -0
  7. {witan_code-0.2.0 → witan_code-0.2.1}/config/copilot.json +0 -0
  8. {witan_code-0.2.0 → witan_code-0.2.1}/config/pi.json +0 -0
  9. {witan_code-0.2.0 → witan_code-0.2.1}/docs/BRANCH_INDEXING.md +0 -0
  10. {witan_code-0.2.0 → witan_code-0.2.1}/docs/CLI_REFERENCE.md +0 -0
  11. {witan_code-0.2.0 → witan_code-0.2.1}/docs/EDGE_PRECISION_TIERS.md +0 -0
  12. {witan_code-0.2.0 → witan_code-0.2.1}/docs/PACKAGE_MAP.md +0 -0
  13. {witan_code-0.2.0 → witan_code-0.2.1}/docs/STAGE2_STITCHING.md +0 -0
  14. {witan_code-0.2.0 → witan_code-0.2.1}/docs/SYMBOL_FORMAT.md +0 -0
  15. {witan_code-0.2.0 → witan_code-0.2.1}/docs/SYMBOL_TABLE.md +0 -0
  16. {witan_code-0.2.0 → witan_code-0.2.1}/docs/USER_GUIDE.md +0 -0
  17. {witan_code-0.2.0 → witan_code-0.2.1}/install.sh +0 -0
  18. {witan_code-0.2.0 → witan_code-0.2.1}/queries/code_mutations.gq +0 -0
  19. {witan_code-0.2.0 → witan_code-0.2.1}/queries/code_read.gq +0 -0
  20. {witan_code-0.2.0 → witan_code-0.2.1}/tests/__init__.py +0 -0
  21. {witan_code-0.2.0 → witan_code-0.2.1}/tests/conftest.py +0 -0
  22. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_branches.py +0 -0
  23. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_bridge.py +0 -0
  24. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_cli_hooks.py +0 -0
  25. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_context.py +0 -0
  26. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_crossrepo.py +0 -0
  27. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_detach.py +0 -0
  28. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_edges.py +0 -0
  29. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_elicit.py +0 -0
  30. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_enrichment.py +0 -0
  31. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_graph.py +0 -0
  32. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_hooks.py +0 -0
  33. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_indexer.py +0 -0
  34. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_languages.py +0 -0
  35. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_maintenance.py +0 -0
  36. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_package_map.py +0 -0
  37. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_repo.py +0 -0
  38. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_server.py +0 -0
  39. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_setup.py +0 -0
  40. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_stitch.py +0 -0
  41. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_symbol_table.py +0 -0
  42. {witan_code-0.2.0 → witan_code-0.2.1}/tests/test_visualize.py +0 -0
  43. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/__init__.py +0 -0
  44. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/__main__.py +0 -0
  45. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/_detach.py +0 -0
  46. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/bridge.py +0 -0
  47. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/bridge_extractors.py +0 -0
  48. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/cli.py +0 -0
  49. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/config.py +0 -0
  50. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/context.py +0 -0
  51. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/edges.py +0 -0
  52. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/elicit.py +0 -0
  53. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/extensions/pi/codegraph.ts +0 -0
  54. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/graph.py +0 -0
  55. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/hooks.py +0 -0
  56. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/indexer.py +0 -0
  57. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/maintenance.py +0 -0
  58. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/package_map.py +0 -0
  59. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/queries/bridge.gq +0 -0
  60. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/queries/code_mutations.gq +0 -0
  61. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/queries/code_read.gq +0 -0
  62. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/queries/delete.gq +0 -0
  63. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/queries_ts/bash.scm +0 -0
  64. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/queries_ts/hcl.scm +0 -0
  65. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/queries_ts/python.scm +0 -0
  66. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/queries_ts/sql.scm +0 -0
  67. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/queries_ts/typescript.scm +0 -0
  68. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/queries_ts/yaml.scm +0 -0
  69. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/repo.py +0 -0
  70. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/schema/bridge-schema.pg +0 -0
  71. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/schema/code-schema.pg +0 -0
  72. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/server.py +0 -0
  73. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/setup.py +0 -0
  74. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/skills/witan-code/SKILL.md +0 -0
  75. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/stitch.py +0 -0
  76. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/store.py +0 -0
  77. {witan_code-0.2.0 → witan_code-0.2.1}/witan_code/visualize.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: witan-code
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: witan-code — tree-sitter code graph + cross-repo bridge (mounts under `witan code`)
5
5
  Project-URL: Homepage, https://github.com/mitodl/agent-kit/tree/main/mcp/servers/witan-code
6
6
  Project-URL: Repository, https://github.com/mitodl/agent-kit
@@ -22,7 +22,7 @@ Requires-Dist: tree-sitter-python<0.26,>=0.25
22
22
  Requires-Dist: tree-sitter-sql<0.4,>=0.3
23
23
  Requires-Dist: tree-sitter-typescript<0.24,>=0.23
24
24
  Requires-Dist: tree-sitter-yaml<0.8,>=0.7
25
- Requires-Dist: tree-sitter<0.27,>=0.26
25
+ Requires-Dist: tree-sitter<0.26,>=0.25
26
26
  Description-Content-Type: text/markdown
27
27
 
28
28
  # witan-code
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "witan-code"
3
- version = "0.2.0"
3
+ version = "0.2.1"
4
4
  description = "witan-code — tree-sitter code graph + cross-repo bridge (mounts under `witan code`)"
5
5
  readme = "README.md"
6
6
  license = "BSD-3-Clause"
@@ -13,7 +13,15 @@ dependencies = [
13
13
  "agent-config-kit>=0.1,<1",
14
14
  "fastmcp>=3.4.2,<4",
15
15
  "cyclopts>=4,<5",
16
- "tree-sitter>=0.26,<0.27",
16
+ # Pinned to 0.25.x: tree-sitter 0.26.0 has a use-after-free in its pyo3 Node
17
+ # binding that segfaults (exit 139) under the heavy .parent()/.children()
18
+ # churn _walk_defs does on real-world-sized files — deterministically on the
19
+ # 2nd-3rd parse in one process, so `witan-code index` on any real repo hard-
20
+ # crashes. 0.25.0/0.25.1/0.25.2 are all crash-free with the same ABI-15
21
+ # grammar wheels (0.24 rejects them: needs ABI 15 => ts>=0.24). Do NOT bump
22
+ # to 0.26 until upstream fixes this. See tk-critical-indexer-segfaults and
23
+ # https://github.com/tree-sitter/py-tree-sitter/issues/472 (upstream report).
24
+ "tree-sitter>=0.25,<0.26",
17
25
  # Individual grammar wheels (not tree-sitter-language-pack): each returns a
18
26
  # standalone tree_sitter.Language usable with tree_sitter.Parser/Query. Pins
19
27
  # are tight on purpose — a grammar major can bump the ABI / binding (see the
@@ -53,6 +61,15 @@ testpaths = ["tests"]
53
61
  [tool.hatch.build.targets.wheel]
54
62
  packages = ["witan_code"]
55
63
 
64
+ [tool.bumpversion]
65
+ current_version = "0.2.1"
66
+ allow_dirty = true
67
+
68
+ [[tool.bumpversion.files]]
69
+ filename = "pyproject.toml"
70
+ search = 'version = "{current_version}"'
71
+ replace = 'version = "{new_version}"'
72
+
56
73
  # witan_code/queries/, witan_code/schema/, witan_code/queries_ts/,
57
74
  # witan_code/skills/, and witan_code/extensions/ are all discovered
58
75
  # automatically via packages = ["witan_code"] — including for a
@@ -1285,42 +1285,38 @@ wheels = [
1285
1285
 
1286
1286
  [[package]]
1287
1287
  name = "tree-sitter"
1288
- version = "0.26.0"
1289
- source = { registry = "https://pypi.org/simple" }
1290
- sdist = { url = "https://files.pythonhosted.org/packages/f7/03/5600b84aff2e6c4fe80cfebb4063fe2f50299521befe5f6092ab8c082f4a/tree_sitter-0.26.0.tar.gz", hash = "sha256:b40c219edccc4564530c96f8f1556f6202b37cda964d1cbd7bd2b7e68b40a245", size = 191423, upload-time = "2026-06-30T12:14:27.933Z" }
1291
- wheels = [
1292
- { url = "https://files.pythonhosted.org/packages/41/18/78aae7e4b5a36daaebb0276e4b07d084d45298758000787838e89329e11f/tree_sitter-0.26.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1d6fe0e8fb4df77b5ee816228e2c4475a63d8cc1d4d3a7ffd7097b2b87fc3e95", size = 148679, upload-time = "2026-06-30T12:13:52.27Z" },
1293
- { url = "https://files.pythonhosted.org/packages/24/e4/b371b9553b0e47d130fc2073e56cab94fecc868be04666bf5bbd1fcd1cc9/tree_sitter-0.26.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:514a9bf8993e5210e7970736aaf6020d1759b670e195ef17b1c48f586aa30736", size = 140759, upload-time = "2026-06-30T12:13:53.221Z" },
1294
- { url = "https://files.pythonhosted.org/packages/22/7d/266fb0f2c41e6fb00b0f40e7a3338cdf99651e6a6511ca72bc78fc697636/tree_sitter-0.26.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10f0d4eb94aa7242dcb7f554bcd24dd7ba1c114f00d58759ba08c7a46c8ec51a", size = 637206, upload-time = "2026-06-30T12:13:54.334Z" },
1295
- { url = "https://files.pythonhosted.org/packages/40/9f/47cf22febb47132d5b3a507a27bb99ef89fe5c8ec420a13c6daa9b64f782/tree_sitter-0.26.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:335294ce0504fcefde5245dff596778ffaf820205b98ae0b549c72e48855f1d8", size = 664758, upload-time = "2026-06-30T12:13:55.42Z" },
1296
- { url = "https://files.pythonhosted.org/packages/4c/4d/8d144ca3beb46a62a5102b6deac76bb0da55235c2c7840faf3b12f2e9d97/tree_sitter-0.26.0-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f9997ba61368c48ed54e715676afadf703947a1542464e39d047764fb3624b01", size = 647438, upload-time = "2026-06-30T12:13:56.523Z" },
1297
- { url = "https://files.pythonhosted.org/packages/4d/ed/ed1d6e78520c4fb64ed52fec3f2947bf8c1fbad7bc24e282c56193c9ba42/tree_sitter-0.26.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c56581ad256c4195a21bfe449fed5d44a02fe83a4a7d6e70e6ec302c881191c7", size = 661944, upload-time = "2026-06-30T12:13:57.82Z" },
1298
- { url = "https://files.pythonhosted.org/packages/10/83/45f5bd43db1b8248d2fd08ef6cbe43e2725c539e09a2cfb8bc2818646788/tree_sitter-0.26.0-cp311-cp311-win_amd64.whl", hash = "sha256:0f8793fd18ad7eec276ed4b51c097b4bf2002b357259b66b0d75db1f3f41c754", size = 129496, upload-time = "2026-06-30T12:13:59.216Z" },
1299
- { url = "https://files.pythonhosted.org/packages/f1/8d/be68e6c04563eb54145424cc83fe0aa8b0ba6c90d8989cf8a032671b5f16/tree_sitter-0.26.0-cp311-cp311-win_arm64.whl", hash = "sha256:dea4b4e27d49e9ec5b785d4f994da000e6726882fcc6ad05ec98478500c71aef", size = 116484, upload-time = "2026-06-30T12:14:00.147Z" },
1300
- { url = "https://files.pythonhosted.org/packages/87/ca/565702c44815393e3a973552ad546db4e5ca081ca8698640b4e93d809f51/tree_sitter-0.26.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6cb2bd20efb2544c19ac54486ab7cb8ec7b36f913bbe1ce95df84acb96743d9c", size = 148934, upload-time = "2026-06-30T12:14:01.188Z" },
1301
- { url = "https://files.pythonhosted.org/packages/54/6f/8bb61957f16ec1b1d92410a006cdc84a952b6352a7313b2ad299f2d21484/tree_sitter-0.26.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:918d89529786873f0982a0f59c2a303cd065fbfd1b903d71a8e4e1584f67b42e", size = 140820, upload-time = "2026-06-30T12:14:02.087Z" },
1302
- { url = "https://files.pythonhosted.org/packages/78/0a/8a6f08559182643a814a4ab559948ae817b2851890fd9b995a4fff6541ce/tree_sitter-0.26.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:30a88be89ff1f2755297f81e8080d88b795dd98720c3f9fa2acf93873182cc95", size = 638844, upload-time = "2026-06-30T12:14:03.428Z" },
1303
- { url = "https://files.pythonhosted.org/packages/8a/2f/6e6781b31677231366cb3cf27bc8269157f6d4b03c9032865a4f5f2bbe7e/tree_sitter-0.26.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a6b333b0282d8bb0af741f9b018bd2523d4eecb2686bf6717066a625fecfaa4", size = 667487, upload-time = "2026-06-30T12:14:04.669Z" },
1304
- { url = "https://files.pythonhosted.org/packages/02/0b/0483078c8567445557a7015b0e5b187f6d7d4fda73464df9c4bdea7f7f3c/tree_sitter-0.26.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3f3c44339dd34fe8eb2b8d5aa7610660499a795f70376b130bbee7a437337280", size = 647975, upload-time = "2026-06-30T12:14:05.797Z" },
1305
- { url = "https://files.pythonhosted.org/packages/27/68/da83ca72c984e96ab4eb3bee0db1a6ffb5de1c8c455f92bd9f420cde7f0e/tree_sitter-0.26.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:94550e13b6ae576969da40246f4c4abb206380b5375ad43f26dd9151d55438e3", size = 665018, upload-time = "2026-06-30T12:14:07.278Z" },
1306
- { url = "https://files.pythonhosted.org/packages/d1/36/4d67927fd47b89af4a00f65f55a7370e28778cd50e972c2430487e3ecc27/tree_sitter-0.26.0-cp312-cp312-win_amd64.whl", hash = "sha256:ca89e361a276dbc934b28a43dd881199e25d34ff5493ee0ce45f3c52a6124a37", size = 129619, upload-time = "2026-06-30T12:14:08.373Z" },
1307
- { url = "https://files.pythonhosted.org/packages/ed/72/cdefad523eb78710679c6da6a79e3d90f5afd32b1c6aa5a17bac7eef99f6/tree_sitter-0.26.0-cp312-cp312-win_arm64.whl", hash = "sha256:bc6cb01d5ee75c85424aa1f1c72a82d8f07fd52539a0f3c4a6ed3e8721079b84", size = 116545, upload-time = "2026-06-30T12:14:09.273Z" },
1308
- { url = "https://files.pythonhosted.org/packages/cb/b0/465257cf8f972ad9f9812ec1cbaa8ec210ebebb601ade9a15881aa2436b4/tree_sitter-0.26.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ed0889dbed843ce45ede9f5169c0b2dea2222f12685844a03fadb81f12705867", size = 148893, upload-time = "2026-06-30T12:14:10.541Z" },
1309
- { url = "https://files.pythonhosted.org/packages/a1/ec/19d093e854b45e807fecfdd26105c266f43aeecc39c4dc97992a7074ad5a/tree_sitter-0.26.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6189c6c340c7384357711e3d92645e96bfb79f7a502f86de1ebdb23eb43f7dab", size = 140829, upload-time = "2026-06-30T12:14:11.626Z" },
1310
- { url = "https://files.pythonhosted.org/packages/9b/ee/87e74671ed63a837e7a1f17ab94aa3913871e033b27523d8e7b83d6f7ad0/tree_sitter-0.26.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8ff2e0750b7daa722302838356d7b65e303829b7eb73c915df127ddba115e1d1", size = 639334, upload-time = "2026-06-30T12:14:12.836Z" },
1311
- { url = "https://files.pythonhosted.org/packages/66/e7/f7e04cd9dff6b6ac0adf23922796fbc76accd4cf4bcda50542748d485679/tree_sitter-0.26.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7075ef857ef86f327dbb72d1e2574dda78db5754b3a1fca6506acd7fe5d561a7", size = 668102, upload-time = "2026-06-30T12:14:14.035Z" },
1312
- { url = "https://files.pythonhosted.org/packages/d3/90/0bfb16b7894fea728c774a89d5af421a9368a2f913bbd4e8dcab7caaecfb/tree_sitter-0.26.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:26c996c1edfee86e977bb3f5462e74fcec0d0b0db1e85a3c475875763caa03be", size = 648560, upload-time = "2026-06-30T12:14:15.302Z" },
1313
- { url = "https://files.pythonhosted.org/packages/cd/e6/0fe05ba396e9623b0ae40ccf34171336b8701ec8d7bd0ee9f5224d638665/tree_sitter-0.26.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:00289bfe7978f3e0dc0ce69813a20fa9f44ea4c100b3ec62043e5eb74ccfc3a2", size = 665121, upload-time = "2026-06-30T12:14:16.403Z" },
1314
- { url = "https://files.pythonhosted.org/packages/eb/d2/a944b1ca35bed6068dc84a9967aaf3049d8cc0b7a36179eea8787270a6ab/tree_sitter-0.26.0-cp313-cp313-win_amd64.whl", hash = "sha256:93e220cab7e6a823efeb2046c49171427de92ef71c7c681c01820d14d8d3721f", size = 129615, upload-time = "2026-06-30T12:14:17.463Z" },
1315
- { url = "https://files.pythonhosted.org/packages/09/ef/c7ca48293580d2249f36940c4eed5b4ddeb9ce75baf9a4ef30621987e0c7/tree_sitter-0.26.0-cp313-cp313-win_arm64.whl", hash = "sha256:b31a8195d2f224224c530ac814632d98c1dcc123d227442c07c736e86b70d564", size = 116525, upload-time = "2026-06-30T12:14:18.53Z" },
1316
- { url = "https://files.pythonhosted.org/packages/c5/7a/4d84e6f6ae2c3e757490dd84de251712c31e293dfe31f28da1ec019cefa2/tree_sitter-0.26.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:5a3c93a352b7e6f70f73e121bbfa2d0117ba7478bd51114ed35c91b0b78814fa", size = 148901, upload-time = "2026-06-30T12:14:19.452Z" },
1317
- { url = "https://files.pythonhosted.org/packages/b0/d9/efe62ec65dc9d096e834d27b8c058127e2146e42ff3380b822a233f016a6/tree_sitter-0.26.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:5fc2f41bf246ff2f70a9cc3690be35ec7580a4923151873d898c8bcb1a4503d3", size = 140805, upload-time = "2026-06-30T12:14:20.478Z" },
1318
- { url = "https://files.pythonhosted.org/packages/c4/2c/c82326b7b97e3c485c18679883b16f89e5e913c639d3b219d3da70c9e67e/tree_sitter-0.26.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b8ea92a255c91671a7ec4625aba3ab7bb5220c423630ffbf83c45d7312abe084", size = 640586, upload-time = "2026-06-30T12:14:21.527Z" },
1319
- { url = "https://files.pythonhosted.org/packages/e2/7a/f56e7d8282859452611024c7cbc623bfba5b24b8cb9b8f8bc88c5219fe9a/tree_sitter-0.26.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f665510f0fcf4636fb9696f1f7853bed7a3bd764b7bb0cb8494e619c14ed5a0c", size = 668300, upload-time = "2026-06-30T12:14:22.728Z" },
1320
- { url = "https://files.pythonhosted.org/packages/91/51/240ee81b9d5e9ca0a6cb1528e8605ffa70ab58c89ce126631be96d3e4bae/tree_sitter-0.26.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:253df7ab82cc0a9d311cd65f06e9f99fb3eac55996ae9fc94da22f123a861b90", size = 649627, upload-time = "2026-06-30T12:14:23.819Z" },
1321
- { url = "https://files.pythonhosted.org/packages/6a/54/760035cefedf9eb44f0f84c4ac22f1322e73155853e272576ee876336312/tree_sitter-0.26.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ff80d4833d330a73184a3ac5132abe93c575d2dea31975c6f15c0d21fef238aa", size = 664885, upload-time = "2026-06-30T12:14:25.064Z" },
1322
- { url = "https://files.pythonhosted.org/packages/c9/1b/0b36fe2a984ecedc4ce6aefd5d56447a6626a8e9b595c4e48658510ce8f8/tree_sitter-0.26.0-cp314-cp314-win_amd64.whl", hash = "sha256:a4033fecc8f606c7f2e8b8014d0057b74668a7f0152763606f7bc25c5f9ec64c", size = 132688, upload-time = "2026-06-30T12:14:26.106Z" },
1323
- { url = "https://files.pythonhosted.org/packages/4d/74/ebc041a13fbf40144afdb0d4b447e48e0b4012ca866c63de8b48f801f0c1/tree_sitter-0.26.0-cp314-cp314-win_arm64.whl", hash = "sha256:823251c4b6725a7c03ed497a339135ede7ae4bdde75bb8be7ef5e305aeb4ff52", size = 120287, upload-time = "2026-06-30T12:14:26.991Z" },
1288
+ version = "0.25.2"
1289
+ source = { registry = "https://pypi.org/simple" }
1290
+ sdist = { url = "https://files.pythonhosted.org/packages/66/7c/0350cfc47faadc0d3cf7d8237a4e34032b3014ddf4a12ded9933e1648b55/tree-sitter-0.25.2.tar.gz", hash = "sha256:fe43c158555da46723b28b52e058ad444195afd1db3ca7720c59a254544e9c20", size = 177961, upload-time = "2025-09-25T17:37:59.751Z" }
1291
+ wheels = [
1292
+ { url = "https://files.pythonhosted.org/packages/7c/22/88a1e00b906d26fa8a075dd19c6c3116997cb884bf1b3c023deb065a344d/tree_sitter-0.25.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b8ca72d841215b6573ed0655b3a5cd1133f9b69a6fa561aecad40dca9029d75b", size = 146752, upload-time = "2025-09-25T17:37:24.775Z" },
1293
+ { url = "https://files.pythonhosted.org/packages/57/1c/22cc14f3910017b7a76d7358df5cd315a84fe0c7f6f7b443b49db2e2790d/tree_sitter-0.25.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cc0351cfe5022cec5a77645f647f92a936b38850346ed3f6d6babfbeeeca4d26", size = 137765, upload-time = "2025-09-25T17:37:26.103Z" },
1294
+ { url = "https://files.pythonhosted.org/packages/1c/0c/d0de46ded7d5b34631e0f630d9866dab22d3183195bf0f3b81de406d6622/tree_sitter-0.25.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1799609636c0193e16c38f366bda5af15b1ce476df79ddaae7dd274df9e44266", size = 604643, upload-time = "2025-09-25T17:37:27.398Z" },
1295
+ { url = "https://files.pythonhosted.org/packages/34/38/b735a58c1c2f60a168a678ca27b4c1a9df725d0bf2d1a8a1c571c033111e/tree_sitter-0.25.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3e65ae456ad0d210ee71a89ee112ac7e72e6c2e5aac1b95846ecc7afa68a194c", size = 632229, upload-time = "2025-09-25T17:37:28.463Z" },
1296
+ { url = "https://files.pythonhosted.org/packages/32/f6/cda1e1e6cbff5e28d8433578e2556d7ba0b0209d95a796128155b97e7693/tree_sitter-0.25.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:49ee3c348caa459244ec437ccc7ff3831f35977d143f65311572b8ba0a5f265f", size = 629861, upload-time = "2025-09-25T17:37:29.593Z" },
1297
+ { url = "https://files.pythonhosted.org/packages/f9/19/427e5943b276a0dd74c2a1f1d7a7393443f13d1ee47dedb3f8127903c080/tree_sitter-0.25.2-cp311-cp311-win_amd64.whl", hash = "sha256:56ac6602c7d09c2c507c55e58dc7026b8988e0475bd0002f8a386cce5e8e8adc", size = 127304, upload-time = "2025-09-25T17:37:30.549Z" },
1298
+ { url = "https://files.pythonhosted.org/packages/eb/d9/eef856dc15f784d85d1397a17f3ee0f82df7778efce9e1961203abfe376a/tree_sitter-0.25.2-cp311-cp311-win_arm64.whl", hash = "sha256:b3d11a3a3ac89bb8a2543d75597f905a9926f9c806f40fcca8242922d1cc6ad5", size = 113990, upload-time = "2025-09-25T17:37:31.852Z" },
1299
+ { url = "https://files.pythonhosted.org/packages/3c/9e/20c2a00a862f1c2897a436b17edb774e831b22218083b459d0d081c9db33/tree_sitter-0.25.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ddabfff809ffc983fc9963455ba1cecc90295803e06e140a4c83e94c1fa3d960", size = 146941, upload-time = "2025-09-25T17:37:34.813Z" },
1300
+ { url = "https://files.pythonhosted.org/packages/ef/04/8512e2062e652a1016e840ce36ba1cc33258b0dcc4e500d8089b4054afec/tree_sitter-0.25.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c0c0ab5f94938a23fe81928a21cc0fac44143133ccc4eb7eeb1b92f84748331c", size = 137699, upload-time = "2025-09-25T17:37:36.349Z" },
1301
+ { url = "https://files.pythonhosted.org/packages/47/8a/d48c0414db19307b0fb3bb10d76a3a0cbe275bb293f145ee7fba2abd668e/tree_sitter-0.25.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dd12d80d91d4114ca097626eb82714618dcdfacd6a5e0955216c6485c350ef99", size = 607125, upload-time = "2025-09-25T17:37:37.725Z" },
1302
+ { url = "https://files.pythonhosted.org/packages/39/d1/b95f545e9fc5001b8a78636ef942a4e4e536580caa6a99e73dd0a02e87aa/tree_sitter-0.25.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b43a9e4c89d4d0839de27cd4d6902d33396de700e9ff4c5ab7631f277a85ead9", size = 635418, upload-time = "2025-09-25T17:37:38.922Z" },
1303
+ { url = "https://files.pythonhosted.org/packages/de/4d/b734bde3fb6f3513a010fa91f1f2875442cdc0382d6a949005cd84563d8f/tree_sitter-0.25.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fbb1706407c0e451c4f8cc016fec27d72d4b211fdd3173320b1ada7a6c74c3ac", size = 631250, upload-time = "2025-09-25T17:37:40.039Z" },
1304
+ { url = "https://files.pythonhosted.org/packages/46/f2/5f654994f36d10c64d50a192239599fcae46677491c8dd53e7579c35a3e3/tree_sitter-0.25.2-cp312-cp312-win_amd64.whl", hash = "sha256:6d0302550bbe4620a5dc7649517c4409d74ef18558276ce758419cf09e578897", size = 127156, upload-time = "2025-09-25T17:37:41.132Z" },
1305
+ { url = "https://files.pythonhosted.org/packages/67/23/148c468d410efcf0a9535272d81c258d840c27b34781d625f1f627e2e27d/tree_sitter-0.25.2-cp312-cp312-win_arm64.whl", hash = "sha256:0c8b6682cac77e37cfe5cf7ec388844957f48b7bd8d6321d0ca2d852994e10d5", size = 113984, upload-time = "2025-09-25T17:37:42.074Z" },
1306
+ { url = "https://files.pythonhosted.org/packages/8c/67/67492014ce32729b63d7ef318a19f9cfedd855d677de5773476caf771e96/tree_sitter-0.25.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0628671f0de69bb279558ef6b640bcfc97864fe0026d840f872728a86cd6b6cd", size = 146926, upload-time = "2025-09-25T17:37:43.041Z" },
1307
+ { url = "https://files.pythonhosted.org/packages/4e/9c/a278b15e6b263e86c5e301c82a60923fa7c59d44f78d7a110a89a413e640/tree_sitter-0.25.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f5ddcd3e291a749b62521f71fc953f66f5fd9743973fd6dd962b092773569601", size = 137712, upload-time = "2025-09-25T17:37:44.039Z" },
1308
+ { url = "https://files.pythonhosted.org/packages/54/9a/423bba15d2bf6473ba67846ba5244b988cd97a4b1ea2b146822162256794/tree_sitter-0.25.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bd88fbb0f6c3a0f28f0a68d72df88e9755cf5215bae146f5a1bdc8362b772053", size = 607873, upload-time = "2025-09-25T17:37:45.477Z" },
1309
+ { url = "https://files.pythonhosted.org/packages/ed/4c/b430d2cb43f8badfb3a3fa9d6cd7c8247698187b5674008c9d67b2a90c8e/tree_sitter-0.25.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b878e296e63661c8e124177cc3084b041ba3f5936b43076d57c487822426f614", size = 636313, upload-time = "2025-09-25T17:37:46.68Z" },
1310
+ { url = "https://files.pythonhosted.org/packages/9d/27/5f97098dbba807331d666a0997662e82d066e84b17d92efab575d283822f/tree_sitter-0.25.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d77605e0d353ba3fe5627e5490f0fbfe44141bafa4478d88ef7954a61a848dae", size = 631370, upload-time = "2025-09-25T17:37:47.993Z" },
1311
+ { url = "https://files.pythonhosted.org/packages/d4/3c/87caaed663fabc35e18dc704cd0e9800a0ee2f22bd18b9cbe7c10799895d/tree_sitter-0.25.2-cp313-cp313-win_amd64.whl", hash = "sha256:463c032bd02052d934daa5f45d183e0521ceb783c2548501cf034b0beba92c9b", size = 127157, upload-time = "2025-09-25T17:37:48.967Z" },
1312
+ { url = "https://files.pythonhosted.org/packages/d5/23/f8467b408b7988aff4ea40946a4bd1a2c1a73d17156a9d039bbaff1e2ceb/tree_sitter-0.25.2-cp313-cp313-win_arm64.whl", hash = "sha256:b3f63a1796886249bd22c559a5944d64d05d43f2be72961624278eff0dcc5cb8", size = 113975, upload-time = "2025-09-25T17:37:49.922Z" },
1313
+ { url = "https://files.pythonhosted.org/packages/07/e3/d9526ba71dfbbe4eba5e51d89432b4b333a49a1e70712aa5590cd22fc74f/tree_sitter-0.25.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:65d3c931013ea798b502782acab986bbf47ba2c452610ab0776cf4a8ef150fc0", size = 146776, upload-time = "2025-09-25T17:37:50.898Z" },
1314
+ { url = "https://files.pythonhosted.org/packages/42/97/4bd4ad97f85a23011dd8a535534bb1035c4e0bac1234d58f438e15cff51f/tree_sitter-0.25.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:bda059af9d621918efb813b22fb06b3fe00c3e94079c6143fcb2c565eb44cb87", size = 137732, upload-time = "2025-09-25T17:37:51.877Z" },
1315
+ { url = "https://files.pythonhosted.org/packages/b6/19/1e968aa0b1b567988ed522f836498a6a9529a74aab15f09dd9ac1e41f505/tree_sitter-0.25.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eac4e8e4c7060c75f395feec46421eb61212cb73998dbe004b7384724f3682ab", size = 609456, upload-time = "2025-09-25T17:37:52.925Z" },
1316
+ { url = "https://files.pythonhosted.org/packages/48/b6/cf08f4f20f4c9094006ef8828555484e842fc468827ad6e56011ab668dbd/tree_sitter-0.25.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:260586381b23be33b6191a07cea3d44ecbd6c01aa4c6b027a0439145fcbc3358", size = 636772, upload-time = "2025-09-25T17:37:54.647Z" },
1317
+ { url = "https://files.pythonhosted.org/packages/57/e2/d42d55bf56360987c32bc7b16adb06744e425670b823fb8a5786a1cea991/tree_sitter-0.25.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7d2ee1acbacebe50ba0f85fff1bc05e65d877958f00880f49f9b2af38dce1af0", size = 631522, upload-time = "2025-09-25T17:37:55.833Z" },
1318
+ { url = "https://files.pythonhosted.org/packages/03/87/af9604ebe275a9345d88c3ace0cf2a1341aa3f8ef49dd9fc11662132df8a/tree_sitter-0.25.2-cp314-cp314-win_amd64.whl", hash = "sha256:4973b718fcadfb04e59e746abfbb0288694159c6aeecd2add59320c03368c721", size = 130864, upload-time = "2025-09-25T17:37:57.453Z" },
1319
+ { url = "https://files.pythonhosted.org/packages/a6/6e/e64621037357acb83d912276ffd30a859ef117f9c680f2e3cb955f47c680/tree_sitter-0.25.2-cp314-cp314-win_arm64.whl", hash = "sha256:b8d4429954a3beb3e844e2872610d2a4800ba4eb42bb1990c6a4b1949b18459f", size = 117470, upload-time = "2025-09-25T17:37:58.431Z" },
1324
1320
  ]
1325
1321
 
1326
1322
  [[package]]
@@ -1641,7 +1637,7 @@ wheels = [
1641
1637
 
1642
1638
  [[package]]
1643
1639
  name = "witan-code"
1644
- version = "0.2.0"
1640
+ version = "0.2.1"
1645
1641
  source = { editable = "." }
1646
1642
  dependencies = [
1647
1643
  { name = "agent-config-kit" },
@@ -1671,7 +1667,7 @@ requires-dist = [
1671
1667
  { name = "fastmcp", specifier = ">=3.4.2,<4" },
1672
1668
  { name = "pyyaml", specifier = ">=6,<7" },
1673
1669
  { name = "rich", specifier = ">=13" },
1674
- { name = "tree-sitter", specifier = ">=0.26,<0.27" },
1670
+ { name = "tree-sitter", specifier = ">=0.25,<0.26" },
1675
1671
  { name = "tree-sitter-bash", specifier = ">=0.25,<0.26" },
1676
1672
  { name = "tree-sitter-go", specifier = ">=0.25,<0.26" },
1677
1673
  { name = "tree-sitter-hcl", specifier = ">=1.2,<1.3" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes