Files
apipilot/CHANGELOG.md
T
2026-09-24 05:19:06 -04:00

5.1 KiB

CHANGELOG.md — ApiPilot

Tracciamento modifiche per data. Ogni entry include riferimenti precisi a file e righe.

2026-09-23 — versione 0.1.1

Aggiornamenti post-implementazione iniziale.

  • examples/demo_backend.py — Porta demo backend da 8000 a 9292.
  • examples/demo_backend.py — Demo senza autenticazione obbligatoria: introdotto DEFAULT_USER = {"id": "demo-user", "role": "admin"}, get_current_user_optional restituisce default se header manca o token sconosciuto.
  • examples/demo_backend.py — Rimosso 401 su endpoint demo: create_order, restock_product (senza blocco admin), list_my_orders ritornano sempre; ordini di default assegnati a demo-user.
  • examples/demo_backend.py — install_apipilot con require_auth_for_http=False.
  • examples/demo_backend.py — /demo/chat senza auth, con auth_note che spiega default user e token opzionali.
  • README.md — Sezione Installazione con istruzioni python -m venv .venv + alternativa PEP 668.
  • README.md — Sezione Demo backend: servizi ./demo.sh, modalità veloce ./run_demo.sh, manuale con venv; nota su demo senza auth obbligatoria.
  • run_demo.sh — Script bash idempotente: crea .venv se mancante, installa apipilot[test], avvia uvicorn su porta 9292 con reload.
  • demo.sh — Servizio completo: start (background con PID+log), stop (graceful + SIGKILL fallback), restart, status, logs [N], help. Nota auth aggiornata.
  • .gitignore — Aggiunto .venv/, .demo.pid, .demo.log, nohup.out, cache pytest/mypy/ruff, *.egg-info/, build artifacts.
  • Bump versione: pyproject.toml, apipilot/__init__.py, examples/demo_backend.py e /healthz a 0.1.1.

2026-09-23 — versione 0.1.0

Prima implementazione completa.

  • pyproject.toml — Scaffold progetto con deps FastAPI/Pydantic/httpx/jsonschema e optional [test]/[dev].
  • apipilot/__init__.py — API pubblica: ApiPilot, install_apipilot, CompositeTool, errori, tipi.
  • apipilot/errors.py — Gerarchia eccezioni: ApiPilotError, InvalidConfigurationError, DuplicateToolError, UnsupportedSchemaError, ToolNotFoundError, ArgumentValidationError, ExecutionError.
  • apipilot/types.py — TypedDict (ToolDefinition, ExecuteResponse, ApiPilotOpenAPIExtra) e dataclass (OperationInfo, ParamSpec, ToolRecord).
  • apipilot/openapi_parser.py — extract_operations, build_tool_definition (path/query/body, risoluzione $ref, conversioni schema JSON), validate_operations (nomi, duplicati, config incomplete).
  • apipilot/validation.py — validate_arguments via jsonschema con errori strutturati.
  • apipilot/tool.py — Protocollo PilotTool e CompositeTool runnabile asincrono.
  • apipilot/core.py — Classe ApiPilot: register_fastapi_app, add_tool, tools_for(user) con allow_tool, execute(user, name, arguments) (validazione, size-cap, timeout, errori strutturati), dispatch endpoint vs composite.
  • apipilot/fastapi.py — install_apipilot(...) con wiring FastAPI; GET /<prefix>/tools e POST /<prefix>/execute opzionali con autenticazione dell'app ospite.
  • apipilot/adapters/__init__.py + adapters/openai.py — Adapter OpenAI: to_tools, parse_tool_call, make_tool_result con tool_call_id.
  • tests/conftest.py — build_sample_app helper con endpoint di esempio (list/get/create/slow/huge/non-pilot), get_current_user, allow_tool, composite find_cheapest_item.
  • tests/test_openapi_parser.py — selezione x-apipilot.enabled, conversione path/query/body, nomi duplicati, config incomplete.
  • tests/test_pilot.py — tools_for, autorizzazione per utente, execute happy path path+query+body, 404 endpoint, tool sconosciuto, argomenti invalidi, allow_tool, timeout, troncamento risposte grandi, tool composto, risultati vuoti, adapter OpenAI roundtrip.
  • tests/test_http_endpoints.py — catalogo HTTP, execute HTTP successo/fallimento, argomenti invalidi → 422.
  • examples/demo_backend.py — FastAPI backend demo completo: prodotti, ordini, restock admin, ordini utente, tool composto recommend_product, GET /demo/chat esempio ciclo agente.
  • README.md — panoramica, formato x-apipilot, installazione, esempi integrazione, sicurezza, test, demo.
  • AGENT.md — confini moduli, comandi installazione/test, convenzioni codice, sicurezza, aggiunta adapter/tool, aggiornamento docs+test, changelog.
  • CLAUDE.md — note specifiche per Claude: anti-thinking-leak, regole parser/endpoints/adapter, limiti modelli quantizzati.