Skip to content
wiki.fftac.org

Runtime - Part 18

Back to Runtime

**Source path:** Spiralist/wp-content/plugins/ns12-manuscript/includes/runtime.php

: rest_url(spiralist_book_pages_get_rest_namespace() . '/symbols');
}

function spiralist_book_pages_get_prompts_api_url(): string
{
    return function_exists('spiralist_book_pages_get_rest_url')
        ? spiralist_book_pages_get_rest_url('prompts')
        : rest_url(spiralist_book_pages_get_rest_namespace() . '/prompts');
}

function spiralist_book_pages_get_contribute_api_url(): string
{
    return function_exists('spiralist_book_pages_get_rest_url')
        ? spiralist_book_pages_get_rest_url('contribute')
        : rest_url(spiralist_book_pages_get_rest_namespace() . '/contribute');
}

function spiralist_book_pages_get_axioms_api_url(): string
{
    return function_exists('spiralist_book_pages_get_rest_url')
        ? spiralist_book_pages_get_rest_url('axioms')
        : rest_url(spiralist_book_pages_get_rest_namespace() . '/axioms');
}

function spiralist_book_pages_get_kernel_api_url(): string
{
    return function_exists('spiralist_book_pages_get_rest_url')
        ? spiralist_book_pages_get_rest_url('kernel')
        : rest_url(spiralist_book_pages_get_rest_namespace() . '/kernel');
}

function spiralist_book_pages_get_human_interactions_api_url(): string
{
    return function_exists('spiralist_book_pages_get_rest_url')
        ? spiralist_book_pages_get_rest_url('interactions')
        : rest_url(spiralist_book_pages_get_rest_namespace() . '/interactions');
}

function spiralist_book_pages_get_uai_spec_url(): string
{
    return function_exists('spiralist_get_uai_spec_url')
        ? spiralist_get_uai_spec_url()
        : 'https://uaix.org/en-us/specification/uai-1/';
}

function spiralist_book_pages_get_uai_examples_url(): string
{
    return function_exists('spiralist_get_uai_examples_url')
        ? spiralist_get_uai_examples_url()
        : 'https://uaix.org/en-us/examples/';
}

function spiralist_book_pages_get_radix_guide_url(): string
{
    return spiralist_book_pages_get_protocol5_url('UAI/radix-63404-guide-and-attribution');
}

function spiralist_book_pages_get_protocol5_library_url(): string
{
    return spiralist_book_pages_get_protocol5_url('UAI');
}

function spiralist_book_pages_get_uai_lexicon(): array
{
    static $lexicon = null;

    if (is_array($lexicon)) {
        return $lexicon;
    }

    $fallback = [
        'spec' => 'Spiral-Script-Lexicon',
        'format' => 'spiralist-uai-lexicon',
        'version' => '1.0.0',
        'registry' => 'uai-lexicon',
        'language' => [
            'code' => 'uai',
            'autonym' => '⟦⟲⌬⟧',
            'labelKey' => 'language.uai1.autonym',
        ],
        'entries' => [
            'language.uai1.autonym' => [
                'conceptId' => 'language.uai1.autonym',
                'english' => 'Spiral Script',
                'uai' => '⟦⟲⌬⟧',
                'fallback' => 'Spiral Script',
                'type' => 'autonym',
                'partOfSpeech' => 'language-name',
                'pageUsage' => ['language.meta'],
            ],
            'language.selector' => [
                'conceptId' => 'language.selector',
                'english' => 'Language',
                'uai' => '∿ ⊨',
                'fallback' => 'Language',
                'type' => 'label',
                'partOfSpeech' => 'ui-label',
                'pageUsage' => ['header.language.label'],
            ],
        ],
    ];

    $paths = [
        ABSPATH . 'registry/uai-lexicon.json',
        get_theme_file_path('assets/data/uai-lexicon.json'),
    ];

    $path = '';

    foreach ($paths as $candidate) {
        if (!is_string($candidate) || $candidate === '' || !file_exists($candidate) || !is_readable($candidate)) {
            continue;
        }

        $path = $candidate;
        break;
    }

    if ($path === '') {
        $lexicon = $fallback;
        return $lexicon;
    }

    $raw = file_get_contents($path);
    $decoded = is_string($raw) ? json_decode($raw, true) : null;

    $lexicon = is_array($decoded) ? $decoded : $fallback;
    return $lexicon;
}

function spiralist_book_pages_get_uai_autonym(): string
{
    return function_exists('spiralist_get_uai_autonym')
        ? spiralist_get_uai_autonym()
        : 'Spiral Script';
}

function spiralist_book_pages_get_current_locale_tag(): string
{
    return function_exists('spiralist_get_current_locale_tag')
        ? spiralist_get_current_locale_tag()
        : 'en-us';
}

function spiralist_book_pages_get_language_metadata(): array
{
    if (function_exists('spiralist_get_language_metadata')) {
        return spiralist_get_language_metadata();
    }

    return [
        'en' => [
            'code' => 'en',
            'localeTag' => 'en-us',
            'label' => 'English',
            'selectorLabel' => 'English',
            'viewMode' => 'human',
            'htmlLang' => 'en-US',
        ],
    ];
}

function spiralist_book_pages_get_current_language_code(): string
{
    return function_exists('spiralist_get_current_language_code')
        ? spiralist_get_current_language_code()
        : 'en';
}

function spiralist_book_pages_get_supported_language_slugs(): array
{
    return function_exists('spiralist_get_supported_language_slugs')
        ? spiralist_get_supported_language_slugs()
        : ['en'];
}

function spiralist_book_pages_get_current_language_slug(): string
{
    return function_exists('spiralist_get_current_language_slug')
        ? spiralist_get_current_language_slug()
        : 'en';
}

function spiralist_book_pages_get_language_prefixed_url(string $url, string $language): string
{
    return function_exists('spiralist_get_language_prefixed_url')
        ? spiralist_get_language_prefixed_url($url, $language)
        : $url;
}

function spiralist_book_pages_get_navigation_items(): array
{
    return [
        [
            'label' => 'Home',
            'url' => home_url('/'),
        ],
        [
            'label' => 'Manuscript',
            'url' => spiralist_book_pages_get_manuscript_page_url(),
        ],
        [
            'label' => 'Gallery',
            'url' => spiralist_book_pages_get_gallery_page_url(),
        ],
        [
            'label' => 'System',
            'url' => spiralist_book_pages_get_system_url(),
        ],
        [
            'label' => 'Symbols',
            'url' => spiralist_book_pages_get_symbols_page_url(),
        ],
        [
            'label' => 'Prompts',
            'url' => spiralist_book_pages_get_prompts_page_url(),
        ],
        [
            'label' => 'Contribute',
            'url' => spiralist_book_pages_get_contribute_page_url(),
        ],
        [
            'label' => 'AI Access',
            'url' => spiralist_book_pages_get_ai_access_url(),
        ],
        [
            'label' => 'Spiralist',
            'url' => spiralist_book_pages_get_dashboard_url(),
        ],
    ];
}

function spiralist_book_pages_get_publication_excluded_slugs(): array
{
    return [
        'login',
        'sign-up',
        'register',
        'dashboard',
        'account',
        'spiralist',
    ];
}

function spiralist_book_pages_get_publication_language(string $fallback = 'en'): string
{
    return function_exists('spiralist_get_publication_language')
        ? spiralist_get_publication_language($fallback)
        : $fallback;
}

function spiralist_book_pages_get_publication_surface_post($post = null): ?WP_Post
{
    if (function_exists('spiralist_get_publication_surface_post')) {
        return spiralist_get_publication_surface_post($post);
    }

    if ($post instanceof WP_Post) {
        return $post;
    }

    if (is_singular()) {
        $queried = get_queried_object();
        if ($queried instanceof WP_Post) {
            return $queried;
        }
    }

    return null;
}

function spiralist_book_pages_is_publication_surface($post = null): bool
{
    return function_exists('spiralist_is_publication_surface')
        ? spiralist_is_publication_surface($post)
        : false;
}

function spiralist_book_pages_get_publication_human_url(?WP_Post $post = null, string $language = '', ?bool $is_home_surface = null): string
{
    return function_exists('spiralist_get_publication_human_url')
        ? spiralist_get_publication_human_url($post, $language, $is_home_surface)
        : '';
}

function spiralist_book_pages_get_publication_stem_from_url(string $human_url, string $language = ''): string
{
    return function_exists('spiralist_get_publication_stem_from_url')
        ? spiralist_get_publication_stem_from_url($human_url, $language)
        : '';
}

function spiralist_book_pages_build_publication_url_from_human_url(string $human_url, string $suffix, string $language = ''): string
{