index.ts 957 B

12345678910111213141516171819202122232425262728293031
  1. /** Host loader entry for the browser implementation exported from `./client`. */
  2. import type { Context } from 'cordis'
  3. import z from 'schemastery'
  4. import { settingsNamespace } from '@deepseek-ai/dsh-settings'
  5. import {
  6. WELCOME_NOTICE_ACK_FIELD, WELCOME_NOTICE_SETTINGS_NAMESPACE,
  7. } from './onboarding-copy.ts'
  8. export {
  9. WELCOME_NOTICE_ACK_FIELD, WELCOME_NOTICE_COPY, WELCOME_NOTICE_SETTINGS_NAMESPACE,
  10. WELCOME_NOTICE_VERSION,
  11. } from './onboarding-copy.ts'
  12. interface OnboardingSettings {
  13. welcomeNoticeVersion?: string
  14. }
  15. const OnboardingSettingsSchema: z<OnboardingSettings> = z.object({
  16. [WELCOME_NOTICE_ACK_FIELD]: z.string(),
  17. })
  18. /** Register the durable GUI-onboarding section when a settings provider exists. */
  19. export function apply(ctx: Context): void {
  20. ctx.inject(['settings'], (settingsCtx) => {
  21. settingsCtx.settings.register(
  22. settingsNamespace(WELCOME_NOTICE_SETTINGS_NAMESPACE),
  23. OnboardingSettingsSchema,
  24. )
  25. })
  26. }