packages/*). Pour la vue d’ensemble du monorepo et le flux principal, consultez l’architecture.
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
Graphe de dépendances internes
Les dépendances ci-dessous proviennent des champsdependencies des package.json.
Pour les plugins Tauri cités, consultez les plugins.
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 dansapps/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(voirpackages/db/AGENTS.md). - API principale :
createDb(client), le schéma exporté par./schemaet 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 (ce qui est stocké localement), /architecture (stockage local).
@syntheo/db-react
- Chemin :
packages/db-react - Rôle : relie les requêtes réactives à React.
- API principale :
createUseLiveQuery(client)etcreateUseDrizzleLiveQuery(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 foisLiveQueryClientetDrizzleProxyClient) ettauriTransactionClient. - 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, /chat, /meetings.
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(typessttetllm),jsonObject, typeToStorageType. Exports.,./schemaet./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 (champs d’un fournisseur), /customize-summaries (sections de modèle), /chat.
@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, classeProviderCredentialError, typeProviderCredential. - Dépendances internes : aucune (dépendance externe
js-sha256). - Consommateurs dans
apps/desktop:src/settings/providers.tset les cartes de connexion soussrc/settings/ai/*. - Pages de doc concernées : /ai-setup, /offline, /security. 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 dedate-fnsetTZDate,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, seuilsMIN_WORDS_FOR_SUMMARY(5) etMIN_TRANSCRIPT_CHARACTERS_FOR_SUMMARY(160).
- Pages de doc concernées : /meetings (déclenchement du compte rendu), /notes (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 dossierassets/brandcontient les ressources de marque. - Dépendances internes : aucune.
- Consommateurs :
ui,apps/desktop(dontsrc/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./processpour 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.
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, /agents/skills, /agents/cli, /agents/mcp, /reference/cli, /reference/mcp, /reference/errors, /installation.