# Inventaire initial des composants KSP ## Objet Ce document maintient l'inventaire synthétique des composants retenus ou pressentis. Les numéros de release précis restent soumis au sizing de chaque session. ## Statuts - `Stable` — implémenté et publié ; - `Implémenté` — présent et techniquement validé, en attente de publication stable ; - `Retenu` — composant/contrat décidé ; - `Pressenti` — direction décidée mais périmètre exact à confirmer ; - `À la demande` — créé seulement au premier besoin réel ; - `Non retenu` — explicitement écarté pour l'instant. ## Inventaire synthétique | Domaine | Composant | Type | Statut | Première cible actuelle | Mission | |-------------------------|------------------------------------------|---------------|--------------|---------------------------------|---------------------------------------------------------------------------------------------| | Core | `ksp-core-lib` | lib | Stable | `0.1.1` | Error/Result, Program IDs et primitives fondamentales | | Logging | `ksp-logging-lib` | lib | Stable | `0.1.2` | façade unique tracing KSP | | Config | `ksp-config-lib` | lib | Stable | `0.1.3` | documents, profils, env et persistence Config | | Config Desk | `ksp-app-config-desk` | app | Stable | `0.1.4` | validation/management Config | | On-chain HTTP | `ksp-onchain-transport-lib` | lib | Stable | `0.2.1`–`0.2.4` | HTTP standard complet : 52/52 current + 14/14 historical | | Wallet | `ksp-wallet-lib` | lib | Stable | `0.2.5` | `.kspwallet`, VIEW/OWNER, secrets, signature, import/export | | Wallet Desk | `ksp-app-wallet-desk` | app | Stable | `0.2.6` | Wallet + Config + balance HTTP + projection SOL/USD auxiliaire | | Wallet V2 | `ksp-wallet-lib` | lib | Stable | `0.2.6` | wire/runtime V2 + API default/versionnée + migration explicite | | Standard WS | `ksp-onchain-transport-lib` | lib | Stable | `0.2.7` | WebSocket Solana 18/18, sessions/subscriptions bornées | | Helius WS | `ksp-onchain-transport-lib` | lib | Stable | `0.2.8` | LaserStream WS : 7 standard + transaction, actor partagé | | Yellowstone | `ksp-onchain-transport-lib` | lib | Stable | `0.2.9` | client gRPC standard/provider-neutral | | Off-chain price | `ksp-offchain-transport-lib` | lib | Stable | `0.2.11` | prix SOL/USD multi-provider, limits et availability | | SOL Prices Desk | `ksp-app-solprices-desk` | app | Stable | `0.2.12` | HID provider-agnostic pour visualisation/refresh prix | | Interface passive | `ksp-interface-lib` | lib | Stable | `0.2.13` | façade wire + contrats passifs partagés, dont événements acquisition provider-neutral | | Program API | `ksp-program-api` | API | Stable | `0.2.14` | contrats extensibles Program | | Program impl. | `ksp-program-lib` | lib | Retenu | vertical slices ultérieurs | implementations Program officielles | | Program extension | `ksp-program--lib` | lib externe | À la demande | dès besoin | implementation externe de `ksp-program-api` | | Store API | `ksp-store-api` | API | Stable | `0.3.1` | RAW transaction/account, observations, queries, outcomes, rétention et capabilities backend | | Store runtime | `ksp-store-lib` | lib | Stable | `0.3.2`–`0.3.4` | façade backend-neutral et conformance RAW 10/10 | | Store PostgreSQL | `ksp-store-postgres-lib` | lib | Stable | `0.3.2`–`0.3.4` | backend référence : fondation, RawTransaction et RawAccountState | | Job lifecycle | `ksp-job-api` | API | Implémenté | `0.3.6` | identité/lifecycle/annulation/notifications latest-value runtime-neutral | | Backfill | `ksp-job-backfill-lib` | lib | Implémenté | `0.3.6` | backfill `RawTransaction` borné via Transport observé + Store, checkpoint et runtime | | Backfill Desk | `ksp-app-backfill-desk` | app | Implémenté | `0.3.7` | Start/monitoring/Cancel/Resume in-session du backfill RAW via façades KSP | | Worker lifecycle | `ksp-worker-api` | API | Retenu | fin couche RAW | lifecycle des services continus | | RAW worker | `ksp-worker-raw-retriever` ou nom révisé | worker | Retenu | fin couche RAW | acquisition live vers RAW | | CORE processor | nom à fixer | processor/lib | Retenu | couche CORE | normalisation Solana générique RAW -> CORE | | CORE worker | nom à fixer | worker | Retenu | fin couche CORE | backlog RAW -> CORE continu | | Materializer API | `ksp-materializer-api` | API | Retenu | premier groupe DECODE | contrats extensibles matérialisation | | Materializer impl. | `ksp-materializer-lib` | lib | Retenu | premier groupe DECODE | implementations officielles communes | | Execution policy | `ksp-execution-policy-api` | API | Retenu | premier vrai besoin execution | décision/safety multi-contexte | | Execution orchestration | `ksp-execution-lib` | lib | Retenu | premier vrai cycle execution | Program + policy + Wallet + transport | | Scenarios | `ksp-scenario--lib` | lib | Retenu | vertical slices | validation métier/devnet par groupe | | Scenario API | `ksp-scenario-api` | API | Non retenu | — | norme souple avant trait commun | | Market Desk | `ksp-app-market-desk` | app | Pressenti | après Meteora/Raydium/Pump/Orca | tokens, pools, trades, liquidity, price, OHLC | | Trading Intelligence | noms à définir | libs/jobs | Pressenti | après données stables | features/signaux/anomalies/ML | ## Contrats séparés retenus ```text ksp-program-api ksp-materializer-api ksp-store-api ksp-worker-api ksp-job-api ksp-execution-policy-api ``` Pas de crates séparées actuellement pour : ```text ksp-interface-api ksp-wallet-api ksp-onchain-transport-api ksp-offchain-transport-api ksp-scenario-api ksp-job-control-lib ksp-data-api ``` ## Transport `ksp-onchain-transport-lib` doit couvrir l'intégralité des opérations documentées de la surface ciblée par chaque release. `0.2.1` stabilise la foundation HTTP et quatre wrappers typés canari, `0.2.2` ajoute 22 wrappers Accounts/Tokens/Cluster et `0.2.3` stabilise les 11 Transactions. La release stable `0.2.4` ajoute les 10 Blocks + 5 Economics et atteint 52/52 méthodes HTTP courantes typées, avec 14/14 historiques Deprecated/Removed conservées pour compliance. Les statuts deprecated/obsolete encore fonctionnels et unstable/experimental restent exposés avec warning runtime KSP. La release stable `0.2.7` ajoute le moteur WebSocket Solana standard complet : 9 familles subscribe + 9 unsubscribe typées, sessions physiques explicites, subscriptions logiques, reconnect/resubscribe/backpressure/shutdown bornés et Config Transport V2, sans second composant réseau ni dépendance inverse vers Config. La Config standard Transport appartient à `ksp-config-lib`, qui adapte vers les settings publics du transport ; le transport ne dépend jamais de Config. Les WebSockets supportent plusieurs sessions pour un même endpoint URL, mais un pool/scheduler automatique n'est créé qu'après besoin démontré. Les providers Yellowstone spécifiques restent des extensions futures ; le contrat standard est provider-neutral. `ksp-offchain-transport-lib` ouvre en `0.2.11` une première surface SOL/USD multi-provider. La crate possède les adapters `reqwest`, les capacités/rate limits, l’état runtime et le refresh individuel/multiple. Elle ne dépend pas de Config et n’expose aucun wire provider comme contrat de l’application. `ksp-app-solprices-desk`, prévu en `0.2.12`, consomme exclusivement cette surface générique et reste une HID sans connaissance provider. ## Wallet Le format natif est `.kspwallet`. Les anciens temporary wallets JSON ne sont pas migrés. `WalletPolicy` est exclu du Wallet et relève de l'execution policy. Import/export reste extensible ; les formats supplémentaires sont suivis dans `docs/IDEAS.md`. ## Data plane ```text RAW -> CORE -> DECODE -> SPECIALIZED ``` - RAW : acquisition replayable ; - CORE : normalisation blockchain générique sans decoder Program ; - DECODE : interpretation Program + matérialisation générique/journal ; - SPECIALIZED : projections queryables de domaine. ## Progression des processors RAW et CORE sont complétés couche par couche avec jobs/workers/apps utiles. À partir de DECODE, progression verticale par groupe : ```text wire -> decode -> materialize -> specialized -> prepare -> policy -> execute -> scenario ``` Groupes prioritaires : ```text Solana Core Programs SPL token/trading token metadata Anchor Meteora Raydium Pump Orca Market Desk V1 Jupiter/OKX routing Market Desk V2 trading-adjacent general decoding ``` Meteora vaults, Pump fees et autres satellites nécessaires restent dans leur groupe. ## Applications spécialisées Les applications servent de validations/exploitations réelles sans absorber la logique des bibliothèques. Market Desk est progressive : V1 après les DEX prioritaires, puis enrichissement routing après Jupiter/OKX. ## Questions restantes - nom exact de Backfill Desk ; - nécessité future d'un pool automatique WS ; - types exacts `ksp-materializer-api` lors de l'ouverture DECODE ; - nom/packaging précis du premier RAW worker et du CORE normalizer ; - granularité des workers DECODE/SPECIALIZED par groupe.