Files
kwcode/pyproject.toml
Val-sss d5ce4342f6 v1.5.0: SearchSubagent isolated search + UpstreamManifest cross-file contracts
Architecture upgrade to improve task completion for any model size:
- SearchSubagent: independent context window, parallel file reads, clean results only
- UpstreamManifest: deterministic AST extraction of signatures/constants, zero LLM
- PENCIL-style compression: subtask results compacted to structured artifacts
- Verifier pre-check: cross-file contract consistency before running tests
- Generator context slimmed: upstream_constraints + retry_hint injection

Code quality:
- orchestrator.py run() split into 5 private methods (410->253 lines)
- Full type annotations (Optional[DebugSubagent], Callable types)
- __all__ added to 7 core modules
- pyproject.toml: license fixed, ruff + mypy configured
- TUI: 30+ event icons, Server: /api/manifest endpoint
- STATUS.md rewritten: concise, English, professional format

451/451 tests green, 27 new tests for SearchSubagent+Manifest.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-06 17:08:08 +08:00

98 lines
2.2 KiB
TOML

[build-system]
requires = ["setuptools>=68.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "kwcode"
version = "1.4.0"
description = "KwCode - Local-model coding agent with MoE expert pipeline"
requires-python = ">=3.10"
readme = "README.md"
license = {text = "MIT"}
keywords = ["coding-agent", "local-llm", "ollama", "code-generation"]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Software Development :: Code Generators",
]
dependencies = [
"typer>=0.12.0",
"rich>=13.0.0",
"httpx>=0.27.0",
"psutil>=5.9.0",
"beautifulsoup4>=4.12.0",
"trafilatura>=1.12.0",
"pyyaml>=6.0",
"rank-bm25>=0.2.2",
"prompt-toolkit>=3.0.0",
"tree-sitter>=0.23.0",
"tree-sitter-python>=0.23.0",
]
[project.optional-dependencies]
rerank = ["sentence-transformers>=2.7.0"]
multimodal = ["Pillow>=10.0"]
local = ["llama-cpp-python>=0.2.90"]
multilang = [
"tree-sitter-javascript>=0.23.0",
"tree-sitter-typescript>=0.23.0",
"tree-sitter-go>=0.23.0",
"tree-sitter-rust>=0.23.0",
"tree-sitter-java>=0.23.0",
"ast-grep-py>=0.30.0",
]
server = [
"fastapi>=0.115.0",
"uvicorn>=0.30.0",
"sse-starlette>=2.0.0",
]
tui = [
"textual>=0.80.0",
]
full = [
"kwcode[local]",
"kwcode[multilang]",
"kwcode[server]",
"kwcode[tui]",
]
dev = [
"pytest>=7.0.0",
"kwcode[full]",
]
[project.scripts]
kwcode = "kaiwu.cli.main:app"
[project.urls]
Homepage = "https://github.com/val1813/kwcode"
Repository = "https://github.com/val1813/kwcode"
Issues = "https://github.com/val1813/kwcode/issues"
[tool.setuptools.packages.find]
where = ["."]
include = ["kaiwu*"]
[tool.setuptools.package-data]
"kaiwu.builtin_experts" = ["*.yaml"]
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "W", "I"]
ignore = ["E501"]
[tool.mypy]
python_version = "3.11"
warn_return_any = true
warn_unused_configs = true
ignore_missing_imports = true