mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2026-09-03 05:10:16 +03:00
# Description of Changes Change tool APIs to use structured definitions for input/output/type info because we need that info to be able to validate whether policies can actually successfully work based on whether one tool accepts the output of another. There were various bugs in the previous string definitions because of either misspellings or just incorrect definitions, so I've gone through and fixed all that I can find. <img width="729" height="271" alt="image" src="https://github.com/user-attachments/assets/08357e96-6fbb-4b9c-ba4d-8995420c7b86" /> <img width="749" height="264" alt="image" src="https://github.com/user-attachments/assets/76f46284-1866-4b64-b1ed-2480e01866e9" /> <img width="402" height="636" alt="image" src="https://github.com/user-attachments/assets/8f7a36ca-2845-4f14-a2df-ec9c772e66f6" /> <img width="393" height="317" alt="image" src="https://github.com/user-attachments/assets/46d8b891-9820-4ce3-8109-a8b782277037" /> --------- Co-authored-by: Anthony Stirling <77850077+Frooodle@users.noreply.github.com>
140 lines
3.5 KiB
YAML
140 lines
3.5 KiB
YAML
version: '3'
|
|
|
|
tasks:
|
|
install:
|
|
desc: "Install engine dependencies"
|
|
run: once
|
|
cmds:
|
|
- uv python install 3.13.8
|
|
- uv sync
|
|
sources:
|
|
- uv.lock
|
|
- pyproject.toml
|
|
status:
|
|
- test -d .venv
|
|
|
|
prepare:
|
|
desc: "Set up engine .env from template"
|
|
deps: [install]
|
|
cmds:
|
|
- uv run scripts/setup_env.py
|
|
sources:
|
|
- scripts/setup_env.py
|
|
generates:
|
|
- .env.local
|
|
|
|
run:
|
|
desc: "Run engine server"
|
|
deps: [prepare]
|
|
ignore_error: true
|
|
dir: src
|
|
vars:
|
|
PORT: '{{.PORT | default "5001"}}'
|
|
env:
|
|
PYTHONUNBUFFERED: "1"
|
|
cmds:
|
|
- uv run uvicorn stirling.api.app:app --host 0.0.0.0 --port {{.PORT}} --workers "${STIRLING_ENGINE_WORKERS:-4}"
|
|
|
|
dev:
|
|
desc: "Start engine dev server with hot reload"
|
|
deps: [prepare]
|
|
ignore_error: true
|
|
dir: src
|
|
vars:
|
|
PORT: '{{.PORT | default "5001"}}'
|
|
env:
|
|
PYTHONUNBUFFERED: "1"
|
|
cmds:
|
|
- uv run uvicorn stirling.api.app:app --host 0.0.0.0 --port {{.PORT}} --reload
|
|
|
|
lint:
|
|
desc: "Run linting"
|
|
deps: [install]
|
|
cmds:
|
|
- uv run ruff check .
|
|
|
|
lint:fix:
|
|
desc: "Auto-fix lint issues"
|
|
deps: [install]
|
|
cmds:
|
|
- uv run ruff check . --fix
|
|
|
|
format:
|
|
desc: "Auto-fix code formatting"
|
|
deps: [install]
|
|
cmds:
|
|
- uv run ruff format .
|
|
|
|
format:check:
|
|
desc: "Check code formatting"
|
|
deps: [install]
|
|
cmds:
|
|
- uv run ruff format . --diff
|
|
|
|
typecheck:
|
|
desc: "Run type checking"
|
|
deps: [install]
|
|
cmds:
|
|
- uv run pyright . --warnings
|
|
|
|
test:
|
|
desc: "Run tests"
|
|
deps: [prepare]
|
|
cmds:
|
|
- uv run pytest tests
|
|
|
|
fix:
|
|
desc: "Auto-fix lint + format"
|
|
cmds:
|
|
- task: format # Can auto-fix some things that `lint:fix` can't like line length violations
|
|
- task: lint:fix
|
|
- task: format # Ensure that after lint fixing that the code is still formatted correctly
|
|
|
|
check:
|
|
desc: "Full engine quality gate"
|
|
cmds:
|
|
- task: typecheck
|
|
- task: lint
|
|
- task: format:check
|
|
- task: test
|
|
|
|
tool-models:
|
|
desc: "Generate tool_models.py from Java OpenAPI spec (SwaggerDoc.json)"
|
|
deps: [install, ":backend:swagger"]
|
|
cmds:
|
|
- uv run python scripts/generate_tool_models.py --spec ../SwaggerDoc.json --output src/stirling/models/tool_models.py --io-output src/stirling/models/tool_io.py
|
|
sources:
|
|
- ../SwaggerDoc.json
|
|
- scripts/generate_tool_models.py
|
|
generates:
|
|
- src/stirling/models/tool_models.py
|
|
- src/stirling/models/tool_io.py
|
|
|
|
tool-models:check:
|
|
desc: "Fail if the committed tool models are out of date"
|
|
deps: [install, ":backend:swagger"]
|
|
cmds:
|
|
- uv run python scripts/generate_tool_models.py --spec ../SwaggerDoc.json --output src/stirling/models/tool_models.py --io-output src/stirling/models/tool_io.py --check
|
|
|
|
clean:
|
|
desc: "Clean build artifacts"
|
|
cmds:
|
|
- task: '{{if eq .OS "Windows_NT"}}clean-windows{{else}}clean-unix{{end}}'
|
|
|
|
clean-unix:
|
|
internal: true
|
|
desc: "Clean build artifacts"
|
|
cmds:
|
|
- rm -rf .venv data logs output
|
|
|
|
# On Windows, use PowerShell as bash failed to delete some dependencies
|
|
clean-windows:
|
|
internal: true
|
|
desc: "Clean build artifacts"
|
|
ignore_error: true
|
|
cmds:
|
|
- powershell rm -Recurse -Force -ErrorAction SilentlyContinue .venv
|
|
- powershell rm -Recurse -Force -ErrorAction SilentlyContinue data
|
|
- powershell rm -Recurse -Force -ErrorAction SilentlyContinue logs
|
|
- powershell rm -Recurse -Force -ErrorAction SilentlyContinue output
|