vibetuner 2.7.0__py3-none-any.whl → 2.18.1__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.

Potentially problematic release.


This version of vibetuner might be problematic. Click here for more details.

Files changed (52) hide show
  1. vibetuner/cli/__init__.py +13 -2
  2. vibetuner/cli/run.py +0 -1
  3. vibetuner/cli/scaffold.py +187 -0
  4. vibetuner/config.py +27 -11
  5. vibetuner/context.py +3 -0
  6. vibetuner/frontend/__init__.py +7 -2
  7. vibetuner/frontend/lifespan.py +12 -7
  8. vibetuner/frontend/middleware.py +3 -3
  9. vibetuner/frontend/routes/auth.py +19 -13
  10. vibetuner/frontend/routes/debug.py +1 -1
  11. vibetuner/frontend/routes/health.py +4 -0
  12. vibetuner/frontend/routes/user.py +1 -1
  13. vibetuner/mongo.py +1 -1
  14. vibetuner/paths.py +197 -80
  15. vibetuner/tasks/worker.py +1 -1
  16. vibetuner/templates/email/{default/magic_link.html.jinja → magic_link.html.jinja} +2 -1
  17. vibetuner/templates/frontend/base/favicons.html.jinja +1 -1
  18. vibetuner/templates/frontend/base/skeleton.html.jinja +5 -2
  19. vibetuner/templates/frontend/debug/collections.html.jinja +2 -0
  20. vibetuner/templates/frontend/debug/components/debug_nav.html.jinja +6 -6
  21. vibetuner/templates/frontend/debug/index.html.jinja +6 -4
  22. vibetuner/templates/frontend/debug/info.html.jinja +2 -0
  23. vibetuner/templates/frontend/debug/users.html.jinja +4 -2
  24. vibetuner/templates/frontend/debug/version.html.jinja +2 -0
  25. vibetuner/templates/frontend/email_sent.html.jinja +2 -1
  26. vibetuner/templates/frontend/index.html.jinja +1 -0
  27. vibetuner/templates/frontend/login.html.jinja +8 -3
  28. vibetuner/templates/frontend/user/edit.html.jinja +3 -2
  29. vibetuner/templates/frontend/user/profile.html.jinja +2 -1
  30. vibetuner/templates.py +9 -15
  31. vibetuner/versioning.py +1 -1
  32. vibetuner-2.18.1.dist-info/METADATA +241 -0
  33. vibetuner-2.18.1.dist-info/RECORD +72 -0
  34. {vibetuner-2.7.0.dist-info → vibetuner-2.18.1.dist-info}/WHEEL +1 -1
  35. vibetuner-2.18.1.dist-info/entry_points.txt +3 -0
  36. vibetuner/frontend/AGENTS.md +0 -113
  37. vibetuner/frontend/CLAUDE.md +0 -113
  38. vibetuner/models/AGENTS.md +0 -165
  39. vibetuner/models/CLAUDE.md +0 -165
  40. vibetuner/services/AGENTS.md +0 -104
  41. vibetuner/services/CLAUDE.md +0 -104
  42. vibetuner/tasks/AGENTS.md +0 -98
  43. vibetuner/tasks/CLAUDE.md +0 -98
  44. vibetuner/templates/email/AGENTS.md +0 -48
  45. vibetuner/templates/email/CLAUDE.md +0 -48
  46. vibetuner/templates/frontend/AGENTS.md +0 -74
  47. vibetuner/templates/frontend/CLAUDE.md +0 -74
  48. vibetuner/templates/markdown/AGENTS.md +0 -29
  49. vibetuner/templates/markdown/CLAUDE.md +0 -29
  50. vibetuner-2.7.0.dist-info/METADATA +0 -48
  51. vibetuner-2.7.0.dist-info/RECORD +0 -84
  52. /vibetuner/templates/email/{default/magic_link.txt.jinja → magic_link.txt.jinja} +0 -0
vibetuner/tasks/CLAUDE.md DELETED
@@ -1,98 +0,0 @@
1
- # Core Tasks Module
2
-
3
- **IMMUTABLE SCAFFOLDING CODE** - This is the framework's core background task infrastructure.
4
-
5
- ## What's Here
6
-
7
- This module contains the scaffolding's core task components:
8
-
9
- - **worker.py** - Streaq worker setup and configuration
10
- - **context.py** - Task context management (DB, HTTP client, etc.)
11
- - ****init**.py** - Task infrastructure exports
12
-
13
- ## Important Rules
14
-
15
- ⚠️ **DO NOT MODIFY** these core task components directly.
16
-
17
- **For changes to core tasks:**
18
-
19
- - File an issue at `https://github.com/alltuner/scaffolding`
20
- - Core changes benefit all projects using the scaffolding
21
-
22
- **For your application tasks:**
23
-
24
- - Create them in `src/app/tasks/` instead
25
- - Import the worker from vibetuner: `from vibetuner.tasks.worker import worker`
26
-
27
- ## Quick Reference
28
-
29
- Tasks are only available if job queue was enabled during scaffolding.
30
-
31
- The worker is defined in `src/vibetuner/tasks/worker.py` and should be imported from there in your app tasks.
32
-
33
- ## User Task Pattern (for reference)
34
-
35
- Your application tasks in `src/app/tasks/` should follow this pattern:
36
-
37
- ```python
38
- # src/app/tasks/emails.py
39
- from vibetuner.models import UserModel
40
- from vibetuner.tasks.worker import worker
41
-
42
- @worker.task()
43
- async def send_welcome_email(user_id: str) -> dict[str, str]:
44
- """Example background job."""
45
-
46
- # Access context
47
- res = await worker.context.http_client.get(url)
48
-
49
- if user := await UserModel.get(user_id):
50
- # Perform side effects
51
- return {"status": "sent", "user": user.email}
52
- return {"status": "skipped"}
53
- ```
54
-
55
- ## Queueing Tasks
56
-
57
- ```python
58
- # In your routes: src/app/frontend/routes/auth.py
59
- from app.tasks.emails import send_welcome_email
60
-
61
- @router.post("/signup")
62
- async def signup(email: str):
63
- user = await create_user(email)
64
-
65
- task = await send_welcome_email.enqueue(user.id)
66
- # Optional: await task.result() or check task.id
67
-
68
- return {"status": "registered", "job_id": task.id}
69
- ```
70
-
71
- Note: Import your task functions from `src/app/tasks/` but the worker itself comes from `vibetuner.tasks.worker`.
72
-
73
- ## Worker Management
74
-
75
- ```bash
76
- just worker-dev # Run worker locally with auto-reload
77
- ```
78
-
79
- ## Task Registration
80
-
81
- Add new task modules at the end of `src/app/tasks/__init__.py`:
82
-
83
- ```python
84
- # src/app/tasks/__init__.py
85
- # Import your task modules so decorators register with worker
86
- from . import emails # noqa: F401
87
- from . import new_tasks # noqa: F401
88
- ```
89
-
90
- ## Monitoring
91
-
92
- ```python
93
- task = await send_digest_email.enqueue(account_id)
94
-
95
- status = await task.status()
96
- result = await task.result(timeout=30)
97
- await task.abort() # Cancel if needed
98
- ```
@@ -1,48 +0,0 @@
1
- # Core Email Templates - DO NOT MODIFY
2
-
3
- **⚠️ IMPORTANT**: Package-managed files. Changes will be lost on package updates.
4
-
5
- ## How to Override
6
-
7
- **NEVER modify files in this directory!** Instead:
8
-
9
- 1. Copy template to your project's `templates/email/`
10
- 2. Maintain the same directory structure
11
- 3. Your version overrides automatically
12
-
13
- ### Example
14
-
15
- ```bash
16
- # Core template (DO NOT EDIT, bundled in vibetuner package):
17
- vibetuner/templates/email/default/magic_link.html.jinja
18
-
19
- # Your override (CREATE THIS in your project):
20
- templates/email/default/magic_link.html.jinja
21
- ```
22
-
23
- ## Template Structure
24
-
25
- ```text
26
- vibetuner/email/
27
- └── default/
28
- ├── magic_link.html.jinja # Passwordless login email (HTML)
29
- └── magic_link.txt.jinja # Passwordless login email (text)
30
- ```
31
-
32
- ## Magic Link Email
33
-
34
- The core provides magic link authentication emails used by the auth system.
35
-
36
- ### Variables Available
37
-
38
- - `login_url` - The magic link URL for authentication
39
- - `project_name` - Your project's display name
40
-
41
- Override these templates to customize branding, styling, and content.
42
-
43
- ## Best Practices
44
-
45
- 1. Always provide both HTML and text versions
46
- 2. Test overrides after scaffolding updates
47
- 3. Keep branding consistent across all emails
48
- 4. Use inline styles for HTML emails
@@ -1,48 +0,0 @@
1
- # Core Email Templates - DO NOT MODIFY
2
-
3
- **⚠️ IMPORTANT**: Package-managed files. Changes will be lost on package updates.
4
-
5
- ## How to Override
6
-
7
- **NEVER modify files in this directory!** Instead:
8
-
9
- 1. Copy template to your project's `templates/email/`
10
- 2. Maintain the same directory structure
11
- 3. Your version overrides automatically
12
-
13
- ### Example
14
-
15
- ```bash
16
- # Core template (DO NOT EDIT, bundled in vibetuner package):
17
- vibetuner/templates/email/default/magic_link.html.jinja
18
-
19
- # Your override (CREATE THIS in your project):
20
- templates/email/default/magic_link.html.jinja
21
- ```
22
-
23
- ## Template Structure
24
-
25
- ```text
26
- vibetuner/email/
27
- └── default/
28
- ├── magic_link.html.jinja # Passwordless login email (HTML)
29
- └── magic_link.txt.jinja # Passwordless login email (text)
30
- ```
31
-
32
- ## Magic Link Email
33
-
34
- The core provides magic link authentication emails used by the auth system.
35
-
36
- ### Variables Available
37
-
38
- - `login_url` - The magic link URL for authentication
39
- - `project_name` - Your project's display name
40
-
41
- Override these templates to customize branding, styling, and content.
42
-
43
- ## Best Practices
44
-
45
- 1. Always provide both HTML and text versions
46
- 2. Test overrides after scaffolding updates
47
- 3. Keep branding consistent across all emails
48
- 4. Use inline styles for HTML emails
@@ -1,74 +0,0 @@
1
- # Core Frontend Templates - DO NOT MODIFY
2
-
3
- **⚠️ IMPORTANT**: Package-managed files. Changes will be lost on package updates.
4
-
5
- ## How to Override
6
-
7
- **NEVER modify files in this directory!** Instead:
8
-
9
- 1. Copy template to your project's `templates/frontend/`
10
- 2. Maintain the same directory structure
11
- 3. Your version overrides automatically
12
-
13
- ### Example
14
-
15
- ```bash
16
- # Core template (DO NOT EDIT, bundled in vibetuner package):
17
- vibetuner/templates/frontend/base/footer.html.jinja
18
-
19
- # Your override (CREATE THIS in your project):
20
- templates/frontend/base/footer.html.jinja
21
- ```
22
-
23
- The template system searches in order:
24
-
25
- 1. `templates/frontend/` (your project overrides)
26
- 2. `vibetuner/templates/frontend/` (package defaults)
27
-
28
- ## Template Structure
29
-
30
- ```text
31
- vibetuner/frontend/
32
- ├── base/ # Core layout
33
- │ ├── skeleton.html.jinja
34
- │ ├── header.html.jinja
35
- │ ├── footer.html.jinja
36
- │ ├── opengraph.html.jinja
37
- │ └── favicons.html.jinja
38
- ├── debug/ # Dev tools (DEBUG mode only)
39
- │ ├── index.html.jinja
40
- │ ├── info.html.jinja
41
- │ ├── users.html.jinja
42
- │ ├── collections.html.jinja
43
- │ └── version.html.jinja
44
- ├── email/ # Email-related pages
45
- │ └── magic_link templates
46
- ├── lang/ # Language switcher
47
- │ └── select.html.jinja
48
- ├── meta/ # SEO and meta files
49
- │ ├── robots.txt.jinja
50
- │ ├── sitemap.xml.jinja
51
- │ ├── site.webmanifest.jinja
52
- │ └── browserconfig.xml.jinja
53
- ├── user/ # User account pages
54
- │ ├── profile.html.jinja
55
- │ └── edit.html.jinja
56
- ├── index.html.jinja # Default homepage
57
- ├── login.html.jinja # Login page
58
- └── email_sent.html.jinja # Magic link sent confirmation
59
- ```
60
-
61
- ## Common Overrides
62
-
63
- - `base/skeleton.html.jinja` - Add meta tags, global CSS/JS
64
- - `base/header.html.jinja` - Customize navigation
65
- - `base/footer.html.jinja` - Custom footer
66
- - `index.html.jinja` - Custom homepage
67
-
68
- ## Best Practices
69
-
70
- 1. Override only what you need
71
- 2. Document why each override exists
72
- 3. Test after `just update-scaffolding`
73
- 4. Use template inheritance and blocks
74
- 5. Keep overrides minimal to ease updates
@@ -1,74 +0,0 @@
1
- # Core Frontend Templates - DO NOT MODIFY
2
-
3
- **⚠️ IMPORTANT**: Package-managed files. Changes will be lost on package updates.
4
-
5
- ## How to Override
6
-
7
- **NEVER modify files in this directory!** Instead:
8
-
9
- 1. Copy template to your project's `templates/frontend/`
10
- 2. Maintain the same directory structure
11
- 3. Your version overrides automatically
12
-
13
- ### Example
14
-
15
- ```bash
16
- # Core template (DO NOT EDIT, bundled in vibetuner package):
17
- vibetuner/templates/frontend/base/footer.html.jinja
18
-
19
- # Your override (CREATE THIS in your project):
20
- templates/frontend/base/footer.html.jinja
21
- ```
22
-
23
- The template system searches in order:
24
-
25
- 1. `templates/frontend/` (your project overrides)
26
- 2. `vibetuner/templates/frontend/` (package defaults)
27
-
28
- ## Template Structure
29
-
30
- ```text
31
- vibetuner/frontend/
32
- ├── base/ # Core layout
33
- │ ├── skeleton.html.jinja
34
- │ ├── header.html.jinja
35
- │ ├── footer.html.jinja
36
- │ ├── opengraph.html.jinja
37
- │ └── favicons.html.jinja
38
- ├── debug/ # Dev tools (DEBUG mode only)
39
- │ ├── index.html.jinja
40
- │ ├── info.html.jinja
41
- │ ├── users.html.jinja
42
- │ ├── collections.html.jinja
43
- │ └── version.html.jinja
44
- ├── email/ # Email-related pages
45
- │ └── magic_link templates
46
- ├── lang/ # Language switcher
47
- │ └── select.html.jinja
48
- ├── meta/ # SEO and meta files
49
- │ ├── robots.txt.jinja
50
- │ ├── sitemap.xml.jinja
51
- │ ├── site.webmanifest.jinja
52
- │ └── browserconfig.xml.jinja
53
- ├── user/ # User account pages
54
- │ ├── profile.html.jinja
55
- │ └── edit.html.jinja
56
- ├── index.html.jinja # Default homepage
57
- ├── login.html.jinja # Login page
58
- └── email_sent.html.jinja # Magic link sent confirmation
59
- ```
60
-
61
- ## Common Overrides
62
-
63
- - `base/skeleton.html.jinja` - Add meta tags, global CSS/JS
64
- - `base/header.html.jinja` - Customize navigation
65
- - `base/footer.html.jinja` - Custom footer
66
- - `index.html.jinja` - Custom homepage
67
-
68
- ## Best Practices
69
-
70
- 1. Override only what you need
71
- 2. Document why each override exists
72
- 3. Test after `just update-scaffolding`
73
- 4. Use template inheritance and blocks
74
- 5. Keep overrides minimal to ease updates
@@ -1,29 +0,0 @@
1
- # Core Markdown Templates - DO NOT MODIFY
2
-
3
- **⚠️ IMPORTANT**: Package-managed files. Changes will be lost on package updates.
4
-
5
- ## How to Override
6
-
7
- **NEVER modify files in this directory!** Instead:
8
-
9
- 1. Copy template to your project's `templates/markdown/`
10
- 2. Maintain the same directory structure
11
- 3. Your version overrides automatically
12
-
13
- ### Example
14
-
15
- ```bash
16
- # Core template (if exists, bundled in vibetuner package):
17
- vibetuner/templates/markdown/default/template.md.jinja
18
-
19
- # Your override (CREATE THIS in your project):
20
- templates/markdown/default/template.md.jinja
21
- ```
22
-
23
- ## Template Structure
24
-
25
- Currently, no core markdown templates are provided by the package.
26
-
27
- This directory is a placeholder for potential future package markdown templates.
28
-
29
- All markdown templates should be created in `templates/markdown/`.
@@ -1,29 +0,0 @@
1
- # Core Markdown Templates - DO NOT MODIFY
2
-
3
- **⚠️ IMPORTANT**: Package-managed files. Changes will be lost on package updates.
4
-
5
- ## How to Override
6
-
7
- **NEVER modify files in this directory!** Instead:
8
-
9
- 1. Copy template to your project's `templates/markdown/`
10
- 2. Maintain the same directory structure
11
- 3. Your version overrides automatically
12
-
13
- ### Example
14
-
15
- ```bash
16
- # Core template (if exists, bundled in vibetuner package):
17
- vibetuner/templates/markdown/default/template.md.jinja
18
-
19
- # Your override (CREATE THIS in your project):
20
- templates/markdown/default/template.md.jinja
21
- ```
22
-
23
- ## Template Structure
24
-
25
- Currently, no core markdown templates are provided by the package.
26
-
27
- This directory is a placeholder for potential future package markdown templates.
28
-
29
- All markdown templates should be created in `templates/markdown/`.
@@ -1,48 +0,0 @@
1
- Metadata-Version: 2.3
2
- Name: vibetuner
3
- Version: 2.7.0
4
- Summary: Blessed Python dependencies for Vibetuner projects
5
- Requires-Dist: aioboto3>=15.5.0
6
- Requires-Dist: arel>=0.4.0
7
- Requires-Dist: asyncer>=0.0.10
8
- Requires-Dist: authlib>=1.6.5
9
- Requires-Dist: beanie[zstd]>=2.0.0
10
- Requires-Dist: click>=8.3.0
11
- Requires-Dist: email-validator>=2.3.0
12
- Requires-Dist: fastapi[standard-no-fastapi-cloud-cli]>=0.120.4
13
- Requires-Dist: granian[pname]>=2.5.6
14
- Requires-Dist: httpx[http2]>=0.28.1
15
- Requires-Dist: itsdangerous>=2.2.0
16
- Requires-Dist: loguru>=0.7.3
17
- Requires-Dist: pydantic[email]>=2.12.3
18
- Requires-Dist: pydantic-extra-types[pycountry]>=2.10.6
19
- Requires-Dist: pydantic-settings>=2.11.0
20
- Requires-Dist: pyyaml>=6.0.3
21
- Requires-Dist: redis[hiredis]>=7.0.1
22
- Requires-Dist: rich>=14.2.0
23
- Requires-Dist: sse-starlette>=3.0.3
24
- Requires-Dist: starlette-babel>=1.0.3
25
- Requires-Dist: starlette-htmx>=0.1.1
26
- Requires-Dist: streaq[web]<6.0.0
27
- Requires-Dist: typer-slim[standard]>=0.20.0
28
- Requires-Dist: babel>=2.17.0 ; extra == 'dev'
29
- Requires-Dist: cloudflare>=4.3.1 ; extra == 'dev'
30
- Requires-Dist: copier>=9.9.0,<9.9.1 ; extra == 'dev'
31
- Requires-Dist: djlint>=1.36.4 ; extra == 'dev'
32
- Requires-Dist: dunamai>=1.25.0 ; extra == 'dev'
33
- Requires-Dist: gh-bin>=2.81.0 ; extra == 'dev'
34
- Requires-Dist: granian[pname,reload]>=2.5.6 ; extra == 'dev'
35
- Requires-Dist: just-bin>=1.43.0 ; extra == 'dev'
36
- Requires-Dist: pre-commit>=4.3.0 ; extra == 'dev'
37
- Requires-Dist: pysemver>=0.5.0 ; extra == 'dev'
38
- Requires-Dist: ruff>=0.14.3 ; extra == 'dev'
39
- Requires-Dist: rumdl>=0.0.170 ; extra == 'dev'
40
- Requires-Dist: semver>=3.0.4 ; extra == 'dev'
41
- Requires-Dist: taplo>=0.9.3 ; extra == 'dev'
42
- Requires-Dist: ty>=0.0.1a25 ; extra == 'dev'
43
- Requires-Dist: types-aioboto3[s3,ses]>=15.5.0 ; extra == 'dev'
44
- Requires-Dist: types-authlib>=1.6.5.20251005 ; extra == 'dev'
45
- Requires-Dist: types-pyyaml>=6.0.12.20250915 ; extra == 'dev'
46
- Requires-Dist: uv-bump>=0.3.1 ; extra == 'dev'
47
- Requires-Python: >=3.10
48
- Provides-Extra: dev
@@ -1,84 +0,0 @@
1
- vibetuner/__init__.py,sha256=rFIVCmxkKTT_g477V8biCw0lgpudyuUabXhYxg189lY,90
2
- vibetuner/__main__.py,sha256=Ye9oBAgXhcYQ4I4yZli3TIXF5lWQ9yY4tTPs4XnDDUY,29
3
- vibetuner/cli/__init__.py,sha256=-DM7TxG9FJKCjTXpNNVSKwtl_Nn3TEg_2OYRJNsLObY,1741
4
- vibetuner/cli/run.py,sha256=Cq7dkHBByTNVca7PY01R5ZNvtCqRbRM5J6ufTSh_rNo,5044
5
- vibetuner/config.py,sha256=kkGU0sht9YA_EOnqqg4MVNDykQQwV3mAFJRZPc8ERJM,3491
6
- vibetuner/context.py,sha256=VdgfX-SFmVwiwKPFID4ElIRnFADTlagqsh9RKXNiLCs,725
7
- vibetuner/frontend/AGENTS.md,sha256=mds0nTl3RBblTA7EFhC9dxx86mn1FH5ESXNSj_1R1Jk,3253
8
- vibetuner/frontend/CLAUDE.md,sha256=mds0nTl3RBblTA7EFhC9dxx86mn1FH5ESXNSj_1R1Jk,3253
9
- vibetuner/frontend/__init__.py,sha256=7-zht4ssnuWyTy3Yv7SO3ikBhZq2H096em4C0TIJ7c8,2807
10
- vibetuner/frontend/context.py,sha256=yd9mJ8Cj9AUeHE533dofEoyCkw6oSPowdq397whfN_s,169
11
- vibetuner/frontend/deps.py,sha256=b3ocC_ryaK2Jp51SfcFqckrXiaL7V-chkFRqLjzgA_c,1296
12
- vibetuner/frontend/email.py,sha256=k0d7FCZCge5VYOKp3fLsbx7EA5_SrtBkpMs57o4W7u0,1119
13
- vibetuner/frontend/hotreload.py,sha256=Gl7FIKJaiCVVoyWQqdErBUOKDP1cGBFUpGzqHMiJd10,285
14
- vibetuner/frontend/lifespan.py,sha256=SDLcsfyQoa1H13KeISWPhe3B28oDF9L2TpZnyOos-N0,525
15
- vibetuner/frontend/middleware.py,sha256=dzurBZ6pWdterjbeypU-H2RT8Y9gDgWow9KxprmhAx8,4951
16
- vibetuner/frontend/oauth.py,sha256=EzEwoOZ_8xn_CiqAWpNoEdhV2NPxZKKwF2bA6W6Bkj0,5884
17
- vibetuner/frontend/routes/__init__.py,sha256=nHhiylHIUPZ2R-Bd7vXEGHLJBQ7fNuzPTJodjJR3lyc,428
18
- vibetuner/frontend/routes/auth.py,sha256=wq69axvOAqzU1QY6u-SFos2J3V_F4IOa-6cDIm0Z_8k,4062
19
- vibetuner/frontend/routes/debug.py,sha256=1YHM_y0FSfA6RON5acVHmnhtKCFiCj57eAzp5AkYWXc,12735
20
- vibetuner/frontend/routes/health.py,sha256=U5sA5E2ot-4qbCnNbJs98Djy0D5DvwKsofm68h6LQrI,817
21
- vibetuner/frontend/routes/language.py,sha256=wHNfdewqWfK-2JLXwglu0Q0b_e00HFGd0A2-PYT44LE,1240
22
- vibetuner/frontend/routes/meta.py,sha256=pSyIxQsiB0QZSYwCQbS07KhkT5oHC5r9jvjUDIqZRGw,1409
23
- vibetuner/frontend/routes/user.py,sha256=DnewxYkiU0uiheNrzVyaAWfOk8jreJGTNrGuYf3DVCc,2658
24
- vibetuner/frontend/templates.py,sha256=1k2jCGBdMx9U9RDcHmuO6fiNEXrRYZ0Mzk51H9XAlrM,5322
25
- vibetuner/logging.py,sha256=9eNofqVtKZCBDS33NbBI7Sv2875gM8MNStTSCjX2AXQ,2409
26
- vibetuner/models/AGENTS.md,sha256=5wtNuzZFA8R3A1DGA0ackzO3JsKZPSc_WHuWu8bT-YA,3809
27
- vibetuner/models/CLAUDE.md,sha256=5wtNuzZFA8R3A1DGA0ackzO3JsKZPSc_WHuWu8bT-YA,3809
28
- vibetuner/models/__init__.py,sha256=JvmQvzDIxaI7zlk-ROCWEbuzxXSUOqCshINUjgu-AfQ,325
29
- vibetuner/models/blob.py,sha256=F30HFS4Z_Bji_PGPflWIv4dOwqKLsEWQHcjW1Oz_79M,2523
30
- vibetuner/models/email_verification.py,sha256=iwDnbPhceugY6vQZwyp0AKCEID61NbAxqA7tdQKHHAI,2488
31
- vibetuner/models/mixins.py,sha256=934aAcdos_SlDMyiARBV8dhhClgtaVpf0O7OJf4d6YQ,3053
32
- vibetuner/models/oauth.py,sha256=BdOZbW47Das9ntHTtRmVdl1lB5zLCcXW2fyVJ-tQ_F8,1509
33
- vibetuner/models/registry.py,sha256=O5YG7vOrWluqpH5N7m44v72wbscMhU_Pu3TJw_u0MTk,311
34
- vibetuner/models/types.py,sha256=Lj3ASEvx5eNgQMcVhNyKQHHolJqDxj2yH8S-M9oa4J8,402
35
- vibetuner/models/user.py,sha256=ttcSH4mVREPhA6bCFUWXKfJ9_8_Iq3lEYXe3rDrslw4,2696
36
- vibetuner/mongo.py,sha256=7Rszo86xJQSyElH5z_qA-Tc8Q0078nthPxG7heUG0gA,512
37
- vibetuner/paths.py,sha256=BYN59PKbcs8x7b6GD_P9K39pxmZdlnPZ5aRxV4TooNw,3931
38
- vibetuner/services/AGENTS.md,sha256=-0_QNcASfPv_a2dWMpnAQh4wdH7kgvskuRpxwF7d4Vo,2323
39
- vibetuner/services/CLAUDE.md,sha256=-0_QNcASfPv_a2dWMpnAQh4wdH7kgvskuRpxwF7d4Vo,2323
40
- vibetuner/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
- vibetuner/services/blob.py,sha256=-lEGIWe30yR2IuTfy5bB9Sg_PX0HoYC_WMTQ3VN28gU,5660
42
- vibetuner/services/email.py,sha256=IavJZS5MI40LlF_cjBpPPRx_S2r1JD4GcFg3-dWkzPA,1626
43
- vibetuner/tasks/AGENTS.md,sha256=Gn-eUjAU7xnIf0b0p56klw2QR7O7wLyJ5ENoTkBKBeQ,2588
44
- vibetuner/tasks/CLAUDE.md,sha256=Gn-eUjAU7xnIf0b0p56klw2QR7O7wLyJ5ENoTkBKBeQ,2588
45
- vibetuner/tasks/__init__.py,sha256=uETtKOA5rJ48NBx-LN4niRJDzkb6--NHAPW3jReHABI,71
46
- vibetuner/tasks/context.py,sha256=FOFUDWGNo1h8G8qlE-1Gbkh-Kd1z3WZTqSMHkvZ68v8,869
47
- vibetuner/tasks/worker.py,sha256=UUknSuVl0orXl3hrW8EPpaGgRI8wYoVm-p5FnDki0Gc,437
48
- vibetuner/templates/email/AGENTS.md,sha256=oRCocZqDM0qKCg6REwU-MwTtDbDTbL5DwpmkshVhIEY,1274
49
- vibetuner/templates/email/CLAUDE.md,sha256=oRCocZqDM0qKCg6REwU-MwTtDbDTbL5DwpmkshVhIEY,1274
50
- vibetuner/templates/email/default/magic_link.html.jinja,sha256=7npaw9XzttjAe4Y5pk7J47eZJ3K0vR_h7Dz01YT3Xis,567
51
- vibetuner/templates/email/default/magic_link.txt.jinja,sha256=dANak9ion1cpILt45V3GcI2qnL_gKFPj7PsZKYV0m5s,200
52
- vibetuner/templates/frontend/AGENTS.md,sha256=LHUslpKlYJ2eQXY7s3uyuAvhyCIoK_6Qox0O0rwIuaI,2299
53
- vibetuner/templates/frontend/CLAUDE.md,sha256=LHUslpKlYJ2eQXY7s3uyuAvhyCIoK_6Qox0O0rwIuaI,2299
54
- vibetuner/templates/frontend/base/favicons.html.jinja,sha256=TIFiB013aWvQN1zMuHK9K_10AS2zjW7ZtWCxJJmD1kg,70
55
- vibetuner/templates/frontend/base/footer.html.jinja,sha256=P5EKssUk-HHz0yFE3auj1WtSqsJxAzi39XbRxjBtLLg,165
56
- vibetuner/templates/frontend/base/header.html.jinja,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
- vibetuner/templates/frontend/base/opengraph.html.jinja,sha256=wjmLAE3C4OZqxPhPCce1kD3XDN-BZgp3v0GwlToUoBc,419
58
- vibetuner/templates/frontend/base/skeleton.html.jinja,sha256=fEMGjE7pXQphsqMlPh-CEXfwNJgjtzbUO_86QvEz92Y,1695
59
- vibetuner/templates/frontend/debug/collections.html.jinja,sha256=YpvUaqKJDQ_Rre1p-Yh5mc2FBSxUbQRAkAtGCFvQidc,7092
60
- vibetuner/templates/frontend/debug/components/debug_nav.html.jinja,sha256=czC5xsguAU3m-LC_DDna067B-pJY9k-i7hXRh5hihHY,2963
61
- vibetuner/templates/frontend/debug/index.html.jinja,sha256=FGIvBfmOGJ0OI2_e8oYiFQ9WCLjy2e-aIxyM6qdIzW8,4890
62
- vibetuner/templates/frontend/debug/info.html.jinja,sha256=lylzLX-K2TbDq8SmrLOzo8rKUng3njmkwQAgmFNqy5I,14966
63
- vibetuner/templates/frontend/debug/users.html.jinja,sha256=CqC1lBGsuea-JgIqgeQAHRUILtZbRMCC4kVotifTUc8,7767
64
- vibetuner/templates/frontend/debug/version.html.jinja,sha256=nLh_zUzkO5OuyYHs_SH3Bu9Fa2b2N-YJLiQBTTmQVJM,2899
65
- vibetuner/templates/frontend/email/magic_link.txt.jinja,sha256=fTVl3Wjfvp3EJAB5DYt01EL_O7o9r8lHedDH05YP44c,192
66
- vibetuner/templates/frontend/email_sent.html.jinja,sha256=Cpvzza80v9KmON66hKmhwIgvd9tkhjhM7O8qe0YLjF4,5235
67
- vibetuner/templates/frontend/index.html.jinja,sha256=P4pcI1JKrr5YBMGbgjTSrKlvORRgzi87VvNKsh1B5GE,924
68
- vibetuner/templates/frontend/lang/select.html.jinja,sha256=4jHo8QWvMOIeK_KqHzSaDzgvuT3v8MlmjTrrYIl2sjk,224
69
- vibetuner/templates/frontend/login.html.jinja,sha256=9jzEyeCdB2Xe_braaojf1lCLH0qaLN6-lPUHPoGfGRM,5365
70
- vibetuner/templates/frontend/meta/browserconfig.xml.jinja,sha256=5DE-Dowxw3fRg4UJerW6tVrUYdHWUsUOfS_YucoRVXQ,300
71
- vibetuner/templates/frontend/meta/robots.txt.jinja,sha256=SUBJqQCOW5FFdD4uIkReo04NcAYnjITLyB4Wk1wBcS4,46
72
- vibetuner/templates/frontend/meta/site.webmanifest.jinja,sha256=QCg2Z2GXd2AwJ3C8CnW9Brvu3cbXcZiquLNEzA8FsOc,150
73
- vibetuner/templates/frontend/meta/sitemap.xml.jinja,sha256=IhBjk7p5OdqszyK6DR3eUAdeAucKk2s_PpnOfYxgNCo,170
74
- vibetuner/templates/frontend/user/edit.html.jinja,sha256=nMaEjcT7VZy_eHa108HCrsV1KrKXFFa02A2k9RhbHp0,5442
75
- vibetuner/templates/frontend/user/profile.html.jinja,sha256=A3Tqs6mCtXcCTirZ0ZNGjCs2RM_8g4MP2LkutzsDsxQ,9963
76
- vibetuner/templates/markdown/.placeholder,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
- vibetuner/templates/markdown/AGENTS.md,sha256=jcvoQNazCj-t54s0gr-4_qyxLMP8iPf2urlaAj887n0,814
78
- vibetuner/templates/markdown/CLAUDE.md,sha256=jcvoQNazCj-t54s0gr-4_qyxLMP8iPf2urlaAj887n0,814
79
- vibetuner/templates.py,sha256=o4Y83mx-F64pd8oKFUaj_Cgn1a7WJIphld9puqGuDMo,5153
80
- vibetuner/time.py,sha256=3_DtveCCzI20ocTnAlTh2u7FByUXtINaUoQZO-_uZow,1188
81
- vibetuner/versioning.py,sha256=vygq-fCbMoTMPTDtiUq8cd5LHkF0Sw6B2iTDbBF4bnE,154
82
- vibetuner-2.7.0.dist-info/WHEEL,sha256=5w2T7AS2mz1-rW9CNagNYWRCaB0iQqBMYLwKdlgiR4Q,78
83
- vibetuner-2.7.0.dist-info/METADATA,sha256=T62jJffzG7O-hLlXW2QpX65D7d6jV1E-R6qMgH3DKis,1956
84
- vibetuner-2.7.0.dist-info/RECORD,,