celeste-ai 0.0.1__tar.gz → 0.0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of celeste-ai might be problematic. Click here for more details.

@@ -0,0 +1,197 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main, develop]
6
+ pull_request:
7
+ branches: [main, develop]
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ lint:
14
+ name: Lint & Format Check
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+
19
+ - name: Set up Python
20
+ uses: actions/setup-python@v5
21
+ with:
22
+ python-version: "3.11"
23
+
24
+ - name: Install uv
25
+ uses: astral-sh/setup-uv@v3
26
+ with:
27
+ enable-cache: true
28
+ cache-dependency-glob: "**/pyproject.toml"
29
+
30
+ - name: Install dependencies
31
+ run: |
32
+ uv sync --extra dev
33
+
34
+ - name: Run Ruff check and format
35
+ run: |
36
+ uv run ruff check --output-format=github src/ tests/
37
+ uv run ruff format --check src/ tests/
38
+
39
+ type-check:
40
+ name: Type Check
41
+ runs-on: ubuntu-latest
42
+ steps:
43
+ - uses: actions/checkout@v4
44
+
45
+ - name: Set up Python
46
+ uses: actions/setup-python@v5
47
+ with:
48
+ python-version: "3.11"
49
+
50
+ - name: Install uv
51
+ uses: astral-sh/setup-uv@v3
52
+ with:
53
+ enable-cache: true
54
+ cache-dependency-glob: "**/pyproject.toml"
55
+
56
+ - name: Install dependencies
57
+ run: |
58
+ uv sync --extra dev
59
+
60
+ - name: Run mypy
61
+ run: |
62
+ uv run mypy src/
63
+
64
+ security:
65
+ name: Security Check
66
+ runs-on: ubuntu-latest
67
+ steps:
68
+ - uses: actions/checkout@v4
69
+
70
+ - name: Set up Python
71
+ uses: actions/setup-python@v5
72
+ with:
73
+ python-version: "3.11"
74
+
75
+ - name: Install uv
76
+ uses: astral-sh/setup-uv@v3
77
+ with:
78
+ enable-cache: true
79
+ cache-dependency-glob: "**/pyproject.toml"
80
+
81
+ - name: Install dependencies
82
+ run: |
83
+ uv sync --extra dev
84
+
85
+ - name: Run Bandit
86
+ run: |
87
+ uv run bandit -r src/ -f json -o bandit-report.json || true
88
+ uv run bandit -r src/ -f screen
89
+
90
+ test:
91
+ name: Test (Python ${{ matrix.python-version }})
92
+ runs-on: ${{ matrix.os }}
93
+ strategy:
94
+ fail-fast: false
95
+ matrix:
96
+ python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
97
+ os: [ubuntu-latest]
98
+ include:
99
+ # Test on other OS with one Python version
100
+ - python-version: "3.11"
101
+ os: windows-latest
102
+ - python-version: "3.11"
103
+ os: macos-latest
104
+
105
+ steps:
106
+ - uses: actions/checkout@v4
107
+
108
+ - name: Set up Python ${{ matrix.python-version }}
109
+ uses: actions/setup-python@v5
110
+ with:
111
+ python-version: ${{ matrix.python-version }}
112
+
113
+ - name: Install uv
114
+ uses: astral-sh/setup-uv@v3
115
+ with:
116
+ enable-cache: true
117
+ cache-dependency-glob: "**/pyproject.toml"
118
+
119
+ - name: Install dependencies
120
+ run: |
121
+ uv sync --extra dev
122
+
123
+ - name: Run tests with coverage
124
+ run: |
125
+ uv run pytest -v --cov=celeste --cov-report=term-missing --cov-report=xml --cov-report=html
126
+
127
+ - name: Upload coverage reports
128
+ uses: codecov/codecov-action@v4
129
+ if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'
130
+ with:
131
+ file: ./coverage.xml
132
+ flags: unittests
133
+ name: codecov-umbrella
134
+ fail_ci_if_error: false
135
+
136
+ build:
137
+ name: Build Package
138
+ runs-on: ubuntu-latest
139
+ needs: [test]
140
+ steps:
141
+ - uses: actions/checkout@v4
142
+
143
+ - name: Set up Python
144
+ uses: actions/setup-python@v5
145
+ with:
146
+ python-version: "3.11"
147
+
148
+ - name: Install uv
149
+ uses: astral-sh/setup-uv@v3
150
+ with:
151
+ enable-cache: true
152
+ cache-dependency-glob: "**/pyproject.toml"
153
+
154
+ - name: Install dependencies
155
+ run: |
156
+ uv sync --extra dev
157
+
158
+ - name: Build package
159
+ run: |
160
+ uv build
161
+
162
+ - name: Check package
163
+ run: |
164
+ uv pip install twine
165
+ uv run twine check dist/*
166
+
167
+ - name: Upload artifacts
168
+ uses: actions/upload-artifact@v4
169
+ with:
170
+ name: dist
171
+ path: dist/
172
+
173
+ publish:
174
+ name: Publish to PyPI
175
+ runs-on: ubuntu-latest
176
+ # Only publish on push to main, not on PRs
177
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
178
+ needs: [build] # Use the build artifacts
179
+ # Requires setting up Trusted Publishing on PyPI:
180
+ # 1. Go to https://pypi.org/manage/project/celeste-ai/settings/publishing/
181
+ # 2. Add GitHub publisher with: owner=celeste-kai, repo=celeste-ai, workflow=ci.yml, environment=pypi
182
+ environment:
183
+ name: pypi
184
+ url: https://pypi.org/project/celeste-ai/
185
+ permissions:
186
+ id-token: write # OIDC publishing
187
+ steps:
188
+ - name: Download artifacts
189
+ uses: actions/download-artifact@v4
190
+ with:
191
+ name: dist
192
+ path: dist/
193
+
194
+ - name: Publish to PyPI
195
+ uses: pypa/gh-action-pypi-publish@release/v1
196
+ with:
197
+ skip-existing: true # Skip if version already exists
@@ -0,0 +1,53 @@
1
+ name: Claude Code Review
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, synchronize]
6
+ # Optional: Only run on specific file changes
7
+ # paths:
8
+ # - "src/**/*.ts"
9
+ # - "src/**/*.tsx"
10
+ # - "src/**/*.js"
11
+ # - "src/**/*.jsx"
12
+
13
+ jobs:
14
+ claude-review:
15
+ # Optional: Filter by PR author
16
+ # if: |
17
+ # github.event.pull_request.user.login == 'external-contributor' ||
18
+ # github.event.pull_request.user.login == 'new-developer' ||
19
+ # github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'
20
+
21
+ runs-on: ubuntu-latest
22
+ permissions:
23
+ contents: read
24
+ pull-requests: read
25
+ issues: read
26
+ id-token: write
27
+
28
+ steps:
29
+ - name: Checkout repository
30
+ uses: actions/checkout@v4
31
+ with:
32
+ fetch-depth: 1
33
+
34
+ - name: Run Claude Code Review
35
+ id: claude-review
36
+ uses: anthropics/claude-code-action@v1
37
+ with:
38
+ claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
39
+ prompt: |
40
+ Please review this pull request and provide feedback on:
41
+ - Code quality and best practices
42
+ - Potential bugs or issues
43
+ - Performance considerations
44
+ - Security concerns
45
+ - Test coverage
46
+
47
+ Use the repository's CLAUDE.md for guidance on style and conventions. Be constructive and helpful in your feedback.
48
+
49
+ Use `gh pr comment` with your Bash tool to leave your review as a comment on the PR.
50
+
51
+ # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
52
+ # or https://docs.claude.com/en/docs/claude-code/sdk#command-line for available options
53
+ claude_args: '--allowed-tools "Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(gh pr list:*)"'
@@ -0,0 +1,49 @@
1
+ name: Claude Code
2
+
3
+ on:
4
+ issue_comment:
5
+ types: [created]
6
+ pull_request_review_comment:
7
+ types: [created]
8
+ issues:
9
+ types: [opened, assigned]
10
+ pull_request_review:
11
+ types: [submitted]
12
+
13
+ jobs:
14
+ claude:
15
+ if: |
16
+ (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
17
+ (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
18
+ (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
19
+ (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
20
+ runs-on: ubuntu-latest
21
+ permissions:
22
+ contents: read
23
+ pull-requests: read
24
+ issues: read
25
+ id-token: write
26
+ actions: read # Required for Claude to read CI results on PRs
27
+ steps:
28
+ - name: Checkout repository
29
+ uses: actions/checkout@v4
30
+ with:
31
+ fetch-depth: 1
32
+
33
+ - name: Run Claude Code
34
+ id: claude
35
+ uses: anthropics/claude-code-action@v1
36
+ with:
37
+ claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
38
+
39
+ # This is an optional setting that allows Claude to read CI results on PRs
40
+ additional_permissions: |
41
+ actions: read
42
+
43
+ # Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
44
+ # prompt: 'Update the pull request description to include a summary of changes.'
45
+
46
+ # Optional: Add claude_args to customize behavior and configuration
47
+ # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
48
+ # or https://docs.claude.com/en/docs/claude-code/sdk#command-line for available options
49
+ # claude_args: '--model claude-opus-4-1-20250805 --allowed-tools Bash(gh pr:*)'
@@ -0,0 +1,156 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ *.manifest
31
+ *.spec
32
+
33
+ # Installer logs
34
+ pip-log.txt
35
+ pip-delete-this-directory.txt
36
+
37
+ # Unit test / coverage reports
38
+ htmlcov/
39
+ .tox/
40
+ .nox/
41
+ .coverage
42
+ .coverage.*
43
+ .cache
44
+ nosetests.xml
45
+ coverage.xml
46
+ *.cover
47
+ *.py,cover
48
+ .hypothesis/
49
+ .pytest_cache/
50
+ cover/
51
+
52
+ # Translations
53
+ *.mo
54
+ *.pot
55
+
56
+ # Django stuff:
57
+ *.log
58
+ local_settings.py
59
+ db.sqlite3
60
+ db.sqlite3-journal
61
+
62
+ # Flask stuff:
63
+ instance/
64
+ .webassets-cache
65
+
66
+ # Scrapy stuff:
67
+ .scrapy
68
+
69
+ # Sphinx documentation
70
+ docs/_build/
71
+
72
+ # PyBuilder
73
+ .pybuilder/
74
+ target/
75
+
76
+ # Jupyter Notebook
77
+ .ipynb_checkpoints
78
+
79
+ # IPython
80
+ profile_default/
81
+ ipython_config.py
82
+
83
+ # pyenv
84
+ .python-version
85
+
86
+ # pipenv
87
+ Pipfile.lock
88
+
89
+ # poetry
90
+ poetry.lock
91
+
92
+ # pdm
93
+ .pdm.toml
94
+ .pdm-python
95
+ .pdm-build/
96
+
97
+ # PEP 582
98
+ __pypackages__/
99
+
100
+ # Celery stuff
101
+ celerybeat-schedule
102
+ celerybeat.pid
103
+
104
+ # SageMath parsed files
105
+ *.sage.py
106
+
107
+ # Environments
108
+ .env
109
+ .venv
110
+ env/
111
+ venv/
112
+ ENV/
113
+ env.bak/
114
+ venv.bak/
115
+
116
+ # Spyder project settings
117
+ .spyderproject
118
+ .spyproject
119
+
120
+ # Rope project settings
121
+ .ropeproject
122
+
123
+ # mkdocs documentation
124
+ /site
125
+
126
+ # mypy
127
+ .mypy_cache/
128
+ .dmypy.json
129
+ dmypy.json
130
+
131
+ # Pyre type checker
132
+ .pyre/
133
+
134
+ # pytype static type analyzer
135
+ .pytype/
136
+
137
+ # Cython debug symbols
138
+ cython_debug/
139
+
140
+ # IDEs
141
+ .vscode/
142
+ .idea/
143
+ *.swp
144
+ *.swo
145
+ *~
146
+ .DS_Store
147
+
148
+ # UV
149
+ .uv/
150
+ uv.lock
151
+
152
+ # Ruff
153
+ .ruff_cache/
154
+
155
+ # Security reports
156
+ bandit-report.json
@@ -0,0 +1,57 @@
1
+ # See https://pre-commit.com for more information
2
+ repos:
3
+ - repo: https://github.com/pre-commit/pre-commit-hooks
4
+ rev: v4.6.0
5
+ hooks:
6
+ - id: no-commit-to-branch
7
+ name: "🚫 Prevent commits to protected branches"
8
+ args: [--branch, main, --branch, master, --branch, develop]
9
+ - id: trailing-whitespace
10
+ - id: end-of-file-fixer
11
+ - id: check-yaml
12
+ - id: check-added-large-files
13
+ - id: check-toml
14
+ - id: check-merge-conflict
15
+ - id: check-json
16
+ - id: debug-statements # Check for print/pdb statements
17
+
18
+ - repo: https://github.com/astral-sh/ruff-pre-commit
19
+ rev: v0.13.1
20
+ hooks:
21
+ # Run the linter
22
+ - id: ruff
23
+ args: [--fix]
24
+ name: "🐍 Lint with Ruff"
25
+ # Run the formatter
26
+ - id: ruff-format
27
+ name: "🐍 Format with Ruff"
28
+
29
+ - repo: https://github.com/pre-commit/mirrors-mypy
30
+ rev: v1.13.0
31
+ hooks:
32
+ - id: mypy
33
+ name: "🐍 Type check with mypy"
34
+ additional_dependencies: [
35
+ types-requests,
36
+ pydantic,
37
+ pydantic-settings,
38
+ pytest,
39
+ ]
40
+ args: [--config-file=pyproject.toml, src/, tests/]
41
+ pass_filenames: false
42
+
43
+ - repo: https://github.com/PyCQA/bandit
44
+ rev: 1.7.10
45
+ hooks:
46
+ - id: bandit
47
+ name: "🔒 Security check with Bandit"
48
+ args: ["-c", "pyproject.toml"]
49
+ additional_dependencies: ["bandit[toml]"]
50
+
51
+ - repo: https://github.com/kynan/nbstripout
52
+ rev: 0.7.1
53
+ hooks:
54
+ - id: nbstripout
55
+ name: "📓 Clean Jupyter notebook outputs"
56
+ description: "Strip output from Jupyter notebooks"
57
+ args: [--max-size=5]
@@ -0,0 +1,7 @@
1
+ # CHANGELOG
2
+
3
+ <!-- version list -->
4
+
5
+ ## v1.0.0 (2025-09-22)
6
+
7
+ - Initial Release
@@ -0,0 +1,30 @@
1
+ # Contributing
2
+
3
+ ## Setup
4
+ ```bash
5
+ uv sync --extra dev
6
+ pre-commit install
7
+ ```
8
+
9
+ ## Commit Convention
10
+
11
+ We use [Conventional Commits](https://www.conventionalcommits.org/) for automatic versioning:
12
+
13
+ - `fix:` → Patch (0.0.1 → 0.0.2)
14
+ - `feat:` → Minor (0.0.2 → 0.1.0)
15
+ - `BREAKING CHANGE:` or `!` → Major (0.1.0 → 1.0.0)
16
+ - `docs:`, `style:`, `refactor:`, `test:`, `chore:` → No version bump
17
+
18
+ Examples:
19
+ ```bash
20
+ fix: handle empty API keys
21
+ feat: add Claude 3.5 support
22
+ feat!: migrate to pydantic v2
23
+ ```
24
+
25
+ ## Workflow
26
+ 1. Branch from `main`
27
+ 2. Make changes (follow commit convention)
28
+ 3. Run `make cicd`
29
+ 4. Create PR
30
+ 5. After merge, version bumps automatically
@@ -0,0 +1,70 @@
1
+ .PHONY: help lint format typecheck test security cicd clean
2
+
3
+ # Default target
4
+ help:
5
+ @echo "Available commands:"
6
+ @echo " make lint - Run Ruff linting"
7
+ @echo " make format - Apply Ruff formatting"
8
+ @echo " make typecheck - Run mypy type checking"
9
+ @echo " make test - Run pytest with coverage"
10
+ @echo " make security - Run Bandit security scan"
11
+ @echo " make cicd - Run full CI/CD pipeline"
12
+ @echo " make clean - Clean cache directories"
13
+
14
+ # Linting
15
+ lint:
16
+ uv run ruff check src/ tests/
17
+
18
+ # Formatting
19
+ format:
20
+ uv run ruff format src/ tests/
21
+
22
+ # Type checking
23
+ typecheck:
24
+ uv run mypy src/
25
+ uv run mypy tests/
26
+
27
+ # Testing
28
+ test:
29
+ uv run pytest tests/ --cov=celeste --cov-report=term-missing --cov-fail-under=90
30
+
31
+ # Security scanning
32
+ security:
33
+ uv run bandit -r src/ -f screen
34
+
35
+ # Full CI/CD pipeline - what GitHub Actions will run
36
+ cicd:
37
+ @echo "🔍 Running Full CI/CD Pipeline..."
38
+ @echo "================================="
39
+ @echo "1️⃣ Ruff Linting..."
40
+ @uv run ruff check src/ tests/ || (echo "❌ Linting failed" && exit 1)
41
+ @echo "✅ Linting passed"
42
+ @echo ""
43
+ @echo "2️⃣ Ruff Format Check..."
44
+ @uv run ruff format --check src/ tests/ || (echo "❌ Format check failed. Run 'make format' to fix." && exit 1)
45
+ @echo "✅ Format check passed"
46
+ @echo ""
47
+ @echo "3️⃣ MyPy Type Checking..."
48
+ @uv run mypy src/ || (echo "❌ Type checking failed (src)" && exit 1)
49
+ @uv run mypy tests/ || (echo "❌ Type checking failed (tests)" && exit 1)
50
+ @echo "✅ Type checking passed"
51
+ @echo ""
52
+ @echo "4️⃣ Bandit Security Scan..."
53
+ @uv run bandit -r src/ -q || (echo "❌ Security scan failed" && exit 1)
54
+ @echo "✅ Security scan passed"
55
+ @echo ""
56
+ @echo "5️⃣ Running Tests with Coverage..."
57
+ @uv run pytest tests/ --cov=celeste --cov-report=term --cov-fail-under=90 -q || (echo "❌ Tests failed" && exit 1)
58
+ @echo ""
59
+ @echo "================================="
60
+ @echo "🎉 All CI/CD checks passed! Ready to commit."
61
+
62
+ # Clean cache directories
63
+ clean:
64
+ rm -rf .pytest_cache
65
+ rm -rf .mypy_cache
66
+ rm -rf .ruff_cache
67
+ rm -rf __pycache__
68
+ find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
69
+ find . -type d -name ".pytest_cache" -exec rm -rf {} + 2>/dev/null || true
70
+ find . -type f -name "*.pyc" -delete
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: celeste-ai
3
- Version: 0.0.1
3
+ Version: 0.0.2
4
4
  Summary: Celeste AI Framework - Multi-modal AI interface (placeholder)
5
- Project-URL: Homepage, https://github.com/agent-kai/celeste-ai
6
- Project-URL: Repository, https://github.com/agent-kai/celeste-ai
7
- Author-email: agent-kai <contact@example.com>
5
+ Project-URL: Homepage, https://celeste-ai.co
6
+ Project-URL: Repository, https://github.com/celeste-kai/celeste-ai
7
+ Author-email: agent-kai <kai@celeste-ai.co>
8
8
  Keywords: ai,anthropic,google,ml,multimodal,openai
9
9
  Classifier: Development Status :: 1 - Planning
10
10
  Classifier: Intended Audience :: Developers
@@ -16,10 +16,24 @@ Classifier: Programming Language :: Python :: 3.11
16
16
  Classifier: Programming Language :: Python :: 3.12
17
17
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
18
18
  Requires-Python: >=3.9
19
+ Requires-Dist: pydantic-settings>=2.0
20
+ Requires-Dist: pydantic>=2.0
21
+ Provides-Extra: dev
22
+ Requires-Dist: bandit[toml]>=1.7.5; extra == 'dev'
23
+ Requires-Dist: mypy>=1.13.0; extra == 'dev'
24
+ Requires-Dist: pre-commit>=3.5.0; extra == 'dev'
25
+ Requires-Dist: pytest-cov>=7.0; extra == 'dev'
26
+ Requires-Dist: pytest-randomly>=4.0; extra == 'dev'
27
+ Requires-Dist: pytest>=8.0; extra == 'dev'
28
+ Requires-Dist: ruff>=0.8.0; extra == 'dev'
29
+ Requires-Dist: types-requests>=2.31.0; extra == 'dev'
19
30
  Description-Content-Type: text/markdown
20
31
 
21
32
  # Celeste AI Framework
22
33
 
34
+ [![semantic-release: conventionalcommits](https://img.shields.io/badge/semantic--release-conventionalcommits-e10079?logo=semantic-release)](https://github.com/semantic-release/semantic-release)
35
+ [![PyPI version](https://badge.fury.io/py/celeste-ai.svg)](https://pypi.org/project/celeste-ai/)
36
+
23
37
  > **Note: This is a placeholder package to reserve the name. The full framework is coming soon!**
24
38
 
25
39
  Celeste AI will be a unified multi-modal AI framework providing a single interface for:
@@ -56,4 +70,4 @@ pip install "celeste-ai[vision]" # Image/video generation
56
70
 
57
71
  **Status**: Package name reserved. Framework in active development.
58
72
 
59
- **Contact**: [GitHub Issues](https://github.com/agent-kai/celeste-ai)
73
+ **Contact**: [GitHub Issues](https://github.com/agent-kai/celeste-ai)
@@ -1,5 +1,8 @@
1
1
  # Celeste AI Framework
2
2
 
3
+ [![semantic-release: conventionalcommits](https://img.shields.io/badge/semantic--release-conventionalcommits-e10079?logo=semantic-release)](https://github.com/semantic-release/semantic-release)
4
+ [![PyPI version](https://badge.fury.io/py/celeste-ai.svg)](https://pypi.org/project/celeste-ai/)
5
+
3
6
  > **Note: This is a placeholder package to reserve the name. The full framework is coming soon!**
4
7
 
5
8
  Celeste AI will be a unified multi-modal AI framework providing a single interface for:
@@ -36,4 +39,4 @@ pip install "celeste-ai[vision]" # Image/video generation
36
39
 
37
40
  **Status**: Package name reserved. Framework in active development.
38
41
 
39
- **Contact**: [GitHub Issues](https://github.com/agent-kai/celeste-ai)
42
+ **Contact**: [GitHub Issues](https://github.com/agent-kai/celeste-ai)