Class Uai1 Routes - Source Excerpt 03
Summary
This source excerpt preserves a bounded section of Spiralist/wp-content/plugins/uai-1-wordpress/includes/class-uai1-routes.php so readers can inspect the evidence without opening the full source file.
**Source path:** Spiralist/wp-content/plugins/uai-1-wordpress/includes/class-uai1-routes.php
return self::build_rest_response(
[
'current_release' => 'UAI-1',
'canonical_page' => self::uaix_public_url('/en-us/registry/'),
'canonical_collection' => self::uaix_api_url('/registry'),
'profiles' => array_map([self::class, 'profile_registry_record'], array_column(self::profile_catalog(), 'profile')),
'compatible_pairings' => [
[
'request' => 'uai.intent.request.v1',
'response' => 'uai.intent.response.v1',
],
[
'request' => 'uai.intent.request.v1',
'response' => 'uai.conformance.result.v1',
],
[
'request' => 'uai.capability.statement.v1',
'response' => 'uai.capability.statement.v1',
],
[
'request' => 'uai.error.v1',
'response' => 'uai.conformance.result.v1',
],
],
],
self::JSON_CONTENT_TYPE
);
}
public static function rest_get_uaix_field_registry(): WP_REST_Response
{
return self::build_rest_response(
[
'current_release' => 'UAI-1',
'canonical_page' => self::uaix_public_url('/en-us/schemas/'),
'canonical_registry' => self::uaix_api_url('/field-registry'),
'envelope_order' => [
'uai_version',
'profile',
'message_id',
'source',
'target',
'conversation',
'delivery',
'trust',
'body',
'provenance',
'integrity',
'extensions',
],
'components' => [
'source' => ['type', 'id', 'label', 'uri', 'did', 'role', 'implementation'],
'target' => ['type', 'id', 'label', 'uri', 'did', 'role', 'implementation'],
'conversation' => ['conversation_id', 'turn_id', 'parent_message_id', 'traceparent', 'sequence'],
'delivery' => ['mode', 'priority', 'expires_at', 'reply_requested', 'ack_required', 'task_ref'],
'trust' => ['channel', 'auth_scheme', 'principal', 'credential_ref', 'signature_ref', 'replay_window_id'],
'provenance' => ['trace_id', 'parent_trace_id', 'issued_at', 'log_ref', 'agent_id', 'model_id', 'confidence', 'lineage'],
'integrity' => ['version', 'algorithm', 'canonicalization', 'checksum'],
'extension_item' => ['namespace', 'purpose', 'critical'],
],
'body_order' => [
'uai.intent.request.v1' => ['intent', 'subject', 'requested_profile', 'parameters', 'constraints', 'response_profile'],
'uai.intent.response.v1' => ['status', 'subject', 'request_message_id', 'result', 'notices', 'task_ref'],
'uai.capability.statement.v1' => ['capability_id', 'version', 'operations', 'input_profiles', 'output_profiles', 'async_profiles', 'security_schemes', 'transport_bindings', 'conformance_levels', 'error_codes', 'endpoints', 'extension_namespaces', 'implementation_tracks'],
'uai.error.v1' => ['type', 'title', 'detail', 'status', 'code', 'retryable', 'instance', 'documentationUrl', 'traceId', 'correlationId', 'uaixCode', 'uaixCategory', 'uaixSeverity', 'evidenceRecommended', 'suspensionRecommended', 'redactionApplied', 'errors', 'next_step'],
'uai.conformance.result.v1' => ['status', 'checked_profile', 'issues', 'summary', 'artifacts', 'target_message_ref'],
'uai.task.status.v1' => ['task_id', 'state', 'subject', 'progress', 'status_message', 'result_profile', 'result_ref', 'blocking_reasons', 'updated_fields'],
],
],
self::JSON_CONTENT_TYPE
);
}
public static function rest_get_uaix_transport_bindings(): WP_REST_Response
{
return self::build_rest_response(
[
'current_release' => 'UAI-1',
'canonical_collection' => self::uaix_api_url('/transport-bindings'),
'bindings' => self::transport_binding_records(),
],
self::JSON_CONTENT_TYPE
);
}
public static function rest_get_uaix_trust_channels(): WP_REST_Response
{
return self::build_rest_response(
[
'current_release' => 'UAI-1',
'canonical_collection' => self::uaix_api_url('/trust-channels'),
'support_boundary' => self::support_boundary(),
'channels' => self::trust_channel_records(),
],
self::JSON_CONTENT_TYPE
);
}
public static function rest_get_uaix_conformance_levels(): WP_REST_Response
{
return self::build_rest_response(
[
'current_release' => 'UAI-1',
'canonical_collection' => self::uaix_api_url('/conformance-levels'),
'levels' => self::conformance_level_records(),
],
self::JSON_CONTENT_TYPE
);
}
public static function rest_get_uaix_error_registry(): WP_REST_Response
{
return self::build_rest_response(
[
'current_release' => 'UAI-1',
'canonical_collection' => self::uaix_api_url('/error-registry'),
'problem_details' => self::problem_details_contract(),
'errors' => self::error_registry_records(),
],
self::JSON_CONTENT_TYPE
);
}
public static function rest_get_uaix_examples($request = null): WP_REST_Response
{
$profile = self::profile_from_request($request);
if ($profile !== '') {
return self::build_rest_response(self::profile_example_record($profile), self::JSON_CONTENT_TYPE);
}
return self::build_rest_response(
[
'current_release' => 'UAI-1',
'canonical_page' => self::uaix_public_url('/en-us/examples/'),
'canonical_collection' => self::uaix_api_url('/examples'),
'examples' => [
'capability_statement' => self::build_capability_statement('example'),
'intent_request' => self::build_intent_request_example(),
'error' => self::build_error_message(
'invalid_message',
'Invalid UAIX message',
'Example error envelope using the UAI-1 error profile and RFC 9457 Problem Details fields.',
400
),
],
],
self::JSON_CONTENT_TYPE
);
}
public static function rest_get_uaix_adoption_kit(): WP_REST_Response
{
return self::build_rest_response(
[
'current_release' => 'UAI-1',
'canonical_page' => self::uaix_public_url('/en-us/tools/adoption-kit/'),
'local_catalog' => self::local_uaix_url('/catalog'),
'start_here' => [
home_url('/.well-known/uaix.json'),
home_url('/llms.txt'),
self::local_uaix_url('/catalog'),
self::local_uaix_url('/schemas'),
self::local_uaix_url('/registry'),
self::local_uaix_url('/examples'),
self::local_uaix_url('/validate'),
self::local_uaix_url('/mock-exchange'),
],
'support_boundary' => self::support_boundary(),
'known_blocked_capabilities' => self::blocked_capabilities(),
],
self::JSON_CONTENT_TYPE
);
}
public static function rest_get_uaix_openapi(): WP_REST_Response
{
$payload = function_exists('spiralist_get_openapi_manifest_payload')
? spiralist_get_openapi_manifest_payload()
: [
'openapi' => '3.0.3',
'info' => [
'title' => 'Spiralist.org UAIX UAI-1 API',
'version' => defined('UAI1_WP_VERSION') ? UAI1_WP_VERSION : 'unknown',
],
'paths' => [],
];