> ## Documentation Index
> Fetch the complete documentation index at: https://docs.syntheo.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Paquets TypeScript

> Rôle, exports, consommateurs et pages de documentation concernées pour chaque paquet de packages/* et pour les ressources destinées aux agents.

Cette page cartographie les paquets TypeScript du workspace pnpm (`packages/*`). Pour la vue d'ensemble du monorepo et le flux principal, consultez [l'architecture](https://docs.syntheo.studio/architecture.md).

Tous les paquets sont privés (`"private": true`) et publiés sous la portée `@syntheo/*`. Ils ne sont pas distribués sur npm : seuls `apps/desktop` et d'autres paquets du workspace les consomment.

## Inventaire

| Paquet | Chemin | Rôle | Consommateurs | Pages de doc concernées |
| - | - | - | - | - |
| `@syntheo/changelog` | `packages/changelog` | Notes de version et rendu Markdown de la vue « Nouveautés ». | `apps/desktop` | aucune |
| `@syntheo/db` | `packages/db` | Schéma Drizzle de la base locale et fabrique `createDb`. | `apps/desktop` | [/data-and-privacy](https://docs.syntheo.studio/data-and-privacy.md), [/architecture](https://docs.syntheo.studio/architecture.md) |
| `@syntheo/db-react` | `packages/db-react` | Hooks React de requêtes réactives. | `apps/desktop` | aucune |
| `@syntheo/db-runtime` | `packages/db-runtime` | Contrats de types du transport de base de données. | `db`, `db-react`, `db-tauri` | aucune |
| `@syntheo/db-tauri` | `packages/db-tauri` | Transport Tauri vers le plugin `plugins/db`. | `apps/desktop` | aucune |
| `@syntheo/design-system` | `packages/design-system` | Jetons de design et palettes de couleurs. | `apps/desktop`, `ui` | aucune |
| `@syntheo/editor` | `packages/editor` | Éditeur ProseMirror des notes, du chat et des invites. | `apps/desktop` | [/notes](https://docs.syntheo.studio/notes.md), [/chat](https://docs.syntheo.studio/chat.md), [/meetings](https://docs.syntheo.studio/meetings.md) |
| `@syntheo/provider-validation` | `packages/provider-validation` | Validation des adresses et des identifiants des serveurs d'inférence. | `apps/desktop` | [/ai-setup](https://docs.syntheo.studio/ai-setup.md), [/offline](https://docs.syntheo.studio/offline.md), [/security](https://docs.syntheo.studio/security.md) |
| `@syntheo/store` | `packages/store` | Schémas Zod partagés (fournisseurs, modèles, transcription, chat). | `apps/desktop`, `editor` | [/ai-setup](https://docs.syntheo.studio/ai-setup.md), [/customize-summaries](https://docs.syntheo.studio/customize-summaries.md), [/chat](https://docs.syntheo.studio/chat.md) |
| `@syntheo/ui` | `packages/ui` | Composants d'interface (shadcn/Radix), icônes, configuration Tailwind. | `apps/desktop`, `editor` | aucune |
| `@syntheo/utils` | `packages/utils` | Utilitaires : classes CSS, dates, dossiers, onglets de session, éligibilité au compte rendu. | `apps/desktop`, `editor`, `ui`, `changelog` | [/meetings](https://docs.syntheo.studio/meetings.md), [/notes](https://docs.syntheo.studio/notes.md) |

## Graphe de dépendances internes

Les dépendances ci-dessous proviennent des champs `dependencies` des `package.json`.

| Paquet | Dépend de |
| - | - |
| `changelog` | `utils` |
| `db` | `db-runtime` |
| `db-react` | `db-runtime` |
| `db-tauri` | `db-runtime`, plugin `@syntheo/plugin-db` (`plugins/db`) |
| `editor` | `store`, `ui`, `utils`, plugin `@syntheo/plugin-opener2` (`plugins/opener2`) |
| `ui` | `design-system`, `utils` |
| `db-runtime`, `design-system`, `provider-validation`, `store`, `utils` | aucun paquet du workspace |

Pour les plugins Tauri cités, consultez [les plugins](https://docs.syntheo.studio/code/plugins.md).

## Couche d'accès aux données

Quatre paquets forment la pile d'accès à la base SQLite côté TypeScript. L'application les assemble dans `apps/desktop/src/db/index.ts`.

### `@syntheo/db-runtime`

* Chemin : `packages/db-runtime`
* Rôle : définit les contrats de transport, sans implémentation.
* API principale : types `DrizzleProxyClient`, `LiveQueryClient`, `TransactionClient`, `QueryEvent`, `ProxyQueryMethod` (`run`, `all`, `get`, `values`), `Unsubscribe`.
* Dépendances internes : aucune.
* Pages de doc concernées : aucune.

### `@syntheo/db`

* Chemin : `packages/db`
* Rôle : adaptateur Drizzle mince au-dessus d'un client `DrizzleProxyClient` (voir `packages/db/AGENTS.md`).
* API principale : `createDb(client)`, le schéma exporté par `./schema` et les helpers Drizzle réexportés (`eq`, `and`, `or`, `desc`, `asc`, `sql`, `count`, `max`, `ne`).
* Tables déclarées dans `packages/db/src/schema.ts` : `sessions`, `session_documents`, `transcripts`, `session_participants`, `action_items`, `session_attachments`, `humans`, `organizations`, `workspaces`, `folders`, `folder_attachments`, `tags`, `session_tags`, `entity_mentions`, `chat_groups`, `chat_messages`, `daily_notes`, `templates`, `app_settings`, `synced_preferences`, ainsi que des tables de connexion de bibliothèque locale, d'état des pièces jointes et de migration d'import.
* Dépendances internes : `db-runtime`.
* Pages de doc concernées : [/data-and-privacy](https://docs.syntheo.studio/data-and-privacy.md) (ce qui est stocké localement), [/architecture](https://docs.syntheo.studio/architecture.md) (stockage local).

> [!WARNING]
>
> Le schéma Drizzle ne définit pas le comportement produit. Ne documentez pas une fonctionnalité à partir d'une table, et ne demandez jamais aux utilisateurs ou aux agents de lire la base SQLite directement.

### `@syntheo/db-react`

* Chemin : `packages/db-react`
* Rôle : relie les requêtes réactives à React.
* API principale : `createUseLiveQuery(client)` et `createUseDrizzleLiveQuery(client)`.
* Dépendances internes : `db-runtime`.
* Pages de doc concernées : aucune.

### `@syntheo/db-tauri`

* Chemin : `packages/db-tauri`
* Rôle : implémente le transport via les commandes et la souscription du plugin Tauri `plugins/db`.
* API principale : `tauriLiveQueryClient` (à la fois `LiveQueryClient` et `DrizzleProxyClient`) et `tauriTransactionClient`.
* Dépendances internes : `db-runtime`, `@syntheo/plugin-db`.
* Pages de doc concernées : aucune.

## `@syntheo/editor`

* Chemin : `packages/editor`
* Rôle : éditeur riche basé sur ProseMirror, utilisé pour le corps des notes, la saisie du chat et les invites.
* Dépendances internes : `store`, `ui`, `utils`, `@syntheo/plugin-opener2`.
* Pages de doc concernées : [/notes](https://docs.syntheo.studio/notes.md), [/chat](https://docs.syntheo.studio/chat.md), [/meetings](https://docs.syntheo.studio/meetings.md).

Le paquet n'a pas d'export racine ; chaque sous-chemin est un point d'entrée.

| Export | Contenu | Usage dans `apps/desktop` |
| - | - | - |
| `./note` | Éditeur de note : schéma, raccourcis clavier, collaboration, pièces jointes portables, mise en page du titre. | oui |
| `./markdown` | Schéma, analyseur et sérialiseur Markdown. | oui (import le plus fréquent) |
| `./chat` | Éditeur de saisie du chat et limites de pièces jointes. | oui |
| `./prompt` | Éditeur d'invite. | oui |
| `./plugins` | Plugins ProseMirror : liens automatiques, hashtags, presse-papiers, collage, recherche, ancres de commentaires, identité des tâches, espace réservé. | oui |
| `./node-views` | Vues de nœuds : images, pièces jointes, mentions, cases de tâche, liens d'application. | oui |
| `./widgets` | Barre de mise en forme, mentions, commande slash. | oui |
| `./tasks`, `./task-storage` | Modèle et stockage des tâches dans les notes. | oui |
| `./app-link` | Reconnaissance des liens Atlassian, Discord, Figma, GitHub, Google, Linear, Notion et Slack. | oui |
| `./comments` | Ancrage des commentaires dans le texte. | non importé par l'application à ce jour |
| `./styles.css` | Styles ProseMirror. | oui |

Le fichier `packages/editor/daily/cfm.md` est une note de conception héritée (« Char-Flavored-Markdown ») ; aucun code ne l'importe.

## `@syntheo/store`

* Chemin : `packages/store`
* Rôle : schémas Zod partagés entre l'application et l'éditeur, et helpers de conversion vers le stockage.
* API principale : `templateSectionSchema`, `chatMessageStatusSchema`, `taskStatusSchema`, `wordSchema`, `speakerHintSchema`, `aiProviderSchema` (types `stt` et `llm`), `jsonObject`, type `ToStorageType`. Exports `.`, `./schema` et `./shared`.
* Dépendances internes : aucune.
* Consommateurs dans `apps/desktop` : modèles de compte rendu (`src/templates/*`), connexions STT et LLM (`src/stt/*`, `src/ai/hooks/useLLMConnection.ts`), messages de chat persistés (`src/chat/store/persisted-messages.ts`).
* Pages de doc concernées : [/ai-setup](https://docs.syntheo.studio/ai-setup.md) (champs d'un fournisseur), [/customize-summaries](https://docs.syntheo.studio/customize-summaries.md) (sections de modèle), [/chat](https://docs.syntheo.studio/chat.md).

## `@syntheo/provider-validation`

* Chemin : `packages/provider-validation`
* Rôle : valide l'adresse d'un serveur d'inférence et vérifie ses identifiants avant de l'enregistrer.
* API principale : `validateProviderBaseUrl`, `verifyProviderCredentials`, `isPrivateHost`, `usesDeferredProviderAuthentication`, `providerCredentialIdentity`, classe `ProviderCredentialError`, type `ProviderCredential`.
* Dépendances internes : aucune (dépendance externe `js-sha256`).
* Consommateurs dans `apps/desktop` : `src/settings/providers.ts` et les cartes de connexion sous `src/settings/ai/*`.
* Pages de doc concernées : [/ai-setup](https://docs.syntheo.studio/ai-setup.md), [/offline](https://docs.syntheo.studio/offline.md), [/security](https://docs.syntheo.studio/security.md). Vérifiez ces pages si les règles d'adresse (HTTPS, hôtes privés) ou d'authentification changent.

## `@syntheo/utils`

* Chemin : `packages/utils`
* Rôle : utilitaires sans dépendance au workspace.
* Exports :
  * `.` : `cn` (fusion de classes Tailwind), réexport de `date-fns` et `TZDate`, `safeParseDate`, `parseEventInstant`, `safeFormat`.
  * `./folders` : `normalizeFolderPath`, `folderDisplayName`, `collectFolderPaths`, `folderPathMatchesFilter`, `childFolderPath`, `ancestorFolderPaths`.
  * `./session` : onglets de l'éditeur de session (`computeCurrentNoteTab`, `createEditorTabs`) et documents de compte rendu (`hasSummaryContent`, `defaultSummaryDocumentId`, `resolveSummaryDocument`, `visibleSummaryDocuments`).
  * `./summary-eligibility` : `getSummaryEligibility`, seuils `MIN_WORDS_FOR_SUMMARY` (5) et `MIN_TRANSCRIPT_CHARACTERS_FOR_SUMMARY` (160).
* Pages de doc concernées : [/meetings](https://docs.syntheo.studio/meetings.md) (déclenchement du compte rendu), [/notes](https://docs.syntheo.studio/notes.md) (dossiers).

## Interface et design

### `@syntheo/design-system`

* Chemin : `packages/design-system`
* Rôle : jetons de design en TypeScript et en CSS.
* API principale : `PALETTE_IDS` (`cha`, `fuji`, `enji`), `DEFAULT_PALETTE` (`cha`), `isPaletteId`, `DesignPalettes`, `DesignColors`, `DesignSpacing`, `DesignRadius`, `DesignTypography`, `DesignControl`, feuille `./tokens.css`. Le dossier `assets/brand` contient les ressources de marque.
* Dépendances internes : aucune.
* Consommateurs : `ui`, `apps/desktop` (dont `src/settings/appearance/palette.tsx`).
* Pages de doc concernées : aucune. Aucune page ne décrit les palettes d'apparence à ce jour.

### `@syntheo/ui`

* Chemin : `packages/ui`
* Rôle : bibliothèque de composants partagée (configuration shadcn dans `components.json`).
* API principale : `./components/ui/*` (accordéon, bouton, carte, case à cocher, commande, dialogue, menu déroulant, popover, sélecteur, toast, info-bulle, etc.), `./components/*` (avatar, icônes, logo), `./hooks/*` (`use-mount-effect`, `use-squircle`), `./lib/*`, `./globals.css`, `./tailwind.config`, `./postcss.config`.
* Dépendances internes : `design-system`, `utils`.
* Pages de doc concernées : aucune.

## `@syntheo/changelog`

* Chemin : `packages/changelog`
* Rôle : contient les notes de version (`content/desktop/<version>.md`, une par version) et les rend dans l'application.
* API principale : `ChangelogContent`, `changelogComponents`, `parseFrontmatter`, `processContent`. Export `./process` pour le traitement seul.
* Dépendances internes : `utils`.
* Consommateurs : `apps/desktop/src/changelog/*`. L'application lit la dernière version via un module virtuel Vite (`virtual:changelog`) et télécharge les versions plus anciennes.
* Pages de doc concernées : aucune. Le site Mintlify n'a pas de page de notes de version.

## Ressources pour les agents

Trois emplacements portent la même compétence (skill) agent. Un seul est rédigé à la main.

| Chemin | Rôle |
| - | - |
| `skills/syntheo/` | Source canonique : `SKILL.md` et les références `references/cli.md`, `references/mcp.md`, `references/errors.md`, `references/setup.md`. |
| `agent-plugins/syntheo/` | Plugin agent distribué. Contient une copie miroir de `skills/syntheo/` sous `skills/syntheo/`, `mcp.json` (serveur MCP `syntheo mcp` en stdio), les manifestes `plugin.json`, `.claude-plugin/`, `.codex-plugin/`, `.cursor-plugin/`, et le `LICENSE`. Les marketplaces `.claude-plugin/marketplace.json`, `.cursor-plugin/marketplace.json` et `.agents/plugins/marketplace.json` à la racine pointent vers ce dossier. |
| `docs/skill.md` | Version publique servie par Mintlify. Identique à `skills/syntheo/SKILL.md`, sauf que les liens `references/*.md` deviennent des URL du site (`/reference/cli`, `/reference/mcp`, `/reference/errors`, `/installation`). |

Le script `scripts/publish-syntheo-skill.mjs` génère `docs/skill.md` et les miroirs de `agent-plugins/syntheo/` à partir de `skills/syntheo/`. Avec `--check`, il échoue si l'une des copies a dérivé. Modifiez donc toujours `skills/syntheo/`, puis relancez le script.

Le contenu de la skill dépend du contrat de la CLI (`apps/cli/src/cli.rs`) et du serveur MCP (`apps/cli/src/mcp/`).

Pages de doc concernées : [/agents/overview](https://docs.syntheo.studio/agents/overview.md), [/agents/skills](https://docs.syntheo.studio/agents/skills.md), [/agents/cli](https://docs.syntheo.studio/agents/cli.md), [/agents/mcp](https://docs.syntheo.studio/agents/mcp.md), [/reference/cli](https://docs.syntheo.studio/reference/cli.md), [/reference/mcp](https://docs.syntheo.studio/reference/mcp.md), [/reference/errors](https://docs.syntheo.studio/reference/errors.md), [/installation](https://docs.syntheo.studio/installation.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.