feat(agentic): add canonical generate command

Co-Authored-By: Virgil <virgil@lethean.io>
This commit is contained in:
Virgil 2026-04-02 04:54:20 +00:00
parent 3b16ddbfbd
commit c4f5b77786
4 changed files with 50 additions and 7 deletions

View file

@ -177,6 +177,7 @@ class Boot extends ServiceProvider
$event->command(Console\Commands\TaskCommand::class);
$event->command(Console\Commands\PlanCommand::class);
$event->command(Console\Commands\AgenticGenerateCommand::class);
$event->command(Console\Commands\GenerateCommand::class);
$event->command(Console\Commands\PlanRetentionCommand::class);
$event->command(Console\Commands\BrainSeedMemoryCommand::class);

View file

@ -0,0 +1,21 @@
<?php
declare(strict_types=1);
namespace Core\Mod\Agentic\Console\Commands;
class AgenticGenerateCommand extends GenerateCommand
{
protected $signature = 'agentic:generate
{action=status : Action: status, brief, batch, plan, queue-stats}
{--id= : Brief or Plan ID}
{--type=help_article : Content type: help_article, blog_post, landing_page, social_post}
{--title= : Content title}
{--service= : Service context (e.g., BioHost, QRHost)}
{--keywords= : Comma-separated keywords}
{--words=800 : Target word count}
{--mode=full : Generation mode: draft, refine, full}
{--sync : Run synchronously instead of queuing}
{--limit=5 : Batch limit}
{--priority=normal : Priority: low, normal, high, urgent}';
}

View file

@ -123,7 +123,7 @@ class GenerateCommand extends Command
GenerateContentJob::dispatch($brief, $this->option('mode'));
$this->comment('Queued for generation.');
$this->line('Monitor with: php artisan generate status');
$this->line('Monitor with: php artisan agentic:generate status');
return 0;
}
@ -357,12 +357,12 @@ class GenerateCommand extends Command
$this->line(' <info>Content Generation CLI</info>');
$this->newLine();
$this->line(' <comment>Usage:</comment>');
$this->line(' php artisan generate status Show pipeline status');
$this->line(' php artisan generate brief --title="Topic" Create and queue a brief');
$this->line(' php artisan generate brief --title="Topic" --sync Generate immediately');
$this->line(' php artisan generate batch --limit=10 Process queued briefs');
$this->line(' php artisan generate plan --id=1 Generate from plan tasks');
$this->line(' php artisan generate stats Show queue statistics');
$this->line(' php artisan agentic:generate status Show pipeline status');
$this->line(' php artisan agentic:generate brief --title="Topic" Create and queue a brief');
$this->line(' php artisan agentic:generate brief --title="Topic" --sync Generate immediately');
$this->line(' php artisan agentic:generate batch --limit=10 Process queued briefs');
$this->line(' php artisan agentic:generate plan --id=1 Generate from plan tasks');
$this->line(' php artisan agentic:generate stats Show queue statistics');
$this->newLine();
$this->line(' <comment>Options:</comment>');
$this->line(' --type=help_article|blog_post|landing_page|social_post');

View file

@ -0,0 +1,21 @@
<?php
// SPDX-License-Identifier: EUPL-1.2
declare(strict_types=1);
namespace Core\Mod\Agentic\Tests\Feature;
use Tests\TestCase;
class AgenticGenerateCommandTest extends TestCase
{
public function test_it_registers_the_canonical_agentic_generate_command(): void
{
$this->artisan('help', [
'command' => 'agentic:generate',
])
->expectsOutputToContain('agentic:generate')
->assertSuccessful();
}
}