@dsh-plugin/dsh-loader 1.3.3-dev.33218986978 → 1.3.3-dev.33722395196

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/dist/index.js CHANGED
@@ -6,8 +6,9 @@
6
6
  // ctx.reflect.provide / ctx.effect so cordis auto-recycles them on fiber
7
7
  // unload — no manual dispose is required for v1's covered capabilities.
8
8
  import { LOADER_VERSION, LOG_PREFIX } from './version.js';
9
- import { readFileSync } from 'node:fs';
10
- import { join, resolve } from 'node:path';
9
+ import { readFileSync, realpathSync, readdirSync } from 'node:fs';
10
+ import { basename, dirname, join, resolve } from 'node:path';
11
+ import { fileURLToPath } from 'node:url';
11
12
  import { AdapterRegistry, detectDshVersion, UnsupportedDshVersionError } from './registry.js';
12
13
  import { registerHostAdapters } from './adapters/index.js';
13
14
  import { createHostAPI } from './api.js';
@@ -16,27 +17,105 @@ export const name = '@dsh-plugin/dsh-loader';
16
17
  // dshloader itself depends on `webServer` so its fiber only activates once
17
18
  // the real web server is provided — the alias then points `httpServer` at it.
18
19
  export const inject = ['webServer'];
20
+ /** The npm package name profiles depend on (used by profile detection). */
21
+ const LOADER_PACKAGE = '@dsh-plugin/dsh-loader';
22
+ /**
23
+ * Locate the profile directory this loader instance is mounted into.
24
+ *
25
+ * Strategy, in order:
26
+ * 1. Self-location: under pnpm the entry's realpath resolves inside
27
+ * `<profileDir>/node_modules/...`, so walk up for an ancestor
28
+ * `node_modules` whose parent manifest declares `dsh.profile`.
29
+ * 2. Dependency scan (covers `link:` installs whose realpath escapes the
30
+ * profile): the profile manifests under `$DSH_HOME/profiles` that depend
31
+ * on this package. Unambiguous only when exactly one matches — with
32
+ * several, per-profile manifest config stays unread rather than reading
33
+ * the wrong profile (env and cordis entry config still apply).
34
+ *
35
+ * @returns the absolute profile directory, or undefined when undetectable.
36
+ */
37
+ export function detectProfileDir(opts = {}) {
38
+ try {
39
+ let dir = dirname(realpathSync(fileURLToPath(opts.moduleUrl ?? import.meta.url)));
40
+ for (let depth = 0; depth < 16; depth++) {
41
+ if (basename(dir) === 'node_modules') {
42
+ const parent = dirname(dir);
43
+ try {
44
+ const manifest = JSON.parse(readFileSync(join(parent, 'package.json'), 'utf8'));
45
+ if (manifest?.dsh?.profile !== undefined)
46
+ return parent;
47
+ }
48
+ catch {
49
+ /* keep walking */
50
+ }
51
+ }
52
+ const next = dirname(dir);
53
+ if (next === dir)
54
+ break;
55
+ dir = next;
56
+ }
57
+ }
58
+ catch {
59
+ /* fall through to the dependency scan */
60
+ }
61
+ const home = opts.dshHome ?? process.env.DSH_HOME;
62
+ if (home === undefined || home.trim() === '')
63
+ return undefined;
64
+ try {
65
+ const profilesDir = join(resolve(home), 'profiles');
66
+ const matches = readdirSync(profilesDir, { withFileTypes: true })
67
+ .filter((entry) => entry.isDirectory() && entry.name !== 'node_modules')
68
+ .filter((entry) => {
69
+ try {
70
+ const manifest = JSON.parse(readFileSync(join(profilesDir, entry.name, 'package.json'), 'utf8'));
71
+ const deps = { ...manifest.dependencies, ...manifest.devDependencies };
72
+ return Object.keys(deps).includes(LOADER_PACKAGE);
73
+ }
74
+ catch {
75
+ return false;
76
+ }
77
+ });
78
+ if (matches.length === 1)
79
+ return join(profilesDir, matches[0].name);
80
+ }
81
+ catch {
82
+ /* ignore */
83
+ }
84
+ return undefined;
85
+ }
19
86
  /**
20
87
  * Read the profile-level dshloader config (exposeAllNamespaces etc.).
21
- * Sources, in priority order:
88
+ * Sources, in priority order (first true wins):
22
89
  * 1. process.env.DSHLOADER_EXPOSE_ALL_SETTINGS=1
23
- * 2. profile package.json `dsh.dshloader.exposeAllNamespaces`
24
- * 3. profile package.json `dshLoader.settings.exposeAllNamespaces`
90
+ * 2. cordis entry config (`- id: dsh-loader` row's `config:`) — per-profile
91
+ * by construction, the officially sanctioned channel
92
+ * 3. the ACTIVE profile's package.json `dsh.dshloader.exposeAllNamespaces`
93
+ * (or legacy `dshLoader.settings.exposeAllNamespaces`), located via
94
+ * {@link detectProfileDir} — never a hardcoded profile name
25
95
  */
26
96
  export function readLoaderConfig(opts = {}) {
27
97
  const envOn = process.env.DSHLOADER_EXPOSE_ALL_SETTINGS === '1' || process.env.DSHLOADER_EXPOSE_ALL_SETTINGS === 'true';
98
+ const entryOn = Boolean(opts.config?.exposeAllNamespaces);
28
99
  let pkgOn = false;
29
- try {
30
- // Best-effort: read the profile manifest if reachable via cwd.
31
- const dir = opts.profileDir ?? join(process.env.DSH_HOME ?? '', 'profiles', 'web');
32
- const manifest = JSON.parse(readFileSync(join(resolve(dir), 'package.json'), 'utf8'));
33
- pkgOn = Boolean(manifest.dsh?.dshloader?.exposeAllNamespaces ??
34
- manifest.dshLoader?.settings?.exposeAllNamespaces);
100
+ const dir = opts.profileDir ?? detectProfileDir();
101
+ if (dir !== undefined) {
102
+ try {
103
+ const manifest = JSON.parse(readFileSync(join(resolve(dir), 'package.json'), 'utf8'));
104
+ pkgOn = Boolean(manifest.dsh?.dshloader?.exposeAllNamespaces ??
105
+ manifest.dshLoader?.settings?.exposeAllNamespaces);
106
+ }
107
+ catch {
108
+ /* ignore */
109
+ }
35
110
  }
36
- catch {
37
- /* ignore */
111
+ else if (!envOn && !entryOn) {
112
+ console.warn(`${LOG_PREFIX} could not locate the active profile directory; profile package.json config is unread. ` +
113
+ `Set DSHLOADER_EXPOSE_ALL_SETTINGS=1 or the cordis entry config (config: { exposeAllNamespaces: true }) instead.`);
38
114
  }
39
- return { exposeAllNamespaces: envOn || pkgOn };
115
+ return {
116
+ exposeAllNamespaces: envOn || entryOn || pkgOn,
117
+ hostPackageAliases: opts.config?.hostPackageAliases,
118
+ };
40
119
  }
41
120
  /**
42
121
  * Build the registry + select an adapter for the current dsh version, without
@@ -84,12 +163,15 @@ export async function applyAdapter(ctx, opts = {}) {
84
163
  return { api, factory, mode, dshVersion };
85
164
  }
86
165
  /** cordis function-plugin entry point. */
87
- export async function apply(ctx) {
166
+ export async function apply(ctx, entryConfig) {
88
167
  if (process.env.DSHLOADER_DISABLE === '1' || process.env.DSHLOADER_DISABLE === 'true') {
89
168
  console.log(`${LOG_PREFIX} disabled by env, skipping`);
90
169
  return;
91
170
  }
92
- await applyAdapter(ctx);
171
+ // Merge the cordis entry row's `config:` with env/profile-manifest sources —
172
+ // the entry config is per-profile by construction, so it outranks the
173
+ // best-effort located profile manifest.
174
+ await applyAdapter(ctx, { config: readLoaderConfig({ config: entryConfig }) });
93
175
  }
94
176
  export { LOADER_VERSION };
95
177
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -71,6 +71,59 @@ export function settingsErrorToResult(error, ns, method) {
71
71
  details: { ns, method },
72
72
  };
73
73
  }
74
+ // cordis FiberState numeric values (vendor/cordis/src/fiber.ts const enum:
75
+ // PENDING=0 … DISPOSED=4, UNLOADING=5). dsh-settings@≤0.1.2-alpha.1 defined
76
+ // the same two constants locally; cordis does not re-export the enum.
77
+ const FIBER_DISPOSED = 4;
78
+ const FIBER_UNLOADING = 5;
79
+ /** True while the fiber owning `ctx` is unloading or already disposed. */
80
+ function isFiberUnloading(ctx) {
81
+ const state = ctx?.fiber?.state;
82
+ return state === FIBER_UNLOADING || state === FIBER_DISPOSED;
83
+ }
84
+ /**
85
+ * Faithful port of dsh-settings@≤0.1.2-alpha.1 `installSettingsSection`, for
86
+ * dsh ≥ 0.1.2-alpha.2 which dropped the module export while keeping the
87
+ * settings service `register()` contract identical
88
+ * (`register(ns, schema, { base, validate })` → scope `{ get, watch }`).
89
+ *
90
+ * Semantics preserved verbatim from the upstream implementation:
91
+ * 1. wait for the settings service via `ctx.inject` (never throws when the
92
+ * service is missing — the consumer simply keeps its composition entry);
93
+ * 2. register `ns` with the composition `entry` as the `base` layer;
94
+ * 3. point the hooks' source thunk at the resolved scope;
95
+ * 4. on fiber teardown, restore the source to the plain entry and fire
96
+ * `onChange` (skipped when the fiber is already unloading);
97
+ * 5. fire `onChange` on install and on every scope change.
98
+ *
99
+ * @returns `false` only when the consumer context cannot inject (not a cordis
100
+ * context) — the caller then keeps using its composition entry, exactly as
101
+ * with the old module-missing path.
102
+ */
103
+ function installSettingsSectionFallback(consumerCtx, ns, schema, entry, hooks) {
104
+ if (typeof consumerCtx?.inject !== 'function')
105
+ return false;
106
+ consumerCtx.inject(['settings'], (sctx) => {
107
+ const scope = sctx.settings.register(ns, schema, {
108
+ base: entry,
109
+ ...(hooks.validate === undefined ? {} : { validate: hooks.validate }),
110
+ });
111
+ hooks.setSource(() => scope.get());
112
+ sctx.effect(() => () => {
113
+ if (isFiberUnloading(consumerCtx))
114
+ return;
115
+ hooks.setSource(() => entry);
116
+ hooks.onChange();
117
+ });
118
+ hooks.onChange();
119
+ scope.watch(() => {
120
+ if (isFiberUnloading(consumerCtx))
121
+ return;
122
+ hooks.onChange();
123
+ });
124
+ });
125
+ return true;
126
+ }
74
127
  /**
75
128
  * Build the `ctx.dshLoader.settings` stable API.
76
129
  */
@@ -235,13 +288,16 @@ export function createSettingsAPI(opts) {
235
288
  },
236
289
  installSection(consumerCtx, ns, schema, entry, hooks) {
237
290
  const install = module?.installSettingsSection;
238
- if (typeof install !== 'function') {
239
- console.warn(`${LOG_PREFIX}:settings.installSection @deepseek-ai/dsh-settings is unavailable; ` +
240
- 'the consumer keeps its composition entry (no user-settings layer)');
241
- return false;
291
+ if (typeof install === 'function') {
292
+ install(consumerCtx, ns, schema, entry, hooks);
293
+ return true;
242
294
  }
243
- install(consumerCtx, ns, schema, entry, hooks);
244
- return true;
295
+ // dsh 0.1.2-alpha.2 dropped the installSettingsSection module export
296
+ // (settingsNamespace → parseSettingsNamespace, also unexported) while
297
+ // keeping the settings service register() contract identical. Fall back
298
+ // to a faithful port of the alpha.1 semantics so optional-settings
299
+ // consumers keep their user layer on new versions.
300
+ return installSettingsSectionFallback(consumerCtx, ns, schema, entry, hooks);
245
301
  },
246
302
  isConflictError(error) {
247
303
  const Ctor = module?.SettingsConflictError;
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/services/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/services/settings.ts"],"names":[],"mappings":"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"}
package/dist/setup.js CHANGED
@@ -26,6 +26,19 @@ export function dshHome() {
26
26
  return env ? resolve(env) : join(process.env.HOME ?? '~', '.dsh');
27
27
  }
28
28
  export function profileDir(profileName) {
29
+ // Mirror dsh's own profile-name validation (app-boot profile.ts
30
+ // resolveProfileDir): reject separators and dot segments so a crafted name
31
+ // cannot escape $DSH_HOME/profiles — setupProfile WRITES into the resolved
32
+ // directory, so an unchecked `../../…` is a path-traversal write.
33
+ if (profileName === '' ||
34
+ profileName.includes('/') ||
35
+ profileName.includes('\\') ||
36
+ profileName === '.' ||
37
+ profileName === '..' ||
38
+ // The launcher-maintained flat module fallback lives at this sibling path.
39
+ profileName === 'node_modules') {
40
+ throw new Error(`${LOG_PREFIX} invalid profile name ${JSON.stringify(profileName)}`);
41
+ }
29
42
  return join(dshHome(), 'profiles', profileName);
30
43
  }
31
44
  function readJson(path) {
package/dist/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -90,16 +90,19 @@ export interface SettingsAPI {
90
90
  */
91
91
  namespace(id: string): any;
92
92
  /**
93
- * Install the canonical optional-settings consumer wiring (delegates to dsh's
94
- * `installSettingsSection`): register `ns` with `entry` as the `base` layer,
95
- * point the hooks' source thunk at the resolved scope while a settings service
96
- * exists, and fall back to `entry` when it goes away.
93
+ * Install the canonical optional-settings consumer wiring: register `ns`
94
+ * with `entry` as the `base` layer, point the hooks' source thunk at the
95
+ * resolved scope while a settings service exists, and fall back to `entry`
96
+ * when it goes away.
97
97
  *
98
- * Delegated rather than reimplemented the fallback and fiber semantics are
99
- * real upstream behaviour, not something a shim should copy.
98
+ * Delegates to dsh's `installSettingsSection` when the module exports it
99
+ * (dsh 0.1.2-alpha.1); on dsh 0.1.2-alpha.2 (which dropped the export
100
+ * but kept the settings service register() contract identical) the facade
101
+ * runs a faithful port of the same upstream semantics instead.
100
102
  *
101
- * @returns `true` when the wiring was installed, `false` when dsh-settings is
102
- * unavailable (the caller then keeps using its composition entry).
103
+ * @returns `true` when the wiring was installed, `false` when the caller's
104
+ * context cannot inject the settings service (the caller then keeps using
105
+ * its composition entry).
103
106
  */
104
107
  installSection<T>(ctx: any, ns: any, schema: any, entry: T, hooks: {
105
108
  setSource(current: () => T): void;
package/lib/client.js CHANGED
@@ -172,6 +172,8 @@ window.__ModuleLoader__.load({
172
172
  } } : void 0
173
173
  };
174
174
  }
175
+ const LOAD_WRAP_KEY = Symbol.for("@dsh-plugin/dsh-loader:load-wrap");
176
+ const ALIAS_FACTORY_IDS_KEY = Symbol.for("@dsh-plugin/dsh-loader:alias-factories");
175
177
  /**
176
178
  * Install dshloader into a browser-like environment.
177
179
  */
@@ -203,38 +205,61 @@ window.__ModuleLoader__.load({
203
205
  clientCtx: opts.clientCtx
204
206
  });
205
207
  win.__dshLoader__ = api;
208
+ const disposers = [];
206
209
  const loader = win.__ModuleLoader__;
207
210
  if (loader && typeof loader.load === "function") {
208
- const originalLoad = loader.load.bind(loader);
209
- loader.load = function dshloaderLoad(handoff) {
210
- const wrappedFactory = (require$1) => {
211
- const aliasedRequire = (spec) => {
212
- return require$1(packageAliases.get(spec) ?? spec);
211
+ const holder = loader;
212
+ const existing = holder[LOAD_WRAP_KEY];
213
+ if (existing !== void 0 && loader.load === existing.ours) {} else {
214
+ const original = loader.load;
215
+ const wrapped = function dshloaderLoad(handoff) {
216
+ const wrappedFactory = (require$1) => {
217
+ const aliasedRequire = (spec) => {
218
+ return require$1(packageAliases.get(spec) ?? spec);
219
+ };
220
+ return handoff.factory(aliasedRequire);
213
221
  };
214
- return handoff.factory(aliasedRequire);
222
+ return original.call(loader, {
223
+ id: handoff.id,
224
+ factory: wrappedFactory
225
+ });
226
+ };
227
+ loader.load = wrapped;
228
+ holder[LOAD_WRAP_KEY] = {
229
+ original,
230
+ ours: wrapped
215
231
  };
216
- return originalLoad({
217
- id: handoff.id,
218
- factory: wrappedFactory
232
+ disposers.push(() => {
233
+ if (loader.load === wrapped) loader.load = original;
234
+ if (holder[LOAD_WRAP_KEY]?.ours === wrapped) delete holder[LOAD_WRAP_KEY];
219
235
  });
220
- };
236
+ }
221
237
  }
238
+ const winRecord = win;
239
+ const registeredByUs = new Set(Array.isArray(winRecord[ALIAS_FACTORY_IDS_KEY]) ? winRecord[ALIAS_FACTORY_IDS_KEY] : []);
222
240
  const bootAliased = new Set(Array.isArray(win["__dshLoaderBootAliases__"]) ? win[BOOT_ALIAS_IDS_FLAG] : []);
223
- if (loader && typeof loader.load === "function") for (const [aliasId, target] of Object.entries(moduleAliases)) {
224
- if (bootAliased.has(aliasId)) continue;
225
- loader.load({
226
- id: aliasId,
227
- factory: (require$2) => {
228
- const mod = require$2(target);
229
- if (aliasId.endsWith("context-provenance.ts") || aliasId.endsWith("context-provenance")) return { contextProvenance: mod.contextProvenance };
230
- return mod;
231
- }
232
- });
241
+ if (loader && typeof loader.load === "function") {
242
+ for (const [aliasId, target] of Object.entries(moduleAliases)) {
243
+ if (bootAliased.has(aliasId) || registeredByUs.has(aliasId)) continue;
244
+ loader.load({
245
+ id: aliasId,
246
+ factory: (require$2) => {
247
+ const mod = require$2(target);
248
+ if (aliasId.endsWith("context-provenance.ts") || aliasId.endsWith("context-provenance")) return { contextProvenance: mod.contextProvenance };
249
+ return mod;
250
+ }
251
+ });
252
+ registeredByUs.add(aliasId);
253
+ }
254
+ winRecord[ALIAS_FACTORY_IDS_KEY] = [...registeredByUs];
233
255
  }
234
256
  if (exposeAllNamespaces) {
235
- installSettingsFetchInterceptor(win, bridgePrefix);
257
+ disposers.push(installSettingsFetchInterceptor(win, bridgePrefix));
236
258
  console.warn(`${LOG_PREFIX} exposeAllNamespaces enabled: bypassing official settings whitelist`);
237
259
  }
260
+ if (typeof opts.effect === "function" && disposers.length > 0) opts.effect(() => () => {
261
+ for (const dispose of disposers.splice(0)) dispose();
262
+ });
238
263
  return api;
239
264
  }
240
265
  /**
@@ -510,6 +535,14 @@ window.__ModuleLoader__.load({
510
535
  onReady();
511
536
  return true;
512
537
  }
538
+ let bridged;
539
+ const timers = /* @__PURE__ */ new Set();
540
+ if (typeof ctx.effect === "function") ctx.effect(() => () => {
541
+ if (bridged !== void 0 && bridged.conn.api === bridged.api) delete bridged.conn.api;
542
+ bridged = void 0;
543
+ for (const timer of timers) clearTimeout(timer);
544
+ timers.clear();
545
+ });
513
546
  let ready = false;
514
547
  const readyOnce = () => {
515
548
  if (ready) return;
@@ -529,14 +562,26 @@ window.__ModuleLoader__.load({
529
562
  `${REMOTE_SERVICE}.settings`
530
563
  ], (inner) => {
531
564
  const innerConn = inner.get?.(CONNECTION_SERVICE);
532
- if (innerConn !== void 0 && innerConn.api === void 0) innerConn.api = buildLegacyApiProxy({
533
- llm: inner.get?.(`${REMOTE_SERVICE}.llm`),
534
- session: inner.get?.(`${REMOTE_SERVICE}.session`),
535
- settings: inner.get?.(`${REMOTE_SERVICE}.settings`)
536
- });
565
+ if (innerConn !== void 0 && innerConn.api === void 0) {
566
+ const proxy = buildLegacyApiProxy({
567
+ llm: inner.get?.(`${REMOTE_SERVICE}.llm`),
568
+ session: inner.get?.(`${REMOTE_SERVICE}.session`),
569
+ settings: inner.get?.(`${REMOTE_SERVICE}.settings`)
570
+ });
571
+ innerConn.api = proxy;
572
+ bridged = {
573
+ conn: innerConn,
574
+ api: proxy
575
+ };
576
+ }
537
577
  readyOnce();
538
578
  });
539
- setTimeout(readyOnce, 15e3).unref?.();
579
+ const timer = setTimeout(() => {
580
+ timers.delete(timer);
581
+ readyOnce();
582
+ }, 15e3);
583
+ timer.unref?.();
584
+ timers.add(timer);
540
585
  });
541
586
  return false;
542
587
  }
@@ -1118,8 +1163,8 @@ window.__ModuleLoader__.load({
1118
1163
  if (source == null) return {};
1119
1164
  var target = {};
1120
1165
  var sourceKeys = Object.keys(source);
1121
- var key, i;
1122
- for (i = 0; i < sourceKeys.length; i++) {
1166
+ var key, i = 0;
1167
+ for (; i < sourceKeys.length; i++) {
1123
1168
  key = sourceKeys[i];
1124
1169
  if (excluded.indexOf(key) >= 0) continue;
1125
1170
  target[key] = source[key];
@@ -3235,6 +3280,10 @@ window.__ModuleLoader__.load({
3235
3280
  * facade, then publishes it both as the `dshLoaderUi` cordis service
3236
3281
  * (ordered access) and on `window.__dshLoader__.ui` (ad-hoc access from
3237
3282
  * non-cordis code).
3283
+ *
3284
+ * Every patch installClient makes (the load wrapper, the settings fetch
3285
+ * interceptor) is registered through `ctx.effect`, so fiber unload / HMR
3286
+ * reverts them instead of stacking wrappers on the shared window.
3238
3287
  */
3239
3288
  function apply(ctx) {
3240
3289
  const win = ambientWindow();
@@ -3242,7 +3291,8 @@ window.__ModuleLoader__.load({
3242
3291
  ensureDshModulesGlobal(win, ctx);
3243
3292
  const api = installClient({
3244
3293
  window: win,
3245
- clientCtx: ctx
3294
+ clientCtx: ctx,
3295
+ effect: typeof ctx.effect === "function" ? (fn) => ctx.effect(fn) : void 0
3246
3296
  });
3247
3297
  installConversationEventsCompat(ctx);
3248
3298
  ui = createUi();