export const isCodexCreationToken = (valueArg: unknown, bytesArg: number): valueArg is string => ( typeof valueArg === 'string' && /^[A-Za-z0-9_-]+$/.test(valueArg) && Buffer.from(valueArg, 'base64url').byteLength === bytesArg && Buffer.from(valueArg, 'base64url').toString('base64url') === valueArg ); export const isCodexThreadId = (valueArg: unknown): valueArg is string => ( typeof valueArg === 'string' && /^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(valueArg) ); export const codexPublicThreadId = (profileIdArg: string, threadIdArg: string): string => { if (!isCodexCreationToken(profileIdArg, 32) || !isCodexThreadId(threadIdArg)) { throw new Error('Invalid Codex server identity.'); } return `codex-v2.${profileIdArg}.${threadIdArg}`; }; export const codexQualifiedIdentity = (valueArg: unknown): { profileId: string; rawThreadId: string } | undefined => { if (typeof valueArg !== 'string' || !valueArg.startsWith('codex-v2.')) return undefined; const parts = valueArg.split('.'); if (parts.length !== 3 || !isCodexCreationToken(parts[1], 32) || !isCodexThreadId(parts[2])) return undefined; return { profileId: parts[1]!, rawThreadId: parts[2]! }; }; export const isCodexSessionId = (valueArg: unknown): valueArg is string => isCodexThreadId(valueArg) || codexQualifiedIdentity(valueArg) !== undefined;