@calltelemetry/cli 0.5.14 → 0.5.16

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 (44) hide show
  1. package/dist/commands/shell.d.ts +2 -0
  2. package/dist/commands/shell.d.ts.map +1 -1
  3. package/dist/commands/shell.js +58 -4
  4. package/dist/commands/shell.js.map +1 -1
  5. package/dist/index.js +0 -0
  6. package/dist/lib/version.d.ts +1 -1
  7. package/dist/lib/version.js +1 -1
  8. package/dist/shell/commands/diag.d.ts.map +1 -1
  9. package/dist/shell/commands/diag.js +38 -9
  10. package/dist/shell/commands/diag.js.map +1 -1
  11. package/dist/shell/commands/registry.d.ts.map +1 -1
  12. package/dist/shell/commands/registry.js +26 -17
  13. package/dist/shell/commands/registry.js.map +1 -1
  14. package/dist/shell/commands/system.d.ts +2 -1
  15. package/dist/shell/commands/system.d.ts.map +1 -1
  16. package/dist/shell/commands/system.js +183 -42
  17. package/dist/shell/commands/system.js.map +1 -1
  18. package/dist/shell/footer.d.ts.map +1 -1
  19. package/dist/shell/footer.js +20 -2
  20. package/dist/shell/footer.js.map +1 -1
  21. package/dist/shell/network-onboarding.d.ts +5 -0
  22. package/dist/shell/network-onboarding.d.ts.map +1 -1
  23. package/dist/shell/network-onboarding.js +86 -17
  24. package/dist/shell/network-onboarding.js.map +1 -1
  25. package/dist/shell/repl.d.ts.map +1 -1
  26. package/dist/shell/repl.js +27 -8
  27. package/dist/shell/repl.js.map +1 -1
  28. package/dist/ui/views/JtapiDisableView.d.ts +6 -0
  29. package/dist/ui/views/JtapiDisableView.d.ts.map +1 -0
  30. package/dist/ui/views/JtapiDisableView.js +52 -0
  31. package/dist/ui/views/JtapiDisableView.js.map +1 -0
  32. package/dist/ui/views/JtapiEnableView.d.ts +6 -0
  33. package/dist/ui/views/JtapiEnableView.d.ts.map +1 -0
  34. package/dist/ui/views/JtapiEnableView.js +40 -0
  35. package/dist/ui/views/JtapiEnableView.js.map +1 -0
  36. package/dist/ui/views/JtapiStatusView.d.ts +6 -0
  37. package/dist/ui/views/JtapiStatusView.d.ts.map +1 -0
  38. package/dist/ui/views/JtapiStatusView.js +11 -0
  39. package/dist/ui/views/JtapiStatusView.js.map +1 -0
  40. package/dist/ui/views/JtapiTroubleshootView.d.ts +6 -0
  41. package/dist/ui/views/JtapiTroubleshootView.d.ts.map +1 -0
  42. package/dist/ui/views/JtapiTroubleshootView.js +114 -0
  43. package/dist/ui/views/JtapiTroubleshootView.js.map +1 -0
  44. package/package.json +1 -1
@@ -4,14 +4,16 @@
4
4
  import { existsSync, readdirSync, statSync } from 'node:fs';
5
5
  import { join } from 'node:path';
6
6
  import { copyFile } from 'node:fs/promises';
7
- import { fetchLatestVersion } from '../../lib/bundle.js';
7
+ import { fetchLatestVersion, fetchAvailableVersions } from '../../lib/bundle.js';
8
8
  import { getCurrentVersion } from '../../lib/update.js';
9
+ import { compareVersions } from '../../utils/version.js';
9
10
  import { preflightSteps, executeSteps } from '../../lib/update-steps.js';
10
11
  import { updateCli } from '../../lib/auto-update.js';
11
12
  import { composeUp } from '../../lib/compose.js';
12
13
  import { getPaths } from '../../lib/paths.js';
13
14
  import { resolveSchedule, writeServiceUnit, writeTimerUnit, enableTimer, disableTimer, } from '../../lib/os-updates.js';
14
- import { banner, statusLine, stepProgress } from '../formatter.js';
15
+ import { banner, statusLine, stepProgress, kv } from '../formatter.js';
16
+ import chalk from 'chalk';
15
17
  // Re-import db handlers for aliases
16
18
  import { handleBackup as dbBackup, handleRestore as dbRestore } from './db.js';
17
19
  // ── Shared step runner for shell output ─────────────────────────────────────
@@ -29,20 +31,67 @@ async function runSteps(steps) {
29
31
  }
30
32
  }
31
33
  }
34
+ // ── version direction helpers ────────────────────────────────────────────────
35
+ function versionDirection(current, target) {
36
+ const cmp = compareVersions(target, current);
37
+ if (cmp > 0)
38
+ return { label: '↑ UPGRADE', color: chalk.green };
39
+ if (cmp < 0)
40
+ return { label: '↓ DOWNGRADE', color: chalk.red };
41
+ return { label: '= SAME VERSION', color: chalk.gray };
42
+ }
43
+ function isPreRelease(v) {
44
+ return /-rc\d+/.test(v);
45
+ }
46
+ function versionTag(v, current, stable) {
47
+ const parts = [];
48
+ if (v === current)
49
+ parts.push(chalk.yellow('★ Current'));
50
+ if (v === stable)
51
+ parts.push(chalk.green('Stable'));
52
+ if (isPreRelease(v))
53
+ parts.push(chalk.dim('Pre-Release'));
54
+ return parts.length ? ` ${parts.join(' ')}` : '';
55
+ }
32
56
  // ── system update check ─────────────────────────────────────────────────────
33
57
  export async function handleUpdateCheck(_args, _opts, _ctx) {
34
58
  try {
35
59
  console.log(banner('Update Check'));
36
60
  const currentVersion = getCurrentVersion();
37
- console.log(statusLine(`Current version: ${currentVersion}`, 'info'));
38
- console.log(stepProgress('Fetching latest stable version', 'running'));
39
- const latest = await fetchLatestVersion('stable');
40
- console.log(stepProgress('Fetching latest stable version', 'done', latest));
41
- if (currentVersion === latest) {
61
+ console.log(stepProgress('Fetching versions', 'running'));
62
+ const [stable, latest, versions] = await Promise.all([
63
+ fetchLatestVersion('stable').catch(() => null),
64
+ fetchLatestVersion('latest').catch(() => null),
65
+ fetchAvailableVersions().catch(() => []),
66
+ ]);
67
+ console.log(stepProgress('Fetching versions', 'done'));
68
+ console.log();
69
+ console.log(kv([
70
+ ['Current', currentVersion],
71
+ ...(stable ? [['Stable', stable]] : []),
72
+ ...(latest && latest !== stable ? [['Latest', latest]] : []),
73
+ ]));
74
+ console.log();
75
+ if (stable && currentVersion !== stable) {
76
+ const dir = versionDirection(currentVersion, stable);
77
+ console.log(statusLine(`${dir.label} available: ${stable}`, 'warn', `run 'system update apply' to update`));
78
+ }
79
+ else if (stable) {
42
80
  console.log(statusLine('System is up to date', 'ok'));
43
81
  }
44
- else {
45
- console.log(statusLine(`Update available: ${latest}`, 'warn', `run 'system update apply' to upgrade`));
82
+ // Show recent available versions
83
+ if (versions.length > 0) {
84
+ console.log();
85
+ console.log(chalk.bold(' Available versions:'));
86
+ const show = versions.slice(0, 10);
87
+ for (const v of show) {
88
+ const dir = versionDirection(currentVersion, v);
89
+ const tag = versionTag(v, currentVersion, stable);
90
+ console.log(` ${dir.color(v)}${tag}`);
91
+ }
92
+ if (versions.length > 10) {
93
+ console.log(chalk.dim(` ... and ${versions.length - 10} more`));
94
+ }
46
95
  }
47
96
  }
48
97
  catch (err) {
@@ -51,18 +100,45 @@ export async function handleUpdateCheck(_args, _opts, _ctx) {
51
100
  }
52
101
  }
53
102
  // ── system update apply [version] ───────────────────────────────────────────
54
- export async function handleUpdateApply(args, _opts, _ctx) {
103
+ export async function handleUpdateApply(args, _opts, ctx) {
55
104
  try {
56
105
  console.log(banner('System Update'));
106
+ const currentVersion = getCurrentVersion();
57
107
  let version = args[0];
108
+ let stable = null;
58
109
  if (!version) {
59
110
  console.log(stepProgress('Fetching latest stable version', 'running'));
60
- version = await fetchLatestVersion('stable');
111
+ stable = await fetchLatestVersion('stable');
112
+ version = stable;
61
113
  console.log(stepProgress('Fetching latest stable version', 'done', version));
62
114
  }
63
- const currentVersion = getCurrentVersion();
64
- console.log(statusLine(`Current: ${currentVersion}`, 'info'));
65
- console.log(statusLine(`Target: ${version}`, 'info'));
115
+ // Version comparison summary
116
+ const dir = versionDirection(currentVersion, version);
117
+ console.log();
118
+ console.log(kv([
119
+ ['Current', currentVersion],
120
+ ['Target', version],
121
+ ['Direction', dir.label],
122
+ ]));
123
+ console.log();
124
+ // Downgrade warning
125
+ if (compareVersions(version, currentVersion) < 0) {
126
+ console.log(chalk.red.bold(' ⚠ DOWNGRADE WARNING'));
127
+ console.log(chalk.red(` You are downgrading from ${currentVersion} to ${version}.`));
128
+ console.log(chalk.red(' This may cause data incompatibilities or loss of features.'));
129
+ console.log();
130
+ }
131
+ // Pre-release notice
132
+ if (isPreRelease(version)) {
133
+ console.log(chalk.yellow(` ℹ ${version} is a pre-release version.`));
134
+ console.log();
135
+ }
136
+ // Confirmation
137
+ const confirmed = await askConfirm(ctx, `Proceed with update to ${version}?`);
138
+ if (!confirmed) {
139
+ console.log(statusLine('Update cancelled', 'info'));
140
+ return;
141
+ }
66
142
  console.log();
67
143
  // Preflight
68
144
  console.log(banner('Preflight Checks'));
@@ -72,11 +148,68 @@ export async function handleUpdateApply(args, _opts, _ctx) {
72
148
  console.log(banner('Applying Update'));
73
149
  await runSteps(executeSteps(version));
74
150
  console.log();
75
- console.log(statusLine('Update complete', 'ok'));
151
+ // Success summary
152
+ console.log(banner('Update Complete'));
153
+ console.log(kv([
154
+ ['Previous', currentVersion],
155
+ ['Updated to', version],
156
+ ]));
157
+ console.log();
158
+ console.log(statusLine('Update successful', 'ok'));
76
159
  }
77
160
  catch (err) {
78
161
  const msg = err instanceof Error ? err.message : String(err);
79
- console.log(statusLine(`Update failed: ${msg}`, 'fail'));
162
+ // Classify error for recovery hints
163
+ const isNetwork = /curl|timeout|connection|dns|fetch|pull|download/i.test(msg);
164
+ console.log();
165
+ console.log(statusLine('Update failed', 'fail', msg));
166
+ console.log();
167
+ if (isNetwork) {
168
+ console.log(chalk.yellow(' Network error detected. Check connectivity and retry:'));
169
+ console.log(chalk.dim(' system update apply'));
170
+ }
171
+ else {
172
+ console.log(chalk.dim(' Your previous version is still running. Safe to retry:'));
173
+ console.log(chalk.dim(' system update apply'));
174
+ console.log(chalk.dim(' Or rollback to last known good:'));
175
+ console.log(chalk.dim(' system update rollback'));
176
+ }
177
+ }
178
+ }
179
+ // ── system update versions ──────────────────────────────────────────────────
180
+ export async function handleUpdateVersions(_args, _opts, _ctx) {
181
+ try {
182
+ console.log(banner('Available Versions'));
183
+ const currentVersion = getCurrentVersion();
184
+ console.log(stepProgress('Fetching versions', 'running'));
185
+ const [stable, versions] = await Promise.all([
186
+ fetchLatestVersion('stable').catch(() => null),
187
+ fetchAvailableVersions(),
188
+ ]);
189
+ console.log(stepProgress('Fetching versions', 'done', `${versions.length} versions`));
190
+ console.log();
191
+ if (versions.length === 0) {
192
+ console.log(statusLine('No versions found', 'info'));
193
+ return;
194
+ }
195
+ // Show stable recommendation at top
196
+ if (stable) {
197
+ const sDir = versionDirection(currentVersion, stable);
198
+ console.log(chalk.bold.green(` ★ ${stable} Recommended (Stable) ${sDir.color(sDir.label)}`));
199
+ console.log();
200
+ }
201
+ // List all versions with direction and tags
202
+ for (const v of versions) {
203
+ const dir = versionDirection(currentVersion, v);
204
+ const tag = versionTag(v, currentVersion, stable);
205
+ console.log(` ${dir.color(v)} ${chalk.dim(dir.label)}${tag}`);
206
+ }
207
+ console.log();
208
+ console.log(chalk.dim(` To apply: system update apply <version>`));
209
+ }
210
+ catch (err) {
211
+ const msg = err instanceof Error ? err.message : String(err);
212
+ console.log(statusLine(`Failed to fetch versions: ${msg}`, 'fail'));
80
213
  }
81
214
  }
82
215
  // ── system update history ───────────────────────────────────────────────────
@@ -263,31 +396,9 @@ export async function handleShutdown(_args, _opts, ctx) {
263
396
  export function wireSystemHandlers(systemNode) {
264
397
  if (!systemNode.children)
265
398
  return;
399
+ const findChild = (node, name) => node.children?.find(c => c.name === name);
266
400
  for (const child of systemNode.children) {
267
401
  switch (child.name) {
268
- case 'update':
269
- if (child.children) {
270
- for (const uc of child.children) {
271
- switch (uc.name) {
272
- case 'check':
273
- uc.handler = handleUpdateCheck;
274
- break;
275
- case 'apply':
276
- uc.handler = handleUpdateApply;
277
- break;
278
- case 'history':
279
- uc.handler = handleUpdateHistory;
280
- break;
281
- case 'rollback':
282
- uc.handler = handleUpdateRollback;
283
- break;
284
- }
285
- }
286
- }
287
- break;
288
- case 'self-update':
289
- child.handler = handleSelfUpdate;
290
- break;
291
402
  case 'backup':
292
403
  child.handler = handleSystemBackup;
293
404
  break;
@@ -300,9 +411,38 @@ export function wireSystemHandlers(systemNode) {
300
411
  case 'shutdown':
301
412
  child.handler = handleShutdown;
302
413
  break;
303
- case 'os-updates':
304
- if (child.children) {
305
- for (const oc of child.children) {
414
+ case 'update': {
415
+ // system update app ...
416
+ const appNode = findChild(child, 'app');
417
+ if (appNode?.children) {
418
+ for (const ac of appNode.children) {
419
+ switch (ac.name) {
420
+ case 'check':
421
+ ac.handler = handleUpdateCheck;
422
+ break;
423
+ case 'apply':
424
+ ac.handler = handleUpdateApply;
425
+ break;
426
+ case 'history':
427
+ ac.handler = handleUpdateHistory;
428
+ break;
429
+ case 'rollback':
430
+ ac.handler = handleUpdateRollback;
431
+ break;
432
+ case 'versions':
433
+ ac.handler = handleUpdateVersions;
434
+ break;
435
+ }
436
+ }
437
+ }
438
+ // system update cli
439
+ const cliNode = findChild(child, 'cli');
440
+ if (cliNode)
441
+ cliNode.handler = handleSelfUpdate;
442
+ // system update os ...
443
+ const osNode = findChild(child, 'os');
444
+ if (osNode?.children) {
445
+ for (const oc of osNode.children) {
306
446
  switch (oc.name) {
307
447
  case 'enable':
308
448
  oc.handler = handleOsUpdatesEnable;
@@ -317,6 +457,7 @@ export function wireSystemHandlers(systemNode) {
317
457
  }
318
458
  }
319
459
  break;
460
+ }
320
461
  }
321
462
  }
322
463
  }
@@ -1 +1 @@
1
- {"version":3,"file":"system.js","sourceRoot":"","sources":["../../../src/shell/commands/system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system.js","sourceRoot":"","sources":["../../../src/shell/commands/system.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAmB,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,YAAY,GAEb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,oCAAoC;AACpC,OAAO,EAAE,YAAY,IAAI,QAAQ,EAAE,aAAa,IAAI,SAAS,EAAE,MAAM,SAAS,CAAC;AAE/E,+EAA+E;AAE/E,KAAK,UAAU,QAAQ,CAAC,KAAmB;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YACnD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF,SAAS,gBAAgB,CAAC,OAAe,EAAE,MAAc;IACvD,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAC/D,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IAC/D,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,UAAU,CAAC,CAAS,EAAE,OAAe,EAAE,MAAqB;IACnE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,KAAK,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,IAAI,YAAY,CAAC,CAAC,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAC1D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAe,EAAE,KAA6B,EAAE,IAAkB;IACxG,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QACpC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;QAE3C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnD,kBAAkB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC9C,kBAAkB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC9C,sBAAsB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAc,CAAC;SACrD,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACb,CAAC,SAAS,EAAE,cAAc,CAAC;YAC3B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAqB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAqB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACjF,CAAC,CAAC,CAAC;QACJ,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,IAAI,MAAM,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,KAAK,eAAe,MAAM,EAAE,EAAE,MAAM,EAAE,qCAAqC,CAAC,CAAC,CAAC;QAC9G,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,iCAAiC;QACjC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,GAAG,GAAG,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;gBAChD,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,wBAAwB,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAc,EAAE,KAA6B,EAAE,GAAiB;IACtG,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;QAErC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;QAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,MAAM,GAAkB,IAAI,CAAC;QAEjC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,gCAAgC,EAAE,SAAS,CAAC,CAAC,CAAC;YACvE,MAAM,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC5C,OAAO,GAAG,MAAM,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,gCAAgC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/E,CAAC;QAED,6BAA6B;QAC7B,MAAM,GAAG,GAAG,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACb,CAAC,SAAS,EAAE,cAAc,CAAC;YAC3B,CAAC,QAAQ,EAAE,OAAO,CAAC;YACnB,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC;SACzB,CAAC,CAAC,CAAC;QACJ,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,oBAAoB;QACpB,IAAI,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,cAAc,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC;YACtF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC,CAAC;YACvF,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAED,qBAAqB;QACrB,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,OAAO,4BAA4B,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAED,eAAe;QACf,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,0BAA0B,OAAO,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,YAAY;QACZ,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACxC,MAAM,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,iBAAiB;QACjB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACvC,MAAM,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,kBAAkB;QAClB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACb,CAAC,UAAU,EAAE,cAAc,CAAC;YAC5B,CAAC,YAAY,EAAE,OAAO,CAAC;SACxB,CAAC,CAAC,CAAC;QACJ,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE7D,oCAAoC;QACpC,MAAM,SAAS,GAAG,kDAAkD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE/E,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yDAAyD,CAAC,CAAC,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAe,EAAE,KAA6B,EAAE,IAAkB;IAC3G,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAE1C,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC,CAAC;QAE1D,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC3C,kBAAkB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC9C,sBAAsB,EAAE;SACzB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,mBAAmB,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC;QACtF,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,oCAAoC;QACpC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,MAAM,2BAA2B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YAChG,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAED,4CAA4C;QAC5C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YAChD,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,6BAA6B,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAAe,EAAE,KAA6B,EAAE,IAAkB;IAC1G,IAAI,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAEtC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC;aACnC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aAClE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;aACnE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,2BAA2B,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,KAAK,UAAU,oBAAoB,CAAC,KAAe,EAAE,KAA6B,EAAE,IAAkB;IACpG,IAAI,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,QAAQ,EAAE,CAAC;QAE9C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAEvC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC;aACnC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aAClE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;aACnE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC,CAAC;YACpE,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,0BAA0B,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAElF,MAAM,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAExC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC,CAAC;QAE5D,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAExB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAe,EAAE,KAA6B,EAAE,IAAkB;IACvG,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/H,MAAM,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,uBAAuB,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAc,EAAE,IAA4B,EAAE,GAAiB;IACtG,MAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAc,EAAE,IAA4B,EAAE,GAAiB;IACvG,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAc,EAAE,KAA6B,EAAE,IAAkB;IAC3G,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;IACxC,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAE9C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,qBAAqB,WAAW,GAAG,EAAE,MAAM,EAAE,+BAA+B,CAAC,CAAC,CAAC;QACtG,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC,CAAC;QAChE,MAAM,gBAAgB,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC,CAAC;QAE7D,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,uBAAuB,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9E,MAAM,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC,CAAC;QAE3D,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC,CAAC;QACvD,MAAM,WAAW,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;QAEpD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,yBAAyB,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,gCAAgC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAAe,EAAE,KAA6B,EAAE,IAAkB;IAC7G,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC,CAAC;QAEhE,MAAM,YAAY,EAAE,CAAC;QAErB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,iCAAiC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,KAAe,EAAE,KAA6B,EAAE,IAAkB;IACzG,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC,CAAC;QAE3D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACnD,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;QAEzD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,qBAAqB,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED,2EAA2E;AAE3E,SAAS,UAAU,CAAC,GAAiB,EAAE,MAAc;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE;YACjD,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAe,EAAE,KAA6B,EAAE,GAAiB;IAClG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,6CAA6C,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC;IAC5E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;QACpD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACnD,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,kBAAkB,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,2EAA2E;AAE3E,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAe,EAAE,KAA6B,EAAE,GAAiB;IACpG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,uEAAuE,EAAE,MAAM,CAAC,CAAC,CAAC;IACzG,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,kEAAkE,CAAC,CAAC;IAC5G,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACnD,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,MAAM,UAAU,kBAAkB,CAAC,UAAuB;IACxD,IAAI,CAAC,UAAU,CAAC,QAAQ;QAAE,OAAO;IAEjC,MAAM,SAAS,GAAG,CAAC,IAAiB,EAAE,IAAY,EAAE,EAAE,CACpD,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAE5C,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,QAAQ;gBACX,KAAK,CAAC,OAAO,GAAG,kBAAkB,CAAC;gBACnC,MAAM;YACR,KAAK,SAAS;gBACZ,KAAK,CAAC,OAAO,GAAG,mBAAmB,CAAC;gBACpC,MAAM;YACR,KAAK,QAAQ;gBACX,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC;gBAC7B,MAAM;YACR,KAAK,UAAU;gBACb,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC;gBAC/B,MAAM;YACR,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,wBAAwB;gBACxB,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACxC,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;oBACtB,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;wBAClC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;4BAChB,KAAK,OAAO;gCAAE,EAAE,CAAC,OAAO,GAAG,iBAAiB,CAAC;gCAAC,MAAM;4BACpD,KAAK,OAAO;gCAAE,EAAE,CAAC,OAAO,GAAG,iBAAiB,CAAC;gCAAC,MAAM;4BACpD,KAAK,SAAS;gCAAE,EAAE,CAAC,OAAO,GAAG,mBAAmB,CAAC;gCAAC,MAAM;4BACxD,KAAK,UAAU;gCAAE,EAAE,CAAC,OAAO,GAAG,oBAAoB,CAAC;gCAAC,MAAM;4BAC1D,KAAK,UAAU;gCAAE,EAAE,CAAC,OAAO,GAAG,oBAAoB,CAAC;gCAAC,MAAM;wBAC5D,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,oBAAoB;gBACpB,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACxC,IAAI,OAAO;oBAAE,OAAO,CAAC,OAAO,GAAG,gBAAgB,CAAC;gBAChD,uBAAuB;gBACvB,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACtC,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;oBACrB,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACjC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;4BAChB,KAAK,QAAQ;gCAAE,EAAE,CAAC,OAAO,GAAG,qBAAqB,CAAC;gCAAC,MAAM;4BACzD,KAAK,SAAS;gCAAE,EAAE,CAAC,OAAO,GAAG,sBAAsB,CAAC;gCAAC,MAAM;4BAC3D,KAAK,KAAK;gCAAE,EAAE,CAAC,OAAO,GAAG,kBAAkB,CAAC;gCAAC,MAAM;wBACrD,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../src/shell/footer.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAyClD"}
1
+ {"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../src/shell/footer.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAyDlD"}
@@ -3,6 +3,7 @@ import os from 'node:os';
3
3
  import { Box, thresholdColor } from './theme.js';
4
4
  import { meterBar } from './sparkline.js';
5
5
  import { VERSION } from '../lib/version.js';
6
+ import { getCurrentVersion } from '../lib/update.js';
6
7
  /**
7
8
  * Render a single-line metrics footer after each command.
8
9
  *
@@ -39,10 +40,27 @@ export async function renderFooter() {
39
40
  const cpuBar = meterBar(cpuPct, 8);
40
41
  const ramBar = meterBar(ramPct, 8);
41
42
  const diskBar = meterBar(diskPct, 8);
43
+ // Get primary IP address with CIDR
44
+ let ipAddr = '';
45
+ try {
46
+ const nets = os.networkInterfaces();
47
+ for (const [name, addrs] of Object.entries(nets)) {
48
+ if (!addrs || /^(lo|docker|br-|veth|virbr)/.test(name))
49
+ continue;
50
+ const v4 = addrs.find(a => a.family === 'IPv4' && !a.internal);
51
+ if (v4) {
52
+ ipAddr = `${v4.address}/${v4.cidr?.split('/')[1] ?? '24'}`;
53
+ break;
54
+ }
55
+ }
56
+ }
57
+ catch { /* leave empty */ }
42
58
  const sep = chalk.dim(` ${Box.v} `);
43
59
  const line = chalk.dim(Box.h.repeat(width));
44
- const versionStr = chalk.dim(`v${VERSION}`);
45
- const metrics = `${chalk.bold('CPU')} ${cpuBar}${sep}${chalk.bold('RAM')} ${ramBar}${sep}${chalk.bold('Disk')} ${diskBar}${sep}${versionStr}`;
60
+ const appVersion = getCurrentVersion();
61
+ const ipStr = ipAddr ? chalk.cyan(ipAddr) : chalk.red('no IP');
62
+ const info = `${ipStr}${sep}${chalk.dim(`CLI v${VERSION}`)}${sep}${chalk.dim(`App ${appVersion}`)}`;
63
+ const metrics = `${chalk.bold('CPU')} ${cpuBar}${sep}${chalk.bold('RAM')} ${ramBar}${sep}${chalk.bold('Disk')} ${diskBar}${sep}${info}`;
46
64
  console.log(line);
47
65
  console.log(metrics);
48
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"footer.js","sourceRoot":"","sources":["../../src/shell/footer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"footer.js","sourceRoot":"","sources":["../../src/shell/footer.ts"],"names":[],"mappings":"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"}
@@ -33,4 +33,9 @@ export declare function applyDhcp(iface: string): boolean;
33
33
  * Runs once (when NETWORK_SENTINEL does not exist) before the shell starts.
34
34
  */
35
35
  export declare function runNetworkOnboarding(): Promise<void>;
36
+ /**
37
+ * Interactive preferences wizard for first-boot configuration.
38
+ * Asks about optional features and saves to ~/.ct/preferences.json.
39
+ */
40
+ export declare function runPreferencesOnboarding(): Promise<void>;
36
41
  //# sourceMappingURL=network-onboarding.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"network-onboarding.d.ts","sourceRoot":"","sources":["../../src/shell/network-onboarding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,eAAO,MAAM,gBAAgB,+BAA+B,CAAC;AAQ7D,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAI7C;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAKrD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAGvE;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMzD;AAID,uEAAuE;AACvE,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAKpD;AAED,mDAAmD;AACnD,wBAAgB,WAAW,IAAI,MAAM,CAMpC;AAED,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM1D;AAED,6DAA6D;AAC7D,wBAAgB,aAAa,IAAI,IAAI,CAIpC;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAoBT;AAED,qDAAqD;AACrD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAiBhD;AAWD;;;GAGG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsC1D"}
1
+ {"version":3,"file":"network-onboarding.d.ts","sourceRoot":"","sources":["../../src/shell/network-onboarding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,eAAO,MAAM,gBAAgB,+BAA+B,CAAC;AAQ7D,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAI7C;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAKrD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAGvE;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMzD;AAID,uEAAuE;AACvE,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAKpD;AAED,mDAAmD;AACnD,wBAAgB,WAAW,IAAI,MAAM,CAMpC;AAED,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM1D;AAED,6DAA6D;AAC7D,wBAAgB,aAAa,IAAI,IAAI,CAIpC;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAoBT;AAED,qDAAqD;AACrD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAiBhD;AAWD;;;GAGG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CA+C1D;AAID;;;GAGG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CA8D9D"}
@@ -12,6 +12,7 @@ import * as readline from 'node:readline';
12
12
  import { execSync, spawnSync } from 'node:child_process';
13
13
  import { writeFileSync } from 'node:fs';
14
14
  import chalk from 'chalk';
15
+ import { loadPrefs, savePrefs } from '../lib/prefs.js';
15
16
  export const NETWORK_SENTINEL = '/etc/ct-network-configured';
16
17
  const DEFAULT_DNS1 = '8.8.8.8';
17
18
  const DEFAULT_DNS2 = '8.8.4.4';
@@ -138,35 +139,103 @@ function makeAsker(rl) {
138
139
  */
139
140
  export async function runNetworkOnboarding() {
140
141
  console.log('');
141
- console.log(chalk.bold.cyan(' Call Telemetry — Network Setup'));
142
+ console.log(chalk.bold.cyan(' Call Telemetry — First-Boot Setup'));
142
143
  console.log(chalk.dim(' ────────────────────────────────────────'));
143
- // If DHCP already provided an IP, skip
144
+ // If DHCP already provided an IP, skip network wizard
144
145
  const existingIp = detectCurrentIp();
145
146
  if (existingIp) {
146
147
  writeSentinel();
147
148
  console.log(chalk.green(` ✓ Network ready (DHCP): ${existingIp}`));
148
- console.log(chalk.dim(' Continuing to management shell...\n'));
149
- return;
150
149
  }
151
- const iface = detectIface();
152
- console.log(chalk.dim(` Interface : ${iface}`));
153
- console.log(chalk.dim(' No IP address detected — configure network to reach the web UI.'));
150
+ else {
151
+ // Run network setup
152
+ console.log('');
153
+ console.log(chalk.bold.cyan(' Step 1 — Network Configuration'));
154
+ console.log(chalk.dim(' ────────────────────────────────────────'));
155
+ const iface = detectIface();
156
+ console.log(chalk.dim(` Interface : ${iface}`));
157
+ console.log(chalk.dim(' No IP address detected — configure network to reach the web UI.'));
158
+ console.log('');
159
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal: true });
160
+ const ask = makeAsker(rl);
161
+ try {
162
+ console.log(chalk.cyan(' Network mode:'));
163
+ console.log(chalk.dim(' 1 Static IP'));
164
+ console.log(chalk.dim(' 2 DHCP (auto)'));
165
+ console.log('');
166
+ const mode = (await ask(chalk.bold(' Choice [1]: '))).trim() || '1';
167
+ if (mode === '2') {
168
+ await runDhcp(rl, ask, iface);
169
+ }
170
+ else {
171
+ await runStaticIp(rl, ask, iface);
172
+ }
173
+ }
174
+ finally {
175
+ rl.close();
176
+ }
177
+ }
178
+ // Run preferences wizard if prefs haven't been configured yet
179
+ if (!loadPrefs()) {
180
+ await runPreferencesOnboarding();
181
+ }
182
+ console.log(chalk.dim(' Continuing to management shell...\n'));
183
+ }
184
+ // ── Preferences Onboarding ──────────────────────────────────────────────────
185
+ /**
186
+ * Interactive preferences wizard for first-boot configuration.
187
+ * Asks about optional features and saves to ~/.ct/preferences.json.
188
+ */
189
+ export async function runPreferencesOnboarding() {
190
+ console.log('');
191
+ console.log(chalk.bold.cyan(' Step 2 — Appliance Preferences'));
192
+ console.log(chalk.dim(' ────────────────────────────────────────'));
193
+ console.log(chalk.dim(' Configure optional features. Press Enter to accept defaults.'));
154
194
  console.log('');
155
195
  const rl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal: true });
156
196
  const ask = makeAsker(rl);
157
197
  try {
158
- // ── Mode selection ──────────────────────────────────────────────────
159
- console.log(chalk.cyan(' Network mode:'));
160
- console.log(chalk.dim(' 1 Static IP'));
161
- console.log(chalk.dim(' 2 DHCP (auto)'));
198
+ const prefs = {
199
+ autoUpdate: false,
200
+ ipv6: false,
201
+ otel: false,
202
+ jtapi: false,
203
+ deploymentMode: 'docker-compose',
204
+ k8sNamespace: 'ct',
205
+ k8sEnvironment: 'ct-dev',
206
+ };
207
+ // Auto-updates
208
+ const autoUpdate = (await ask(chalk.bold(' Enable automatic CLI updates? [Y/n]: '))).trim().toLowerCase();
209
+ prefs.autoUpdate = autoUpdate !== 'n' && autoUpdate !== 'no';
210
+ console.log(prefs.autoUpdate ? chalk.green(' ✓ Auto-updates enabled') : chalk.dim(' ○ Auto-updates disabled'));
211
+ // IPv6
212
+ const ipv6 = (await ask(chalk.bold(' Enable IPv6 support? [y/N]: '))).trim().toLowerCase();
213
+ prefs.ipv6 = ipv6 === 'y' || ipv6 === 'yes';
214
+ console.log(prefs.ipv6 ? chalk.green(' ✓ IPv6 enabled') : chalk.dim(' ○ IPv6 disabled'));
215
+ // OpenTelemetry
216
+ const otel = (await ask(chalk.bold(' Enable OpenTelemetry tracing? [y/N]: '))).trim().toLowerCase();
217
+ prefs.otel = otel === 'y' || otel === 'yes';
218
+ console.log(prefs.otel ? chalk.green(' ✓ OpenTelemetry enabled') : chalk.dim(' ○ OpenTelemetry disabled'));
219
+ // JTAPI phone control
220
+ const jtapi = (await ask(chalk.bold(' Enable JTAPI phone control? [y/N]: '))).trim().toLowerCase();
221
+ prefs.jtapi = jtapi === 'y' || jtapi === 'yes';
222
+ console.log(prefs.jtapi ? chalk.green(' ✓ JTAPI enabled') : chalk.dim(' ○ JTAPI disabled'));
223
+ // Summary
162
224
  console.log('');
163
- const mode = (await ask(chalk.bold(' Choice [1]: '))).trim() || '1';
164
- if (mode === '2') {
165
- await runDhcp(rl, ask, iface);
166
- }
167
- else {
168
- await runStaticIp(rl, ask, iface);
225
+ console.log(chalk.cyan(' Preferences Summary'));
226
+ console.log(chalk.dim(' ────────────────────────────────────────'));
227
+ console.log(` Auto-updates : ${prefs.autoUpdate ? chalk.green('Yes') : chalk.dim('No')}`);
228
+ console.log(` IPv6 : ${prefs.ipv6 ? chalk.green('Yes') : chalk.dim('No')}`);
229
+ console.log(` OpenTelemetry : ${prefs.otel ? chalk.green('Yes') : chalk.dim('No')}`);
230
+ console.log(` JTAPI : ${prefs.jtapi ? chalk.green('Yes') : chalk.dim('No')}`);
231
+ console.log('');
232
+ const confirm = (await ask(chalk.bold(' Save preferences? [Y/n]: '))).trim().toLowerCase();
233
+ if (confirm === 'n' || confirm === 'no') {
234
+ console.log(chalk.yellow(' Skipped — defaults will be used. Edit later with: config preferences'));
235
+ return;
169
236
  }
237
+ savePrefs(prefs);
238
+ console.log(chalk.green(' ✓ Preferences saved'));
170
239
  }
171
240
  finally {
172
241
  rl.close();