route66 0.1.1__py3-none-any.whl
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.
- route66/__init__.py +24 -0
- route66/__main__.py +13 -0
- route66/_version.py +3 -0
- route66/py.typed +1 -0
- route66-0.1.1.dist-info/METADATA +104 -0
- route66-0.1.1.dist-info/RECORD +8 -0
- route66-0.1.1.dist-info/WHEEL +4 -0
- route66-0.1.1.dist-info/entry_points.txt +2 -0
route66/__init__.py
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"""route66 - Python SDK.
|
|
2
|
+
|
|
3
|
+
Public entry point for the route66 package. Version is sourced from the
|
|
4
|
+
installed distribution metadata so that provider-specific builds report
|
|
5
|
+
the version that was actually published.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
from importlib import metadata as _metadata
|
|
11
|
+
|
|
12
|
+
from ._version import __version__ as _stamped_version
|
|
13
|
+
|
|
14
|
+
try:
|
|
15
|
+
__version__ = _metadata.version("route66")
|
|
16
|
+
except _metadata.PackageNotFoundError: # pragma: no cover - local checkout
|
|
17
|
+
__version__ = _stamped_version
|
|
18
|
+
|
|
19
|
+
__all__ = ["__version__", "hello"]
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def hello(name: str = "world") -> str:
|
|
23
|
+
"""Return a friendly greeting. Placeholder SDK surface."""
|
|
24
|
+
return f"Hello from route66, {name}!"
|
route66/__main__.py
ADDED
route66/_version.py
ADDED
route66/py.typed
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Marker file so type checkers (mypy, pyright) treat route66 as a typed package.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: route66
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: route66 Python SDK
|
|
5
|
+
Author: route66 maintainers
|
|
6
|
+
License: Proprietary
|
|
7
|
+
Keywords: route66,sdk
|
|
8
|
+
Classifier: Operating System :: OS Independent
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
11
|
+
Classifier: Typing :: Typed
|
|
12
|
+
Requires-Python: >=3.10
|
|
13
|
+
Provides-Extra: dev
|
|
14
|
+
Requires-Dist: build>=1.2; extra == 'dev'
|
|
15
|
+
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
16
|
+
Requires-Dist: ruff>=0.5; extra == 'dev'
|
|
17
|
+
Requires-Dist: twine>=5.1; extra == 'dev'
|
|
18
|
+
Provides-Extra: semantic
|
|
19
|
+
Requires-Dist: sentence-transformers>=3.0; extra == 'semantic'
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
|
|
22
|
+
# route66
|
|
23
|
+
|
|
24
|
+
**Intelligent Tool Router for LLM Agents** — a catalog-in library that,
|
|
25
|
+
given a query and a large tool catalog, returns only the relevant tools,
|
|
26
|
+
deduplicated, in an ordered execution plan, with policy-aware defaults.
|
|
27
|
+
|
|
28
|
+
Built against the **`router-testkit`** hackathon grading contract
|
|
29
|
+
(single-tool routing, ordered multi-tool plans, near-duplicate
|
|
30
|
+
resolution, capability-based fallback widening, deprecation policy,
|
|
31
|
+
out-of-scope refusal, and clarify-on-vague-destructive).
|
|
32
|
+
|
|
33
|
+
## Layout
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
route66/
|
|
37
|
+
├── tool_router/ # The POC library (facade + retrievers + dedup)
|
|
38
|
+
├── testkit_adapter.py # Bridges tool_router to the harness contract
|
|
39
|
+
├── demo.py # Toy 60-tool catalog demo of the POC
|
|
40
|
+
├── metrics.py # Recall/precision/token-savings eval on the toy set
|
|
41
|
+
├── router-testkit/ # Hackathon input kit — DO NOT MODIFY
|
|
42
|
+
│ ├── catalog/ # 64 mock tools · 13 clusters · dup/version metadata
|
|
43
|
+
│ ├── test_cases/ # 29 scored cases across 11 categories
|
|
44
|
+
│ ├── registry_guardrail/# Intake validator fixtures
|
|
45
|
+
│ └── harness/ # run_benchmark.py (scorer) + baseline_router.py
|
|
46
|
+
├── bench/ # Additional benchmarks (baseline, mutations, guardrail)
|
|
47
|
+
├── specs/ # Spec-driven-development plan (SPEC-001..011)
|
|
48
|
+
├── docs/ # PRDs and the hackathon problem statement
|
|
49
|
+
└── tests/ # Unit tests (populated as specs are executed)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Baseline
|
|
53
|
+
|
|
54
|
+
| Router | Cases passed | Token savings |
|
|
55
|
+
|---------------------------------------|--------------|----------------|
|
|
56
|
+
| Testkit reference `baseline_router` | 7 / 29 (24%) | 94% |
|
|
57
|
+
| `tool_router` (this repo, current) | 5 / 29 (17%) | 90% |
|
|
58
|
+
|
|
59
|
+
The gap is deliberate and mapped in `specs/`. See
|
|
60
|
+
[`specs/README.md`](./specs/README.md) for the priority-ordered plan
|
|
61
|
+
(P0 → P1 → P2) with acceptance criteria pinned to specific `TC-*`
|
|
62
|
+
cases. Target after P0: ≥ 20/29. After P1: ≥ 24/29.
|
|
63
|
+
|
|
64
|
+
## Quick start
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Install (uv-managed)
|
|
68
|
+
uv sync
|
|
69
|
+
|
|
70
|
+
# Score the reference baseline
|
|
71
|
+
cd router-testkit/harness
|
|
72
|
+
python run_benchmark.py --verbose
|
|
73
|
+
|
|
74
|
+
# Score this project's router
|
|
75
|
+
python run_benchmark.py --router testkit_adapter:MyRouter --verbose
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
The harness has no third-party dependencies; standard-library only.
|
|
79
|
+
The router itself can run on `HashingEmbedder` (zero deps) or opt-in
|
|
80
|
+
`SentenceTransformerEmbedder` via `uv sync --extra semantic`.
|
|
81
|
+
|
|
82
|
+
## Where to read next
|
|
83
|
+
|
|
84
|
+
1. **`specs/README.md`** — the executable plan. Every spec is pickable
|
|
85
|
+
independently and has acceptance criteria tied to testkit case IDs.
|
|
86
|
+
2. **`router-testkit/README.md`** — the grading contract (authoritative).
|
|
87
|
+
3. **`tool_router/README.md`** (below `tool_router/`) — the current POC
|
|
88
|
+
library docs. Will be reframed in SPEC-011.
|
|
89
|
+
4. **`docs/hackathon-definition.md`** — the problem statement.
|
|
90
|
+
5. **`docs/PRD.md`** — the initial PRD.
|
|
91
|
+
|
|
92
|
+
## Toolchain
|
|
93
|
+
|
|
94
|
+
- Python ≥ 3.14 (pinned in `.python-version`, managed by uv)
|
|
95
|
+
- Ruff for lint + format
|
|
96
|
+
- Pytest for unit tests (see `pyproject.toml`'s `[dev]` extra)
|
|
97
|
+
|
|
98
|
+
## Dev
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
uv run ruff check .
|
|
102
|
+
uv run ruff format .
|
|
103
|
+
uv run pytest
|
|
104
|
+
```
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
route66/__init__.py,sha256=lnQSL6BFkta02Q5XZHnqLvFC1qyjFQBVJpbnX4LwI60,697
|
|
2
|
+
route66/__main__.py,sha256=UmBDpGVu6o_fXUl7wK8QGJmXSJ9bqiLXhaqk7bV2NkY,171
|
|
3
|
+
route66/_version.py,sha256=h1_lIE1uWQTVNUpWnfpDD7zwv10idyHIrZPiOI4rV5c,95
|
|
4
|
+
route66/py.typed,sha256=aW-bxALOYSoObmrYNqB2CEtE6Y_iLP1d3ruzPOYxK7c,81
|
|
5
|
+
route66-0.1.1.dist-info/METADATA,sha256=X88ehc-pBodE32aoQKMsUWtkmULEy2onUGPDl_T8Sxc,3904
|
|
6
|
+
route66-0.1.1.dist-info/WHEEL,sha256=lCkmxWfQsSc9CfIClYeavTdQeEX2toPqufh9gI35EQA,87
|
|
7
|
+
route66-0.1.1.dist-info/entry_points.txt,sha256=2eVewj_12O_kZIS-zlo6upa4ud_zRFb-Itdi5Yr38BU,50
|
|
8
|
+
route66-0.1.1.dist-info/RECORD,,
|