splent-feature-generator 0.4.3__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 (72) hide show
  1. splent_feature_generator-0.4.3.dist-info/METADATA +135 -0
  2. splent_feature_generator-0.4.3.dist-info/RECORD +72 -0
  3. splent_feature_generator-0.4.3.dist-info/WHEEL +5 -0
  4. splent_feature_generator-0.4.3.dist-info/licenses/COPYING +674 -0
  5. splent_feature_generator-0.4.3.dist-info/top_level.txt +1 -0
  6. splent_io/splent_feature_generator/__init__.py +32 -0
  7. splent_io/splent_feature_generator/assets/css/generator.css +454 -0
  8. splent_io/splent_feature_generator/assets/dist/generator.bundle.js +2 -0
  9. splent_io/splent_feature_generator/assets/dist/generator.bundle.js.LICENSE.txt +11 -0
  10. splent_io/splent_feature_generator/assets/dist/generator.css +305 -0
  11. splent_io/splent_feature_generator/assets/dist/llm_page.bundle.js +1 -0
  12. splent_io/splent_feature_generator/assets/dist/llm_worker.610a8aafcf20bf61bcc8.js +1 -0
  13. splent_io/splent_feature_generator/assets/dist/pyodide/afmparser-1.0.3-py3-none-any.whl +0 -0
  14. splent_io/splent_feature_generator/assets/dist/pyodide/antlr4_python3_runtime-4.13.1-py3-none-any.whl +0 -0
  15. splent_io/splent_feature_generator/assets/dist/pyodide/astutils-0.0.6-py3-none-any.whl +0 -0
  16. splent_io/splent_feature_generator/assets/dist/pyodide/blinker-1.9.0-py3-none-any.whl +0 -0
  17. splent_io/splent_feature_generator/assets/dist/pyodide/dd-0.5.7-py3-none-any.whl +0 -0
  18. splent_io/splent_feature_generator/assets/dist/pyodide/flamapy-2.6.0-py3-none-any.whl +0 -0
  19. splent_io/splent_feature_generator/assets/dist/pyodide/flamapy_bdd-2.6.0-py3-none-any.whl +0 -0
  20. splent_io/splent_feature_generator/assets/dist/pyodide/flamapy_fm-2.6.0-py3-none-any.whl +0 -0
  21. splent_io/splent_feature_generator/assets/dist/pyodide/flamapy_fw-2.6.0-py3-none-any.whl +0 -0
  22. splent_io/splent_feature_generator/assets/dist/pyodide/flamapy_sat-2.6.0-py3-none-any.whl +0 -0
  23. splent_io/splent_feature_generator/assets/dist/pyodide/flask-3.1.0-py3-none-any.whl +0 -0
  24. splent_io/splent_feature_generator/assets/dist/pyodide/fm_generator-0.0.4-py3-none-any.whl +0 -0
  25. splent_io/splent_feature_generator/assets/dist/pyodide/fmgen_wrapper.py +79 -0
  26. splent_io/splent_feature_generator/assets/dist/pyodide/graphviz-0.20-py3-none-any.whl +0 -0
  27. splent_io/splent_feature_generator/assets/dist/pyodide/itsdangerous-2.2.0-py3-none-any.whl +0 -0
  28. splent_io/splent_feature_generator/assets/dist/pyodide/micropip-0.9.0-py3-none-any.whl +0 -0
  29. splent_io/splent_feature_generator/assets/dist/pyodide/networkx-3.4.2-py3-none-any.whl +0 -0
  30. splent_io/splent_feature_generator/assets/dist/pyodide/packaging-24.2-py3-none-any.whl +0 -0
  31. splent_io/splent_feature_generator/assets/dist/pyodide/ply-3.11-py2.py3-none-any.whl +0 -0
  32. splent_io/splent_feature_generator/assets/dist/pyodide/pydot-4.0.0-py3-none-any.whl +0 -0
  33. splent_io/splent_feature_generator/assets/dist/pyodide/pyodide-lock.json +1 -0
  34. splent_io/splent_feature_generator/assets/dist/pyodide/pyodide.asm.js +17 -0
  35. splent_io/splent_feature_generator/assets/dist/pyodide/pyodide.asm.wasm +0 -0
  36. splent_io/splent_feature_generator/assets/dist/pyodide/pyodide.mjs +4 -0
  37. splent_io/splent_feature_generator/assets/dist/pyodide/python_sat-1.8.dev17-cp312-cp312-pyodide_2024_0_wasm32.whl +0 -0
  38. splent_io/splent_feature_generator/assets/dist/pyodide/python_stdlib.zip +0 -0
  39. splent_io/splent_feature_generator/assets/dist/pyodide/setuptools-80.9.0-py3-none-any.whl +0 -0
  40. splent_io/splent_feature_generator/assets/dist/pyodide/six-1.17.0-py2.py3-none-any.whl +0 -0
  41. splent_io/splent_feature_generator/assets/dist/pyodide/uvlparser-2.5.0-py3-none-any.whl +0 -0
  42. splent_io/splent_feature_generator/assets/dist/pyodide/werkzeug-3.1.3-py3-none-any.whl +0 -0
  43. splent_io/splent_feature_generator/assets/dist/ui.bundle.js +1 -0
  44. splent_io/splent_feature_generator/assets/dist/uvl_editor.bundle.js +1 -0
  45. splent_io/splent_feature_generator/assets/dist/uvl_editor.css +366 -0
  46. splent_io/splent_feature_generator/assets/dist/wizard.bundle.js +1 -0
  47. splent_io/splent_feature_generator/assets/dist/wizard_spa.bundle.js +1 -0
  48. splent_io/splent_feature_generator/assets/js/llm-page.js +2329 -0
  49. splent_io/splent_feature_generator/assets/js/llm-worker.js +376 -0
  50. splent_io/splent_feature_generator/assets/js/scripts.js +584 -0
  51. splent_io/splent_feature_generator/assets/js/ui.js +70 -0
  52. splent_io/splent_feature_generator/assets/js/uvl-editor.js +116 -0
  53. splent_io/splent_feature_generator/assets/js/wizard-spa.js +189 -0
  54. splent_io/splent_feature_generator/assets/js/wizard.js +207 -0
  55. splent_io/splent_feature_generator/assets/meta/manifest.json +327 -0
  56. splent_io/splent_feature_generator/assets/meta/sbom.cdx.json +770 -0
  57. splent_io/splent_feature_generator/assets/meta/third_party.json +357 -0
  58. splent_io/splent_feature_generator/params.py +230 -0
  59. splent_io/splent_feature_generator/routes.py +590 -0
  60. splent_io/splent_feature_generator/templates/generator/_codemirror_uvl.html +6 -0
  61. splent_io/splent_feature_generator/templates/generator/_macros.html +301 -0
  62. splent_io/splent_feature_generator/templates/generator/_summary_partial.html +2 -0
  63. splent_io/splent_feature_generator/templates/generator/index.html +128 -0
  64. splent_io/splent_feature_generator/templates/generator/landing.html +90 -0
  65. splent_io/splent_feature_generator/templates/generator/llm.html +232 -0
  66. splent_io/splent_feature_generator/templates/generator/step1.html +46 -0
  67. splent_io/splent_feature_generator/templates/generator/step2.html +114 -0
  68. splent_io/splent_feature_generator/templates/generator/step3.html +185 -0
  69. splent_io/splent_feature_generator/templates/generator/step4.html +335 -0
  70. splent_io/splent_feature_generator/templates/generator/step5.html +435 -0
  71. splent_io/splent_feature_generator/templates/generator/step6.html +453 -0
  72. splent_io/splent_feature_generator/wizard.py +1077 -0
@@ -0,0 +1,135 @@
1
+ Metadata-Version: 2.4
2
+ Name: splent_feature_generator
3
+ Version: 0.4.3
4
+ License-Expression: GPL-3.0-or-later
5
+ Requires-Python: >=3.13
6
+ Description-Content-Type: text/markdown
7
+ License-File: COPYING
8
+ Requires-Dist: splent_framework>=1.30.0
9
+ Dynamic: license-file
10
+
11
+ # splent_feature_generator
12
+
13
+ The `generator` feature of a [SPLENT](https://splent.io) product line.
14
+
15
+ A SPLENT feature is a Python package that a product composes with others:
16
+ its models, routes, services, templates and hooks are registered when the
17
+ product starts. What this feature provides and requires is listed in the
18
+ `[tool.splent.contract]` section of `pyproject.toml`, which
19
+ `splent feature:contract --write` keeps in sync with the source.
20
+
21
+ ## Use it in a product
22
+
23
+ ```bash
24
+ splent feature:add splent_feature_generator
25
+ ```
26
+
27
+ The pages (the landing, the six steps of the random generator and the LLM
28
+ generator) extend `shell('app')`, so a product that points the application
29
+ shell at another layout (`SPLENT_SHELL_APP`) moves them with it.
30
+
31
+ They are written in Bootstrap 5.2 and draw their icons with feather, and
32
+ take both from the shell: its stylesheet, `window.bootstrap` and
33
+ `window.feather`, as AdminKit brings them. The generator starts its own
34
+ tooltips and draws the icons of each step the wizard swaps in. What
35
+ Bootstrap has no class for (the list of steps, the sliders, the result
36
+ list, the UVL preview) is in `assets/css/generator.css`, which the pages
37
+ link themselves.
38
+
39
+ ## In the browser
40
+
41
+ Both generators run in the visitor's browser, so a batch of models costs
42
+ the server nothing. What runs there is the feature's frontend
43
+ (`frontend/package.json`), built by the SPLENT toolchain into
44
+ `assets/dist`:
45
+
46
+ | Entry | What it is |
47
+ |-------|------------|
48
+ | `generator` | The Pyodide runtime: it loads Pyodide, installs the wheels (`WHEELS` in `assets/js/scripts.js`) and runs `fmgen_wrapper.py`; the sliders, and the ZIP download (jszip, file-saver, nouislider) |
49
+ | `ui`, `wizard`, `wizard_spa` | Icons and tooltips, the wizard's helpers, and the in-place navigation that keeps the runtime alive across steps |
50
+ | `uvl_editor` | CodeMirror 5 and the UVL mode of the "View" dialogs |
51
+ | `llm_page` | The LLM page, and the module worker that runs WebLLM (`llm-worker.js`), a chunk of its own that loads only when the page first needs it |
52
+
53
+ Every entry is a module, drawn with `feature_script` in the order the
54
+ pages need them. jszip, file-saver, nouislider, codemirror,
55
+ `@mlc-ai/web-llm` and `pyodide` come from npm, at exact versions, and
56
+ nothing loads from another site but the model weights.
57
+
58
+ The Pyodide runtime is npm's, copied unmodified (MPL-2.0) into
59
+ `assets/dist/pyodide/` (`frontend/webpack.extra.js`), with
60
+ `fmgen_wrapper.py` from `frontend/pyodide/`. The Python wheels it
61
+ installs go beside it. They are declared in `splent.vendored`, each with
62
+ its version, licence, source and sha256:
63
+
64
+ - From PyPI, or from Pyodide's own index for micropip, packaging and
65
+ python-sat. `feature:compile` and the release fetch them with
66
+ `pip download` into `frontend/vendored/` (never versioned) and check
67
+ each against its sha256; the release fetches them again.
68
+ - Kept in `frontend/wheels/`: fm_generator, built from `vendor/`, and
69
+ astutils and dd, which PyPI publishes as sdists only. They are checked
70
+ against their sha256 too.
71
+
72
+ python-sat is the build Pyodide's index lists for the runtime shipped: it
73
+ is what "Ensure satisfiable" asks, and each model then says whether the
74
+ solver found it satisfiable, found it not to be after 20 tries, or could
75
+ not check it. `frontend/licenses/` has the terms of the wheels that carry
76
+ none of their own, Pyodide's notices, and the SAT solvers compiled into
77
+ python-sat, which `splent.licenseTexts` puts in `assets/meta/third_party.json`.
78
+
79
+ ### Content-Security-Policy
80
+
81
+ The pages ask, in `splent.csp`, for what a product approves in
82
+ `[tool.splent.csp]`:
83
+
84
+ | Directive | Source | Why |
85
+ |-----------|--------|-----|
86
+ | `script-src` | `'wasm-unsafe-eval'` | Pyodide compiles WebAssembly on the page |
87
+ | `connect-src` | `https://huggingface.co` | The model configs and tokenizers of WebLLM |
88
+ | `connect-src` | `https://*.huggingface.co`, `https://*.hf.co` | Where Hugging Face redirects the weight shards (`us.aws.cdn.hf.co`, `cdn-lfs*.huggingface.co`) |
89
+ | `connect-src` | `https://raw.githubusercontent.com` | The model libraries (`mlc-ai/binary-mlc-llm-libs`) |
90
+
91
+ ```toml
92
+ [tool.splent.csp]
93
+ generator = [
94
+ "script-src 'wasm-unsafe-eval'",
95
+ "connect-src https://huggingface.co https://*.huggingface.co https://*.hf.co https://raw.githubusercontent.com",
96
+ ]
97
+ ```
98
+
99
+ The weights are downloaded by the worker, which runs under the policy of
100
+ its own script and not of the page; the hosts are listed for when that
101
+ policy is composed too.
102
+
103
+ The random wizard keeps its parameters in the session, only the keys and
104
+ limits `params.py` declares, and opens step 6 once every step before it
105
+ passed its validator.
106
+
107
+ ## Menus
108
+
109
+ generator registers one entry in the framework's menu registry.
110
+
111
+ | Key | Section | Order | Icon | Opens | Shown to |
112
+ |-----|---------|-------|------|-------|----------|
113
+ | `generator` | `site` | 40 | `cpu` | `/generator`, and is current on every generator page | Everyone |
114
+
115
+ A product hides or reorders it by key in its `[tool.splent.layout.menu]`.
116
+ The generator has no sidebar hook any more: a shell that still fills its
117
+ sidebar from `layout.sidebar.top` shows no Generate models entry until it
118
+ draws the registry.
119
+
120
+ ## Develop
121
+
122
+ ```bash
123
+ splent feature:test splent_feature_generator
124
+ splent feature:contract splent_feature_generator
125
+ ```
126
+
127
+ ## Release
128
+
129
+ ```bash
130
+ splent feature:release splent_feature_generator --dry-run --bump patch
131
+ splent feature:release splent_feature_generator
132
+ ```
133
+
134
+ The first command rehearses the release and changes nothing. The second
135
+ publishes it to the git forge and to PyPI, and a PyPI version is permanent.
@@ -0,0 +1,72 @@
1
+ splent_feature_generator-0.4.3.dist-info/licenses/COPYING,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
2
+ splent_io/splent_feature_generator/__init__.py,sha256=y3H0AdOzoHXBfjMCLLDUynuErNTHcK6o5VkXWRXStuA,925
3
+ splent_io/splent_feature_generator/params.py,sha256=YIPjz7gks5-uNuW_t_DKTcVVNNfEoy1RGYbgs40crN4,8319
4
+ splent_io/splent_feature_generator/routes.py,sha256=UTx5e52Gyk5G6J4aQyYD6F2mbj_4sIloUxpDyvTZMYE,23981
5
+ splent_io/splent_feature_generator/wizard.py,sha256=TEtyXvswg_afDFSRcw713gLcdwDs38gJ4uAqmVjoDAE,42241
6
+ splent_io/splent_feature_generator/assets/css/generator.css,sha256=omFMzXQa7JRipgaX-0F8xVKQrRVK0GsVt4l5qXEBuCk,10109
7
+ splent_io/splent_feature_generator/assets/dist/generator.bundle.js,sha256=_lCZMTU-RllynBSkMJx77OAQu4kii5dCBVYim1m2E_E,137135
8
+ splent_io/splent_feature_generator/assets/dist/generator.bundle.js.LICENSE.txt,sha256=c_rhEkLvRayU_RHm7IhRP2pvzuBsi8MZ8-FjoMfymqM,383
9
+ splent_io/splent_feature_generator/assets/dist/generator.css,sha256=sfmpZL4gYXkSKfbFPi4XP826xpeT4zpS7Hc_vrNo-2k,5717
10
+ splent_io/splent_feature_generator/assets/dist/llm_page.bundle.js,sha256=lWZEc0EYg3yKtAIWbFSv0LLkoU9schoWdlPUPgvpN5k,40712
11
+ splent_io/splent_feature_generator/assets/dist/llm_worker.610a8aafcf20bf61bcc8.js,sha256=qu1DkvaoM1Ex_7rN_p-rUmYaszfCgAKsf7NcIFeYOW4,6158498
12
+ splent_io/splent_feature_generator/assets/dist/ui.bundle.js,sha256=UODZb_dAeCo0-fL0vww9k9hPB57dsDZ68IRIcgn58no,710
13
+ splent_io/splent_feature_generator/assets/dist/uvl_editor.bundle.js,sha256=isrmZULkP6vzI_zBF35L8qYuwEwRs8lqAFkwHNJXXoI,185124
14
+ splent_io/splent_feature_generator/assets/dist/uvl_editor.css,sha256=wFe_5tF3g_EWobDZ4ktYBRPOGoH70iSJb_s-aPBapBc,9157
15
+ splent_io/splent_feature_generator/assets/dist/wizard.bundle.js,sha256=GZcG4KZlaXCrC6I5snX20mgHV1iKxYiUhO4bQYE2SCc,3336
16
+ splent_io/splent_feature_generator/assets/dist/wizard_spa.bundle.js,sha256=QLh0QFw_qzSxzaydJGX7k_gy5T5Y1O94o7Bx7JRJDCo,2902
17
+ splent_io/splent_feature_generator/assets/dist/pyodide/afmparser-1.0.3-py3-none-any.whl,sha256=9cyY9-jGZSWq7jytFyrxQGeuLpHAKRxshtJlJyue1Lg,30240
18
+ splent_io/splent_feature_generator/assets/dist/pyodide/antlr4_python3_runtime-4.13.1-py3-none-any.whl,sha256=eOxXqtEsl6wDnKJ0A61hy5iq7Io_m7gUT4iaoPoouUM,144460
19
+ splent_io/splent_feature_generator/assets/dist/pyodide/astutils-0.0.6-py3-none-any.whl,sha256=7S-vZyjqgj6ev-9F9LCdxGZbJ4iQE5IftXTbIqVF034,6551
20
+ splent_io/splent_feature_generator/assets/dist/pyodide/blinker-1.9.0-py3-none-any.whl,sha256=ug76qQgLYZ_y80WdHVAMV73epKa0JLYKkRQdtv0vCLw,8458
21
+ splent_io/splent_feature_generator/assets/dist/pyodide/dd-0.5.7-py3-none-any.whl,sha256=zrK1PACbGhB2F_5wDbD01Bu5-iQ4CTJmnlYxsOGAaqM,678730
22
+ splent_io/splent_feature_generator/assets/dist/pyodide/flamapy-2.6.0-py3-none-any.whl,sha256=7NKYmVU0pzkHdG2cYwV9dLHQmKQ3jvGL_yjDtSPB6iU,14242
23
+ splent_io/splent_feature_generator/assets/dist/pyodide/flamapy_bdd-2.6.0-py3-none-any.whl,sha256=SK167C-T6CePRLwcGkPk_I5fQU8iN6rTEOri6Efc58Y,47855
24
+ splent_io/splent_feature_generator/assets/dist/pyodide/flamapy_fm-2.6.0-py3-none-any.whl,sha256=e3_VH2sFVLpd6eNeNfFXAv-pKtE6sYpw3uqoAjZobDc,88705
25
+ splent_io/splent_feature_generator/assets/dist/pyodide/flamapy_fw-2.6.0-py3-none-any.whl,sha256=pXxEojZIj_5o0jHit4N202RdQQX-Z_0mWnfsiyasKoA,40434
26
+ splent_io/splent_feature_generator/assets/dist/pyodide/flamapy_sat-2.6.0-py3-none-any.whl,sha256=9wevpYeQ7UMRPJ6Iua0kBFRRqgP2zHjZy-7hayh4kD0,53529
27
+ splent_io/splent_feature_generator/assets/dist/pyodide/flask-3.1.0-py3-none-any.whl,sha256=1mcgeCLrg_HEtQlJsWI8j8jVHyNB1l9y4aGBU5dVETY,102979
28
+ splent_io/splent_feature_generator/assets/dist/pyodide/fm_generator-0.0.4-py3-none-any.whl,sha256=ttiL2fl5IjHhGDLdfG7fjwSDiTH2a15Z0OQMvFftqvU,24686
29
+ splent_io/splent_feature_generator/assets/dist/pyodide/fmgen_wrapper.py,sha256=vCcgQ-si4gwRL0fNCV8aYNOxxHX9f1FytRrKvnYq-vA,3129
30
+ splent_io/splent_feature_generator/assets/dist/pyodide/graphviz-0.20-py3-none-any.whl,sha256=YsX0i8xTSkW0WIxUj_deQZwfHzoz0xqReWroCn9YHko,46997
31
+ splent_io/splent_feature_generator/assets/dist/pyodide/itsdangerous-2.2.0-py3-none-any.whl,sha256=xiQvxJ41lYyLFRQTQ6pmDbX8VNTxOh2wGj9YkbmHAO8,16234
32
+ splent_io/splent_feature_generator/assets/dist/pyodide/micropip-0.9.0-py3-none-any.whl,sha256=A08idjYHdE-YLSkRFwxQtJaji4ugU15aCWGEdbHXsFE,114896
33
+ splent_io/splent_feature_generator/assets/dist/pyodide/networkx-3.4.2-py3-none-any.whl,sha256=311DZbckz4G4xqcxJQnQwiOGCXARrRq-J0r9Xp07vF8,1723263
34
+ splent_io/splent_feature_generator/assets/dist/pyodide/packaging-24.2-py3-none-any.whl,sha256=-_alrOWW644o_gCJ7PwLyi6zkwVj6coGrLmOpTArmfc,71930
35
+ splent_io/splent_feature_generator/assets/dist/pyodide/ply-3.11-py2.py3-none-any.whl,sha256=CW-bg1C2Xr0v0TRrEkUu_luWB_dIKBP_ylDCJyKoB84,49567
36
+ splent_io/splent_feature_generator/assets/dist/pyodide/pydot-4.0.0-py3-none-any.whl,sha256=z4bhOmz-KpZ1ipcCU3934KwTaNuO8ne007NEc-pCXJc,37535
37
+ splent_io/splent_feature_generator/assets/dist/pyodide/pyodide-lock.json,sha256=nEW5FgAadQ9BAvwodJTz6rIVkJx1NcYmog24D9YzPiw,112205
38
+ splent_io/splent_feature_generator/assets/dist/pyodide/pyodide.asm.js,sha256=a0yQ3ltxcoc_BPIYhNDp0idOMF_jIRZVj-Pk--NhjVE,1255688
39
+ splent_io/splent_feature_generator/assets/dist/pyodide/pyodide.asm.wasm,sha256=pQ3RhD-AWgt8RbYQN-4Neybf6F7-DhjvlaNK0k5AH18,10105545
40
+ splent_io/splent_feature_generator/assets/dist/pyodide/pyodide.mjs,sha256=BMBSyBWrsL8pgfo4wt-ljjEg7lKIyVbfKyoV4wF4LF8,13931
41
+ splent_io/splent_feature_generator/assets/dist/pyodide/python_sat-1.8.dev17-cp312-cp312-pyodide_2024_0_wasm32.whl,sha256=MllAIq75wUIgmihSc1FXXwkcDQ5XO9o8KWRh4mmfQMA,832805
42
+ splent_io/splent_feature_generator/assets/dist/pyodide/python_stdlib.zip,sha256=FmEVNHJuXYrCvY-SZBCy3LjW9JqiSRNGNTO0V6IRXBY,2360737
43
+ splent_io/splent_feature_generator/assets/dist/pyodide/setuptools-80.9.0-py3-none-any.whl,sha256=Bi00IirRPgzDEqTALXPwWehqSsv73qj492soyZ8waSI,1201486
44
+ splent_io/splent_feature_generator/assets/dist/pyodide/six-1.17.0-py2.py3-none-any.whl,sha256=RyHzke2QVB_drKtaz5R6oNPcfSey4ejtor6JcFhsMnQ,11050
45
+ splent_io/splent_feature_generator/assets/dist/pyodide/uvlparser-2.5.0-py3-none-any.whl,sha256=eDORUQ65N5pafUqMHR3y8PkAYOHCSAgZhVlmZn2TxQI,29901
46
+ splent_io/splent_feature_generator/assets/dist/pyodide/werkzeug-3.1.3-py3-none-any.whl,sha256=VLeL83FtGaZb5PzszA0de4nmCINJid-uUOqHVkY5IT4,224498
47
+ splent_io/splent_feature_generator/assets/js/llm-page.js,sha256=t3eLbw7b9RfnyfOoDQN5d_J9yPn2BMD0JVtpE3WALLg,110556
48
+ splent_io/splent_feature_generator/assets/js/llm-worker.js,sha256=Mt6PwPJoBGXBYTUBFYAJSdjdB6EeRD8M2MwwDR1V67k,18065
49
+ splent_io/splent_feature_generator/assets/js/scripts.js,sha256=kCv6Fzwe7NxbxejPQ1quT1C4Gi2DiU9WZS0KJ_prKXU,24682
50
+ splent_io/splent_feature_generator/assets/js/ui.js,sha256=KMhKbeqNQQG242Z43q-xB1AK5IA2JlITvH7d4bPZO5M,2736
51
+ splent_io/splent_feature_generator/assets/js/uvl-editor.js,sha256=WMqatOanBJ3lbh_z0SR7Scl0GjNVSPY_YsUENeB2UUo,5252
52
+ splent_io/splent_feature_generator/assets/js/wizard-spa.js,sha256=0Wiuj6pW8y4YWCGz1MjytyTa6M6Udyp5CbcWonshdiI,7617
53
+ splent_io/splent_feature_generator/assets/js/wizard.js,sha256=-IQC00i0uGKDPpzP7oBOZCdMgxtcRgYOPmDeGfVEUrc,8391
54
+ splent_io/splent_feature_generator/assets/meta/manifest.json,sha256=5y5Mo5ngEcdqAdxnrz4aDn6CzHG-AkWyq40GVIDjnV4,11990
55
+ splent_io/splent_feature_generator/assets/meta/sbom.cdx.json,sha256=RvEE25KcztMgHh_NCfHt970--ERF5w8VtPzPI6XR7ww,16256
56
+ splent_io/splent_feature_generator/assets/meta/third_party.json,sha256=ORUoPEM_z1Hyy0VnEHRkQIvZsCBXSn5jVdn__VuF3gI,306457
57
+ splent_io/splent_feature_generator/templates/generator/_codemirror_uvl.html,sha256=OOcbKiVYQZIudM5Z72Q9S6jDe9cuiefWJNV8PFKbYAw,344
58
+ splent_io/splent_feature_generator/templates/generator/_macros.html,sha256=l7wOoMwVC5tWIPKKxKihjqJmxUcbB8be8Ckqe36tJr8,14862
59
+ splent_io/splent_feature_generator/templates/generator/_summary_partial.html,sha256=bUlIyeXUpo94wsRjpkgSoN38cqzRH0-TFuaUtawC4Wc,85
60
+ splent_io/splent_feature_generator/templates/generator/index.html,sha256=OMTnIpcjanHUuSG1Oc477_JITwqNVWE77fiCnxJYdg4,5347
61
+ splent_io/splent_feature_generator/templates/generator/landing.html,sha256=ryiV84SJnThFVbAfg_br2MYmkfhNva552fzGH1U60nY,4453
62
+ splent_io/splent_feature_generator/templates/generator/llm.html,sha256=nC192ZiUZICnvfHIfPT75Ltxsp3o0gKhostLL72U00A,13993
63
+ splent_io/splent_feature_generator/templates/generator/step1.html,sha256=D8ILnSzTIfa-s7wZSjQC9vguBFYo34cSc1mzTqOEosw,2040
64
+ splent_io/splent_feature_generator/templates/generator/step2.html,sha256=1Im0vK3YkD9rWha-zXwhaVaqw2FLzHC6MDuZ82Utbd8,6055
65
+ splent_io/splent_feature_generator/templates/generator/step3.html,sha256=r3ki9soynioz9DCraUgjz7tKLP44jCt1jUvVW_YD5Do,9960
66
+ splent_io/splent_feature_generator/templates/generator/step4.html,sha256=aA4ta354Ah-xHBN-BHu2iVWHKzJvElwaxzO4ylJcotY,18847
67
+ splent_io/splent_feature_generator/templates/generator/step5.html,sha256=tdCFsP-vgLqCX5enARvRCFhuay2g0QuPNATDKhRNMv0,21990
68
+ splent_io/splent_feature_generator/templates/generator/step6.html,sha256=fnhrja8MwxEhRpgXcfcHSqu-HneYSWg2tssOWziA1QY,21908
69
+ splent_feature_generator-0.4.3.dist-info/METADATA,sha256=KwVLKjYwJ7lGex5eHQk55Gx_5C8Fep_HitTrxnlZ0NY,5829
70
+ splent_feature_generator-0.4.3.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
71
+ splent_feature_generator-0.4.3.dist-info/top_level.txt,sha256=nksrfdr_edPhGPUsCqz08kyNRLBkNc2sInZYzmbZ4TA,10
72
+ splent_feature_generator-0.4.3.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.2.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+