Files
OpenCode 68a9071cf1 feat: reconcile local master with origin (exa/hot-platform hunters, leaks ledger, latest results)
Local branch had diverged from origin/master (sibling commits on the same base). Rewrote local history linearly on top of origin/master, folding in all local content: exa/hot-platform discovery hunters, leaks ledger, nightly sweep orchestrator, updated .gitignore and skill docs, plus the latest hunt output and vault state. Remote-only files (vault keys, channel scripts) were restored rather than dropped, so the resulting tree is a full union of both sides.
2026-08-07 12:53:47 +08:00

1 line
3.5 KiB
JSON

{"repo": "asyrafmuda/aichatbot", "files": {"database/migrations/2025_07_17_100320_create_ai_settings_table.php": {"913c3282680e02ae77199d3bcd2ccc7ffdf13a75": {"t": 1786068318.1726756, "n": 3192, "h": "981d53d36412d352", "c": "<?php\n\nuse Illuminate\\Database\\Migrations\\Migration;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Support\\Facades\\DB;\n\nreturn new class extends Migration\n{\n /**\n * Run the migrations.\n */\n public function up(): void\n {\n Schema::create('ai_settings', function (Blueprint $table) {\n $table->id();\n $table->string('key')->unique();\n $table->text('value')->nullable();\n $table->string('type')->default('string'); // string, boolean, integer, json\n $table->text('description')->nullable();\n $table->boolean('is_active')->default(true);\n $table->timestamps();\n });\n \n // Insert default settings\n $defaultSettings = [\n [\n 'key' => 'ai_provider',\n 'value' => 'openai',\n 'type' => 'string',\n 'description' => 'Active AI provider (openai, deepseek)',\n 'is_active' => true\n ],\n [\n 'key' => 'openai_api_key',\n 'value' => env('OPENAI_API_KEY'),\n 'type' => 'string',\n 'description' => 'OpenAI API Key',\n 'is_active' => true\n ],\n [\n 'key' => 'openai_model',\n 'value' => 'gpt-4o-mini',\n 'type' => 'string',\n 'description' => 'OpenAI Model (gpt-4o-mini, gpt-4o, gpt-4-turbo)',\n 'is_active' => true\n ],\n [\n 'key' => 'deepseek_api_key',\n 'value' => 'sk-42c1fb595fd144c9a55ec8e2277e70a5',\n 'type' => 'string',\n 'description' => 'DeepSeek API Key',\n 'is_active' => true\n ],\n [\n 'key' => 'deepseek_model',\n 'value' => 'deepseek-chat',\n 'type' => 'string',\n 'description' => 'DeepSeek Model',\n 'is_active' => true\n ],\n [\n 'key' => 'faq_enhancement_enabled',\n 'value' => 'true',\n 'type' => 'boolean',\n 'description' => 'Enable FAQ + AI Enhancement mode',\n 'is_active' => true\n ],\n [\n 'key' => 'ai_max_tokens',\n 'value' => '1000',\n 'type' => 'integer',\n 'description' => 'Maximum tokens for AI responses',\n 'is_active' => true\n ],\n [\n 'key' => 'ai_temperature',\n 'value' => '0.7',\n 'type' => 'string',\n 'description' => 'AI temperature (0.0-1.0)',\n 'is_active' => true\n ]\n ];\n \n foreach ($defaultSettings as $setting) {\n DB::table('ai_settings')->insert(array_merge($setting, [\n 'created_at' => now(),\n 'updated_at' => now()\n ]));\n }\n }\n\n /**\n * Reverse the migrations.\n */\n public function down(): void\n {\n Schema::dropIfExists('ai_settings');\n }\n};\n"}}}}