The half-step of Fibonacci Challenge
Implement the 1-indexed sequence A054049, which starts like this:
1, 2, 3, 6, 13, 5, 9, 377, 21, 11,
89, 14, 8, 233, 16, 987, 18, 2584, 20, 6765,
55, 23, 28657, 25, 75025, 27, 196418, 29, 514229, 31,
1346269, 33, 3524578, ...

This sequence is the lexicographically smallest sequence of positive integers, so that indexing into the sequence twice yields the regular Fibonacci sequence:
$$
a(a(1)) = a(1) = 1 \\
a(a(2)) = a(2) = 2 \\
a(a(3)) = a(3) = 3 \\
a(a(4)) = a(6) = 5 \\
a(a(5)) = a(13) = 8 \\
a(a(6)) = a(5) = 13 \\
a(a(7)) = a(9) = 21 \\ \vdots
$$
The value of \$a(34)\$, the first term that does not fit into the OEIS page, is equal to \$F(377+1)\$, or
4444705723234237498833973519982908519933430818636409166351397897095281987215864

I/O and scoring
The following I/O methods are allowed:

Take no input, and output the sequence indefinitely.
Take the value of \$n\$ (1-indexed), and output the value of \$a(n)\$.

This should follow the definition of \$a(1) = 1\$, \$a(2) = 2\$, and so on. The sequence is broken otherwise.


Take the value of \$n\$, and output first \$n\$ values of the sequence.

Due to the indexing nature of this sequence, the indexing is fixed to 1-indexing. The sequence can be considered 0-indexed by including \$a(0) = 1\$ in front of the sequence; you may use this alternative definition for any of the I/O methods.
Standard code-golf rules apply. The shortest code in bytes wins.
Python 2, 226 bytes

g=input()+2
f=lambda n,x=1,y=1:n and f(n-1,y,x+y)or x
k={1:1,2:2,3:3}
s=set(k)
x=4
y=6
while g/x:
&#9;while g/x|g/y:k[y]=f(x);k[x]=y;s|={x};x,y=y,f(x)
&#9;x,y=sorted(set(range(1,max(s)+3))-s)[:2];s|={y}
print map(k.get,range(1,g-1))

Try it online!
-33 bytes thanks to ovs