feat(plugins): add shared client tools
This commit is contained in:
@@ -85,6 +85,20 @@ function Install-ConfiguredPlugins {
|
||||
$plugin = if ($selectedClient -eq 'Claude') { $entry.claude_plugin } else { $entry.codex_plugin }
|
||||
if ([string]::IsNullOrWhiteSpace($plugin)) { throw ('Plugin selector missing for {0}: {1}' -f $selectedClient, $entry.name) }
|
||||
|
||||
if ($selectedClient -eq 'Codex' -and $entry.codex_method -ne 'plugin') {
|
||||
if ($entry.codex_method -eq 'skill') {
|
||||
$arguments = @('-y','skills','add',$entry.codex_source,'--global','--agent','codex')
|
||||
if ($entry.codex_skill -ne '-') { $arguments = @('-y','skills','add',$entry.codex_source,'--skill',$entry.codex_skill,'--global','--agent','codex') }
|
||||
} elseif ($entry.codex_method -eq 'impeccable') {
|
||||
$arguments = @('-y','impeccable','install','-y','--providers=codex','--scope=global')
|
||||
} else {
|
||||
throw "Unknown Codex install method '$($entry.codex_method)' for $($entry.name)."
|
||||
}
|
||||
Invoke-PluginCommand -Command 'npx' -Arguments $arguments -DryRun:$DryRun
|
||||
Write-Output "PASS Codex skill ensured: $($entry.name)"
|
||||
continue
|
||||
}
|
||||
|
||||
$installedItem = if ($selectedClient -eq 'Claude') { $installed | Where-Object { $_.id -eq $plugin } | Select-Object -First 1 } else { $installed | Where-Object { $_.pluginId -eq $plugin } | Select-Object -First 1 }
|
||||
if ($Update -and $selectedClient -eq 'Claude' -and $null -ne $installedItem) {
|
||||
Invoke-PluginCommand -Command 'claude' -Arguments @('plugin','update',$plugin) -DryRun:$DryRun
|
||||
|
||||
+19
-2
@@ -53,8 +53,8 @@ install_configured_plugins() {
|
||||
*) printf 'Unknown plugin client selection: %s\n' "$client_selection" >&2; return 1;;
|
||||
esac
|
||||
|
||||
local client name claude_marketplace claude_plugin codex_marketplace codex_plugin marketplace plugin
|
||||
while IFS=$'\t' read -r name claude_marketplace claude_plugin codex_marketplace codex_plugin; do
|
||||
local client name claude_marketplace claude_plugin codex_marketplace codex_plugin codex_method codex_source codex_skill marketplace plugin
|
||||
while IFS=$'\t' read -r name claude_marketplace claude_plugin codex_marketplace codex_plugin codex_method codex_source codex_skill; do
|
||||
[ "$name" = name ] && continue
|
||||
[ -n "$name" ] || continue
|
||||
[ "$claude_marketplace" = - ] && claude_marketplace=
|
||||
@@ -62,6 +62,23 @@ install_configured_plugins() {
|
||||
for client in "${clients[@]}"; do
|
||||
if [ "$client" = claude ]; then marketplace=$claude_marketplace; plugin=$claude_plugin; else marketplace=$codex_marketplace; plugin=$codex_plugin; fi
|
||||
[ -n "$plugin" ] || { printf 'Plugin selector missing for %s: %s\n' "$client" "$name" >&2; return 1; }
|
||||
if [ "$client" = codex ] && [ "$codex_method" != plugin ]; then
|
||||
case "$codex_method" in
|
||||
skill)
|
||||
if [ "$codex_skill" = - ]; then
|
||||
run_plugin_command "$dry_run" npx -y skills add "$codex_source" --global --agent codex
|
||||
else
|
||||
run_plugin_command "$dry_run" npx -y skills add "$codex_source" --skill "$codex_skill" --global --agent codex
|
||||
fi
|
||||
;;
|
||||
impeccable)
|
||||
run_plugin_command "$dry_run" npx -y impeccable install -y --providers=codex --scope=global
|
||||
;;
|
||||
*) printf 'Unknown Codex install method for %s: %s\n' "$client" "$name" >&2; return 1;;
|
||||
esac
|
||||
printf 'PASS Codex skill ensured: %s\n' "$name"
|
||||
continue
|
||||
fi
|
||||
if [ "$dry_run" = false ] && plugin_installed "$client" "$plugin"; then
|
||||
if [ "$update" = true ] && [ "$client" = claude ]; then
|
||||
run_plugin_command "$dry_run" claude plugin update "$plugin"
|
||||
|
||||
Reference in New Issue
Block a user