zyntalic 0.3.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.
Files changed (77) hide show
  1. zyntalic-0.3.0/LICENSE +21 -0
  2. zyntalic-0.3.0/PKG-INFO +210 -0
  3. zyntalic-0.3.0/README.md +153 -0
  4. zyntalic-0.3.0/apps/__init__.py +1 -0
  5. zyntalic-0.3.0/apps/cli/__init__.py +0 -0
  6. zyntalic-0.3.0/apps/cli/__main__.py +4 -0
  7. zyntalic-0.3.0/apps/web/__init__.py +1 -0
  8. zyntalic-0.3.0/apps/web/app.py +705 -0
  9. zyntalic-0.3.0/pyproject.toml +82 -0
  10. zyntalic-0.3.0/setup.cfg +4 -0
  11. zyntalic-0.3.0/tests/test_api_connection.py +24 -0
  12. zyntalic-0.3.0/tests/test_cache.py +92 -0
  13. zyntalic-0.3.0/tests/test_determinism.py +13 -0
  14. zyntalic-0.3.0/tests/test_generator_stages.py +32 -0
  15. zyntalic-0.3.0/tests/test_mirror_rules.py +80 -0
  16. zyntalic-0.3.0/tests/test_nlp_backend.py +19 -0
  17. zyntalic-0.3.0/tests/test_output_format.py +35 -0
  18. zyntalic-0.3.0/tests/test_pdf_cleaning.py +125 -0
  19. zyntalic-0.3.0/tests/test_quality_gate_golden.py +90 -0
  20. zyntalic-0.3.0/tests/test_sidecar_ir.py +196 -0
  21. zyntalic-0.3.0/tests/test_surface_rules.py +55 -0
  22. zyntalic-0.3.0/tests/test_syntax_parse.py +13 -0
  23. zyntalic-0.3.0/tests/test_translations.py +47 -0
  24. zyntalic-0.3.0/tests/test_translator_batch.py +16 -0
  25. zyntalic-0.3.0/tests/test_web_api.py +290 -0
  26. zyntalic-0.3.0/zyntalic/__init__.py +11 -0
  27. zyntalic-0.3.0/zyntalic/advanced_features.py +608 -0
  28. zyntalic-0.3.0/zyntalic/bifurcation_scanner.py +523 -0
  29. zyntalic-0.3.0/zyntalic/chiasmus.py +178 -0
  30. zyntalic-0.3.0/zyntalic/cli.py +58 -0
  31. zyntalic-0.3.0/zyntalic/core.py +1322 -0
  32. zyntalic-0.3.0/zyntalic/documentation.py +778 -0
  33. zyntalic-0.3.0/zyntalic/embeddings.py +235 -0
  34. zyntalic-0.3.0/zyntalic/enhanced_syntax.py +572 -0
  35. zyntalic-0.3.0/zyntalic/ir.py +90 -0
  36. zyntalic-0.3.0/zyntalic/lexicon_manager.py +598 -0
  37. zyntalic-0.3.0/zyntalic/logging_utils.py +25 -0
  38. zyntalic-0.3.0/zyntalic/morphology.py +382 -0
  39. zyntalic-0.3.0/zyntalic/nlp.py +108 -0
  40. zyntalic-0.3.0/zyntalic/phonology.py +609 -0
  41. zyntalic-0.3.0/zyntalic/resources/__init__.py +0 -0
  42. zyntalic-0.3.0/zyntalic/resources/lexicon/Alice_in_wonderland.json +501 -0
  43. zyntalic-0.3.0/zyntalic/resources/lexicon/Aristotle_Organon.json +520 -0
  44. zyntalic-0.3.0/zyntalic/resources/lexicon/Austen_PridePrejudice.json +626 -0
  45. zyntalic-0.3.0/zyntalic/resources/lexicon/Bacon_NovumOrganum.json +626 -0
  46. zyntalic-0.3.0/zyntalic/resources/lexicon/Cervantes_DonQuixote.json +626 -0
  47. zyntalic-0.3.0/zyntalic/resources/lexicon/Dante_DivineComedy.json +626 -0
  48. zyntalic-0.3.0/zyntalic/resources/lexicon/Darwin_OriginOfSpecies.json +626 -0
  49. zyntalic-0.3.0/zyntalic/resources/lexicon/Descartes_Meditations.json +573 -0
  50. zyntalic-0.3.0/zyntalic/resources/lexicon/Dostoevsky_BrothersKaramazov.json +626 -0
  51. zyntalic-0.3.0/zyntalic/resources/lexicon/Goethe_Faust.json +626 -0
  52. zyntalic-0.3.0/zyntalic/resources/lexicon/Homer_Iliad.json +626 -0
  53. zyntalic-0.3.0/zyntalic/resources/lexicon/Homer_Odyssey.json +626 -0
  54. zyntalic-0.3.0/zyntalic/resources/lexicon/Laozi_TaoTeChing.json +537 -0
  55. zyntalic-0.3.0/zyntalic/resources/lexicon/Melville_MobyDick.json +626 -0
  56. zyntalic-0.3.0/zyntalic/resources/lexicon/Milton_ParadiseLost.json +626 -0
  57. zyntalic-0.3.0/zyntalic/resources/lexicon/Plato_Republic.json +626 -0
  58. zyntalic-0.3.0/zyntalic/resources/lexicon/Shakespeare_Sonnets.json +564 -0
  59. zyntalic-0.3.0/zyntalic/resources/lexicon/Spinoza_Ethics.json +622 -0
  60. zyntalic-0.3.0/zyntalic/resources/lexicon/Sunzi_ArtOfWar.json +626 -0
  61. zyntalic-0.3.0/zyntalic/resources/lexicon/Tolstoy_WarPeace.json +626 -0
  62. zyntalic-0.3.0/zyntalic/resources/lexicon/Virgil_Aeneid.json +626 -0
  63. zyntalic-0.3.0/zyntalic/resources/lexicon/__init__.py +0 -0
  64. zyntalic-0.3.0/zyntalic/reverse.py +135 -0
  65. zyntalic-0.3.0/zyntalic/semantic_coherence.py +708 -0
  66. zyntalic-0.3.0/zyntalic/syntax.py +202 -0
  67. zyntalic-0.3.0/zyntalic/test_suite.py +1635 -0
  68. zyntalic-0.3.0/zyntalic/transformers.py +163 -0
  69. zyntalic-0.3.0/zyntalic/translator.py +911 -0
  70. zyntalic-0.3.0/zyntalic/utils/cache.py +280 -0
  71. zyntalic-0.3.0/zyntalic/utils/rng.py +19 -0
  72. zyntalic-0.3.0/zyntalic.egg-info/PKG-INFO +210 -0
  73. zyntalic-0.3.0/zyntalic.egg-info/SOURCES.txt +75 -0
  74. zyntalic-0.3.0/zyntalic.egg-info/dependency_links.txt +1 -0
  75. zyntalic-0.3.0/zyntalic.egg-info/entry_points.txt +2 -0
  76. zyntalic-0.3.0/zyntalic.egg-info/requires.txt +37 -0
  77. zyntalic-0.3.0/zyntalic.egg-info/top_level.txt +4 -0
zyntalic-0.3.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 zolton
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,210 @@
1
+ Metadata-Version: 2.4
2
+ Name: zyntalic
3
+ Version: 0.3.0
4
+ Summary: Deterministic synthetic-language toolkit (Zyntalic) with anchor priors and S-O-V-C surface order
5
+ Author: zolton
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/kugguk2022/Zyntalic_idiom
8
+ Project-URL: Documentation, https://github.com/kugguk2022/Zyntalic_idiom/tree/main/wiki
9
+ Project-URL: Issues, https://github.com/kugguk2022/Zyntalic_idiom/issues
10
+ Project-URL: Source, https://github.com/kugguk2022/Zyntalic_idiom
11
+ Keywords: synthetic-language,conlang,translation,schelling-points,deterministic
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Intended Audience :: End Users/Desktop
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Natural Language :: English
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Topic :: Artistic Software
23
+ Classifier: Topic :: Text Processing :: Linguistic
24
+ Requires-Python: >=3.10
25
+ Description-Content-Type: text/markdown
26
+ License-File: LICENSE
27
+ Requires-Dist: numpy>=1.24.0
28
+ Provides-Extra: dev
29
+ Requires-Dist: pytest>=8.0.0; extra == "dev"
30
+ Requires-Dist: ruff>=0.5.0; extra == "dev"
31
+ Requires-Dist: pytest-cov>=5.0.0; extra == "dev"
32
+ Requires-Dist: hypothesis>=6.100.0; extra == "dev"
33
+ Requires-Dist: coverage>=7.5.0; extra == "dev"
34
+ Requires-Dist: httpx>=0.27.0; extra == "dev"
35
+ Provides-Extra: web
36
+ Requires-Dist: fastapi>=0.110.0; extra == "web"
37
+ Requires-Dist: uvicorn[standard]>=0.29.0; extra == "web"
38
+ Requires-Dist: pydantic>=2.0.0; extra == "web"
39
+ Requires-Dist: python-multipart>=0.0.9; extra == "web"
40
+ Provides-Extra: embeddings
41
+ Requires-Dist: sentence-transformers>=2.6.0; extra == "embeddings"
42
+ Provides-Extra: embeddings-bge
43
+ Requires-Dist: sentence-transformers>=2.6.0; extra == "embeddings-bge"
44
+ Provides-Extra: pdf
45
+ Requires-Dist: pypdf>=5.0.0; extra == "pdf"
46
+ Provides-Extra: desktop
47
+ Requires-Dist: pywebview>=4.4.1; extra == "desktop"
48
+ Provides-Extra: data
49
+ Requires-Dist: requests>=2.31.0; extra == "data"
50
+ Requires-Dist: beautifulsoup4>=4.12.0; extra == "data"
51
+ Requires-Dist: tqdm>=4.66.0; extra == "data"
52
+ Provides-Extra: nlp
53
+ Requires-Dist: spacy>=3.7.0; extra == "nlp"
54
+ Requires-Dist: typer>=0.9.0; extra == "nlp"
55
+ Requires-Dist: click>=8.1.7; extra == "nlp"
56
+ Dynamic: license-file
57
+
58
+ # Zyntalic
59
+
60
+ <p align="center">
61
+ <img src="zyntalic-flow/public/favicon.svg" alt="Zyntalic logo" width="360">
62
+ </p>
63
+
64
+ <p align="center">
65
+ <strong>A deterministic synthetic-language engine for reproducible creative text.</strong>
66
+ </p>
67
+
68
+ <p align="center">
69
+ <a href="https://github.com/kugguk2022/Zyntalic_idiom/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/kugguk2022/Zyntalic_idiom/actions/workflows/ci.yml/badge.svg"></a>
70
+ <a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
71
+ <img alt="Python 3.10+" src="https://img.shields.io/badge/python-3.10%2B-3776AB.svg">
72
+ <img alt="Status: experimental" src="https://img.shields.io/badge/status-experimental-orange.svg">
73
+ </p>
74
+
75
+ Zyntalic maps source text to a stable constructed-language surface using seeded word generation, literary anchor priors, mixed Hangul/Latin forms, and Subject–Object–Verb–Context (S-O-V-C) ordering. Each non-reverse result ends with a machine-readable `⟦ctx: ...⟧` trace.
76
+
77
+ The baseline runs locally with NumPy. Embeddings, NLP, PDF extraction, the web API, and desktop integration are optional.
78
+
79
+ > [!IMPORTANT]
80
+ > Zyntalic is experimental. Output stability is a design goal within a fixed code and resource version, not a permanent compatibility guarantee. Record the package version and generation options with production assets.
81
+
82
+ ## Why Zyntalic?
83
+
84
+ - **Repeatable:** stable seeded generation supports revision and regeneration.
85
+ - **Inspectible:** anchors, frames, sigils, scope, and warnings are available as structured metadata.
86
+ - **Rule-first:** the core works without a hosted model or heavyweight NLP stack.
87
+ - **Controllable:** anchor mode, frames, register, dialect, evidentiality, engine, and mirror rate are explicit options.
88
+ - **Integrable:** use the Python API, CLI, authenticated REST API, React interface, or desktop launcher.
89
+
90
+ Read [the idea](wiki/idea.md), [core concepts](wiki/core-concepts.md), and the honest [current-state inventory](wiki/current-state.md) for the full project context.
91
+
92
+ ## Quick start
93
+
94
+ ### Python and CLI
95
+
96
+ ```bash
97
+ python -m venv .venv
98
+ source .venv/bin/activate # Windows: .venv\Scripts\activate
99
+ python -m pip install -e .
100
+
101
+ zyntalic translate "I see the river at night." --format plain
102
+ ```
103
+
104
+ From Python:
105
+
106
+ ```python
107
+ from zyntalic.translator import translate_sentence
108
+
109
+ result = translate_sentence("I see the river at night.", engine="core", mirror_rate=0.3)
110
+ print(result["target"])
111
+ print(result["sidecar"])
112
+ ```
113
+
114
+ ### Desktop experience
115
+
116
+ On Windows, run `run_desktop.bat`. On any supported platform with the optional dependencies installed:
117
+
118
+ ```bash
119
+ python -m pip install -e ".[web,pdf,desktop]"
120
+ python -m scripts.run_desktop
121
+ ```
122
+
123
+ The desktop launcher binds to localhost and explicitly enables local unauthenticated mode. Do not use that override on a network-facing deployment.
124
+
125
+ ## REST API
126
+
127
+ Install and start the authenticated API:
128
+
129
+ ```bash
130
+ python -m pip install -e ".[web,pdf]"
131
+ export ZYNTALIC_API_KEY="$(python -c 'import secrets; print(secrets.token_urlsafe(32))')"
132
+ uvicorn apps.web.app:app --host 127.0.0.1 --port 8000
133
+ ```
134
+
135
+ ```bash
136
+ curl --fail-with-body http://127.0.0.1:8000/v1/translate \
137
+ -H 'Content-Type: application/json' \
138
+ -H "X-API-Key: $ZYNTALIC_API_KEY" \
139
+ -d '{"text":"I see the river at night.","engine":"core","mirror_rate":0.3}'
140
+ ```
141
+
142
+ | Endpoint | Purpose | Authentication |
143
+ | --- | --- | --- |
144
+ | `GET /v1/health` | Readiness, limits, version, and cache status | Public |
145
+ | `POST /v1/translate` | Translate one input with request metadata | API key |
146
+ | `POST /v1/translate/batch` | Translate up to 32 ordered inputs | API key |
147
+ | `POST /v1/extract` | Extract UTF-8 text from PDF, TXT, or Markdown | API key |
148
+ | `GET /docs` | Interactive OpenAPI reference | Public |
149
+
150
+ The in-process rate limiter is suitable for one server process. Multi-worker and distributed deployments should enforce shared limits at a gateway. Configure limits, CORS, cache location, and authentication through the variables documented in [.env.example](.env.example).
151
+
152
+ ## Development
153
+
154
+ ```bash
155
+ python -m pip install -e ".[dev,web,pdf]"
156
+ ruff check .
157
+ pytest
158
+ ```
159
+
160
+ The project has three inherited regression failures tracked in [issue #9](https://github.com/kugguk2022/Zyntalic_idiom/issues/9). CI runs the remainder as a required suite and reports those cases separately; deselection is not their acceptance criterion.
161
+
162
+ Frontend development:
163
+
164
+ ```bash
165
+ cd zyntalic-flow
166
+ npm ci
167
+ npm run build
168
+ ```
169
+
170
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for environment setup, test selection, deterministic-change review, and pull-request expectations.
171
+
172
+ ## Project structure
173
+
174
+ ```text
175
+ apps/ Application adapters, including the FastAPI service
176
+ data/ Small fixtures and anchor inputs
177
+ data_generation/ Corpus acquisition and transformation pipeline
178
+ docker/ Container build definition
179
+ evals/ Evaluation and smoke checks
180
+ lexicon/ Checkout/runtime literary lexicons
181
+ scripts/ Operational, training, and maintenance commands
182
+ tests/ Primary automated test suite
183
+ wiki/ Product idea, history, architecture, and roadmap
184
+ zyntalic/ Installable Python engine
185
+ zyntalic_docs/ Generated language-design reference
186
+ zyntalic-flow/ React/Vite frontend
187
+ ```
188
+
189
+ The [repository guide](wiki/repository-guide.md) defines ownership, safe cleanup practices, legacy directories, and generated artifacts.
190
+
191
+ ## Documentation
192
+
193
+ - [Project wiki](wiki/README.md)
194
+ - [Architecture](wiki/architecture.md)
195
+ - [Language reference](zyntalic_docs/README.md)
196
+ - [Dataset pipeline](DATASET.md)
197
+ - [Embeddings](EMBEDDINGS.md)
198
+ - [Roadmap](wiki/roadmap.md)
199
+ - [Changelog](CHANGELOG.md)
200
+ - [Security policy](SECURITY.md)
201
+
202
+ ## Scope and limitations
203
+
204
+ Zyntalic is a creative toolkit, not a linguistically complete English parser or a translation system for a naturally spoken language. The default parser intentionally uses stable heuristics. The generated language reference contains design material that should be backed by executable tests before being treated as a compatibility guarantee.
205
+
206
+ Corpus and fixture contributions must be redistributable and must not contain personal or confidential information. See [CONTRIBUTING.md](CONTRIBUTING.md#data-and-lexicon-contributions).
207
+
208
+ ## License
209
+
210
+ Released under the [MIT License](LICENSE).
@@ -0,0 +1,153 @@
1
+ # Zyntalic
2
+
3
+ <p align="center">
4
+ <img src="zyntalic-flow/public/favicon.svg" alt="Zyntalic logo" width="360">
5
+ </p>
6
+
7
+ <p align="center">
8
+ <strong>A deterministic synthetic-language engine for reproducible creative text.</strong>
9
+ </p>
10
+
11
+ <p align="center">
12
+ <a href="https://github.com/kugguk2022/Zyntalic_idiom/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/kugguk2022/Zyntalic_idiom/actions/workflows/ci.yml/badge.svg"></a>
13
+ <a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
14
+ <img alt="Python 3.10+" src="https://img.shields.io/badge/python-3.10%2B-3776AB.svg">
15
+ <img alt="Status: experimental" src="https://img.shields.io/badge/status-experimental-orange.svg">
16
+ </p>
17
+
18
+ Zyntalic maps source text to a stable constructed-language surface using seeded word generation, literary anchor priors, mixed Hangul/Latin forms, and Subject–Object–Verb–Context (S-O-V-C) ordering. Each non-reverse result ends with a machine-readable `⟦ctx: ...⟧` trace.
19
+
20
+ The baseline runs locally with NumPy. Embeddings, NLP, PDF extraction, the web API, and desktop integration are optional.
21
+
22
+ > [!IMPORTANT]
23
+ > Zyntalic is experimental. Output stability is a design goal within a fixed code and resource version, not a permanent compatibility guarantee. Record the package version and generation options with production assets.
24
+
25
+ ## Why Zyntalic?
26
+
27
+ - **Repeatable:** stable seeded generation supports revision and regeneration.
28
+ - **Inspectible:** anchors, frames, sigils, scope, and warnings are available as structured metadata.
29
+ - **Rule-first:** the core works without a hosted model or heavyweight NLP stack.
30
+ - **Controllable:** anchor mode, frames, register, dialect, evidentiality, engine, and mirror rate are explicit options.
31
+ - **Integrable:** use the Python API, CLI, authenticated REST API, React interface, or desktop launcher.
32
+
33
+ Read [the idea](wiki/idea.md), [core concepts](wiki/core-concepts.md), and the honest [current-state inventory](wiki/current-state.md) for the full project context.
34
+
35
+ ## Quick start
36
+
37
+ ### Python and CLI
38
+
39
+ ```bash
40
+ python -m venv .venv
41
+ source .venv/bin/activate # Windows: .venv\Scripts\activate
42
+ python -m pip install -e .
43
+
44
+ zyntalic translate "I see the river at night." --format plain
45
+ ```
46
+
47
+ From Python:
48
+
49
+ ```python
50
+ from zyntalic.translator import translate_sentence
51
+
52
+ result = translate_sentence("I see the river at night.", engine="core", mirror_rate=0.3)
53
+ print(result["target"])
54
+ print(result["sidecar"])
55
+ ```
56
+
57
+ ### Desktop experience
58
+
59
+ On Windows, run `run_desktop.bat`. On any supported platform with the optional dependencies installed:
60
+
61
+ ```bash
62
+ python -m pip install -e ".[web,pdf,desktop]"
63
+ python -m scripts.run_desktop
64
+ ```
65
+
66
+ The desktop launcher binds to localhost and explicitly enables local unauthenticated mode. Do not use that override on a network-facing deployment.
67
+
68
+ ## REST API
69
+
70
+ Install and start the authenticated API:
71
+
72
+ ```bash
73
+ python -m pip install -e ".[web,pdf]"
74
+ export ZYNTALIC_API_KEY="$(python -c 'import secrets; print(secrets.token_urlsafe(32))')"
75
+ uvicorn apps.web.app:app --host 127.0.0.1 --port 8000
76
+ ```
77
+
78
+ ```bash
79
+ curl --fail-with-body http://127.0.0.1:8000/v1/translate \
80
+ -H 'Content-Type: application/json' \
81
+ -H "X-API-Key: $ZYNTALIC_API_KEY" \
82
+ -d '{"text":"I see the river at night.","engine":"core","mirror_rate":0.3}'
83
+ ```
84
+
85
+ | Endpoint | Purpose | Authentication |
86
+ | --- | --- | --- |
87
+ | `GET /v1/health` | Readiness, limits, version, and cache status | Public |
88
+ | `POST /v1/translate` | Translate one input with request metadata | API key |
89
+ | `POST /v1/translate/batch` | Translate up to 32 ordered inputs | API key |
90
+ | `POST /v1/extract` | Extract UTF-8 text from PDF, TXT, or Markdown | API key |
91
+ | `GET /docs` | Interactive OpenAPI reference | Public |
92
+
93
+ The in-process rate limiter is suitable for one server process. Multi-worker and distributed deployments should enforce shared limits at a gateway. Configure limits, CORS, cache location, and authentication through the variables documented in [.env.example](.env.example).
94
+
95
+ ## Development
96
+
97
+ ```bash
98
+ python -m pip install -e ".[dev,web,pdf]"
99
+ ruff check .
100
+ pytest
101
+ ```
102
+
103
+ The project has three inherited regression failures tracked in [issue #9](https://github.com/kugguk2022/Zyntalic_idiom/issues/9). CI runs the remainder as a required suite and reports those cases separately; deselection is not their acceptance criterion.
104
+
105
+ Frontend development:
106
+
107
+ ```bash
108
+ cd zyntalic-flow
109
+ npm ci
110
+ npm run build
111
+ ```
112
+
113
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for environment setup, test selection, deterministic-change review, and pull-request expectations.
114
+
115
+ ## Project structure
116
+
117
+ ```text
118
+ apps/ Application adapters, including the FastAPI service
119
+ data/ Small fixtures and anchor inputs
120
+ data_generation/ Corpus acquisition and transformation pipeline
121
+ docker/ Container build definition
122
+ evals/ Evaluation and smoke checks
123
+ lexicon/ Checkout/runtime literary lexicons
124
+ scripts/ Operational, training, and maintenance commands
125
+ tests/ Primary automated test suite
126
+ wiki/ Product idea, history, architecture, and roadmap
127
+ zyntalic/ Installable Python engine
128
+ zyntalic_docs/ Generated language-design reference
129
+ zyntalic-flow/ React/Vite frontend
130
+ ```
131
+
132
+ The [repository guide](wiki/repository-guide.md) defines ownership, safe cleanup practices, legacy directories, and generated artifacts.
133
+
134
+ ## Documentation
135
+
136
+ - [Project wiki](wiki/README.md)
137
+ - [Architecture](wiki/architecture.md)
138
+ - [Language reference](zyntalic_docs/README.md)
139
+ - [Dataset pipeline](DATASET.md)
140
+ - [Embeddings](EMBEDDINGS.md)
141
+ - [Roadmap](wiki/roadmap.md)
142
+ - [Changelog](CHANGELOG.md)
143
+ - [Security policy](SECURITY.md)
144
+
145
+ ## Scope and limitations
146
+
147
+ Zyntalic is a creative toolkit, not a linguistically complete English parser or a translation system for a naturally spoken language. The default parser intentionally uses stable heuristics. The generated language reference contains design material that should be backed by executable tests before being treated as a compatibility guarantee.
148
+
149
+ Corpus and fixture contributions must be redistributable and must not contain personal or confidential information. See [CONTRIBUTING.md](CONTRIBUTING.md#data-and-lexicon-contributions).
150
+
151
+ ## License
152
+
153
+ Released under the [MIT License](LICENSE).
@@ -0,0 +1 @@
1
+ """Application entry points for Zyntalic."""
File without changes
@@ -0,0 +1,4 @@
1
+ from zyntalic.cli import main
2
+
3
+ if __name__ == '__main__':
4
+ raise SystemExit(main())
@@ -0,0 +1 @@
1
+ """FastAPI application package."""