Skip to main content

Plugin Management Abilities (প্লাগইন ব্যৱস্থাপনা ক্ষমতা)

Gratis AI Agent v1.5.0 ত ৭টা প্লাগইন ব্যৱস্থাপনা ক্ষমতা (plugin management abilities) অন্তৰ্ভুক্ত কৰা হৈছে, যিবোৰ AI সহায়কজনে কথোপকথনৰ সময়ত ব্যৱহাৰ কৰিব পাৰে। এই ক্ষমতাসমূহে Plugin Builder & Sandbox System মাজেৰে স্থাপন কৰা WordPress প্লাগইনসমূহৰ ওপৰত প্ৰগ্ৰামমেটিক নিয়ন্ত্ৰণ প্ৰদান কৰে।

Abilities Overview (ক্ষমতাৰ এক ঝলকে)

AbilitySlugDescription
List Pluginslist_pluginssandbox store-ত থকা প্লাগইনসমূহৰ তালিকা আৰু তেওঁলোকৰ স্থিতি (status) প্ৰদান কৰে।
Get Pluginget_pluginslug অনুসৰি এটা নিৰ্দিষ্ট প্লাগইনৰ মেটাডেটা (metadata) আৰু সৰ্বোচ্চ কোড (source code) পুনৰুদ্ধাৰ কৰে।
Create Plugincreate_pluginএটা বৰ্ণনাৰ পৰা এটা নতুন প্লাগইন সৃষ্টি কৰে আৰু ইয়াক sandbox ত সংৰক্ষণ কৰে।
Update Pluginupdate_pluginএটা প্লাগইনৰ সৰ্বোচ্চ কোডক নতুন সংস্কৰণৰে সলনি কৰে।
Delete Plugindelete_pluginsandbox storeৰ পৰা এটা প্লাগইন আঁতৰাই দিয়ে। প্ৰথমে ইয়াক নিষ্ক্ৰিয় (deactivate) কৰে।
Install Plugininstall_pluginএটা sandboxed প্লাগইনক লাইভ WordPress প্লাগইন ডাইৰেক্টৰীত স্থাপন কৰে।
Activate Pluginactivate_pluginwp-env sandbox environment ত এটা sandboxed প্লাগইনক সক্রিয় কৰে।

Plugin Installer API (প্লাগইন স্থাপনকাৰী API)

প্লাগইন স্থাপন কৰোঁতে বা আঁতৰাই নিদিয়ে, প্লাগইন স্থাপনকাৰীয়ে (plugin installer) ফাইল সিস্টেমৰ কাৰ্যকলাপসমূহ ব্যৱস্থাপনা কৰে। ইয়াৰ মূল কাৰ্যকলাপসমূহ হ'ল:

  • Path validation (পথ বৈধতা): কোনো ফাইল লিখাৰ আগতে সকলো প্লাগইন পথক (plugin paths) অনুমোদিত প্লাগইন ডাইৰেক্টৰীৰ সৈতে বৈধ কৰা হয়। Directory traversal কৰাৰ প্ৰয়াসসমূহ নাকচ কৰা হয়।
  • Multi-file install (বহু-ফাইল স্থাপন): এটা প্লাগইনৰ বহু ফাইল থাকিব পাৰে। স্থাপনকাৰীয়ে প্লাগইন ডাইৰেক্টৰীটো সৃষ্টি কৰে আৰু সকলো ফাইল একotropically (atomically) লিখি দিয়ে।
  • Update (আপডেট): বিদ্যমান প্লাগইন ফাইলসমূহক সলনি কৰে। আংশিক-স্থিতিৰ ভুল (partial-state errors) এৰাই চলিবলৈ ফাইল লিখাৰ আগতে প্লাগইনক নিষ্ক্ৰিয় কৰা হয়।
  • Delete by slug (slug অনুসৰি আঁতৰোৱা): slug অনুসৰি প্লাগইন ডাইৰেক্টৰীটো বিচাৰে, সকলো স্থানত (all sites) ইয়াক নিষ্ক্ৰিয় কৰে, আৰু তাৰ পিছত ডাইৰেক্টৰীটো আঁতৰাই দিয়ে।

Registering a Custom Install Handler (এটা কাস্টম স্থাপনকাৰী যোগ কৰা)

আপুনি gratis_ai_plugin_installer_before_install আৰু gratis_ai_plugin_installer_after_install actions ব্যৱহাৰ কৰি install lifecycle ত hook কৰিব পাৰে:

add_action('gratis_ai_plugin_installer_before_install', function(string $slug, array $files): void {
// $slug: the plugin's directory name
// $files: associative array of relative path => file content
error_log("Installing plugin: {$slug} with " . count($files) . " files.");
}, 10, 2);

add_action('gratis_ai_plugin_installer_after_install', function(string $slug, bool $success): void {
if ($success) {
error_log("Plugin {$slug} installed successfully.");
}
}, 10, 2);

Ecosystem Registry (প্ৰকৃতিৰ ৰেজিষ্ট্ৰী)

Ability সমূহ plugin ecosystem registry মাজেৰে register কৰা হয়। এই registry ले ability slug সমূহক তেওঁলোকৰ handler class লগত ম্যাপ কৰে আৰু AI agent-ৰ tool dispatcher-লৈ প্ৰকাশ কৰে।

এটা কাস্টম প্লাগইন ব্যৱস্থাপনা ability register কৰিবলৈ:

add_filter('gratis_ai_plugin_abilities', function(array $abilities): array {
$abilities['my_custom_ability'] = [
'class' => My_Custom_Plugin_Ability::class,
'label' => 'My Custom Ability',
'description' => 'Does something useful with plugins.',
];
return $abilities;
});

আপোনাৰ ability class-এ Gratis_AI_Ability_Interface implement কৰিব লাগিব:

class My_Custom_Plugin_Ability implements Gratis_AI_Ability_Interface {

public function get_slug(): string {
return 'my_custom_ability';
}

public function get_schema(): array {
return [
'name' => 'my_custom_ability',
'description' => 'Does something useful with plugins.',
'parameters' => [
'type' => 'object',
'properties' => [
'slug' => [
'type' => 'string',
'description' => 'The plugin slug to operate on.',
],
],
'required' => ['slug'],
],
];
}

public function execute(array $params): array {
$slug = sanitize_key($params['slug'] ?? '');
// ... your implementation ...
return ['success' => true, 'slug' => $slug];
}
}

HookScanner Integration (HookScanner সংহতি)

create_plugin আৰু update_plugin ability সমূহ স্বয়ংক্রিয়ভাৱে নতুনকৈ সৃষ্টি কৰা কোডৰ ওপৰত HookScanner চলাই দিয়ে। HookScanner-এ প্লাগইনৰ দ্বাৰা register কৰা WordPress action আৰু filter hook সমূহৰ তালিকা দিয়ে।

HookScanner ফলাফল প্ৰগ্ৰামমেটিকভাৱে পুনৰুদ্ধাৰ কৰিবলৈ:

$scanner = new Gratis_AI_Hook_Scanner();
$hooks = $scanner->scan_plugin_slug('my-generated-plugin');

foreach ($hooks['actions'] as $hook) {
echo "Action: {$hook['hook']} — callback: {$hook['callback']}\n";
}

foreach ($hooks['filters'] as $hook) {
echo "Filter: {$hook['hook']} — callback: {$hook['callback']}\n";
}

HookScanner স্বয়ংক্রিয়ভাৱে vendor/ আৰু node_modules/ ডাইৰেক্টৰীসমূহ এৰি দিয়ে।

Async Job Architecture (অ্যাসিঙ্ক Job স্থাপত্য)

দীৰ্ঘ সময় ধৰি চলা প্লাগইন কাৰ্যকলাপসমূহ (সৃষ্টি কৰা, স্থাপন কৰা) লাইভ প্ৰগ্ৰেছ Tracing লৈ async jobs হিচাপে প্ৰেণত কৰা হয়। AI chat interface-এ প্ৰগ্ৰেছৰ বাবে poll কৰে আৰু status update সমূহ ব্যৱহাৰকাৰীক stream কৰে:

  1. Dispatch (প্ৰেণত কৰা): ability-এ এটা async job সৃষ্টি কৰে আৰু এটা job ID ঘূৰাই দিয়ে।
  2. Poll (প্ৰহৰ): agent-এ প্ৰতি ২ ছেকেণ্ডৰ মূৰেৰে gratis_ai_job_status($job_id) poll কৰে।
  3. Stream (স্ৰেণালী): মধ্যবর্তী প্ৰগ্ৰেছ বাৰ্তা (intermediate progress messages) chat thread লৈ পঠোৱা হয়।
  4. Complete (সম্পূৰ্ণ): চূড়ান্ত ফলাফল (সফলতা বা ভুল) ঘূৰাই দিয়ে আৰু প্ৰদৰ্শিত হয়।

Job lifecycle event সমূহলৈ hook কৰিবলৈ:

add_action('gratis_ai_job_started', function(string $job_id, string $ability_slug): void {
error_log("Job {$job_id} started for ability: {$ability_slug}");
}, 10, 2);

add_action('gratis_ai_job_completed', function(string $job_id, array $result): void {
error_log("Job {$job_id} completed. Success: " . ($result['success'] ? 'yes' : 'no'));
}, 10, 2);