dsh-manage-session 0.4.8 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.ja.md +242 -207
- package/CHANGELOG.ko.md +242 -207
- package/CHANGELOG.md +341 -301
- package/INSTALL.ja.md +179 -164
- package/INSTALL.ko.md +179 -164
- package/INSTALL.md +179 -164
- package/INSTALL.zh.md +179 -164
- package/LICENSE +21 -21
- package/README.de.md +120 -0
- package/README.en.md +12 -0
- package/README.es.md +120 -0
- package/README.fr.md +120 -0
- package/README.it.md +120 -0
- package/README.ja.md +12 -0
- package/README.ko.md +12 -0
- package/README.md +14 -0
- package/README.ru.md +120 -0
- package/cordis.patch.yml +11 -11
- package/dsh.plugin.json +22 -22
- package/lib/client.js +462 -8
- package/package.json +12 -12
- package/src/client/card.tsx +150 -150
- package/src/client/history-panel.tsx +319 -319
- package/src/client/index.ts +354 -337
- package/src/client/locales.ts +476 -1
- package/src/config.ts +33 -33
- package/src/host/health/attribution.ts +118 -118
- package/src/host/health/lossless.ts +128 -128
- package/src/host/health/source-kind.ts +350 -350
- package/src/host/history/archive-source.ts +202 -202
- package/src/host/history/archive.ts +194 -194
- package/src/host/history/purge.ts +370 -370
package/src/client/locales.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* 会话管家的多语言文案(zh / en / fr / de / it / ru / es)。
|
|
3
3
|
*
|
|
4
4
|
* 硬约束:本文件**不得出现「搜索」二字** —— 搜索/索引属 dsh-search-index 那一片。
|
|
5
5
|
* 文案走 `translate(t, key, params)`,字典由官方 locale 服务注册(缺失时回退内置 zh)。
|
|
@@ -202,6 +202,481 @@ export const en: Record<LocaleKey, string> = {
|
|
|
202
202
|
'health.ago.days': '{n} d ago',
|
|
203
203
|
}
|
|
204
204
|
|
|
205
|
+
/** Dictionnaire français (mêmes clés). */
|
|
206
|
+
export const fr: Record<LocaleKey, string> = {
|
|
207
|
+
'card.title': 'Session Steward',
|
|
208
|
+
'card.desc': 'Fichiers d’historique · Bilan de santé',
|
|
209
|
+
'card.enabled': 'Activer Session Steward',
|
|
210
|
+
'card.enabled.desc': 'Désactivé, aucun service n’est enregistré et l’entrée de la barre latérale disparaît.',
|
|
211
|
+
'card.history': 'Fichiers d’historique des sessions',
|
|
212
|
+
'card.history.desc': 'Consultation et nettoyage des archives (Maison de retraite). Désactivé, les routes d’historique et l’onglet disparaissent.',
|
|
213
|
+
'card.health': 'Bilan de santé',
|
|
214
|
+
'card.health.desc': 'Bilan → Ordonnance → Sortie. Désactivé, les routes de santé et l’onglet disparaissent.',
|
|
215
|
+
'card.readonly': 'Cette session ne peut pas modifier les réglages (montage en lecture seule).',
|
|
216
|
+
'card.unavailable': 'Service de réglages indisponible ; impossible de lire la configuration.',
|
|
217
|
+
'family.title': 'Réglages des plugins Screwdriver',
|
|
218
|
+
|
|
219
|
+
'panel.title': 'Session Steward',
|
|
220
|
+
'panel.tab.history': 'Maison de retraite',
|
|
221
|
+
'panel.tab.health': 'Bilan',
|
|
222
|
+
'panel.close': 'Fermer',
|
|
223
|
+
'panel.untitled': '(sans titre)',
|
|
224
|
+
|
|
225
|
+
'history.loading': 'Chargement des sessions archivées…',
|
|
226
|
+
'history.empty': 'L’ensemble d’archives est vide.',
|
|
227
|
+
'history.edit': 'Modifier',
|
|
228
|
+
'history.done': 'Terminé',
|
|
229
|
+
'history.selectAll': 'Tout sélectionner',
|
|
230
|
+
'history.unselectAll': 'Tout désélectionner',
|
|
231
|
+
// Deux verbes délibérément distincts — non interchangeables :
|
|
232
|
+
// « Annuler l’archivage » ne touche que le tableau d’archives (réversible) ;
|
|
233
|
+
// « Purger les fichiers d’archive » supprime réellement (irréversible).
|
|
234
|
+
'history.unarchive': 'Annuler l’archivage ({n})',
|
|
235
|
+
'history.unarchiving': 'Annulation…',
|
|
236
|
+
'history.purge': 'Purger les fichiers d’archive ({n}) · libère {size}',
|
|
237
|
+
'history.purging': 'Purge…',
|
|
238
|
+
'history.editingHint': 'Mode édition : cochez des sessions puis choisissez — « Annuler l’archivage » les retire seulement du tableau d’archives officiel (réversible ; elles reviennent dans la barre latérale après un redémarrage) ; « Purger les fichiers d’archive » supprime réellement la transcription et le cache de projection du disque (irréversible).',
|
|
239
|
+
'history.restartHint': '{removed} id retiré(s) du tableau d’archives ({remaining} restant(s)). **Redémarrez DSH maintenant** : tant que l’hôte n’est pas quitté, toute modification d’archive ou d’espace de travail réécrit tout l’instantané mémoire dans le fichier et annule cette opération.',
|
|
240
|
+
'history.pendingRestart': '{n} id archivé(s) sont encore vivants dans la mémoire de l’hôte : la liste suit le fichier de stockage (ils y ont déjà disparu), mais leurs sessions restent masquées dans la barre latérale jusqu’au redémarrage de DSH.',
|
|
241
|
+
'history.count': '{n} au total · {size} sur disque',
|
|
242
|
+
'history.size': 'transcription {t} · cache {c}',
|
|
243
|
+
'history.sizeUnknown': 'aucune entité sur disque',
|
|
244
|
+
'history.source.registry': 'Source : registre d’archives de l’hôte',
|
|
245
|
+
'history.source.storage-file': 'Source : fichier de stockage',
|
|
246
|
+
'history.source.none': 'Archives illisibles depuis les deux sources',
|
|
247
|
+
'history.confirmUnarchive': 'Annuler l’archivage de ces {n} session(s) ?\n\n{summary}\n\nSeul le tableau d’archives est modifié (sauvegarde automatique) ; rien sur le disque n’est touché. Après un redémarrage de DSH, ces sessions retrouvent leurs espaces de travail.',
|
|
248
|
+
'history.confirmPurge': 'Purger les fichiers sur disque de ces {n} session(s) archivée(s) ?\n\n{summary}\n\nEnviron {size} seront libérés.\nCeci supprime : le répertoire des transcriptions (copies au vieux format comprises) et le cache de projection par session, et les retire du tableau d’archives et des tables d’appartenance aux espaces de travail.\n\n**Opération irréversible — les sessions seront définitivement perdues.**',
|
|
249
|
+
'history.purgeResult': '{purged} session(s) archivée(s) purgée(s), {size} libéré(s). Redémarrez DSH pour qu’elles disparaissent totalement.',
|
|
250
|
+
'history.purgePartial': '{purged} purgée(s), {size} libéré(s) ; {failed} échec(s) (détails ci-dessous).',
|
|
251
|
+
'history.purgeFailures': 'Détail des échecs',
|
|
252
|
+
|
|
253
|
+
'health.scan': 'Lancer le bilan',
|
|
254
|
+
'health.scanning': 'Bilan en cours…',
|
|
255
|
+
'health.progress': '{done}/{total} · {sec}s écoulées',
|
|
256
|
+
'health.empty': 'Aucune session problématique trouvée.',
|
|
257
|
+
'health.clean': 'Tous les contrôles sont passés.',
|
|
258
|
+
'health.level.ok': 'ok',
|
|
259
|
+
'health.level.warn': 'alerte',
|
|
260
|
+
'health.level.skipped': 'Non vérifié',
|
|
261
|
+
'health.level.fail': 'échec',
|
|
262
|
+
'health.priority.high': 'Prioritaire',
|
|
263
|
+
'health.gate.generation': 'Artefact de génération',
|
|
264
|
+
'health.gate.log-integrity': 'Intégrité des journaux',
|
|
265
|
+
'health.gate.projection-cache': 'Cache de projection',
|
|
266
|
+
'health.gate.lossless-json': 'JSON sans perte',
|
|
267
|
+
'health.gate.cold-read': 'Reprise',
|
|
268
|
+
'health.gate.source-kind': 'Signature du plugin',
|
|
269
|
+
'health.attribution': 'Propriétaire',
|
|
270
|
+
'health.field': 'Champ',
|
|
271
|
+
'health.unknownOwner': 'propriétaire inconnu',
|
|
272
|
+
'health.phase.checkup': '1) Bilan',
|
|
273
|
+
'health.phase.prescribe': '2) Ordonnance',
|
|
274
|
+
'health.phase.discharge': '3) Sortie',
|
|
275
|
+
'health.repair': 'Appliquer la réparation réversible',
|
|
276
|
+
'health.repairing': 'Réparation…',
|
|
277
|
+
'health.sourceMigrate': 'Migrer les anciennes signatures',
|
|
278
|
+
'health.sourceMigrating': 'Migration…',
|
|
279
|
+
'health.sourceMigrated': '{n} lignes d’anciennes signatures migrées (sauvegarde : {backup})',
|
|
280
|
+
'health.sourceMigrateNone': 'Aucune ancienne signature à migrer',
|
|
281
|
+
'health.sourceMigrateFail': 'Échec de la migration : {error}',
|
|
282
|
+
'health.before': 'Avant',
|
|
283
|
+
'health.after': 'Après',
|
|
284
|
+
'health.quarantined': 'Cache de projection mis en quarantaine (se referme après un redémarrage de DSH)',
|
|
285
|
+
'health.commands': 'Commandes',
|
|
286
|
+
'health.copy': 'Copier',
|
|
287
|
+
'health.copied': 'Copié',
|
|
288
|
+
'health.detail': 'Détails',
|
|
289
|
+
'health.back': 'Retour',
|
|
290
|
+
|
|
291
|
+
'health.cache.hint': 'Résultat en cache · {ago}',
|
|
292
|
+
'health.cache.refresh': 'Actualiser',
|
|
293
|
+
'health.cache.corpusChanged': 'Corpus modifié ({was} → {now}) ; actualisation conseillée',
|
|
294
|
+
'health.ago.justNow': 'à l’instant',
|
|
295
|
+
'health.ago.minutes': 'il y a {n} min',
|
|
296
|
+
'health.ago.hours': 'il y a {n} h',
|
|
297
|
+
'health.ago.days': 'il y a {n} j',
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/** Deutsches Wörterbuch (gleiche Schlüssel). */
|
|
301
|
+
export const de: Record<LocaleKey, string> = {
|
|
302
|
+
'card.title': 'Session Steward',
|
|
303
|
+
'card.desc': 'Verlaufsdateien · Gesundheitscheck',
|
|
304
|
+
'card.enabled': 'Session Steward aktivieren',
|
|
305
|
+
'card.enabled.desc': 'Bei Deaktivierung wird kein Dienst registriert und der Seitenleisten-Eintrag verschwindet.',
|
|
306
|
+
'card.history': 'Sitzungsverlaufsdateien',
|
|
307
|
+
'card.history.desc': 'Archiv durchsehen und aufräumen (Altersheim). Bei Deaktivierung bleiben Verlaufsrouten und Tab weg.',
|
|
308
|
+
'card.health': 'Gesundheitscheck',
|
|
309
|
+
'card.health.desc': 'Untersuchung → Verordnung → Entlassung. Bei Deaktivierung bleiben Health-Routen und Tab weg.',
|
|
310
|
+
'card.readonly': 'Diese Sitzung kann die Einstellungen nicht ändern (schreibgeschützt eingebunden).',
|
|
311
|
+
'card.unavailable': 'Einstellungsdienst nicht verfügbar; Konfiguration nicht lesbar.',
|
|
312
|
+
'family.title': 'Screwdriver-Plugin-Einstellungen',
|
|
313
|
+
|
|
314
|
+
'panel.title': 'Session Steward',
|
|
315
|
+
'panel.tab.history': 'Altersheim',
|
|
316
|
+
'panel.tab.health': 'Check',
|
|
317
|
+
'panel.close': 'Schließen',
|
|
318
|
+
'panel.untitled': '(unbenannt)',
|
|
319
|
+
|
|
320
|
+
'history.loading': 'Archivierte Sitzungen werden geladen…',
|
|
321
|
+
'history.empty': 'Der Archivbestand ist leer.',
|
|
322
|
+
'history.edit': 'Bearbeiten',
|
|
323
|
+
'history.done': 'Fertig',
|
|
324
|
+
'history.selectAll': 'Alle auswählen',
|
|
325
|
+
'history.unselectAll': 'Auswahl aufheben',
|
|
326
|
+
// Zwei bewusst verschiedene Verben — nicht austauschbar:
|
|
327
|
+
// „Archivstatus aufheben“ ändert nur das Archiv-Array (umkehrbar);
|
|
328
|
+
// „Archivdateien löschen“ löscht wirklich (unumkehrbar).
|
|
329
|
+
'history.unarchive': 'Archivstatus aufheben ({n})',
|
|
330
|
+
'history.unarchiving': 'Wird aufgehoben…',
|
|
331
|
+
'history.purge': 'Archivdateien löschen ({n}) · gibt {size} frei',
|
|
332
|
+
'history.purging': 'Wird gelöscht…',
|
|
333
|
+
'history.editingHint': 'Bearbeitungsmodus: Sitzungen ankreuzen, dann eine von zwei Wahlen treffen – „Archivstatus aufheben“ entfernt sie nur aus dem offiziellen Archiv-Array (umkehrbar; sie kehren nach einem Neustart in die Seitenleiste zurück); „Archivdateien löschen“ löscht Transkript und Projektionscache wirklich von der Platte (unumkehrbar).',
|
|
334
|
+
'history.restartHint': '{removed} ID(s) aus dem Archiv-Array entfernt ({remaining} übrig). **Jetzt DSH neu starten**: Bis der Host beendet ist, schreibt jede Archiv- oder Workspace-Änderung den gesamten Speicherzustand zurück in die Datei und macht dies rückgängig.',
|
|
335
|
+
'history.pendingRestart': '{n} archivierte ID(s) leben noch im Host-Speicher: Die Liste folgt der Speicherdatei (dort sind sie schon weg), doch ihre Sitzungen bleiben bis zum DSH-Neustart in der Seitenleiste verborgen.',
|
|
336
|
+
'history.count': '{n} insgesamt · {size} auf der Platte',
|
|
337
|
+
'history.size': 'Transkript {t} · Cache {c}',
|
|
338
|
+
'history.sizeUnknown': 'nichts auf der Platte',
|
|
339
|
+
'history.source.registry': 'Quelle: Archiv-Registry des Hosts',
|
|
340
|
+
'history.source.storage-file': 'Quelle: Speicherdatei',
|
|
341
|
+
'history.source.none': 'Archivbestand aus beiden Quellen nicht lesbar',
|
|
342
|
+
'history.confirmUnarchive': 'Archivstatus dieser {n} Sitzung(en) aufheben?\n\n{summary}\n\nNur das Archiv-Array wird geändert (automatisches Backup); auf der Platte wird nichts angefasst. Nach einem DSH-Neustart kehren diese Sitzungen in ihre Workspaces zurück.',
|
|
343
|
+
'history.confirmPurge': 'Die Dateien auf der Platte dieser {n} archivierten Sitzung(en) endgültig löschen?\n\n{summary}\n\nEtwa {size} werden freigegeben.\nGelöscht werden: das Transkriptverzeichnis (einschließlich Kopien im alten Format) und der sitzungsweise Projektionscache, außerdem werden sie aus dem Archiv-Array und den Workspace-Zugehörigkeitstabellen entfernt.\n\n**Dies ist unumkehrbar – die Sitzungen sind unwiederbringlich verloren.**',
|
|
344
|
+
'history.purgeResult': '{purged} archivierte Sitzung(en) gelöscht, {size} freigegeben. DSH neu starten, damit sie ganz verschwinden.',
|
|
345
|
+
'history.purgePartial': '{purged} gelöscht, {size} freigegeben; {failed} fehlgeschlagen (Details unten).',
|
|
346
|
+
'history.purgeFailures': 'Fehlerdetails',
|
|
347
|
+
|
|
348
|
+
'health.scan': 'Check starten',
|
|
349
|
+
'health.scanning': 'Läuft…',
|
|
350
|
+
'health.progress': '{done}/{total} · {sec}s verstrichen',
|
|
351
|
+
'health.empty': 'Keine problematische Sitzung gefunden.',
|
|
352
|
+
'health.clean': 'Alle Prüfungen bestanden.',
|
|
353
|
+
'health.level.ok': 'ok',
|
|
354
|
+
'health.level.warn': 'Warnung',
|
|
355
|
+
'health.level.skipped': 'Nicht geprüft',
|
|
356
|
+
'health.level.fail': 'Fehler',
|
|
357
|
+
'health.priority.high': 'Priorität',
|
|
358
|
+
'health.gate.generation': 'Generierungsartefakt',
|
|
359
|
+
'health.gate.log-integrity': 'Log-Integrität',
|
|
360
|
+
'health.gate.projection-cache': 'Projektionscache',
|
|
361
|
+
'health.gate.lossless-json': 'Verlustfreies JSON',
|
|
362
|
+
'health.gate.cold-read': 'Fortsetzbarkeit',
|
|
363
|
+
'health.gate.source-kind': 'Plugin-Signatur',
|
|
364
|
+
'health.attribution': 'Eigentümer',
|
|
365
|
+
'health.field': 'Feld',
|
|
366
|
+
'health.unknownOwner': 'Eigentümer unbekannt',
|
|
367
|
+
'health.phase.checkup': '1) Untersuchung',
|
|
368
|
+
'health.phase.prescribe': '2) Verordnung',
|
|
369
|
+
'health.phase.discharge': '3) Entlassung',
|
|
370
|
+
'health.repair': 'Umkehrbare Reparatur anwenden',
|
|
371
|
+
'health.repairing': 'Wird repariert…',
|
|
372
|
+
'health.sourceMigrate': 'Alte Signaturen migrieren',
|
|
373
|
+
'health.sourceMigrating': 'Wird migriert…',
|
|
374
|
+
'health.sourceMigrated': '{n} alte Signaturzeilen migriert (Backup: {backup})',
|
|
375
|
+
'health.sourceMigrateNone': 'Keine alten Signaturzeilen zu migrieren',
|
|
376
|
+
'health.sourceMigrateFail': 'Migration fehlgeschlagen: {error}',
|
|
377
|
+
'health.before': 'Vorher',
|
|
378
|
+
'health.after': 'Nachher',
|
|
379
|
+
'health.quarantined': 'Projektionscache in Quarantäne (klappt nach einem DSH-Neustart wieder zu)',
|
|
380
|
+
'health.commands': 'Befehle',
|
|
381
|
+
'health.copy': 'Kopieren',
|
|
382
|
+
'health.copied': 'Kopiert',
|
|
383
|
+
'health.detail': 'Details',
|
|
384
|
+
'health.back': 'Zurück',
|
|
385
|
+
|
|
386
|
+
'health.cache.hint': 'Zwischengespeichertes Ergebnis · {ago}',
|
|
387
|
+
'health.cache.refresh': 'Aktualisieren',
|
|
388
|
+
'health.cache.corpusChanged': 'Korpus geändert ({was} → {now}); Aktualisierung empfohlen',
|
|
389
|
+
'health.ago.justNow': 'gerade eben',
|
|
390
|
+
'health.ago.minutes': 'vor {n} Min.',
|
|
391
|
+
'health.ago.hours': 'vor {n} Std.',
|
|
392
|
+
'health.ago.days': 'vor {n} T.',
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
/** Dizionario italiano (stesse chiavi). */
|
|
396
|
+
export const it: Record<LocaleKey, string> = {
|
|
397
|
+
'card.title': 'Session Steward',
|
|
398
|
+
'card.desc': 'File di cronologia · Controllo salute',
|
|
399
|
+
'card.enabled': 'Abilita Session Steward',
|
|
400
|
+
'card.enabled.desc': 'Quando disattivato, nessun servizio viene registrato e la voce della barra laterale scompare.',
|
|
401
|
+
'card.history': 'File di cronologia delle sessioni',
|
|
402
|
+
'card.history.desc': 'Consultazione e pulizia dell’archivio (Casa di riposo). Quando disattivato, rotte della cronologia e scheda spariscono.',
|
|
403
|
+
'card.health': 'Controllo salute',
|
|
404
|
+
'card.health.desc': 'Visita → Prescrizione → Dimissione. Quando disattivato, rotte della salute e scheda spariscono.',
|
|
405
|
+
'card.readonly': 'Questa sessione non può modificare le impostazioni (montaggio in sola lettura).',
|
|
406
|
+
'card.unavailable': 'Servizio impostazioni non disponibile; impossibile leggere la configurazione.',
|
|
407
|
+
'family.title': 'Impostazioni dei plugin Screwdriver',
|
|
408
|
+
|
|
409
|
+
'panel.title': 'Session Steward',
|
|
410
|
+
'panel.tab.history': 'Casa di riposo',
|
|
411
|
+
'panel.tab.health': 'Visita',
|
|
412
|
+
'panel.close': 'Chiudi',
|
|
413
|
+
'panel.untitled': '(senza titolo)',
|
|
414
|
+
|
|
415
|
+
'history.loading': 'Caricamento delle sessioni archiviate…',
|
|
416
|
+
'history.empty': 'L’insieme di archivi è vuoto.',
|
|
417
|
+
'history.edit': 'Modifica',
|
|
418
|
+
'history.done': 'Fatto',
|
|
419
|
+
'history.selectAll': 'Seleziona tutto',
|
|
420
|
+
'history.unselectAll': 'Deseleziona tutto',
|
|
421
|
+
// Due verbi deliberatamente distinti — non intercambiabili:
|
|
422
|
+
// «Annulla archiviazione» tocca solo l’array di archivio (reversibile);
|
|
423
|
+
// «Elimina i file d’archivio» cancella davvero (irreversibile).
|
|
424
|
+
'history.unarchive': 'Annulla archiviazione ({n})',
|
|
425
|
+
'history.unarchiving': 'Annullamento…',
|
|
426
|
+
'history.purge': 'Elimina i file d’archivio ({n}) · libera {size}',
|
|
427
|
+
'history.purging': 'Eliminazione…',
|
|
428
|
+
'history.editingHint': 'Modalità modifica: spunta le sessioni, poi scegli una delle due — «Annulla archiviazione» le rimuove solo dall’array di archivio ufficiale (reversibile; tornano nella barra laterale dopo un riavvio); «Elimina i file d’archivio» cancella davvero trascrizione e cache di proiezione dal disco (irreversibile).',
|
|
429
|
+
'history.restartHint': 'Rimossi {removed} id dall’array di archivio ({remaining} rimasti). **Riavvia subito DSH**: finché l’host non esce, qualsiasi modifica ad archivio o workspace riscrive l’intero snapshot di memoria nel file e annulla questa operazione.',
|
|
430
|
+
'history.pendingRestart': '{n} id archiviati sono ancora vivi nella memoria dell’host: l’elenco segue il file di archiviazione (lì sono già spariti), ma le loro sessioni restano nascoste nella barra laterale finché DSH non si riavvia.',
|
|
431
|
+
'history.count': '{n} in totale · {size} su disco',
|
|
432
|
+
'history.size': 'trascrizione {t} · cache {c}',
|
|
433
|
+
'history.sizeUnknown': 'nessuna entità su disco',
|
|
434
|
+
'history.source.registry': 'Origine: registro archivi dell’host',
|
|
435
|
+
'history.source.storage-file': 'Origine: file di archiviazione',
|
|
436
|
+
'history.source.none': 'Archivi illeggibili da entrambe le origini',
|
|
437
|
+
'history.confirmUnarchive': 'Annullare l’archiviazione di queste {n} sessioni?\n\n{summary}\n\nViene modificato solo l’array di archivio (backup automatico); il disco non viene toccato. Dopo un riavvio di DSH queste sessioni tornano nei loro workspace.',
|
|
438
|
+
'history.confirmPurge': 'Eliminare i file su disco di queste {n} sessioni archiviate?\n\n{summary}\n\nVerranno liberati circa {size}.\nVerranno eliminati: la directory delle trascrizioni (comprese le copie nel vecchio formato) e la cache di proiezione per sessione, e saranno rimosse dall’array di archivio e dalle tabelle di appartenenza ai workspace.\n\n**Operazione irreversibile: le sessioni non saranno recuperabili.**',
|
|
439
|
+
'history.purgeResult': 'Eliminate {purged} sessioni archiviate, liberati {size}. Riavvia DSH per farle scomparire del tutto.',
|
|
440
|
+
'history.purgePartial': 'Eliminate {purged}, liberati {size}; {failed} con errori (dettagli sotto).',
|
|
441
|
+
'history.purgeFailures': 'Dettagli degli errori',
|
|
442
|
+
|
|
443
|
+
'health.scan': 'Avvia la visita',
|
|
444
|
+
'health.scanning': 'Visita in corso…',
|
|
445
|
+
'health.progress': '{done}/{total} · {sec}s trascorsi',
|
|
446
|
+
'health.empty': 'Nessuna sessione problematica trovata.',
|
|
447
|
+
'health.clean': 'Tutti i controlli superati.',
|
|
448
|
+
'health.level.ok': 'ok',
|
|
449
|
+
'health.level.warn': 'attenzione',
|
|
450
|
+
'health.level.skipped': 'Non verificato',
|
|
451
|
+
'health.level.fail': 'errore',
|
|
452
|
+
'health.priority.high': 'Priorità',
|
|
453
|
+
'health.gate.generation': 'Artefatto di generazione',
|
|
454
|
+
'health.gate.log-integrity': 'Integrità dei log',
|
|
455
|
+
'health.gate.projection-cache': 'Cache di proiezione',
|
|
456
|
+
'health.gate.lossless-json': 'JSON senza perdite',
|
|
457
|
+
'health.gate.cold-read': 'Riprendibilità',
|
|
458
|
+
'health.gate.source-kind': 'Firma del plugin',
|
|
459
|
+
'health.attribution': 'Proprietario',
|
|
460
|
+
'health.field': 'Campo',
|
|
461
|
+
'health.unknownOwner': 'proprietario sconosciuto',
|
|
462
|
+
'health.phase.checkup': '1) Visita',
|
|
463
|
+
'health.phase.prescribe': '2) Prescrizione',
|
|
464
|
+
'health.phase.discharge': '3) Dimissione',
|
|
465
|
+
'health.repair': 'Applica riparazione reversibile',
|
|
466
|
+
'health.repairing': 'Riparazione…',
|
|
467
|
+
'health.sourceMigrate': 'Migra le firme precedenti',
|
|
468
|
+
'health.sourceMigrating': 'Migrazione…',
|
|
469
|
+
'health.sourceMigrated': '{n} righe di firme precedenti migrate (backup: {backup})',
|
|
470
|
+
'health.sourceMigrateNone': 'Nessuna firma precedente da migrare',
|
|
471
|
+
'health.sourceMigrateFail': 'Migrazione non riuscita: {error}',
|
|
472
|
+
'health.before': 'Prima',
|
|
473
|
+
'health.after': 'Dopo',
|
|
474
|
+
'health.quarantined': 'Cache di proiezione in quarantena (si richiude dopo un riavvio di DSH)',
|
|
475
|
+
'health.commands': 'Comandi',
|
|
476
|
+
'health.copy': 'Copia',
|
|
477
|
+
'health.copied': 'Copiato',
|
|
478
|
+
'health.detail': 'Dettagli',
|
|
479
|
+
'health.back': 'Indietro',
|
|
480
|
+
|
|
481
|
+
'health.cache.hint': 'Risultato in cache · {ago}',
|
|
482
|
+
'health.cache.refresh': 'Aggiorna',
|
|
483
|
+
'health.cache.corpusChanged': 'Corpus modificato ({was} → {now}); aggiornamento consigliato',
|
|
484
|
+
'health.ago.justNow': 'proprio ora',
|
|
485
|
+
'health.ago.minutes': '{n} min fa',
|
|
486
|
+
'health.ago.hours': '{n} h fa',
|
|
487
|
+
'health.ago.days': '{n} g fa',
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
/** Русский словарь (те же ключи). */
|
|
491
|
+
export const ru: Record<LocaleKey, string> = {
|
|
492
|
+
'card.title': 'Session Steward',
|
|
493
|
+
'card.desc': 'Файлы истории · Проверка здоровья',
|
|
494
|
+
'card.enabled': 'Включить Session Steward',
|
|
495
|
+
'card.enabled.desc': 'Если выключено, сервисы не регистрируются, а запись в боковой панели исчезает.',
|
|
496
|
+
'card.history': 'Файлы истории сессий',
|
|
497
|
+
'card.history.desc': 'Просмотр и очистка архива (Пансионат). Если выключено, маршруты истории и вкладка исчезают.',
|
|
498
|
+
'card.health': 'Проверка здоровья',
|
|
499
|
+
'card.health.desc': 'Осмотр → Рецепт → Выписка. Если выключено, маршруты здоровья и вкладка исчезают.',
|
|
500
|
+
'card.readonly': 'Эта сессия не может менять настройки (монтирование только для чтения).',
|
|
501
|
+
'card.unavailable': 'Сервис настроек недоступен; конфигурацию прочитать нельзя.',
|
|
502
|
+
'family.title': 'Настройки плагинов Screwdriver',
|
|
503
|
+
|
|
504
|
+
'panel.title': 'Session Steward',
|
|
505
|
+
'panel.tab.history': 'Пансионат',
|
|
506
|
+
'panel.tab.health': 'Осмотр',
|
|
507
|
+
'panel.close': 'Закрыть',
|
|
508
|
+
'panel.untitled': '(без названия)',
|
|
509
|
+
|
|
510
|
+
'history.loading': 'Загрузка архивных сессий…',
|
|
511
|
+
'history.empty': 'Набор архивов пуст.',
|
|
512
|
+
'history.edit': 'Изменить',
|
|
513
|
+
'history.done': 'Готово',
|
|
514
|
+
'history.selectAll': 'Выбрать все',
|
|
515
|
+
'history.unselectAll': 'Снять выделение',
|
|
516
|
+
// Два нарочно различных глагола — не взаимозаменяемы:
|
|
517
|
+
// «Снять архивацию» меняет только массив архива (обратимо);
|
|
518
|
+
// «Удалить архивные файлы» действительно стирает (необратимо).
|
|
519
|
+
'history.unarchive': 'Снять архивацию ({n})',
|
|
520
|
+
'history.unarchiving': 'Снятие архивации…',
|
|
521
|
+
'history.purge': 'Удалить архивные файлы ({n}) · освободит {size}',
|
|
522
|
+
'history.purging': 'Удаление…',
|
|
523
|
+
'history.editingHint': 'Режим правки: отметьте сессии, затем выберите одно из двух — «Снять архивацию» лишь убирает их из официального массива архива (обратимо; после перезапуска они вернутся в боковую панель); «Удалить архивные файлы» действительно стирает транскрипт и кэш проекций с диска (необратимо).',
|
|
524
|
+
'history.restartHint': 'Из массива архива удалено id: {removed} (осталось {remaining}). **Перезапустите DSH немедленно**: пока хост не завершится, любое изменение архива или рабочего пространства перезапишет весь снимок памяти в файл и отменит эту операцию.',
|
|
525
|
+
'history.pendingRestart': '{n} архивных id ещё живы в памяти хоста: список следует за файлом хранилища (там их уже нет), но их сессии остаются скрытыми в боковой панели до перезапуска DSH.',
|
|
526
|
+
'history.count': 'Всего {n} · {size} на диске',
|
|
527
|
+
'history.size': 'транскрипт {t} · кэш {c}',
|
|
528
|
+
'history.sizeUnknown': 'нет файлов на диске',
|
|
529
|
+
'history.source.registry': 'Источник: реестр архива хоста',
|
|
530
|
+
'history.source.storage-file': 'Источник: файл хранилища',
|
|
531
|
+
'history.source.none': 'Набор архивов не читается ни из одного источника',
|
|
532
|
+
'history.confirmUnarchive': 'Снять архивацию этих {n} сессий?\n\n{summary}\n\nМеняется только массив архива (автоматическая резервная копия); файлы на диске не затрагиваются. После перезапуска DSH эти сессии вернутся в свои рабочие пространства.',
|
|
533
|
+
'history.confirmPurge': 'Удалить файлы на диске этих {n} архивных сессий?\n\n{summary}\n\nБудет освобождено около {size}.\nБудут удалены: каталог транскриптов (включая копии старого формата) и кэш проекций каждой сессии, а сами сессии — из массива архива и таблиц членства в рабочих пространствах.\n\n**Операция необратима — сессии невозможно будет восстановить.**',
|
|
534
|
+
'history.purgeResult': 'Удалено {purged} архивных сессий, освобождено {size}. Перезапустите DSH, чтобы они исчезли окончательно.',
|
|
535
|
+
'history.purgePartial': 'Удалено {purged}, освобождено {size}; с ошибками: {failed} (подробности ниже).',
|
|
536
|
+
'history.purgeFailures': 'Подробности ошибок',
|
|
537
|
+
|
|
538
|
+
'health.scan': 'Запустить осмотр',
|
|
539
|
+
'health.scanning': 'Осмотр…',
|
|
540
|
+
'health.progress': '{done}/{total} · прошло {sec} с',
|
|
541
|
+
'health.empty': 'Проблемных сессий не найдено.',
|
|
542
|
+
'health.clean': 'Все проверки пройдены.',
|
|
543
|
+
'health.level.ok': 'норма',
|
|
544
|
+
'health.level.warn': 'внимание',
|
|
545
|
+
'health.level.skipped': 'Не проверено',
|
|
546
|
+
'health.level.fail': 'сбой',
|
|
547
|
+
'health.priority.high': 'Приоритет',
|
|
548
|
+
'health.gate.generation': 'Артефакт поколения',
|
|
549
|
+
'health.gate.log-integrity': 'Целостность журналов',
|
|
550
|
+
'health.gate.projection-cache': 'Кэш проекций',
|
|
551
|
+
'health.gate.lossless-json': 'JSON без потерь',
|
|
552
|
+
'health.gate.cold-read': 'Возобновляемость',
|
|
553
|
+
'health.gate.source-kind': 'Подпись плагина',
|
|
554
|
+
'health.attribution': 'Владелец',
|
|
555
|
+
'health.field': 'Поле',
|
|
556
|
+
'health.unknownOwner': 'владелец неизвестен',
|
|
557
|
+
'health.phase.checkup': '1) Осмотр',
|
|
558
|
+
'health.phase.prescribe': '2) Рецепт',
|
|
559
|
+
'health.phase.discharge': '3) Выписка',
|
|
560
|
+
'health.repair': 'Применить обратимое исправление',
|
|
561
|
+
'health.repairing': 'Исправление…',
|
|
562
|
+
'health.sourceMigrate': 'Мигрировать старые подписи',
|
|
563
|
+
'health.sourceMigrating': 'Миграция…',
|
|
564
|
+
'health.sourceMigrated': 'Мигрировано строк старых подписей: {n} (резервная копия: {backup})',
|
|
565
|
+
'health.sourceMigrateNone': 'Старых подписей для миграции нет',
|
|
566
|
+
'health.sourceMigrateFail': 'Ошибка миграции: {error}',
|
|
567
|
+
'health.before': 'До',
|
|
568
|
+
'health.after': 'После',
|
|
569
|
+
'health.quarantined': 'Кэш проекций отправлен в карантин (свернётся после перезапуска DSH)',
|
|
570
|
+
'health.commands': 'Команды',
|
|
571
|
+
'health.copy': 'Копировать',
|
|
572
|
+
'health.copied': 'Скопировано',
|
|
573
|
+
'health.detail': 'Подробнее',
|
|
574
|
+
'health.back': 'Назад',
|
|
575
|
+
|
|
576
|
+
'health.cache.hint': 'Результат из кэша · {ago}',
|
|
577
|
+
'health.cache.refresh': 'Обновить',
|
|
578
|
+
'health.cache.corpusChanged': 'Корпус изменился ({was} → {now}); рекомендуется обновить',
|
|
579
|
+
'health.ago.justNow': 'только что',
|
|
580
|
+
'health.ago.minutes': '{n} мин назад',
|
|
581
|
+
'health.ago.hours': '{n} ч назад',
|
|
582
|
+
'health.ago.days': '{n} дн назад',
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
/** Diccionario español (mismas claves). */
|
|
586
|
+
export const es: Record<LocaleKey, string> = {
|
|
587
|
+
'card.title': 'Session Steward',
|
|
588
|
+
'card.desc': 'Archivos de historial · Chequeo de salud',
|
|
589
|
+
'card.enabled': 'Activar Session Steward',
|
|
590
|
+
'card.enabled.desc': 'Al desactivarlo no se registra ningún servicio y la entrada de la barra lateral desaparece.',
|
|
591
|
+
'card.history': 'Archivos de historial de sesiones',
|
|
592
|
+
'card.history.desc': 'Consulta y limpieza del archivo (Residencia). Al desactivarlo, las rutas de historial y la pestaña desaparecen.',
|
|
593
|
+
'card.health': 'Chequeo de salud',
|
|
594
|
+
'card.health.desc': 'Chequeo → Receta → Alta. Al desactivarlo, las rutas de salud y la pestaña desaparecen.',
|
|
595
|
+
'card.readonly': 'Esta sesión no puede editar los ajustes (montaje de solo lectura).',
|
|
596
|
+
'card.unavailable': 'Servicio de ajustes no disponible; no se puede leer la configuración.',
|
|
597
|
+
'family.title': 'Ajustes de los plugins Screwdriver',
|
|
598
|
+
|
|
599
|
+
'panel.title': 'Session Steward',
|
|
600
|
+
'panel.tab.history': 'Residencia',
|
|
601
|
+
'panel.tab.health': 'Chequeo',
|
|
602
|
+
'panel.close': 'Cerrar',
|
|
603
|
+
'panel.untitled': '(sin título)',
|
|
604
|
+
|
|
605
|
+
'history.loading': 'Cargando sesiones archivadas…',
|
|
606
|
+
'history.empty': 'El conjunto de archivos está vacío.',
|
|
607
|
+
'history.edit': 'Editar',
|
|
608
|
+
'history.done': 'Hecho',
|
|
609
|
+
'history.selectAll': 'Seleccionar todo',
|
|
610
|
+
'history.unselectAll': 'Quitar selección',
|
|
611
|
+
// Dos verbos deliberadamente distintos — no intercambiables:
|
|
612
|
+
// «Desarchivar» solo edita el arreglo de archivos (reversible);
|
|
613
|
+
// «Purgar archivos de archivo» borra de verdad (irreversible).
|
|
614
|
+
'history.unarchive': 'Desarchivar ({n})',
|
|
615
|
+
'history.unarchiving': 'Desarchivando…',
|
|
616
|
+
'history.purge': 'Purgar archivos de archivo ({n}) · libera {size}',
|
|
617
|
+
'history.purging': 'Purgando…',
|
|
618
|
+
'history.editingHint': 'Modo de edición: marca sesiones y elige una de dos — «Desarchivar» solo las quita del arreglo de archivos oficial (reversible; vuelven a la barra lateral tras un reinicio); «Purgar archivos de archivo» borra de verdad la transcripción y la caché de proyección del disco (irreversible).',
|
|
619
|
+
'history.restartHint': 'Se quitaron {removed} id del arreglo de archivos ({remaining} restantes). **Reinicia DSH ahora**: hasta que el host salga, cualquier cambio de archivo o espacio de trabajo reescribe toda la instantánea en memoria al fichero y deshace esta operación.',
|
|
620
|
+
'history.pendingRestart': '{n} id archivados siguen vivos en la memoria del host: la lista sigue el fichero de almacenamiento (allí ya no están), pero sus sesiones siguen ocultas en la barra lateral hasta que se reinicie DSH.',
|
|
621
|
+
'history.count': '{n} en total · {size} en disco',
|
|
622
|
+
'history.size': 'transcripción {t} · caché {c}',
|
|
623
|
+
'history.sizeUnknown': 'sin entidad en disco',
|
|
624
|
+
'history.source.registry': 'Fuente: registro de archivos del host',
|
|
625
|
+
'history.source.storage-file': 'Fuente: fichero de almacenamiento',
|
|
626
|
+
'history.source.none': 'Archivos ilegibles desde ambas fuentes',
|
|
627
|
+
'history.confirmUnarchive': '¿Desarchivar estas {n} sesiones?\n\n{summary}\n\nSolo se edita el arreglo de archivos (copia de seguridad automática); no se toca nada en el disco. Tras reiniciar DSH estas sesiones vuelven a sus espacios de trabajo.',
|
|
628
|
+
'history.confirmPurge': '¿Purgar los ficheros en disco de estas {n} sesiones archivadas?\n\n{summary}\n\nSe liberarán unos {size}.\nSe eliminarán: el directorio de transcripciones (incluidas las copias del formato antiguo) y la caché de proyección por sesión, y se quitarán del arreglo de archivos y de las tablas de pertenencia a espacios de trabajo.\n\n**Esto no se puede deshacer: las sesiones no se podrán recuperar.**',
|
|
629
|
+
'history.purgeResult': 'Purgadas {purged} sesiones archivadas, liberados {size}. Reinicia DSH para que desaparezcan por completo.',
|
|
630
|
+
'history.purgePartial': 'Purgadas {purged}, liberados {size}; {failed} con error (detalles abajo).',
|
|
631
|
+
'history.purgeFailures': 'Detalles de los errores',
|
|
632
|
+
|
|
633
|
+
'health.scan': 'Iniciar chequeo',
|
|
634
|
+
'health.scanning': 'Chequeando…',
|
|
635
|
+
'health.progress': '{done}/{total} · {sec}s transcurridos',
|
|
636
|
+
'health.empty': 'No se encontró ninguna sesión problemática.',
|
|
637
|
+
'health.clean': 'Todas las comprobaciones pasaron.',
|
|
638
|
+
'health.level.ok': 'ok',
|
|
639
|
+
'health.level.warn': 'aviso',
|
|
640
|
+
'health.level.skipped': 'Sin comprobar',
|
|
641
|
+
'health.level.fail': 'fallo',
|
|
642
|
+
'health.priority.high': 'Prioridad',
|
|
643
|
+
'health.gate.generation': 'Artefacto de generación',
|
|
644
|
+
'health.gate.log-integrity': 'Integridad del registro',
|
|
645
|
+
'health.gate.projection-cache': 'Caché de proyección',
|
|
646
|
+
'health.gate.lossless-json': 'JSON sin pérdidas',
|
|
647
|
+
'health.gate.cold-read': 'Reanudabilidad',
|
|
648
|
+
'health.gate.source-kind': 'Firma del plugin',
|
|
649
|
+
'health.attribution': 'Propietario',
|
|
650
|
+
'health.field': 'Campo',
|
|
651
|
+
'health.unknownOwner': 'propietario desconocido',
|
|
652
|
+
'health.phase.checkup': '1) Chequeo',
|
|
653
|
+
'health.phase.prescribe': '2) Receta',
|
|
654
|
+
'health.phase.discharge': '3) Alta',
|
|
655
|
+
'health.repair': 'Aplicar reparación reversible',
|
|
656
|
+
'health.repairing': 'Reparando…',
|
|
657
|
+
'health.sourceMigrate': 'Migrar firmas antiguas',
|
|
658
|
+
'health.sourceMigrating': 'Migrando…',
|
|
659
|
+
'health.sourceMigrated': 'Se migraron {n} filas de firmas antiguas (copia: {backup})',
|
|
660
|
+
'health.sourceMigrateNone': 'No hay firmas antiguas que migrar',
|
|
661
|
+
'health.sourceMigrateFail': 'Error de migración: {error}',
|
|
662
|
+
'health.before': 'Antes',
|
|
663
|
+
'health.after': 'Después',
|
|
664
|
+
'health.quarantined': 'Caché de proyección en cuarentena (se repliega tras reiniciar DSH)',
|
|
665
|
+
'health.commands': 'Comandos',
|
|
666
|
+
'health.copy': 'Copiar',
|
|
667
|
+
'health.copied': 'Copiado',
|
|
668
|
+
'health.detail': 'Detalles',
|
|
669
|
+
'health.back': 'Volver',
|
|
670
|
+
|
|
671
|
+
'health.cache.hint': 'Resultado en caché · {ago}',
|
|
672
|
+
'health.cache.refresh': 'Actualizar',
|
|
673
|
+
'health.cache.corpusChanged': 'El corpus cambió ({was} → {now}); se recomienda actualizar',
|
|
674
|
+
'health.ago.justNow': 'justo ahora',
|
|
675
|
+
'health.ago.minutes': 'hace {n} min',
|
|
676
|
+
'health.ago.hours': 'hace {n} h',
|
|
677
|
+
'health.ago.days': 'hace {n} d',
|
|
678
|
+
}
|
|
679
|
+
|
|
205
680
|
/** 字典查找(缺 key 时回退到内置 zh,再回退 key 本身)。 */
|
|
206
681
|
export function translate(
|
|
207
682
|
t: ((key: LocaleKey, params?: Record<string, unknown>) => string) | undefined,
|
package/src/config.ts
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* dsh-manage-session 的共享配置面。
|
|
3
|
-
*
|
|
4
|
-
* 与 host 半身(schemastery schema 在 src/index.ts)以及浏览器半身共用同一形状,
|
|
5
|
-
* 使一处 admitted 的值在另一处也 admitted —— 与 dsh-session-search-toggle /
|
|
6
|
-
* dsh-thinking-levels 的 config 面惯例一致。
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
/** 会话管家运行时配置(设置命名空间 + 组合入口)。 */
|
|
10
|
-
export interface StewardConfig {
|
|
11
|
-
/** 插件总开关。 */
|
|
12
|
-
enabled: boolean
|
|
13
|
-
/** 会话历史文件(归档浏览与清理)。关闭后不注册 history 路由、不渲染「养老院」页签。 */
|
|
14
|
-
historyFiles?: boolean
|
|
15
|
-
/** 会话健康检查(体检 → 处方 → 出院)。关闭后不注册 health 路由、不渲染「体检」页签。 */
|
|
16
|
-
healthCheck?: boolean
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/** 缺省值。 */
|
|
20
|
-
export const DEFAULT_CONFIG: Required<StewardConfig> = {
|
|
21
|
-
enabled: true,
|
|
22
|
-
historyFiles: true,
|
|
23
|
-
healthCheck: true,
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/** host 半身注册的设置命名空间(与 src/index.ts 保持一致)。 */
|
|
27
|
-
export const STEWARD_SETTINGS_NAMESPACE = 'session-steward'
|
|
28
|
-
|
|
29
|
-
/** 侧边栏入口 id(客户端注册 id)。 */
|
|
30
|
-
export const STEWARD_ENTRY_ID = 'dsh-manage-session'
|
|
31
|
-
|
|
32
|
-
/** host 路由前缀(与搜索索引插件的 /switch-search/api 互不干扰)。 */
|
|
33
|
-
export const STEWARD_API_PREFIX = '/session-steward/api'
|
|
1
|
+
/**
|
|
2
|
+
* dsh-manage-session 的共享配置面。
|
|
3
|
+
*
|
|
4
|
+
* 与 host 半身(schemastery schema 在 src/index.ts)以及浏览器半身共用同一形状,
|
|
5
|
+
* 使一处 admitted 的值在另一处也 admitted —— 与 dsh-session-search-toggle /
|
|
6
|
+
* dsh-thinking-levels 的 config 面惯例一致。
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/** 会话管家运行时配置(设置命名空间 + 组合入口)。 */
|
|
10
|
+
export interface StewardConfig {
|
|
11
|
+
/** 插件总开关。 */
|
|
12
|
+
enabled: boolean
|
|
13
|
+
/** 会话历史文件(归档浏览与清理)。关闭后不注册 history 路由、不渲染「养老院」页签。 */
|
|
14
|
+
historyFiles?: boolean
|
|
15
|
+
/** 会话健康检查(体检 → 处方 → 出院)。关闭后不注册 health 路由、不渲染「体检」页签。 */
|
|
16
|
+
healthCheck?: boolean
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** 缺省值。 */
|
|
20
|
+
export const DEFAULT_CONFIG: Required<StewardConfig> = {
|
|
21
|
+
enabled: true,
|
|
22
|
+
historyFiles: true,
|
|
23
|
+
healthCheck: true,
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** host 半身注册的设置命名空间(与 src/index.ts 保持一致)。 */
|
|
27
|
+
export const STEWARD_SETTINGS_NAMESPACE = 'session-steward'
|
|
28
|
+
|
|
29
|
+
/** 侧边栏入口 id(客户端注册 id)。 */
|
|
30
|
+
export const STEWARD_ENTRY_ID = 'dsh-manage-session'
|
|
31
|
+
|
|
32
|
+
/** host 路由前缀(与搜索索引插件的 /switch-search/api 互不干扰)。 */
|
|
33
|
+
export const STEWARD_API_PREFIX = '/session-steward/api'
|