Files
Momento/memento-note/lib/ai/semantic-proximity.ts
Antigravity e2672cd2c2
Some checks failed
CI / Lint, Test & Build (push) Failing after 1m19s
CI / Deploy production (on server) (push) Has been skipped
feat(notes): liens internes, onglet Réseau, living blocks et consentement IA
Rend les liens entre notes visibles et persistants (sync NoteLink au save, auto-save, graphe réseau rafraîchi), ajoute living blocks, Memory Echo, recherche globale, consentement IA explicite et consolide les prototypes design en architectural-grid.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-24 14:27:29 +00:00

33 lines
1.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/** Seuil Memory Echo (prod) — connexions sous ce score ne sont pas proposées. */
export const SEMANTIC_SIMILARITY_FLOOR = 0.75
export const SEMANTIC_SIMILARITY_FLOOR_DEMO = 0.5
/** Ratio 0 (seuil) → 1 (identique), pour étaler laffichage au-dessus du seuil. */
export function semanticProximityRatio(
similarity: number,
floor = SEMANTIC_SIMILARITY_FLOOR,
): number {
const clamped = Math.max(floor, Math.min(1, similarity))
if (floor >= 1) return 1
return (clamped - floor) / (1 - floor)
}
/** Pourcentage « proximité » affiché (0100), étalé entre le seuil et 100 %. */
export function semanticProximityPercent(
similarity: number,
floor = SEMANTIC_SIMILARITY_FLOOR,
): number {
return Math.round(semanticProximityRatio(similarity, floor) * 100)
}
/** Rayon orbite : plus la proximité est forte, plus le nœud est proche du centre. */
export function semanticOrbitRadius(
similarity: number,
floor = SEMANTIC_SIMILARITY_FLOOR,
): number {
const MIN_R = 34
const MAX_R = 94
const t = semanticProximityRatio(similarity, floor)
return MAX_R - t * (MAX_R - MIN_R)
}