feat: update token auth flow
This commit is contained in:
37
src/commands/auth-token.ts
Normal file
37
src/commands/auth-token.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import { normalizeProviderId } from "../agents/model-selection.js";
|
||||
|
||||
export const ANTHROPIC_SETUP_TOKEN_PREFIX = "sk-ant-oat01-";
|
||||
export const ANTHROPIC_SETUP_TOKEN_MIN_LENGTH = 80;
|
||||
export const DEFAULT_TOKEN_PROFILE_NAME = "default";
|
||||
|
||||
export function normalizeTokenProfileName(raw: string): string {
|
||||
const trimmed = raw.trim();
|
||||
if (!trimmed) return DEFAULT_TOKEN_PROFILE_NAME;
|
||||
const slug = trimmed
|
||||
.toLowerCase()
|
||||
.replace(/[^a-z0-9._-]+/g, "-")
|
||||
.replace(/-+/g, "-")
|
||||
.replace(/^-+|-+$/g, "");
|
||||
return slug || DEFAULT_TOKEN_PROFILE_NAME;
|
||||
}
|
||||
|
||||
export function buildTokenProfileId(params: {
|
||||
provider: string;
|
||||
name: string;
|
||||
}): string {
|
||||
const provider = normalizeProviderId(params.provider);
|
||||
const name = normalizeTokenProfileName(params.name);
|
||||
return `${provider}:${name}`;
|
||||
}
|
||||
|
||||
export function validateAnthropicSetupToken(raw: string): string | undefined {
|
||||
const trimmed = raw.trim();
|
||||
if (!trimmed) return "Required";
|
||||
if (!trimmed.startsWith(ANTHROPIC_SETUP_TOKEN_PREFIX)) {
|
||||
return `Expected token starting with ${ANTHROPIC_SETUP_TOKEN_PREFIX}`;
|
||||
}
|
||||
if (trimmed.length < ANTHROPIC_SETUP_TOKEN_MIN_LENGTH) {
|
||||
return "Token looks too short; paste the full setup-token";
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
Reference in New Issue
Block a user