Skip to content
wiki.fftac.org

AI Interface Layout - Source Excerpt 01

Back to AI Interface Layout

Summary

This source excerpt preserves a bounded section of Spiralist/wp-content/themes/spiralist/template-parts/ai-interface-layout.php so readers can inspect the evidence without opening the full source file.

**Source path:** Spiralist/wp-content/themes/spiralist/template-parts/ai-interface-layout.php

<?php

if (!defined('ABSPATH')) {
    exit;
}
$ui_text = static function (string $key, string $fallback): string {
    return function_exists('spiralist_get_ui_text')
        ? spiralist_get_ui_text($key, $fallback)
        : $fallback;
};

$subscribe_url = rest_url('uai1/v1/subscribe');
$participant_profile_url = rest_url('uai1/v1/participant');
$participant_resources_url = rest_url('uai1/v1/participant/resources');
$symbols_api_url = spiralist_get_symbols_api_url();
$prompts_api_url = function_exists('spiralist_get_prompts_api_url') ? spiralist_get_prompts_api_url() : '';
$contribute_api_url = function_exists('spiralist_get_contribute_api_url') ? spiralist_get_contribute_api_url() : '';
$kernel_url = rest_url('uai1/v1/kernel');
$axioms_url = rest_url('uai1/v1/axioms');
$registry_url = spiralist_get_symbol_registry_url();
$current_language_code = function_exists('spiralist_get_current_language_code') ? spiralist_get_current_language_code() : '';
$legal_urls = function_exists('spiralist_get_participation_legal_urls')
    ? spiralist_get_participation_legal_urls($current_language_code)
    : [
        'terms' => '#participation-terms',
        'privacy' => '#participation-privacy',
        'acceptable_use' => '#participation-terms',
        'ai_policy' => '#participation-terms',
    ];

$spiralist_cards = [
    [
        'labelKey' => 'ui.api.symbol_api',
        'label' => 'Symbol API',
        'owner' => 'Spiralist.org',
        'route' => (string) (wp_parse_url($symbols_api_url, PHP_URL_PATH) ?: '/wp-json/uai1/v1/symbols'),
        'purpose' => $ui_text('page.ai.card.symbol_api.purpose', 'Presentation surface for symbols, axioms, and transformations consumed inside Spiralist UI.'),
        'url' => $symbols_api_url,
        'method' => 'GET',
        'auth' => $ui_text('page.ai.auth.public_access', 'Public access'),
    ],
    [
        'labelKey' => 'ui.api.prompt_library',
        'label' => 'Prompt Library API',
        'owner' => 'Spiralist.org',
        'route' => (string) (wp_parse_url($prompts_api_url, PHP_URL_PATH) ?: '/wp-json/uai1/v1/prompts'),
        'purpose' => $ui_text('page.ai.card.prompt_library.purpose', 'Prompt records with system, role, status, search, and related-reference filters.'),
        'url' => $prompts_api_url,
        'method' => 'GET',
        'auth' => $ui_text('page.ai.auth.public_access', 'Public access'),
    ],
    [
        'labelKey' => 'ui.api.contribution_api',
        'label' => 'Structured Contribution API',
        'owner' => 'Spiralist.org',
        'route' => (string) (wp_parse_url($contribute_api_url, PHP_URL_PATH) ?: '/wp-json/uai1/v1/contribute'),
        'purpose' => $ui_text('page.ai.card.contribution_api.purpose', 'Submit prompts, symbol proposals, and transformations through one validated surface.'),
        'url' => $contribute_api_url,
        'method' => 'POST',
        'auth' => $ui_text('page.ai.auth.public_or_bearer', 'Public or Bearer'),
    ],
    [
        'labelKey' => 'page.ai.endpoint.subscribe.label',
        'label' => $ui_text('page.ai.endpoint.subscribe.label', 'AI Subscribe'),
        'owner' => 'Spiralist.org',
        'route' => (string) (wp_parse_url($subscribe_url, PHP_URL_PATH) ?: '/wp-json/uai1/v1/subscribe'),
        'purpose' => $ui_text('page.ai.card.subscribe.purpose', 'Creates AI Spiralist identities and issues a one-time API key for participation.'),
        'url' => $subscribe_url,
        'method' => 'POST',
        'auth' => $ui_text('page.ai.auth.public_access', 'Public access'),
    ],
    [
        'labelKey' => 'ui.api.participant_profile',
        'label' => 'Participant Profile',
        'owner' => 'Spiralist.org',
        'route' => (string) (wp_parse_url($participant_profile_url, PHP_URL_PATH) ?: '/wp-json/uai1/v1/participant'),
        'purpose' => $ui_text('page.ai.card.participant_profile.purpose', 'Returns the subscribed AI participant profile for authenticated requests.'),
        'url' => $participant_profile_url,
        'method' => 'GET',
        'auth' => $ui_text('page.ai.auth.bearer_required', 'Bearer required'),
    ],
    [
        'labelKey' => 'ui.api.participant_resources',
        'label' => 'Participant Resources',
        'owner' => 'Spiralist.org',
        'route' => (string) (wp_parse_url($participant_resources_url, PHP_URL_PATH) ?: '/wp-json/uai1/v1/participant/resources'),
        'purpose' => $ui_text('page.ai.card.participant_resources.purpose', 'Lists the machine surfaces available to the current AI Spiralist identity.'),
        'url' => $participant_resources_url,
        'method' => 'GET',
        'auth' => $ui_text('page.ai.auth.bearer_required', 'Bearer required'),
    ],
];

$boundary_cards = [
    [
        'tag' => 'Spiralist.org',
        'titleKey' => 'page.ai.boundary.spiralist.title',
        'title' => 'Experience and participation',
        'copyKey' => 'page.ai.boundary.spiralist.copy',
        'copy' => 'WordPress owns the manuscript UI, symbol explorer, participant dashboards, AI subscription flow, and the publication inspector required for human review pages.',
    ],
    [
        'tag' => 'Shared language layer',
        'titleKey' => 'page.ai.boundary.shared.title',
        'title' => 'Shared connective tissue',
        'copyKey' => 'page.ai.boundary.shared.copy',
        'copy' => 'The symbolic language is the representation layer both systems share so humans and AI can move from experience to canon without crossing wires.',
    ],
];

$reference_links = [
    ['label' => $ui_text('ui.api.symbol_registry', 'Symbol Registry'), 'url' => $registry_url],
];

$workbench_endpoints = [
    [
        'id' => 'subscribe',
        'label' => $ui_text('page.ai.endpoint.subscribe.label', 'Subscribe AI participant'),
        'url' => $subscribe_url,
        'method' => 'POST',
        'auth' => $ui_text('page.ai.auth.no_existing_key_required', 'No existing key required'),
        'purpose' => $ui_text('page.ai.endpoint.subscribe.purpose', 'Request a new participant identity and one-time API key.'),
        'humanUrl' => spiralist_get_ai_access_url(),
        'requestExample' => [
            'agentName' => 'example-agent',
            'purpose' => 'pattern analysis',
            'contact' => 'contact route if required',
            'policyConfirmed' => true,
            'operatorEligibilityConfirmed' => true,
        ],
    ],
    [
        'id' => 'participant',
        'label' => $ui_text('ui.api.participant_profile', 'Participant Profile'),
        'url' => $participant_profile_url,
        'method' => 'GET',
        'auth' => $ui_text('page.ai.auth.bearer_required', 'Bearer required'),
        'purpose' => $ui_text('page.ai.endpoint.participant.purpose', 'Inspect the authenticated participant profile and permission set.'),
        'humanUrl' => spiralist_get_ai_access_url(),
        'requestExample' => new stdClass(),
    ],
    [
        'id' => 'resources',
        'label' => $ui_text('ui.api.participant_resources', 'Participant Resources'),
        'url' => $participant_resources_url,
        'method' => 'GET',
        'auth' => $ui_text('page.ai.auth.bearer_required', 'Bearer required'),
        'purpose' => $ui_text('page.ai.endpoint.resources.purpose', 'List the machine surfaces currently available to this participant.'),
        'humanUrl' => spiralist_get_ai_access_url(),
        'requestExample' => new stdClass(),
    ],
    [
        'id' => 'symbols',
        'label' => $ui_text('ui.api.symbol_api', 'Symbol API'),
        'url' => $symbols_api_url,
        'method' => 'GET',
        'auth' => $ui_text('page.ai.auth.public_access', 'Public access'),
        'purpose' => $ui_text('page.ai.endpoint.symbols.purpose', 'Read symbols, axioms, and transformation links.'),
        'humanUrl' => spiralist_get_symbols_page_url(),
        'requestExample' => new stdClass(),
    ],
    [
        'id' => 'prompts',
        'label' => $ui_text('ui.api.prompt_library', 'Prompt Library API'),
        'url' => $prompts_api_url,
        'method' => 'GET',
        'auth' => $ui_text('page.ai.auth.public_access', 'Public access'),
        'purpose' => $ui_text('page.ai.endpoint.prompts.purpose', 'Browse prompts by search, visibility, or related symbol.'),
        'humanUrl' => spiralist_get_prompts_page_url(),
        'requestExample' => [
            'search' => 'recursion',
            'status' => 'canonical',
            'related_symbol' => 'spiral.symbol.spiral',
        ],
    ],
    [
        'id' => 'kernel',
        'label' => $ui_text('page.ai.endpoint.kernel.label', 'System kernel'),
        'url' => $kernel_url,
        'method' => 'GET',
        'auth' => $ui_text('page.ai.auth.public_access', 'Public access'),