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
839 B
TypeScript
35 lines
839 B
TypeScript
import {
|
|
APP_UPDATE_CHANNELS,
|
|
APP_UPDATE_POLICIES,
|
|
type AppUpdateChannel,
|
|
type AppUpdatePolicy
|
|
} from "../../../shared/contracts/dto";
|
|
|
|
export function isValidUpdatePolicy(value: unknown): value is AppUpdatePolicy {
|
|
return (
|
|
typeof value === "string" &&
|
|
APP_UPDATE_POLICIES.includes(value as AppUpdatePolicy)
|
|
);
|
|
}
|
|
|
|
export function isValidUpdateChannel(
|
|
value: unknown
|
|
): value is AppUpdateChannel {
|
|
return (
|
|
typeof value === "string" &&
|
|
APP_UPDATE_CHANNELS.includes(value as AppUpdateChannel)
|
|
);
|
|
}
|
|
|
|
export function normalizeUpdatePolicyForChannel(
|
|
policy: AppUpdatePolicy,
|
|
channel: AppUpdateChannel
|
|
): AppUpdatePolicy {
|
|
// Prerelease builds are intentionally more volatile: don't auto-install them.
|
|
if (channel === "prerelease" && policy === "auto") {
|
|
return "prompt";
|
|
}
|
|
|
|
return policy;
|
|
}
|