feat: v2.6.0 3-step AI pipeline, VPS worker, REST worker routes

- 3-step OpenRouter pipeline: Gatekeeper scoring/classification, PubMed+Google URL extraction, Markdown summary generation
- REST worker routes /wp-json/peptide-news/v1/worker/* with X-Peptide-News-Token auth
- Standalone Coolify worker (tools/vps-worker) with Dockerfile + docker-compose
- CLI commands, content extractor, pubmed extractor, google url resolver
- 89 PHPUnit tests passing
This commit is contained in:
opencode
2026-08-03 19:20:47 +08:00
parent 9e78a7a8fb
commit 7d2f795f99
25 changed files with 4857 additions and 171 deletions

View File

@@ -117,6 +117,26 @@ class Peptide_News_Admin_Field_Renderers {
);
}
public static function render_ncbi_key_field(): void {
$value = get_option( 'peptide_news_ncbi_api_key', '' );
$display_value = ! empty( $value ) ? self::mask_api_key( $value ) : '';
printf(
'<input type="password" name="peptide_news_ncbi_api_key" value="%s" class="regular-text" placeholder="%s" />',
esc_attr( $display_value ),
esc_attr__( 'Enter NCBI API key (optional)', 'peptide-news' )
);
}
public static function render_vps_token_field(): void {
$value = get_option( 'peptide_news_vps_token', '' );
$display_value = ! empty( $value ) ? self::mask_api_key( $value ) : '';
printf(
'<input type="password" name="peptide_news_vps_token" value="%s" class="regular-text" placeholder="%s" />',
esc_attr( $display_value ),
esc_attr__( 'Enter secret VPS token (optional)', 'peptide-news' )
);
}
public static function render_article_retention_field(): void {
$value = get_option( 'peptide_news_article_retention', 90 );
printf(