@awiki/dsh-plugin 0.3.7 → 0.3.10

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.
Files changed (213) hide show
  1. package/README.md +109 -71
  2. package/README.zh.md +89 -61
  3. package/THIRD_PARTY_NOTICES.md +1 -1
  4. package/cordis.patch.yml +6 -5
  5. package/lib/builtin-tenants.json +22 -0
  6. package/lib/builtin-tenants.sha256 +1 -0
  7. package/lib/client.js +7973 -2264
  8. package/lib/client.js.map +1 -1
  9. package/lib/index.js +3481 -1145
  10. package/lib/model-proxy-contract.js +11 -3
  11. package/lib/provider.js +73 -17
  12. package/lib/{sdk-adapter--trNlr-T.mjs → sdk-adapter-CYcJH7sM.mjs} +374 -101
  13. package/lib/typert.host.js +1595 -168
  14. package/lib/typert.remote-client.d.ts +43 -7
  15. package/lib/typert.remote-client.d.ts.map +1 -1
  16. package/lib/typert.remote-client.js +1595 -168
  17. package/lib/types/builtin-tenant-config.d.ts +19 -0
  18. package/lib/types/builtin-tenant-config.d.ts.map +1 -0
  19. package/lib/types/builtin-tenant-config.js +57 -0
  20. package/lib/types/builtin-tenant-config.js.map +1 -0
  21. package/lib/types/client/AwikiDeviceJoinReminder.d.ts +15 -0
  22. package/lib/types/client/AwikiDeviceJoinReminder.d.ts.map +1 -0
  23. package/lib/types/client/AwikiDeviceJoinReminder.js +74 -0
  24. package/lib/types/client/AwikiDeviceJoinReminder.js.map +1 -0
  25. package/lib/types/client/AwikiDevices.d.ts +33 -0
  26. package/lib/types/client/AwikiDevices.d.ts.map +1 -0
  27. package/lib/types/client/AwikiDevices.js +141 -0
  28. package/lib/types/client/AwikiDevices.js.map +1 -0
  29. package/lib/types/client/AwikiGroupDetails.d.ts.map +1 -1
  30. package/lib/types/client/AwikiGroupDetails.js +16 -13
  31. package/lib/types/client/AwikiGroupDetails.js.map +1 -1
  32. package/lib/types/client/AwikiIdentityAccess.d.ts +15 -8
  33. package/lib/types/client/AwikiIdentityAccess.d.ts.map +1 -1
  34. package/lib/types/client/AwikiIdentityAccess.js +203 -39
  35. package/lib/types/client/AwikiIdentityAccess.js.map +1 -1
  36. package/lib/types/client/AwikiIntegrationSettings.d.ts +21 -0
  37. package/lib/types/client/AwikiIntegrationSettings.d.ts.map +1 -0
  38. package/lib/types/client/AwikiIntegrationSettings.js +105 -0
  39. package/lib/types/client/AwikiIntegrationSettings.js.map +1 -0
  40. package/lib/types/client/AwikiMail.d.ts +1 -1
  41. package/lib/types/client/AwikiMail.d.ts.map +1 -1
  42. package/lib/types/client/AwikiMail.js +17 -137
  43. package/lib/types/client/AwikiMail.js.map +1 -1
  44. package/lib/types/client/AwikiOverlay.d.ts +0 -1
  45. package/lib/types/client/AwikiOverlay.d.ts.map +1 -1
  46. package/lib/types/client/AwikiOverlay.js +26 -28
  47. package/lib/types/client/AwikiOverlay.js.map +1 -1
  48. package/lib/types/client/AwikiProfileCard.d.ts.map +1 -1
  49. package/lib/types/client/AwikiProfileCard.js +17 -18
  50. package/lib/types/client/AwikiProfileCard.js.map +1 -1
  51. package/lib/types/client/AwikiRecoveryForm.d.ts +5 -1
  52. package/lib/types/client/AwikiRecoveryForm.d.ts.map +1 -1
  53. package/lib/types/client/AwikiRecoveryForm.js +73 -30
  54. package/lib/types/client/AwikiRecoveryForm.js.map +1 -1
  55. package/lib/types/client/AwikiSettingsSection.d.ts +28 -13
  56. package/lib/types/client/AwikiSettingsSection.d.ts.map +1 -1
  57. package/lib/types/client/AwikiSettingsSection.js +93 -61
  58. package/lib/types/client/AwikiSettingsSection.js.map +1 -1
  59. package/lib/types/client/AwikiUpdates.d.ts +10 -0
  60. package/lib/types/client/AwikiUpdates.d.ts.map +1 -0
  61. package/lib/types/client/AwikiUpdates.js +57 -0
  62. package/lib/types/client/AwikiUpdates.js.map +1 -0
  63. package/lib/types/client/awiki-client-bridge.d.ts +1 -1
  64. package/lib/types/client/awiki-client-bridge.d.ts.map +1 -1
  65. package/lib/types/client/awiki-client-bridge.js +4 -1
  66. package/lib/types/client/awiki-client-bridge.js.map +1 -1
  67. package/lib/types/client/controller.d.ts +84 -44
  68. package/lib/types/client/controller.d.ts.map +1 -1
  69. package/lib/types/client/controller.js +515 -309
  70. package/lib/types/client/controller.js.map +1 -1
  71. package/lib/types/client/drafts.d.ts +31 -0
  72. package/lib/types/client/drafts.d.ts.map +1 -0
  73. package/lib/types/client/drafts.js +94 -0
  74. package/lib/types/client/drafts.js.map +1 -0
  75. package/lib/types/client/image-cache.d.ts +2 -2
  76. package/lib/types/client/image-cache.d.ts.map +1 -1
  77. package/lib/types/client/image-cache.js +15 -2
  78. package/lib/types/client/image-cache.js.map +1 -1
  79. package/lib/types/client/index.d.ts.map +1 -1
  80. package/lib/types/client/index.js +63 -19
  81. package/lib/types/client/index.js.map +1 -1
  82. package/lib/types/client/integration-operation.d.ts +9 -0
  83. package/lib/types/client/integration-operation.d.ts.map +1 -0
  84. package/lib/types/client/integration-operation.js +54 -0
  85. package/lib/types/client/integration-operation.js.map +1 -0
  86. package/lib/types/client/mail-list-cache.d.ts +2 -0
  87. package/lib/types/client/mail-list-cache.d.ts.map +1 -1
  88. package/lib/types/client/mail-list-cache.js +18 -0
  89. package/lib/types/client/mail-list-cache.js.map +1 -1
  90. package/lib/types/client/otp-cooldown.d.ts +6 -0
  91. package/lib/types/client/otp-cooldown.d.ts.map +1 -0
  92. package/lib/types/client/otp-cooldown.js +18 -0
  93. package/lib/types/client/otp-cooldown.js.map +1 -0
  94. package/lib/types/client/settings-controller.d.ts +34 -0
  95. package/lib/types/client/settings-controller.d.ts.map +1 -1
  96. package/lib/types/client/settings-controller.js +182 -2
  97. package/lib/types/client/settings-controller.js.map +1 -1
  98. package/lib/types/client/settings-locales.d.ts +1 -1
  99. package/lib/types/client/settings-locales.d.ts.map +1 -1
  100. package/lib/types/client/settings-locales.js +192 -14
  101. package/lib/types/client/settings-locales.js.map +1 -1
  102. package/lib/types/client/slots.d.ts +20 -10
  103. package/lib/types/client/slots.d.ts.map +1 -1
  104. package/lib/types/client/slots.js +0 -1
  105. package/lib/types/client/slots.js.map +1 -1
  106. package/lib/types/conversation-preferences.d.ts.map +1 -1
  107. package/lib/types/conversation-preferences.js +0 -17
  108. package/lib/types/conversation-preferences.js.map +1 -1
  109. package/lib/types/desktop-distribution.d.ts +25 -0
  110. package/lib/types/desktop-distribution.d.ts.map +1 -0
  111. package/lib/types/desktop-distribution.js +57 -0
  112. package/lib/types/desktop-distribution.js.map +1 -0
  113. package/lib/types/domain.d.ts +1 -1
  114. package/lib/types/domain.d.ts.map +1 -1
  115. package/lib/types/domain.js +2 -1
  116. package/lib/types/domain.js.map +1 -1
  117. package/lib/types/index.d.ts +164 -41
  118. package/lib/types/index.d.ts.map +1 -1
  119. package/lib/types/index.js +1562 -529
  120. package/lib/types/index.js.map +1 -1
  121. package/lib/types/integration-client.d.ts +17 -0
  122. package/lib/types/integration-client.d.ts.map +1 -0
  123. package/lib/types/integration-client.js +233 -0
  124. package/lib/types/integration-client.js.map +1 -0
  125. package/lib/types/legacy-sent-mail-cache.d.ts +4 -0
  126. package/lib/types/legacy-sent-mail-cache.d.ts.map +1 -0
  127. package/lib/types/legacy-sent-mail-cache.js +29 -0
  128. package/lib/types/legacy-sent-mail-cache.js.map +1 -0
  129. package/lib/types/listener-state.d.ts +5 -3
  130. package/lib/types/listener-state.d.ts.map +1 -1
  131. package/lib/types/listener-state.js +28 -13
  132. package/lib/types/listener-state.js.map +1 -1
  133. package/lib/types/listener.d.ts +9 -32
  134. package/lib/types/listener.d.ts.map +1 -1
  135. package/lib/types/listener.js +11 -127
  136. package/lib/types/listener.js.map +1 -1
  137. package/lib/types/mail-list-client.d.ts +12 -0
  138. package/lib/types/mail-list-client.d.ts.map +1 -0
  139. package/lib/types/mail-list-client.js +254 -0
  140. package/lib/types/mail-list-client.js.map +1 -0
  141. package/lib/types/mail-recovery-observability.d.ts +8 -0
  142. package/lib/types/mail-recovery-observability.d.ts.map +1 -0
  143. package/lib/types/mail-recovery-observability.js +119 -0
  144. package/lib/types/mail-recovery-observability.js.map +1 -0
  145. package/lib/types/mail.d.ts +2 -28
  146. package/lib/types/mail.d.ts.map +1 -1
  147. package/lib/types/mail.js +2 -79
  148. package/lib/types/mail.js.map +1 -1
  149. package/lib/types/model-proxy-contract.d.ts.map +1 -1
  150. package/lib/types/model-proxy-contract.js +7 -0
  151. package/lib/types/model-proxy-contract.js.map +1 -1
  152. package/lib/types/package-version.generated.d.ts +4 -0
  153. package/lib/types/package-version.generated.d.ts.map +1 -0
  154. package/lib/types/package-version.generated.js +4 -0
  155. package/lib/types/package-version.generated.js.map +1 -0
  156. package/lib/types/profile-state.d.ts +2 -13
  157. package/lib/types/profile-state.d.ts.map +1 -1
  158. package/lib/types/profile-state.js +3 -20
  159. package/lib/types/profile-state.js.map +1 -1
  160. package/lib/types/provider-api.d.ts +134 -43
  161. package/lib/types/provider-api.d.ts.map +1 -1
  162. package/lib/types/provider.d.ts +8 -2
  163. package/lib/types/provider.d.ts.map +1 -1
  164. package/lib/types/provider.js +76 -16
  165. package/lib/types/provider.js.map +1 -1
  166. package/lib/types/realtime-supervisor.d.ts +60 -0
  167. package/lib/types/realtime-supervisor.d.ts.map +1 -0
  168. package/lib/types/realtime-supervisor.js +255 -0
  169. package/lib/types/realtime-supervisor.js.map +1 -0
  170. package/lib/types/sdk-adapter.d.ts +62 -11
  171. package/lib/types/sdk-adapter.d.ts.map +1 -1
  172. package/lib/types/sdk-adapter.js +285 -123
  173. package/lib/types/sdk-adapter.js.map +1 -1
  174. package/lib/types/settings-rpc-contract.d.ts +58 -0
  175. package/lib/types/settings-rpc-contract.d.ts.map +1 -1
  176. package/lib/types/settings-rpc-contract.js +103 -0
  177. package/lib/types/settings-rpc-contract.js.map +1 -1
  178. package/lib/types/settings-rpc.d.ts +14 -1
  179. package/lib/types/settings-rpc.d.ts.map +1 -1
  180. package/lib/types/settings-rpc.js +130 -1
  181. package/lib/types/settings-rpc.js.map +1 -1
  182. package/lib/types/tenant-registry.d.ts +74 -0
  183. package/lib/types/tenant-registry.d.ts.map +1 -0
  184. package/lib/types/tenant-registry.js +440 -0
  185. package/lib/types/tenant-registry.js.map +1 -0
  186. package/lib/types/tools.d.ts +1 -1
  187. package/lib/types/tools.d.ts.map +1 -1
  188. package/lib/types/tools.js +4 -20
  189. package/lib/types/tools.js.map +1 -1
  190. package/lib/types/types.d.ts +249 -66
  191. package/lib/types/types.d.ts.map +1 -1
  192. package/lib/types/types.js.map +1 -1
  193. package/lib/types/update-policy.d.ts +51 -0
  194. package/lib/types/update-policy.d.ts.map +1 -0
  195. package/lib/types/update-policy.js +379 -0
  196. package/lib/types/update-policy.js.map +1 -0
  197. package/lib/types/version.d.ts +4 -0
  198. package/lib/types/version.d.ts.map +1 -0
  199. package/lib/types/version.js +44 -0
  200. package/lib/types/version.js.map +1 -0
  201. package/package.json +26 -8
  202. package/lib/types/base64.d.ts +0 -4
  203. package/lib/types/base64.d.ts.map +0 -1
  204. package/lib/types/base64.js +0 -28
  205. package/lib/types/base64.js.map +0 -1
  206. package/lib/types/client/mail-attachment.d.ts +0 -40
  207. package/lib/types/client/mail-attachment.d.ts.map +0 -1
  208. package/lib/types/client/mail-attachment.js +0 -187
  209. package/lib/types/client/mail-attachment.js.map +0 -1
  210. package/lib/types/sent-mail-store.d.ts +0 -27
  211. package/lib/types/sent-mail-store.d.ts.map +0 -1
  212. package/lib/types/sent-mail-store.js +0 -348
  213. package/lib/types/sent-mail-store.js.map +0 -1
@@ -1,109 +1,141 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- /** AWiki identity and installation settings contributed to DSH settings. */
2
+ import { AwikiUpdates } from "./AwikiUpdates.js";
3
+ import { AwikiDraftProvider, useDraftState } from "./drafts.js";
4
+ /** AWiki tenant, local-data, and optional-integration settings. */
3
5
  import { useEffect, useState } from 'react';
4
6
  import { Button, Modal } from '@deepseek-ai/dsh-client-ui-primitives';
5
- import { AWIKI_DOMAIN_FIELD, DEFAULT_AWIKI_DOMAIN, normalizeAwikiDomain, } from "../domain.js";
7
+ import { normalizeAwikiDomain } from "../domain.js";
8
+ import { AwikiDevices } from "./AwikiDevices.js";
9
+ import { AwikiIntegrationSettings } from "./AwikiIntegrationSettings.js";
6
10
  import css from './AwikiSettingsSection.module.css';
7
- function hasDomainOverride(snapshot) {
8
- return typeof snapshot.user === 'object'
9
- && snapshot.user !== null
10
- && !Array.isArray(snapshot.user)
11
- && Object.hasOwn(snapshot.user, AWIKI_DOMAIN_FIELD);
12
- }
13
- /** Render only the settings owned by the main AWiki identity and messaging plugin. */
14
11
  export function AwikiSettingsSection(props) {
15
- const settings = props.useAwikiSettings(value => value);
16
- return (_jsxs("section", { className: css.section, children: [_jsxs("div", { className: css.heading, children: [_jsx("h2", { className: css.title, children: props.t('nav') }), _jsx("p", { className: css.intro, children: props.t('intro') })] }), _jsx(AdvancedPanel, { ...props, settings: settings })] }));
12
+ return _jsx(AwikiDraftProvider, { store: props.drafts, children: _jsx(AwikiSettingsContent, { ...props }) });
17
13
  }
18
- function AdvancedPanel(props) {
19
- const { t, settings } = props;
20
- const current = settings.value?.domain ?? DEFAULT_AWIKI_DOMAIN;
21
- const overridden = hasDomainOverride(settings);
22
- const [draft, setDraft] = useState(current);
23
- const [edited, setEdited] = useState(false);
24
- const [pending, setPending] = useState(false);
25
- const [status, setStatus] = useState(null);
26
- const [clearOpen, setClearOpen] = useState(false);
27
- const [clearDraft, setClearDraft] = useState('');
28
- const [clearing, setClearing] = useState(false);
29
- const [clearStatus, setClearStatus] = useState(null);
14
+ function AwikiSettingsContent(props) {
15
+ const [tab, setTab] = useState('tenants');
16
+ const tenantSnapshot = props.useAwikiTenants(value => value);
17
+ const awiki = props.useAwiki(value => value);
18
+ const restricted = tenantSnapshot.status === 'ready' && tenantSnapshot.update?.restricted === true;
19
+ const tabs = restricted ? [
20
+ { id: 'tenants', label: props.t('tenantTab') },
21
+ { id: 'updates', label: props.t('updatesTab') },
22
+ ] : [
23
+ { id: 'tenants', label: props.t('tenantTab') },
24
+ { id: 'updates', label: props.t('updatesTab') },
25
+ { id: 'devices', label: props.t('devicesTab') },
26
+ { id: 'local', label: props.t('localDataTab') },
27
+ { id: 'integration', label: props.t('integrationTab') },
28
+ ];
30
29
  useEffect(() => {
31
- if (!edited)
32
- setDraft(current);
33
- }, [current, edited]);
34
- if (settings.status === 'loading')
35
- return _jsx("p", { className: css.status, children: t('loading') });
36
- const unavailable = settings.status !== 'ready' || settings.mode !== 'host';
37
- const disabled = unavailable || !settings.writable || pending;
38
- const save = async (event) => {
39
- event?.preventDefault();
30
+ if (restricted && tab !== 'tenants' && tab !== 'updates')
31
+ setTab('updates');
32
+ }, [restricted, tab]);
33
+ useEffect(() => {
34
+ if (!restricted && (tab === 'devices' || tab === 'integration') && awiki.status === 'cold')
35
+ void props.loadAwiki();
36
+ }, [awiki.status, props.loadAwiki, restricted, tab]);
37
+ return (_jsxs("section", { className: css.section, children: [_jsxs("div", { className: css.heading, children: [_jsx("h2", { className: css.title, children: props.t('nav') }), _jsx("p", { className: css.intro, children: props.t('intro') })] }), restricted && _jsxs("p", { className: css.error, role: "alert", children: [props.t('updateRequired'), " ", _jsx(Button, { type: "button", variant: "outline", onClick: () => { setTab('updates'); }, children: props.t('updatesTab') })] }), _jsx("div", { className: css.tabs, role: "tablist", "aria-label": props.t('tabsLabel'), children: tabs.map(item => _jsxs("button", { type: "button", role: "tab", "aria-selected": tab === item.id, className: `${css.tab} ${tab === item.id ? css.tabActive : ''}`, onClick: () => { setTab(item.id); }, children: [item.label, item.id === 'updates' && (tenantSnapshot.update?.updateAvailable || tenantSnapshot.desktop?.updateAvailable || restricted) && _jsx("span", { "aria-hidden": "true", children: " \u25CF" })] }, item.id)) }), _jsxs("div", { role: "tabpanel", children: [tab === 'tenants' && _jsx(TenantPanel, { ...props }), tab === 'updates' && _jsx(AwikiUpdates, { ...props, snapshot: tenantSnapshot }), !restricted && tab === 'devices' && (awiki.status === 'cold' || awiki.status === 'loading'
38
+ ? _jsx("p", { className: css.status, role: "status", children: props.t('devicesLoading') })
39
+ : awiki.status === 'error'
40
+ ? _jsx("p", { className: `${css.status} ${css.error}`, role: "alert", children: awiki.error })
41
+ : awiki.sessionStatus === 'active'
42
+ ? _jsx(AwikiDevices, { active: true, pending: awiki.pending !== null, refreshDeviceManagement: props.refreshDeviceManagement, startDeviceJoinVerification: props.startDeviceJoinVerification, approveDeviceJoin: props.approveDeviceJoin, rejectDeviceJoin: props.rejectDeviceJoin, revokeDevice: props.revokeDevice, prepareRootTransfer: props.prepareRootTransfer, confirmRootTransfer: props.confirmRootTransfer })
43
+ : _jsx("p", { className: css.notice, children: props.t('devicesUnavailable') })), !restricted && tab === 'local' && _jsx(LocalDataPanel, { ...props, disabled: tenantSnapshot.status !== 'ready' || tenantSnapshot.value.switching }, tenantSnapshot.status === 'ready' ? `${tenantSnapshot.value.activeTenantId}:${tenantSnapshot.value.generation}:${tenantSnapshot.value.switching}` : 'unavailable'), !restricted && tab === 'integration' && (tenantSnapshot.status !== 'ready' || tenantSnapshot.value.switching || awiki.status === 'cold' || awiki.status === 'loading'
44
+ ? _jsx("p", { className: css.status, role: "status", children: props.t('integrationLoading') })
45
+ : _jsx(AwikiIntegrationSettings, { ...props }, `${tenantSnapshot.status === 'ready' ? tenantSnapshot.value.activeTenantId : 'unavailable'}:${awiki.identity?.did ?? 'no-identity'}`))] })] }));
46
+ }
47
+ function TenantPanel(props) {
48
+ const snapshot = props.useAwikiTenants(value => value);
49
+ const [name, setName] = useDraftState('settings:tenant-name', '');
50
+ const [domain, setDomain] = useDraftState('settings:tenant-domain', '');
51
+ const [pending, setPending] = useDraftState('settings:tenant-pending', false, false);
52
+ const [status, setStatus] = useState(null);
53
+ if (snapshot.status === 'loading')
54
+ return _jsx("p", { className: css.status, children: props.t('tenantLoading') });
55
+ if (snapshot.status !== 'ready')
56
+ return _jsx("p", { className: `${css.status} ${css.error}`, role: "alert", children: props.t('tenantUnavailable') });
57
+ const disabled = pending || snapshot.value.switching;
58
+ const restricted = snapshot.update?.restricted === true;
59
+ const create = async (event) => {
60
+ event.preventDefault();
40
61
  let normalized;
41
62
  try {
42
- normalized = normalizeAwikiDomain(draft);
63
+ normalized = normalizeAwikiDomain(domain);
43
64
  }
44
65
  catch {
45
- setStatus({ kind: 'error', text: t('invalidDomain') });
66
+ setStatus({ kind: 'error', text: props.t('invalidDomain') });
46
67
  return;
47
68
  }
48
69
  setPending(true);
49
70
  setStatus(null);
50
71
  try {
51
- await props.saveDomain(normalized);
52
- setDraft(normalized);
53
- setEdited(false);
54
- setStatus({ kind: 'saved', text: `${t('saved')} ${t('restartNotice')}` });
72
+ await props.createTenant(name.trim(), normalized);
73
+ setName('');
74
+ setDomain('');
75
+ setStatus({ kind: 'saved', text: props.t('tenantCreated') });
55
76
  }
56
- catch {
57
- setStatus({ kind: 'error', text: t('saveFailed') });
77
+ catch (error) {
78
+ setStatus({ kind: 'error', text: error instanceof Error ? error.message : props.t('tenantChangeFailed') });
58
79
  }
59
80
  finally {
60
81
  setPending(false);
61
82
  }
62
83
  };
63
- const reset = async () => {
64
- setPending(true);
65
- setStatus(null);
84
+ return (_jsxs("div", { className: css.panel, children: [snapshot.value.diagnostic !== undefined && _jsx("p", { className: `${css.notice} ${css.error}`, role: "alert", children: props.t('tenantDiagnostic') }), _jsx("div", { className: css.tenantList, children: snapshot.value.tenants.filter(tenant => tenant.lifecycle !== 'archived').map(tenant => _jsx(TenantRow, { ...props, tenant: tenant, disabled: disabled, managementDisabled: restricted, setPending: setPending, setStatus: setStatus }, tenant.tenantId)) }), !restricted && _jsxs("form", { className: css.card, onSubmit: (event) => { void create(event); }, children: [_jsx("h3", { className: css.cardTitle, children: props.t('tenantAdd') }), _jsx("label", { className: css.label, htmlFor: "awiki-tenant-name", children: props.t('tenantName') }), _jsx("input", { id: "awiki-tenant-name", className: css.input, value: name, disabled: disabled, maxLength: 80, onChange: event => { setName(event.target.value); } }), _jsx("label", { className: css.label, htmlFor: "awiki-tenant-domain", children: props.t('tenantDomain') }), _jsx("input", { id: "awiki-tenant-domain", className: css.input, value: domain, disabled: disabled, spellCheck: false, autoCapitalize: "none", autoCorrect: "off", inputMode: "url", placeholder: "tenant.example", onChange: event => { setDomain(event.target.value); } }), _jsx("p", { className: css.description, children: props.t('tenantDomainHelp') }), _jsx("div", { className: css.actions, children: _jsx(Button, { type: "submit", disabled: disabled || name.trim() === '' || domain.trim() === '', children: props.t('tenantCreate') }) })] }), _jsx("p", { className: `${css.status} ${status?.kind === 'error' ? css.error : ''}`, role: "status", children: status?.text ?? (snapshot.value.switching ? props.t('tenantSwitching') : '') })] }));
85
+ }
86
+ function TenantRow(props) {
87
+ const [draftName, setDraftName] = useState(props.tenant.displayName);
88
+ const run = async (operation, success) => {
89
+ props.setPending(true);
90
+ props.setStatus(null);
66
91
  try {
67
- await props.resetDomain();
68
- setEdited(false);
69
- setStatus({ kind: 'saved', text: `${t('saved')} ${t('restartNotice')}` });
92
+ await operation();
93
+ props.setStatus({ kind: 'saved', text: success });
70
94
  }
71
- catch {
72
- setStatus({ kind: 'error', text: t('saveFailed') });
95
+ catch (error) {
96
+ props.setStatus({ kind: 'error', text: error instanceof Error ? error.message : props.t('tenantChangeFailed') });
73
97
  }
74
98
  finally {
75
- setPending(false);
99
+ props.setPending(false);
76
100
  }
77
101
  };
78
- const closeClear = () => {
102
+ const current = props.tenant.lifecycle === 'active';
103
+ const localizedDisplayName = props.tenant.displayNames === undefined
104
+ ? props.tenant.displayName
105
+ : (typeof document !== 'undefined' && document.documentElement.lang.toLowerCase().startsWith('zh')
106
+ ? props.tenant.displayNames['zh-CN']
107
+ : props.tenant.displayNames.en);
108
+ return (_jsxs("article", { className: `${css.tenantRow} ${current ? css.tenantCurrent : ''}`, children: [_jsxs("div", { className: css.tenantCopy, children: [props.tenant.kind === 'custom' && !props.managementDisabled ? _jsx("input", { "aria-label": props.t('tenantName'), className: css.inlineInput, value: draftName, disabled: props.disabled, maxLength: 80, onChange: event => { setDraftName(event.target.value); } }) : _jsx("strong", { children: localizedDisplayName }), _jsx("span", { className: css.tenantMeta, children: props.tenant.didHost }), _jsxs("span", { className: css.tenantBadges, children: [_jsx("span", { children: props.tenant.kind === 'built_in' ? props.t('tenantOfficial') : props.t('tenantCustom') }), current && _jsx("span", { children: props.t('tenantCurrent') })] })] }), _jsxs("div", { className: css.actions, children: [!current && _jsx(Button, { type: "button", disabled: props.disabled, onClick: () => { void run(() => props.switchTenant(props.tenant.tenantId), props.t('tenantSwitched')); }, children: props.t('tenantSwitch') }), props.tenant.kind === 'custom' && !props.managementDisabled && _jsxs(_Fragment, { children: [_jsx(Button, { type: "button", variant: "outline", disabled: props.disabled || draftName.trim() === '' || draftName === props.tenant.displayName, onClick: () => { void run(() => props.renameTenant(props.tenant.tenantId, draftName.trim()), props.t('tenantRenamed')); }, children: props.t('save') }), !current && _jsx(Button, { type: "button", variant: "outline", disabled: props.disabled, onClick: () => { void run(() => props.archiveTenant(props.tenant.tenantId), props.t('tenantArchived')); }, children: props.t('tenantArchive') })] })] })] }));
109
+ }
110
+ function LocalDataPanel(props) {
111
+ const [clearOpen, setClearOpen] = useState(false);
112
+ const [clearDraft, setClearDraft] = useState('');
113
+ const [clearing, setClearing] = useState(false);
114
+ const [status, setStatus] = useState(null);
115
+ const close = () => {
79
116
  if (clearing)
80
117
  return;
81
118
  setClearOpen(false);
82
119
  setClearDraft('');
83
120
  };
84
- const clearLocalData = async () => {
85
- if (clearDraft !== t('clearConfirmationPhrase'))
121
+ const clear = async () => {
122
+ if (props.disabled || clearDraft !== props.t('clearConfirmationPhrase'))
86
123
  return;
87
124
  setClearing(true);
88
- setClearStatus(null);
125
+ setStatus(null);
89
126
  try {
90
127
  await props.clearLocalData();
91
128
  setClearOpen(false);
92
129
  setClearDraft('');
93
- setClearStatus({ kind: 'saved', text: t('clearSucceeded') });
130
+ setStatus({ kind: 'saved', text: props.t('clearSucceeded') });
94
131
  }
95
132
  catch {
96
- setClearStatus({ kind: 'error', text: t('clearFailed') });
133
+ setStatus({ kind: 'error', text: props.t('clearFailed') });
97
134
  }
98
135
  finally {
99
136
  setClearing(false);
100
137
  }
101
138
  };
102
- return (_jsxs("div", { className: css.panel, children: [_jsxs("form", { className: css.card, onSubmit: (event) => { void save(event); }, children: [_jsx("label", { className: css.label, htmlFor: "awiki-default-domain", children: t('domainLabel') }), _jsx("p", { className: css.description, children: t('domainDescription') }), _jsx("input", { id: "awiki-default-domain", className: css.input, value: draft, disabled: disabled, spellCheck: false, autoCapitalize: "none", autoCorrect: "off", inputMode: "url", placeholder: DEFAULT_AWIKI_DOMAIN, onChange: (event) => { setDraft(event.target.value); setEdited(true); setStatus(null); } }), _jsx("p", { className: css.defaultValue, children: t('defaultValue', { domain: DEFAULT_AWIKI_DOMAIN }) }), _jsxs("div", { className: css.actions, children: [_jsx(Button, { type: "submit", disabled: disabled || !edited || draft.trim() === '', children: pending ? t('saving') : t('save') }), _jsx(Button, { type: "button", variant: "outline", disabled: disabled || !overridden, onClick: () => { void reset(); }, children: t('reset') })] }), unavailable
103
- ? _jsx("p", { className: `${css.status} ${css.error}`, role: "alert", children: t('unavailable') })
104
- : !settings.writable
105
- ? _jsx("p", { className: `${css.status} ${css.error}`, role: "alert", children: t('readOnly') })
106
- : _jsx("p", { className: `${css.status} ${status?.kind === 'error' ? css.error : ''}`, role: "status", children: status?.text ?? '' })] }), _jsx("p", { className: css.notice, children: t('identityNotice') }), _jsxs("section", { className: css.dangerZone, "aria-labelledby": "awiki-danger-zone-title", children: [_jsxs("div", { className: css.dangerCopy, children: [_jsx("h3", { id: "awiki-danger-zone-title", className: css.dangerTitle, children: t('dangerTitle') }), _jsx("p", { className: css.dangerDescription, children: t('dangerDescription') })] }), _jsx(Button, { type: "button", variant: "outline", className: css.dangerButton, disabled: unavailable || clearing, onClick: () => { setClearStatus(null); setClearOpen(true); }, children: t('clearLocalData') }), clearStatus?.kind === 'saved' && _jsx("p", { className: css.status, role: "status", children: clearStatus.text })] }), _jsxs(Modal, { open: clearOpen, onClose: closeClear, title: t('clearDialogTitle'), closeLabel: t('cancel'), description: t('clearDialogDescription'), className: css.clearDialog ?? '', footer: _jsxs(_Fragment, { children: [_jsx(Button, { type: "button", variant: "outline", disabled: clearing, onClick: closeClear, children: t('cancel') }), _jsx(Button, { type: "button", variant: "outline", className: css.clearConfirmButton, disabled: clearing || clearDraft !== t('clearConfirmationPhrase'), onClick: () => { void clearLocalData(); }, children: clearing ? t('clearing') : t('clearConfirm') })] }), children: [_jsxs("div", { className: css.clearWarning, children: [_jsx("p", { children: t('clearScope') }), _jsx("p", { children: t('clearRemoteNotice') })] }), _jsx("label", { className: css.confirmLabel, htmlFor: "awiki-clear-confirmation", children: t('clearConfirmationLabel', { phrase: t('clearConfirmationPhrase') }) }), _jsx("input", { id: "awiki-clear-confirmation", className: css.input, value: clearDraft, disabled: clearing, autoComplete: "off", spellCheck: false, autoFocus: true, onChange: (event) => { setClearDraft(event.target.value); } }), clearStatus?.kind === 'error' && _jsx("p", { className: `${css.status} ${css.error}`, role: "alert", children: clearStatus.text })] })] }));
139
+ return _jsxs("div", { className: css.panel, children: [_jsx("p", { className: css.notice, children: props.t('localDataNotice') }), _jsxs("section", { className: css.dangerZone, "aria-labelledby": "awiki-danger-zone-title", children: [_jsxs("div", { className: css.dangerCopy, children: [_jsx("h3", { id: "awiki-danger-zone-title", className: css.dangerTitle, children: props.t('dangerTitle') }), _jsx("p", { className: css.dangerDescription, children: props.t('dangerDescription') })] }), _jsx(Button, { type: "button", variant: "outline", className: css.dangerButton, disabled: clearing || props.disabled, onClick: () => { setStatus(null); setClearOpen(true); }, children: props.t('clearLocalData') }), _jsx("p", { className: `${css.status} ${status?.kind === 'error' ? css.error : ''}`, role: "status", children: status?.text ?? '' })] }), _jsxs(Modal, { open: clearOpen, onClose: close, title: props.t('clearDialogTitle'), closeLabel: props.t('cancel'), description: props.t('clearDialogDescription'), className: css.clearDialog ?? '', footer: _jsxs(_Fragment, { children: [_jsx(Button, { type: "button", variant: "outline", disabled: clearing, onClick: close, children: props.t('cancel') }), _jsx(Button, { type: "button", variant: "outline", className: css.clearConfirmButton, disabled: clearing || clearDraft !== props.t('clearConfirmationPhrase'), onClick: () => { void clear(); }, children: clearing ? props.t('clearing') : props.t('clearConfirm') })] }), children: [_jsxs("div", { className: css.clearWarning, children: [_jsx("p", { children: props.t('clearScope') }), _jsx("p", { children: props.t('clearRemoteNotice') })] }), _jsx("label", { className: css.confirmLabel, htmlFor: "awiki-clear-confirmation", children: props.t('clearConfirmationLabel', { phrase: props.t('clearConfirmationPhrase') }) }), _jsx("input", { id: "awiki-clear-confirmation", className: css.input, value: clearDraft, disabled: clearing, autoComplete: "off", spellCheck: false, autoFocus: true, onChange: event => { setClearDraft(event.target.value); } })] })] });
107
140
  }
108
- export { hasDomainOverride };
109
141
  //# sourceMappingURL=AwikiSettingsSection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AwikiSettingsSection.js","sourceRoot":"","sources":["../../../src/client/AwikiSettingsSection.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AwikiSettingsSection.js","sourceRoot":"","sources":["../../../src/client/AwikiSettingsSection.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAwB,MAAM,aAAc,CAAA;AACtF,mEAAmE;AAEnE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAkC,MAAM,OAAO,CAAA;AAC3E,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAA;AAGrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAMnD,OAAO,EAAE,YAAY,EAA0B,MAAM,mBAAoB,CAAA;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAAgC,CAAA;AACzE,OAAO,GAAG,MAAM,mCAAmC,CAAA;AAqCnD,MAAM,UAAU,oBAAoB,CAAC,KAAgC;IACnE,OAAO,KAAC,kBAAkB,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,YAAE,KAAC,oBAAoB,OAAK,KAAK,GAAI,GAAqB,CAAA;AAC1G,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAgC;IAC5D,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAM,SAAS,CAAC,CAAA;IAC9C,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IAC5C,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,KAAK,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IAClG,MAAM,IAAI,GAA4D,UAAU,CAAC,CAAC,CAAC;QACjF,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;QAC9C,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE;KAChD,CAAC,CAAC,CAAC;QACF,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;QAC9C,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE;QAC/C,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE;QAC/C,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE;QAC/C,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE;KACxD,CAAA;IACD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,CAAC,SAAS,CAAC,CAAA;IAC7E,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAA;IACrB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,aAAa,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;YAAE,KAAK,KAAK,CAAC,SAAS,EAAE,CAAA;IACpH,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAA;IACpD,OAAO,CACL,mBAAS,SAAS,EAAE,GAAG,CAAC,OAAO,aAC7B,eAAK,SAAS,EAAE,GAAG,CAAC,OAAO,aACzB,aAAI,SAAS,EAAE,GAAG,CAAC,KAAK,YAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAM,EAC/C,YAAG,SAAS,EAAE,GAAG,CAAC,KAAK,YAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAK,IAC3C,EACL,UAAU,IAAI,aAAG,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAC,OAAO,aAAE,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAE,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA,CAAC,CAAC,YAAG,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,GAAU,IAAI,EACnM,cAAK,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAC,SAAS,gBAAa,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,YACtE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAsB,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,KAAK,mBAAgB,GAAG,KAAK,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,aAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,IAAI,cAAc,CAAC,OAAO,EAAE,eAAe,IAAI,UAAU,CAAC,IAAI,8BAAkB,MAAM,wBAAU,KAApV,IAAI,CAAC,EAAE,CAAuV,CAAC,GAC1X,EACN,eAAK,IAAI,EAAC,UAAU,aACjB,GAAG,KAAK,SAAS,IAAI,KAAC,WAAW,OAAK,KAAK,GAAI,EAC/C,GAAG,KAAK,SAAS,IAAI,KAAC,YAAY,OAAK,KAAK,EAAE,QAAQ,EAAE,cAAc,GAAI,EAC1E,CAAC,UAAU,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;wBACzF,CAAC,CAAC,YAAG,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAC,QAAQ,YAAE,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAK;wBACzE,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO;4BACxB,CAAC,CAAC,YAAG,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAC,OAAO,YAAE,KAAK,CAAC,KAAK,GAAK;4BAC5E,CAAC,CAAC,KAAK,CAAC,aAAa,KAAK,QAAQ;gCAChC,CAAC,CAAC,KAAC,YAAY,IACX,MAAM,QACN,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI,EAC/B,uBAAuB,EAAE,KAAK,CAAC,uBAAuB,EACtD,2BAA2B,EAAE,KAAK,CAAC,2BAA2B,EAC9D,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAC1C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAC9C,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,GAC9C;gCACJ,CAAC,CAAC,YAAG,SAAS,EAAE,GAAG,CAAC,MAAM,YAAG,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAK,CAAC,EACrE,CAAC,UAAU,IAAI,GAAG,KAAK,OAAO,IAAI,KAAC,cAAc,OAA6K,KAAK,EAAE,QAAQ,EAAE,cAAc,CAAC,MAAM,KAAK,OAAO,IAAI,cAAc,CAAC,KAAK,CAAC,SAAS,IAA3P,cAAc,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,cAAc,IAAI,cAAc,CAAC,KAAK,CAAC,UAAU,IAAI,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,aAAa,CAA8F,EACtT,CAAC,UAAU,IAAI,GAAG,KAAK,aAAa,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,OAAO,IAAI,cAAc,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;wBACpK,CAAC,CAAC,YAAG,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAC,QAAQ,YAAE,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAK;wBAC7E,CAAC,CAAC,KAAC,wBAAwB,OAAgJ,KAAK,IAA/I,GAAG,cAAc,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,aAAa,EAAE,CAAe,CAAC,IACnL,IACE,CACX,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAgC;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IACtD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,aAAa,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAA;IACjE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,aAAa,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAA;IACvE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,aAAa,CAAC,yBAAyB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;IACpF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAiB,IAAI,CAAC,CAAA;IAE1D,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,YAAG,SAAS,EAAE,GAAG,CAAC,MAAM,YAAG,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,GAAK,CAAA;IAClG,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,YAAG,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAC,OAAO,YAAE,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAK,CAAA;IACnI,MAAM,QAAQ,GAAG,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAA;IACpD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IACvD,MAAM,MAAM,GAAG,KAAK,EAAE,KAAgB,EAAiB,EAAE;QACvD,KAAK,CAAC,cAAc,EAAE,CAAA;QACtB,IAAI,UAAkB,CAAA;QACtB,IAAI,CAAC;YAAC,UAAU,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YACvD,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;YAC5D,OAAM;QACR,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,SAAS,CAAC,IAAI,CAAC,CAAA;QACf,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAA;YACjD,OAAO,CAAC,EAAE,CAAC,CAAA;YACX,SAAS,CAAC,EAAE,CAAC,CAAA;YACb,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAA;QAC5G,CAAC;gBAAS,CAAC;YAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QAAC,CAAC;IACjC,CAAC,CAAA;IACD,OAAO,CACL,eAAK,SAAS,EAAE,GAAG,CAAC,KAAK,aACtB,QAAQ,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,YAAG,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAC,OAAO,YAAE,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAK,EACtI,cAAK,SAAS,EAAE,GAAG,CAAC,UAAU,YAC3B,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAC,SAAS,OAA2B,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,IAA5I,MAAM,CAAC,QAAQ,CAAiI,CAAC,GACrP,EACL,CAAC,UAAU,IAAI,gBAAM,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,aACpF,aAAI,SAAS,EAAE,GAAG,CAAC,SAAS,YAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,GAAM,EACzD,gBAAO,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,EAAC,mBAAmB,YAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,GAAS,EACxF,gBAAO,EAAE,EAAC,mBAAmB,EAAC,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,GAAI,EAC1J,gBAAO,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,EAAC,qBAAqB,YAAE,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,GAAS,EAC5F,gBAAO,EAAE,EAAC,qBAAqB,EAAC,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAC,MAAM,EAAC,WAAW,EAAC,KAAK,EAAC,SAAS,EAAC,KAAK,EAAC,WAAW,EAAC,gBAAgB,EAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,GAAI,EACzP,YAAG,SAAS,EAAE,GAAG,CAAC,WAAW,YAAG,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAK,EAChE,cAAK,SAAS,EAAE,GAAG,CAAC,OAAO,YAAE,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,YAAG,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,GAAU,GAAM,IACxJ,EACP,YAAG,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAC,QAAQ,YAAE,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAK,IACxK,CACP,CAAA;AACH,CAAC;AAGD,SAAS,SAAS,CAAC,KAAmP;IACpQ,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IACpE,MAAM,GAAG,GAAG,KAAK,EAAE,SAA8B,EAAE,OAAe,EAAiB,EAAE;QACnF,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACtB,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACrB,IAAI,CAAC;YACH,MAAM,SAAS,EAAE,CAAA;YACjB,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAA;QAClH,CAAC;gBAAS,CAAC;YAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QAAC,CAAC;IACvC,CAAC,CAAA;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAA;IACnD,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS;QAClE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW;QAC1B,CAAC,CAAC,CAAC,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;YAC9F,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC;YACpC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;IACrC,OAAO,CACL,mBAAS,SAAS,EAAE,GAAG,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,aACxE,eAAK,SAAS,EAAE,GAAG,CAAC,UAAU,aAC3B,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,8BAAmB,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,GAAI,CAAC,CAAC,CAAC,2BAAS,oBAAoB,GAAU,EACrS,eAAM,SAAS,EAAE,GAAG,CAAC,UAAU,YAAG,KAAK,CAAC,MAAM,CAAC,OAAO,GAAQ,EAC9D,gBAAM,SAAS,EAAE,GAAG,CAAC,YAAY,aAAE,yBAAO,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,GAAQ,EAAC,OAAO,IAAI,yBAAO,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,GAAQ,IAAQ,IAC/L,EACN,eAAK,SAAS,EAAE,GAAG,CAAC,OAAO,aACxB,CAAC,OAAO,IAAI,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAA,CAAC,CAAC,YAAG,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,GAAU,EACvM,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,kBAAkB,IAAI,8BAC9D,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,SAAS,KAAK,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAA,CAAC,CAAC,YAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAU,EAC1R,CAAC,OAAO,IAAI,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAA,CAAC,CAAC,YAAG,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,GAAU,IAC3N,IACC,IACE,CACX,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAiE;IACvF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAChD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAiB,IAAI,CAAC,CAAA;IAC1D,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,IAAI,QAAQ;YAAE,OAAM;QACpB,YAAY,CAAC,KAAK,CAAC,CAAA;QACnB,aAAa,CAAC,EAAE,CAAC,CAAA;IACnB,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,KAAK,IAAmB,EAAE;QACtC,IAAI,KAAK,CAAC,QAAQ,IAAI,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,yBAAyB,CAAC;YAAE,OAAM;QAC/E,WAAW,CAAC,IAAI,CAAC,CAAA;QACjB,SAAS,CAAC,IAAI,CAAC,CAAA;QACf,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,cAAc,EAAE,CAAA;YAC5B,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,aAAa,CAAC,EAAE,CAAC,CAAA;YACjB,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;QAC/D,CAAC;QAAC,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;QAAC,CAAC;gBAAS,CAAC;YAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAAC,CAAC;IACvG,CAAC,CAAA;IACD,OAAO,eAAK,SAAS,EAAE,GAAG,CAAC,KAAK,aAC9B,YAAG,SAAS,EAAE,GAAG,CAAC,MAAM,YAAG,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAK,EAC1D,mBAAS,SAAS,EAAE,GAAG,CAAC,UAAU,qBAAkB,yBAAyB,aAC3E,eAAK,SAAS,EAAE,GAAG,CAAC,UAAU,aAAE,aAAI,EAAE,EAAC,yBAAyB,EAAC,SAAS,EAAE,GAAG,CAAC,WAAW,YAAG,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,GAAM,EAAA,YAAG,SAAS,EAAE,GAAG,CAAC,iBAAiB,YAAG,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAK,IAAM,EACvM,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,SAAS,EAAE,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,YAAG,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAU,EACvM,YAAG,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAC,QAAQ,YAAE,MAAM,EAAE,IAAI,IAAI,EAAE,GAAK,IAC1G,EACV,MAAC,KAAK,IAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE,EAAE,MAAM,EAAE,8BAAE,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,YAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAU,EAAA,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,SAAS,EAAE,GAAG,CAAC,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,IAAI,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,yBAAyB,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,KAAK,EAAE,CAAA,CAAC,CAAC,YAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,GAAU,IAAG,aACxiB,eAAK,SAAS,EAAE,GAAG,CAAC,YAAY,aAAE,sBAAI,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,GAAK,EAAA,sBAAI,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAK,IAAM,EAC3G,gBAAO,SAAS,EAAE,GAAG,CAAC,YAAY,EAAE,OAAO,EAAC,0BAA0B,YAAE,KAAK,CAAC,CAAC,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,yBAAyB,CAAC,EAAE,CAAC,GAAS,EAClK,gBAAO,EAAE,EAAC,0BAA0B,EAAC,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAC,KAAK,EAAC,UAAU,EAAE,KAAK,EAAE,SAAS,QAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,GAAI,IACxM,IACJ,CAAA;AACR,CAAC"}
@@ -0,0 +1,10 @@
1
+ /** One settings surface; tenant compatibility and Desktop release discovery retain separate owners. */
2
+ import { type ReactNode } from 'react';
3
+ import type { AwikiSettingsSectionProps } from './AwikiSettingsSection.tsx';
4
+ import type { AwikiTenantScopeSnapshot } from './settings-controller.ts';
5
+ type Props = Pick<AwikiSettingsSectionProps, 't' | 'refreshUpdatePolicy'> & {
6
+ snapshot: AwikiTenantScopeSnapshot;
7
+ };
8
+ export declare function AwikiUpdates(props: Props): ReactNode;
9
+ export {};
10
+ //# sourceMappingURL=AwikiUpdates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AwikiUpdates.d.ts","sourceRoot":"","sources":["../../../src/client/AwikiUpdates.tsx"],"names":[],"mappings":"AAAA,uGAAuG;AACvG,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAIhD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAGxE,KAAK,KAAK,GAAG,IAAI,CAAC,yBAAyB,EAAE,GAAG,GAAG,qBAAqB,CAAC,GAAG;IAAE,QAAQ,EAAE,wBAAwB,CAAA;CAAE,CAAA;AAElH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAsBpD"}
@@ -0,0 +1,57 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /** One settings surface; tenant compatibility and Desktop release discovery retain separate owners. */
3
+ import { useState } from 'react';
4
+ import { Button, writeClipboard } from '@deepseek-ai/dsh-client-ui-primitives';
5
+ import { DSH_AWIKI_PACKAGE_VERSION } from "../package-version.generated.js";
6
+ import { compareVersions } from "../version.js";
7
+ import css from './AwikiSettingsSection.module.css';
8
+ export function AwikiUpdates(props) {
9
+ const { snapshot, t } = props;
10
+ const desktop = snapshot.desktop;
11
+ const busy = snapshot.updateStatus === 'loading' || snapshot.desktopStatus === 'loading';
12
+ return _jsxs("div", { className: css.panel, children: [_jsx("div", { className: css.actions, children: _jsx(Button, { type: "button", variant: "outline", disabled: busy || snapshot.value.switching, onClick: () => { void props.refreshUpdatePolicy(); }, children: busy ? t('updateLoading') : t('updateCheck') }) }), desktop !== undefined && _jsxs("section", { className: css.card, "aria-label": t('desktopUpdateTitle'), children: [_jsx("h3", { className: css.cardTitle, children: t('desktopUpdateTitle') }), _jsx("p", { className: css.description, children: t('updateCurrent', { version: desktop.currentVersion }) }), _jsx("p", { className: css.description, role: "status", children: t(snapshot.desktopStatus === 'unavailable' || desktop.state === 'failed' ? 'updateFailed'
13
+ : desktop.state === 'checking' || snapshot.desktopStatus === 'loading' ? 'updateLoading'
14
+ : desktop.state === 'unchecked' ? 'updateUnchecked' : desktop.noRelease ? 'desktopNoRelease'
15
+ : desktop.updateAvailable ? 'updateAvailable' : 'updateLatest', { version: desktop.latestVersion }) }), desktop.latestVersion !== undefined && !desktop.noRelease && _jsx("p", { className: css.description, children: t('updateRecommended', { version: desktop.latestVersion }) }), desktop.usedCache && _jsx("p", { className: css.description, children: t('updateCached') }), _jsx("p", { className: css.description, children: t('desktopInstallHelp') }), _jsx("a", { href: desktop.downloadPageUrl, target: "_blank", rel: "noopener noreferrer", children: t('desktopDownloadPage') }), _jsx("code", { className: css.updateCommand, children: desktop.downloadPageUrl })] }), _jsx(PluginUpdate, { ...props }, `${snapshot.value.activeTenantId}:${snapshot.value.generation}:${snapshot.update?.upgradeCommand ?? ''}:${desktop?.distributionId ?? ''}`)] });
16
+ }
17
+ function PluginUpdate({ snapshot, t }) {
18
+ const [copyState, setCopyState] = useState('idle');
19
+ const tenant = snapshot.value.tenants.find(value => value.tenantId === snapshot.value.activeTenantId);
20
+ const update = snapshot.update?.tenantId === snapshot.value.activeTenantId ? snapshot.update : undefined;
21
+ const desktop = snapshot.desktop;
22
+ // The ordinary DSH CLI requires an explicit profile; only Desktop's terminal shim supplies it.
23
+ const command = desktop === undefined
24
+ ? update?.upgradeCommand?.replace(/^dsh plugin add /u, 'dsh plugin --profile YOUR_PROFILE add ')
25
+ : update?.upgradeCommand;
26
+ const switching = snapshot.value.switching;
27
+ const state = update?.checkState ?? (update === undefined ? 'unchecked' : update.offline ? 'failed' : update.policyUnavailable ? 'unavailable' : 'ready');
28
+ let desktopResolves = false;
29
+ try {
30
+ const bundled = desktop?.bundledVersions;
31
+ desktopResolves = desktop?.updateAvailable === true && bundled !== undefined
32
+ && update?.recommendedPluginVersion !== undefined
33
+ && compareVersions(bundled.plugin, update.recommendedPluginVersion) >= 0
34
+ && (update.currentModelProxyVersion === undefined || (update.recommendedModelProxyVersion !== undefined
35
+ && bundled.modelProxy !== undefined && compareVersions(bundled.modelProxy, update.recommendedModelProxyVersion) >= 0));
36
+ }
37
+ catch { /* Incomplete release metadata cannot promise a compatible upgrade. */ }
38
+ const copy = async () => {
39
+ if (command === undefined || switching)
40
+ return;
41
+ try {
42
+ setCopyState(await writeClipboard(command) ? 'copied' : 'failed');
43
+ }
44
+ catch {
45
+ setCopyState('failed');
46
+ }
47
+ };
48
+ return _jsxs("section", { className: css.card, "aria-label": t('updateTitle'), children: [_jsx("h3", { className: css.cardTitle, children: t('updateTitle') }), _jsx("p", { className: css.description, children: t('updateTenant', { tenant: tenant?.displayName ?? '' }) }), _jsx("p", { className: css.description, children: t('updateCurrent', { version: update?.currentPluginVersion ?? DSH_AWIKI_PACKAGE_VERSION }) }), update !== undefined && _jsx(_Fragment, { children: update.currentModelProxyVersion !== undefined && _jsx("p", { className: css.description, children: t('updateModelCurrent', { version: update.currentModelProxyVersion }) }) }), _jsx("p", { className: css.description, role: "status", children: t(switching ? 'tenantSwitching'
49
+ : snapshot.updateStatus === 'loading' ? 'updateLoading'
50
+ : snapshot.updateStatus === 'unavailable' || state === 'failed' ? 'updateFailed'
51
+ : state === 'unchecked' ? 'updateUnchecked' : state === 'unavailable' ? 'updateNoPolicy'
52
+ : update?.restricted || update?.modelProxyRestricted ? 'updateRequired'
53
+ : update?.updateAvailable ? 'updateAvailable' : 'updateLatest', { version: update?.recommendedPluginVersion }) }), update?.recommendedPluginVersion !== undefined && _jsx("p", { className: css.description, children: t('updateRecommended', { version: update.recommendedPluginVersion }) }), update?.currentModelProxyVersion !== undefined && update.recommendedModelProxyVersion !== undefined && _jsx("p", { className: css.description, children: t('updateModelRecommended', { version: update.recommendedModelProxyVersion }) }), update?.restricted && _jsx("p", { className: `${css.description} ${css.error}`, role: "alert", children: t('updateRestricted', {
54
+ current: update.currentPluginVersion, minimum: update.minimumPluginVersion, tenant: tenant?.displayName,
55
+ }) }), update?.modelProxyRestricted && _jsx("p", { className: `${css.description} ${css.error}`, role: "alert", children: t('updateModelRestricted', { minimum: update.minimumModelProxyVersion }) }), update?.usedCache && _jsx("p", { className: css.description, children: t('updateCached') }), desktop !== undefined && _jsx("p", { className: css.description, children: t(desktopResolves ? 'desktopResolvesPlugin' : 'desktopPluginHelp') }), state === 'ready' && update?.updateAvailable && command === undefined && _jsx("p", { className: css.description, children: t('updateNoCommand') }), command !== undefined && !switching && _jsxs(_Fragment, { children: [_jsx("code", { className: css.updateCommand, tabIndex: 0, children: command }), _jsx("p", { className: css.description, children: t(desktop === undefined ? 'pluginInstallHelp' : 'desktopPluginCommandHelp') }), _jsx("div", { className: css.actions, children: _jsx(Button, { type: "button", variant: "outline", onClick: () => { void copy(); }, children: t('updateCopy') }) }), _jsx("p", { className: css.description, role: "status", children: copyState === 'idle' ? '' : t(copyState === 'copied' ? 'updateCopied' : 'updateCopyFailed') })] }), _jsx("a", { href: update?.releaseNotesUrl || 'https://github.com/AgentConnect/dsh-awiki#install', target: "_blank", rel: "noopener noreferrer", children: t('updateGuide') })] });
56
+ }
57
+ //# sourceMappingURL=AwikiUpdates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AwikiUpdates.js","sourceRoot":"","sources":["../../../src/client/AwikiUpdates.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /** Browser service exposing the shared AWiki identity controller to optional clients. */
2
2
  import { Service, type Context } from '@deepseek-ai/cordis';
3
- import type { ComponentType } from 'react';
3
+ import { type ComponentType } from 'react';
4
4
  import { type AwikiIdentityAccessProps } from './AwikiIdentityAccess.tsx';
5
5
  import type { AwikiActionResult, AwikiController } from './controller.ts';
6
6
  /** Public browser-side bridge consumed by optional AWiki companion plugins. */
@@ -1 +1 @@
1
- {"version":3,"file":"awiki-client-bridge.d.ts","sourceRoot":"","sources":["../../../src/client/awiki-client-bridge.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAEzF,OAAO,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C,OAAO,EAAuB,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAC9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEzE,+EAA+E;AAC/E,qBAAa,iBAAkB,SAAQ,OAAO;IAGlB,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAF5D,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAsB;gBAE1E,GAAG,EAAE,OAAO,EAAW,QAAQ,EAAE,eAAe;IAI5D,kBAAkB,QAAa,OAAO,CAAC,iBAAiB,CAAC,CAGxD;CACF;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,WAAW,EAAE,iBAAiB,CAAA;KAC/B;CACF"}
1
+ {"version":3,"file":"awiki-client-bridge.d.ts","sourceRoot":"","sources":["../../../src/client/awiki-client-bridge.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAEzF,OAAO,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAGzD,OAAO,EAAuB,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAC9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEzE,+EAA+E;AAC/E,qBAAa,iBAAkB,SAAQ,OAAO;IAGlB,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAF5D,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAA;gBAEpD,GAAG,EAAE,OAAO,EAAW,QAAQ,EAAE,eAAe;IAK5D,kBAAkB,QAAa,OAAO,CAAC,iBAAiB,CAAC,CAGxD;CACF;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,WAAW,EAAE,iBAAiB,CAAA;KAC/B;CACF"}
@@ -1,14 +1,17 @@
1
1
  /** Browser service exposing the shared AWiki identity controller to optional clients. */
2
2
  import { Service } from '@deepseek-ai/cordis';
3
+ import { createElement } from 'react';
4
+ import { AwikiDraftProvider } from "./drafts.js";
3
5
  import { AWIKI_CLEAR_LOCAL_DATA_CONFIRMATION } from "../types.js";
4
6
  import { AwikiIdentityAccess } from "./AwikiIdentityAccess.js";
5
7
  /** Public browser-side bridge consumed by optional AWiki companion plugins. */
6
8
  export class AwikiClientBridge extends Service {
7
9
  identity;
8
- IdentityAccess = AwikiIdentityAccess;
10
+ IdentityAccess;
9
11
  constructor(ctx, identity) {
10
12
  super(ctx, 'awikiClient');
11
13
  this.identity = identity;
14
+ this.IdentityAccess = props => createElement(AwikiDraftProvider, { store: identity.drafts, children: createElement(AwikiIdentityAccess, props) });
12
15
  }
13
16
  clearLocalIdentity = async () => {
14
17
  const result = await this.identity.clearLocalData({ confirmation: AWIKI_CLEAR_LOCAL_DATA_CONFIRMATION });
@@ -1 +1 @@
1
- {"version":3,"file":"awiki-client-bridge.js","sourceRoot":"","sources":["../../../src/client/awiki-client-bridge.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAEzF,OAAO,EAAE,OAAO,EAAgB,MAAM,qBAAqB,CAAA;AAE3D,OAAO,EAAE,mCAAmC,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAiC,MAAM,0BAA2B,CAAA;AAG9F,+EAA+E;AAC/E,MAAM,OAAO,iBAAkB,SAAQ,OAAO;IAGT;IAF1B,cAAc,GAA4C,mBAAmB,CAAA;IAEtF,YAAY,GAAY,EAAW,QAAyB;QAC1D,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QADQ,aAAQ,GAAR,QAAQ,CAAiB;IAE5D,CAAC;IAED,kBAAkB,GAAG,KAAK,IAAgC,EAAE;QAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,mCAAmC,EAAE,CAAC,CAAA;QACxG,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;IAC5D,CAAC,CAAA;CACF"}
1
+ {"version":3,"file":"awiki-client-bridge.js","sourceRoot":"","sources":["../../../src/client/awiki-client-bridge.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAEzF,OAAO,EAAE,OAAO,EAAgB,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAsB,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAc,CAAA;AACjD,OAAO,EAAE,mCAAmC,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAiC,MAAM,0BAA2B,CAAA;AAG9F,+EAA+E;AAC/E,MAAM,OAAO,iBAAkB,SAAQ,OAAO;IAGT;IAF1B,cAAc,CAAyC;IAEhE,YAAY,GAAY,EAAW,QAAyB;QAC1D,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QADQ,aAAQ,GAAR,QAAQ,CAAiB;QAE1D,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;IACnJ,CAAC;IAED,kBAAkB,GAAG,KAAK,IAAgC,EAAE;QAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,mCAAmC,EAAE,CAAC,CAAA;QACxG,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;IAC5D,CAAC,CAAA;CACF"}