telchines 1.0.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.
- telchines-1.0.0/CHANGELOG.md +26 -0
- telchines-1.0.0/CONTRIBUTING.md +59 -0
- telchines-1.0.0/LICENSE +21 -0
- telchines-1.0.0/MANIFEST.in +6 -0
- telchines-1.0.0/PKG-INFO +312 -0
- telchines-1.0.0/README.md +278 -0
- telchines-1.0.0/SECURITY.md +35 -0
- telchines-1.0.0/docs/adapters.md +45 -0
- telchines-1.0.0/docs/assets/readme-architecture.svg +46 -0
- telchines-1.0.0/docs/assets/readme-hero.svg +33 -0
- telchines-1.0.0/docs/assets/readme-workflow.svg +40 -0
- telchines-1.0.0/docs/compatibility.md +41 -0
- telchines-1.0.0/docs/evaluation.md +39 -0
- telchines-1.0.0/docs/examples.md +49 -0
- telchines-1.0.0/docs/external-retrieval-policy.md +51 -0
- telchines-1.0.0/docs/providers.md +81 -0
- telchines-1.0.0/docs/quickstart.md +97 -0
- telchines-1.0.0/docs/release-checklist.md +33 -0
- telchines-1.0.0/pyproject.toml +68 -0
- telchines-1.0.0/setup.cfg +4 -0
- telchines-1.0.0/src/telchines/__init__.py +5 -0
- telchines-1.0.0/src/telchines/__main__.py +7 -0
- telchines-1.0.0/src/telchines/adapters/__init__.py +1 -0
- telchines-1.0.0/src/telchines/adapters/base.py +130 -0
- telchines-1.0.0/src/telchines/adapters/open_tools.py +187 -0
- telchines-1.0.0/src/telchines/adapters/parsing.py +58 -0
- telchines-1.0.0/src/telchines/adapters/registry.py +27 -0
- telchines-1.0.0/src/telchines/cli.py +315 -0
- telchines-1.0.0/src/telchines/config.py +230 -0
- telchines-1.0.0/src/telchines/errors.py +21 -0
- telchines-1.0.0/src/telchines/eval.py +483 -0
- telchines-1.0.0/src/telchines/models.py +357 -0
- telchines-1.0.0/src/telchines/operations.py +405 -0
- telchines-1.0.0/src/telchines/providers.py +1210 -0
- telchines-1.0.0/src/telchines/retrieval.py +405 -0
- telchines-1.0.0/src/telchines/run_store.py +139 -0
- telchines-1.0.0/src/telchines/shell.py +1022 -0
- telchines-1.0.0/src/telchines/utils.py +87 -0
- telchines-1.0.0/src/telchines/waveforms.py +187 -0
- telchines-1.0.0/src/telchines/workflows/__init__.py +1 -0
- telchines-1.0.0/src/telchines/workflows/coverage.py +483 -0
- telchines-1.0.0/src/telchines/workflows/gen_cocotb.py +240 -0
- telchines-1.0.0/src/telchines/workflows/gen_sva.py +176 -0
- telchines-1.0.0/src/telchines/workflows/repair.py +183 -0
- telchines-1.0.0/src/telchines/workflows/triage.py +298 -0
- telchines-1.0.0/src/telchines.egg-info/PKG-INFO +312 -0
- telchines-1.0.0/src/telchines.egg-info/SOURCES.txt +64 -0
- telchines-1.0.0/src/telchines.egg-info/dependency_links.txt +1 -0
- telchines-1.0.0/src/telchines.egg-info/entry_points.txt +3 -0
- telchines-1.0.0/src/telchines.egg-info/requires.txt +6 -0
- telchines-1.0.0/src/telchines.egg-info/top_level.txt +1 -0
- telchines-1.0.0/tests/test_adapters.py +70 -0
- telchines-1.0.0/tests/test_backlog.py +18 -0
- telchines-1.0.0/tests/test_cli.py +722 -0
- telchines-1.0.0/tests/test_config.py +69 -0
- telchines-1.0.0/tests/test_coverage.py +126 -0
- telchines-1.0.0/tests/test_eval.py +39 -0
- telchines-1.0.0/tests/test_models.py +21 -0
- telchines-1.0.0/tests/test_parsing.py +12 -0
- telchines-1.0.0/tests/test_release_assets.py +48 -0
- telchines-1.0.0/tests/test_repair.py +104 -0
- telchines-1.0.0/tests/test_retrieval.py +89 -0
- telchines-1.0.0/tests/test_run_store.py +29 -0
- telchines-1.0.0/tests/test_shell.py +107 -0
- telchines-1.0.0/tests/test_triage.py +83 -0
- telchines-1.0.0/tests/test_waveforms.py +28 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 1.0.0 - 2026-04-23
|
|
4
|
+
|
|
5
|
+
First public CLI-first `v1` release target.
|
|
6
|
+
|
|
7
|
+
Highlights:
|
|
8
|
+
|
|
9
|
+
- stabilized the documented `1.x` CLI surface
|
|
10
|
+
- promoted package metadata and versioning for public distribution
|
|
11
|
+
- added `--version` support to `tel` and `telchines`
|
|
12
|
+
- documented install, quickstart, providers, adapters, evaluation, compatibility, and release process
|
|
13
|
+
- added public repo assets: license, contributing guide, security policy, changelog
|
|
14
|
+
- added GitHub Actions for CI and release publishing
|
|
15
|
+
- formalized the external retrieval policy and adapter contribution contract
|
|
16
|
+
|
|
17
|
+
Workflow surface included in `v1`:
|
|
18
|
+
|
|
19
|
+
- repair
|
|
20
|
+
- triage
|
|
21
|
+
- retrieval
|
|
22
|
+
- waveform inspection
|
|
23
|
+
- spec-to-SVA generation
|
|
24
|
+
- DUT-to-cocotb generation
|
|
25
|
+
- coverage planning
|
|
26
|
+
- benchmark evaluation
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
Telchines is a CLI-first verification workflow platform. Contributions should preserve three product properties:
|
|
4
|
+
|
|
5
|
+
- deterministic or inspectable workflow behavior
|
|
6
|
+
- clear evidence and replay artifacts
|
|
7
|
+
- stable user-facing interfaces in the `1.x` line
|
|
8
|
+
|
|
9
|
+
## Development Setup
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
python -m venv .venv
|
|
13
|
+
. .venv/Scripts/activate
|
|
14
|
+
pip install -e .[dev]
|
|
15
|
+
pytest
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## What To Include In A Change
|
|
19
|
+
|
|
20
|
+
- code changes for the intended behavior
|
|
21
|
+
- tests for user-visible behavior or schema changes
|
|
22
|
+
- docs for any new command, config field, workflow, or contract change
|
|
23
|
+
|
|
24
|
+
## Change Guidelines
|
|
25
|
+
|
|
26
|
+
- keep workflows replayable
|
|
27
|
+
- preserve provenance in retrieval and generation outputs
|
|
28
|
+
- do not silently widen policy or egress behavior
|
|
29
|
+
- prefer additive CLI changes over breaking command renames
|
|
30
|
+
- keep generated artifacts reviewable by a human
|
|
31
|
+
|
|
32
|
+
## Adapters
|
|
33
|
+
|
|
34
|
+
If you add or extend an adapter:
|
|
35
|
+
|
|
36
|
+
- document the tool category and validation mode
|
|
37
|
+
- normalize outputs into structured observations
|
|
38
|
+
- define failure behavior clearly when the external tool is unavailable
|
|
39
|
+
- add isolated tests that cover parsing and command construction
|
|
40
|
+
|
|
41
|
+
See [docs/adapters.md](docs/adapters.md) for the current support contract.
|
|
42
|
+
|
|
43
|
+
## Providers
|
|
44
|
+
|
|
45
|
+
If you add provider behavior:
|
|
46
|
+
|
|
47
|
+
- preserve policy enforcement for `model_mode` and `no_egress`
|
|
48
|
+
- keep request and response artifacts replayable
|
|
49
|
+
- document new config fields in [docs/providers.md](docs/providers.md)
|
|
50
|
+
|
|
51
|
+
## Release Expectations
|
|
52
|
+
|
|
53
|
+
Before merging release-facing changes, verify:
|
|
54
|
+
|
|
55
|
+
- `pytest` passes
|
|
56
|
+
- CLI help and version still work
|
|
57
|
+
- docs match the implemented command surface
|
|
58
|
+
|
|
59
|
+
See [docs/release-checklist.md](docs/release-checklist.md) for the full release gate.
|
telchines-1.0.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Telchines contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
telchines-1.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: telchines
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: CLI-first verification workflow platform for grounded AI-assisted hardware validation
|
|
5
|
+
Author: Telchines contributors
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/ivanbard/telchines
|
|
8
|
+
Project-URL: Repository, https://github.com/ivanbard/telchines
|
|
9
|
+
Project-URL: Issues, https://github.com/ivanbard/telchines/issues
|
|
10
|
+
Project-URL: Changelog, https://github.com/ivanbard/telchines/blob/main/CHANGELOG.md
|
|
11
|
+
Project-URL: Documentation, https://github.com/ivanbard/telchines/tree/main/docs
|
|
12
|
+
Keywords: asic,fpga,rtl,verification,sva,cocotb,cli
|
|
13
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
14
|
+
Classifier: Environment :: Console
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Intended Audience :: Science/Research
|
|
17
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
18
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
19
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
|
|
24
|
+
Classifier: Topic :: Software Development :: Testing
|
|
25
|
+
Requires-Python: >=3.11
|
|
26
|
+
Description-Content-Type: text/markdown
|
|
27
|
+
License-File: LICENSE
|
|
28
|
+
Requires-Dist: prompt_toolkit<4.0,>=3.0
|
|
29
|
+
Requires-Dist: rich<15.0,>=14.0
|
|
30
|
+
Requires-Dist: typer<1.0,>=0.17
|
|
31
|
+
Provides-Extra: dev
|
|
32
|
+
Requires-Dist: pytest>=9.0; extra == "dev"
|
|
33
|
+
Dynamic: license-file
|
|
34
|
+
|
|
35
|
+
# Telchines
|
|
36
|
+
|
|
37
|
+
<p align="center">
|
|
38
|
+
<img src="docs/assets/readme-hero.svg" alt="Telchines hero banner" width="100%">
|
|
39
|
+
</p>
|
|
40
|
+
|
|
41
|
+
<p align="center">
|
|
42
|
+
<a href="https://github.com/ivanbard/telchines/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/ivanbard/telchines/ci.yml?branch=main&style=flat-square&label=CI" alt="CI status"></a>
|
|
43
|
+
<img src="https://img.shields.io/badge/version-v1.0.0-0f172a?style=flat-square" alt="Version 1.0.0">
|
|
44
|
+
<img src="https://img.shields.io/badge/python-3.11%2B-0b7285?style=flat-square" alt="Python 3.11+">
|
|
45
|
+
<img src="https://img.shields.io/badge/license-MIT-14532d?style=flat-square" alt="MIT License">
|
|
46
|
+
<img src="https://img.shields.io/badge/benchmarks-18%20cases-7c2d12?style=flat-square" alt="18 benchmark cases">
|
|
47
|
+
</p>
|
|
48
|
+
|
|
49
|
+
<p align="center">
|
|
50
|
+
CLI-first verification workflows for hardware teams that want grounded, replayable AI instead of generic repo chat.
|
|
51
|
+
</p>
|
|
52
|
+
|
|
53
|
+
<p align="center">
|
|
54
|
+
<a href="#quick-start"><strong>Quick Start</strong></a> |
|
|
55
|
+
<a href="#what-you-can-do-with-v1"><strong>v1 Workflows</strong></a> |
|
|
56
|
+
<a href="#how-it-works"><strong>How It Works</strong></a> |
|
|
57
|
+
<a href="#documentation"><strong>Documentation</strong></a>
|
|
58
|
+
</p>
|
|
59
|
+
|
|
60
|
+
## Why Telchines
|
|
61
|
+
|
|
62
|
+
Generic coding assistants are weak at verification work because the real loop is not just text generation. It is specs, RTL, logs, tool feedback, coverage holes, prior runs, and the ability to replay what happened.
|
|
63
|
+
|
|
64
|
+
Telchines is built around that loop:
|
|
65
|
+
|
|
66
|
+
- retrieve evidence from RTL, docs, logs, and run history
|
|
67
|
+
- run verification-native workflows instead of generic chat prompts
|
|
68
|
+
- preserve replay artifacts and citations
|
|
69
|
+
- validate outputs through adapters and deterministic gates
|
|
70
|
+
- keep model routing local-first and policy-aware
|
|
71
|
+
|
|
72
|
+
> Telchines is not trying to replace simulators or formal tools. It is the orchestration layer that helps engineers move from signal to next action faster.
|
|
73
|
+
|
|
74
|
+
## What You Can Do With v1
|
|
75
|
+
|
|
76
|
+
| Workflow | What it does | Primary command |
|
|
77
|
+
| --- | --- | --- |
|
|
78
|
+
| Retrieval | Builds task-aware evidence packs from repo and run history | `tel retrieve "query"` |
|
|
79
|
+
| Repair | Proposes and validates minimal fixes from tool output | `tel repair --tool ... --file ...` |
|
|
80
|
+
| Triage | Clusters repeated regressions with evidence and history | `tel triage --logs logs/regressions` |
|
|
81
|
+
| Spec-to-SVA | Generates first-pass assertions from spec plus RTL | `tel gen-sva --spec docs/uart.md --rtl rtl/uart_rx.sv` |
|
|
82
|
+
| DUT-to-Cocotb | Scaffolds a grounded cocotb starter testbench | `tel gen-cocotb --dut rtl/uart_rx.sv --spec docs/uart.md` |
|
|
83
|
+
| Coverage Planning | Classifies uncovered items and ranks next actions | `tel coverage-plan --report cov/coverage.json ...` |
|
|
84
|
+
| Waveform Debug | Parses VCDs and inspects signals from CLI or shell | `tel waveforms show ...` |
|
|
85
|
+
| Benchmarks | Runs the built-in offline evaluation suite | `tel eval run` |
|
|
86
|
+
|
|
87
|
+
## What It Looks Like
|
|
88
|
+
|
|
89
|
+
```text
|
|
90
|
+
$ tel
|
|
91
|
+
|
|
92
|
+
tel[uart] sample_project> /index
|
|
93
|
+
Index Complete
|
|
94
|
+
indexed 18 chunks
|
|
95
|
+
|
|
96
|
+
tel[uart] sample_project> /triage --logs logs/regressions
|
|
97
|
+
Triage Summary
|
|
98
|
+
run run_... produced 2 cluster(s)
|
|
99
|
+
|
|
100
|
+
1. UART receiver start-bit regressions grouped together
|
|
101
|
+
likely cause: missing stimulus or broken start-bit detection path
|
|
102
|
+
suggested action: inspect uart_rx start-bit handling and nearby waveform evidence
|
|
103
|
+
evidence: docs/uart.md#L1, rtl/uart_rx.sv#L1, logs/regressions/run_a.log#L1
|
|
104
|
+
|
|
105
|
+
tel[uart] sample_project> /gen-sva --spec docs/uart.md --rtl rtl/uart_rx.sv
|
|
106
|
+
Spec-to-SVA Result
|
|
107
|
+
provider: heuristic
|
|
108
|
+
status: validated
|
|
109
|
+
artifact: .tel/artifacts/generated/uart_rx_assertions.sv
|
|
110
|
+
validation: passed
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## How It Works
|
|
114
|
+
|
|
115
|
+
<p align="center">
|
|
116
|
+
<img src="docs/assets/readme-workflow.svg" alt="Telchines workflow diagram" width="100%">
|
|
117
|
+
</p>
|
|
118
|
+
|
|
119
|
+
Telchines keeps the loop explicit:
|
|
120
|
+
|
|
121
|
+
1. Index the project and build retrieval context.
|
|
122
|
+
2. Run a verification workflow such as repair, triage, generation, or coverage planning.
|
|
123
|
+
3. Store evidence, artifacts, validation output, and replay metadata under `.tel/`.
|
|
124
|
+
4. Reuse prior runs and benchmark the behavior over time.
|
|
125
|
+
|
|
126
|
+
## Architecture Snapshot
|
|
127
|
+
|
|
128
|
+
<p align="center">
|
|
129
|
+
<img src="docs/assets/readme-architecture.svg" alt="Telchines architecture diagram" width="100%">
|
|
130
|
+
</p>
|
|
131
|
+
|
|
132
|
+
## Quick Start
|
|
133
|
+
|
|
134
|
+
Install from PyPI:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
pip install telchines
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Or from source:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
python -m venv .venv
|
|
144
|
+
. .venv/Scripts/activate
|
|
145
|
+
pip install -e .[dev]
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Validate the install:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
tel --version
|
|
152
|
+
telchines --help
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Initialize and index a project:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
tel project init .
|
|
159
|
+
tel index
|
|
160
|
+
tel providers list
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Run a few common workflows:
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
tel retrieve "uart timeout handling"
|
|
167
|
+
tel triage --logs logs/regressions --format human
|
|
168
|
+
tel gen-sva --spec docs/uart.md --rtl rtl/uart_rx.sv
|
|
169
|
+
tel gen-cocotb --dut rtl/uart_rx.sv --spec docs/uart.md --intent "smoke the start-bit path"
|
|
170
|
+
tel coverage-plan --report cov/coverage.json --rtl rtl/uart_rx.sv --spec docs/uart.md --format human
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Interactive Shell
|
|
174
|
+
|
|
175
|
+
Running `tel` with no arguments opens the shell. Slash commands and lightweight plain-text intents are both supported.
|
|
176
|
+
|
|
177
|
+
```text
|
|
178
|
+
tel> /help
|
|
179
|
+
tel> /providers
|
|
180
|
+
tel> /index
|
|
181
|
+
tel> /triage --logs logs/regressions
|
|
182
|
+
tel> /gen-sva --spec docs/uart.md --rtl rtl/uart_rx.sv
|
|
183
|
+
tel> show my providers
|
|
184
|
+
tel> triage the regression logs
|
|
185
|
+
tel> /exit
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Adapter And Provider Model
|
|
189
|
+
|
|
190
|
+
Built-in adapters in `v1`:
|
|
191
|
+
|
|
192
|
+
- `verilator`
|
|
193
|
+
- `iverilog`
|
|
194
|
+
- `slang`
|
|
195
|
+
- `verible`
|
|
196
|
+
- `symbiyosys`
|
|
197
|
+
|
|
198
|
+
Provider kinds in `v1`:
|
|
199
|
+
|
|
200
|
+
- `heuristic`
|
|
201
|
+
- `openai_compatible`
|
|
202
|
+
- `local_command`
|
|
203
|
+
|
|
204
|
+
Policy controls:
|
|
205
|
+
|
|
206
|
+
- `model_mode=local` blocks remote providers
|
|
207
|
+
- `model_mode=remote` blocks local command providers
|
|
208
|
+
- `model_mode=hybrid` allows both
|
|
209
|
+
- `no_egress=true` blocks networked providers
|
|
210
|
+
|
|
211
|
+
See [docs/adapters.md](docs/adapters.md) and [docs/providers.md](docs/providers.md) for the exact support contract.
|
|
212
|
+
|
|
213
|
+
## Benchmarks And Release Validation
|
|
214
|
+
|
|
215
|
+
Telchines ships with an offline benchmark suite covering:
|
|
216
|
+
|
|
217
|
+
- repair
|
|
218
|
+
- triage
|
|
219
|
+
- retrieval
|
|
220
|
+
- spec-to-SVA
|
|
221
|
+
- DUT-to-cocotb
|
|
222
|
+
- coverage planning
|
|
223
|
+
|
|
224
|
+
Run it with:
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
tel eval run
|
|
228
|
+
tel eval report
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
The current default suite contains **18 cases** and is part of the `v1` credibility story, not optional polish.
|
|
232
|
+
|
|
233
|
+
## v1 Scope
|
|
234
|
+
|
|
235
|
+
Included:
|
|
236
|
+
|
|
237
|
+
- interactive shell and one-shot CLI
|
|
238
|
+
- project indexing and retrieval
|
|
239
|
+
- run storage and replay
|
|
240
|
+
- repair, triage, waveform inspection, `gen-sva`, `gen-cocotb`, and `coverage-plan`
|
|
241
|
+
- provider policy controls for `local`, `hybrid`, `remote`, and `no_egress`
|
|
242
|
+
- built-in benchmark suite
|
|
243
|
+
|
|
244
|
+
Not in `v1`:
|
|
245
|
+
|
|
246
|
+
- web UI
|
|
247
|
+
- hosted service
|
|
248
|
+
- enterprise-only integrations
|
|
249
|
+
- richer shell affordances like command palettes and `@file` mentions
|
|
250
|
+
- broader regression-manager integrations beyond the current adapter surface
|
|
251
|
+
|
|
252
|
+
## Documentation
|
|
253
|
+
|
|
254
|
+
- [Quickstart](docs/quickstart.md)
|
|
255
|
+
- [Worked Examples](docs/examples.md)
|
|
256
|
+
- [Provider Configuration](docs/providers.md)
|
|
257
|
+
- [Adapter Support And Contribution Contract](docs/adapters.md)
|
|
258
|
+
- [External Retrieval Policy](docs/external-retrieval-policy.md)
|
|
259
|
+
- [Evaluation And Benchmarks](docs/evaluation.md)
|
|
260
|
+
- [Compatibility Promise](docs/compatibility.md)
|
|
261
|
+
- [Release Checklist](docs/release-checklist.md)
|
|
262
|
+
|
|
263
|
+
## Stability Promise For v1
|
|
264
|
+
|
|
265
|
+
The `1.x` line treats these interfaces as stable unless explicitly deprecated:
|
|
266
|
+
|
|
267
|
+
- top-level CLI command names
|
|
268
|
+
- `.tel/config.json` layout
|
|
269
|
+
- run-store replay artifacts
|
|
270
|
+
- JSON output shape for the main workflow commands
|
|
271
|
+
|
|
272
|
+
See [docs/compatibility.md](docs/compatibility.md) for the exact boundary.
|
|
273
|
+
|
|
274
|
+
<details>
|
|
275
|
+
<summary><strong>Full CLI Surface</strong></summary>
|
|
276
|
+
|
|
277
|
+
- `tel`
|
|
278
|
+
- `tel shell`
|
|
279
|
+
- `tel project init`
|
|
280
|
+
- `tel index`
|
|
281
|
+
- `tel retrieve`
|
|
282
|
+
- `tel repair`
|
|
283
|
+
- `tel triage`
|
|
284
|
+
- `tel coverage-plan`
|
|
285
|
+
- `tel gen-sva`
|
|
286
|
+
- `tel gen-cocotb`
|
|
287
|
+
- `tel waveforms list`
|
|
288
|
+
- `tel waveforms show`
|
|
289
|
+
- `tel waveforms signals`
|
|
290
|
+
- `tel waveforms inspect`
|
|
291
|
+
- `tel runs list`
|
|
292
|
+
- `tel runs show`
|
|
293
|
+
- `tel runs replay`
|
|
294
|
+
- `tel adapters list`
|
|
295
|
+
- `tel providers list`
|
|
296
|
+
- `tel eval run`
|
|
297
|
+
- `tel eval report`
|
|
298
|
+
|
|
299
|
+
</details>
|
|
300
|
+
|
|
301
|
+
## Development
|
|
302
|
+
|
|
303
|
+
```bash
|
|
304
|
+
pip install -e .[dev]
|
|
305
|
+
pytest
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
Project contribution and disclosure guidance:
|
|
309
|
+
|
|
310
|
+
- [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
311
|
+
- [SECURITY.md](SECURITY.md)
|
|
312
|
+
- [CHANGELOG.md](CHANGELOG.md)
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
# Telchines
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="docs/assets/readme-hero.svg" alt="Telchines hero banner" width="100%">
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://github.com/ivanbard/telchines/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/ivanbard/telchines/ci.yml?branch=main&style=flat-square&label=CI" alt="CI status"></a>
|
|
9
|
+
<img src="https://img.shields.io/badge/version-v1.0.0-0f172a?style=flat-square" alt="Version 1.0.0">
|
|
10
|
+
<img src="https://img.shields.io/badge/python-3.11%2B-0b7285?style=flat-square" alt="Python 3.11+">
|
|
11
|
+
<img src="https://img.shields.io/badge/license-MIT-14532d?style=flat-square" alt="MIT License">
|
|
12
|
+
<img src="https://img.shields.io/badge/benchmarks-18%20cases-7c2d12?style=flat-square" alt="18 benchmark cases">
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
<p align="center">
|
|
16
|
+
CLI-first verification workflows for hardware teams that want grounded, replayable AI instead of generic repo chat.
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
<p align="center">
|
|
20
|
+
<a href="#quick-start"><strong>Quick Start</strong></a> |
|
|
21
|
+
<a href="#what-you-can-do-with-v1"><strong>v1 Workflows</strong></a> |
|
|
22
|
+
<a href="#how-it-works"><strong>How It Works</strong></a> |
|
|
23
|
+
<a href="#documentation"><strong>Documentation</strong></a>
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
## Why Telchines
|
|
27
|
+
|
|
28
|
+
Generic coding assistants are weak at verification work because the real loop is not just text generation. It is specs, RTL, logs, tool feedback, coverage holes, prior runs, and the ability to replay what happened.
|
|
29
|
+
|
|
30
|
+
Telchines is built around that loop:
|
|
31
|
+
|
|
32
|
+
- retrieve evidence from RTL, docs, logs, and run history
|
|
33
|
+
- run verification-native workflows instead of generic chat prompts
|
|
34
|
+
- preserve replay artifacts and citations
|
|
35
|
+
- validate outputs through adapters and deterministic gates
|
|
36
|
+
- keep model routing local-first and policy-aware
|
|
37
|
+
|
|
38
|
+
> Telchines is not trying to replace simulators or formal tools. It is the orchestration layer that helps engineers move from signal to next action faster.
|
|
39
|
+
|
|
40
|
+
## What You Can Do With v1
|
|
41
|
+
|
|
42
|
+
| Workflow | What it does | Primary command |
|
|
43
|
+
| --- | --- | --- |
|
|
44
|
+
| Retrieval | Builds task-aware evidence packs from repo and run history | `tel retrieve "query"` |
|
|
45
|
+
| Repair | Proposes and validates minimal fixes from tool output | `tel repair --tool ... --file ...` |
|
|
46
|
+
| Triage | Clusters repeated regressions with evidence and history | `tel triage --logs logs/regressions` |
|
|
47
|
+
| Spec-to-SVA | Generates first-pass assertions from spec plus RTL | `tel gen-sva --spec docs/uart.md --rtl rtl/uart_rx.sv` |
|
|
48
|
+
| DUT-to-Cocotb | Scaffolds a grounded cocotb starter testbench | `tel gen-cocotb --dut rtl/uart_rx.sv --spec docs/uart.md` |
|
|
49
|
+
| Coverage Planning | Classifies uncovered items and ranks next actions | `tel coverage-plan --report cov/coverage.json ...` |
|
|
50
|
+
| Waveform Debug | Parses VCDs and inspects signals from CLI or shell | `tel waveforms show ...` |
|
|
51
|
+
| Benchmarks | Runs the built-in offline evaluation suite | `tel eval run` |
|
|
52
|
+
|
|
53
|
+
## What It Looks Like
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
$ tel
|
|
57
|
+
|
|
58
|
+
tel[uart] sample_project> /index
|
|
59
|
+
Index Complete
|
|
60
|
+
indexed 18 chunks
|
|
61
|
+
|
|
62
|
+
tel[uart] sample_project> /triage --logs logs/regressions
|
|
63
|
+
Triage Summary
|
|
64
|
+
run run_... produced 2 cluster(s)
|
|
65
|
+
|
|
66
|
+
1. UART receiver start-bit regressions grouped together
|
|
67
|
+
likely cause: missing stimulus or broken start-bit detection path
|
|
68
|
+
suggested action: inspect uart_rx start-bit handling and nearby waveform evidence
|
|
69
|
+
evidence: docs/uart.md#L1, rtl/uart_rx.sv#L1, logs/regressions/run_a.log#L1
|
|
70
|
+
|
|
71
|
+
tel[uart] sample_project> /gen-sva --spec docs/uart.md --rtl rtl/uart_rx.sv
|
|
72
|
+
Spec-to-SVA Result
|
|
73
|
+
provider: heuristic
|
|
74
|
+
status: validated
|
|
75
|
+
artifact: .tel/artifacts/generated/uart_rx_assertions.sv
|
|
76
|
+
validation: passed
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## How It Works
|
|
80
|
+
|
|
81
|
+
<p align="center">
|
|
82
|
+
<img src="docs/assets/readme-workflow.svg" alt="Telchines workflow diagram" width="100%">
|
|
83
|
+
</p>
|
|
84
|
+
|
|
85
|
+
Telchines keeps the loop explicit:
|
|
86
|
+
|
|
87
|
+
1. Index the project and build retrieval context.
|
|
88
|
+
2. Run a verification workflow such as repair, triage, generation, or coverage planning.
|
|
89
|
+
3. Store evidence, artifacts, validation output, and replay metadata under `.tel/`.
|
|
90
|
+
4. Reuse prior runs and benchmark the behavior over time.
|
|
91
|
+
|
|
92
|
+
## Architecture Snapshot
|
|
93
|
+
|
|
94
|
+
<p align="center">
|
|
95
|
+
<img src="docs/assets/readme-architecture.svg" alt="Telchines architecture diagram" width="100%">
|
|
96
|
+
</p>
|
|
97
|
+
|
|
98
|
+
## Quick Start
|
|
99
|
+
|
|
100
|
+
Install from PyPI:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
pip install telchines
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Or from source:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
python -m venv .venv
|
|
110
|
+
. .venv/Scripts/activate
|
|
111
|
+
pip install -e .[dev]
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Validate the install:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
tel --version
|
|
118
|
+
telchines --help
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Initialize and index a project:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
tel project init .
|
|
125
|
+
tel index
|
|
126
|
+
tel providers list
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Run a few common workflows:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
tel retrieve "uart timeout handling"
|
|
133
|
+
tel triage --logs logs/regressions --format human
|
|
134
|
+
tel gen-sva --spec docs/uart.md --rtl rtl/uart_rx.sv
|
|
135
|
+
tel gen-cocotb --dut rtl/uart_rx.sv --spec docs/uart.md --intent "smoke the start-bit path"
|
|
136
|
+
tel coverage-plan --report cov/coverage.json --rtl rtl/uart_rx.sv --spec docs/uart.md --format human
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Interactive Shell
|
|
140
|
+
|
|
141
|
+
Running `tel` with no arguments opens the shell. Slash commands and lightweight plain-text intents are both supported.
|
|
142
|
+
|
|
143
|
+
```text
|
|
144
|
+
tel> /help
|
|
145
|
+
tel> /providers
|
|
146
|
+
tel> /index
|
|
147
|
+
tel> /triage --logs logs/regressions
|
|
148
|
+
tel> /gen-sva --spec docs/uart.md --rtl rtl/uart_rx.sv
|
|
149
|
+
tel> show my providers
|
|
150
|
+
tel> triage the regression logs
|
|
151
|
+
tel> /exit
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Adapter And Provider Model
|
|
155
|
+
|
|
156
|
+
Built-in adapters in `v1`:
|
|
157
|
+
|
|
158
|
+
- `verilator`
|
|
159
|
+
- `iverilog`
|
|
160
|
+
- `slang`
|
|
161
|
+
- `verible`
|
|
162
|
+
- `symbiyosys`
|
|
163
|
+
|
|
164
|
+
Provider kinds in `v1`:
|
|
165
|
+
|
|
166
|
+
- `heuristic`
|
|
167
|
+
- `openai_compatible`
|
|
168
|
+
- `local_command`
|
|
169
|
+
|
|
170
|
+
Policy controls:
|
|
171
|
+
|
|
172
|
+
- `model_mode=local` blocks remote providers
|
|
173
|
+
- `model_mode=remote` blocks local command providers
|
|
174
|
+
- `model_mode=hybrid` allows both
|
|
175
|
+
- `no_egress=true` blocks networked providers
|
|
176
|
+
|
|
177
|
+
See [docs/adapters.md](docs/adapters.md) and [docs/providers.md](docs/providers.md) for the exact support contract.
|
|
178
|
+
|
|
179
|
+
## Benchmarks And Release Validation
|
|
180
|
+
|
|
181
|
+
Telchines ships with an offline benchmark suite covering:
|
|
182
|
+
|
|
183
|
+
- repair
|
|
184
|
+
- triage
|
|
185
|
+
- retrieval
|
|
186
|
+
- spec-to-SVA
|
|
187
|
+
- DUT-to-cocotb
|
|
188
|
+
- coverage planning
|
|
189
|
+
|
|
190
|
+
Run it with:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
tel eval run
|
|
194
|
+
tel eval report
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
The current default suite contains **18 cases** and is part of the `v1` credibility story, not optional polish.
|
|
198
|
+
|
|
199
|
+
## v1 Scope
|
|
200
|
+
|
|
201
|
+
Included:
|
|
202
|
+
|
|
203
|
+
- interactive shell and one-shot CLI
|
|
204
|
+
- project indexing and retrieval
|
|
205
|
+
- run storage and replay
|
|
206
|
+
- repair, triage, waveform inspection, `gen-sva`, `gen-cocotb`, and `coverage-plan`
|
|
207
|
+
- provider policy controls for `local`, `hybrid`, `remote`, and `no_egress`
|
|
208
|
+
- built-in benchmark suite
|
|
209
|
+
|
|
210
|
+
Not in `v1`:
|
|
211
|
+
|
|
212
|
+
- web UI
|
|
213
|
+
- hosted service
|
|
214
|
+
- enterprise-only integrations
|
|
215
|
+
- richer shell affordances like command palettes and `@file` mentions
|
|
216
|
+
- broader regression-manager integrations beyond the current adapter surface
|
|
217
|
+
|
|
218
|
+
## Documentation
|
|
219
|
+
|
|
220
|
+
- [Quickstart](docs/quickstart.md)
|
|
221
|
+
- [Worked Examples](docs/examples.md)
|
|
222
|
+
- [Provider Configuration](docs/providers.md)
|
|
223
|
+
- [Adapter Support And Contribution Contract](docs/adapters.md)
|
|
224
|
+
- [External Retrieval Policy](docs/external-retrieval-policy.md)
|
|
225
|
+
- [Evaluation And Benchmarks](docs/evaluation.md)
|
|
226
|
+
- [Compatibility Promise](docs/compatibility.md)
|
|
227
|
+
- [Release Checklist](docs/release-checklist.md)
|
|
228
|
+
|
|
229
|
+
## Stability Promise For v1
|
|
230
|
+
|
|
231
|
+
The `1.x` line treats these interfaces as stable unless explicitly deprecated:
|
|
232
|
+
|
|
233
|
+
- top-level CLI command names
|
|
234
|
+
- `.tel/config.json` layout
|
|
235
|
+
- run-store replay artifacts
|
|
236
|
+
- JSON output shape for the main workflow commands
|
|
237
|
+
|
|
238
|
+
See [docs/compatibility.md](docs/compatibility.md) for the exact boundary.
|
|
239
|
+
|
|
240
|
+
<details>
|
|
241
|
+
<summary><strong>Full CLI Surface</strong></summary>
|
|
242
|
+
|
|
243
|
+
- `tel`
|
|
244
|
+
- `tel shell`
|
|
245
|
+
- `tel project init`
|
|
246
|
+
- `tel index`
|
|
247
|
+
- `tel retrieve`
|
|
248
|
+
- `tel repair`
|
|
249
|
+
- `tel triage`
|
|
250
|
+
- `tel coverage-plan`
|
|
251
|
+
- `tel gen-sva`
|
|
252
|
+
- `tel gen-cocotb`
|
|
253
|
+
- `tel waveforms list`
|
|
254
|
+
- `tel waveforms show`
|
|
255
|
+
- `tel waveforms signals`
|
|
256
|
+
- `tel waveforms inspect`
|
|
257
|
+
- `tel runs list`
|
|
258
|
+
- `tel runs show`
|
|
259
|
+
- `tel runs replay`
|
|
260
|
+
- `tel adapters list`
|
|
261
|
+
- `tel providers list`
|
|
262
|
+
- `tel eval run`
|
|
263
|
+
- `tel eval report`
|
|
264
|
+
|
|
265
|
+
</details>
|
|
266
|
+
|
|
267
|
+
## Development
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
pip install -e .[dev]
|
|
271
|
+
pytest
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
Project contribution and disclosure guidance:
|
|
275
|
+
|
|
276
|
+
- [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
277
|
+
- [SECURITY.md](SECURITY.md)
|
|
278
|
+
- [CHANGELOG.md](CHANGELOG.md)
|