paratext-cli 0.4.0__tar.gz → 0.4.2__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.
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/PKG-INFO +1 -1
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/pyproject.toml +1 -1
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/__init__.py +1 -1
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/review/runs.py +1 -1
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/review/server.py +18 -1
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/review/static/app.js +19 -4
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/review/static/index.html +6 -3
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/uv.lock +1 -1
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.github/workflows/ci.yml +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.github/workflows/publish.yml +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.gitignore +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/intro.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-1 split-the-framework-out-of-paratext-nls-and-release-it.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-10 remove-the-watttime-provider.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-11 make-paratext-new-self-installing.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-12 add-paratext-guide-so-agents-can-self-orient.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-13 guard-schema-prompt-and-view-drift.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-14 build-the-human-corrected-gold-eval-set-in-review.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-15 add-marc-and-dublin-core-export-formats.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-16 ship-schema-json-with-each-exported-dataset.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-17 add-the-project-inspector-and-fix-sqlite-thread-safety.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-18 point-the-default-card-detector-at-the-published-nls-repo.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-19 add-the-scope-aware-export-modal.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-2 add-the-inbuilt-review-web-ui.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-20 move-the-review-ui-onto-oat.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-21 render-entries-as-tables-read-only-and-editable.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-22 publish-gold-to-hugging-face-with-sign-in-with-hf.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-23 warn-on-incomplete-provenance-without-blocking-publication.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-24 add-the-paratext-logo-and-favicon.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-25 remove-duplicated-helpers-across-the-codebase.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-26 split-store-and-dataset-loading-out-of-the-review-server.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-27 lean-the-readme-and-split-the-reference-into-docs.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-28 add-notice-and-make-the-repository-public.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-29 rename-the-distribution-to-paratext-cli-and-publish-to-pypi.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-3 make-the-review-server-configurable.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-30 make-project-discovery-work-from-any-environment.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-31 give-clear-errors-for-provider-and-source-misconfiguration.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-32 add-a-configurable-output-budget-and-provider-extra-body-pas.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-33 bring-marc-output-up-to-isbd-punctuation-and-leader-conventi.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-34 replace-the-blind-margin-crop-with-a-content-aware-fallback.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-35 add-the-opt-in-ai-assistance-note-to-marc-and-dc-export.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-36 emit-only-one-main-entry-per-marc-record.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-37 extend-cli-test-coverage-to-argparse-wiring-round-resolution.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-38 walk-a-real-run-from-a-fresh-scaffold.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-39 add-the-paratext-dependency-when-scaffolding-into-an-existin.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-4 genericise-the-defaults-away-from-local-inference-servers.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-40 fix-cross-batch-accumulation-overwriting-metadata-jsonl.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-41 remove-the-silent-hf-default-from-format.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-42 add-paratext-export-db.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-43 decide-whether-a-gold-export-ships-as-a-held-out-test-split.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-44 hf-export-v2-multi-image-projects-and-round-versioning-as-hu.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-45 add-paratext-bench.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-46 review-ui-polish-flagged-stat-key-score-badge-and-verdict-to.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-47 eval-editor-reach-view-hidden-fields-and-diff-corrected-agai.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-48 add-richer-scaffolder-field-types-for-enums-and-lists.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-49 extend-the-carbon-providers.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-5 add-source-adapters-and-slim-the-project-layout.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-50 build-the-wordmark-in-a-mono-typeface.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-51 decide-whether-to-pursue-the-pypi-paratext-name.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-6 rename-init-to-new-and-document-every-cli-flag.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-7 key-runs-and-packages-on-the-prompt-hash.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-8 add-paratext-export-for-publishing-a-reviewed-round.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-9 add-carbon-aware-scheduling.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/AGENTS.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/LICENSE +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/NOTICE +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/README.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/assets/logo.png +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/assets/logo.svg +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/docs/configuration.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/docs/export.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/docs/green-scheduling.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/docs/hf-export-spec.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/docs/publishing.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/docs/scanned-cards.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/paratext.example.toml +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/AGENTS.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/carbon.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/cards.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/catalogue.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/cli.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/config.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/datasets.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/extract.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/hf_export.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/inspect.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/io.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/packaging.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/paratext.example.toml +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/projects/__init__.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/projects/card_template/__init__.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/projects/card_template/prompt.md +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/projects/card_template/schema.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/records.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/review/__init__.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/review/hf_oauth.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/review/sessions.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/review/static/favicon.svg +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/review/static/oat.min.css +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/review/static/oat.min.js +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/runner.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/scaffold.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/sources.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/store.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/src/paratext/workshop.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_carbon.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_catalogue.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_cli.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_config.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_extract.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_guide.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_hf_export.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_io.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_packaging.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_project_audit.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_records.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_review.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_rounds.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_runner.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_runs.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_scaffold.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_sessions.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_show_through.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_sources.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_verso.py +0 -0
- {paratext_cli-0.4.0 → paratext_cli-0.4.2}/tests/test_workshop.py +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# the plain name on PyPI belongs to an unrelated project, so the distribution
|
|
4
4
|
# carries the `-cli` suffix.
|
|
5
5
|
name = "paratext-cli"
|
|
6
|
-
version = "0.4.
|
|
6
|
+
version = "0.4.2"
|
|
7
7
|
description = "Modular, project-based metadata extraction from digitised library/archive collections with a multimodal model"
|
|
8
8
|
readme = "README.md"
|
|
9
9
|
# Core is pure-Python + numpy/pillow/pydantic. The [detector] extra needs
|
|
@@ -155,6 +155,18 @@ class Handler(BaseHTTPRequestHandler):
|
|
|
155
155
|
return self._json({"error": str(e)}, 429)
|
|
156
156
|
self._json(job.as_dict(), 202)
|
|
157
157
|
|
|
158
|
+
def _api_workshop_reset(self):
|
|
159
|
+
"""Throw this session away and start again — the facilitator's answer to
|
|
160
|
+
an attendee who has painted themselves into a corner. Deletes only the
|
|
161
|
+
caller's own workspace; there is deliberately no way to reset someone
|
|
162
|
+
else's from the browser."""
|
|
163
|
+
session = self._workshop_or_404()
|
|
164
|
+
self.sessions.reset(session.id)
|
|
165
|
+
fresh = self.sessions.create()
|
|
166
|
+
self._session_cache, self._set_cookie = fresh, True
|
|
167
|
+
self._store_cache = None
|
|
168
|
+
self._json({"ok": True, "session": fresh.id})
|
|
169
|
+
|
|
158
170
|
def _api_workshop_job(self, job_id):
|
|
159
171
|
self._workshop_or_404()
|
|
160
172
|
job = self.runs.get(job_id)
|
|
@@ -317,6 +329,8 @@ class Handler(BaseHTTPRequestHandler):
|
|
|
317
329
|
def do_DELETE(self):
|
|
318
330
|
u = urlparse(self.path)
|
|
319
331
|
qs = parse_qs(u.query)
|
|
332
|
+
if u.path == "/api/workshop/session":
|
|
333
|
+
return self._api_workshop_reset()
|
|
320
334
|
if u.path == "/api/reset":
|
|
321
335
|
if self._body().get("confirm") is not True:
|
|
322
336
|
return self._json({"error": "Pass {confirm: true} to reset."}, 400)
|
|
@@ -776,8 +790,11 @@ def _workshop_defaults(datasets: list[dict], endpoint: dict) -> dict:
|
|
|
776
790
|
view = json.loads((newest["dir"] / "view.json").read_text())
|
|
777
791
|
for panel in view.get("panels", []):
|
|
778
792
|
if panel.get("source") == "model_output":
|
|
793
|
+
# Type left empty on purpose: it resolves to "auto" in the
|
|
794
|
+
# editor, so the first save shows what was inferred rather
|
|
795
|
+
# than presenting every field as text.
|
|
779
796
|
fields = [
|
|
780
|
-
{"name": f["key"], "type": "
|
|
797
|
+
{"name": f["key"], "type": "", "description": ""}
|
|
781
798
|
for f in panel.get("fields", [])
|
|
782
799
|
]
|
|
783
800
|
except (OSError, json.JSONDecodeError):
|
|
@@ -207,7 +207,7 @@ function renderHeader() {
|
|
|
207
207
|
const nav = document.querySelector("nav[data-topnav]");
|
|
208
208
|
if (!nav) return;
|
|
209
209
|
|
|
210
|
-
// Gate Review/
|
|
210
|
+
// Gate Review/Results until a dataset is chosen — with no selection they just
|
|
211
211
|
// fall back to the picker (looking like dead buttons).
|
|
212
212
|
const gated = state.dataset ? "" : "none";
|
|
213
213
|
for (const id of ["nav-review", "nav-stats"]) {
|
|
@@ -392,7 +392,7 @@ function render() {
|
|
|
392
392
|
// At the end of the pass the primary CTA becomes a route to the stats summary,
|
|
393
393
|
// rather than a Next button that silently no-ops.
|
|
394
394
|
const nextControl = atLast
|
|
395
|
-
? `<a href="#/stats" class="button primary">Done — see
|
|
395
|
+
? `<a href="#/stats" class="button primary">Done — see results →</a>`
|
|
396
396
|
: `<button id="next" class="primary">Next →</button>`;
|
|
397
397
|
const nav = `
|
|
398
398
|
<div class="controls">
|
|
@@ -791,7 +791,7 @@ function renderEditor() {
|
|
|
791
791
|
<button id="ev-clear" class="outline" ${s.gold ? "" : "disabled"}>Clear correction</button>
|
|
792
792
|
${
|
|
793
793
|
atLast
|
|
794
|
-
? `<a href="#/stats" class="button primary">Done — see
|
|
794
|
+
? `<a href="#/stats" class="button primary">Done — see results →</a>`
|
|
795
795
|
: `<button id="ev-next" class="primary">Save & next →</button>`
|
|
796
796
|
}
|
|
797
797
|
</div>
|
|
@@ -1210,7 +1210,7 @@ async function renderStats() {
|
|
|
1210
1210
|
.join("");
|
|
1211
1211
|
|
|
1212
1212
|
document.getElementById("view").innerHTML = `
|
|
1213
|
-
<h2>
|
|
1213
|
+
<h2>Results — ${escapeHtml(s.dataset)} <small class="text-light">(${escapeHtml(s.schema)})</small></h2>
|
|
1214
1214
|
|
|
1215
1215
|
<dl>
|
|
1216
1216
|
<div class="field-row"><dt>Reviewed</dt><dd>${s.annotated} of ${s.total} (${
|
|
@@ -1747,6 +1747,11 @@ function renderWorkshop() {
|
|
|
1747
1747
|
</div>
|
|
1748
1748
|
|
|
1749
1749
|
<div id="ws-status" class="mt-4"></div>
|
|
1750
|
+
|
|
1751
|
+
<p class="mt-4" style="font-size:.875rem;">
|
|
1752
|
+
<button class="button outline small" id="ws-reset">Start over</button>
|
|
1753
|
+
<span class="text-light"> — throws away your prompt, fields and rounds.</span>
|
|
1754
|
+
</p>
|
|
1750
1755
|
`;
|
|
1751
1756
|
|
|
1752
1757
|
document.getElementById("ws-add").addEventListener("click", () => {
|
|
@@ -1758,6 +1763,16 @@ function renderWorkshop() {
|
|
|
1758
1763
|
if (btn) btn.closest("tr").remove();
|
|
1759
1764
|
});
|
|
1760
1765
|
document.getElementById("ws-run").addEventListener("click", startWorkshopRun);
|
|
1766
|
+
document.getElementById("ws-reset").addEventListener("click", async () => {
|
|
1767
|
+
if (!confirm("Start over? Your prompt, fields and rounds are deleted.")) return;
|
|
1768
|
+
await fetch("api/workshop/session", { method: "DELETE" });
|
|
1769
|
+
state.workshop = undefined;
|
|
1770
|
+
state.datasets = [];
|
|
1771
|
+
state.dataset = null;
|
|
1772
|
+
await loadWorkshop();
|
|
1773
|
+
await loadDatasets();
|
|
1774
|
+
renderWorkshop();
|
|
1775
|
+
});
|
|
1761
1776
|
}
|
|
1762
1777
|
|
|
1763
1778
|
async function startWorkshopRun() {
|
|
@@ -114,6 +114,8 @@
|
|
|
114
114
|
.proj-meta { margin: .25rem 0 .75rem; font-size: .8125rem; word-break: break-word; }
|
|
115
115
|
.prompt-text { white-space: pre-wrap; font-size: .8125rem; max-height: 30rem;
|
|
116
116
|
overflow-y: auto; }
|
|
117
|
+
/* Results closes the loop, so it sits apart from the two doing-steps. */
|
|
118
|
+
.nav-results { margin-left: .5rem; }
|
|
117
119
|
/* Eval-set call to action. The gold set is the point of reviewing, so it
|
|
118
120
|
is a button, not a statistic. The hover ring is a conic gradient rotated
|
|
119
121
|
through a registered @property — a plain gradient can't be animated. */
|
|
@@ -197,10 +199,11 @@
|
|
|
197
199
|
<body>
|
|
198
200
|
<nav data-topnav>
|
|
199
201
|
<a href="#/select"><strong>paratext</strong></a>
|
|
200
|
-
|
|
201
|
-
<a href="#/stats" id="nav-stats" class="button outline small">Stats</a>
|
|
202
|
+
<!-- Workflow order: edit, run, look at what came back. -->
|
|
202
203
|
<!-- Workshop mode only; unhidden by the app when /api/workshop/state answers. -->
|
|
203
|
-
<a href="#/workshop" id="nav-workshop" class="button outline small" hidden>Prompt</a>
|
|
204
|
+
<a href="#/workshop" id="nav-workshop" class="button outline small" hidden>Prompt editor</a>
|
|
205
|
+
<a href="#/review" id="nav-review" class="button outline small">Review</a>
|
|
206
|
+
<a href="#/stats" id="nav-stats" class="button outline small nav-results">Results</a>
|
|
204
207
|
<span id="progress" style="margin-left:auto; font-size:.875rem;"></span>
|
|
205
208
|
<!-- aria-label, NOT title: Oat converts every [title] into a data-tooltip
|
|
206
209
|
whose ::after is absolutely positioned and centred on the element. On
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-10 remove-the-watttime-provider.md
RENAMED
|
File without changes
|
{paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-11 make-paratext-new-self-installing.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-19 add-the-scope-aware-export-modal.md
RENAMED
|
File without changes
|
{paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-2 add-the-inbuilt-review-web-ui.md
RENAMED
|
File without changes
|
{paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-20 move-the-review-ui-onto-oat.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-24 add-the-paratext-logo-and-favicon.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-49 extend-the-carbon-providers.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paratext_cli-0.4.0 → paratext_cli-0.4.2}/.helical/tasks/PTX-9 add-carbon-aware-scheduling.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|