# AGENTS.md ## Project overview APIlite is a lightweight PHP library. A class extends `TPsoft\APIlite\APIlite`, public methods become API actions, requests are processed automatically, and responses are returned as JSON. The project also generates frontend clients: - JavaScript client: `format=javascript` (`.js`) - TypeScript client: `format=typescript` (`.ts`, real typed output) The HTML help page is also interactive: - HTML help: `format=html` includes endpoint docs, a built-in request tester, and optional Bearer token support stored in browser `localStorage` ## Core files - `src/APIlite.php`: runtime, routing, docs JSON/HTML/client generation - `src/help.tpl.php`: HTML documentation template - `src/javascript.tpl.php`: JavaScript client template - `src/typescript.tpl.php`: TypeScript client template - `bin/apilite-files`: helper script for bootstrapping files in consumer projects ## Working rules - Keep API behavior backward compatible unless explicitly requested. - Maintain both generated clients: - JavaScript stays plain JS. - TypeScript stays typed (interfaces + typed method signatures). - Keep the HTML help page usable both as documentation and as a lightweight in-browser tester. - If you change output field names in JSON help, update README and templates consistently. - If you change request metadata or tester behavior, update `README.md` and keep `src/help.tpl.php` aligned with the actual runtime request model. - Prefer small, focused changes over broad rewrites. ## Verification checklist - Run syntax checks on edited PHP files: - `php -l src/APIlite.php` - `php -l src/help.tpl.php` - `php -l src/javascript.tpl.php` - `php -l src/typescript.tpl.php` - `php -l bin/apilite-files` - If HTML help changes, also render it once: - `php test/APIcalculator.php --html` - If client generation changes, test with: - `php test/APIcalculator.php --javascript` - `php test/APIcalculator.php --typescript` ## Documentation rule When output format names/flags/URLs change, update `README.md` in the same change set.