mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-12 01:37:06 +02:00
Trois défauts sans rapport entre eux, tous visibles à l'écran. Jauge de contexte bloquée à « 0 / N (0 %) » : le comptage exact vient de usage.prompt_tokens (include_usage), qu'un llama-server récent a cessé de renvoyer. On note désormais si l'usage est arrivé ; sinon la fin de tour publie l'estimation qui pilote déjà la compaction — approximative, mais jamais absente. Et la souscription envoie la valeur courante juste après le rattrapage : une page rechargée affichait zéro sur une discussion pourtant pleine, faute d'événement ctx_used dans la fenêtre rejouée. Espace disque : « il ne reste que 11,9 Go » sur un partage Unraid qui en a des centaines. /mnt/user est servi par shfs, un FUSE qui agrège plusieurs disques — statfs y renvoie l'espace d'un seul, et ce chiffre REFUSAIT l'installation du modèle. Les systèmes de fichiers qui approximent (FUSE, overlay, NFS, CIFS, Ceph, Gluster) sont reconnus par leur magie : leur chiffre reste affiché, précédé d'un « ~ », mais ne bloque plus rien. Panneau Fichiers : le panneau entier défilait, emportant vers le haut l'en-tête, le fil d'Ariane et le pied (occupation disque, bouton .zip) dès qu'il y avait quelques fichiers. Seule la liste défile maintenant ; le pied reste en bas et l'état vide se centre. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
54 lines
2.0 KiB
TypeScript
54 lines
2.0 KiB
TypeScript
import type { StateCreator, StoreApi, StoreMutatorIdentifier } from 'zustand/vanilla';
|
|
type Config = Parameters<(Window extends {
|
|
__REDUX_DEVTOOLS_EXTENSION__?: infer T;
|
|
} ? T : {
|
|
connect: (param: any) => unknown;
|
|
})['connect']>[0];
|
|
declare module '../vanilla' {
|
|
interface StoreMutators<S, A> {
|
|
'zustand/devtools': WithDevtools<S>;
|
|
}
|
|
}
|
|
type Cast<T, U> = T extends U ? T : U;
|
|
type Write<T, U> = Omit<T, keyof U> & U;
|
|
type TakeTwo<T> = T extends {
|
|
length: 0;
|
|
} ? [undefined, undefined] : T extends {
|
|
length: 1;
|
|
} ? [...args0: Cast<T, unknown[]>, arg1: undefined] : T extends {
|
|
length: 0 | 1;
|
|
} ? [...args0: Cast<T, unknown[]>, arg1: undefined] : T extends {
|
|
length: 2;
|
|
} ? T : T extends {
|
|
length: 1 | 2;
|
|
} ? T : T extends {
|
|
length: 0 | 1 | 2;
|
|
} ? T : T extends [infer A0, infer A1, ...unknown[]] ? [A0, A1] : T extends [infer A0, (infer A1)?, ...unknown[]] ? [A0, A1?] : T extends [(infer A0)?, (infer A1)?, ...unknown[]] ? [A0?, A1?] : never;
|
|
type WithDevtools<S> = Write<S, StoreDevtools<S>>;
|
|
type Action = string | {
|
|
type: string;
|
|
[x: string | number | symbol]: unknown;
|
|
};
|
|
type StoreDevtools<S> = S extends {
|
|
setState: {
|
|
(...args: infer Sa1): infer Sr1;
|
|
(...args: infer Sa2): infer Sr2;
|
|
};
|
|
} ? {
|
|
setState(...args: [...args: TakeTwo<Sa1>, action?: Action]): Sr1;
|
|
setState(...args: [...args: TakeTwo<Sa2>, action?: Action]): Sr2;
|
|
devtools: {
|
|
cleanup: () => void;
|
|
};
|
|
} : never;
|
|
export interface DevtoolsOptions extends Config {
|
|
name?: string;
|
|
enabled?: boolean;
|
|
anonymousActionType?: string;
|
|
store?: string;
|
|
}
|
|
type Devtools = <T, Mps extends [StoreMutatorIdentifier, unknown][] = [], Mcs extends [StoreMutatorIdentifier, unknown][] = [], U = T>(initializer: StateCreator<T, [...Mps, ['zustand/devtools', never]], Mcs, U>, devtoolsOptions?: DevtoolsOptions) => StateCreator<T, Mps, [['zustand/devtools', never], ...Mcs], U>;
|
|
export type NamedSet<T> = WithDevtools<StoreApi<T>>['setState'];
|
|
export declare const devtools: Devtools;
|
|
export {};
|