witan-code 0.2.0__tar.gz → 0.3.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.
- witan_code-0.3.0/CHANGELOG.md +44 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/PKG-INFO +3 -3
- {witan_code-0.2.0 → witan_code-0.3.0}/pyproject.toml +27 -3
- {witan_code-0.2.0 → witan_code-0.3.0}/uv.lock +51 -44
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/cli.py +2 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/.gitignore +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/README.md +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/config/claude.json +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/config/copilot.json +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/config/pi.json +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/docs/BRANCH_INDEXING.md +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/docs/CLI_REFERENCE.md +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/docs/EDGE_PRECISION_TIERS.md +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/docs/PACKAGE_MAP.md +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/docs/STAGE2_STITCHING.md +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/docs/SYMBOL_FORMAT.md +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/docs/SYMBOL_TABLE.md +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/docs/USER_GUIDE.md +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/install.sh +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/queries/code_mutations.gq +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/queries/code_read.gq +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/__init__.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/conftest.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_branches.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_bridge.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_cli_hooks.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_context.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_crossrepo.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_detach.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_edges.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_elicit.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_enrichment.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_graph.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_hooks.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_indexer.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_languages.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_maintenance.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_package_map.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_repo.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_server.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_setup.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_stitch.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_symbol_table.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/tests/test_visualize.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/__init__.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/__main__.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/_detach.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/bridge.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/bridge_extractors.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/config.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/context.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/edges.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/elicit.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/extensions/pi/codegraph.ts +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/graph.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/hooks.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/indexer.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/maintenance.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/package_map.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/queries/bridge.gq +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/queries/code_mutations.gq +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/queries/code_read.gq +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/queries/delete.gq +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/queries_ts/bash.scm +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/queries_ts/hcl.scm +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/queries_ts/python.scm +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/queries_ts/sql.scm +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/queries_ts/typescript.scm +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/queries_ts/yaml.scm +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/repo.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/schema/bridge-schema.pg +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/schema/code-schema.pg +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/server.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/setup.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/skills/witan-code/SKILL.md +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/stitch.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/store.py +0 -0
- {witan_code-0.2.0 → witan_code-0.3.0}/witan_code/visualize.py +0 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `witan-code` are documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/) (pre-1.0:
|
|
7
|
+
a MINOR bump may include breaking changes).
|
|
8
|
+
|
|
9
|
+
## [0.3.0] - 2026-07-10
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **`witan-code --version`**: prints the installed package version,
|
|
14
|
+
appending a git short ref when installed editable (local workspace) or
|
|
15
|
+
directly from a VCS URL (`uvx --from git+...`), via the new
|
|
16
|
+
`agent_config_kit.resolve_version()` helper.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- `agent-config-kit` dependency bumped to `>=0.4,<1` (was `>=0.1,<1`) to
|
|
21
|
+
require the version that ships `resolve_version`, which backs the new
|
|
22
|
+
`--version` flag.
|
|
23
|
+
|
|
24
|
+
## [0.2.1] - 2026-07-09
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- **Pinned `tree-sitter` to `0.25.x`**: `0.26.0` has a use-after-free in its
|
|
29
|
+
pyo3 `Node` binding that segfaults (exit 139) under the heavy
|
|
30
|
+
`.parent()`/`.children()` churn `_walk_defs` does on real-world-sized
|
|
31
|
+
files — deterministically on the 2nd-3rd parse in one process, so
|
|
32
|
+
`witan-code index` hard-crashed on any real repo. `0.25.0`-`0.25.2` are
|
|
33
|
+
crash-free with the same ABI-15 grammar wheels.
|
|
34
|
+
|
|
35
|
+
## [0.2.0] - 2026-07-09
|
|
36
|
+
|
|
37
|
+
Initial PyPI release. `witan-code` is a tree-sitter-based code graph MCP
|
|
38
|
+
server (Layer 2): indexes a repo's symbols (functions, methods, classes,
|
|
39
|
+
modules) and their relationships, then exposes `code_search_symbol` /
|
|
40
|
+
`code_find_definition` / `code_find_references` / `code_callers` /
|
|
41
|
+
`code_impact` queries to the agent. Includes the Layer 2.5 cross-repo bridge,
|
|
42
|
+
linking SOA repos by shared `env_var`/`endpoint`/`package`/`service` contract
|
|
43
|
+
keys. Mounts standalone as `witan-code` or under `witan code …` when the
|
|
44
|
+
`witan` umbrella CLI is installed alongside it.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: witan-code
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
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
|
|
@@ -10,7 +10,7 @@ License-Expression: BSD-3-Clause
|
|
|
10
10
|
Keywords: agent,code-graph,coding-agent,mcp,static-analysis,tree-sitter
|
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
|
12
12
|
Requires-Python: >=3.11
|
|
13
|
-
Requires-Dist: agent-config-kit<1,>=0.
|
|
13
|
+
Requires-Dist: agent-config-kit<1,>=0.4
|
|
14
14
|
Requires-Dist: cyclopts<5,>=4
|
|
15
15
|
Requires-Dist: fastmcp<4,>=3.4.2
|
|
16
16
|
Requires-Dist: pyyaml<7,>=6
|
|
@@ -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.
|
|
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.
|
|
3
|
+
version = "0.3.0"
|
|
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"
|
|
@@ -10,10 +10,18 @@ classifiers = [
|
|
|
10
10
|
"Programming Language :: Python :: 3",
|
|
11
11
|
]
|
|
12
12
|
dependencies = [
|
|
13
|
-
"agent-config-kit>=0.
|
|
13
|
+
"agent-config-kit>=0.4,<1",
|
|
14
14
|
"fastmcp>=3.4.2,<4",
|
|
15
15
|
"cyclopts>=4,<5",
|
|
16
|
-
|
|
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
|
|
@@ -43,6 +51,13 @@ witan-code = "witan_code.cli:cli"
|
|
|
43
51
|
requires = ["hatchling"]
|
|
44
52
|
build-backend = "hatchling.build"
|
|
45
53
|
|
|
54
|
+
[tool.uv.sources]
|
|
55
|
+
# Dev/CI use the in-repo workspace copy so this always tests against the
|
|
56
|
+
# agent-config-kit version bumped alongside it — even before that version
|
|
57
|
+
# has actually landed on PyPI. Published wheels only see the PyPI-range
|
|
58
|
+
# dependency declared above.
|
|
59
|
+
agent-config-kit = { path = "../../../packages/agent-config-kit", editable = true }
|
|
60
|
+
|
|
46
61
|
[dependency-groups]
|
|
47
62
|
test = ["pytest>=8"]
|
|
48
63
|
|
|
@@ -53,6 +68,15 @@ testpaths = ["tests"]
|
|
|
53
68
|
[tool.hatch.build.targets.wheel]
|
|
54
69
|
packages = ["witan_code"]
|
|
55
70
|
|
|
71
|
+
[tool.bumpversion]
|
|
72
|
+
current_version = "0.3.0"
|
|
73
|
+
allow_dirty = true
|
|
74
|
+
|
|
75
|
+
[[tool.bumpversion.files]]
|
|
76
|
+
filename = "pyproject.toml"
|
|
77
|
+
search = 'version = "{current_version}"'
|
|
78
|
+
replace = 'version = "{new_version}"'
|
|
79
|
+
|
|
56
80
|
# witan_code/queries/, witan_code/schema/, witan_code/queries_ts/,
|
|
57
81
|
# witan_code/skills/, and witan_code/extensions/ are all discovered
|
|
58
82
|
# automatically via packages = ["witan_code"] — including for a
|
|
@@ -10,14 +10,25 @@ resolution-markers = [
|
|
|
10
10
|
|
|
11
11
|
[[package]]
|
|
12
12
|
name = "agent-config-kit"
|
|
13
|
-
version = "0.
|
|
14
|
-
source = {
|
|
13
|
+
version = "0.4.0"
|
|
14
|
+
source = { editable = "../../../packages/agent-config-kit" }
|
|
15
15
|
dependencies = [
|
|
16
16
|
{ name = "pydantic" },
|
|
17
17
|
]
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
|
|
19
|
+
[package.metadata]
|
|
20
|
+
requires-dist = [
|
|
21
|
+
{ name = "cyclopts", marker = "extra == 'cli'", specifier = ">=4,<5" },
|
|
22
|
+
{ name = "pydantic", specifier = ">=2,<3" },
|
|
23
|
+
{ name = "rich", marker = "extra == 'cli'", specifier = ">=13" },
|
|
24
|
+
]
|
|
25
|
+
provides-extras = ["cli"]
|
|
26
|
+
|
|
27
|
+
[package.metadata.requires-dev]
|
|
28
|
+
test = [
|
|
29
|
+
{ name = "cyclopts", specifier = ">=4,<5" },
|
|
30
|
+
{ name = "pytest", specifier = ">=8" },
|
|
31
|
+
{ name = "rich", specifier = ">=13" },
|
|
21
32
|
]
|
|
22
33
|
|
|
23
34
|
[[package]]
|
|
@@ -1285,42 +1296,38 @@ wheels = [
|
|
|
1285
1296
|
|
|
1286
1297
|
[[package]]
|
|
1287
1298
|
name = "tree-sitter"
|
|
1288
|
-
version = "0.
|
|
1289
|
-
source = { registry = "https://pypi.org/simple" }
|
|
1290
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1291
|
-
wheels = [
|
|
1292
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1293
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1294
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1295
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1296
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1297
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1298
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1299
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1300
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1301
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1302
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1303
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1304
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1305
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1306
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1307
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1308
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1309
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1310
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1311
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1312
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1313
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1314
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1315
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1316
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1317
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1318
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1319
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
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" },
|
|
1299
|
+
version = "0.25.2"
|
|
1300
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1301
|
+
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" }
|
|
1302
|
+
wheels = [
|
|
1303
|
+
{ 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" },
|
|
1304
|
+
{ 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" },
|
|
1305
|
+
{ 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" },
|
|
1306
|
+
{ 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" },
|
|
1307
|
+
{ 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" },
|
|
1308
|
+
{ 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" },
|
|
1309
|
+
{ 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" },
|
|
1310
|
+
{ 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" },
|
|
1311
|
+
{ 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" },
|
|
1312
|
+
{ 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" },
|
|
1313
|
+
{ 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" },
|
|
1314
|
+
{ 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" },
|
|
1315
|
+
{ 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" },
|
|
1316
|
+
{ 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" },
|
|
1317
|
+
{ 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" },
|
|
1318
|
+
{ 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" },
|
|
1319
|
+
{ 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" },
|
|
1320
|
+
{ 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" },
|
|
1321
|
+
{ 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" },
|
|
1322
|
+
{ 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" },
|
|
1323
|
+
{ 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" },
|
|
1324
|
+
{ 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" },
|
|
1325
|
+
{ 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" },
|
|
1326
|
+
{ 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" },
|
|
1327
|
+
{ 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" },
|
|
1328
|
+
{ 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" },
|
|
1329
|
+
{ 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" },
|
|
1330
|
+
{ 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
1331
|
]
|
|
1325
1332
|
|
|
1326
1333
|
[[package]]
|
|
@@ -1641,7 +1648,7 @@ wheels = [
|
|
|
1641
1648
|
|
|
1642
1649
|
[[package]]
|
|
1643
1650
|
name = "witan-code"
|
|
1644
|
-
version = "0.
|
|
1651
|
+
version = "0.3.0"
|
|
1645
1652
|
source = { editable = "." }
|
|
1646
1653
|
dependencies = [
|
|
1647
1654
|
{ name = "agent-config-kit" },
|
|
@@ -1666,12 +1673,12 @@ test = [
|
|
|
1666
1673
|
|
|
1667
1674
|
[package.metadata]
|
|
1668
1675
|
requires-dist = [
|
|
1669
|
-
{ name = "agent-config-kit",
|
|
1676
|
+
{ name = "agent-config-kit", editable = "../../../packages/agent-config-kit" },
|
|
1670
1677
|
{ name = "cyclopts", specifier = ">=4,<5" },
|
|
1671
1678
|
{ name = "fastmcp", specifier = ">=3.4.2,<4" },
|
|
1672
1679
|
{ name = "pyyaml", specifier = ">=6,<7" },
|
|
1673
1680
|
{ name = "rich", specifier = ">=13" },
|
|
1674
|
-
{ name = "tree-sitter", specifier = ">=0.
|
|
1681
|
+
{ name = "tree-sitter", specifier = ">=0.25,<0.26" },
|
|
1675
1682
|
{ name = "tree-sitter-bash", specifier = ">=0.25,<0.26" },
|
|
1676
1683
|
{ name = "tree-sitter-go", specifier = ">=0.25,<0.26" },
|
|
1677
1684
|
{ name = "tree-sitter-hcl", specifier = ">=1.2,<1.3" },
|
|
@@ -8,12 +8,14 @@ from pathlib import Path
|
|
|
8
8
|
from typing import Literal
|
|
9
9
|
|
|
10
10
|
import cyclopts
|
|
11
|
+
from agent_config_kit.version import resolve_version
|
|
11
12
|
|
|
12
13
|
from . import indexer
|
|
13
14
|
|
|
14
15
|
app = cyclopts.App(
|
|
15
16
|
name="witan-code",
|
|
16
17
|
help="witan-code — tree-sitter code graph + cross-repo bridge.",
|
|
18
|
+
version=lambda: resolve_version("witan-code"),
|
|
17
19
|
)
|
|
18
20
|
|
|
19
21
|
BindingKind = Literal["env_var", "package", "service", "endpoint"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|