sqlrooms 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. sqlrooms/cli.py +576 -0
  2. sqlrooms/web/__init__.py +0 -0
  3. sqlrooms/web/db_bridge/__init__.py +28 -0
  4. sqlrooms/web/db_bridge/connectors/__init__.py +9 -0
  5. sqlrooms/web/db_bridge/connectors/base.py +59 -0
  6. sqlrooms/web/db_bridge/connectors/postgres.py +118 -0
  7. sqlrooms/web/db_bridge/connectors/snowflake.py +161 -0
  8. sqlrooms/web/db_bridge/factory.py +91 -0
  9. sqlrooms/web/db_bridge/registry.py +113 -0
  10. sqlrooms/web/db_bridge/types.py +29 -0
  11. sqlrooms/web/db_bridge/utils.py +45 -0
  12. sqlrooms/web/launcher.py +1215 -0
  13. sqlrooms/web/static/assets/AiSlice-x2gVCmwI.js +137 -0
  14. sqlrooms/web/static/assets/CommandSlice-DPSuuiIV.js +23 -0
  15. sqlrooms/web/static/assets/DockLayout-DhgcIQET.js +1 -0
  16. sqlrooms/web/static/assets/GridLayout-CBVgs-6H.css +1 -0
  17. sqlrooms/web/static/assets/GridLayout-fXJZYHbE.js +253 -0
  18. sqlrooms/web/static/assets/LayoutRendererContext-BKO2wB-W.js +1 -0
  19. sqlrooms/web/static/assets/LeafLayout-DPFHUP6B.js +1 -0
  20. sqlrooms/web/static/assets/LeafLayout-ekhNDEEg.js +1 -0
  21. sqlrooms/web/static/assets/RenderNodeContext-BdrX8FaE.js +1 -0
  22. sqlrooms/web/static/assets/RendererSwitcher-DnVbhqg4.js +1 -0
  23. sqlrooms/web/static/assets/SplitLayout-fPLAPJN-.js +1 -0
  24. sqlrooms/web/static/assets/TabsLayout-C0N-7wmx.js +1 -0
  25. sqlrooms/web/static/assets/TabsLayout-T3iApyr5.js +41 -0
  26. sqlrooms/web/static/assets/chunk-jRWAZmH_.js +1 -0
  27. sqlrooms/web/static/assets/codicon-ngg6Pgfi.ttf +0 -0
  28. sqlrooms/web/static/assets/core.esm-DdCldPzV.js +5 -0
  29. sqlrooms/web/static/assets/css.worker-Wv5dxAWO.js +89 -0
  30. sqlrooms/web/static/assets/devtools-BNUn8Jb2.js +2 -0
  31. sqlrooms/web/static/assets/dist-dwKeDPoe.js +1 -0
  32. sqlrooms/web/static/assets/html.worker-CQP8QQsS.js +502 -0
  33. sqlrooms/web/static/assets/index-D9UP9D4f.js +316286 -0
  34. sqlrooms/web/static/assets/index-DioDnqnf.css +1 -0
  35. sqlrooms/web/static/assets/json.worker-DzV-CpCQ.js +58 -0
  36. sqlrooms/web/static/assets/loro_wasm_bg-DP4dC0x3.wasm +0 -0
  37. sqlrooms/web/static/assets/loro_wasm_bg-VQ4j4Qa9.js +9 -0
  38. sqlrooms/web/static/assets/loro_wasm_bg-oL0xMWtE.js +3630 -0
  39. sqlrooms/web/static/assets/maplibre-gl-C-a91wbz.js +748 -0
  40. sqlrooms/web/static/assets/node-sql-parser-ChfKIXD7.js +68 -0
  41. sqlrooms/web/static/assets/prop-types-DybOnnvg.js +1 -0
  42. sqlrooms/web/static/assets/react-dom-liMHu8hH.js +1 -0
  43. sqlrooms/web/static/assets/resizable-DYr7VLR3.js +1 -0
  44. sqlrooms/web/static/assets/scroll-area-ZmzNHGEm.js +1 -0
  45. sqlrooms/web/static/assets/tooltip-mgpsA9tW.js +1 -0
  46. sqlrooms/web/static/assets/ts.worker-Dth06zuC.js +67734 -0
  47. sqlrooms/web/static/assets/utils-yJ4l7ARz.js +1 -0
  48. sqlrooms/web/static/assets/webgl-device-CgQl7NRd.js +1 -0
  49. sqlrooms/web/static/assets/webgl-device-CtgDFnYR.js +13 -0
  50. sqlrooms/web/static/index.html +32 -0
  51. sqlrooms/web/static/logo.png +0 -0
  52. sqlrooms/web/ui.py +37 -0
  53. sqlrooms-0.1.0.dist-info/METADATA +274 -0
  54. sqlrooms-0.1.0.dist-info/RECORD +57 -0
  55. sqlrooms-0.1.0.dist-info/WHEEL +4 -0
  56. sqlrooms-0.1.0.dist-info/entry_points.txt +2 -0
  57. sqlrooms-0.1.0.dist-info/licenses/LICENSE +9 -0
@@ -0,0 +1,274 @@
1
+ Metadata-Version: 2.4
2
+ Name: sqlrooms
3
+ Version: 0.1.0
4
+ Summary: Local-first SQLRooms project launcher for DuckDB worksheets and Mosaic dashboards.
5
+ Project-URL: homepage, https://sqlrooms.com
6
+ Project-URL: repository, https://github.com/sqlrooms/sqlrooms
7
+ Author: SQLRooms Contributors
8
+ License-Expression: MIT
9
+ License-File: LICENSE
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Requires-Python: >=3.10
16
+ Requires-Dist: duckdb<1.6.0,>=1.5.3
17
+ Requires-Dist: fastapi>=0.115.0
18
+ Requires-Dist: jinja2>=3.1.0
19
+ Requires-Dist: pyarrow>=17.0.0
20
+ Requires-Dist: python-multipart>=0.0.27
21
+ Requires-Dist: sqlrooms-server>=0.1.1
22
+ Requires-Dist: tomli>=2.0.0; python_version < '3.11'
23
+ Requires-Dist: tomlkit>=0.13.0
24
+ Requires-Dist: typer>=0.12.5
25
+ Requires-Dist: uvicorn>=0.30.0
26
+ Requires-Dist: websockets>=12.0
27
+ Provides-Extra: connectors
28
+ Requires-Dist: psycopg[binary]>=3.2.0; extra == 'connectors'
29
+ Requires-Dist: snowflake-connector-python>=4.3.0; extra == 'connectors'
30
+ Provides-Extra: postgres
31
+ Requires-Dist: psycopg[binary]>=3.2.0; extra == 'postgres'
32
+ Provides-Extra: snowflake
33
+ Requires-Dist: snowflake-connector-python>=4.3.0; extra == 'snowflake'
34
+ Description-Content-Type: text/markdown
35
+
36
+ # sqlrooms CLI
37
+
38
+ Launch a local SQLRooms DuckDB project for adding data, authoring worksheets, and building Mosaic charts and dashboards.
39
+
40
+ ## Quick start
41
+
42
+ ```bash
43
+ # From the repo root
44
+ uvx sqlrooms \
45
+ ./sqlrooms.db
46
+ ```
47
+
48
+ What happens:
49
+
50
+ - Starts the DuckDB websocket backend (from `sqlrooms-server`) on a free local port.
51
+ - Serves the SQLRooms worksheet UI on `http://localhost:4173`, or the next free port, and opens your browser (disable with `--no-open-browser`).
52
+ - Drag-and-drop CSV, TSV, JSON, Parquet, and DuckDB files to load them into DuckDB; files are uploaded to a local `sqlrooms_uploads` folder and referenced by path.
53
+ - UI state is stored in the SQLRooms meta namespace (default `__sqlrooms`) of the selected DuckDB file.
54
+
55
+ ## CLI flags
56
+
57
+ - `DB_PATH` (positional): DuckDB project file to load/create (e.g. `sqlrooms ./my.db`). Required unless `--db-path` is provided.
58
+ - `--db-path`: DuckDB database to use as a flag alternative. Pass a filepath to persist, or `:memory:` for an explicit temporary in-memory session.
59
+ - `--host` / `--port`: HTTP host/port for the UI. The default bind address is `127.0.0.1`. If `--port` is omitted, `4173` or the next free port is chosen automatically.
60
+ - `--ws-port`: WebSocket port for DuckDB queries. If omitted, a free port is chosen automatically.
61
+ - `--experimental`: Enable experimental artifacts, blocks, commands, and agent tools.
62
+ - `--experimental-sync`: Enable experimental sync (CRDT) over WebSocket (Loro). Requires `--experimental`.
63
+ - `--ai-devtools`: Enable the AI session devtools button in the UI, including production-built UI bundles. Can also be set with `SQLROOMS_AI_DEVTOOLS=1`.
64
+ - `--meta-db`: Optional path to a dedicated DuckDB file for SQLRooms meta tables (UI state + CRDT snapshots). If omitted, meta tables are stored in the main DB.
65
+ - `--meta-namespace` (default `__sqlrooms`): Namespace for SQLRooms meta tables. If `--meta-db` is provided, used as ATTACH alias; otherwise used as a schema in the main DB.
66
+ - `--no-open-browser`: Skip automatically opening the browser tab.
67
+ - `--ui`: Optional path to a custom UI bundle directory (a Vite `dist/`). If omitted, uses the bundled default UI.
68
+ - `--no-ui`: Start only the HTTP API server and DuckDB websocket backend; do not serve the bundled/static UI.
69
+ - `--config`: Path to a SQLRooms TOML config file. Defaults to `~/.config/sqlrooms/config.toml` (`%APPDATA%\sqlrooms\config.toml` on Windows).
70
+ - `--no-config`: Disable config file loading.
71
+
72
+ `--host 0.0.0.0` is an advanced local-network mode. Only use it on trusted
73
+ networks; it exposes the SQLRooms UI/API bind address beyond your loopback
74
+ interface. The DuckDB websocket backend still enforces local-only connections
75
+ unless you explicitly use external proxy settings.
76
+
77
+ There is intentionally no `sqlrooms add`, `sqlrooms import`, or
78
+ `sqlrooms doctor` command in the first public CLI. Drag-and-drop import is the
79
+ supported first-launch path, and the release smoke checklist below covers the
80
+ doctor-style checks for now.
81
+
82
+ ## Data persistence
83
+
84
+ Tables created in the selected DuckDB file (or attached meta DB if `--meta-db` is provided):
85
+
86
+ - `__sqlrooms.ui_state` (one row: `key='default'`)
87
+ - `__sqlrooms.sync_rooms` (only used when `--experimental --experimental-sync` is enabled)
88
+
89
+ Uploads go to `/api/upload`. Runtime config for the UI is exposed at `/api/config` / `/config.json`.
90
+
91
+ ## Manual smoke test
92
+
93
+ Use this before release candidates to prove the first-launch path:
94
+
95
+ ```bash
96
+ uv run --project python --package sqlrooms sqlrooms \
97
+ --no-open-browser \
98
+ ./smoke.duckdb
99
+ ```
100
+
101
+ Then open the printed UI URL and verify:
102
+
103
+ - The app starts without a database connection error.
104
+ - Dragging `python/sqlrooms/tests/fixtures/cars.csv` into the data panel creates a `cars` table.
105
+ - The uploaded CSV lands next to `smoke.duckdb` under `sqlrooms_uploads/`.
106
+ - The data sidebar shows `main.cars` and does not show SQLRooms internal metadata.
107
+ - A worksheet is created or selected automatically and contains a `cars` data-table explorer block.
108
+ - Users can create worksheet and dashboard artifacts from the `New` menu without enabling `--experimental`.
109
+ - Map, notebook, canvas, app, HTML app, pivot, and SQL query surfaces stay hidden unless `--experimental` is provided.
110
+ - Restarting the same command with `./smoke.duckdb` restores the imported table and persisted workspace state.
111
+
112
+ ## Config file
113
+
114
+ `sqlrooms` reads AI provider and connector settings from a TOML config file.
115
+ AI settings changed in the CLI UI are saved back to this file automatically
116
+ when config loading is enabled and the config file is writable:
117
+
118
+ - macOS / Linux: `~/.config/sqlrooms/config.toml`
119
+ - Windows: `%APPDATA%\sqlrooms\config.toml`
120
+
121
+ Override with `--config <path>`, or disable with `--no-config`.
122
+
123
+ Example config file:
124
+
125
+ ```toml
126
+ [ai]
127
+ default_provider = "openai"
128
+ default_model = "gpt-5"
129
+
130
+ [[ai.providers]]
131
+ id = "openai"
132
+ base_url = "https://api.openai.com/v1"
133
+ api_key_env = "OPENAI_API_KEY"
134
+ models = ["gpt-5", "gpt-4.1"]
135
+
136
+ [[ai.providers]]
137
+ id = "anthropic"
138
+ base_url = "https://api.anthropic.com"
139
+ api_key_env = "ANTHROPIC_API_KEY"
140
+ models = ["claude-4-sonnet"]
141
+
142
+ [[ai.custom_models]]
143
+ model_name = "local-qwen"
144
+ base_url = "http://localhost:11434/v1"
145
+ api_key = "local-key"
146
+
147
+ [ai.model_parameters]
148
+ max_steps = 12
149
+ additional_instruction = "Prefer short answers."
150
+
151
+ [[db.connectors]]
152
+ id = "postgres-local"
153
+ engine = "postgres"
154
+ title = "Postgres Local"
155
+ host = "localhost"
156
+ port = "5432"
157
+ database = "postgres"
158
+ user = "postgres"
159
+ password = "postgres"
160
+
161
+ [[db.connectors]]
162
+ id = "snowflake-prod"
163
+ engine = "snowflake"
164
+ title = "Snowflake Prod"
165
+ account = "your-account"
166
+ user = "your-user"
167
+ password = "your-password"
168
+ warehouse = "your-warehouse"
169
+ database = "your-database"
170
+ schema = "your-schema"
171
+ role = "your-role"
172
+ authenticator = "externalbrowser"
173
+
174
+ [[db.connectors]]
175
+ id = "snowflake-dev"
176
+ engine = "snowflake"
177
+ title = "Snowflake Dev"
178
+ account = "your-dev-account"
179
+ user = "your-dev-user"
180
+ warehouse = "your-dev-warehouse"
181
+ ```
182
+
183
+ ## Server-only mode (no UI)
184
+
185
+ If you only want the DuckDB websocket server (no HTTP UI server), install/run `sqlrooms-server`:
186
+
187
+ ```bash
188
+ uvx sqlrooms-server --db-path ./sqlrooms.db --port 4000
189
+ ```
190
+
191
+ `sqlrooms-server` is also available as an alias console script.
192
+
193
+ ## Backend connectors (DbSlice bridge)
194
+
195
+ Use these modes to run remote queries through backend connectors and materialize
196
+ results into core DuckDB for downstream notebook cells.
197
+
198
+ Install optional connector dependencies first:
199
+
200
+ ```bash
201
+ # From python/sqlrooms
202
+ uv sync --extra connectors
203
+ # or install just one connector:
204
+ uv sync --extra postgres
205
+ uv sync --extra snowflake
206
+ ```
207
+
208
+ ### Postgres
209
+
210
+ ```bash
211
+ uvx sqlrooms \
212
+ ./sqlrooms.db \
213
+ --ws-port 4000 \
214
+ --port 4173
215
+ ```
216
+
217
+ ### Snowflake
218
+
219
+ ```bash
220
+ uvx sqlrooms \
221
+ ./sqlrooms.db \
222
+ --ws-port 4000 \
223
+ --port 4173
224
+ ```
225
+
226
+ What this enables:
227
+
228
+ - `sqlrooms` exposes connector bridge endpoints under `/api/db/*`.
229
+ - Runtime connector metadata is exposed via `/api/config`, so frontend `DbSlice` auto-registers available backend connections.
230
+ - Notebook SQL cells can select Postgres/Snowflake connectors from the connector dropdown.
231
+ - Arrow payloads are materialized into DuckDB and can be queried downstream in the same session.
232
+
233
+ Notes:
234
+
235
+ - Configure connectors in `sqlrooms.toml` using `[[db.connectors]]` entries.
236
+ - Connector libraries are optional extras (`postgres`, `snowflake`, or `connectors`).
237
+
238
+ ## Developer setup
239
+
240
+ Local dev loop for the CLI and UI:
241
+
242
+ 1. Install deps and build the dedicated UI (from repo root):
243
+
244
+ ```bash
245
+ pnpm install
246
+ pnpm --filter sqlrooms-python build:ui
247
+ # build outputs directly to python/sqlrooms/sqlrooms/web/static
248
+ ```
249
+
250
+ 2. Dev the Python CLI app from the repo root:
251
+
252
+ ```bash
253
+ pnpm dev cli
254
+ ```
255
+
256
+ This starts the Python API server on `http://127.0.0.1:4273` with `--no-ui`
257
+ and the Vite UI on `http://localhost:4174`. If those ports are busy, the dev
258
+ script selects the next free API and UI ports from separate ranges and points
259
+ the Vite proxy at the selected API port. The auto-created dev database is named
260
+ after the selected UI port, for example `sqlrooms-4174.db`.
261
+
262
+ 3. Run the Python API server on its own (optional):
263
+
264
+ ```bash
265
+ cd python/sqlrooms
266
+ pnpm dev
267
+ ```
268
+
269
+ Tips:
270
+
271
+ - Use `--no-open-browser` if you don’t want the static bundle auto-opened.
272
+ - Use `--no-ui` when pairing the Python API server with the Vite UI dev server.
273
+ - Rebuild the UI (`pnpm --filter sqlrooms-python build:ui`) when you want the Python server to serve new static assets.
274
+ - `/api/config` reflects runtime config (AI providers/default model, DB bridge metadata, WS URL).
@@ -0,0 +1,57 @@
1
+ sqlrooms/cli.py,sha256=jBa3C2lRB7DsLrYoMdj4TqW5SLjMEyYTajLrulfFBjk,21185
2
+ sqlrooms/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ sqlrooms/web/launcher.py,sha256=5UVfkyz65Yiez-kGRjhKpymgf02ZuLCmkOVNkAXXR3o,46629
4
+ sqlrooms/web/ui.py,sha256=WuIC4iKwAOKkcnKkupjMLnDCLgB8uxmUsv0QKw4TgpY,999
5
+ sqlrooms/web/db_bridge/__init__.py,sha256=x0gSSk7Yi8CqzCF1pfiu9lP75bEWSPGO8CJOn63FEhA,747
6
+ sqlrooms/web/db_bridge/factory.py,sha256=OhigGRBWIEVQ_9lFLaXJqhSqNQ21evGlOK21Fq5yKH0,3456
7
+ sqlrooms/web/db_bridge/registry.py,sha256=Jx2CcsTRFp2sIKXMOXIm1FMyOGMm5yl-Axqmc05nlrI,3883
8
+ sqlrooms/web/db_bridge/types.py,sha256=2atER7d05NVxWErN9LEy7LukohI5XX0r68KLCFX8IWg,800
9
+ sqlrooms/web/db_bridge/utils.py,sha256=RD1v7yF5yqAxrkBFBZ0aMBWZnEDJ7W2NFbS6WuTYzDA,1225
10
+ sqlrooms/web/db_bridge/connectors/__init__.py,sha256=OumH1sD0BVztBTobO1dWBrOxM0HsD29TrZFkrZ1gkFo,294
11
+ sqlrooms/web/db_bridge/connectors/base.py,sha256=miOk_gRYV-oNJQ4_iZiuvGiWXMyB-a-3u1wGf-va7Vk,1951
12
+ sqlrooms/web/db_bridge/connectors/postgres.py,sha256=RnbpEfHm9wUCHkZUxCN3Fjo2awrffevnIgRlwH608pU,3975
13
+ sqlrooms/web/db_bridge/connectors/snowflake.py,sha256=e3k3JeBVnCjSD2MAFNjfUI08XGtaODU3P_5jb2aLJ-0,5709
14
+ sqlrooms/web/static/index.html,sha256=lgY9kCmBma89P0nuF9bX-73uD8Use5If_SFxJcP2iA8,1865
15
+ sqlrooms/web/static/logo.png,sha256=FFhV8so-FBrGGVQYwd6ThDLvhZEQriThtT7xZ9vTp1o,75014
16
+ sqlrooms/web/static/assets/AiSlice-x2gVCmwI.js,sha256=TQXwY4S5Fw3kxEwa3t_aqrc9S4-_wierTzKvdc9ORuc,1248361
17
+ sqlrooms/web/static/assets/CommandSlice-DPSuuiIV.js,sha256=f_Pv38X5g1WkROMkVYu2YR2WtQdcMIHNtzpv8dNZCFo,264592
18
+ sqlrooms/web/static/assets/DockLayout-DhgcIQET.js,sha256=00L8-p2GwMejsMQLETOgvGJiWGOfSGRaodpR4M4sbhc,831
19
+ sqlrooms/web/static/assets/GridLayout-CBVgs-6H.css,sha256=jwAy94ONLi_NH9tqWEbuucz2ofIxemyHmpMY5EvmdDw,3567
20
+ sqlrooms/web/static/assets/GridLayout-fXJZYHbE.js,sha256=I7ODHPxMJ_7prmLmpOpLv8zWnl8cdaR2PJcDvczgLOA,95784
21
+ sqlrooms/web/static/assets/LayoutRendererContext-BKO2wB-W.js,sha256=hhHqSsxv1FSw6KfSAr853xMelJlnM9kw25G4tZvaH0o,384
22
+ sqlrooms/web/static/assets/LeafLayout-DPFHUP6B.js,sha256=8k4UDwuz4uLvfwmDJ2lZ7nJZasQOBAI-AYsSzrW9U4Y,1860
23
+ sqlrooms/web/static/assets/LeafLayout-ekhNDEEg.js,sha256=uhSZ3bBbfCwi8Idqsr6LuN7gzvbPxiYumG9ec5PZlXU,69
24
+ sqlrooms/web/static/assets/RenderNodeContext-BdrX8FaE.js,sha256=nX4Sniv9FRUjg-RX2PGsvNBjkH7LmGRv__ia44UmoqM,358
25
+ sqlrooms/web/static/assets/RendererSwitcher-DnVbhqg4.js,sha256=HwS3R6Khm-_A79GHeES32ujTgT7ImAyNY8sXO5Ssy-E,15818
26
+ sqlrooms/web/static/assets/SplitLayout-fPLAPJN-.js,sha256=fm2H1SJalwodV4VRFi6_YM4maz80VmFwXvkIocOds_g,3554
27
+ sqlrooms/web/static/assets/TabsLayout-C0N-7wmx.js,sha256=GXL8VKO1ID2nvMWsd22zaZJugSoYseuQ2ChCTt_2Bhs,69
28
+ sqlrooms/web/static/assets/TabsLayout-T3iApyr5.js,sha256=4xkpWD1ZqE6ZciW5aeP6QDBtxLDzIiTzPyruvkZBzjA,70685
29
+ sqlrooms/web/static/assets/chunk-jRWAZmH_.js,sha256=EBCHw4Xd_qfDfrcnkP1ap6PWR-hdwkFxyDADTtJ9PJA,1216
30
+ sqlrooms/web/static/assets/codicon-ngg6Pgfi.ttf,sha256=nSVRPIYXBL5lDqzvjEWIrOq9yLZohXdHteQrKZ6SaRg,121972
31
+ sqlrooms/web/static/assets/core.esm-DdCldPzV.js,sha256=Srw4hy2hRDoCfmUzg5L1PwFcw85nN_SNgvwyM1XmdKg,42517
32
+ sqlrooms/web/static/assets/css.worker-Wv5dxAWO.js,sha256=9YIg8WQsozgUTYbgsngZL0FaPe54Wkb0jhJSOvDy6jo,1054628
33
+ sqlrooms/web/static/assets/devtools-BNUn8Jb2.js,sha256=ikeKgGv24nlbq_dxIsQHa39hnDTx85ve4PpLMAkmrl4,21449
34
+ sqlrooms/web/static/assets/dist-dwKeDPoe.js,sha256=20AgnNH1-rJYPFvaD-pbKNGM0QYmdCYBk8CUU4KgGw4,6093
35
+ sqlrooms/web/static/assets/html.worker-CQP8QQsS.js,sha256=utRRqiEm1Cc_NyxH6Cg2wBz9V8JjGzgroDX6H8fA-B8,719577
36
+ sqlrooms/web/static/assets/index-D9UP9D4f.js,sha256=vYQI0nh4zFQLsef0wIE9b9Mvb3DO1wnoIJ36qSRQv-U,12306091
37
+ sqlrooms/web/static/assets/index-DioDnqnf.css,sha256=7edWDojGtkRS7Ykj7o4CzbGmuxLI24rPBCARlbOir4Q,247898
38
+ sqlrooms/web/static/assets/json.worker-DzV-CpCQ.js,sha256=RHqkcPjjcxnWc7ZAQp_KIE4xLHjitxa2cDzWvJJcxXU,409211
39
+ sqlrooms/web/static/assets/loro_wasm_bg-DP4dC0x3.wasm,sha256=ZT07Be9s_XogtMiUdC0_o8flkPjEgbJdUk-MzfRaCI0,3166878
40
+ sqlrooms/web/static/assets/loro_wasm_bg-VQ4j4Qa9.js,sha256=dD0Qx1hTvyjkv8V6hRqeb7NS8tAR6-TbbQVMpatlPeE,12653
41
+ sqlrooms/web/static/assets/loro_wasm_bg-oL0xMWtE.js,sha256=HBgtiOEeLlWRZs_MyN0Vbp9ZtzrizPoNLCwmu2F6IBU,147551
42
+ sqlrooms/web/static/assets/maplibre-gl-C-a91wbz.js,sha256=E13j1pjXnx8BfIhhhn9QHxmf2dSNu8ZoRsGxkUPvRkc,1027573
43
+ sqlrooms/web/static/assets/node-sql-parser-ChfKIXD7.js,sha256=fZMH61NdhTJdiRfrNYlfP_fNLylY6whGYx6F4ZUdecc,2441483
44
+ sqlrooms/web/static/assets/prop-types-DybOnnvg.js,sha256=xTcYO5Ptv9q0McTpU9Ba3aKjUWzZlxIYelFiX9u4M-Q,2642
45
+ sqlrooms/web/static/assets/react-dom-liMHu8hH.js,sha256=W1gixlj45dJeZFtQhDC0QBUj_Tb7bPq29wegXGTmLDY,3580
46
+ sqlrooms/web/static/assets/resizable-DYr7VLR3.js,sha256=iN2VQGHn2ZgZDcWWd_nH5QJpi5s4NfitUAnkdJh5TgA,33097
47
+ sqlrooms/web/static/assets/scroll-area-ZmzNHGEm.js,sha256=ki8XHny1Gr3v59CfJN_2D2zeaPECjAp5RNQVE-kPt8I,12508
48
+ sqlrooms/web/static/assets/tooltip-mgpsA9tW.js,sha256=jQdeMaROJn1LJGygBlBhzhGu4ddjC4SWhJuWo1OXNW0,52262
49
+ sqlrooms/web/static/assets/ts.worker-Dth06zuC.js,sha256=R41eItlHMy7uQ4vy92qrRDdIRxDHE_6aZBsL91gnTzA,6895042
50
+ sqlrooms/web/static/assets/utils-yJ4l7ARz.js,sha256=1wf-Z7jSLaz2U_E_MEn9ArCWd7DbNUyi3VI09JJCnY0,20100
51
+ sqlrooms/web/static/assets/webgl-device-CgQl7NRd.js,sha256=FYj6SFblEDq3h_ZFZrhC0t-z5sspsZcOkOaIhaywEzo,72
52
+ sqlrooms/web/static/assets/webgl-device-CtgDFnYR.js,sha256=zLVEqkerRZYlDP-m71rcRfKbmg9tedA5NHuh8jlH4FE,190808
53
+ sqlrooms-0.1.0.dist-info/METADATA,sha256=lNr0VMRWMEjQ_lbGSqYze0uIuJHxJQ9otFSHXbzYv0E,9855
54
+ sqlrooms-0.1.0.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
55
+ sqlrooms-0.1.0.dist-info/entry_points.txt,sha256=u5cIx_ZR3H2IWdmor4WmAezj10re-ynRKlNOOEi2jB4,46
56
+ sqlrooms-0.1.0.dist-info/licenses/LICENSE,sha256=R09Mvfa_W3R_FNnnqlCCsv_02BxBa83RjZNRfsGrX48,1082
57
+ sqlrooms-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.30.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ sqlrooms = sqlrooms.cli:app
@@ -0,0 +1,9 @@
1
+ MIT License
2
+
3
+ Copyright 2025 SQLRooms Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.