Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
35 lines
874 B
TypeScript
35 lines
874 B
TypeScript
import { resolveAgentGUIProviderCatalogIdentity } from "../providerIdentityCatalog.ts";
|
|
|
|
export function normalizeManagedAgentProvider(
|
|
provider: string | undefined
|
|
): string {
|
|
const normalized =
|
|
provider
|
|
?.trim()
|
|
.toLowerCase()
|
|
.replace(/[_\s]+/gu, "-") ?? "";
|
|
return (
|
|
resolveAgentGUIProviderCatalogIdentity(normalized)?.iconKey ??
|
|
(normalized === "tutti-doc" ? "tutti" : normalized)
|
|
);
|
|
}
|
|
|
|
/** Providers still shipping in preview; the hero surfaces a "Beta" tag for them. */
|
|
const BETA_AGENT_PROVIDERS: ReadonlySet<string> = new Set([
|
|
"opencode",
|
|
"cursor",
|
|
"acp:hermes",
|
|
"hermes",
|
|
"acp:kimi-code",
|
|
"kimi-code"
|
|
]);
|
|
|
|
export function isBetaAgentProvider(
|
|
provider: string | null | undefined
|
|
): boolean {
|
|
if (!provider) {
|
|
return false;
|
|
}
|
|
return BETA_AGENT_PROVIDERS.has(normalizeManagedAgentProvider(provider));
|
|
}
|