-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
145 lines (129 loc) · 5.26 KB
/
Copy pathpyproject.toml
File metadata and controls
145 lines (129 loc) · 5.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
[build-system]
requires = ["setuptools>=68.0"]
build-backend = "setuptools.build_meta"
[project]
name = "sin-code"
version = "1.4.0"
description = "Python companion package for SIN-Code: unified CLI and MCP server gluing the standalone tools (Discover, Execute, Map, Grasp, Scout, Harvest, Orchestrate, SCKG, IBD, PoC, EFM, ADW, Oracle) into a single pip-installable entry point for tooling built on top of the Go binary."
readme = "README.md"
requires-python = ">=3.11"
license = "Apache-2.0"
authors = [{ name = "OpenSIN-Code" }]
keywords = ["mcp", "ai-agents", "coding-agent", "opencode", "codex", "lsp", "swe-bench"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Software Development :: Quality Assurance",
]
# Core deps — everything else (SCKG, IBD, PoC, EFM, ADW, Oracle, etc.)
# is an OPTIONAL subsystem installed from its own OpenSIN-Code repo.
dependencies = [
"typer>=0.12",
"pyyaml>=6.0",
# Consolidated skill deps (issue #29 — sin-slash, sin-mcp-server-builder, sin-marketplace)
"click>=8.0", # sin-slash Click CLI (legacy)
"rich>=13.0", # sin-slash + sin-marketplace pretty printing
"fastmcp>=2.0", # MCP server surfaces for all 3 subcommands
"jinja2>=3.0", # sin-mcp-server-builder templates
"httpx>=0.27", # sin-marketplace remote catalog
"gitpython>=3.1", # sin-marketplace install/update
"tomli_w>=1.0", # `sin config` write (stdlib tomllib is read-only)
]
# === ECOSYSTEM PACKAGES (git+ deps via requirements-ecosystem.txt) ===
# The 6 SIN-Code core ecosystem packages (sin-code-sckg, sin-code-ibd,
# sin-code-poc, sin-code-efsm, sin-code-adw, sin-code-oracle) were
# extracted from this monorepo into standalone repos under OpenSIN-Code/
# as part of issue #28. They are installed via `requirements-ecosystem.txt`,
# which uses git+https URLs — PyPI's core-metadata spec forbids direct URL
# references in extras. See https://packaging.python.org/specifications/core-metadata
[project.optional-dependencies]
# === LSP / benchmark / MCP runtime / observability ===
# Full tree-sitter stack — NO tree-sitter-languages (no Py3.14 wheels).
# Direct bindings: tree-sitter + 4 per-language parsers (Py/JS/TS/Go).
# tree-sitter 0.23+ uses new API: tree_sitter.Language(lang_fn()), not Language(ptr).
lsp = [
"multilspy>=0.0.10",
"tree-sitter>=0.23",
"tree-sitter-python>=0.23",
"tree-sitter-javascript>=0.23",
"tree-sitter-typescript>=0.23",
"tree-sitter-go>=0.23",
]
bench = [
"datasets>=2.19",
]
mcp = [
"mcp[cli]>=1.2",
]
otel = [
"opentelemetry-sdk>=1.25",
"opentelemetry-exporter-otlp>=1.25",
]
dev = [
"pytest>=8.0",
"pytest-asyncio>=0.23",
"ruff>=0.5",
"respx>=0.22",
]
# === PyPI-clean: all available extras ===
# `pip install sin-code[all]` → lsp + bench + mcp + otel + dev
# For the 6 SIN-Code core ecosystem packages (sckg, ibd, poc, efsm, adw,
# oracle), install with:
# pip install -r https://raw.githubusercontent.com/OpenSIN-Code/SIN-Code/main/requirements-ecosystem.txt
all = [
"sin-code[lsp,bench,mcp,otel,dev]",
]
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools.package-data]
sin_code_bundle = [
"data/codocs/*.md",
"tools/mcp_server_builder/templates/**/*",
]
[project.urls]
Homepage = "https://github.com/OpenSIN-Code/SIN-Code"
Issues = "https://github.com/OpenSIN-Code/SIN-Code/issues"
[project.scripts]
sin = "sin_code_bundle.cli:app"
sin-serve = "sin_code_bundle.mcp_server:main"
sin-serve-mcp = "sin_code_bundle.mcp_server:main"
# v0.9.3 — Standalone CLI shims for the 5 MCP-only file-ops. Lets
# sub-agents and shell users call sin-read/sin-write/etc. without
# spinning up the MCP server. Implementation lives in file_ops.py.
# Note: package is `cli_shims` (NOT `cli`) to avoid shadowing the
# existing `sin_code_bundle.cli` Typer app (the `sin` console script).
sin-read = "sin_code_bundle.cli_shims.sin_read:main"
sin-write = "sin_code_bundle.cli_shims.sin_write:main"
sin-edit = "sin_code_bundle.cli_shims.sin_edit:main"
sin-bash = "sin_code_bundle.cli_shims.sin_bash:main"
sin-search = "sin_code_bundle.cli_shims.sin_search:main"
# issue #29 — backward-compat entry points for the consolidated skills.
# These are kept for scripts that still invoke the old names; they all
# forward to the same `sin` Typer app.
sin-slash = "sin_code_bundle.tools.slash.cli:main"
sin-mcp-server-builder = "sin_code_bundle.tools.mcp_server_builder.mcp_server:main"
sin-marketplace-skill = "sin_code_bundle.tools.marketplace.legacy_cli:main"
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
# Template scaffolding lives under
# src/sin_code_bundle/tools/mcp_server_builder/templates; those files use
# Jinja {{-syntax and are not Python. Keep pytest from collecting them
# (matches ruff's extend-exclude list below).
addopts = "--ignore=src/sin_code_bundle/tools/mcp_server_builder/templates"
[tool.ruff]
line-length = 100
target-version = "py311"
# CoDocs example fixtures demonstrate doc co-location, not runnable code.
extend-exclude = [
"examples",
"build",
"dist",
"src/sin_code_bundle/tools/mcp_server_builder/templates",
]
[tool.ruff.lint]
select = ["E", "F", "I", "W"]
ignore = ["E501"]