@qodalis/cli 2.4.2 → 2.5.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qodalis/cli",
3
- "version": "2.4.2",
3
+ "version": "2.5.1",
4
4
  "description": "Framework-agnostic CLI engine for @qodalis terminal applications.",
5
5
  "author": "Nicolae Lupei, Qodalis Solutions",
6
6
  "license": "MIT",
@@ -30,7 +30,7 @@
30
30
  "./assets/*": "./assets/*"
31
31
  },
32
32
  "dependencies": {
33
- "@qodalis/cli-core": "2.4.2",
33
+ "@qodalis/cli-core": "2.5.1",
34
34
  "@xterm/xterm": "^6.0.0",
35
35
  "@xterm/addon-fit": "^0.11.0",
36
36
  "@xterm/addon-web-links": "^0.12.0",
package/public-api.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { ICliCommandProcessor, ICliCommandParameterDescriptor as ICliCommandParameterDescriptor$1, ICliCommandProcessorRegistry, ICliCommandChildProcessor, CliProcessorMetadata, CliStateConfiguration, ICliExecutionContext, CliProcessCommand, ICliCommandAuthor, ICliCommandControls, CliThemeInfo, ICliExecutionProcess, ICliUserSession, ICliSpinner, ICliPercentageProgressBar, ICliTextAnimator, ICliTerminalWriter, ICliCommandExecutorService, ICliClipboard, ICliStateStore, CliOptions, ICliLogger, ICliServiceProvider, ICliTranslationService, ICliInputReader, ICliBackgroundServiceRegistry, ICliHttpClient, ICliNotifier, ICliManagedInterval, ICliManagedTimer, ICliEventBus, ICliKeyValueStore, CliStateStoreOptions, ICliCompletionProvider, ICliFilePickerProvider, CliFullScreenOptions, ICliProcessRegistry, ICliBackgroundService, ICliServiceContext, ICliBackgroundServiceInfo, ICliServiceLogEntry, CliServiceEventHandler, ICliGlobalParameterHandler, CliForegroundColor, CliBackgroundColor, CliToken, CliProvider, CliTableOptions, CliLogLevel, CliPercentageProgressBarUpdateValueOptions, CliTextAnimatorOptions, ICliModule, CliModuleRegistry, Package, ICliPingServerService, CliLineOptions, CliSelectOption, CliSelectOptions, CliMultiSelectOption, CliMultiSelectOptions, CliNumberOptions, CliDateOptions, CliFilePickerOptions, CliFileResult, ICliProcessRegisterOptions, ICliProcessEntry, ICliDragDropService, CliHttpRequestOptions, CliNotification, ICliPermissionRegistry, CliPermissionDefinition, CliBranding, CliState, CliEngineSnapshot, CliEvent, CliEventType, CliEventMap, CliEmitOptions, CustomEventType, CliEventHandler, CliServerConfig, ICliServerAuthService, CliServerCommandDescriptor, CliServerCapabilities, CliServerResponse, CliServerOutput, CliPanelPosition, CliPanelConfig, CliPanelHideAlignment, ICliPanelRef, CliPanelThemeInput, CliPanelState } from '@qodalis/cli-core';
1
+ import { ICliCommandProcessor, ICliCommandParameterDescriptor as ICliCommandParameterDescriptor$1, ICliCommandProcessorRegistry, ICliCommandChildProcessor, CliProcessorMetadata, CliStateConfiguration, ICliExecutionContext, CliProcessCommand, ICliCommandAuthor, ICliCommandControls, CliThemeInfo, ICliExecutionProcess, ICliUserSession, ICliSpinner, ICliPercentageProgressBar, ICliTextAnimator, ICliTerminalWriter, ICliCommandExecutorService, ICliClipboard, ICliStateStore, CliOptions, ICliLogger, ICliServiceProvider, ICliTranslationService, ICliInputReader, ICliBackgroundServiceRegistry, ICliHttpClient, ICliNotifier, ICliManagedInterval, ICliManagedTimer, ICliEventBus, ICliKeyValueStore, CliStateStoreOptions, ICliCompletionProvider, ICliFilePickerProvider, CliFullScreenOptions, ICliProcessRegistry, ICliBackgroundService, ICliServiceContext, ICliBackgroundServiceInfo, ICliServiceLogEntry, CliServiceEventHandler, ICliGlobalParameterHandler, CliForegroundColor, CliBackgroundColor, CliToken, CliProvider, CliTableOptions, CliLogLevel, CliPercentageProgressBarUpdateValueOptions, CliTextAnimatorOptions, ICliModule, CliModuleRegistry, Package, ICliPingServerService, CliLineOptions, CliSelectOption, CliSelectOptions, CliMultiSelectOption, CliMultiSelectOptions, CliNumberOptions, CliDateOptions, CliFilePickerOptions, CliFileResult, ICliProcessRegisterOptions, ICliProcessEntry, ICliDragDropService, CliHttpRequestOptions, CliNotification, ICliPermissionRegistry, CliPermissionDefinition, CliBranding, CliState, CliEngineSnapshot, CliEvent, CliEventType, CliEventMap, CliEmitOptions, CustomEventType, CliEventHandler, CliServerConfig, ICliServerAuthService, CliServerCommandDescriptor, CliServerCapabilities, CliServerResponse, CliServerOutput, ICliSecretStore, CliPanelPosition, CliPanelConfig, CliPanelHideAlignment, ICliPanelRef, CliPanelThemeInput, CliPanelState } from '@qodalis/cli-core';
2
2
  export { ICliUserSessionService_TOKEN, ICliUsersStoreService_TOKEN } from '@qodalis/cli-core';
3
3
  import { ITheme, Terminal, ITerminalAddon, ITerminalOptions, ITerminalInitOnlyOptions } from '@xterm/xterm';
4
4
  import * as rxjs from 'rxjs';
@@ -165,7 +165,7 @@ declare const CliKeyValueStore_TOKEN: any;
165
165
  */
166
166
  declare const SyntaxHighlighterRegistry_TOKEN: any;
167
167
 
168
- declare const LIBRARY_VERSION = "2.4.2";
168
+ declare const LIBRARY_VERSION = "2.5.1";
169
169
  declare const API_VERSION = 2;
170
170
 
171
171
  declare class CliAliasCommandProcessor implements ICliCommandProcessor {
@@ -2889,6 +2889,14 @@ interface CliEngineOptions extends CliOptions {
2889
2889
  * @default true
2890
2890
  */
2891
2891
  autoFocus?: boolean;
2892
+ /**
2893
+ * Scroll the scrollback with a finger on touch screens (xterm.js has no
2894
+ * touch scrolling, so a drag would scroll the page instead). Paused while
2895
+ * a full-screen command runs. Turn it off when the host scrolls the
2896
+ * terminal itself.
2897
+ * @default true
2898
+ */
2899
+ touchScroll?: boolean;
2892
2900
  }
2893
2901
  declare class CliEngine {
2894
2902
  private readonly container;
@@ -2903,6 +2911,7 @@ declare class CliEngine {
2903
2911
  private resizeObserver?;
2904
2912
  private resizeListener?;
2905
2913
  private wheelListener?;
2914
+ private disposeTouchScroll?;
2906
2915
  private resizeVersion;
2907
2916
  private resizeScheduled;
2908
2917
  private bootService?;
@@ -2953,7 +2962,10 @@ declare class CliEngine {
2953
2962
  private beginBootReport;
2954
2963
  /** 4. Environment variables, background services, server auth and manager. */
2955
2964
  private registerRuntimeServices;
2956
- /** 4. Connect to the configured servers, one boot step each. */
2965
+ /**
2966
+ * 4. Connect to the configured servers, one boot step each, then to the
2967
+ * servers the user linked (`server add`).
2968
+ */
2957
2969
  private connectServers;
2958
2970
  /**
2959
2971
  * 5. Built-in welcome and server modules, the app's modules, and the
@@ -3275,6 +3287,7 @@ declare class CliServerProxyProcessor implements ICliCommandProcessor {
3275
3287
  parameters?: ICliCommandParameterDescriptor$1[];
3276
3288
  processors?: ICliCommandProcessor[];
3277
3289
  acceptsRawInput?: boolean;
3290
+ writeDescription?: (context: ICliExecutionContext) => void;
3278
3291
  /** Full command path from root to this processor (e.g. ["aws", "lambda", "list"]) */
3279
3292
  private readonly commandPath;
3280
3293
  constructor(connection: CliServerConnection, descriptor: CliServerCommandDescriptor, serverName: string, isNested?: boolean, parentPath?: string[]);
@@ -3299,7 +3312,9 @@ declare class CliServerMultiProxyProcessor implements ICliCommandProcessor {
3299
3312
  private readonly entries;
3300
3313
  private readonly provider;
3301
3314
  command: string;
3315
+ aliases?: string[];
3302
3316
  description?: string;
3317
+ writeDescription?: (context: ICliExecutionContext) => void;
3303
3318
  metadata?: CliProcessorMetadata;
3304
3319
  parameters?: ICliCommandParameterDescriptor$1[];
3305
3320
  processors?: ICliCommandProcessor[];
@@ -3332,16 +3347,42 @@ declare class CliServerManager implements DefaultServerProvider {
3332
3347
  private readonly _bareAliases;
3333
3348
  private _backgroundServices?;
3334
3349
  private _hidden;
3350
+ /** Servers the user linked (`server add`), as opposed to the host's */
3351
+ private readonly _linked;
3335
3352
  /** `server:command` pairs already warned about, so each warns once */
3336
3353
  private readonly _warnedHidden;
3337
3354
  constructor(registry: ICliCommandProcessorRegistry, authService?: ICliServerAuthService, events?: ICliEventBus);
3355
+ /** Whether the user linked this server (`server add`): only those can be removed or edited. */
3356
+ isLinked(name: string): boolean;
3338
3357
  get defaultServer(): string | null;
3339
3358
  preferredServer(): string | null;
3340
3359
  setDefaultServer(name: string | null): void;
3360
+ /** Where connections report and run (set once at boot, before any server connects). */
3361
+ configure(logger?: {
3362
+ warn(msg: string): void;
3363
+ info(msg: string): void;
3364
+ }, backgroundServices?: ICliBackgroundServiceRegistry, cliLogger?: ICliLogger): void;
3341
3365
  connectAll(servers: CliServerConfig[], logger?: {
3342
3366
  warn(msg: string): void;
3343
3367
  info(msg: string): void;
3344
3368
  }, backgroundServices?: ICliBackgroundServiceRegistry, cliLogger?: ICliLogger): Promise<void>;
3369
+ /**
3370
+ * Connects one server and registers its commands (without the bare
3371
+ * aliases: callers refresh them once every server is connected).
3372
+ */
3373
+ private connectServer;
3374
+ /**
3375
+ * Connects a server added while the terminal runs (`server add`): its
3376
+ * commands are available at once. Throws when the name is taken.
3377
+ */
3378
+ addServer(config: CliServerConfig, options?: {
3379
+ linked?: boolean;
3380
+ }): Promise<CliServerConnection>;
3381
+ /**
3382
+ * Disconnects a server and forgets it (`server remove`): its commands go
3383
+ * away. False when there is no such server.
3384
+ */
3385
+ removeServer(name: string): boolean;
3345
3386
  reconnect(name: string): Promise<{
3346
3387
  success: boolean;
3347
3388
  commandCount: number;
@@ -3358,6 +3399,11 @@ declare class CliServerManager implements DefaultServerProvider {
3358
3399
  private unregisterBareAliases;
3359
3400
  private registerProxyProcessors;
3360
3401
  private registerBareAliases;
3402
+ /**
3403
+ * The server's aliases of a command that no registered command answers
3404
+ * to yet: a local command (or an earlier server alias) keeps its name.
3405
+ */
3406
+ private freeAliases;
3361
3407
  private recordHidden;
3362
3408
  }
3363
3409
 
@@ -3419,6 +3465,151 @@ declare function describeShellClose(event: {
3419
3465
  reason?: string;
3420
3466
  }, serverName: string): string | null;
3421
3467
 
3468
+ /** A server linked with `server add` (its token is kept apart, in the secret store). */
3469
+ interface CliLinkedServer {
3470
+ name: string;
3471
+ url: string;
3472
+ /** Epoch milliseconds. */
3473
+ addedAt: number;
3474
+ }
3475
+ /** Server names: a letter or digit, then letters, digits, `-` and `_` (at most 32). */
3476
+ declare const SERVER_NAME_PATTERN: RegExp;
3477
+ /** `https://` added when no scheme is given; trailing slashes dropped. Null for anything but http(s). */
3478
+ declare function normalizeServerUrl(input: string): string | null;
3479
+ /** Loopback, private (RFC 1918, link-local, ULA) or `.local` host names: http is allowed for them. */
3480
+ declare function isPrivateHost(hostname: string): boolean;
3481
+ /** What `server add` must check about a URL before using it. */
3482
+ interface CliServerUrlCheck {
3483
+ url: string;
3484
+ /** http to a private host: allowed after a confirmation. */
3485
+ insecure: boolean;
3486
+ /** An http server from an https page: the browser blocks the requests. */
3487
+ mixedContent: boolean;
3488
+ }
3489
+ /**
3490
+ * Normalises and checks a server URL: https anywhere, http only to private
3491
+ * hosts. Returns the reason as a string when refused.
3492
+ */
3493
+ declare function checkServerUrl(input: string, pageProtocol?: string): CliServerUrlCheck | string;
3494
+ /** Whether host options allow linking this URL (`userServers`). */
3495
+ declare function userServersAllow(options: CliOptions | undefined, url: string): boolean;
3496
+ /** Whether linking is switched on at all. */
3497
+ declare function userServersEnabled(options: CliOptions | undefined): boolean;
3498
+ /** A name from the URL's host: `api.example.com` → `api`, `localhost:8047` → `localhost-8047`. */
3499
+ declare function suggestServerName(url: string, taken: (name: string) => boolean): string;
3500
+ /** `qcli_pat_…abcd` → `••••abcd`. */
3501
+ declare function maskToken(token: string | undefined): string;
3502
+ /**
3503
+ * The command as kept in the history: values of `--token` and `--password`
3504
+ * replaced by `***`.
3505
+ */
3506
+ declare function redactSecrets(command: string): string;
3507
+ /**
3508
+ * The linked servers and their tokens: the list in the key-value store, each
3509
+ * token in the secret store.
3510
+ */
3511
+ declare class CliLinkedServers {
3512
+ private readonly kv;
3513
+ private readonly secrets;
3514
+ constructor(kv: ICliKeyValueStore, secrets: ICliSecretStore);
3515
+ list(): Promise<CliLinkedServer[]>;
3516
+ get(name: string): Promise<CliLinkedServer | undefined>;
3517
+ /** Saves a server (replacing one with the same name) and its token (none: deleted). */
3518
+ save(server: CliLinkedServer, token: string | undefined): Promise<void>;
3519
+ setToken(name: string, token: string): Promise<void>;
3520
+ token(name: string): Promise<string | undefined>;
3521
+ remove(name: string): Promise<boolean>;
3522
+ /** Removes every linked server and every secret. */
3523
+ clear(): Promise<void>;
3524
+ }
3525
+ /**
3526
+ * The connection config of a linked server: the token (kept in memory once
3527
+ * read) sent as a bearer header; sockets use the users plugin's tickets.
3528
+ */
3529
+ declare function linkedServerConfig(server: CliLinkedServer, token: string | undefined): CliServerConfig;
3530
+
3531
+ /**
3532
+ * The default {@link ICliSecretStore}: each secret encrypted with AES-GCM (own
3533
+ * random IV) by a 256-bit key that Web Crypto never exports, both kept in the
3534
+ * key-value store (IndexedDB). Reading the database gives ciphertext only; the
3535
+ * key cannot be read out, only used by this origin.
3536
+ */
3537
+ declare class CliWebCryptoSecretStore implements ICliSecretStore {
3538
+ private readonly kv;
3539
+ /** Null: no Web Crypto (an insecure page). */
3540
+ private readonly crypto;
3541
+ private keyPromise;
3542
+ constructor(kv: ICliKeyValueStore,
3543
+ /** Null: no Web Crypto (an insecure page). */
3544
+ crypto?: Crypto | null);
3545
+ isAvailable(): boolean;
3546
+ get(key: string): Promise<string | undefined>;
3547
+ set(key: string, value: string): Promise<void>;
3548
+ delete(key: string): Promise<void>;
3549
+ clear(): Promise<void>;
3550
+ /** The saved key, or a new one (created once, even for parallel calls). */
3551
+ private key;
3552
+ }
3553
+
3554
+ type CliFetch = (input: string, init?: RequestInit) => Promise<Response>;
3555
+ /** What `server add` shows about a server before linking it. */
3556
+ interface CliServerProbe {
3557
+ /** The server's version (capabilities), when it says. */
3558
+ version?: string;
3559
+ capabilities: CliServerCapabilities | null;
3560
+ /** Whether the commands need a sign-in (401/403 without a token). */
3561
+ needsSignIn: boolean;
3562
+ }
3563
+ /** A link request: the code to compare and the page where the user approves it. */
3564
+ interface CliLinkRequest {
3565
+ linkId: string;
3566
+ userCode: string;
3567
+ /** Absolute (resolved against the server URL). */
3568
+ verificationUrl: string;
3569
+ expiresIn: number;
3570
+ interval: number;
3571
+ }
3572
+ type CliLinkPoll = {
3573
+ status: 'pending';
3574
+ } | {
3575
+ status: 'denied';
3576
+ } | {
3577
+ status: 'expired';
3578
+ } | {
3579
+ status: 'approved';
3580
+ token: string;
3581
+ userName?: string;
3582
+ };
3583
+ /** Text from a server, safe to print: control characters (terminal escapes) dropped. */
3584
+ declare function plainText(value: unknown): string;
3585
+ /**
3586
+ * Whether `url` is a Qodalis CLI server: `GET /api/qcli/versions` answers with
3587
+ * its supported versions. Throws with the reason when not.
3588
+ */
3589
+ declare function probeServer(fetchFn: CliFetch, url: string): Promise<CliServerProbe>;
3590
+ /** Starts a link request; null when the server has no link endpoint (older servers, no users plugin). */
3591
+ declare function requestLink(fetchFn: CliFetch, url: string, client: string): Promise<CliLinkRequest | null>;
3592
+ /** One poll of a link request. */
3593
+ declare function pollLink(fetchFn: CliFetch, url: string, linkId: string): Promise<CliLinkPoll>;
3594
+ /**
3595
+ * Signs in with a password, creates an API token named `tokenName` with that
3596
+ * session, then ends the session: only the token is kept.
3597
+ */
3598
+ declare function createTokenWithPassword(fetchFn: CliFetch, url: string, username: string, password: string, tokenName: string): Promise<string>;
3599
+ /** "Qodalis CLI on <platform>" for link requests and token names (`[A-Za-z0-9._ -]` only). */
3600
+ declare function deviceName(appName?: string): string;
3601
+
3602
+ /** The secret store: the host's ({@link ICliSecretStore_TOKEN}) or the Web Crypto one. */
3603
+ declare function secretStoreOf(context: Pick<ICliExecutionContext, 'services'>): ICliSecretStore;
3604
+ /** The linked servers of this terminal. */
3605
+ declare function linkedServersOf(context: Pick<ICliExecutionContext, 'services'>): CliLinkedServers;
3606
+ /**
3607
+ * Connects the servers linked with `server add` (boot, after the host's
3608
+ * servers). Host servers win a name clash; servers the host options no longer
3609
+ * allow are skipped.
3610
+ */
3611
+ declare function restoreLinkedServers(context: Pick<ICliExecutionContext, 'services' | 'options'>, manager: CliServerManager, warn: (message: string) => void): Promise<void>;
3612
+
3422
3613
  /**
3423
3614
  * Result of executing a command through the test harness.
3424
3615
  */
@@ -3983,6 +4174,11 @@ declare class CliPanelController implements ICliPanelRef<CliEngine> {
3983
4174
  private readonly onSystemSchemeChange;
3984
4175
  /** A terminal in the panel changed theme: follow the first one. */
3985
4176
  private readonly onTerminalTheme;
4177
+ /**
4178
+ * A wheel over the panel chrome (header, icon strip, empty pane) would
4179
+ * scroll the page behind it; the terminals already keep their own wheel.
4180
+ */
4181
+ private readonly onPanelWheel;
3986
4182
  /**
3987
4183
  * Phone browsers open the keyboard over the page and shrink only the visual
3988
4184
  * viewport; follow it so the panel stays above the keyboard.
@@ -4171,5 +4367,5 @@ interface PanelStatusDropdown {
4171
4367
  /** The open services or servers dropdown, or null when neither is open. */
4172
4368
  declare function openStatusDropdown(s: CliPanelSnapshot): PanelStatusDropdown | null;
4173
4369
 
4174
- export { API_VERSION, CLI_ENV_GLOBAL_PERMISSION, CLI_FRAMEWORK_SERVICE, CLOSE_GLYPH, CLOSE_ICON, CapturingTerminalWriter, CliAliasCommandProcessor, CliArgsParser, CliBackgroundServiceRegistry_TOKEN, CliBoot, CliBootLog, CliBootLog_TOKEN, CliCalCommandProcessor, CliCaptureCommandProcessor, CliClearCommandProcessor, CliClipboard, CliClipboardCommandProcessor, CliColorCommandProcessor, CliCommandExecutionContext, CliCommandExecutor, CliCommandHistory, CliCommandHistory_TOKEN, CliCommandProcessorRegistry, CliConfigureCommandProcessor, CliConvertCommandProcessor, CliDebugCommandProcessor, CliDefaultPingServerService, CliDiffCommandProcessor, CliDragDropService, CliEchoCommandProcessor, CliEngine, CliEnvCommandProcessor, CliEnvironment, CliEvalCommandProcessor, CliEventsCommandProcessor, CliExecutionContext, CliExecutionProcess, CliExportCommandProcessor, CliFalseCommandProcessor, CliFeedbackCommandProcessor, CliFontSizeCommandProcessor, CliFullScreenManager, CliHelpCommandProcessor, CliHistoryCommandProcessor, CliHotKeysCommandProcessor, CliHtopCommandProcessor, CliHttpClient, CliInputReader, CliJsonCommandProcessor, CliKeyValueStore, CliKeyValueStore_TOKEN, CliKillCommandProcessor, CliLogger, CliLoremCommandProcessor, CliModuleRegistry_TOKEN, CliNanoCommandProcessor, CliNotifier, CliOpenCommandProcessor, CliPackageManagerService, CliPackageManagerService_TOKEN, CliPackagesCommandProcessor, CliPanelController, CliPanelStatusTracker, CliPermissionRegistry, CliPingCommandProcessor, CliProcessRegistry, CliProcessRegistry_TOKEN, CliProcessorsRegistry_TOKEN, CliPsCommandProcessor, CliRandomCommandProcessor, CliScreenCommandProcessor, CliScriptSyntaxError, CliSeqCommandProcessor, CliServerCommandProcessor, CliServerConnection, CliServerManager, CliServerManager_TOKEN, CliServerMultiProxyProcessor, CliServerProxyProcessor, CliServiceContainer, CliServicesCommandProcessor, CliSleepCommandProcessor, CliSnippetCommandProcessor, CliSshCommandProcessor, CliStateStore, CliStateStoreManager, CliStateStoreManager_TOKEN, CliTerminalProgressBar, CliTerminalSpinner, CliTerminalTextAnimator, CliTerminalWriter, CliTestCommandProcessor, CliTestHarness, CliThemeCommandProcessor, CliTimeCommandProcessor, CliTimerManager, CliTimestampCommandProcessor, CliTrueCommandProcessor, CliUnAliasCommandProcessor, CliUnameCommandProcessor, CliUnsetCommandProcessor, CliUptimeCommandProcessor, CliVersionCommandProcessor, CliYesCommandProcessor, CommandParser, DEFAULT_CLI_NAME, DEFAULT_GLOBAL_STATUS, DEFAULT_PANEL_HEIGHT, DEFAULT_PANEL_WIDTH, DEFAULT_TAB_STATUS, ERROR_ICON, EXEC_POLL_MS, GLOBAL_POLL_MS, HIDE_ICON, HIDE_TAB_TERMINAL_ICON, ICliEnvironment_TOKEN, ICliPingServerService_TOKEN, ICliScriptRunner_TOKEN, JsFallbackAccelerator, LIBRARY_VERSION, MAXIMIZE_ICON, MIN_PANEL_SIZE, MIN_PANE_WIDTH_PERCENT, OverlayAddon, PANEL_LABELS, PANEL_POSITIONS, ProcessExitedError, RESTORE_ICON, SERVICES_ICON, SUCCESS_ICON, SVG_COMMON_ATTRS, SVG_VIEW_BOX, ScriptLoaderService, SyntaxHighlighterRegistry_TOKEN, TERMINAL_ICON, UPTIME_ICON, appendOutputToFile, appendStderrToFile, applyEnvironmentChange, builtinProcessors, capitalize, clampPanelSize, cliScriptRunner, collapseChevronIcon, computeDiff, computeGlobalStatus, computeTabStatus, contextGlobalParameter, contextMenuItems, contextMenuStyle, createCliEngine, createServerModule, defaultFontSize, describeShellClose, distributePaneWidths, dropdownAnchorStyle, executeOnServer, expandBraces, expandEnvironmentVars, expandGlobs, formatDiff, formatUptime, getAccelerator, getCliNameArt, getGreetingBasedOnTime, getTerminalOptions, glowLineClass, greetingModule, groupBy, handleRenameKey, helpGlobalParameter, hideTabChevronIcon, hotkeysInfo, initWasmAccelerator, initializeServices, initializeTerminal, interruptCommand, isHorizontalPosition, isWasmAccelerated, joinClasses, killProcess, matchGlob, mergeCliOptions, miscProcessors, nextRowsCommand, normalizePaneWidths, openLink, openStatusDropdown, paneClass, paneStyle, panelBranding, panelTabClass, panelTabDotClass, panelWrapperClass, panelWrapperStyle, panesContainerClass, panesContainerWidth, parseAssignments, parseScript, positionDropdownItemClass, positionIcon, positionOptions, reconcileArgs, renderServerResponse, renderSingleOutput, resizePaneWidths, resizedPanelSize, resolveCliBranding, resolveCliHostConfig, runContextMenuAction, runScript, splitWords, statusIndicators, substituteCommands, substituteVars, svgAttrs, systemProcessors, tabDotClass, themeInfos, themes, tryExecuteScript, versionGlobalParameter, waitForLayout, welcomeModule, writeOutputToFile, writeStderrToFile };
4175
- export type { AnchorRect, CdnSourceName, CliBootLogOptions, CliEngineOptions, CliEnvironmentChange, CliEnvironmentProfile, CliEnvironmentScope, CliEnvironmentSnapshot, CliEnvironmentSource, CliExecutionContextDeps, CliHiddenServerCommand, CliHostConfig, CliPanelCallbacks, CliPanelContextMenu, CliPanelControlledState, CliPanelControllerOptions, CliPanelExecutionState, CliPanelGlobalStatus, CliPanelPane, CliPanelServerDetail, CliPanelServerState, CliPanelServiceDetail, CliPanelSnapshot, CliPanelStatusTrackerListener, CliPanelTab, CliPanelTabStatus, CliPanelViewport, CliTestResult, CliWelcomeMessageConfig, CommandParserOutput, CommandPart, ConfigureState, CreateCliEngineConfig, DefaultServerProvider, DiffLine, DiffType, ICliEnvironment, ICliExecutionHost, ICliScriptRunOptions, ICliScriptRunner, ICliStateStoreManager, ICliWasmAccelerator, InitializeServicesOptions, InitializeServicesResult, MultiProxyEntry, PanelContextMenuAction, PanelContextMenuItem, PanelDropdownRow, PanelPositionOption, PanelStatusDropdown, PanelStatusIndicator, ParsedArg, ParsedToken, ResolvedCliBranding, SvgIcon, SvgShape, TerminalSetupResult, ThemeState };
4370
+ export { API_VERSION, CLI_ENV_GLOBAL_PERMISSION, CLI_FRAMEWORK_SERVICE, CLOSE_GLYPH, CLOSE_ICON, CapturingTerminalWriter, CliAliasCommandProcessor, CliArgsParser, CliBackgroundServiceRegistry_TOKEN, CliBoot, CliBootLog, CliBootLog_TOKEN, CliCalCommandProcessor, CliCaptureCommandProcessor, CliClearCommandProcessor, CliClipboard, CliClipboardCommandProcessor, CliColorCommandProcessor, CliCommandExecutionContext, CliCommandExecutor, CliCommandHistory, CliCommandHistory_TOKEN, CliCommandProcessorRegistry, CliConfigureCommandProcessor, CliConvertCommandProcessor, CliDebugCommandProcessor, CliDefaultPingServerService, CliDiffCommandProcessor, CliDragDropService, CliEchoCommandProcessor, CliEngine, CliEnvCommandProcessor, CliEnvironment, CliEvalCommandProcessor, CliEventsCommandProcessor, CliExecutionContext, CliExecutionProcess, CliExportCommandProcessor, CliFalseCommandProcessor, CliFeedbackCommandProcessor, CliFontSizeCommandProcessor, CliFullScreenManager, CliHelpCommandProcessor, CliHistoryCommandProcessor, CliHotKeysCommandProcessor, CliHtopCommandProcessor, CliHttpClient, CliInputReader, CliJsonCommandProcessor, CliKeyValueStore, CliKeyValueStore_TOKEN, CliKillCommandProcessor, CliLinkedServers, CliLogger, CliLoremCommandProcessor, CliModuleRegistry_TOKEN, CliNanoCommandProcessor, CliNotifier, CliOpenCommandProcessor, CliPackageManagerService, CliPackageManagerService_TOKEN, CliPackagesCommandProcessor, CliPanelController, CliPanelStatusTracker, CliPermissionRegistry, CliPingCommandProcessor, CliProcessRegistry, CliProcessRegistry_TOKEN, CliProcessorsRegistry_TOKEN, CliPsCommandProcessor, CliRandomCommandProcessor, CliScreenCommandProcessor, CliScriptSyntaxError, CliSeqCommandProcessor, CliServerCommandProcessor, CliServerConnection, CliServerManager, CliServerManager_TOKEN, CliServerMultiProxyProcessor, CliServerProxyProcessor, CliServiceContainer, CliServicesCommandProcessor, CliSleepCommandProcessor, CliSnippetCommandProcessor, CliSshCommandProcessor, CliStateStore, CliStateStoreManager, CliStateStoreManager_TOKEN, CliTerminalProgressBar, CliTerminalSpinner, CliTerminalTextAnimator, CliTerminalWriter, CliTestCommandProcessor, CliTestHarness, CliThemeCommandProcessor, CliTimeCommandProcessor, CliTimerManager, CliTimestampCommandProcessor, CliTrueCommandProcessor, CliUnAliasCommandProcessor, CliUnameCommandProcessor, CliUnsetCommandProcessor, CliUptimeCommandProcessor, CliVersionCommandProcessor, CliWebCryptoSecretStore, CliYesCommandProcessor, CommandParser, DEFAULT_CLI_NAME, DEFAULT_GLOBAL_STATUS, DEFAULT_PANEL_HEIGHT, DEFAULT_PANEL_WIDTH, DEFAULT_TAB_STATUS, ERROR_ICON, EXEC_POLL_MS, GLOBAL_POLL_MS, HIDE_ICON, HIDE_TAB_TERMINAL_ICON, ICliEnvironment_TOKEN, ICliPingServerService_TOKEN, ICliScriptRunner_TOKEN, JsFallbackAccelerator, LIBRARY_VERSION, MAXIMIZE_ICON, MIN_PANEL_SIZE, MIN_PANE_WIDTH_PERCENT, OverlayAddon, PANEL_LABELS, PANEL_POSITIONS, ProcessExitedError, RESTORE_ICON, SERVER_NAME_PATTERN, SERVICES_ICON, SUCCESS_ICON, SVG_COMMON_ATTRS, SVG_VIEW_BOX, ScriptLoaderService, SyntaxHighlighterRegistry_TOKEN, TERMINAL_ICON, UPTIME_ICON, appendOutputToFile, appendStderrToFile, applyEnvironmentChange, builtinProcessors, capitalize, checkServerUrl, clampPanelSize, cliScriptRunner, collapseChevronIcon, computeDiff, computeGlobalStatus, computeTabStatus, contextGlobalParameter, contextMenuItems, contextMenuStyle, createCliEngine, createServerModule, createTokenWithPassword, defaultFontSize, describeShellClose, deviceName, distributePaneWidths, dropdownAnchorStyle, executeOnServer, expandBraces, expandEnvironmentVars, expandGlobs, formatDiff, formatUptime, getAccelerator, getCliNameArt, getGreetingBasedOnTime, getTerminalOptions, glowLineClass, greetingModule, groupBy, handleRenameKey, helpGlobalParameter, hideTabChevronIcon, hotkeysInfo, initWasmAccelerator, initializeServices, initializeTerminal, interruptCommand, isHorizontalPosition, isPrivateHost, isWasmAccelerated, joinClasses, killProcess, linkedServerConfig, linkedServersOf, maskToken, matchGlob, mergeCliOptions, miscProcessors, nextRowsCommand, normalizePaneWidths, normalizeServerUrl, openLink, openStatusDropdown, paneClass, paneStyle, panelBranding, panelTabClass, panelTabDotClass, panelWrapperClass, panelWrapperStyle, panesContainerClass, panesContainerWidth, parseAssignments, parseScript, plainText, pollLink, positionDropdownItemClass, positionIcon, positionOptions, probeServer, reconcileArgs, redactSecrets, renderServerResponse, renderSingleOutput, requestLink, resizePaneWidths, resizedPanelSize, resolveCliBranding, resolveCliHostConfig, restoreLinkedServers, runContextMenuAction, runScript, secretStoreOf, splitWords, statusIndicators, substituteCommands, substituteVars, suggestServerName, svgAttrs, systemProcessors, tabDotClass, themeInfos, themes, tryExecuteScript, userServersAllow, userServersEnabled, versionGlobalParameter, waitForLayout, welcomeModule, writeOutputToFile, writeStderrToFile };
4371
+ export type { AnchorRect, CdnSourceName, CliBootLogOptions, CliEngineOptions, CliEnvironmentChange, CliEnvironmentProfile, CliEnvironmentScope, CliEnvironmentSnapshot, CliEnvironmentSource, CliExecutionContextDeps, CliFetch, CliHiddenServerCommand, CliHostConfig, CliLinkPoll, CliLinkRequest, CliLinkedServer, CliPanelCallbacks, CliPanelContextMenu, CliPanelControlledState, CliPanelControllerOptions, CliPanelExecutionState, CliPanelGlobalStatus, CliPanelPane, CliPanelServerDetail, CliPanelServerState, CliPanelServiceDetail, CliPanelSnapshot, CliPanelStatusTrackerListener, CliPanelTab, CliPanelTabStatus, CliPanelViewport, CliServerProbe, CliServerUrlCheck, CliTestResult, CliWelcomeMessageConfig, CommandParserOutput, CommandPart, ConfigureState, CreateCliEngineConfig, DefaultServerProvider, DiffLine, DiffType, ICliEnvironment, ICliExecutionHost, ICliScriptRunOptions, ICliScriptRunner, ICliStateStoreManager, ICliWasmAccelerator, InitializeServicesOptions, InitializeServicesResult, MultiProxyEntry, PanelContextMenuAction, PanelContextMenuItem, PanelDropdownRow, PanelPositionOption, PanelStatusDropdown, PanelStatusIndicator, ParsedArg, ParsedToken, ResolvedCliBranding, SvgIcon, SvgShape, TerminalSetupResult, ThemeState };
package/public-api.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ICliCommandProcessor, ICliCommandParameterDescriptor as ICliCommandParameterDescriptor$1, ICliCommandProcessorRegistry, ICliCommandChildProcessor, CliProcessorMetadata, CliStateConfiguration, ICliExecutionContext, CliProcessCommand, ICliCommandAuthor, ICliCommandControls, CliThemeInfo, ICliExecutionProcess, ICliUserSession, ICliSpinner, ICliPercentageProgressBar, ICliTextAnimator, ICliTerminalWriter, ICliCommandExecutorService, ICliClipboard, ICliStateStore, CliOptions, ICliLogger, ICliServiceProvider, ICliTranslationService, ICliInputReader, ICliBackgroundServiceRegistry, ICliHttpClient, ICliNotifier, ICliManagedInterval, ICliManagedTimer, ICliEventBus, ICliKeyValueStore, CliStateStoreOptions, ICliCompletionProvider, ICliFilePickerProvider, CliFullScreenOptions, ICliProcessRegistry, ICliBackgroundService, ICliServiceContext, ICliBackgroundServiceInfo, ICliServiceLogEntry, CliServiceEventHandler, ICliGlobalParameterHandler, CliForegroundColor, CliBackgroundColor, CliToken, CliProvider, CliTableOptions, CliLogLevel, CliPercentageProgressBarUpdateValueOptions, CliTextAnimatorOptions, ICliModule, CliModuleRegistry, Package, ICliPingServerService, CliLineOptions, CliSelectOption, CliSelectOptions, CliMultiSelectOption, CliMultiSelectOptions, CliNumberOptions, CliDateOptions, CliFilePickerOptions, CliFileResult, ICliProcessRegisterOptions, ICliProcessEntry, ICliDragDropService, CliHttpRequestOptions, CliNotification, ICliPermissionRegistry, CliPermissionDefinition, CliBranding, CliState, CliEngineSnapshot, CliEvent, CliEventType, CliEventMap, CliEmitOptions, CustomEventType, CliEventHandler, CliServerConfig, ICliServerAuthService, CliServerCommandDescriptor, CliServerCapabilities, CliServerResponse, CliServerOutput, CliPanelPosition, CliPanelConfig, CliPanelHideAlignment, ICliPanelRef, CliPanelThemeInput, CliPanelState } from '@qodalis/cli-core';
1
+ import { ICliCommandProcessor, ICliCommandParameterDescriptor as ICliCommandParameterDescriptor$1, ICliCommandProcessorRegistry, ICliCommandChildProcessor, CliProcessorMetadata, CliStateConfiguration, ICliExecutionContext, CliProcessCommand, ICliCommandAuthor, ICliCommandControls, CliThemeInfo, ICliExecutionProcess, ICliUserSession, ICliSpinner, ICliPercentageProgressBar, ICliTextAnimator, ICliTerminalWriter, ICliCommandExecutorService, ICliClipboard, ICliStateStore, CliOptions, ICliLogger, ICliServiceProvider, ICliTranslationService, ICliInputReader, ICliBackgroundServiceRegistry, ICliHttpClient, ICliNotifier, ICliManagedInterval, ICliManagedTimer, ICliEventBus, ICliKeyValueStore, CliStateStoreOptions, ICliCompletionProvider, ICliFilePickerProvider, CliFullScreenOptions, ICliProcessRegistry, ICliBackgroundService, ICliServiceContext, ICliBackgroundServiceInfo, ICliServiceLogEntry, CliServiceEventHandler, ICliGlobalParameterHandler, CliForegroundColor, CliBackgroundColor, CliToken, CliProvider, CliTableOptions, CliLogLevel, CliPercentageProgressBarUpdateValueOptions, CliTextAnimatorOptions, ICliModule, CliModuleRegistry, Package, ICliPingServerService, CliLineOptions, CliSelectOption, CliSelectOptions, CliMultiSelectOption, CliMultiSelectOptions, CliNumberOptions, CliDateOptions, CliFilePickerOptions, CliFileResult, ICliProcessRegisterOptions, ICliProcessEntry, ICliDragDropService, CliHttpRequestOptions, CliNotification, ICliPermissionRegistry, CliPermissionDefinition, CliBranding, CliState, CliEngineSnapshot, CliEvent, CliEventType, CliEventMap, CliEmitOptions, CustomEventType, CliEventHandler, CliServerConfig, ICliServerAuthService, CliServerCommandDescriptor, CliServerCapabilities, CliServerResponse, CliServerOutput, ICliSecretStore, CliPanelPosition, CliPanelConfig, CliPanelHideAlignment, ICliPanelRef, CliPanelThemeInput, CliPanelState } from '@qodalis/cli-core';
2
2
  export { ICliUserSessionService_TOKEN, ICliUsersStoreService_TOKEN } from '@qodalis/cli-core';
3
3
  import { ITheme, Terminal, ITerminalAddon, ITerminalOptions, ITerminalInitOnlyOptions } from '@xterm/xterm';
4
4
  import * as rxjs from 'rxjs';
@@ -165,7 +165,7 @@ declare const CliKeyValueStore_TOKEN: any;
165
165
  */
166
166
  declare const SyntaxHighlighterRegistry_TOKEN: any;
167
167
 
168
- declare const LIBRARY_VERSION = "2.4.2";
168
+ declare const LIBRARY_VERSION = "2.5.1";
169
169
  declare const API_VERSION = 2;
170
170
 
171
171
  declare class CliAliasCommandProcessor implements ICliCommandProcessor {
@@ -2889,6 +2889,14 @@ interface CliEngineOptions extends CliOptions {
2889
2889
  * @default true
2890
2890
  */
2891
2891
  autoFocus?: boolean;
2892
+ /**
2893
+ * Scroll the scrollback with a finger on touch screens (xterm.js has no
2894
+ * touch scrolling, so a drag would scroll the page instead). Paused while
2895
+ * a full-screen command runs. Turn it off when the host scrolls the
2896
+ * terminal itself.
2897
+ * @default true
2898
+ */
2899
+ touchScroll?: boolean;
2892
2900
  }
2893
2901
  declare class CliEngine {
2894
2902
  private readonly container;
@@ -2903,6 +2911,7 @@ declare class CliEngine {
2903
2911
  private resizeObserver?;
2904
2912
  private resizeListener?;
2905
2913
  private wheelListener?;
2914
+ private disposeTouchScroll?;
2906
2915
  private resizeVersion;
2907
2916
  private resizeScheduled;
2908
2917
  private bootService?;
@@ -2953,7 +2962,10 @@ declare class CliEngine {
2953
2962
  private beginBootReport;
2954
2963
  /** 4. Environment variables, background services, server auth and manager. */
2955
2964
  private registerRuntimeServices;
2956
- /** 4. Connect to the configured servers, one boot step each. */
2965
+ /**
2966
+ * 4. Connect to the configured servers, one boot step each, then to the
2967
+ * servers the user linked (`server add`).
2968
+ */
2957
2969
  private connectServers;
2958
2970
  /**
2959
2971
  * 5. Built-in welcome and server modules, the app's modules, and the
@@ -3275,6 +3287,7 @@ declare class CliServerProxyProcessor implements ICliCommandProcessor {
3275
3287
  parameters?: ICliCommandParameterDescriptor$1[];
3276
3288
  processors?: ICliCommandProcessor[];
3277
3289
  acceptsRawInput?: boolean;
3290
+ writeDescription?: (context: ICliExecutionContext) => void;
3278
3291
  /** Full command path from root to this processor (e.g. ["aws", "lambda", "list"]) */
3279
3292
  private readonly commandPath;
3280
3293
  constructor(connection: CliServerConnection, descriptor: CliServerCommandDescriptor, serverName: string, isNested?: boolean, parentPath?: string[]);
@@ -3299,7 +3312,9 @@ declare class CliServerMultiProxyProcessor implements ICliCommandProcessor {
3299
3312
  private readonly entries;
3300
3313
  private readonly provider;
3301
3314
  command: string;
3315
+ aliases?: string[];
3302
3316
  description?: string;
3317
+ writeDescription?: (context: ICliExecutionContext) => void;
3303
3318
  metadata?: CliProcessorMetadata;
3304
3319
  parameters?: ICliCommandParameterDescriptor$1[];
3305
3320
  processors?: ICliCommandProcessor[];
@@ -3332,16 +3347,42 @@ declare class CliServerManager implements DefaultServerProvider {
3332
3347
  private readonly _bareAliases;
3333
3348
  private _backgroundServices?;
3334
3349
  private _hidden;
3350
+ /** Servers the user linked (`server add`), as opposed to the host's */
3351
+ private readonly _linked;
3335
3352
  /** `server:command` pairs already warned about, so each warns once */
3336
3353
  private readonly _warnedHidden;
3337
3354
  constructor(registry: ICliCommandProcessorRegistry, authService?: ICliServerAuthService, events?: ICliEventBus);
3355
+ /** Whether the user linked this server (`server add`): only those can be removed or edited. */
3356
+ isLinked(name: string): boolean;
3338
3357
  get defaultServer(): string | null;
3339
3358
  preferredServer(): string | null;
3340
3359
  setDefaultServer(name: string | null): void;
3360
+ /** Where connections report and run (set once at boot, before any server connects). */
3361
+ configure(logger?: {
3362
+ warn(msg: string): void;
3363
+ info(msg: string): void;
3364
+ }, backgroundServices?: ICliBackgroundServiceRegistry, cliLogger?: ICliLogger): void;
3341
3365
  connectAll(servers: CliServerConfig[], logger?: {
3342
3366
  warn(msg: string): void;
3343
3367
  info(msg: string): void;
3344
3368
  }, backgroundServices?: ICliBackgroundServiceRegistry, cliLogger?: ICliLogger): Promise<void>;
3369
+ /**
3370
+ * Connects one server and registers its commands (without the bare
3371
+ * aliases: callers refresh them once every server is connected).
3372
+ */
3373
+ private connectServer;
3374
+ /**
3375
+ * Connects a server added while the terminal runs (`server add`): its
3376
+ * commands are available at once. Throws when the name is taken.
3377
+ */
3378
+ addServer(config: CliServerConfig, options?: {
3379
+ linked?: boolean;
3380
+ }): Promise<CliServerConnection>;
3381
+ /**
3382
+ * Disconnects a server and forgets it (`server remove`): its commands go
3383
+ * away. False when there is no such server.
3384
+ */
3385
+ removeServer(name: string): boolean;
3345
3386
  reconnect(name: string): Promise<{
3346
3387
  success: boolean;
3347
3388
  commandCount: number;
@@ -3358,6 +3399,11 @@ declare class CliServerManager implements DefaultServerProvider {
3358
3399
  private unregisterBareAliases;
3359
3400
  private registerProxyProcessors;
3360
3401
  private registerBareAliases;
3402
+ /**
3403
+ * The server's aliases of a command that no registered command answers
3404
+ * to yet: a local command (or an earlier server alias) keeps its name.
3405
+ */
3406
+ private freeAliases;
3361
3407
  private recordHidden;
3362
3408
  }
3363
3409
 
@@ -3419,6 +3465,151 @@ declare function describeShellClose(event: {
3419
3465
  reason?: string;
3420
3466
  }, serverName: string): string | null;
3421
3467
 
3468
+ /** A server linked with `server add` (its token is kept apart, in the secret store). */
3469
+ interface CliLinkedServer {
3470
+ name: string;
3471
+ url: string;
3472
+ /** Epoch milliseconds. */
3473
+ addedAt: number;
3474
+ }
3475
+ /** Server names: a letter or digit, then letters, digits, `-` and `_` (at most 32). */
3476
+ declare const SERVER_NAME_PATTERN: RegExp;
3477
+ /** `https://` added when no scheme is given; trailing slashes dropped. Null for anything but http(s). */
3478
+ declare function normalizeServerUrl(input: string): string | null;
3479
+ /** Loopback, private (RFC 1918, link-local, ULA) or `.local` host names: http is allowed for them. */
3480
+ declare function isPrivateHost(hostname: string): boolean;
3481
+ /** What `server add` must check about a URL before using it. */
3482
+ interface CliServerUrlCheck {
3483
+ url: string;
3484
+ /** http to a private host: allowed after a confirmation. */
3485
+ insecure: boolean;
3486
+ /** An http server from an https page: the browser blocks the requests. */
3487
+ mixedContent: boolean;
3488
+ }
3489
+ /**
3490
+ * Normalises and checks a server URL: https anywhere, http only to private
3491
+ * hosts. Returns the reason as a string when refused.
3492
+ */
3493
+ declare function checkServerUrl(input: string, pageProtocol?: string): CliServerUrlCheck | string;
3494
+ /** Whether host options allow linking this URL (`userServers`). */
3495
+ declare function userServersAllow(options: CliOptions | undefined, url: string): boolean;
3496
+ /** Whether linking is switched on at all. */
3497
+ declare function userServersEnabled(options: CliOptions | undefined): boolean;
3498
+ /** A name from the URL's host: `api.example.com` → `api`, `localhost:8047` → `localhost-8047`. */
3499
+ declare function suggestServerName(url: string, taken: (name: string) => boolean): string;
3500
+ /** `qcli_pat_…abcd` → `••••abcd`. */
3501
+ declare function maskToken(token: string | undefined): string;
3502
+ /**
3503
+ * The command as kept in the history: values of `--token` and `--password`
3504
+ * replaced by `***`.
3505
+ */
3506
+ declare function redactSecrets(command: string): string;
3507
+ /**
3508
+ * The linked servers and their tokens: the list in the key-value store, each
3509
+ * token in the secret store.
3510
+ */
3511
+ declare class CliLinkedServers {
3512
+ private readonly kv;
3513
+ private readonly secrets;
3514
+ constructor(kv: ICliKeyValueStore, secrets: ICliSecretStore);
3515
+ list(): Promise<CliLinkedServer[]>;
3516
+ get(name: string): Promise<CliLinkedServer | undefined>;
3517
+ /** Saves a server (replacing one with the same name) and its token (none: deleted). */
3518
+ save(server: CliLinkedServer, token: string | undefined): Promise<void>;
3519
+ setToken(name: string, token: string): Promise<void>;
3520
+ token(name: string): Promise<string | undefined>;
3521
+ remove(name: string): Promise<boolean>;
3522
+ /** Removes every linked server and every secret. */
3523
+ clear(): Promise<void>;
3524
+ }
3525
+ /**
3526
+ * The connection config of a linked server: the token (kept in memory once
3527
+ * read) sent as a bearer header; sockets use the users plugin's tickets.
3528
+ */
3529
+ declare function linkedServerConfig(server: CliLinkedServer, token: string | undefined): CliServerConfig;
3530
+
3531
+ /**
3532
+ * The default {@link ICliSecretStore}: each secret encrypted with AES-GCM (own
3533
+ * random IV) by a 256-bit key that Web Crypto never exports, both kept in the
3534
+ * key-value store (IndexedDB). Reading the database gives ciphertext only; the
3535
+ * key cannot be read out, only used by this origin.
3536
+ */
3537
+ declare class CliWebCryptoSecretStore implements ICliSecretStore {
3538
+ private readonly kv;
3539
+ /** Null: no Web Crypto (an insecure page). */
3540
+ private readonly crypto;
3541
+ private keyPromise;
3542
+ constructor(kv: ICliKeyValueStore,
3543
+ /** Null: no Web Crypto (an insecure page). */
3544
+ crypto?: Crypto | null);
3545
+ isAvailable(): boolean;
3546
+ get(key: string): Promise<string | undefined>;
3547
+ set(key: string, value: string): Promise<void>;
3548
+ delete(key: string): Promise<void>;
3549
+ clear(): Promise<void>;
3550
+ /** The saved key, or a new one (created once, even for parallel calls). */
3551
+ private key;
3552
+ }
3553
+
3554
+ type CliFetch = (input: string, init?: RequestInit) => Promise<Response>;
3555
+ /** What `server add` shows about a server before linking it. */
3556
+ interface CliServerProbe {
3557
+ /** The server's version (capabilities), when it says. */
3558
+ version?: string;
3559
+ capabilities: CliServerCapabilities | null;
3560
+ /** Whether the commands need a sign-in (401/403 without a token). */
3561
+ needsSignIn: boolean;
3562
+ }
3563
+ /** A link request: the code to compare and the page where the user approves it. */
3564
+ interface CliLinkRequest {
3565
+ linkId: string;
3566
+ userCode: string;
3567
+ /** Absolute (resolved against the server URL). */
3568
+ verificationUrl: string;
3569
+ expiresIn: number;
3570
+ interval: number;
3571
+ }
3572
+ type CliLinkPoll = {
3573
+ status: 'pending';
3574
+ } | {
3575
+ status: 'denied';
3576
+ } | {
3577
+ status: 'expired';
3578
+ } | {
3579
+ status: 'approved';
3580
+ token: string;
3581
+ userName?: string;
3582
+ };
3583
+ /** Text from a server, safe to print: control characters (terminal escapes) dropped. */
3584
+ declare function plainText(value: unknown): string;
3585
+ /**
3586
+ * Whether `url` is a Qodalis CLI server: `GET /api/qcli/versions` answers with
3587
+ * its supported versions. Throws with the reason when not.
3588
+ */
3589
+ declare function probeServer(fetchFn: CliFetch, url: string): Promise<CliServerProbe>;
3590
+ /** Starts a link request; null when the server has no link endpoint (older servers, no users plugin). */
3591
+ declare function requestLink(fetchFn: CliFetch, url: string, client: string): Promise<CliLinkRequest | null>;
3592
+ /** One poll of a link request. */
3593
+ declare function pollLink(fetchFn: CliFetch, url: string, linkId: string): Promise<CliLinkPoll>;
3594
+ /**
3595
+ * Signs in with a password, creates an API token named `tokenName` with that
3596
+ * session, then ends the session: only the token is kept.
3597
+ */
3598
+ declare function createTokenWithPassword(fetchFn: CliFetch, url: string, username: string, password: string, tokenName: string): Promise<string>;
3599
+ /** "Qodalis CLI on <platform>" for link requests and token names (`[A-Za-z0-9._ -]` only). */
3600
+ declare function deviceName(appName?: string): string;
3601
+
3602
+ /** The secret store: the host's ({@link ICliSecretStore_TOKEN}) or the Web Crypto one. */
3603
+ declare function secretStoreOf(context: Pick<ICliExecutionContext, 'services'>): ICliSecretStore;
3604
+ /** The linked servers of this terminal. */
3605
+ declare function linkedServersOf(context: Pick<ICliExecutionContext, 'services'>): CliLinkedServers;
3606
+ /**
3607
+ * Connects the servers linked with `server add` (boot, after the host's
3608
+ * servers). Host servers win a name clash; servers the host options no longer
3609
+ * allow are skipped.
3610
+ */
3611
+ declare function restoreLinkedServers(context: Pick<ICliExecutionContext, 'services' | 'options'>, manager: CliServerManager, warn: (message: string) => void): Promise<void>;
3612
+
3422
3613
  /**
3423
3614
  * Result of executing a command through the test harness.
3424
3615
  */
@@ -3983,6 +4174,11 @@ declare class CliPanelController implements ICliPanelRef<CliEngine> {
3983
4174
  private readonly onSystemSchemeChange;
3984
4175
  /** A terminal in the panel changed theme: follow the first one. */
3985
4176
  private readonly onTerminalTheme;
4177
+ /**
4178
+ * A wheel over the panel chrome (header, icon strip, empty pane) would
4179
+ * scroll the page behind it; the terminals already keep their own wheel.
4180
+ */
4181
+ private readonly onPanelWheel;
3986
4182
  /**
3987
4183
  * Phone browsers open the keyboard over the page and shrink only the visual
3988
4184
  * viewport; follow it so the panel stays above the keyboard.
@@ -4171,5 +4367,5 @@ interface PanelStatusDropdown {
4171
4367
  /** The open services or servers dropdown, or null when neither is open. */
4172
4368
  declare function openStatusDropdown(s: CliPanelSnapshot): PanelStatusDropdown | null;
4173
4369
 
4174
- export { API_VERSION, CLI_ENV_GLOBAL_PERMISSION, CLI_FRAMEWORK_SERVICE, CLOSE_GLYPH, CLOSE_ICON, CapturingTerminalWriter, CliAliasCommandProcessor, CliArgsParser, CliBackgroundServiceRegistry_TOKEN, CliBoot, CliBootLog, CliBootLog_TOKEN, CliCalCommandProcessor, CliCaptureCommandProcessor, CliClearCommandProcessor, CliClipboard, CliClipboardCommandProcessor, CliColorCommandProcessor, CliCommandExecutionContext, CliCommandExecutor, CliCommandHistory, CliCommandHistory_TOKEN, CliCommandProcessorRegistry, CliConfigureCommandProcessor, CliConvertCommandProcessor, CliDebugCommandProcessor, CliDefaultPingServerService, CliDiffCommandProcessor, CliDragDropService, CliEchoCommandProcessor, CliEngine, CliEnvCommandProcessor, CliEnvironment, CliEvalCommandProcessor, CliEventsCommandProcessor, CliExecutionContext, CliExecutionProcess, CliExportCommandProcessor, CliFalseCommandProcessor, CliFeedbackCommandProcessor, CliFontSizeCommandProcessor, CliFullScreenManager, CliHelpCommandProcessor, CliHistoryCommandProcessor, CliHotKeysCommandProcessor, CliHtopCommandProcessor, CliHttpClient, CliInputReader, CliJsonCommandProcessor, CliKeyValueStore, CliKeyValueStore_TOKEN, CliKillCommandProcessor, CliLogger, CliLoremCommandProcessor, CliModuleRegistry_TOKEN, CliNanoCommandProcessor, CliNotifier, CliOpenCommandProcessor, CliPackageManagerService, CliPackageManagerService_TOKEN, CliPackagesCommandProcessor, CliPanelController, CliPanelStatusTracker, CliPermissionRegistry, CliPingCommandProcessor, CliProcessRegistry, CliProcessRegistry_TOKEN, CliProcessorsRegistry_TOKEN, CliPsCommandProcessor, CliRandomCommandProcessor, CliScreenCommandProcessor, CliScriptSyntaxError, CliSeqCommandProcessor, CliServerCommandProcessor, CliServerConnection, CliServerManager, CliServerManager_TOKEN, CliServerMultiProxyProcessor, CliServerProxyProcessor, CliServiceContainer, CliServicesCommandProcessor, CliSleepCommandProcessor, CliSnippetCommandProcessor, CliSshCommandProcessor, CliStateStore, CliStateStoreManager, CliStateStoreManager_TOKEN, CliTerminalProgressBar, CliTerminalSpinner, CliTerminalTextAnimator, CliTerminalWriter, CliTestCommandProcessor, CliTestHarness, CliThemeCommandProcessor, CliTimeCommandProcessor, CliTimerManager, CliTimestampCommandProcessor, CliTrueCommandProcessor, CliUnAliasCommandProcessor, CliUnameCommandProcessor, CliUnsetCommandProcessor, CliUptimeCommandProcessor, CliVersionCommandProcessor, CliYesCommandProcessor, CommandParser, DEFAULT_CLI_NAME, DEFAULT_GLOBAL_STATUS, DEFAULT_PANEL_HEIGHT, DEFAULT_PANEL_WIDTH, DEFAULT_TAB_STATUS, ERROR_ICON, EXEC_POLL_MS, GLOBAL_POLL_MS, HIDE_ICON, HIDE_TAB_TERMINAL_ICON, ICliEnvironment_TOKEN, ICliPingServerService_TOKEN, ICliScriptRunner_TOKEN, JsFallbackAccelerator, LIBRARY_VERSION, MAXIMIZE_ICON, MIN_PANEL_SIZE, MIN_PANE_WIDTH_PERCENT, OverlayAddon, PANEL_LABELS, PANEL_POSITIONS, ProcessExitedError, RESTORE_ICON, SERVICES_ICON, SUCCESS_ICON, SVG_COMMON_ATTRS, SVG_VIEW_BOX, ScriptLoaderService, SyntaxHighlighterRegistry_TOKEN, TERMINAL_ICON, UPTIME_ICON, appendOutputToFile, appendStderrToFile, applyEnvironmentChange, builtinProcessors, capitalize, clampPanelSize, cliScriptRunner, collapseChevronIcon, computeDiff, computeGlobalStatus, computeTabStatus, contextGlobalParameter, contextMenuItems, contextMenuStyle, createCliEngine, createServerModule, defaultFontSize, describeShellClose, distributePaneWidths, dropdownAnchorStyle, executeOnServer, expandBraces, expandEnvironmentVars, expandGlobs, formatDiff, formatUptime, getAccelerator, getCliNameArt, getGreetingBasedOnTime, getTerminalOptions, glowLineClass, greetingModule, groupBy, handleRenameKey, helpGlobalParameter, hideTabChevronIcon, hotkeysInfo, initWasmAccelerator, initializeServices, initializeTerminal, interruptCommand, isHorizontalPosition, isWasmAccelerated, joinClasses, killProcess, matchGlob, mergeCliOptions, miscProcessors, nextRowsCommand, normalizePaneWidths, openLink, openStatusDropdown, paneClass, paneStyle, panelBranding, panelTabClass, panelTabDotClass, panelWrapperClass, panelWrapperStyle, panesContainerClass, panesContainerWidth, parseAssignments, parseScript, positionDropdownItemClass, positionIcon, positionOptions, reconcileArgs, renderServerResponse, renderSingleOutput, resizePaneWidths, resizedPanelSize, resolveCliBranding, resolveCliHostConfig, runContextMenuAction, runScript, splitWords, statusIndicators, substituteCommands, substituteVars, svgAttrs, systemProcessors, tabDotClass, themeInfos, themes, tryExecuteScript, versionGlobalParameter, waitForLayout, welcomeModule, writeOutputToFile, writeStderrToFile };
4175
- export type { AnchorRect, CdnSourceName, CliBootLogOptions, CliEngineOptions, CliEnvironmentChange, CliEnvironmentProfile, CliEnvironmentScope, CliEnvironmentSnapshot, CliEnvironmentSource, CliExecutionContextDeps, CliHiddenServerCommand, CliHostConfig, CliPanelCallbacks, CliPanelContextMenu, CliPanelControlledState, CliPanelControllerOptions, CliPanelExecutionState, CliPanelGlobalStatus, CliPanelPane, CliPanelServerDetail, CliPanelServerState, CliPanelServiceDetail, CliPanelSnapshot, CliPanelStatusTrackerListener, CliPanelTab, CliPanelTabStatus, CliPanelViewport, CliTestResult, CliWelcomeMessageConfig, CommandParserOutput, CommandPart, ConfigureState, CreateCliEngineConfig, DefaultServerProvider, DiffLine, DiffType, ICliEnvironment, ICliExecutionHost, ICliScriptRunOptions, ICliScriptRunner, ICliStateStoreManager, ICliWasmAccelerator, InitializeServicesOptions, InitializeServicesResult, MultiProxyEntry, PanelContextMenuAction, PanelContextMenuItem, PanelDropdownRow, PanelPositionOption, PanelStatusDropdown, PanelStatusIndicator, ParsedArg, ParsedToken, ResolvedCliBranding, SvgIcon, SvgShape, TerminalSetupResult, ThemeState };
4370
+ export { API_VERSION, CLI_ENV_GLOBAL_PERMISSION, CLI_FRAMEWORK_SERVICE, CLOSE_GLYPH, CLOSE_ICON, CapturingTerminalWriter, CliAliasCommandProcessor, CliArgsParser, CliBackgroundServiceRegistry_TOKEN, CliBoot, CliBootLog, CliBootLog_TOKEN, CliCalCommandProcessor, CliCaptureCommandProcessor, CliClearCommandProcessor, CliClipboard, CliClipboardCommandProcessor, CliColorCommandProcessor, CliCommandExecutionContext, CliCommandExecutor, CliCommandHistory, CliCommandHistory_TOKEN, CliCommandProcessorRegistry, CliConfigureCommandProcessor, CliConvertCommandProcessor, CliDebugCommandProcessor, CliDefaultPingServerService, CliDiffCommandProcessor, CliDragDropService, CliEchoCommandProcessor, CliEngine, CliEnvCommandProcessor, CliEnvironment, CliEvalCommandProcessor, CliEventsCommandProcessor, CliExecutionContext, CliExecutionProcess, CliExportCommandProcessor, CliFalseCommandProcessor, CliFeedbackCommandProcessor, CliFontSizeCommandProcessor, CliFullScreenManager, CliHelpCommandProcessor, CliHistoryCommandProcessor, CliHotKeysCommandProcessor, CliHtopCommandProcessor, CliHttpClient, CliInputReader, CliJsonCommandProcessor, CliKeyValueStore, CliKeyValueStore_TOKEN, CliKillCommandProcessor, CliLinkedServers, CliLogger, CliLoremCommandProcessor, CliModuleRegistry_TOKEN, CliNanoCommandProcessor, CliNotifier, CliOpenCommandProcessor, CliPackageManagerService, CliPackageManagerService_TOKEN, CliPackagesCommandProcessor, CliPanelController, CliPanelStatusTracker, CliPermissionRegistry, CliPingCommandProcessor, CliProcessRegistry, CliProcessRegistry_TOKEN, CliProcessorsRegistry_TOKEN, CliPsCommandProcessor, CliRandomCommandProcessor, CliScreenCommandProcessor, CliScriptSyntaxError, CliSeqCommandProcessor, CliServerCommandProcessor, CliServerConnection, CliServerManager, CliServerManager_TOKEN, CliServerMultiProxyProcessor, CliServerProxyProcessor, CliServiceContainer, CliServicesCommandProcessor, CliSleepCommandProcessor, CliSnippetCommandProcessor, CliSshCommandProcessor, CliStateStore, CliStateStoreManager, CliStateStoreManager_TOKEN, CliTerminalProgressBar, CliTerminalSpinner, CliTerminalTextAnimator, CliTerminalWriter, CliTestCommandProcessor, CliTestHarness, CliThemeCommandProcessor, CliTimeCommandProcessor, CliTimerManager, CliTimestampCommandProcessor, CliTrueCommandProcessor, CliUnAliasCommandProcessor, CliUnameCommandProcessor, CliUnsetCommandProcessor, CliUptimeCommandProcessor, CliVersionCommandProcessor, CliWebCryptoSecretStore, CliYesCommandProcessor, CommandParser, DEFAULT_CLI_NAME, DEFAULT_GLOBAL_STATUS, DEFAULT_PANEL_HEIGHT, DEFAULT_PANEL_WIDTH, DEFAULT_TAB_STATUS, ERROR_ICON, EXEC_POLL_MS, GLOBAL_POLL_MS, HIDE_ICON, HIDE_TAB_TERMINAL_ICON, ICliEnvironment_TOKEN, ICliPingServerService_TOKEN, ICliScriptRunner_TOKEN, JsFallbackAccelerator, LIBRARY_VERSION, MAXIMIZE_ICON, MIN_PANEL_SIZE, MIN_PANE_WIDTH_PERCENT, OverlayAddon, PANEL_LABELS, PANEL_POSITIONS, ProcessExitedError, RESTORE_ICON, SERVER_NAME_PATTERN, SERVICES_ICON, SUCCESS_ICON, SVG_COMMON_ATTRS, SVG_VIEW_BOX, ScriptLoaderService, SyntaxHighlighterRegistry_TOKEN, TERMINAL_ICON, UPTIME_ICON, appendOutputToFile, appendStderrToFile, applyEnvironmentChange, builtinProcessors, capitalize, checkServerUrl, clampPanelSize, cliScriptRunner, collapseChevronIcon, computeDiff, computeGlobalStatus, computeTabStatus, contextGlobalParameter, contextMenuItems, contextMenuStyle, createCliEngine, createServerModule, createTokenWithPassword, defaultFontSize, describeShellClose, deviceName, distributePaneWidths, dropdownAnchorStyle, executeOnServer, expandBraces, expandEnvironmentVars, expandGlobs, formatDiff, formatUptime, getAccelerator, getCliNameArt, getGreetingBasedOnTime, getTerminalOptions, glowLineClass, greetingModule, groupBy, handleRenameKey, helpGlobalParameter, hideTabChevronIcon, hotkeysInfo, initWasmAccelerator, initializeServices, initializeTerminal, interruptCommand, isHorizontalPosition, isPrivateHost, isWasmAccelerated, joinClasses, killProcess, linkedServerConfig, linkedServersOf, maskToken, matchGlob, mergeCliOptions, miscProcessors, nextRowsCommand, normalizePaneWidths, normalizeServerUrl, openLink, openStatusDropdown, paneClass, paneStyle, panelBranding, panelTabClass, panelTabDotClass, panelWrapperClass, panelWrapperStyle, panesContainerClass, panesContainerWidth, parseAssignments, parseScript, plainText, pollLink, positionDropdownItemClass, positionIcon, positionOptions, probeServer, reconcileArgs, redactSecrets, renderServerResponse, renderSingleOutput, requestLink, resizePaneWidths, resizedPanelSize, resolveCliBranding, resolveCliHostConfig, restoreLinkedServers, runContextMenuAction, runScript, secretStoreOf, splitWords, statusIndicators, substituteCommands, substituteVars, suggestServerName, svgAttrs, systemProcessors, tabDotClass, themeInfos, themes, tryExecuteScript, userServersAllow, userServersEnabled, versionGlobalParameter, waitForLayout, welcomeModule, writeOutputToFile, writeStderrToFile };
4371
+ export type { AnchorRect, CdnSourceName, CliBootLogOptions, CliEngineOptions, CliEnvironmentChange, CliEnvironmentProfile, CliEnvironmentScope, CliEnvironmentSnapshot, CliEnvironmentSource, CliExecutionContextDeps, CliFetch, CliHiddenServerCommand, CliHostConfig, CliLinkPoll, CliLinkRequest, CliLinkedServer, CliPanelCallbacks, CliPanelContextMenu, CliPanelControlledState, CliPanelControllerOptions, CliPanelExecutionState, CliPanelGlobalStatus, CliPanelPane, CliPanelServerDetail, CliPanelServerState, CliPanelServiceDetail, CliPanelSnapshot, CliPanelStatusTrackerListener, CliPanelTab, CliPanelTabStatus, CliPanelViewport, CliServerProbe, CliServerUrlCheck, CliTestResult, CliWelcomeMessageConfig, CommandParserOutput, CommandPart, ConfigureState, CreateCliEngineConfig, DefaultServerProvider, DiffLine, DiffType, ICliEnvironment, ICliExecutionHost, ICliScriptRunOptions, ICliScriptRunner, ICliStateStoreManager, ICliWasmAccelerator, InitializeServicesOptions, InitializeServicesResult, MultiProxyEntry, PanelContextMenuAction, PanelContextMenuItem, PanelDropdownRow, PanelPositionOption, PanelStatusDropdown, PanelStatusIndicator, ParsedArg, ParsedToken, ResolvedCliBranding, SvgIcon, SvgShape, TerminalSetupResult, ThemeState };