tracecite 0.0.2__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.
Files changed (76) hide show
  1. tracecite/__init__.py +35 -0
  2. tracecite/__main__.py +3 -0
  3. tracecite/cli.py +656 -0
  4. tracecite/docs/__init__.py +56 -0
  5. tracecite/docs/build.py +381 -0
  6. tracecite/docs/config.py +114 -0
  7. tracecite/docs/contract.py +17 -0
  8. tracecite/docs/modes.py +240 -0
  9. tracecite/docs/stage.py +407 -0
  10. tracecite/docs/vectorize.py +457 -0
  11. tracecite/evidence/__init__.py +3 -0
  12. tracecite/evidence/chunking.py +214 -0
  13. tracecite/evidence/commands.py +552 -0
  14. tracecite/evidence/config.py +49 -0
  15. tracecite/evidence/embedding.py +59 -0
  16. tracecite/evidence/manifest.py +197 -0
  17. tracecite/evidence/page_extraction.py +200 -0
  18. tracecite/evidence/page_output.py +80 -0
  19. tracecite/evidence/page_selection.py +116 -0
  20. tracecite/evidence/parsers/__init__.py +1 -0
  21. tracecite/evidence/parsers/base.py +65 -0
  22. tracecite/evidence/parsers/markdown.py +142 -0
  23. tracecite/evidence/parsers/pdf.py +315 -0
  24. tracecite/evidence/parsers/workbook.py +334 -0
  25. tracecite/evidence/paths.py +94 -0
  26. tracecite/evidence/schema.py +570 -0
  27. tracecite/evidence/source_links.py +185 -0
  28. tracecite/evidence/sync.py +1434 -0
  29. tracecite/evidence/vector_backend.py +130 -0
  30. tracecite/evidence/verify.py +368 -0
  31. tracecite/skills/routing-documentation-source-links/SKILL.md +167 -0
  32. tracecite/skills/routing-documentation-source-links/agents/openai.yaml +3 -0
  33. tracecite/skills/routing-documentation-source-links/references/documenter-integration.md +71 -0
  34. tracecite/skills/routing-documentation-source-links/references/registry-contract.md +86 -0
  35. tracecite/skills/routing-documentation-source-links/references/staging-and-rewriting.md +118 -0
  36. tracecite/skills/routing-documentation-source-links/references/validation-and-failure-modes.md +67 -0
  37. tracecite/skills/using-tracecite/SKILL.md +97 -0
  38. tracecite/skills/using-tracecite/agents/openai.yaml +3 -0
  39. tracecite/skills/using-tracecite/references/architecture.md +68 -0
  40. tracecite/skills/using-tracecite/references/pdf-and-assets.md +67 -0
  41. tracecite/skills/using-tracecite/references/retrieval.md +45 -0
  42. tracecite/skills/using-tracecite/references/schema-and-migrations.md +52 -0
  43. tracecite/skills/using-tracecite/references/synchronisation.md +98 -0
  44. tracecite/skills/using-tracecite/references/workspace-runtime.md +44 -0
  45. tracecite/skills/writing-evidence-backed-reports/SKILL.md +91 -0
  46. tracecite/skills/writing-evidence-backed-reports/agents/openai.yaml +3 -0
  47. tracecite/skills/writing-evidence-backed-reports/fixtures/README.md +13 -0
  48. tracecite/skills/writing-evidence-backed-reports/fixtures/reports/invalid-bad-path.md +5 -0
  49. tracecite/skills/writing-evidence-backed-reports/fixtures/reports/invalid-grammar.md +8 -0
  50. tracecite/skills/writing-evidence-backed-reports/fixtures/reports/invalid-missing-definition.md +3 -0
  51. tracecite/skills/writing-evidence-backed-reports/fixtures/reports/invalid-page-not-indexed.md +5 -0
  52. tracecite/skills/writing-evidence-backed-reports/fixtures/reports/invalid-unindexed-path.md +5 -0
  53. tracecite/skills/writing-evidence-backed-reports/fixtures/reports/valid-grammar.md +12 -0
  54. tracecite/skills/writing-evidence-backed-reports/fixtures/reports/valid-report.md +27 -0
  55. tracecite/skills/writing-evidence-backed-reports/fixtures/source-links.toml +17 -0
  56. tracecite/skills/writing-evidence-backed-reports/fixtures/validate_fixtures.py +295 -0
  57. tracecite/skills/writing-evidence-backed-reports/references/images-and-source-links.md +34 -0
  58. tracecite/skills/writing-evidence-backed-reports/references/quotation-and-verification.md +43 -0
  59. tracecite/skills/writing-evidence-backed-reports/references/reference-style-citations.md +48 -0
  60. tracecite/skills/writing-evidence-backed-reports/references/report-structure.md +58 -0
  61. tracecite/tables/__init__.py +41 -0
  62. tracecite/tables/_text.py +142 -0
  63. tracecite/tables/document.py +582 -0
  64. tracecite/tables/html.py +299 -0
  65. tracecite/tables/models.py +119 -0
  66. tracecite/tables/normalise.py +786 -0
  67. tracecite/tables/pandoc.py +503 -0
  68. tracecite/tables/publish.py +238 -0
  69. tracecite/tables/render.py +128 -0
  70. tracecite/tables/site.py +457 -0
  71. tracecite-0.0.2.dist-info/METADATA +320 -0
  72. tracecite-0.0.2.dist-info/RECORD +76 -0
  73. tracecite-0.0.2.dist-info/WHEEL +5 -0
  74. tracecite-0.0.2.dist-info/entry_points.txt +2 -0
  75. tracecite-0.0.2.dist-info/licenses/LICENSE +21 -0
  76. tracecite-0.0.2.dist-info/top_level.txt +1 -0
@@ -0,0 +1,320 @@
1
+ Metadata-Version: 2.4
2
+ Name: tracecite
3
+ Version: 0.0.2
4
+ Summary: Source-linked table normalisation and evidence retrieval for executable documentation
5
+ Author: ARPST-UniMelb
6
+ License-Expression: MIT
7
+ Requires-Python: >=3.11
8
+ Description-Content-Type: text/markdown
9
+ License-File: LICENSE
10
+ Requires-Dist: beautifulsoup4>=4.12
11
+ Requires-Dist: pandas>=2.0
12
+ Requires-Dist: PyYAML>=6.0
13
+ Requires-Dist: tabulate>=0.9
14
+ Requires-Dist: nbformat>=5.10
15
+ Requires-Dist: nbclient>=0.11
16
+ Requires-Dist: ipykernel>=7.3
17
+ Provides-Extra: evidence
18
+ Requires-Dist: huggingface-hub<2,>=1.23; extra == "evidence"
19
+ Requires-Dist: pymupdf<2,>=1.28; extra == "evidence"
20
+ Requires-Dist: sentence-transformers<6,>=5.6; extra == "evidence"
21
+ Requires-Dist: sqlite-vec<0.2,>=0.1.9; extra == "evidence"
22
+ Provides-Extra: test
23
+ Requires-Dist: build>=1.2; extra == "test"
24
+ Requires-Dist: pytest<9,>=8.4; extra == "test"
25
+ Dynamic: license-file
26
+
27
+ # TraceCite
28
+
29
+ TraceCite makes executable documentation, and the source documents behind it, searchable and checkable evidence.
30
+
31
+ Its core is source-linked table normalisation. Each table in a rendered Python or Julia documentation page stays in the site as the original evidence, and TraceCite derives deterministic, self-describing row text from it for search, so generated tables become retrievable without changing what readers see.
32
+
33
+ Around that core, TraceCite indexes source collections of Markdown, PDF, `.xlsx`, and `.xlsm` files. It stores retained extraction, source hashes, full-text and vector search records, and source-specific locators such as PDF pages, Markdown lines, and workbook worksheet ranges, and it verifies quotations and report citations against them. The documentation commands join the two parts: `tracecite docs index` adds a project's retained documentation, with its normalised tables, to an evidence index, and `tracecite docs stage` routes source links to local files or public URLs.
34
+
35
+ ## Core architecture
36
+
37
+ ```text
38
+ Python or Julia executable page
39
+ -> Quarto retained Pandoc Markdown
40
+ -> raw table evidence
41
+ -> HTML site
42
+
43
+ retained Markdown
44
+ -> `tracecite prepare` CLI/package
45
+ -> canonical table model
46
+ -> row-oriented retrieval text
47
+ -> diagnostics
48
+ -> optional embedding-inspection website copy
49
+ ```
50
+
51
+ The normal site remains pure Quarto output. The generated inspection copy doubles each table only when explicitly requested.
52
+
53
+ `tracecite docs build docs` is the public automatic documentation builder. It discovers configured executable inputs, selects the complete site when runtimes are available, safely falls back with exact skipped-file warnings, stages retained Markdown, and optionally renders the inspection site. Table normalisation remains in the public `tracecite prepare` command.
54
+
55
+ The searchable-evidence path is separate from the documentation renderer:
56
+
57
+ ```text
58
+ declared PDF, Markdown, or workbook sources
59
+ -> retained source extraction
60
+ -> locator-aware chunks
61
+ -> SQLite FTS5 and sqlite-vec
62
+ -> ranked JSON results with source identity and evidence locators
63
+ ```
64
+
65
+ ## Prerequisites
66
+
67
+ - Python 3.11 or newer;
68
+ - Pandoc, either installed directly or provided by Quarto;
69
+ - Quarto for documentation-site renders;
70
+ - Julia 1.10 or newer only when building Julia documentation pages.
71
+
72
+ The Python normaliser and CLI work without Julia. Automatic documentation builds fall back to the Python-only overlay when configured Julia inputs cannot run; explicit Julia-only builds require Julia.
73
+
74
+ Evidence synchronisation and hybrid search use the optional `evidence` dependencies:
75
+
76
+ ```sh
77
+ uv pip install -e ".[evidence]"
78
+ ```
79
+
80
+ Workbook parsing reads OOXML packages directly with the Python standard library and runs independently of Excel, Julia, Quarto, and third-party workbook readers.
81
+
82
+ ## Usage
83
+
84
+ The public `tracecite` CLI provides table and document normalisation, documentation builds, and source-evidence synchronisation and search. The `prepare` command consumes retained Markdown after a Quarto render and creates the optional inspection-site copy.
85
+
86
+ ### Public API
87
+
88
+ ```python
89
+ from tracecite.tables import (
90
+ normalise_pandoc_table,
91
+ normalise_html_table,
92
+ normalise_document_tables,
93
+ )
94
+ ```
95
+
96
+ `normalise_pandoc_table()` is the core contract. It accepts one Pandoc table and returns raw evidence, canonical Markdown, normalised text, row records, diagnostics, hashes, and version metadata.
97
+
98
+ Each row also receives a deterministic `row_id`. When `row_identity` metadata is supplied, the identifier follows the logical row rather than its current rank or position.
99
+
100
+ `normalise_html_table()` supports Literate.jl, Documenter.jl, PrettyTables, notebook HTML MIME, row spans, and column spans through an HTML-to-canonical-Markdown adapter.
101
+
102
+ ### Index and search source evidence
103
+
104
+ Declare the source collection in a manifest. Explicit sources and include/exclude globs may select `.pdf`, `.md`, `.xlsx`, and `.xlsm` files.
105
+
106
+ ```toml
107
+ schema_version = 1
108
+
109
+ [[source]]
110
+ path = "2023-iasr-ev-workbook.xlsx"
111
+ ```
112
+
113
+ Synchronise the selected sources into a database, search the resulting lexical and semantic index, then run the integrity checks:
114
+
115
+ ```sh
116
+ tracecite sync \
117
+ --root sources \
118
+ --manifest tracecite-sources.toml \
119
+ --database .tracecite/evidence.sqlite \
120
+ --model-cache-dir .tracecite/model-cache
121
+
122
+ tracecite search \
123
+ "weekday versus weekend electric vehicle charging behaviour" \
124
+ --database .tracecite/evidence.sqlite \
125
+ --model-cache-dir .tracecite/model-cache
126
+
127
+ tracecite doctor --database .tracecite/evidence.sqlite
128
+ ```
129
+
130
+ `sync` is incremental and non-pruning. Unavailable or no-longer-selected sources remain in the database until an explicit `tracecite prune` operation is previewed and applied.
131
+
132
+ Restrict `search` to one or more source types with `--source-type` (repeatable; one of `pdf`, `markdown`, `workbook`). The filter is applied before lexical and vector candidates are ranked and truncated to `--limit`, not as a post-hoc filter on the final result list:
133
+
134
+ ```sh
135
+ tracecite search "coal retirement" \
136
+ --database .tracecite/evidence.sqlite \
137
+ --source-type pdf
138
+ ```
139
+
140
+ Search results include retrieval provenance and a source-specific locator. The abbreviated JSON below shows the stable workbook evidence fields; the actual worksheet and ranges depend on the indexed workbook and chunk configuration.
141
+
142
+ ```json
143
+ {
144
+ "source_path": "inputs-and-assumptions.xlsx",
145
+ "source_type": "workbook",
146
+ "source_sha256": "<64-character SHA-256>",
147
+ "locator": {
148
+ "kind": "excel-range",
149
+ "sheet": "<worksheet name>",
150
+ "range": "<bounding A1 range>",
151
+ "range_kind": "bounding",
152
+ "exact_ranges": ["<exact A1 range>"]
153
+ },
154
+ "provenance": ["lexical", "vector"]
155
+ }
156
+ ```
157
+
158
+ The source path and SHA-256 identify the workbook version. The worksheet and `exact_ranges` identify the cells represented in the indexed passage. `range` is only the convenient bounding rectangle and can include cells that did not contribute to the passage. Search rank identifies candidate evidence; inspect the returned cells before using the result to support a claim.
159
+
160
+ The portable workbook citation is the source path and SHA-256 together with the worksheet and A1 ranges. Exact-range opening is handled by the workbook viewer or by a provider-specific link supplied separately.
161
+
162
+ #### Workbook boundaries
163
+
164
+ - `.xlsx` and `.xlsm` OOXML packages are supported. Legacy binary `.xls` files are outside the supported source set.
165
+ - Stored text, numeric, Boolean, error, formula, and cached formula values are retained. Cached values describe the workbook's stored state; TraceCite does not recalculate formulae.
166
+ - The parser reads stored package content only. It does not execute VBA or refresh external links, Power Query, pivot caches, or data connections.
167
+ - Style-only empty cells are ignored. Excel display formatting is not reconstructed, so styled date or time serials can remain numeric.
168
+ - Workbook chunks are row-oriented. The parser does not yet infer formal Excel tables or propagate complex multi-row headers into every row.
169
+
170
+ ### Normalise one table
171
+
172
+ ```sh
173
+ tracecite table normalise table.md --to text
174
+ tracecite table normalise table.html --from html --to debug-markdown
175
+ ```
176
+
177
+ ### Normalise one document
178
+
179
+ ```sh
180
+ tracecite document normalise report.md --to jsonl
181
+ tracecite document normalise report.md --to embedding-markdown --output report.embedding.md
182
+ ```
183
+
184
+ ### Retrieve retained pages and visual evidence
185
+
186
+ `tracecite page` reads retained PDF page text from the SQLite evidence database. Omitting the selector returns physical page 1. A selector can combine individual pages, closed ranges, and open ranges; overlapping terms are deduplicated and returned in ascending physical-page order.
187
+
188
+ ```sh
189
+ tracecite page reports/example.pdf --database evidence.sqlite
190
+ tracecite page reports/example.pdf 5,12-15,20 --database evidence.sqlite
191
+ tracecite page reports/example.pdf 97- --database evidence.sqlite
192
+ tracecite page reports/example.pdf -20 --database evidence.sqlite
193
+ tracecite page reports/example.pdf all --database evidence.sqlite
194
+ ```
195
+
196
+ The standalone selector `all` is the only implicit complete-source form; it cannot be combined with another term. Multi-page text output marks each physical page. `--format json` returns an ordered array containing retained text, extraction metadata, a citation link, and validated paths for the indexed page render and figure crops. Search results expose the same page-render and figure-crop fields for page-local PDF matches.
197
+
198
+ `extract-pages` uses the same selector grammar but reads the indexed source PDF to create a derivative PDF and provenance manifest. The output directory must already exist outside the source root. TraceCite refuses stale source content, symlink output directories, overlap, and overwrite.
199
+
200
+ ```sh
201
+ mkdir -p ../tracecite-exports
202
+ tracecite extract-pages reports/example.pdf 5,12-15,20 \
203
+ --database evidence.sqlite \
204
+ --output-dir ../tracecite-exports
205
+ ```
206
+
207
+ Use database-backed text or indexed page assets for page-local questions. Select `all` only when the complete source is intentionally required.
208
+
209
+ ### Build the documentation
210
+
211
+ ```sh
212
+ uv run tracecite docs build docs
213
+ uv run tracecite docs build docs_quarto_py --only python
214
+ uv run tracecite docs build docs_quarto_jl --only julia
215
+ ```
216
+
217
+ <!-- TODO:
218
+ Explain the expected `[WARNING] Could not fetch resource`
219
+ -->
220
+
221
+ The public builder discovers configured render inputs, automatically selects the complete site when both runtimes are available, and safely falls back to the available language with exact skipped-file warnings.
222
+ Use `--only python` or `--only julia` for explicit reduced builds.
223
+ External projects can invoke `tracecite prepare` directly after their Quarto render when they already have rendered and staged retained Markdown.
224
+
225
+ See `docs/examples/report-adoption/aemo-isp-comparison/` for a complete, real example of the author -> check -> index -> search -> doctor -> publish-only workflow using two AEMO Integrated System Plan reports.
226
+
227
+ `docs/examples/report-adoption/aemo-isp-comparison/docs/tracecite.toml` demonstrates the documentation evidence contract. Schema version 1 defines exactly `authored_root`, `retained_root`, `staged_root`,
228
+ `source_links`, `index_output`, `publication_exclude`, and optional
229
+ `host_render_command` under `[docs]`. Contract paths are repository-relative and
230
+ must remain contained within the repository.
231
+
232
+ If Julia is unavailable, the automatic build names every configured Julia source it skips and renders the Python overlay without modifying Julia sources.
233
+
234
+ To open the final docs:
235
+
236
+ ```sh
237
+ open docs/build/index.html
238
+ ```
239
+
240
+ ### Direct preparation command
241
+
242
+ ```sh
243
+ tracecite prepare docs/build \
244
+ --project-config docs/_quarto.yml \
245
+ --project-profile python \
246
+ --source-project docs \
247
+ --keep-embedding-markdown .tracecite/embedding-site \
248
+ --render-embedding-site
249
+ ```
250
+
251
+ The generated copy includes `_tracecite/tables.jsonl` and `_tracecite/manifest.json`. Its `_quarto.yml` is derived from the selected documentation profile, preserving theme and navigation while removing execution engines and build hooks. It is disposable, gitignored, and excluded from recursive ingestion.
252
+
253
+ The copied Markdown is deliberately redundant: it keeps the original table for audit and appends the normalised representation for inspection. Normal indexing can consume `tables.jsonl` or the `NormalisedTable` objects directly without writing the copied site.
254
+
255
+ ### Install the agent skills
256
+
257
+ TraceCite bundles three agent skills: `using-tracecite`, `writing-evidence-backed-reports`, and `routing-documentation-source-links`. Copy them into the project's `.agents/skills/` directory:
258
+
259
+ ```sh
260
+ tracecite skills install
261
+ ```
262
+
263
+ `--target` installs them into another skills directory, for example Claude Code's personal skills:
264
+
265
+ ```sh
266
+ tracecite skills install --target ~/.claude/skills
267
+ ```
268
+
269
+ Running the command again replaces the copies with the skills from the installed TraceCite version.
270
+
271
+ ## Contributing
272
+
273
+ ### Environment
274
+
275
+ The core package is fully operated under Python.
276
+
277
+ ```sh
278
+ uv venv
279
+ source .venv/bin/activate
280
+ uv pip install -e ".[evidence,test]"
281
+ ```
282
+
283
+ `requirements.txt` pins the runtime and evidence dependencies to the latest versions that `pyproject.toml` allows. Install it for a reproducible environment, and refresh it with [`pru`](https://github.com/yasirroni/pru). Installing `-e ".[evidence]"` in the same command keeps the upgrades within the `pyproject.toml` bounds:
284
+
285
+ ```sh
286
+ uv pip install -r requirements.txt
287
+ pru -r requirements.txt upgrade_requirements --cmd 'uv pip install --upgrade -e ".[evidence]"'
288
+ ```
289
+
290
+ To build the whole `docs/`, Julia environment is needed.
291
+
292
+ ```sh
293
+ julia --project=. -e 'using Pkg; Pkg.instantiate()'
294
+ ```
295
+
296
+ ### Lint and format
297
+
298
+ [pre-commit](https://pre-commit.com/) runs [Ruff](https://docs.astral.sh/ruff/) on the Python files in each commit. Install it once and enable the hook:
299
+
300
+ ```sh
301
+ uv tool install pre-commit
302
+ pre-commit install
303
+ ```
304
+
305
+ To check every file, run `pre-commit run --all-files`.
306
+
307
+ ### Test
308
+
309
+ Python tests and build:
310
+
311
+ ```sh
312
+ python -m pytest
313
+ uv build
314
+ ```
315
+
316
+ The Julia package is tested by its documentation example, `docs/examples/julia/dirty_dataframe.jl`. Building the documentation runs the example, including its hidden checks:
317
+
318
+ ```sh
319
+ tracecite docs build docs
320
+ ```
@@ -0,0 +1,76 @@
1
+ tracecite/__init__.py,sha256=7g7F8584THcTYthCvIpjJz-FsrsYFF89OnhUtqI7dW0,853
2
+ tracecite/__main__.py,sha256=k1ocEWawweo1qCJWNFAAvyxz3tcY13dzvCenHszij30,48
3
+ tracecite/cli.py,sha256=UO0CweiED-8fkE6p88yqcX5kIba0t_tlECbzyrKfMMU,24557
4
+ tracecite/docs/__init__.py,sha256=vkfGt1vRVx_quW9gGxhWyWUhRhUhhTEx63THkHk3Ja8,1377
5
+ tracecite/docs/build.py,sha256=qA8ZgRFYCAebwWe6lRnkHYTi7gGuu4sDQ04AlA0nyiA,13325
6
+ tracecite/docs/config.py,sha256=awohrTx_U0Pv9znoisFicPNVW-06JZiP5mTHi7ifA_o,4413
7
+ tracecite/docs/contract.py,sha256=amr3LJVGvWuVbe5HI2yF3ApEId-7TZIuFoJ2yHyorXc,444
8
+ tracecite/docs/modes.py,sha256=AKzhASEGkfAaZu9E9BI-ggakTZ8aLed9mXECp1g82HE,8836
9
+ tracecite/docs/stage.py,sha256=dhZ22GYHP7cBs4U3qtswRr_JgHErHvvJwGamg0lF-AI,13429
10
+ tracecite/docs/vectorize.py,sha256=KQHLBcMuj_mQ_fj7ZXBjTNL9ILe4NMew7voYi3Uo9-Y,16221
11
+ tracecite/evidence/__init__.py,sha256=d14srPFtLzxPNm-B4qvL4t_fD6t8LWSdZYgma8zEM64,107
12
+ tracecite/evidence/chunking.py,sha256=Trb4OtXlR1dnybwF6isy8YKxnRIAR3tIVXs0ydlp51A,7417
13
+ tracecite/evidence/commands.py,sha256=mAz0FFbRrdUAxjPZSFsPbyDUXWgAj2RFHieBC5ExFeo,19308
14
+ tracecite/evidence/config.py,sha256=1_c5Xp2gvVrSqPGMZacYibT5k64MVeILg796PRBjLH4,1425
15
+ tracecite/evidence/embedding.py,sha256=GKTREOD8c98CNGud_ij945Tl4TfU0mp0SqgOB9KeCA0,1971
16
+ tracecite/evidence/manifest.py,sha256=s1RddG8KF2cy8pu-D9A3hpsJMCv7yfKBhUMM2XFYC8s,6607
17
+ tracecite/evidence/page_extraction.py,sha256=UmfANiPM8GvdDlIhavivfcSwOqGj_gpojTPFUO_fkl4,7089
18
+ tracecite/evidence/page_output.py,sha256=RrP4eYFtwFXSspmUsbHewDULVZlOr6j55voc9aPH5fk,2793
19
+ tracecite/evidence/page_selection.py,sha256=PdPiM4vmlSReQfMGQR7sFSyV7n9SHMKxTRTRSmPGN0M,4202
20
+ tracecite/evidence/paths.py,sha256=Pi8gCDYx6NbcfIMy7w2wwhG2xQGuDjJtM7gTakpZzyo,3099
21
+ tracecite/evidence/schema.py,sha256=c_TGIJ95wvTY_G-vWPvxfo7AZ7pkYCg6fBwcVcLxSBA,20139
22
+ tracecite/evidence/source_links.py,sha256=SmkFGAOOzvLv4nnuAuhGEey8HLY5tSehX4nVVPSpzHo,6940
23
+ tracecite/evidence/sync.py,sha256=zwqsKAhZbbqoDnylx8G8P2O-6trhpI0eTBoOLrzzXaI,56594
24
+ tracecite/evidence/vector_backend.py,sha256=wPPR_3o9GnpxHpeBQOX0eb5EACgBQa8JQpcvVKj-XkI,4478
25
+ tracecite/evidence/verify.py,sha256=hFzNrHNvpKeoH2E89hcwh03cnd04vO34pIGVqsDiGFc,13242
26
+ tracecite/evidence/parsers/__init__.py,sha256=wkcFlHxM_gOWwkSIP5TM4kttwPSXgEE4KWkzqU5RcIM,75
27
+ tracecite/evidence/parsers/base.py,sha256=i46IoUjYE07_yb13tlwY06cHBoLYidTZVL223BgQ5Cc,1946
28
+ tracecite/evidence/parsers/markdown.py,sha256=eUC33Urh6r6pxGEDI_GKuqw4wyZg-CIw0OwXWkkYdxE,4717
29
+ tracecite/evidence/parsers/pdf.py,sha256=W7AtjblxUg-oAPPPNv9GfYupw6o6kn9GUxaG9gp_1M8,11249
30
+ tracecite/evidence/parsers/workbook.py,sha256=Yin_QhXbKcPNaaMxkha_pD-9Wcs_PLzqewChsVkoBXY,11863
31
+ tracecite/skills/routing-documentation-source-links/SKILL.md,sha256=qocPR_YVZpVl40jmYWo577iRgkqnuTE2fS1ir-A7iEs,10239
32
+ tracecite/skills/routing-documentation-source-links/agents/openai.yaml,sha256=Ub26qeIKBFTJJ3HjsGSS0TZz7cxLsxRP5RnzKPp9J7c,169
33
+ tracecite/skills/routing-documentation-source-links/references/documenter-integration.md,sha256=1SW604WCa9sv2y0kOdSabxC0HRO3fyeR48zQY2JkRv0,2322
34
+ tracecite/skills/routing-documentation-source-links/references/registry-contract.md,sha256=jWWKgg53ur_xIU-khbQh7bovqmSFbtV3KFZ9g08XyFs,3616
35
+ tracecite/skills/routing-documentation-source-links/references/staging-and-rewriting.md,sha256=A8X2l3RJOJsHOc4RbB7IajtBkgOJcOxbNp7JFCvIrjs,5067
36
+ tracecite/skills/routing-documentation-source-links/references/validation-and-failure-modes.md,sha256=QKl1yidnonP6Y0R4mR0dbyiia5RQ-WXK0QnKvL2hEh4,2561
37
+ tracecite/skills/using-tracecite/SKILL.md,sha256=VGF1iZ031qzwpO2xsC-BRhBDXQm5x-Tpdg9J2UT5eZQ,9512
38
+ tracecite/skills/using-tracecite/agents/openai.yaml,sha256=xuYjZ2BkD5rzKf-pXY3nJ49Z0-30VKsiZqqk6ddCmQg,167
39
+ tracecite/skills/using-tracecite/references/architecture.md,sha256=fIsOs3-0jT_ReElKjDeXJffxPL4m9GbO1A-LUzWwgBc,3841
40
+ tracecite/skills/using-tracecite/references/pdf-and-assets.md,sha256=A_p3O2VT6o_lhmxEPUyvOWQyx_CyVpvyviSorw68tSo,6849
41
+ tracecite/skills/using-tracecite/references/retrieval.md,sha256=RLAOIcnLZqcPuTi-9DLgLvK5rtg2FM_Kplrz7mj5Mv0,4448
42
+ tracecite/skills/using-tracecite/references/schema-and-migrations.md,sha256=Pw6v7342z4t3Umouociy6LIv9PzPwTeUbqWJ8XV6iu4,2350
43
+ tracecite/skills/using-tracecite/references/synchronisation.md,sha256=DlyhQ0dNSJxlUmGPrSJl9vlyrVNfTPE7zKNimLYPPdA,6227
44
+ tracecite/skills/using-tracecite/references/workspace-runtime.md,sha256=wl0lOfDWRR4VCbaAg9UKiUl8nSg5UrYQYP8D4b7Hk-I,1329
45
+ tracecite/skills/writing-evidence-backed-reports/SKILL.md,sha256=OTS56tuPaVlvL3PRMEu2fw1UyE4_5LVLfAdss6nocJI,6210
46
+ tracecite/skills/writing-evidence-backed-reports/agents/openai.yaml,sha256=XqTkrr4V5_XCRlTLXwX4GHJkynfSS4MEWymFOstGtpg,145
47
+ tracecite/skills/writing-evidence-backed-reports/fixtures/README.md,sha256=wCX1Fn_iBs96btg6xepwGkJdQEh71OQBlX_fGx6vMc8,571
48
+ tracecite/skills/writing-evidence-backed-reports/fixtures/source-links.toml,sha256=xZmJUAxLINIjLv-orCc0TckJO4tuE4-ATzzbsyoIVDk,438
49
+ tracecite/skills/writing-evidence-backed-reports/fixtures/validate_fixtures.py,sha256=r5q3PuTW7Xo0Zd2WXl8-GLTUuVBb3MwdV8HBgO-Wxb0,9523
50
+ tracecite/skills/writing-evidence-backed-reports/fixtures/reports/invalid-bad-path.md,sha256=5iSU36KZvkBUQqtrPRhTREFTBx2SvZV-OJocE0OFnP4,188
51
+ tracecite/skills/writing-evidence-backed-reports/fixtures/reports/invalid-grammar.md,sha256=To_t2kXD4GEIa2cdZ0bTpazDO5s-TJZVuHA2w-qDO5s,335
52
+ tracecite/skills/writing-evidence-backed-reports/fixtures/reports/invalid-missing-definition.md,sha256=DyquSTa1AevXUg53G2uTX-8tkDKPyrA-OmTuOA37g_0,158
53
+ tracecite/skills/writing-evidence-backed-reports/fixtures/reports/invalid-page-not-indexed.md,sha256=qtfWRdg_kU__TgJ7-6TLARiGcoKMj90xpnLX9PGW3UA,229
54
+ tracecite/skills/writing-evidence-backed-reports/fixtures/reports/invalid-unindexed-path.md,sha256=fBAmDJImmB3oN2Chxuu_YLFCrMYpzpb183Uuux02mDw,201
55
+ tracecite/skills/writing-evidence-backed-reports/fixtures/reports/valid-grammar.md,sha256=4jzWmdjh3jGgRY9ZomQvnOnBdxujj3l5y4RMMF4yN58,342
56
+ tracecite/skills/writing-evidence-backed-reports/fixtures/reports/valid-report.md,sha256=aOa-EezOcFX8PSGu_Sh8T3ANCOI08I86Ccg1x5zppUk,1791
57
+ tracecite/skills/writing-evidence-backed-reports/references/images-and-source-links.md,sha256=PTi2h9C2xS6ZSGl6WR6mKTeypQC1_J-z4YuTRuo0R3w,2003
58
+ tracecite/skills/writing-evidence-backed-reports/references/quotation-and-verification.md,sha256=6JLW_8lOTNFYMsYCJI0VzSMP_tQag5AS9VU-tOFRm68,2159
59
+ tracecite/skills/writing-evidence-backed-reports/references/reference-style-citations.md,sha256=j2wh6jciDpNJOotnKk5r5g2Sx9w7KUnY5YEBCyFAceo,2013
60
+ tracecite/skills/writing-evidence-backed-reports/references/report-structure.md,sha256=KR4uGuiirZ4beBU4Uo49ag6it0gy6T-ZVKgJ4dSxugU,2367
61
+ tracecite/tables/__init__.py,sha256=A_3gMmDXdB9GgJYo5mxIoUeRbC60wMTCG0V8sBKeeT8,1199
62
+ tracecite/tables/_text.py,sha256=QZ1dx678kq3YFJzfa14f7gN1GQPqMq0TQp5vBoyvJhI,4090
63
+ tracecite/tables/document.py,sha256=8SCFx22629gk1ljPOzmFyMGDMNC887khdfc-OdJ5lFk,19955
64
+ tracecite/tables/html.py,sha256=ya_uJ0ycz8AM4uF7RGJJEb-s-A0Lijiy6tmoxIDMu8s,10087
65
+ tracecite/tables/models.py,sha256=DMyxnSf3wHFRFu9ceOn2qaUMtmgal8ecNcb01oBd_rQ,3841
66
+ tracecite/tables/normalise.py,sha256=zpRr8jvvCOONNz1OllrKx0puO-cajPIoXR0HX9nygas,26278
67
+ tracecite/tables/pandoc.py,sha256=NNoGiJ3SJgOO2A36A6QF0NzuyZrST3J5_VGexCHewHk,16607
68
+ tracecite/tables/publish.py,sha256=_NrrbRJRtb1XzH-OYupe-ev89b87EcY7iMLRd9-bkDY,7709
69
+ tracecite/tables/render.py,sha256=UZut3eaPN_AAshwhHmjuvkEs2dWnE7rCLcDBzbatXKo,4176
70
+ tracecite/tables/site.py,sha256=yDJRRHrhtB9SFXFUfJU14S-EzdfUvMXbfPgqkOJFXPE,15673
71
+ tracecite-0.0.2.dist-info/licenses/LICENSE,sha256=iZrNandZeH9_cnud-5reJASFg7NCpaZjeGSYZ4FPmmI,1070
72
+ tracecite-0.0.2.dist-info/METADATA,sha256=iJxhay00suVVu1fhx0OQ_2CsNcaz3A5sfCFAjM6FeyY,14212
73
+ tracecite-0.0.2.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
74
+ tracecite-0.0.2.dist-info/entry_points.txt,sha256=kK-O-3UmcG0Z1n5rderBjSRAdcYXZsZ0XHLzPLxv_hA,49
75
+ tracecite-0.0.2.dist-info/top_level.txt,sha256=u6hCqnAaeaAu9qwjSqDaMu0coiRf_FkzUzSSiDIBN8M,10
76
+ tracecite-0.0.2.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (83.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ tracecite = tracecite.cli:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 ARPST-UniMelb
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.
@@ -0,0 +1 @@
1
+ tracecite