@nextclaw/server 0.12.13 → 0.12.15

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 (3) hide show
  1. package/dist/index.d.ts +1302 -175
  2. package/dist/index.js +2665 -2542
  3. package/package.json +8 -8
package/dist/index.d.ts CHANGED
@@ -1,14 +1,162 @@
1
- import { Hono } from "hono";
2
- import { AppEvent } from "@nextclaw/kernel";
1
+ import * as _$hono from "hono";
2
+ import { Context, Hono } from "hono";
3
3
  import * as NextclawCore from "@nextclaw/core";
4
- import { Config, ConfigActionExecuteRequest as ConfigActionExecuteRequest$1, ConfigActionExecuteResult as ConfigActionExecuteResult$1, CronService, ThinkingLevel } from "@nextclaw/core";
4
+ import { Config, ConfigActionExecuteRequest as ConfigActionExecuteRequest$1, ConfigActionExecuteResult as ConfigActionExecuteResult$1, ThinkingLevel } from "@nextclaw/core";
5
5
  import { NcpHttpAgentStreamProvider } from "@nextclaw/ncp-http-agent-server";
6
6
  import { PluginChannelBinding, PluginUiMetadata } from "@nextclaw/openclaw-compat";
7
+ import { LlmProviderManager } from "@nextclaw/kernel";
7
8
  import { NcpAgentClientEndpoint, NcpMessage, NcpSessionApi, NcpSessionStatus, NcpSessionSummary } from "@nextclaw/ncp";
8
- import { UpdatePreferences, UpdateSnapshot } from "@nextclaw/kernel/update-contract";
9
+ import * as _$hono_utils_http_status0 from "hono/utils/http-status";
10
+ import * as _$hono_utils_types0 from "hono/utils/types";
9
11
  import { IncomingMessage } from "node:http";
10
12
 
11
- //#region src/ui/ncp-attachment.types.d.ts
13
+ //#region ../nextclaw-shared/src/types/typed-key.types.d.ts
14
+ type TypedKey<T = unknown> = {
15
+ readonly id: string;
16
+ readonly _type?: T;
17
+ };
18
+ type Key<T = unknown> = TypedKey<T> | string;
19
+ //#endregion
20
+ //#region ../nextclaw-shared/src/types/event-bus.types.d.ts
21
+ type EventSource = string;
22
+ type EventEnvelope<T = unknown> = {
23
+ type: string;
24
+ payload: T;
25
+ emittedAt?: string;
26
+ source?: EventSource;
27
+ };
28
+ type EventEmitOptions = {
29
+ emittedAt?: string;
30
+ source?: EventSource;
31
+ };
32
+ type EventHandler<T> = (payload: T, envelope: EventEnvelope<T>) => void;
33
+ type Unsubscribe = () => void;
34
+ type EventBusOptions = {
35
+ onFirstSubscriber?: () => void;
36
+ onListenerError?: (params: {
37
+ type: string;
38
+ payload: unknown;
39
+ error: unknown;
40
+ }) => void;
41
+ onNoSubscribers?: () => void;
42
+ };
43
+ type AppEventKey<T> = Key<T>;
44
+ type AppEventEnvelope<T = unknown> = EventEnvelope<T>;
45
+ type AppEventEmitOptions = EventEmitOptions;
46
+ type AppEventHandler<T> = EventHandler<T>;
47
+ type AppEvent = AppEventEnvelope;
48
+ //#endregion
49
+ //#region ../nextclaw-shared/src/services/event-bus.service.d.ts
50
+ declare class EventBus {
51
+ private readonly listeners;
52
+ private readonly globalListeners;
53
+ private listenerCount;
54
+ private readonly onFirstSubscriber?;
55
+ private readonly onListenerError?;
56
+ private readonly onNoSubscribers?;
57
+ constructor(options?: EventBusOptions);
58
+ emit: <T>(key: Key<T>, payload: T, options?: AppEventEmitOptions) => void;
59
+ emitEnvelope: <T>(event: AppEventEnvelope<T>) => void;
60
+ on: <T>(key: AppEventKey<T>, handler: AppEventHandler<T>) => Unsubscribe;
61
+ off: <T>(key: AppEventKey<T>, handler: AppEventHandler<T>) => void;
62
+ once: <T>(key: AppEventKey<T>, handler: AppEventHandler<T>) => Unsubscribe;
63
+ subscribeAll: (handler: (event: AppEventEnvelope) => void) => Unsubscribe;
64
+ private registerSubscriber;
65
+ private unregisterSubscriber;
66
+ private safeInvokeListener;
67
+ private safeInvokeGlobalListener;
68
+ }
69
+ //#endregion
70
+ //#region ../nextclaw-shared/src/services/ingress.service.d.ts
71
+ type IngressEnvelope<TPayload = unknown> = {
72
+ type: Key<TPayload>;
73
+ payload?: TPayload;
74
+ source?: string;
75
+ };
76
+ type IngressContext = {
77
+ source: string;
78
+ token?: string | null;
79
+ };
80
+ type IngressHandler<TPayload = unknown, TResult = unknown> = (envelope: IngressEnvelope<TPayload>, context: IngressContext) => Promise<TResult> | TResult;
81
+ declare class Ingress {
82
+ private readonly handlers;
83
+ readonly addHandler: <TPayload = unknown, TResult = unknown>(type: Key<TPayload>, handler: IngressHandler<TPayload, TResult>) => (() => void);
84
+ readonly handle: <TPayload = unknown, TResult = unknown>(envelope: IngressEnvelope<TPayload>, context: IngressContext) => Promise<TResult>;
85
+ }
86
+ //#endregion
87
+ //#region ../nextclaw-shared/src/types/update.types.d.ts
88
+ type UpdateStatus = "idle" | "checking" | "update-available" | "downloading" | "downloaded" | "applying" | "restart-required" | "up-to-date" | "blocked" | "failed";
89
+ type InstallationKind = "desktop-bundle" | "npm-runtime-bundle" | "npm-global" | "unknown";
90
+ type UpdateBlockReason = "host-too-old" | "unsupported-installation" | "signature-verification-unavailable";
91
+ type UpdateProgress = {
92
+ downloadedBytes: number;
93
+ totalBytes: number | null;
94
+ percent: number | null;
95
+ };
96
+ type UpdatePreferences = {
97
+ automaticChecks: boolean;
98
+ autoDownload: boolean;
99
+ };
100
+ type UpdateSnapshot = {
101
+ status: UpdateStatus;
102
+ installationKind: InstallationKind;
103
+ channel: "stable" | "beta";
104
+ hostVersion: string | null;
105
+ currentVersion: string | null;
106
+ availableVersion: string | null;
107
+ downloadedVersion: string | null;
108
+ minimumHostVersion: string | null;
109
+ releaseNotesUrl: string | null;
110
+ lastCheckedAt: string | null;
111
+ progress: UpdateProgress | null;
112
+ canAutoDownload: boolean;
113
+ canApplyInApp: boolean;
114
+ requiresRestart: boolean;
115
+ blockReason: UpdateBlockReason | null;
116
+ recoveryCommand: string | null;
117
+ errorMessage: string | null;
118
+ preferences: UpdatePreferences;
119
+ };
120
+ //#endregion
121
+ //#region src/features/attachments/controllers/attachments.controller.d.ts
122
+ declare class NcpAssetRoutesController {
123
+ private readonly options;
124
+ constructor(options: UiRouterOptions);
125
+ readonly putAssets: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
126
+ ok: boolean;
127
+ error: {
128
+ code: string;
129
+ message: string;
130
+ details: {
131
+ [x: string]: _$hono_utils_types0.JSONValue;
132
+ } | undefined;
133
+ };
134
+ }, 400, "json">) | (Response & _$hono.TypedResponse<{
135
+ ok: boolean;
136
+ error: {
137
+ code: string;
138
+ message: string;
139
+ details: {
140
+ [x: string]: _$hono_utils_types0.JSONValue;
141
+ } | undefined;
142
+ };
143
+ }, 503, "json">) | (Response & _$hono.TypedResponse<{
144
+ ok: boolean;
145
+ data: {
146
+ assets: {
147
+ id: string;
148
+ name: string;
149
+ mimeType: string;
150
+ sizeBytes: number;
151
+ assetUri: string;
152
+ url: string;
153
+ }[];
154
+ };
155
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
156
+ readonly getAssetContent: (c: Context) => Promise<Response>;
157
+ }
158
+ //#endregion
159
+ //#region src/features/attachments/types/ncp-attachment.types.d.ts
12
160
  type UiNcpStoredAssetRecord = {
13
161
  id: string;
14
162
  uri: string;
@@ -32,7 +180,7 @@ type UiNcpAssetPutView = {
32
180
  assets: UiNcpAssetView[];
33
181
  };
34
182
  //#endregion
35
- //#region src/ui/marketplace.types.d.ts
183
+ //#region src/features/marketplace/types/marketplace.types.d.ts
36
184
  type MarketplaceItemType = "plugin" | "skill" | "mcp";
37
185
  type MarketplaceSort = "relevance" | "updated";
38
186
  type MarketplacePluginInstallKind = "npm";
@@ -316,130 +464,7 @@ type MarketplaceApiConfig = {
316
464
  installer?: MarketplaceInstaller;
317
465
  };
318
466
  //#endregion
319
- //#region src/ui/auth.service.d.ts
320
- declare class UiAuthService {
321
- private readonly configPath;
322
- private readonly sessions;
323
- constructor(configPath: string);
324
- private loadCurrentConfig;
325
- private saveCurrentConfig;
326
- private readAuthConfig;
327
- private isConfigured;
328
- isProtectionEnabled(): boolean;
329
- private getSessionIdFromCookieHeader;
330
- private getValidSession;
331
- isRequestAuthenticated(request: Request): boolean;
332
- isSocketAuthenticated(request: IncomingMessage): boolean;
333
- getStatus(request: Request): AuthStatusView;
334
- private createSession;
335
- private clearAllSessions;
336
- private deleteRequestSession;
337
- private buildLoginCookie;
338
- buildTrustedRequestCookieHeader(): string | null;
339
- buildLogoutCookie(request: Request): string;
340
- setup(request: Request, payload: AuthSetupRequest): {
341
- status: AuthStatusView;
342
- cookie: string;
343
- };
344
- login(request: Request, payload: AuthLoginRequest): {
345
- status: AuthStatusView;
346
- cookie: string;
347
- };
348
- logout(request: Request): void;
349
- updatePassword(request: Request, payload: AuthPasswordUpdateRequest): {
350
- status: AuthStatusView;
351
- cookie?: string;
352
- };
353
- updateEnabled(request: Request, payload: AuthEnabledUpdateRequest): {
354
- status: AuthStatusView;
355
- cookie?: string;
356
- };
357
- }
358
- //#endregion
359
- //#region src/ui/runtime-control.types.d.ts
360
- type RuntimeControlEnvironment = "desktop-embedded" | "managed-local-service" | "self-hosted-web" | "shared-web";
361
- type RuntimeLifecycleState = "healthy" | "starting-service" | "restarting-service" | "stopping-service" | "restarting-app" | "recovering" | "unavailable" | "failed";
362
- type RuntimeActionImpact = "none" | "brief-ui-disconnect" | "full-app-relaunch";
363
- type RuntimeActionCapability = {
364
- available: boolean;
365
- requiresConfirmation: boolean;
366
- impact: RuntimeActionImpact;
367
- reasonIfUnavailable?: string;
368
- };
369
- type RuntimeServiceState = "running" | "stopped" | "starting" | "stopping" | "restarting" | "unknown";
370
- type RuntimePendingRestart = {
371
- changedPaths: string[];
372
- message: string;
373
- reasons: string[];
374
- requestedAt: string;
375
- };
376
- type RuntimeControlView = {
377
- environment: RuntimeControlEnvironment;
378
- lifecycle: RuntimeLifecycleState;
379
- serviceState: RuntimeServiceState;
380
- canStartService: RuntimeActionCapability;
381
- canRestartService: RuntimeActionCapability;
382
- canStopService: RuntimeActionCapability;
383
- canRestartApp: RuntimeActionCapability;
384
- pendingRestart?: RuntimePendingRestart | null;
385
- ownerLabel?: string;
386
- managementHint?: string;
387
- message?: string;
388
- };
389
- type RuntimeControlAction = "start-service" | "restart-service" | "stop-service" | "restart-app";
390
- type RuntimeControlActionResult = {
391
- accepted: boolean;
392
- action: RuntimeControlAction;
393
- lifecycle: RuntimeLifecycleState;
394
- message: string;
395
- };
396
- //#endregion
397
- //#region src/ui/ui-routes/types.d.ts
398
- type UiRouterOptions = {
399
- configPath: string;
400
- productVersion?: string;
401
- publish: (event: UiServerEvent) => void;
402
- applyLiveConfigReload?: () => Promise<void>;
403
- initializeAgentHomeDirectory?: (homeDirectory: string) => void;
404
- marketplace?: MarketplaceApiConfig;
405
- cronService?: InstanceType<typeof NextclawCore.CronService>;
406
- ncpAgent?: UiNcpAgent;
407
- ncpSessionService?: UiNcpSessionService;
408
- authService?: UiAuthService;
409
- remoteAccess?: UiRemoteAccessHost;
410
- runtimeControl?: UiRuntimeControlHost;
411
- runtimeUpdate?: UiRuntimeUpdateHost;
412
- getBootstrapStatus?: () => BootstrapStatusView;
413
- getPluginChannelBindings?: () => PluginChannelBinding[];
414
- getPluginUiMetadata?: () => PluginUiMetadata[];
415
- };
416
- type UiRemoteAccessHost = {
417
- getStatus: () => Promise<RemoteAccessView> | RemoteAccessView;
418
- login: (input: RemoteLoginRequest) => Promise<RemoteAccessView>;
419
- startBrowserAuth: (input: RemoteBrowserAuthStartRequest) => Promise<RemoteBrowserAuthStartResult>;
420
- pollBrowserAuth: (input: RemoteBrowserAuthPollRequest) => Promise<RemoteBrowserAuthPollResult>;
421
- logout: () => Promise<RemoteAccessView> | RemoteAccessView;
422
- updateProfile: (input: RemoteAccountProfileUpdateRequest) => Promise<RemoteAccessView> | RemoteAccessView;
423
- updateSettings: (input: RemoteSettingsUpdateRequest) => Promise<RemoteAccessView> | RemoteAccessView;
424
- runDoctor: () => Promise<RemoteDoctorView>;
425
- controlService: (action: RemoteServiceAction) => Promise<RemoteServiceActionResult>;
426
- };
427
- type UiRuntimeControlHost = {
428
- getControl: () => Promise<RuntimeControlView> | RuntimeControlView;
429
- startService: () => Promise<RuntimeControlActionResult> | RuntimeControlActionResult;
430
- restartService: () => Promise<RuntimeControlActionResult> | RuntimeControlActionResult;
431
- stopService: () => Promise<RuntimeControlActionResult> | RuntimeControlActionResult;
432
- };
433
- type UiRuntimeUpdateHost = {
434
- getState: () => Promise<UpdateSnapshot> | UpdateSnapshot;
435
- checkForUpdates: () => Promise<UpdateSnapshot> | UpdateSnapshot;
436
- downloadUpdate: () => Promise<UpdateSnapshot> | UpdateSnapshot;
437
- applyDownloadedUpdate: () => Promise<UpdateSnapshot> | UpdateSnapshot;
438
- updatePreferences: (preferences: Partial<UpdatePreferences>) => Promise<UpdateSnapshot> | UpdateSnapshot;
439
- updateChannel: (channel: UpdateSnapshot["channel"]) => Promise<UpdateSnapshot> | UpdateSnapshot;
440
- };
441
- //#endregion
442
- //#region src/ui/chat-session-type.types.d.ts
467
+ //#region src/features/sessions/types/chat-session-type.types.d.ts
443
468
  type ChatSessionTypeIconView = {
444
469
  kind: "image";
445
470
  src: string;
@@ -466,7 +491,7 @@ type ChatSessionTypesView = {
466
491
  options: ChatSessionTypeOptionView[];
467
492
  };
468
493
  //#endregion
469
- //#region src/ui/types.d.ts
494
+ //#region src/shared/types/server-api.types.d.ts
470
495
  type ApiError = {
471
496
  code: string;
472
497
  message: string;
@@ -1266,51 +1291,1173 @@ type ConfigActionExecuteResult = {
1266
1291
  nextActions?: string[];
1267
1292
  };
1268
1293
  type UiServerEvent = AppEvent;
1269
- type UiServerOptions = {
1270
- host: string;
1271
- port: number;
1294
+ //#endregion
1295
+ //#region src/features/auth/services/ui-auth.service.d.ts
1296
+ declare class UiAuthService {
1297
+ private readonly configPath;
1298
+ private readonly sessions;
1299
+ constructor(configPath: string);
1300
+ private loadCurrentConfig;
1301
+ private saveCurrentConfig;
1302
+ private readAuthConfig;
1303
+ private isConfigured;
1304
+ isProtectionEnabled: () => boolean;
1305
+ private getSessionIdFromCookieHeader;
1306
+ private getValidSession;
1307
+ isRequestAuthenticated: (request: Request) => boolean;
1308
+ isSocketAuthenticated: (request: IncomingMessage) => boolean;
1309
+ getStatus: (request: Request) => AuthStatusView;
1310
+ private createSession;
1311
+ private clearAllSessions;
1312
+ private deleteRequestSession;
1313
+ private buildLoginCookie;
1314
+ buildTrustedRequestCookieHeader: () => string | null;
1315
+ buildLogoutCookie: (request: Request) => string;
1316
+ setup: (request: Request, payload: AuthSetupRequest) => {
1317
+ status: AuthStatusView;
1318
+ cookie: string;
1319
+ };
1320
+ login: (request: Request, payload: AuthLoginRequest) => {
1321
+ status: AuthStatusView;
1322
+ cookie: string;
1323
+ };
1324
+ logout: (request: Request) => void;
1325
+ updatePassword: (request: Request, payload: AuthPasswordUpdateRequest) => {
1326
+ status: AuthStatusView;
1327
+ cookie?: string;
1328
+ };
1329
+ updateEnabled: (request: Request, payload: AuthEnabledUpdateRequest) => {
1330
+ status: AuthStatusView;
1331
+ cookie?: string;
1332
+ };
1333
+ }
1334
+ //#endregion
1335
+ //#region src/features/auth/utils/auth-bridge.utils.d.ts
1336
+ declare function getUiBridgeSecretPath(): string;
1337
+ declare function readUiBridgeSecret(): string | null;
1338
+ declare function ensureUiBridgeSecret(): string;
1339
+ //#endregion
1340
+ //#region src/features/runtime-control/controllers/runtime-control.controller.d.ts
1341
+ declare class RuntimeControlRoutesController {
1342
+ private readonly host;
1343
+ constructor(host: UiRuntimeControlHost);
1344
+ readonly getControl: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
1345
+ ok: boolean;
1346
+ data: {
1347
+ environment: RuntimeControlEnvironment;
1348
+ lifecycle: RuntimeLifecycleState;
1349
+ serviceState: RuntimeServiceState;
1350
+ canStartService: {
1351
+ available: boolean;
1352
+ requiresConfirmation: boolean;
1353
+ impact: RuntimeActionImpact;
1354
+ reasonIfUnavailable?: string | undefined;
1355
+ };
1356
+ canRestartService: {
1357
+ available: boolean;
1358
+ requiresConfirmation: boolean;
1359
+ impact: RuntimeActionImpact;
1360
+ reasonIfUnavailable?: string | undefined;
1361
+ };
1362
+ canStopService: {
1363
+ available: boolean;
1364
+ requiresConfirmation: boolean;
1365
+ impact: RuntimeActionImpact;
1366
+ reasonIfUnavailable?: string | undefined;
1367
+ };
1368
+ canRestartApp: {
1369
+ available: boolean;
1370
+ requiresConfirmation: boolean;
1371
+ impact: RuntimeActionImpact;
1372
+ reasonIfUnavailable?: string | undefined;
1373
+ };
1374
+ pendingRestart?: {
1375
+ changedPaths: string[];
1376
+ message: string;
1377
+ reasons: string[];
1378
+ requestedAt: string;
1379
+ } | null | undefined;
1380
+ ownerLabel?: string | undefined;
1381
+ managementHint?: string | undefined;
1382
+ message?: string | undefined;
1383
+ };
1384
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">) | (Response & _$hono.TypedResponse<{
1385
+ ok: boolean;
1386
+ error: {
1387
+ code: string;
1388
+ message: string;
1389
+ details: {
1390
+ [x: string]: _$hono_utils_types0.JSONValue;
1391
+ } | undefined;
1392
+ };
1393
+ }, 500, "json">)>;
1394
+ readonly restartService: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
1395
+ ok: boolean;
1396
+ error: {
1397
+ code: string;
1398
+ message: string;
1399
+ details: {
1400
+ [x: string]: _$hono_utils_types0.JSONValue;
1401
+ } | undefined;
1402
+ };
1403
+ }, 400, "json">) | (Response & _$hono.TypedResponse<{
1404
+ ok: boolean;
1405
+ data: {
1406
+ accepted: boolean;
1407
+ action: RuntimeControlAction;
1408
+ lifecycle: RuntimeLifecycleState;
1409
+ message: string;
1410
+ };
1411
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
1412
+ readonly startService: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
1413
+ ok: boolean;
1414
+ error: {
1415
+ code: string;
1416
+ message: string;
1417
+ details: {
1418
+ [x: string]: _$hono_utils_types0.JSONValue;
1419
+ } | undefined;
1420
+ };
1421
+ }, 400, "json">) | (Response & _$hono.TypedResponse<{
1422
+ ok: boolean;
1423
+ data: {
1424
+ accepted: boolean;
1425
+ action: RuntimeControlAction;
1426
+ lifecycle: RuntimeLifecycleState;
1427
+ message: string;
1428
+ };
1429
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
1430
+ readonly stopService: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
1431
+ ok: boolean;
1432
+ error: {
1433
+ code: string;
1434
+ message: string;
1435
+ details: {
1436
+ [x: string]: _$hono_utils_types0.JSONValue;
1437
+ } | undefined;
1438
+ };
1439
+ }, 400, "json">) | (Response & _$hono.TypedResponse<{
1440
+ ok: boolean;
1441
+ data: {
1442
+ accepted: boolean;
1443
+ action: RuntimeControlAction;
1444
+ lifecycle: RuntimeLifecycleState;
1445
+ message: string;
1446
+ };
1447
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
1448
+ }
1449
+ //#endregion
1450
+ //#region src/features/runtime-control/types/runtime-control.types.d.ts
1451
+ type RuntimeControlEnvironment = "desktop-embedded" | "managed-local-service" | "self-hosted-web" | "shared-web";
1452
+ type RuntimeLifecycleState = "healthy" | "starting-service" | "restarting-service" | "stopping-service" | "restarting-app" | "recovering" | "unavailable" | "failed";
1453
+ type RuntimeActionImpact = "none" | "brief-ui-disconnect" | "full-app-relaunch";
1454
+ type RuntimeActionCapability = {
1455
+ available: boolean;
1456
+ requiresConfirmation: boolean;
1457
+ impact: RuntimeActionImpact;
1458
+ reasonIfUnavailable?: string;
1459
+ };
1460
+ type RuntimeServiceState = "running" | "stopped" | "starting" | "stopping" | "restarting" | "unknown";
1461
+ type RuntimePendingRestart = {
1462
+ changedPaths: string[];
1463
+ message: string;
1464
+ reasons: string[];
1465
+ requestedAt: string;
1466
+ };
1467
+ type RuntimeControlView = {
1468
+ environment: RuntimeControlEnvironment;
1469
+ lifecycle: RuntimeLifecycleState;
1470
+ serviceState: RuntimeServiceState;
1471
+ canStartService: RuntimeActionCapability;
1472
+ canRestartService: RuntimeActionCapability;
1473
+ canStopService: RuntimeActionCapability;
1474
+ canRestartApp: RuntimeActionCapability;
1475
+ pendingRestart?: RuntimePendingRestart | null;
1476
+ ownerLabel?: string;
1477
+ managementHint?: string;
1478
+ message?: string;
1479
+ };
1480
+ type RuntimeControlAction = "start-service" | "restart-service" | "stop-service" | "restart-app";
1481
+ type RuntimeControlActionResult = {
1482
+ accepted: boolean;
1483
+ action: RuntimeControlAction;
1484
+ lifecycle: RuntimeLifecycleState;
1485
+ message: string;
1486
+ };
1487
+ //#endregion
1488
+ //#region src/app/types/router-options.types.d.ts
1489
+ type UiAppEventBus = Pick<EventBus, "emit" | "subscribeAll">;
1490
+ type UiIngress = Pick<Ingress, "handle">;
1491
+ type UiBootstrapStatusHost = {
1492
+ getStatus: () => BootstrapStatusView;
1493
+ };
1494
+ type UiPluginHost = {
1495
+ getChannelBindings: () => PluginChannelBinding[];
1496
+ getUiMetadata: () => PluginUiMetadata[];
1497
+ };
1498
+ type UiNcpSessionHost = UiNcpSessionService;
1499
+ type UiCronHost = {
1500
+ listJobs: (includeDisabled?: boolean) => CronJobEntry[];
1501
+ addJob: (params: {
1502
+ name: string;
1503
+ schedule: CronJobEntry["schedule"];
1504
+ message: string;
1505
+ agentId?: string;
1506
+ sessionId?: string;
1507
+ deliver?: boolean;
1508
+ channel?: string;
1509
+ to?: string;
1510
+ accountId?: string;
1511
+ deleteAfterRun?: boolean;
1512
+ }) => CronJobEntry;
1513
+ removeJob: (jobId: string) => boolean;
1514
+ enableJob: (jobId: string, enabled?: boolean) => CronJobEntry | null;
1515
+ runJob: (jobId: string, force?: boolean) => Promise<boolean>;
1516
+ };
1517
+ type UiRouterOptions = {
1272
1518
  configPath: string;
1273
- productVersion?: string;
1519
+ appEventBus: UiAppEventBus;
1520
+ ingress?: UiIngress;
1521
+ uiConfig?: Pick<NextclawCore.Config["ui"], "enabled" | "host" | "open" | "port">;
1522
+ uiStaticDir?: string | null;
1274
1523
  corsOrigins?: string[] | "*";
1275
- staticDir?: string;
1524
+ productVersion?: string;
1525
+ applyLiveConfigReload?: () => Promise<void>;
1276
1526
  initializeAgentHomeDirectory?: (homeDirectory: string) => void;
1277
1527
  marketplace?: MarketplaceApiConfig;
1278
- cronService?: CronService;
1528
+ cron?: UiCronHost;
1279
1529
  ncpAgent?: UiNcpAgent;
1280
- ncpSessionService?: UiNcpSessionService;
1530
+ sessions?: UiNcpSessionHost;
1531
+ authService?: UiAuthService;
1281
1532
  remoteAccess?: UiRemoteAccessHost;
1282
1533
  runtimeControl?: UiRuntimeControlHost;
1283
- getBootstrapStatus?: () => BootstrapStatusView;
1284
- getPluginChannelBindings?: () => PluginChannelBinding[];
1285
- getPluginUiMetadata?: () => PluginUiMetadata[];
1534
+ runtimeUpdate?: UiRuntimeUpdateHost;
1535
+ bootstrapStatus?: UiBootstrapStatusHost;
1536
+ plugins?: UiPluginHost;
1537
+ providers?: LlmProviderManager;
1538
+ };
1539
+ type UiRemoteAccessHost = {
1540
+ getStatus: () => Promise<RemoteAccessView> | RemoteAccessView;
1541
+ login: (input: RemoteLoginRequest) => Promise<RemoteAccessView>;
1542
+ startBrowserAuth: (input: RemoteBrowserAuthStartRequest) => Promise<RemoteBrowserAuthStartResult>;
1543
+ pollBrowserAuth: (input: RemoteBrowserAuthPollRequest) => Promise<RemoteBrowserAuthPollResult>;
1544
+ logout: () => Promise<RemoteAccessView> | RemoteAccessView;
1545
+ updateProfile: (input: RemoteAccountProfileUpdateRequest) => Promise<RemoteAccessView> | RemoteAccessView;
1546
+ updateSettings: (input: RemoteSettingsUpdateRequest) => Promise<RemoteAccessView> | RemoteAccessView;
1547
+ runDoctor: () => Promise<RemoteDoctorView>;
1548
+ controlService: (action: RemoteServiceAction) => Promise<RemoteServiceActionResult>;
1549
+ };
1550
+ type UiRuntimeControlHost = {
1551
+ getControl: () => Promise<RuntimeControlView> | RuntimeControlView;
1552
+ startService: () => Promise<RuntimeControlActionResult> | RuntimeControlActionResult;
1553
+ restartService: () => Promise<RuntimeControlActionResult> | RuntimeControlActionResult;
1554
+ stopService: () => Promise<RuntimeControlActionResult> | RuntimeControlActionResult;
1555
+ };
1556
+ type UiRuntimeUpdateHost = {
1557
+ getState: () => Promise<UpdateSnapshot> | UpdateSnapshot;
1558
+ checkForUpdates: () => Promise<UpdateSnapshot> | UpdateSnapshot;
1559
+ downloadUpdate: () => Promise<UpdateSnapshot> | UpdateSnapshot;
1560
+ applyDownloadedUpdate: () => Promise<UpdateSnapshot> | UpdateSnapshot;
1561
+ updatePreferences: (preferences: Partial<UpdatePreferences>) => Promise<UpdateSnapshot> | UpdateSnapshot;
1562
+ updateChannel: (channel: UpdateSnapshot["channel"]) => Promise<UpdateSnapshot> | UpdateSnapshot;
1563
+ };
1564
+ type CronJobEntry = {
1565
+ id: string;
1566
+ name: string;
1567
+ enabled: boolean;
1568
+ schedule: {
1569
+ kind: "at" | "every" | "cron";
1570
+ atMs?: number | null;
1571
+ everyMs?: number | null;
1572
+ expr?: string | null;
1573
+ tz?: string | null;
1574
+ };
1575
+ payload: {
1576
+ kind?: "system_event" | "agent_turn";
1577
+ message: string;
1578
+ agentId?: string | null;
1579
+ sessionId?: string | null;
1580
+ deliver?: boolean;
1581
+ channel?: string | null;
1582
+ to?: string | null;
1583
+ accountId?: string | null;
1584
+ };
1585
+ state: {
1586
+ nextRunAtMs?: number | null;
1587
+ lastRunAtMs?: number | null;
1588
+ lastStatus?: "ok" | "error" | "skipped" | null;
1589
+ lastError?: string | null;
1590
+ };
1591
+ createdAtMs: number;
1592
+ updatedAtMs: number;
1593
+ deleteAfterRun: boolean;
1286
1594
  };
1595
+ //#endregion
1596
+ //#region src/app/server.d.ts
1287
1597
  type UiServerHandle = {
1288
1598
  host: string;
1289
1599
  port: number;
1290
1600
  close: () => Promise<void>;
1291
- publish: (event: UiServerEvent) => void;
1292
1601
  };
1602
+ declare function startUiServer(gateway: UiRouterOptions): Promise<UiServerHandle>;
1293
1603
  //#endregion
1294
- //#region src/ui/server.d.ts
1295
- type UiServerStartOptions = UiServerOptions & {
1296
- applyLiveConfigReload?: () => Promise<void>;
1297
- runtimeUpdate?: UiRuntimeUpdateHost;
1298
- };
1299
- declare function startUiServer(options: UiServerStartOptions): Promise<UiServerHandle>;
1604
+ //#region src/app/router.d.ts
1605
+ declare function createUiRouter(options: UiRouterOptions, authServiceOverride?: UiAuthService): Hono;
1300
1606
  //#endregion
1301
- //#region src/ui/router.d.ts
1302
- declare function createUiRouter(options: UiRouterOptions): Hono;
1607
+ //#region ../nextclaw-core/src/shared/lib/core-utils/utils/thinking.d.ts
1608
+ declare const THINKING_LEVELS: readonly ["off", "minimal", "low", "medium", "high", "adaptive", "xhigh"];
1609
+ type ThinkingLevel$1 = (typeof THINKING_LEVELS)[number];
1303
1610
  //#endregion
1304
- //#region src/ui/plugin-channel-config.projection.d.ts
1611
+ //#region src/features/config/controllers/config.controller.d.ts
1612
+ declare class ConfigRoutesController {
1613
+ private readonly options;
1614
+ private readonly channelConfigApplyTasks;
1615
+ constructor(options: UiRouterOptions);
1616
+ private readonly getPluginConfigOptions;
1617
+ private readonly publishConfigUpdatedPaths;
1618
+ private readonly publishConfigUpdates;
1619
+ private readonly publishChannelConfigApplyStatus;
1620
+ private readonly enqueueChannelConfigApply;
1621
+ readonly getConfig: (c: Context) => Response & _$hono.TypedResponse<{
1622
+ ok: boolean;
1623
+ data: {
1624
+ companion?: {
1625
+ enabled?: boolean | undefined;
1626
+ } | undefined;
1627
+ agents: {
1628
+ defaults: {
1629
+ model: string;
1630
+ workspace?: string | undefined;
1631
+ engine?: string | undefined;
1632
+ engineConfig?: {
1633
+ [x: string]: _$hono_utils_types0.JSONValue;
1634
+ } | undefined;
1635
+ contextTokens?: number | undefined;
1636
+ maxToolIterations?: number | undefined;
1637
+ };
1638
+ runtimes?: {
1639
+ entries?: {
1640
+ [x: string]: {
1641
+ enabled?: boolean | undefined;
1642
+ label?: string | undefined;
1643
+ icon?: {
1644
+ kind: "image";
1645
+ src: string;
1646
+ alt?: string | null | undefined;
1647
+ } | null | undefined;
1648
+ type: string;
1649
+ config?: {
1650
+ [x: string]: _$hono_utils_types0.JSONValue;
1651
+ } | undefined;
1652
+ };
1653
+ } | undefined;
1654
+ } | undefined;
1655
+ list?: {
1656
+ id: string;
1657
+ default?: boolean | undefined;
1658
+ displayName?: string | undefined;
1659
+ description?: string | undefined;
1660
+ avatar?: string | undefined;
1661
+ avatarUrl?: string | undefined;
1662
+ workspace?: string | undefined;
1663
+ model?: string | undefined;
1664
+ runtime?: string | undefined;
1665
+ runtimeConfig?: {
1666
+ [x: string]: _$hono_utils_types0.JSONValue;
1667
+ } | undefined;
1668
+ engine?: string | undefined;
1669
+ engineConfig?: {
1670
+ [x: string]: _$hono_utils_types0.JSONValue;
1671
+ } | undefined;
1672
+ contextTokens?: number | undefined;
1673
+ maxToolIterations?: number | undefined;
1674
+ builtIn?: boolean | undefined;
1675
+ }[] | undefined;
1676
+ context?: {
1677
+ bootstrap?: {
1678
+ files?: string[] | undefined;
1679
+ minimalFiles?: string[] | undefined;
1680
+ perFileChars?: number | undefined;
1681
+ totalChars?: number | undefined;
1682
+ } | undefined;
1683
+ memory?: {
1684
+ enabled?: boolean | undefined;
1685
+ maxChars?: number | undefined;
1686
+ } | undefined;
1687
+ } | undefined;
1688
+ };
1689
+ providers: {
1690
+ [x: string]: {
1691
+ enabled: boolean;
1692
+ displayName?: string | undefined;
1693
+ apiKeySet: boolean;
1694
+ apiKeyMasked?: string | undefined;
1695
+ apiBase?: string | null | undefined;
1696
+ extraHeaders?: {
1697
+ [x: string]: string;
1698
+ } | null | undefined;
1699
+ wireApi?: "auto" | "chat" | "responses" | null | undefined;
1700
+ models?: string[] | undefined;
1701
+ modelThinking?: {
1702
+ [x: string]: {
1703
+ supported: ThinkingLevel$1[];
1704
+ default?: (ThinkingLevel$1 | null) | undefined;
1705
+ };
1706
+ } | undefined;
1707
+ };
1708
+ };
1709
+ search: {
1710
+ provider: SearchProviderName;
1711
+ enabledProviders: SearchProviderName[];
1712
+ defaults: {
1713
+ maxResults: number;
1714
+ };
1715
+ providers: {
1716
+ bocha: {
1717
+ enabled: boolean;
1718
+ apiKeySet: boolean;
1719
+ apiKeyMasked?: string | undefined;
1720
+ baseUrl: string;
1721
+ docsUrl?: string | undefined;
1722
+ summary?: boolean | undefined;
1723
+ freshness?: BochaFreshnessValue | undefined;
1724
+ searchDepth?: TavilySearchDepthValue | undefined;
1725
+ includeAnswer?: boolean | undefined;
1726
+ };
1727
+ tavily: {
1728
+ enabled: boolean;
1729
+ apiKeySet: boolean;
1730
+ apiKeyMasked?: string | undefined;
1731
+ baseUrl: string;
1732
+ docsUrl?: string | undefined;
1733
+ summary?: boolean | undefined;
1734
+ freshness?: BochaFreshnessValue | undefined;
1735
+ searchDepth?: TavilySearchDepthValue | undefined;
1736
+ includeAnswer?: boolean | undefined;
1737
+ };
1738
+ brave: {
1739
+ enabled: boolean;
1740
+ apiKeySet: boolean;
1741
+ apiKeyMasked?: string | undefined;
1742
+ baseUrl: string;
1743
+ docsUrl?: string | undefined;
1744
+ summary?: boolean | undefined;
1745
+ freshness?: BochaFreshnessValue | undefined;
1746
+ searchDepth?: TavilySearchDepthValue | undefined;
1747
+ includeAnswer?: boolean | undefined;
1748
+ };
1749
+ };
1750
+ };
1751
+ channels: {
1752
+ [x: string]: {
1753
+ [x: string]: _$hono_utils_types0.JSONValue;
1754
+ };
1755
+ };
1756
+ bindings?: {
1757
+ agentId: string;
1758
+ match: {
1759
+ channel: string;
1760
+ accountId?: string | undefined;
1761
+ peer?: {
1762
+ kind: "direct" | "group" | "channel";
1763
+ id: string;
1764
+ } | undefined;
1765
+ };
1766
+ }[] | undefined;
1767
+ session?: {
1768
+ dmScope?: "main" | "per-peer" | "per-channel-peer" | "per-account-channel-peer" | undefined;
1769
+ } | undefined;
1770
+ tools?: {
1771
+ [x: string]: _$hono_utils_types0.JSONValue;
1772
+ } | undefined;
1773
+ gateway?: {
1774
+ [x: string]: _$hono_utils_types0.JSONValue;
1775
+ } | undefined;
1776
+ ui?: {
1777
+ [x: string]: _$hono_utils_types0.JSONValue;
1778
+ } | undefined;
1779
+ secrets?: {
1780
+ enabled: boolean;
1781
+ defaults: {
1782
+ env?: string | undefined;
1783
+ file?: string | undefined;
1784
+ exec?: string | undefined;
1785
+ };
1786
+ providers: {
1787
+ [x: string]: {
1788
+ source: "env";
1789
+ prefix?: string | undefined;
1790
+ } | {
1791
+ source: "file";
1792
+ path: string;
1793
+ format?: "json" | undefined;
1794
+ } | {
1795
+ source: "exec";
1796
+ command: string;
1797
+ args?: string[] | undefined;
1798
+ cwd?: string | undefined;
1799
+ timeoutMs?: number | undefined;
1800
+ };
1801
+ };
1802
+ refs: {
1803
+ [x: string]: {
1804
+ source: SecretSourceView;
1805
+ provider?: string | undefined;
1806
+ id: string;
1807
+ };
1808
+ };
1809
+ } | undefined;
1810
+ };
1811
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">;
1812
+ readonly getConfigMeta: (c: Context) => Response & _$hono.TypedResponse<{
1813
+ ok: boolean;
1814
+ data: {
1815
+ providers: {
1816
+ name: string;
1817
+ displayName?: string | undefined;
1818
+ isCustom?: boolean | undefined;
1819
+ modelPrefix?: string | undefined;
1820
+ keywords: string[];
1821
+ envKey: string;
1822
+ isGateway?: boolean | undefined;
1823
+ isLocal?: boolean | undefined;
1824
+ defaultApiBase?: string | undefined;
1825
+ logo?: string | undefined;
1826
+ apiBaseHelp?: {
1827
+ en?: string | undefined;
1828
+ zh?: string | undefined;
1829
+ } | undefined;
1830
+ auth?: {
1831
+ kind: "device_code";
1832
+ displayName?: string | undefined;
1833
+ note?: {
1834
+ en?: string | undefined;
1835
+ zh?: string | undefined;
1836
+ } | undefined;
1837
+ methods?: {
1838
+ id: string;
1839
+ label?: {
1840
+ en?: string | undefined;
1841
+ zh?: string | undefined;
1842
+ } | undefined;
1843
+ hint?: {
1844
+ en?: string | undefined;
1845
+ zh?: string | undefined;
1846
+ } | undefined;
1847
+ }[] | undefined;
1848
+ defaultMethodId?: string | undefined;
1849
+ supportsCliImport?: boolean | undefined;
1850
+ } | undefined;
1851
+ defaultModels?: string[] | undefined;
1852
+ supportsWireApi?: boolean | undefined;
1853
+ wireApiOptions?: Array<"auto" | "chat" | "responses"> | undefined;
1854
+ defaultWireApi?: "auto" | "chat" | "responses" | undefined;
1855
+ }[];
1856
+ search: {
1857
+ name: SearchProviderName;
1858
+ displayName: string;
1859
+ description: string;
1860
+ docsUrl?: string | undefined;
1861
+ isDefault?: boolean | undefined;
1862
+ supportsSummary?: boolean | undefined;
1863
+ }[];
1864
+ channels: {
1865
+ name: string;
1866
+ displayName?: string | undefined;
1867
+ enabled: boolean;
1868
+ tutorialUrl?: string | undefined;
1869
+ tutorialUrls?: {
1870
+ default?: string | undefined;
1871
+ en?: string | undefined;
1872
+ zh?: string | undefined;
1873
+ } | undefined;
1874
+ }[];
1875
+ };
1876
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">;
1877
+ readonly getConfigSchema: (c: Context) => Response & _$hono.TypedResponse<{
1878
+ ok: boolean;
1879
+ data: {
1880
+ schema: {
1881
+ [x: string]: _$hono_utils_types0.JSONValue;
1882
+ };
1883
+ uiHints: {
1884
+ [x: string]: {
1885
+ label?: string | undefined;
1886
+ help?: string | undefined;
1887
+ group?: string | undefined;
1888
+ order?: number | undefined;
1889
+ advanced?: boolean | undefined;
1890
+ sensitive?: boolean | undefined;
1891
+ placeholder?: string | undefined;
1892
+ readOnly?: boolean | undefined;
1893
+ };
1894
+ };
1895
+ actions: {
1896
+ id: string;
1897
+ version: string;
1898
+ scope: string;
1899
+ title: string;
1900
+ description?: string | undefined;
1901
+ type: ConfigActionType;
1902
+ trigger: "manual" | "afterSave";
1903
+ requires?: string[] | undefined;
1904
+ request: {
1905
+ method: "GET" | "POST" | "PUT";
1906
+ path: string;
1907
+ timeoutMs?: number | undefined;
1908
+ };
1909
+ success?: {
1910
+ message?: string | undefined;
1911
+ } | undefined;
1912
+ failure?: {
1913
+ message?: string | undefined;
1914
+ } | undefined;
1915
+ saveBeforeRun?: boolean | undefined;
1916
+ savePatch?: {
1917
+ [x: string]: _$hono_utils_types0.JSONValue;
1918
+ } | undefined;
1919
+ resultMap?: {
1920
+ [x: string]: string;
1921
+ } | undefined;
1922
+ policy?: {
1923
+ roles?: string[] | undefined;
1924
+ rateLimitKey?: string | undefined;
1925
+ cooldownMs?: number | undefined;
1926
+ audit?: boolean | undefined;
1927
+ } | undefined;
1928
+ }[];
1929
+ version: string;
1930
+ generatedAt: string;
1931
+ };
1932
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">;
1933
+ readonly updateConfigModel: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
1934
+ ok: boolean;
1935
+ error: {
1936
+ code: string;
1937
+ message: string;
1938
+ details: {
1939
+ [x: string]: _$hono_utils_types0.JSONValue;
1940
+ } | undefined;
1941
+ };
1942
+ }, 400, "json">) | (Response & _$hono.TypedResponse<{
1943
+ ok: boolean;
1944
+ data: {
1945
+ model: string;
1946
+ workspace: string | undefined;
1947
+ };
1948
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
1949
+ readonly updateConfigSearch: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
1950
+ ok: boolean;
1951
+ error: {
1952
+ code: string;
1953
+ message: string;
1954
+ details: {
1955
+ [x: string]: _$hono_utils_types0.JSONValue;
1956
+ } | undefined;
1957
+ };
1958
+ }, 400, "json">) | (Response & _$hono.TypedResponse<{
1959
+ ok: boolean;
1960
+ data: {
1961
+ provider: SearchProviderName;
1962
+ enabledProviders: SearchProviderName[];
1963
+ defaults: {
1964
+ maxResults: number;
1965
+ };
1966
+ providers: {
1967
+ bocha: {
1968
+ enabled: boolean;
1969
+ apiKeySet: boolean;
1970
+ apiKeyMasked?: string | undefined;
1971
+ baseUrl: string;
1972
+ docsUrl?: string | undefined;
1973
+ summary?: boolean | undefined;
1974
+ freshness?: BochaFreshnessValue | undefined;
1975
+ searchDepth?: TavilySearchDepthValue | undefined;
1976
+ includeAnswer?: boolean | undefined;
1977
+ };
1978
+ tavily: {
1979
+ enabled: boolean;
1980
+ apiKeySet: boolean;
1981
+ apiKeyMasked?: string | undefined;
1982
+ baseUrl: string;
1983
+ docsUrl?: string | undefined;
1984
+ summary?: boolean | undefined;
1985
+ freshness?: BochaFreshnessValue | undefined;
1986
+ searchDepth?: TavilySearchDepthValue | undefined;
1987
+ includeAnswer?: boolean | undefined;
1988
+ };
1989
+ brave: {
1990
+ enabled: boolean;
1991
+ apiKeySet: boolean;
1992
+ apiKeyMasked?: string | undefined;
1993
+ baseUrl: string;
1994
+ docsUrl?: string | undefined;
1995
+ summary?: boolean | undefined;
1996
+ freshness?: BochaFreshnessValue | undefined;
1997
+ searchDepth?: TavilySearchDepthValue | undefined;
1998
+ includeAnswer?: boolean | undefined;
1999
+ };
2000
+ };
2001
+ };
2002
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
2003
+ readonly updateProvider: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
2004
+ ok: boolean;
2005
+ error: {
2006
+ code: string;
2007
+ message: string;
2008
+ details: {
2009
+ [x: string]: _$hono_utils_types0.JSONValue;
2010
+ } | undefined;
2011
+ };
2012
+ }, 400, "json">) | (Response & _$hono.TypedResponse<{
2013
+ ok: boolean;
2014
+ error: {
2015
+ code: string;
2016
+ message: string;
2017
+ details: {
2018
+ [x: string]: _$hono_utils_types0.JSONValue;
2019
+ } | undefined;
2020
+ };
2021
+ }, 404, "json">) | (Response & _$hono.TypedResponse<{
2022
+ ok: boolean;
2023
+ data: {
2024
+ enabled: boolean;
2025
+ displayName?: string | undefined;
2026
+ apiKeySet: boolean;
2027
+ apiKeyMasked?: string | undefined;
2028
+ apiBase?: string | null | undefined;
2029
+ extraHeaders?: {
2030
+ [x: string]: string;
2031
+ } | null | undefined;
2032
+ wireApi?: "auto" | "chat" | "responses" | null | undefined;
2033
+ models?: string[] | undefined;
2034
+ modelThinking?: {
2035
+ [x: string]: {
2036
+ supported: ThinkingLevel$1[];
2037
+ default?: (ThinkingLevel$1 | null) | undefined;
2038
+ };
2039
+ } | undefined;
2040
+ };
2041
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
2042
+ readonly createProvider: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
2043
+ ok: boolean;
2044
+ error: {
2045
+ code: string;
2046
+ message: string;
2047
+ details: {
2048
+ [x: string]: _$hono_utils_types0.JSONValue;
2049
+ } | undefined;
2050
+ };
2051
+ }, 400, "json">) | (Response & _$hono.TypedResponse<{
2052
+ ok: boolean;
2053
+ data: {
2054
+ name: string;
2055
+ provider: {
2056
+ enabled: boolean;
2057
+ displayName?: string | undefined;
2058
+ apiKeySet: boolean;
2059
+ apiKeyMasked?: string | undefined;
2060
+ apiBase?: string | null | undefined;
2061
+ extraHeaders?: {
2062
+ [x: string]: string;
2063
+ } | null | undefined;
2064
+ wireApi?: "auto" | "chat" | "responses" | null | undefined;
2065
+ models?: string[] | undefined;
2066
+ modelThinking?: {
2067
+ [x: string]: {
2068
+ supported: ThinkingLevel$1[];
2069
+ default?: (ThinkingLevel$1 | null) | undefined;
2070
+ };
2071
+ } | undefined;
2072
+ };
2073
+ };
2074
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
2075
+ readonly deleteProvider: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
2076
+ ok: boolean;
2077
+ error: {
2078
+ code: string;
2079
+ message: string;
2080
+ details: {
2081
+ [x: string]: _$hono_utils_types0.JSONValue;
2082
+ } | undefined;
2083
+ };
2084
+ }, 404, "json">) | (Response & _$hono.TypedResponse<{
2085
+ ok: boolean;
2086
+ data: {
2087
+ deleted: true;
2088
+ provider: string;
2089
+ };
2090
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
2091
+ readonly testProviderConnection: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
2092
+ ok: boolean;
2093
+ error: {
2094
+ code: string;
2095
+ message: string;
2096
+ details: {
2097
+ [x: string]: _$hono_utils_types0.JSONValue;
2098
+ } | undefined;
2099
+ };
2100
+ }, 400, "json">) | (Response & _$hono.TypedResponse<{
2101
+ ok: boolean;
2102
+ error: {
2103
+ code: string;
2104
+ message: string;
2105
+ details: {
2106
+ [x: string]: _$hono_utils_types0.JSONValue;
2107
+ } | undefined;
2108
+ };
2109
+ }, 404, "json">) | (Response & _$hono.TypedResponse<{
2110
+ ok: boolean;
2111
+ data: {
2112
+ success: boolean;
2113
+ provider: string;
2114
+ model?: string | undefined;
2115
+ latencyMs: number;
2116
+ message: string;
2117
+ };
2118
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
2119
+ readonly startProviderAuth: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
2120
+ ok: boolean;
2121
+ error: {
2122
+ code: string;
2123
+ message: string;
2124
+ details: {
2125
+ [x: string]: _$hono_utils_types0.JSONValue;
2126
+ } | undefined;
2127
+ };
2128
+ }, 400, "json">) | (Response & _$hono.TypedResponse<{
2129
+ ok: boolean;
2130
+ error: {
2131
+ code: string;
2132
+ message: string;
2133
+ details: {
2134
+ [x: string]: _$hono_utils_types0.JSONValue;
2135
+ } | undefined;
2136
+ };
2137
+ }, 404, "json">) | (Response & _$hono.TypedResponse<{
2138
+ ok: boolean;
2139
+ data: {
2140
+ provider: string;
2141
+ kind: "device_code";
2142
+ methodId?: string | undefined;
2143
+ sessionId: string;
2144
+ verificationUri: string;
2145
+ userCode: string;
2146
+ expiresAt: string;
2147
+ intervalMs: number;
2148
+ note?: string | undefined;
2149
+ };
2150
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
2151
+ readonly pollProviderAuth: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
2152
+ ok: boolean;
2153
+ error: {
2154
+ code: string;
2155
+ message: string;
2156
+ details: {
2157
+ [x: string]: _$hono_utils_types0.JSONValue;
2158
+ } | undefined;
2159
+ };
2160
+ }, 400, "json">) | (Response & _$hono.TypedResponse<{
2161
+ ok: boolean;
2162
+ error: {
2163
+ code: string;
2164
+ message: string;
2165
+ details: {
2166
+ [x: string]: _$hono_utils_types0.JSONValue;
2167
+ } | undefined;
2168
+ };
2169
+ }, 404, "json">) | (Response & _$hono.TypedResponse<{
2170
+ ok: boolean;
2171
+ data: {
2172
+ provider: string;
2173
+ status: "pending" | "authorized" | "denied" | "expired" | "error";
2174
+ message?: string | undefined;
2175
+ nextPollMs?: number | undefined;
2176
+ };
2177
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
2178
+ readonly importProviderAuthFromCli: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
2179
+ ok: boolean;
2180
+ error: {
2181
+ code: string;
2182
+ message: string;
2183
+ details: {
2184
+ [x: string]: _$hono_utils_types0.JSONValue;
2185
+ } | undefined;
2186
+ };
2187
+ }, 400, "json">) | (Response & _$hono.TypedResponse<{
2188
+ ok: boolean;
2189
+ error: {
2190
+ code: string;
2191
+ message: string;
2192
+ details: {
2193
+ [x: string]: _$hono_utils_types0.JSONValue;
2194
+ } | undefined;
2195
+ };
2196
+ }, 404, "json">) | (Response & _$hono.TypedResponse<{
2197
+ ok: boolean;
2198
+ data: {
2199
+ provider: string;
2200
+ status: "imported";
2201
+ source: "cli";
2202
+ expiresAt?: string | undefined;
2203
+ };
2204
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
2205
+ readonly updateChannel: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
2206
+ ok: boolean;
2207
+ error: {
2208
+ code: string;
2209
+ message: string;
2210
+ details: {
2211
+ [x: string]: _$hono_utils_types0.JSONValue;
2212
+ } | undefined;
2213
+ };
2214
+ }, 400, "json">) | (Response & _$hono.TypedResponse<{
2215
+ ok: boolean;
2216
+ error: {
2217
+ code: string;
2218
+ message: string;
2219
+ details: {
2220
+ [x: string]: _$hono_utils_types0.JSONValue;
2221
+ } | undefined;
2222
+ };
2223
+ }, 404, "json">) | (Response & _$hono.TypedResponse<{
2224
+ ok: boolean;
2225
+ data: {
2226
+ [x: string]: _$hono_utils_types0.JSONValue;
2227
+ };
2228
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
2229
+ readonly startChannelAuth: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
2230
+ ok: boolean;
2231
+ error: {
2232
+ code: string;
2233
+ message: string;
2234
+ details: {
2235
+ [x: string]: _$hono_utils_types0.JSONValue;
2236
+ } | undefined;
2237
+ };
2238
+ }, 400, "json">) | (Response & _$hono.TypedResponse<{
2239
+ ok: boolean;
2240
+ error: {
2241
+ code: string;
2242
+ message: string;
2243
+ details: {
2244
+ [x: string]: _$hono_utils_types0.JSONValue;
2245
+ } | undefined;
2246
+ };
2247
+ }, 404, "json">) | (Response & _$hono.TypedResponse<{
2248
+ ok: boolean;
2249
+ data: {
2250
+ channel: string;
2251
+ kind: "qr_code";
2252
+ sessionId: string;
2253
+ qrCode: string;
2254
+ qrCodeUrl: string;
2255
+ expiresAt: string;
2256
+ intervalMs: number;
2257
+ note?: string | undefined;
2258
+ };
2259
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
2260
+ readonly pollChannelAuth: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
2261
+ ok: boolean;
2262
+ error: {
2263
+ code: string;
2264
+ message: string;
2265
+ details: {
2266
+ [x: string]: _$hono_utils_types0.JSONValue;
2267
+ } | undefined;
2268
+ };
2269
+ }, 400, "json">) | (Response & _$hono.TypedResponse<{
2270
+ ok: boolean;
2271
+ error: {
2272
+ code: string;
2273
+ message: string;
2274
+ details: {
2275
+ [x: string]: _$hono_utils_types0.JSONValue;
2276
+ } | undefined;
2277
+ };
2278
+ }, 404, "json">) | (Response & _$hono.TypedResponse<{
2279
+ ok: boolean;
2280
+ data: {
2281
+ channel: string;
2282
+ status: "pending" | "scanned" | "authorized" | "expired" | "error";
2283
+ message?: string | undefined;
2284
+ nextPollMs?: number | undefined;
2285
+ accountId?: string | null | undefined;
2286
+ notes?: string[] | undefined;
2287
+ };
2288
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
2289
+ readonly updateSecrets: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
2290
+ ok: boolean;
2291
+ error: {
2292
+ code: string;
2293
+ message: string;
2294
+ details: {
2295
+ [x: string]: _$hono_utils_types0.JSONValue;
2296
+ } | undefined;
2297
+ };
2298
+ }, 400, "json">) | (Response & _$hono.TypedResponse<{
2299
+ ok: boolean;
2300
+ data: {
2301
+ enabled: boolean;
2302
+ defaults: {
2303
+ env?: string | undefined;
2304
+ file?: string | undefined;
2305
+ exec?: string | undefined;
2306
+ };
2307
+ providers: {
2308
+ [x: string]: {
2309
+ source: "env";
2310
+ prefix?: string | undefined;
2311
+ } | {
2312
+ source: "file";
2313
+ path: string;
2314
+ format?: "json" | undefined;
2315
+ } | {
2316
+ source: "exec";
2317
+ command: string;
2318
+ args?: string[] | undefined;
2319
+ cwd?: string | undefined;
2320
+ timeoutMs?: number | undefined;
2321
+ };
2322
+ };
2323
+ refs: {
2324
+ [x: string]: {
2325
+ source: SecretSourceView;
2326
+ provider?: string | undefined;
2327
+ id: string;
2328
+ };
2329
+ };
2330
+ };
2331
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
2332
+ readonly updateRuntime: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
2333
+ ok: boolean;
2334
+ error: {
2335
+ code: string;
2336
+ message: string;
2337
+ details: {
2338
+ [x: string]: _$hono_utils_types0.JSONValue;
2339
+ } | undefined;
2340
+ };
2341
+ }, 400, "json">) | (Response & _$hono.TypedResponse<{
2342
+ ok: boolean;
2343
+ data: {
2344
+ agents: {
2345
+ defaults: {
2346
+ model: string;
2347
+ workspace?: string | undefined;
2348
+ engine?: string | undefined;
2349
+ engineConfig?: {
2350
+ [x: string]: _$hono_utils_types0.JSONValue;
2351
+ } | undefined;
2352
+ contextTokens?: number | undefined;
2353
+ maxToolIterations?: number | undefined;
2354
+ };
2355
+ runtimes?: {
2356
+ entries?: {
2357
+ [x: string]: {
2358
+ enabled?: boolean | undefined;
2359
+ label?: string | undefined;
2360
+ icon?: {
2361
+ kind: "image";
2362
+ src: string;
2363
+ alt?: string | null | undefined;
2364
+ } | null | undefined;
2365
+ type: string;
2366
+ config?: {
2367
+ [x: string]: _$hono_utils_types0.JSONValue;
2368
+ } | undefined;
2369
+ };
2370
+ } | undefined;
2371
+ } | undefined;
2372
+ list?: {
2373
+ id: string;
2374
+ default?: boolean | undefined;
2375
+ displayName?: string | undefined;
2376
+ description?: string | undefined;
2377
+ avatar?: string | undefined;
2378
+ avatarUrl?: string | undefined;
2379
+ workspace?: string | undefined;
2380
+ model?: string | undefined;
2381
+ runtime?: string | undefined;
2382
+ runtimeConfig?: {
2383
+ [x: string]: _$hono_utils_types0.JSONValue;
2384
+ } | undefined;
2385
+ engine?: string | undefined;
2386
+ engineConfig?: {
2387
+ [x: string]: _$hono_utils_types0.JSONValue;
2388
+ } | undefined;
2389
+ contextTokens?: number | undefined;
2390
+ maxToolIterations?: number | undefined;
2391
+ builtIn?: boolean | undefined;
2392
+ }[] | undefined;
2393
+ context?: {
2394
+ bootstrap?: {
2395
+ files?: string[] | undefined;
2396
+ minimalFiles?: string[] | undefined;
2397
+ perFileChars?: number | undefined;
2398
+ totalChars?: number | undefined;
2399
+ } | undefined;
2400
+ memory?: {
2401
+ enabled?: boolean | undefined;
2402
+ maxChars?: number | undefined;
2403
+ } | undefined;
2404
+ } | undefined;
2405
+ };
2406
+ bindings?: {
2407
+ agentId: string;
2408
+ match: {
2409
+ channel: string;
2410
+ accountId?: string | undefined;
2411
+ peer?: {
2412
+ kind: "direct" | "group" | "channel";
2413
+ id: string;
2414
+ } | undefined;
2415
+ };
2416
+ }[] | undefined;
2417
+ session?: {
2418
+ dmScope?: "main" | "per-peer" | "per-channel-peer" | "per-account-channel-peer" | undefined;
2419
+ } | undefined;
2420
+ companion?: {
2421
+ enabled?: boolean | undefined;
2422
+ } | undefined;
2423
+ };
2424
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
2425
+ readonly executeAction: (c: Context) => Promise<(Response & _$hono.TypedResponse<{
2426
+ ok: boolean;
2427
+ error: {
2428
+ code: string;
2429
+ message: string;
2430
+ details: {
2431
+ [x: string]: _$hono_utils_types0.JSONValue;
2432
+ } | undefined;
2433
+ };
2434
+ }, 400, "json">) | (Response & _$hono.TypedResponse<{
2435
+ ok: boolean;
2436
+ data: {
2437
+ ok: boolean;
2438
+ status: "success" | "failed";
2439
+ message: string;
2440
+ data?: {
2441
+ [x: string]: _$hono_utils_types0.JSONValue;
2442
+ } | undefined;
2443
+ patch?: {
2444
+ [x: string]: _$hono_utils_types0.JSONValue;
2445
+ } | undefined;
2446
+ nextActions?: string[] | undefined;
2447
+ };
2448
+ }, _$hono_utils_http_status0.ContentfulStatusCode, "json">)>;
2449
+ }
2450
+ //#endregion
2451
+ //#region src/features/config/utils/plugin-channel-config-projection.utils.d.ts
1305
2452
  type PluginConfigProjectionOptions = {
1306
2453
  pluginChannelBindings?: PluginChannelBinding[];
1307
2454
  pluginUiMetadata?: PluginUiMetadata[];
1308
2455
  };
1309
2456
  //#endregion
1310
- //#region src/ui/search-config.d.ts
2457
+ //#region src/features/config/utils/search-config.utils.d.ts
1311
2458
  declare function updateSearch(configPath: string, patch: SearchConfigUpdate): ConfigView["search"];
1312
2459
  //#endregion
1313
- //#region src/ui/config.d.ts
2460
+ //#region src/features/config/stores/server-config.store.d.ts
1314
2461
  type ExecuteActionResult = {
1315
2462
  ok: true;
1316
2463
  data: ConfigActionExecuteResult$1;
@@ -1335,29 +2482,9 @@ declare function createCustomProvider(configPath: string, patch?: ProviderConfig
1335
2482
  provider: ProviderConfigView;
1336
2483
  };
1337
2484
  declare function deleteCustomProvider(configPath: string, providerName: string): boolean | null;
1338
- declare function testProviderConnection(configPath: string, providerName: string, patch: ProviderConnectionTestRequest): Promise<ProviderConnectionTestResult | null>;
2485
+ declare function testProviderConnection(configPath: string, providerName: string, patch: ProviderConnectionTestRequest, providerManager?: LlmProviderManager): Promise<ProviderConnectionTestResult | null>;
1339
2486
  declare function updateChannel(configPath: string, channelName: string, patch: Record<string, unknown>, options?: PluginConfigProjectionOptions): Record<string, unknown> | null;
1340
- declare const DEFAULT_SESSION_TYPE = "native";
1341
- declare class SessionPatchValidationError extends Error {
1342
- readonly code: "SESSION_TYPE_INVALID" | "SESSION_TYPE_IMMUTABLE" | "SESSION_TYPE_UNAVAILABLE" | "PREFERRED_THINKING_INVALID";
1343
- constructor(code: "SESSION_TYPE_INVALID" | "SESSION_TYPE_IMMUTABLE" | "SESSION_TYPE_UNAVAILABLE" | "PREFERRED_THINKING_INVALID", message: string);
1344
- }
1345
- declare function listSessions(configPath: string, query?: {
1346
- q?: string;
1347
- limit?: number;
1348
- activeMinutes?: number;
1349
- }): SessionsListView;
1350
- declare function getSessionHistory(configPath: string, key: string, limit?: number): SessionHistoryView | null;
1351
- declare function patchSession(configPath: string, key: string, patch: SessionPatchUpdate, options?: {
1352
- availableSessionTypes?: string[];
1353
- }): SessionHistoryView | null;
1354
- declare function deleteSession(configPath: string, key: string): boolean;
1355
2487
  declare function updateRuntime(configPath: string, patch: RuntimeConfigUpdate): Pick<ConfigView, "companion" | "agents" | "bindings" | "session">;
1356
2488
  declare function updateSecrets(configPath: string, patch: SecretsConfigUpdate): SecretsView;
1357
2489
  //#endregion
1358
- //#region src/ui/auth-bridge.d.ts
1359
- declare function getUiBridgeSecretPath(): string;
1360
- declare function readUiBridgeSecret(): string | null;
1361
- declare function ensureUiBridgeSecret(): string;
1362
- //#endregion
1363
- export { AgentBindingView, AgentCreateRequest, AgentDeleteResult, AgentProfileView, AgentUpdateRequest, ApiError, ApiResponse, AppMetaView, AuthEnabledUpdateRequest, AuthLoginRequest, AuthPasswordUpdateRequest, AuthSetupRequest, AuthStatusView, BindingPeerView, BochaFreshnessValue, BootstrapPhase, BootstrapRemoteState, BootstrapStageState, BootstrapStatusView, ChannelAuthPollRequest, ChannelAuthPollResult, ChannelAuthStartRequest, ChannelAuthStartResult, ChannelSpecView, type ChatSessionTypeCtaView, type ChatSessionTypeOptionView, type ChatSessionTypesView, ConfigActionExecuteRequest, ConfigActionExecuteResult, ConfigActionManifest, ConfigActionType, ConfigMetaView, ConfigSchemaResponse, ConfigUiHint, ConfigUiHints, ConfigView, CronActionResult, CronCreateRequest, CronCreateResult, CronEnableRequest, CronJobStateView, CronJobView, CronListView, CronPayloadView, CronRunRequest, CronScheduleView, DEFAULT_SESSION_TYPE, MarketplaceApiConfig, MarketplaceInstallKind, MarketplaceInstallRequest, MarketplaceInstallResult, MarketplaceInstallSkillParams, MarketplaceInstallSpec, MarketplaceInstalledRecord, MarketplaceInstalledView, MarketplaceInstaller, MarketplaceItemSummary, MarketplaceItemType, MarketplaceItemView, MarketplaceListView, MarketplaceLocalizedTextMap, MarketplaceManageAction, MarketplaceManageRequest, MarketplaceManageResult, MarketplaceMcpContentView, MarketplaceMcpDoctorResult, MarketplaceMcpInstallKind, MarketplaceMcpInstallRequest, MarketplaceMcpInstallResult, MarketplaceMcpInstallSpec, MarketplaceMcpManageAction, MarketplaceMcpManageRequest, MarketplaceMcpManageResult, MarketplaceMcpTemplateInput, MarketplacePluginContentView, MarketplacePluginInstallKind, MarketplacePluginInstallRequest, MarketplacePluginInstallResult, MarketplacePluginManageAction, MarketplacePluginManageRequest, MarketplacePluginManageResult, MarketplaceRecommendationView, MarketplaceSkillContentView, MarketplaceSkillInstallKind, MarketplaceSkillInstallRequest, MarketplaceSkillInstallResult, MarketplaceSkillManageAction, MarketplaceSkillManageRequest, MarketplaceSkillManageResult, MarketplaceSort, NcpSessionSkillsView, ProviderAuthImportResult, ProviderAuthPollRequest, ProviderAuthPollResult, ProviderAuthStartRequest, ProviderAuthStartResult, ProviderConfigUpdate, ProviderConfigView, ProviderConnectionTestRequest, ProviderConnectionTestResult, ProviderCreateRequest, ProviderCreateResult, ProviderDeleteResult, ProviderSpecView, RemoteAccessView, RemoteAccountProfileUpdateRequest, RemoteAccountView, RemoteBrowserAuthPollRequest, RemoteBrowserAuthPollResult, RemoteBrowserAuthStartRequest, RemoteBrowserAuthStartResult, RemoteDoctorCheckView, RemoteDoctorView, RemoteLoginRequest, RemoteRuntimeView, RemoteServiceAction, RemoteServiceActionResult, RemoteServiceView, RemoteSettingsUpdateRequest, RemoteSettingsView, RuntimeActionCapability, RuntimeActionImpact, RuntimeConfigUpdate, RuntimeControlAction, RuntimeControlActionResult, RuntimeControlEnvironment, RuntimeControlView, RuntimeEntryView, RuntimeLifecycleState, RuntimePendingRestart, RuntimeServiceState, SearchConfigUpdate, SearchConfigView, SearchProviderConfigView, SearchProviderName, SearchProviderSpecView, SecretProviderEnvView, SecretProviderExecView, SecretProviderFileView, SecretProviderView, SecretRefView, SecretSourceView, SecretsConfigUpdate, SecretsView, ServerPathBreadcrumbView, ServerPathBrowseView, ServerPathEntryView, ServerPathReadView, SessionConfigView, SessionEntryView, SessionEventView, SessionHistoryView, SessionMessageView, SessionPatchUpdate, SessionPatchValidationError, SessionSkillEntryView, SessionTypeDescribeParams, SessionsListView, TavilySearchDepthValue, UiNcpAgent, UiNcpAssetPutView, UiNcpAssetView, UiNcpSessionListView, UiNcpSessionMessagesView, UiNcpSessionService, UiNcpStoredAssetRecord, type UiRemoteAccessHost, type UiRuntimeControlHost, type UiRuntimeUpdateHost, UiServerEvent, UiServerHandle, UiServerOptions, buildConfigMeta, buildConfigSchemaView, buildConfigView, createCustomProvider, createUiRouter, deleteCustomProvider, deleteSession, ensureUiBridgeSecret, executeConfigAction, getSessionHistory, getUiBridgeSecretPath, listSessions, loadConfigOrDefault, patchSession, readUiBridgeSecret, startUiServer, testProviderConnection, updateChannel, updateModel, updateProvider, updateRuntime, updateSearch, updateSecrets };
2490
+ export { AgentBindingView, AgentCreateRequest, AgentDeleteResult, AgentProfileView, AgentUpdateRequest, ApiError, ApiResponse, AppMetaView, AuthEnabledUpdateRequest, AuthLoginRequest, AuthPasswordUpdateRequest, AuthSetupRequest, AuthStatusView, BindingPeerView, BochaFreshnessValue, BootstrapPhase, BootstrapRemoteState, BootstrapStageState, BootstrapStatusView, ChannelAuthPollRequest, ChannelAuthPollResult, ChannelAuthStartRequest, ChannelAuthStartResult, ChannelSpecView, type ChatSessionTypeCtaView, type ChatSessionTypeOptionView, type ChatSessionTypesView, ConfigActionExecuteRequest, ConfigActionExecuteResult, ConfigActionManifest, ConfigActionType, ConfigMetaView, ConfigRoutesController, ConfigSchemaResponse, ConfigUiHint, ConfigUiHints, ConfigView, CronActionResult, CronCreateRequest, CronCreateResult, CronEnableRequest, CronJobStateView, CronJobView, CronListView, CronPayloadView, CronRunRequest, CronScheduleView, MarketplaceApiConfig, MarketplaceInstallKind, MarketplaceInstallRequest, MarketplaceInstallResult, MarketplaceInstallSkillParams, MarketplaceInstallSpec, MarketplaceInstalledRecord, MarketplaceInstalledView, MarketplaceInstaller, MarketplaceItemSummary, MarketplaceItemType, MarketplaceItemView, MarketplaceListView, MarketplaceLocalizedTextMap, MarketplaceManageAction, MarketplaceManageRequest, MarketplaceManageResult, MarketplaceMcpContentView, MarketplaceMcpDoctorResult, MarketplaceMcpInstallKind, MarketplaceMcpInstallRequest, MarketplaceMcpInstallResult, MarketplaceMcpInstallSpec, MarketplaceMcpManageAction, MarketplaceMcpManageRequest, MarketplaceMcpManageResult, MarketplaceMcpTemplateInput, MarketplacePluginContentView, MarketplacePluginInstallKind, MarketplacePluginInstallRequest, MarketplacePluginInstallResult, MarketplacePluginManageAction, MarketplacePluginManageRequest, MarketplacePluginManageResult, MarketplaceRecommendationView, MarketplaceSkillContentView, MarketplaceSkillInstallKind, MarketplaceSkillInstallRequest, MarketplaceSkillInstallResult, MarketplaceSkillManageAction, MarketplaceSkillManageRequest, MarketplaceSkillManageResult, MarketplaceSort, NcpAssetRoutesController, NcpSessionSkillsView, ProviderAuthImportResult, ProviderAuthPollRequest, ProviderAuthPollResult, ProviderAuthStartRequest, ProviderAuthStartResult, ProviderConfigUpdate, ProviderConfigView, ProviderConnectionTestRequest, ProviderConnectionTestResult, ProviderCreateRequest, ProviderCreateResult, ProviderDeleteResult, ProviderSpecView, RemoteAccessView, RemoteAccountProfileUpdateRequest, RemoteAccountView, RemoteBrowserAuthPollRequest, RemoteBrowserAuthPollResult, RemoteBrowserAuthStartRequest, RemoteBrowserAuthStartResult, RemoteDoctorCheckView, RemoteDoctorView, RemoteLoginRequest, RemoteRuntimeView, RemoteServiceAction, RemoteServiceActionResult, RemoteServiceView, RemoteSettingsUpdateRequest, RemoteSettingsView, RuntimeActionCapability, RuntimeActionImpact, RuntimeConfigUpdate, RuntimeControlAction, RuntimeControlActionResult, RuntimeControlEnvironment, RuntimeControlRoutesController, RuntimeControlView, RuntimeEntryView, RuntimeLifecycleState, RuntimePendingRestart, RuntimeServiceState, SearchConfigUpdate, SearchConfigView, SearchProviderConfigView, SearchProviderName, SearchProviderSpecView, SecretProviderEnvView, SecretProviderExecView, SecretProviderFileView, SecretProviderView, SecretRefView, SecretSourceView, SecretsConfigUpdate, SecretsView, ServerPathBreadcrumbView, ServerPathBrowseView, ServerPathEntryView, ServerPathReadView, SessionConfigView, SessionEntryView, SessionEventView, SessionHistoryView, SessionMessageView, SessionPatchUpdate, SessionSkillEntryView, SessionTypeDescribeParams, SessionsListView, TavilySearchDepthValue, UiNcpAgent, UiNcpAssetPutView, UiNcpAssetView, UiNcpSessionListView, UiNcpSessionMessagesView, UiNcpSessionService, UiNcpStoredAssetRecord, type UiRemoteAccessHost, type UiRouterOptions, type UiRuntimeControlHost, type UiRuntimeUpdateHost, UiServerEvent, UiServerHandle, buildConfigMeta, buildConfigSchemaView, buildConfigView, createCustomProvider, createUiRouter, deleteCustomProvider, ensureUiBridgeSecret, executeConfigAction, getUiBridgeSecretPath, loadConfigOrDefault, readUiBridgeSecret, startUiServer, testProviderConnection, updateChannel, updateModel, updateProvider, updateRuntime, updateSearch, updateSecrets };