Skip to content
wiki.fftac.org

Managedpromptadmin - Source Excerpt 03

Back to Managedpromptadmin

Summary

This source excerpt preserves a bounded section of Spiralist/wp-content/plugins/spiralist-workspace/includes/Admin/ManagedPromptAdmin.php so readers can inspect the evidence without opening the full source file.

**Source path:** Spiralist/wp-content/plugins/spiralist-workspace/includes/Admin/ManagedPromptAdmin.php

</select>
                        </p>
                        <p>
                            <label for="spiralist_workspace_prompt_subcategory"><strong>Subcategory</strong></label><br />
                            <select id="spiralist_workspace_prompt_subcategory" name="subcategory" class="regular-text">
                                <?php foreach (PromptCategoryRegistry::hierarchy() as $category => $subcategories) : ?>
                                    <optgroup label="<?php echo esc_attr($category); ?>">
                                        <?php foreach ($subcategories as $subcategory) : ?>
                                            <option value="<?php echo esc_attr($subcategory); ?>" <?php selected((string) ($selected_prompt['subcategory'] ?? ''), $subcategory); ?>><?php echo esc_html($subcategory); ?></option>
                                        <?php endforeach; ?>
                                    </optgroup>
                                <?php endforeach; ?>
                            </select>
                        </p>
                    </div>

                    <div class="spiralist-workspace-admin-field-grid spiralist-workspace-admin-field-grid--four">
                        <p>
                            <label for="spiralist_workspace_prompt_model"><strong>Model</strong></label><br />
                            <input id="spiralist_workspace_prompt_model" list="spiralist_workspace_allowed_models" class="regular-text" type="text" name="model" value="<?php echo esc_attr((string) ($selected_prompt['model'] ?? ($allowed_models[0] ?? 'gpt-5.5'))); ?>" />
                            <datalist id="spiralist_workspace_allowed_models">
                                <?php foreach ($allowed_models as $model) : ?>
                                    <option value="<?php echo esc_attr((string) $model); ?>"></option>
                                <?php endforeach; ?>
                            </datalist>
                        </p>
                        <p>
                            <label for="spiralist_workspace_prompt_provider"><strong>Render Mode</strong></label><br />
                            <select id="spiralist_workspace_prompt_provider" name="provider" class="regular-text">
                                <option value="prompt_art_only" selected>prompt_art_only</option>
                            </select>
                        </p>
                        <p>
                            <label for="spiralist_workspace_prompt_visibility"><strong>Visibility</strong></label><br />
                            <select id="spiralist_workspace_prompt_visibility" name="visibility" class="regular-text">
                                <?php foreach (['private', 'members', 'public', 'specific_users'] as $visibility) : ?>
                                    <option value="<?php echo esc_attr($visibility); ?>" <?php selected((string) ($selected_prompt['visibility'] ?? 'public'), $visibility); ?>><?php echo esc_html($visibility); ?></option>
                                <?php endforeach; ?>
                            </select>
                        </p>
                        <p>
                            <label for="spiralist_workspace_prompt_type"><strong>Prompt Type</strong></label><br />
                            <input id="spiralist_workspace_prompt_type" class="regular-text" type="text" name="prompt_type" value="<?php echo esc_attr((string) ($selected_prompt['prompt_type'] ?? 'prompt')); ?>" />
                        </p>
                    </div>

                    <div class="spiralist-workspace-admin-field-grid spiralist-workspace-admin-field-grid--three">
                        <p>
                            <label for="spiralist_workspace_prompt_language"><strong>Language</strong></label><br />
                            <input id="spiralist_workspace_prompt_language" class="regular-text" type="text" name="language" value="<?php echo esc_attr((string) ($selected_prompt['language'] ?? 'en')); ?>" />
                        </p>
                        <p>
                            <label for="spiralist_workspace_prompt_status"><strong>Prompt Status</strong></label><br />
                            <select id="spiralist_workspace_prompt_status" name="prompt_status" class="regular-text">
                                <?php foreach (['draft', 'published', 'archived'] as $status) : ?>
                                    <option value="<?php echo esc_attr($status); ?>" <?php selected((string) ($selected_prompt['prompt_status'] ?? 'published'), $status); ?>><?php echo esc_html($status); ?></option>
                                <?php endforeach; ?>
                            </select>
                        </p>
                        <p>
                            <label for="spiralist_workspace_moderation_status"><strong>Moderation Status</strong></label><br />
                            <select id="spiralist_workspace_moderation_status" name="moderation_status" class="regular-text">
                                <?php foreach (PromptMetaRegistry::moderation_statuses() as $status => $label) : ?>
                                    <option value="<?php echo esc_attr($status); ?>" <?php selected((string) ($selected_prompt['moderation_status'] ?? 'peer_reviewed'), $status); ?>><?php echo esc_html($label); ?></option>
                                <?php endforeach; ?>
                            </select>
                        </p>
                    </div>

                    <div class="spiralist-workspace-admin-field-grid spiralist-workspace-admin-field-grid--two">
                        <p>
                            <label for="spiralist_workspace_prompt_tags"><strong>Tags</strong></label><br />
                            <input id="spiralist_workspace_prompt_tags" class="large-text" type="text" name="tags" value="<?php echo esc_attr(implode(', ', (array) ($selected_prompt['tags'] ?? []))); ?>" />
                        </p>
                        <p>
                            <label for="spiralist_workspace_related_manuscripts"><strong>Related Manuscripts</strong></label><br />
                            <input id="spiralist_workspace_related_manuscripts" class="large-text" type="text" name="related_manuscripts" value="<?php echo esc_attr(implode(', ', (array) ($selected_prompt['related_manuscripts'] ?? []))); ?>" />
                        </p>
                    </div>

                    <div class="spiralist-workspace-admin-panel">
                        <h4>Structured Prompt Header</h4>
                        <p class="description">These are the five canonical structured prompt fields. They map to the top prompt contract section and stay editable even for filesystem-managed prompts.</p>
                        <div class="spiralist-workspace-admin-field-grid spiralist-workspace-admin-field-grid--two">
                            <p>
                                <label for="spiralist_workspace_structured_instruction"><strong>Instruction</strong></label><br />
                                <textarea id="spiralist_workspace_structured_instruction" class="large-text" rows="4" name="structured_instruction"><?php echo esc_textarea((string) ($selected_prompt['structured_prompt']['instruction'] ?? '')); ?></textarea>
                            </p>
                            <p>
                                <label for="spiralist_workspace_structured_context"><strong>Context</strong></label><br />
                                <textarea id="spiralist_workspace_structured_context" class="large-text" rows="4" name="structured_context"><?php echo esc_textarea((string) ($selected_prompt['structured_prompt']['context'] ?? '')); ?></textarea>
                            </p>
                            <p>
                                <label for="spiralist_workspace_structured_constraints"><strong>Constraints</strong></label><br />
                                <textarea id="spiralist_workspace_structured_constraints" class="large-text" rows="4" name="structured_constraints"><?php echo esc_textarea((string) ($selected_prompt['structured_prompt']['constraints'] ?? '')); ?></textarea>
                            </p>
                            <p>
                                <label for="spiralist_workspace_structured_examples"><strong>Examples</strong></label><br />
                                <textarea id="spiralist_workspace_structured_examples" class="large-text" rows="4" name="structured_examples"><?php echo esc_textarea((string) ($selected_prompt['structured_prompt']['examples'] ?? '')); ?></textarea>
                            </p>
                        </div>
                        <p>