5.1 KiB
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_optionalrestituisce 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_ordersritornano sempre; ordini di default assegnati ademo-user. - examples/demo_backend.py —
install_apipilotconrequire_auth_for_http=False. - examples/demo_backend.py —
/demo/chatsenza auth, conauth_noteche 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
.venvse mancante, installaapipilot[test], avviauvicornsu 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
/healthza 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_argumentsvia jsonschema con errori strutturati. - apipilot/tool.py — Protocollo
PilotTooleCompositeToolrunnabile asincrono. - apipilot/core.py — Classe
ApiPilot:register_fastapi_app,add_tool,tools_for(user)conallow_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>/toolsePOST /<prefix>/executeopzionali con autenticazione dell'app ospite. - apipilot/adapters/__init__.py + adapters/openai.py — Adapter OpenAI:
to_tools,parse_tool_call,make_tool_resultcontool_call_id. - tests/conftest.py —
build_sample_apphelper con endpoint di esempio (list/get/create/slow/huge/non-pilot),get_current_user,allow_tool, compositefind_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/chatesempio 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.