codebase-receipts-cli 1.0.0__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.
- codebase_receipts_cli-1.0.0.dist-info/METADATA +268 -0
- codebase_receipts_cli-1.0.0.dist-info/RECORD +78 -0
- codebase_receipts_cli-1.0.0.dist-info/WHEEL +4 -0
- codebase_receipts_cli-1.0.0.dist-info/entry_points.txt +2 -0
- codebase_receipts_cli-1.0.0.dist-info/licenses/LICENSE +21 -0
- receipts/__init__.py +0 -0
- receipts/ama/__init__.py +0 -0
- receipts/ama/interviewer.py +415 -0
- receipts/ats/__init__.py +1 -0
- receipts/ats/comparator.py +98 -0
- receipts/ats/scorer.py +550 -0
- receipts/ats/stats.py +164 -0
- receipts/cli.py +2062 -0
- receipts/config.py +106 -0
- receipts/errors.py +18 -0
- receipts/export.py +120 -0
- receipts/ingest/__init__.py +0 -0
- receipts/ingest/artifact_extractor.py +679 -0
- receipts/ingest/git_source.py +159 -0
- receipts/ingest/manifest.py +114 -0
- receipts/ingest/scanner.py +141 -0
- receipts/ingest/secrets_scanner.py +225 -0
- receipts/interactive/__init__.py +1 -0
- receipts/interactive/repl.py +755 -0
- receipts/ledger/__init__.py +0 -0
- receipts/ledger/pricing_table.py +54 -0
- receipts/ledger/token_ledger.py +226 -0
- receipts/llm/__init__.py +0 -0
- receipts/llm/anthropic_provider.py +95 -0
- receipts/llm/factory.py +124 -0
- receipts/llm/fake_provider.py +79 -0
- receipts/llm/gemini_provider.py +205 -0
- receipts/llm/json_utils.py +46 -0
- receipts/llm/metered.py +62 -0
- receipts/llm/ollama_provider.py +117 -0
- receipts/llm/openai_provider.py +118 -0
- receipts/llm/provider.py +42 -0
- receipts/llm/split.py +78 -0
- receipts/llm/token_estimate.py +35 -0
- receipts/mine/__init__.py +1 -0
- receipts/mine/code_metrics.py +246 -0
- receipts/mine/git_evidence.py +109 -0
- receipts/prep/__init__.py +1 -0
- receipts/prep/dossier.py +313 -0
- receipts/prep/readiness.py +227 -0
- receipts/resume/__init__.py +0 -0
- receipts/resume/claim_extractor.py +338 -0
- receipts/resume/loader.py +35 -0
- receipts/resume/pdf_parser.py +259 -0
- receipts/resume/tex_parser.py +394 -0
- receipts/rewrite/__init__.py +0 -0
- receipts/rewrite/compiler.py +180 -0
- receipts/rewrite/optimizer.py +140 -0
- receipts/rewrite/tex_rewriter.py +227 -0
- receipts/tui/__init__.py +0 -0
- receipts/tui/ama_app.py +454 -0
- receipts/tui/app.py +316 -0
- receipts/tui/dossier_app.py +170 -0
- receipts/tui/hub.py +367 -0
- receipts/tui/ingest_app.py +183 -0
- receipts/tui/rewrite_app.py +463 -0
- receipts/tui/score_app.py +237 -0
- receipts/tui/widgets/__init__.py +0 -0
- receipts/tui/widgets/claims_table.py +50 -0
- receipts/tui/widgets/diff_view.py +38 -0
- receipts/tui/widgets/status_bar.py +38 -0
- receipts/verify/__init__.py +0 -0
- receipts/verify/bm25.py +112 -0
- receipts/verify/enrich.py +128 -0
- receipts/verify/jd_fetch.py +101 -0
- receipts/verify/kb.py +379 -0
- receipts/verify/keyword_gap.py +127 -0
- receipts/verify/query_expand.py +88 -0
- receipts/verify/rerank.py +74 -0
- receipts/verify/rewriter.py +172 -0
- receipts/verify/router.py +211 -0
- receipts/verify/summaries.py +258 -0
- receipts/verify/verifier.py +552 -0
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: codebase-receipts-cli
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Receipts — resume claim verifier & codebase-grounded interview prep CLI
|
|
5
|
+
Project-URL: Homepage, https://github.com/Ishaan-1606/receipts-cli
|
|
6
|
+
Project-URL: Repository, https://github.com/Ishaan-1606/receipts-cli
|
|
7
|
+
Project-URL: Issues, https://github.com/Ishaan-1606/receipts-cli/issues
|
|
8
|
+
Author-email: Ishaan Sharma <ishaan406061@gmail.com>
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: cli,codebase,interview,llm,resume,verification
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
22
|
+
Classifier: Typing :: Typed
|
|
23
|
+
Requires-Python: >=3.10
|
|
24
|
+
Requires-Dist: chromadb>=1.0
|
|
25
|
+
Requires-Dist: gitpython>=3.1.50
|
|
26
|
+
Requires-Dist: google-genai>=1.0
|
|
27
|
+
Requires-Dist: ollama>=0.4
|
|
28
|
+
Requires-Dist: pathspec>=1.1.1
|
|
29
|
+
Requires-Dist: pypdf>=5.0
|
|
30
|
+
Requires-Dist: python-dotenv>=1.0
|
|
31
|
+
Requires-Dist: textual>=0.80
|
|
32
|
+
Requires-Dist: tiktoken>=0.13.0
|
|
33
|
+
Requires-Dist: tree-sitter-language-pack>=1.12.2
|
|
34
|
+
Requires-Dist: tree-sitter>=0.26.0
|
|
35
|
+
Requires-Dist: typer>=0.12
|
|
36
|
+
Provides-Extra: anthropic
|
|
37
|
+
Requires-Dist: anthropic>=0.30; extra == 'anthropic'
|
|
38
|
+
Provides-Extra: openai
|
|
39
|
+
Requires-Dist: openai>=1.30; extra == 'openai'
|
|
40
|
+
Provides-Extra: pdf
|
|
41
|
+
Requires-Dist: markdown>=3.5; extra == 'pdf'
|
|
42
|
+
Requires-Dist: xhtml2pdf>=0.2.16; extra == 'pdf'
|
|
43
|
+
Description-Content-Type: text/markdown
|
|
44
|
+
|
|
45
|
+
<p align="center">
|
|
46
|
+
<h1 align="center">RECEIPTS</h1>
|
|
47
|
+
<p align="center">
|
|
48
|
+
<strong>Your resume said it. Your code proves it.</strong>
|
|
49
|
+
</p>
|
|
50
|
+
<p align="center">
|
|
51
|
+
<a href="#quick-start">Quick Start</a> •
|
|
52
|
+
<a href="#what-it-does">What It Does</a> •
|
|
53
|
+
<a href="#how-it-works">How It Works</a> •
|
|
54
|
+
<a href="#providers">Providers</a> •
|
|
55
|
+
<a href="SETUP.md">Setup Guide</a> •
|
|
56
|
+
<a href="LEARN.md">Deep Dive</a>
|
|
57
|
+
</p>
|
|
58
|
+
</p>
|
|
59
|
+
|
|
60
|
+
<br>
|
|
61
|
+
|
|
62
|
+
> **The anti-flattery resume tool.** Most resume reviewers feed your bullets
|
|
63
|
+
> into an LLM and hand you back compliments. Receipts does the opposite — it
|
|
64
|
+
> embeds your actual codebase, searches it for evidence behind every claim you
|
|
65
|
+
> made, and tells you the truth. If the code doesn't back it up, you'll know
|
|
66
|
+
> before the interviewer does.
|
|
67
|
+
|
|
68
|
+
<br>
|
|
69
|
+
|
|
70
|
+
## Quick Start
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
pip install codebase-receipts-cli
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
receipts check # verify provider is working
|
|
78
|
+
receipts ingest ./my-project # index your codebase
|
|
79
|
+
receipts verify resume.tex ./my-project # verify every claim
|
|
80
|
+
receipts verify resume.tex ./my-project --rewrite # + honest rewrites
|
|
81
|
+
receipts tui resume.tex ./my-project # full-screen dashboard
|
|
82
|
+
receipts ama resume.tex ./my-project # mock interview mode
|
|
83
|
+
receipts ledger # token usage & costs
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
> [!TIP]
|
|
87
|
+
> See **[SETUP.md](SETUP.md)** for the full walkthrough — provider config,
|
|
88
|
+
> model setup, and first-run instructions. See **[LEARN.md](LEARN.md)** for
|
|
89
|
+
> how every piece works under the hood.
|
|
90
|
+
|
|
91
|
+
<br>
|
|
92
|
+
|
|
93
|
+
## What It Does
|
|
94
|
+
|
|
95
|
+
### Claim Verification
|
|
96
|
+
|
|
97
|
+
Every bullet in your `.tex` resume gets broken into individual claims —
|
|
98
|
+
percentages, counts, latency numbers, technology names — and each one is
|
|
99
|
+
checked against the code.
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
Results: 5 verified, 3 plausible, 2 unsupported
|
|
103
|
+
|
|
104
|
+
UNSUPPORTED CLAIMS:
|
|
105
|
+
[percentage] 40%
|
|
106
|
+
bullet: Reduced API latency by 40% through query optimization...
|
|
107
|
+
reason: No evidence of latency measurement or optimization in codebase
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**The rule:** if the knowledge base has no relevant code for a claim, it's
|
|
111
|
+
marked Unsupported *without even asking the LLM*. The model never gets a
|
|
112
|
+
chance to talk itself into justifying something it can't find.
|
|
113
|
+
|
|
114
|
+
### Honest Rewrites
|
|
115
|
+
|
|
116
|
+
Weak bullets get rewritten to be exactly as strong as what the code can
|
|
117
|
+
actually justify. No invented numbers. No inflated language.
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
ORIGINAL: Reduced API latency by 40% through query optimization
|
|
121
|
+
REWRITTEN: Optimized database queries in the API layer using indexed lookups
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Keyword Gap Analysis
|
|
125
|
+
|
|
126
|
+
Paste a job description. Get back what's addable, what's ungrounded, and
|
|
127
|
+
what's missing:
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
Can add (code supports it):
|
|
131
|
+
+ Docker — Dockerfile and compose config found in codebase
|
|
132
|
+
|
|
133
|
+
Ungrounded (resume claims, no code):
|
|
134
|
+
? Kubernetes — mentioned in resume but no k8s config in codebase
|
|
135
|
+
|
|
136
|
+
Gaps (JD wants, you don't have):
|
|
137
|
+
- Terraform
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Interactive TUI
|
|
141
|
+
|
|
142
|
+
A full-screen terminal dashboard with a file tree, sortable claims table,
|
|
143
|
+
side-by-side rewrite diffs, live LLM activity log, and a running token counter.
|
|
144
|
+
|
|
145
|
+
| Shortcut | Action |
|
|
146
|
+
|----------|--------|
|
|
147
|
+
| `c` | Claims tab |
|
|
148
|
+
| `r` | Rewrites tab |
|
|
149
|
+
| `l` | Log tab |
|
|
150
|
+
| `q` | Quit |
|
|
151
|
+
|
|
152
|
+
### Mock Interview (`ama`)
|
|
153
|
+
|
|
154
|
+
An AI interviewer that targets your weakest bullets. Unsupported claims get
|
|
155
|
+
asked about 3x more often than verified ones. For each bullet:
|
|
156
|
+
|
|
157
|
+
1. Pointed technical question about the specific claim
|
|
158
|
+
2. Your answer
|
|
159
|
+
3. Natural follow-up based on what you said
|
|
160
|
+
4. Your follow-up answer
|
|
161
|
+
5. Assessment: did it hold up?
|
|
162
|
+
|
|
163
|
+
Ends with a summary of strengths, weaknesses, and overall readiness.
|
|
164
|
+
|
|
165
|
+
### Token Ledger
|
|
166
|
+
|
|
167
|
+
Every LLM call is metered and logged — even when the provider is free.
|
|
168
|
+
`receipts ledger` shows lifetime totals across all sessions.
|
|
169
|
+
|
|
170
|
+
<br>
|
|
171
|
+
|
|
172
|
+
## How It Works
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
receipts/
|
|
176
|
+
cli.py ........................ Typer CLI: check, ingest, verify, tui, ama, ledger
|
|
177
|
+
config.py ..................... BYOK config (env vars / .env, never committed)
|
|
178
|
+
ama/
|
|
179
|
+
interviewer.py .............. Mock-interview loop, weighted toward weak claims
|
|
180
|
+
ingest/
|
|
181
|
+
scanner.py .................. Tree-style walk respecting .gitignore
|
|
182
|
+
git_source.py ............... Clone remote repos to temp dir
|
|
183
|
+
artifact_extractor.py ....... Tree-sitter extraction within a token budget
|
|
184
|
+
secrets_scanner.py .......... Pre-embedding secrets scan + redaction
|
|
185
|
+
ledger/
|
|
186
|
+
token_ledger.py ............. SQLite-backed token/cost log
|
|
187
|
+
pricing_table.py ............ $/1K-token rates per provider/model
|
|
188
|
+
llm/
|
|
189
|
+
provider.py ................. Abstract LLMProvider (complete, embed)
|
|
190
|
+
factory.py .................. Reads config, returns the active provider
|
|
191
|
+
ollama_provider.py .......... Local, free, no key needed
|
|
192
|
+
gemini_provider.py .......... Free-tier Google AI Studio key
|
|
193
|
+
anthropic_provider.py ....... BYOK adapter (paid)
|
|
194
|
+
openai_provider.py .......... BYOK adapter (paid)
|
|
195
|
+
fake_provider.py ............ Deterministic offline stub for tests
|
|
196
|
+
resume/
|
|
197
|
+
tex_parser.py ............... Parse .tex into structured sections/bullets
|
|
198
|
+
claim_extractor.py .......... Extract numeric + technology claims per bullet
|
|
199
|
+
tui/
|
|
200
|
+
app.py ...................... Textual App with panelled layout
|
|
201
|
+
widgets/ .................... StatusBar, ClaimsTable, DiffView
|
|
202
|
+
verify/
|
|
203
|
+
kb.py ....................... ChromaDB-backed vector store over code artifacts
|
|
204
|
+
verifier.py ................. Classify: Verified / Plausible / Unsupported
|
|
205
|
+
rewriter.py ................. Propose honest rewrites for weak bullets
|
|
206
|
+
keyword_gap.py .............. JD keyword gap analysis grounded in code
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
> [!NOTE]
|
|
210
|
+
> For a narrative walkthrough of every module — what it does, why it exists,
|
|
211
|
+
> and how to explain it in an interview — see **[LEARN.md](LEARN.md)**.
|
|
212
|
+
|
|
213
|
+
<br>
|
|
214
|
+
|
|
215
|
+
<h2 id="providers">Provider Support (BYOK)</h2>
|
|
216
|
+
|
|
217
|
+
| Provider | Default | Key | Install |
|
|
218
|
+
|----------|---------|-----|---------|
|
|
219
|
+
| **Ollama** | Yes | None | Built-in |
|
|
220
|
+
| **Gemini** | No | Free | Built-in |
|
|
221
|
+
| **Anthropic** | No | Paid | `pip install codebase-receipts-cli[anthropic]` |
|
|
222
|
+
| **OpenAI** | No | Paid | `pip install codebase-receipts-cli[openai]` |
|
|
223
|
+
|
|
224
|
+
**Zero bundled keys. Zero silent paid API calls. Ever.**
|
|
225
|
+
|
|
226
|
+
> [!IMPORTANT]
|
|
227
|
+
> Anthropic does not offer an embeddings API, so Claude needs a split
|
|
228
|
+
> config — chat via Claude, embeddings via a provider that has them:
|
|
229
|
+
> `RECEIPTS_PROVIDER=anthropic` + `RECEIPTS_EMBED_PROVIDER=gemini` (or
|
|
230
|
+
> `ollama`). The embed provider must match whatever embedded your
|
|
231
|
+
> knowledge base — re-ingest if you switch embedding models.
|
|
232
|
+
|
|
233
|
+
<br>
|
|
234
|
+
|
|
235
|
+
## Development
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
uv sync --group dev # install everything
|
|
239
|
+
uv run pytest -v # 233 tests, fully offline
|
|
240
|
+
uv run ruff check receipts/ # lint
|
|
241
|
+
uv run black --check receipts/ tests/ # format check
|
|
242
|
+
uv run pre-commit install # git hooks
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
The entire test suite runs with **zero network access** — a deterministic
|
|
246
|
+
fake provider handles all LLM calls in tests.
|
|
247
|
+
|
|
248
|
+
## Publishing
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
git tag v0.1.0
|
|
252
|
+
git push origin v0.1.0
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
GitHub Actions runs the full test suite on Ubuntu + Windows (Python 3.10 +
|
|
256
|
+
3.12), then publishes to PyPI via trusted publishing. No tokens in secrets.
|
|
257
|
+
|
|
258
|
+
<br>
|
|
259
|
+
|
|
260
|
+
## License
|
|
261
|
+
|
|
262
|
+
[MIT](LICENSE)
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
<p align="center">
|
|
267
|
+
<sub>Built by <a href="mailto:ishaan406061@gmail.com">Ishaan Sharma</a></sub>
|
|
268
|
+
</p>
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
receipts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
receipts/cli.py,sha256=W8YUEuFmnA0HpxF1d0OKOAfn1zaMMx2dQ1bAISTg3ro,69238
|
|
3
|
+
receipts/config.py,sha256=OdMAcnn0jaaDImrmYIxmIUv2UD5TOmhPVd6-5AMl5RM,4392
|
|
4
|
+
receipts/errors.py,sha256=_lV1Usmk2UqmWIX0Ee0kzhU79YpkbIdcMUQbHgoqqHM,482
|
|
5
|
+
receipts/export.py,sha256=qWbnU2kkDfBc4pKC5ARnq3EP2JmrMElys4jYiwDcmBg,4225
|
|
6
|
+
receipts/ama/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
+
receipts/ama/interviewer.py,sha256=ZOftuAYQiZHWDkl9qTr_wEGpnoYHX6n0WI0LpGr5O3c,14541
|
|
8
|
+
receipts/ats/__init__.py,sha256=XidKPKhkvOO1u7kz4_LZw7T4bZH6cWZRbgn-X67UPXA,39
|
|
9
|
+
receipts/ats/comparator.py,sha256=IINuarlrOZ0wWTiNXKtApsmptsAAeUpBjQ7VcEuX5ag,2723
|
|
10
|
+
receipts/ats/scorer.py,sha256=CqVit0gPrkBHAXx594tL9h2pFr3FRyrpDUzKgDJmLMg,18370
|
|
11
|
+
receipts/ats/stats.py,sha256=b4kPlPZ9QUTecLAKa6efuY4xilkUw8D9wlofg1J1dKQ,5022
|
|
12
|
+
receipts/ingest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
+
receipts/ingest/artifact_extractor.py,sha256=HmW00S5Kr-p7ynrx7hc91EIh-Ot5WUidO-iW8PPMWuI,23140
|
|
14
|
+
receipts/ingest/git_source.py,sha256=fgri8YTZ8zrw4-AwFjIShkUia7HTTS7xOv7bT-6PqyA,6204
|
|
15
|
+
receipts/ingest/manifest.py,sha256=KgzdqcdzkdeMZeppGa5Qlem59GhhCe9gUnj3n-IgAQc,3450
|
|
16
|
+
receipts/ingest/scanner.py,sha256=3YJKxjUtnPD7mK-Jimsfm4I17VT7qzKdpkAzCGbzDKE,4970
|
|
17
|
+
receipts/ingest/secrets_scanner.py,sha256=O5Yf_EY2W9TQE9U2vIv6pl2oLtKd0UF3ra5fhWPZm4Q,8214
|
|
18
|
+
receipts/interactive/__init__.py,sha256=aZVlXl2ugcHW0s9BhumLLTjNvOyHvC346eHn_Mfh5LU,51
|
|
19
|
+
receipts/interactive/repl.py,sha256=g8t4dCLQc9XBasDTuBvnjep3SXzGE7gOPPHDe_V-tyk,22359
|
|
20
|
+
receipts/ledger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
|
+
receipts/ledger/pricing_table.py,sha256=uhPcrJpVDxjnBPzEFfvW0fzTdlzHHUfm9zgeAduwMqs,1695
|
|
22
|
+
receipts/ledger/token_ledger.py,sha256=PPDo_l9bMZj4EIqFob4u1gW9WjfDgZU3sX8SsvjbHvc,6863
|
|
23
|
+
receipts/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
|
+
receipts/llm/anthropic_provider.py,sha256=2SoVvLZ11ksl9BoqFZNPO2AdJlZvPc0Nlq07AdFHx_Q,3674
|
|
25
|
+
receipts/llm/factory.py,sha256=zL1XEQ54p1WMZjKp0wWxC1WhI_DZ3xgd0p0sDA3bfNA,4293
|
|
26
|
+
receipts/llm/fake_provider.py,sha256=eNTvNzf-SiTmcjJwQeMEv_XLZVJM7ORI7Qe0oGFw7hU,2607
|
|
27
|
+
receipts/llm/gemini_provider.py,sha256=3smYn_gZvJDbnDxTFVjil-D2Hgyp0YIOStg_LD0FYw0,8494
|
|
28
|
+
receipts/llm/json_utils.py,sha256=yBvfGJtcx_0ojyxxCDWneLbzKJ5ZarmWct8WOsJTJp8,1430
|
|
29
|
+
receipts/llm/metered.py,sha256=Oogp0v4V-xoehHGLb5aZSm26nRvFJ5vIU6l4Bje4VAI,2402
|
|
30
|
+
receipts/llm/ollama_provider.py,sha256=AEc1TGykSlZxh3rRSZMeS1arupwdTT5BSfVliT47BkY,4541
|
|
31
|
+
receipts/llm/openai_provider.py,sha256=f848VrfmucrTWgHExx4lhFMPAx6FaZV5kAMLvlLzcBA,4600
|
|
32
|
+
receipts/llm/provider.py,sha256=mL0adcyhmrYxTkIylGEVLSk7RnTadTCrotmHjx5zBj0,1218
|
|
33
|
+
receipts/llm/split.py,sha256=8QcEPRE8Jc0WEFBcPueKDXhKRRVJndi4AlBqFZoWQvg,2740
|
|
34
|
+
receipts/llm/token_estimate.py,sha256=-FKyWagDpOn7-brGIij8mMdi0adWcme_NoU52iH0QRA,1258
|
|
35
|
+
receipts/mine/__init__.py,sha256=1GL97BJKV9QQX30xWpLSiYNvD64i6wQCsPTBpbkold8,84
|
|
36
|
+
receipts/mine/code_metrics.py,sha256=keddSV-0l85FxgkMFdoAh9RItGaOQd56sM5BerXkGGE,7885
|
|
37
|
+
receipts/mine/git_evidence.py,sha256=l_sKPyLfLkrs2km96muZ2KXPmEtsaU8bGmhDRt6CUnw,3871
|
|
38
|
+
receipts/prep/__init__.py,sha256=C8bh2B7Lf9Jq3cE0paDHisF5Kmm72EltHlSsvF17ITo,75
|
|
39
|
+
receipts/prep/dossier.py,sha256=-qOv5dU41bWfbDkOtPbVD_cTHAdbJvBSLSEBhKZPjok,10497
|
|
40
|
+
receipts/prep/readiness.py,sha256=ozcIgvAT7Xupkq7tYMUYUplB6nsGimjUCf6kKCz_nZw,7235
|
|
41
|
+
receipts/resume/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
|
+
receipts/resume/claim_extractor.py,sha256=BfdCd2K2l-l4n7hXru3BmXz32kGAa0Rv-XvsNi6iTb0,10615
|
|
43
|
+
receipts/resume/loader.py,sha256=ij72GiJYqGCQZcymqDsiO6DQBOknaqAjdrAIb3_l9uI,1218
|
|
44
|
+
receipts/resume/pdf_parser.py,sha256=orkfWjqe0W4KrH5ExFlGZQpynA8yrA9wcFvNKhjDqBU,8550
|
|
45
|
+
receipts/resume/tex_parser.py,sha256=31tMXc1YUQ1l048hQFiHMY2lQ1GxfJOq0otOZczAl7k,12873
|
|
46
|
+
receipts/rewrite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
47
|
+
receipts/rewrite/compiler.py,sha256=2aiyQKC1J9n-ahGkwvK_xzhMQpnzQ1Xg2MKj8wdb6qs,5778
|
|
48
|
+
receipts/rewrite/optimizer.py,sha256=NphN0ws-e8Xe0demNwv3DLEDGUO4Jw6Sy1f3kjReD34,4915
|
|
49
|
+
receipts/rewrite/tex_rewriter.py,sha256=gzksgLj50rQMO-zTZ9IwqLPI5-V3UsY4Ug_C_7fHHZs,7526
|
|
50
|
+
receipts/tui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
|
+
receipts/tui/ama_app.py,sha256=ERfaH-jlqW-MwBXBrokEQFFwT0QIooh3Bn9czVpRNiM,16496
|
|
52
|
+
receipts/tui/app.py,sha256=9F_YdxtquYKjTO5E06VVAi__AR-OuL4HNCfo9Z0SKyE,11358
|
|
53
|
+
receipts/tui/dossier_app.py,sha256=OjCY7s_cHyW56KNvulsDbbT_GPIT43dqxMXa4PmgcAU,5827
|
|
54
|
+
receipts/tui/hub.py,sha256=OHfIXIR93a7a9lOaHC8HcbvmgyIHSRppivo2CYTctec,12526
|
|
55
|
+
receipts/tui/ingest_app.py,sha256=30w7QA4o9hBipYlQsGLusc3R0HkPwsO4Tm_x-lm6cGg,6663
|
|
56
|
+
receipts/tui/rewrite_app.py,sha256=q6bOCNV4QXi2Tq67D-c7ufl3oIgEOBnFQ_O3ljf72NE,17718
|
|
57
|
+
receipts/tui/score_app.py,sha256=VvXtJYqCAA4sQeayEsyEM7Uku3qN9o3MvTKdKATMEeE,8603
|
|
58
|
+
receipts/tui/widgets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
59
|
+
receipts/tui/widgets/claims_table.py,sha256=2ocALjMw1LOOY75eKs-tR6addNMRoQmc0pMOM0b7U7w,1506
|
|
60
|
+
receipts/tui/widgets/diff_view.py,sha256=RXe5D7E-6Z6DrgRdGTQPU6KMnS30OUwq7-mBL-3Ovbs,1086
|
|
61
|
+
receipts/tui/widgets/status_bar.py,sha256=BPdWP6LsoVmXKT5XNzG9GLUn_SschZ9AAouZSBylmbM,1043
|
|
62
|
+
receipts/verify/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
|
+
receipts/verify/bm25.py,sha256=baVlOYBVHUsqk1m8EdcGJ7W26uuY5MbaKKW10pCYXQM,3997
|
|
64
|
+
receipts/verify/enrich.py,sha256=W_-FtbItY9f3VpRxwt1SD1cjonmZKmut0zZSC1oIwsw,4546
|
|
65
|
+
receipts/verify/jd_fetch.py,sha256=-yX0R_9w_hEvq7JNzvaSGivRTYW7H90YQqCgot9kjac,3497
|
|
66
|
+
receipts/verify/kb.py,sha256=Mim2Id-XLEwWWpOtczNf1JOgPrYO4mkStlnhBAbPld0,13611
|
|
67
|
+
receipts/verify/keyword_gap.py,sha256=e8VbzmCY0VJj3YwBFxQhACQW4L3TPm81ACwuUXVpcOw,4253
|
|
68
|
+
receipts/verify/query_expand.py,sha256=hWw2xvBpuFFFgKC3ip7Cfz82HDtywnHD1RIjEfLd1fY,3532
|
|
69
|
+
receipts/verify/rerank.py,sha256=CMRyKQ9U4mSUfkTuYEpl_wgGJR_77tvJEo1RG50I3qQ,2660
|
|
70
|
+
receipts/verify/rewriter.py,sha256=zM5T5vQxmy1ZQnBbB9rvhVRHOmpsu-2csf_jM4NYL0k,6132
|
|
71
|
+
receipts/verify/router.py,sha256=dByAiZ0XvVQGFYMik7v-y4COVqCkeM8YmS-kLr-Sv24,7062
|
|
72
|
+
receipts/verify/summaries.py,sha256=0Ihj17Th6CicZJbctf2QdoqSMDR86ATJjAMj6zY99Bk,8818
|
|
73
|
+
receipts/verify/verifier.py,sha256=fcwp_PCrYDAJeFycFbpB5_0HAHDC8AWp4a11faddVAM,19709
|
|
74
|
+
codebase_receipts_cli-1.0.0.dist-info/METADATA,sha256=9kdkEpoW3K12vN3o5F5nDLhPgAUTdvQG7kwXH-51D3U,9092
|
|
75
|
+
codebase_receipts_cli-1.0.0.dist-info/WHEEL,sha256=lCkmxWfQsSc9CfIClYeavTdQeEX2toPqufh9gI35EQA,87
|
|
76
|
+
codebase_receipts_cli-1.0.0.dist-info/entry_points.txt,sha256=GW_kkDazAIFIVZd6sj6DM-5VrWcBakGCvPSJ84w9koE,47
|
|
77
|
+
codebase_receipts_cli-1.0.0.dist-info/licenses/LICENSE,sha256=8Uz1XENAU_8FzLJWXQq_cWpdkoBr97ROq5N09lIhOv0,1070
|
|
78
|
+
codebase_receipts_cli-1.0.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ishaan Sharma
|
|
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.
|
receipts/__init__.py
ADDED
|
File without changes
|
receipts/ama/__init__.py
ADDED
|
File without changes
|