feat: 完成第二版类型清理

This commit is contained in:
claude-code-best
2026-03-31 23:03:47 +08:00
parent 4c0a655a1c
commit d7a729ca68
604 changed files with 595 additions and 953 deletions

File diff suppressed because one or more lines are too long

View File

@@ -408,7 +408,7 @@ export async function installResolvedPlugin({
allowedCrossMarketplaces,
)
if (!resolution.ok) {
return { ok: false, reason: 'resolution-failed', resolution }
return { ok: false, reason: 'resolution-failed', resolution: resolution as ResolutionResult & { ok: false } }
}
// ── Policy guard for transitive dependencies ──
@@ -525,31 +525,32 @@ export async function installPluginFromMarketplace({
})
if (!result.ok) {
switch (result.reason) {
const failedResult = result as Exclude<InstallCoreResult, { ok: true }>
switch (failedResult.reason) {
case 'local-source-no-location':
return {
success: false,
error: `Cannot install local plugin "${result.pluginName}" without marketplace install location`,
error: `Cannot install local plugin "${failedResult.pluginName}" without marketplace install location`,
}
case 'settings-write-failed':
return {
success: false,
error: `Failed to update settings: ${result.message}`,
error: `Failed to update settings: ${failedResult.message}`,
}
case 'resolution-failed':
return {
success: false,
error: formatResolutionError(result.resolution),
error: formatResolutionError(failedResult.resolution),
}
case 'blocked-by-policy':
return {
success: false,
error: `Plugin "${result.pluginName}" is blocked by your organization's policy and cannot be installed`,
error: `Plugin "${failedResult.pluginName}" is blocked by your organization's policy and cannot be installed`,
}
case 'dependency-blocked-by-policy':
return {
success: false,
error: `Cannot install "${result.pluginName}": dependency "${result.blockedDependency}" is blocked by your organization's policy`,
error: `Cannot install "${failedResult.pluginName}": dependency "${failedResult.blockedDependency}" is blocked by your organization's policy`,
}
}
}
@@ -585,7 +586,7 @@ export async function installPluginFromMarketplace({
return {
success: true,
message: `✓ Installed ${entry.name}${result.depNote}. Run /reload-plugins to activate.`,
message: `✓ Installed ${entry.name}${(result as Extract<InstallCoreResult, { ok: true }>).depNote}. Run /reload-plugins to activate.`,
}
} catch (err) {
const errorMessage = err instanceof Error ? err.message : String(err)