Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 23 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,35 @@ test:
poetry run pytest tests

build:
poetry build
@echo "Building SDK..."
cd sdk && poetry build
@echo "Building CLI..."
cd cli/highflame_cli && poetry build

build-sdk:
cd sdk && poetry build

build-cli:
cd cli/highflame_cli && poetry build

clean:
rm -rf dist/
rm -rf build/
rm -rf *.egg-info/
rm -rf sdk/dist/ sdk/build/ sdk/*.egg-info/
rm -rf cli/highflame_cli/dist/ cli/highflame_cli/build/ cli/highflame_cli/*.egg-info/

install:
poetry install
@echo "Installing SDK..."
cd sdk && poetry install
@echo "Installing CLI..."
cd cli/highflame_cli && poetry install

install-sdk:
cd sdk && poetry install

install-cli:
cd cli/highflame_cli && poetry install

install-wheel:
pip install dist/highflame_sdk-*.whl --force-reinstall
pip install sdk/dist/highflame-*.whl --force-reinstall
30 changes: 29 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,24 @@ Highflame Documentation: [https://docs.highflame.ai/](https://docs.highflame.ai/

### Installation

**SDK:**

```bash
pip install highflame
```

**CLI:**

```bash
pip install highflame-cli
```

> **Note:** The CLI package (`highflame-cli`) depends on the SDK package (`highflame`), so installing the CLI will automatically install the SDK as well.

### Basic Usage

**Using the SDK:**

```python
from highflame import Highflame, Config
import os
Expand All @@ -38,6 +50,22 @@ response = client.query_route(
)
```

**Using the CLI:**

```bash
# Authenticate
highflame-cli auth

# List routes
highflame-cli route list

# Create a route
highflame-cli route create --name my_route --file route.json

# Get route details
highflame-cli route get --name my_route
```

---

## What Changed
Expand Down Expand Up @@ -549,7 +577,7 @@ logger.setLevel(logging.INFO)

### CLI Improvements

- [ ] **CLI Separation**: Separate CLI into its own `highflame-cli` package. Create separate repository, package, and PyPI distribution.
- [x] **CLI Separation**: Separate CLI into its own `highflame-cli` package. Package structure separated, ready for independent distribution.

- [ ] **CLI Error Messages**: Improve CLI error messages with troubleshooting hints and actionable guidance.

Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import json
from pathlib import Path

# CLI imports from the public SDK API - this ensures CLI works as a separate package
# that depends on the highflame SDK package
from highflame.client import Highflame
from highflame.exceptions import (
BadRequest,
Expand Down
File renamed without changes.
9 changes: 3 additions & 6 deletions CLI_PYPROJECT.toml → cli/highflame_cli/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
# This file shows what the future CLI-only package pyproject.toml would look like
# Once CLI is separated into its own package: highflame-cli
# This serves as a reference for the CLI package separation plan

[tool.poetry]
name = "highflame-cli"
version = "2.0.0"
description = "Command-line interface for Highflame - LLM Gateway Management"
authors = ["Sharath Rajasekar <sharath@highflame.com>"]
readme = "README.md"
readme = "../../README.md"
license = "Apache-2.0"
homepage = "https://highflame.com"
repository = "https://github.com/highflame-ai/highflame-cli"
repository = "https://github.com/highflame-ai/highflame-python"
keywords = ["cli", "llm", "gateway", "ai", "command-line"]
packages = [
{ include = "highflame_cli" },
]
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
6 changes: 1 addition & 5 deletions pyproject.toml → sdk/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,15 @@ name = "highflame"
version = "2.0.0"
description = "Python SDK for Highflame - Enterprise-Scale LLM Gateway"
authors = ["Sharath Rajasekar <sharath@highflame.com>"]
readme = "README.md"
readme = "../README.md"
license = "Apache-2.0"
homepage = "https://highflame.com"
repository = "https://github.com/highflame-ai/highflame-python"
keywords = ["llm", "gateway", "ai", "api", "routing"]
packages = [
{ include = "highflame_cli" },
{ include = "highflame" },
]

[tool.poetry.scripts]
highflame-cli = "highflame_cli.cli:main"

[tool.poetry.dependencies]
python = "^3.9"
httpx = "^0.27.2"
Expand Down