@hoilab/ada-cli 0.84.6 → 0.84.7

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.
@@ -676,7 +676,33 @@ export class InteractiveMode {
676
676
  await this.themeController.applyFromSettings();
677
677
  // Add header with keybindings from config (unless silenced)
678
678
  if (this.options.verbose || !this.settingsManager.getQuietStartup()) {
679
+ const accent = (text) => theme.fg("accent", text);
680
+ const dim = (text) => theme.fg("dim", text);
681
+ const muted = (text) => theme.fg("muted", text);
679
682
  const logo = theme.bold(theme.fg("accent", APP_NAME)) + theme.fg("dim", ` v${this.version}`);
683
+ // Welcome screen (central): ASCII logo + environment status + quick commands
684
+ const asciiLogo = [
685
+ " █████╗ ██████╗ █████╗",
686
+ " ██╔══██╗██╔══██╗██╔══██╗",
687
+ " ███████║██║ ██║███████║",
688
+ " ██╔══██║██║ ██║██╔══██║",
689
+ " ██║ ██║██████╔╝██║ ██║",
690
+ " ╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝",
691
+ ].join("\n");
692
+ const welcomeTagline = `${accent("Ada")} ${dim("· coding agent · HOILAB TECH")} ${muted(`v${this.version}`)}`;
693
+ // Environment status line
694
+ const defaultProvider = this.settingsManager.getDefaultProvider();
695
+ const defaultModel = this.settingsManager.getDefaultModel();
696
+ const modelLabel = defaultProvider && defaultModel
697
+ ? `${defaultProvider}/${defaultModel}`
698
+ : muted("not configured (open /model)");
699
+ const cwd = this.sessionManager.getCwd();
700
+ const memoryEnabled = this.settingsManager.getProjectMemoryEnabled();
701
+ const statusLine = [
702
+ dim(`model: ${modelLabel}`),
703
+ dim(`cwd: ${cwd}`),
704
+ dim(`memory: ${memoryEnabled ? "on" : "off"}`),
705
+ ].join(" ");
680
706
  // Build startup instructions using keybinding hint helpers
681
707
  const hint = (keybinding, description) => keyHint(keybinding, description);
682
708
  const expandedInstructions = [
@@ -708,8 +734,14 @@ export class InteractiveMode {
708
734
  hint("app.tools.expand", "more"),
709
735
  ].join(theme.fg("muted", " · "));
710
736
  const compactOnboarding = theme.fg("dim", `Press ${keyText("app.tools.expand")} to show full startup help and loaded resources.`);
711
- const onboarding = theme.fg("dim", `Pi can explain its own features and look up its docs. Ask it how to use or extend Pi.`);
712
- this.builtInHeader = new ExpandableText(() => `${logo}\n${compactInstructions}\n${compactOnboarding}\n\n${onboarding}`, () => `${logo}\n${expandedInstructions}\n\n${onboarding}`, this.getStartupExpansionState(), 1, 0);
737
+ const quickCommands = [
738
+ rawKeyHint("/new", "new conversation"),
739
+ rawKeyHint("/resume", "resume a session"),
740
+ rawKeyHint("/model", "pick a model"),
741
+ rawKeyHint("/settings", "settings"),
742
+ ].join(theme.fg("muted", " "));
743
+ const onboarding = theme.fg("dim", `Ada can explain its own features and look up its docs. Ask it how to use or extend Ada.`);
744
+ this.builtInHeader = new ExpandableText(() => `${accent(asciiLogo)}\n${welcomeTagline}\n\n${statusLine}\n\n${quickCommands}\n\n${compactInstructions}\n${compactOnboarding}`, () => `${accent(asciiLogo)}\n${welcomeTagline}\n\n${statusLine}\n\n${expandedInstructions}\n\n${onboarding}`, this.getStartupExpansionState(), 1, 0);
713
745
  // Setup UI layout
714
746
  this.headerContainer.addChild(new Spacer(1));
715
747
  this.headerContainer.addChild(this.builtInHeader);