classes/Introspect.md

Introspect

Overview:

Introspect provides runtime introspection for Core framework classes, methods, routes, and capabilities. It makes the framework self-describing so that agents can discover available functionality without reading source code.

Key behavior:

Public API:

Capabilities contract:

Example:

// List all Core classes
$classes = Introspect::classes();
// ['Cache', 'Check', 'Hash', 'Model', 'Route', 'SQL', ...]

// Discover methods on a class
$methods = Introspect::methods('Hash');
// ['can', 'extend', 'make', 'methods', 'murmur', 'random', 'uuid', 'verify', ...]

// See only runtime-extended methods
Hash::extend('customHash', function($data) { return md5($data); });
$extended = Introspect::extensions('Hash');
// ['customHash']

// List registered routes
$routes = Introspect::routes();
// [['pattern' => '/api/users', 'methods' => ['get'], 'tag' => 'users.list', 'dynamic' => false], ...]

// Check capabilities
$caps = Introspect::capabilities();
// [
//   'redis' => false,
//   ...
//   'core' => [
//     'zero_runtime_dependencies' => true,
//     'runtime_dependency_count' => 0,
//     'route' => ['loop_mode' => false, 'loop_dispatcher' => 'fast', 'debug' => false],
//     'auth' => ['booted' => false],
//     'cache' => ['driver_loaded' => true, 'driver' => 'files'],
//     'schedule' => ['registered_jobs' => 0],
//   ],
// ]

$contracts = Introspect::contracts();
// ['agent_audit_schema_version' => 1, ...]

$routesSnapshot = Introspect::snapshotRoutes();
// deterministic route listing sorted for CI diff use