@eminent337/aery 0.1.97 → 0.1.99

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.
@@ -9,6 +9,7 @@ import * as path from "node:path";
9
9
  import { getProviders } from "@eminent337/aery-ai";
10
10
  import { CombinedAutocompleteProvider, Container, fuzzyFilter, Loader, Markdown, matchesKey, ProcessTerminal, Spacer, setKeybindings, Text, TruncatedText, TUI, visibleWidth, } from "@eminent337/aery-tui";
11
11
  import { spawn, spawnSync } from "child_process";
12
+ import { formatCoreExtensionsReport } from "../../cli/doctor.js";
12
13
  import { APP_NAME, getAgentDir, getAuthPath, getDebugLogPath, getShareViewerUrl, getUpdateInstruction, VERSION, } from "../../config.js";
13
14
  import { parseSkillBlock } from "../../core/agent-session.js";
14
15
  import { SessionImportFileNotFoundError } from "../../core/agent-session-runtime.js";
@@ -17,11 +18,12 @@ import { KeybindingsManager } from "../../core/keybindings.js";
17
18
  import { createCompactionSummaryMessage } from "../../core/messages.js";
18
19
  import { defaultModelPerProvider, findExactModelReferenceMatch, resolveModelScope } from "../../core/model-resolver.js";
19
20
  import { DefaultPackageManager } from "../../core/package-manager.js";
21
+ import { checkProviderSetup } from "../../core/provider-setup-check.js";
20
22
  import { formatMissingSessionCwdPrompt, MissingSessionCwdError } from "../../core/session-cwd.js";
21
23
  import { SessionManager } from "../../core/session-manager.js";
22
24
  import { BUILTIN_SLASH_COMMANDS } from "../../core/slash-commands.js";
23
25
  import { isInstallTelemetryEnabled } from "../../core/telemetry.js";
24
- import { wireCoreExtensions } from "../../migrations.js";
26
+ import { diagnoseCoreExtensions, wireCoreExtensions } from "../../migrations.js";
25
27
  import { getChangelogPath, getNewEntries, parseChangelog } from "../../utils/changelog.js";
26
28
  import { copyToClipboard } from "../../utils/clipboard.js";
27
29
  import { extensionForImageMimeType, readClipboardImage } from "../../utils/clipboard-image.js";
@@ -2059,6 +2061,11 @@ export class InteractiveMode {
2059
2061
  this.editor.setText("");
2060
2062
  return;
2061
2063
  }
2064
+ if (text === "/extensions doctor" || text === "/extensions") {
2065
+ this.handleExtensionsDoctorCommand();
2066
+ this.editor.setText("");
2067
+ return;
2068
+ }
2062
2069
  if (text === "/login") {
2063
2070
  this.showOAuthSelector("login");
2064
2071
  this.editor.setText("");
@@ -3822,6 +3829,16 @@ export class InteractiveMode {
3822
3829
  void this.maybeWarnAboutAnthropicSubscriptionAuth();
3823
3830
  }
3824
3831
  }
3832
+ const providerCheck = checkProviderSetup(providerId, providerName, this.session.modelRegistry);
3833
+ if (providerCheck.level === "ok") {
3834
+ this.showStatus(providerCheck.message);
3835
+ }
3836
+ else if (providerCheck.level === "warning") {
3837
+ this.showWarning(providerCheck.message);
3838
+ }
3839
+ else {
3840
+ this.showError(providerCheck.message);
3841
+ }
3825
3842
  }
3826
3843
  async showApiKeyLoginDialog(providerId, providerName) {
3827
3844
  const previousModel = this.session.model;
@@ -4279,6 +4296,15 @@ export class InteractiveMode {
4279
4296
  this.chatContainer.addChild(new DynamicBorder());
4280
4297
  this.ui.requestRender();
4281
4298
  }
4299
+ handleExtensionsDoctorCommand() {
4300
+ const agentDir = getAgentDir();
4301
+ const repoPath = path.join(agentDir, "git", "github.com", "eminent337", "aery-extensions");
4302
+ const settingsPath = path.join(agentDir, "settings.json");
4303
+ const diagnostic = diagnoseCoreExtensions(repoPath, settingsPath);
4304
+ this.chatContainer.addChild(new Spacer(1));
4305
+ this.chatContainer.addChild(new Text(formatCoreExtensionsReport(diagnostic), 1, 0));
4306
+ this.ui.requestRender();
4307
+ }
4282
4308
  /**
4283
4309
  * Capitalize keybinding for display (e.g., "ctrl+c" -> "Ctrl+C").
4284
4310
  */