cascade-ai 0.77.0 → 0.78.0

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/dist/index.d.ts CHANGED
@@ -873,6 +873,13 @@ interface ToolsConfig {
873
873
  shellBlocklist: string[];
874
874
  requireApprovalFor: string[];
875
875
  browserEnabled: boolean;
876
+ /**
877
+ * Let a run act on the desktop's built-in browser, not just read it. Separate
878
+ * from `browserEnabled` (headless Playwright) because it drives the user's
879
+ * signed-in session. See `src/config/schema.ts` and
880
+ * `src/tools/browser-control.ts`.
881
+ */
882
+ agentBrowserControl?: boolean;
876
883
  mcpServers?: McpServerConfig$1[];
877
884
  /**
878
885
  * Names of MCP servers (matching McpServerConfig.name) that the user has
@@ -3178,6 +3185,143 @@ declare class CurrentPageTool extends BaseTool {
3178
3185
  execute(_input: Record<string, unknown>, _options: ToolExecuteOptions): Promise<string>;
3179
3186
  }
3180
3187
 
3188
+ /** One thing to do to the open page. */
3189
+ interface BrowserAction {
3190
+ kind: 'navigate' | 'click' | 'fill' | 'press' | 'wait_for' | 'extract_text';
3191
+ /** navigate */
3192
+ url?: string;
3193
+ /** click, fill, wait_for, extract_text (optional — defaults to the body) */
3194
+ selector?: string;
3195
+ /** fill */
3196
+ value?: string;
3197
+ /** press — a single key name, e.g. "Enter" or "Tab" */
3198
+ key?: string;
3199
+ /** wait_for */
3200
+ timeoutMs?: number;
3201
+ }
3202
+ interface BrowserActionOutcome {
3203
+ ok: boolean;
3204
+ /** Human- and model-readable account of what happened. */
3205
+ detail: string;
3206
+ /** Where the page ended up, when the host can tell. */
3207
+ url?: string;
3208
+ title?: string;
3209
+ }
3210
+ /**
3211
+ * Who is asking, and how to stop them.
3212
+ *
3213
+ * Both fields exist because the browser is a SINGLETON the host owns while runs
3214
+ * come and go. Without run identity the host cannot tell a Stop in one run from
3215
+ * a Stop in every future run, and cannot tell two concurrent runs apart when
3216
+ * they both reach for the same page.
3217
+ */
3218
+ interface BrowserActionContext {
3219
+ /**
3220
+ * The run this action belongs to. Revocation and the host's single-owner
3221
+ * lease both key on it, so a Stop scopes to the run the user was watching
3222
+ * rather than to the process.
3223
+ */
3224
+ sessionId: string;
3225
+ /**
3226
+ * The individual worker asking — `tierId`, a per-instance id.
3227
+ *
3228
+ * Distinct from `sessionId` and both are needed. Every T3 worker in a run
3229
+ * passes the same `taskId` as the session, so the session says which RUN to
3230
+ * stop but cannot tell two sibling workers apart. The host leases the browser
3231
+ * to one actor for a whole sequence, and a lease keyed by session would hand
3232
+ * the same lease to every sibling at once — which is the state that lets one
3233
+ * worker navigate away in the middle of another's fill-then-click.
3234
+ */
3235
+ actorId: string;
3236
+ /**
3237
+ * Cancels an action already in flight. `wait_for` can sit for 30s and
3238
+ * `navigate` waits on the network, so without this a cancelled run keeps
3239
+ * touching the user's authenticated page after it was stopped.
3240
+ */
3241
+ signal?: AbortSignal;
3242
+ }
3243
+ /**
3244
+ * Performs one action against the browser view the host owns.
3245
+ *
3246
+ * Returning `ok: false` with a reason is expected and normal — a selector that
3247
+ * matches nothing is a thing the model should be told about and can recover
3248
+ * from, not an exception.
3249
+ */
3250
+ type BrowserController = (action: BrowserAction, context: BrowserActionContext) => Promise<BrowserActionOutcome>;
3251
+ /**
3252
+ * Told that one worker is finished with the browser for good.
3253
+ *
3254
+ * Separate from the controller because it is not an action: it carries no
3255
+ * outcome and cannot fail. The host uses it to end that actor's sequence lease
3256
+ * — the only signal that reliably means "will not ask again", as opposed to a
3257
+ * worker that is merely waiting on its next model response.
3258
+ */
3259
+ type BrowserActorRelease = (actorId: string) => void;
3260
+ declare class BrowserControlTool extends BaseTool {
3261
+ readonly name = "browser_control";
3262
+ readonly description: string;
3263
+ readonly inputSchema: {
3264
+ type: string;
3265
+ properties: {
3266
+ action: {
3267
+ type: string;
3268
+ enum: string[];
3269
+ description: string;
3270
+ };
3271
+ url: {
3272
+ type: string;
3273
+ description: string;
3274
+ };
3275
+ selector: {
3276
+ type: string;
3277
+ description: string;
3278
+ };
3279
+ value: {
3280
+ type: string;
3281
+ description: string;
3282
+ };
3283
+ key: {
3284
+ type: string;
3285
+ description: string;
3286
+ };
3287
+ timeoutMs: {
3288
+ type: string;
3289
+ description: string;
3290
+ };
3291
+ };
3292
+ required: string[];
3293
+ };
3294
+ private controller;
3295
+ private release;
3296
+ /** One-way. See `revoke`. */
3297
+ private revoked;
3298
+ constructor(controller: BrowserController, release?: BrowserActorRelease);
3299
+ /**
3300
+ * A worker has finished. Ends its hold on the browser.
3301
+ *
3302
+ * Called from the tier's terminal path rather than by the model, because a
3303
+ * model cannot be relied on to announce that it is done — which is why the
3304
+ * host cannot use idle time as the boundary instead.
3305
+ */
3306
+ releaseActor(actorId: string): void;
3307
+ /**
3308
+ * Permanently disable this tool, whatever the registry still holds.
3309
+ *
3310
+ * Registration-time gates cannot express "this run turned out to be
3311
+ * unattended": a host that wires the controller and only then declares the
3312
+ * run unattended has already registered the tool, and a check that ran at
3313
+ * registration has no second chance. Enforcing at EXECUTION time makes the
3314
+ * guarantee independent of call order, which is the whole point of stating
3315
+ * the invariant rather than relying on the scheduler's current sequence.
3316
+ *
3317
+ * One-way on purpose. A safety gate that can be re-opened by a later call is
3318
+ * a gate that a refactor re-opens by accident.
3319
+ */
3320
+ revoke(): void;
3321
+ isDangerous(): boolean;
3322
+ execute(input: Record<string, unknown>, options: ToolExecuteOptions): Promise<string>;
3323
+ }
3324
+
3181
3325
  /** One entry in the per-run orchestration decision trail (see /why). */
3182
3326
  interface DecisionLogEntry {
3183
3327
  at: string;
@@ -3358,6 +3502,39 @@ declare class Cascade extends EventEmitter {
3358
3502
  * nothing. `disabledTools` still removes it.
3359
3503
  */
3360
3504
  setCurrentPageProvider(provider: CurrentPageProvider): void;
3505
+ /**
3506
+ * True when nobody is watching this run — a scheduled/cron task, which
3507
+ * auto-approves every tool because there is no one to ask.
3508
+ *
3509
+ * That auto-approval is fine for ordinary tools and disqualifying for this
3510
+ * one: `browser_control` drives the signed-in browser, and "every run asks
3511
+ * first" is the promise the Settings copy makes. The property used to hold
3512
+ * only because `runScheduledTask` happens not to call `setBrowserController`
3513
+ * — a guarantee resting on an ABSENT call, which is exactly what a later
3514
+ * refactor adds without noticing. Stated and enforced instead.
3515
+ */
3516
+ private unattended;
3517
+ /**
3518
+ * Declare that no human is watching this run, so capabilities that depend on
3519
+ * a person being able to see and stop them are refused outright.
3520
+ */
3521
+ setUnattended(on: boolean): void;
3522
+ /**
3523
+ * Wire the host's browser so a run can ACT on the open page, not just read it.
3524
+ *
3525
+ * Two gates before this registers anything, and both matter:
3526
+ *
3527
+ * - `tools.agentBrowserControl` must be on. Unlike read_current_page, which
3528
+ * reaches nothing the user has not already opened themselves, this drives
3529
+ * the session they are signed into. That is opt-in, not a default.
3530
+ * - `disabledTools` still removes it, the same as every other tool.
3531
+ * - The run must not be UNATTENDED. See `setUnattended`.
3532
+ *
3533
+ * Host-supplied like the page provider: the tool exists only where there is a
3534
+ * real browser to drive, so it never has to be refused in the CLI or a hosted
3535
+ * run — it is simply not there.
3536
+ */
3537
+ setBrowserController(controller: BrowserController, release?: BrowserActorRelease): void;
3361
3538
  private registerMediaTools;
3362
3539
  /**
3363
3540
  * Register `generate_document` where there is a real workspace to write into.
@@ -3800,6 +3977,15 @@ declare class T3Worker extends BaseTier {
3800
3977
  constructor(router: CascadeRouter, toolRegistry: ToolRegistry, parentId: string);
3801
3978
  setStore(store: MemoryStore, sessionId: string): void;
3802
3979
  execute(assignment: T2ToT3Assignment, taskId: string, signal?: AbortSignal): Promise<T3Result>;
3980
+ /**
3981
+ * End this worker's hold on the shared browser.
3982
+ *
3983
+ * Duck-typed rather than imported: `browser_control` is registered only by a
3984
+ * host that HAS a browser (the desktop), so in the CLI and hosted runs there
3985
+ * is no such tool and this is a no-op. Importing the class to instanceof-check
3986
+ * it would couple the worker to a tool that usually is not there.
3987
+ */
3988
+ private releaseBrowserControl;
3803
3989
  sendToPeer(toId: string, content: unknown): void;
3804
3990
  requestFromPeer(peerId: string, subtaskId: string): Promise<string>;
3805
3991
  syncWithPeers(barrierName: string): Promise<void>;
@@ -4477,6 +4663,20 @@ declare const CascadeConfigSchema: z.ZodObject<{
4477
4663
  shellBlocklist: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
4478
4664
  requireApprovalFor: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
4479
4665
  browserEnabled: z.ZodDefault<z.ZodBoolean>;
4666
+ /**
4667
+ * Let a run ACT on the page open in the desktop's built-in browser — click,
4668
+ * type, submit — not just read it.
4669
+ *
4670
+ * Distinct from `browserEnabled`, which turns on the headless Playwright
4671
+ * tool. That one drives a throwaway browser with an empty cookie jar; this
4672
+ * one drives the session the user is signed into, which is a different order
4673
+ * of consequence and so gets its own switch rather than riding on that one.
4674
+ *
4675
+ * Off by default. Turning it on does not hand anything over silently: the
4676
+ * tool still goes through the approval chain, and the browser panel carries a
4677
+ * stop control for the run that is acting.
4678
+ */
4679
+ agentBrowserControl: z.ZodDefault<z.ZodBoolean>;
4480
4680
  mcpServers: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
4481
4681
  name: z.ZodString;
4482
4682
  command: z.ZodOptional<z.ZodString>;
@@ -4579,6 +4779,7 @@ declare const CascadeConfigSchema: z.ZodObject<{
4579
4779
  shellBlocklist: string[];
4580
4780
  requireApprovalFor: string[];
4581
4781
  browserEnabled: boolean;
4782
+ agentBrowserControl: boolean;
4582
4783
  dynamicToolSandbox: "auto" | "isolate" | "worker";
4583
4784
  mcpServers?: {
4584
4785
  name: string;
@@ -4613,6 +4814,7 @@ declare const CascadeConfigSchema: z.ZodObject<{
4613
4814
  shellBlocklist?: string[] | undefined;
4614
4815
  requireApprovalFor?: string[] | undefined;
4615
4816
  browserEnabled?: boolean | undefined;
4817
+ agentBrowserControl?: boolean | undefined;
4616
4818
  mcpTrusted?: string[] | undefined;
4617
4819
  webSearch?: {
4618
4820
  searxngUrl?: string | undefined;
@@ -5196,6 +5398,7 @@ declare const CascadeConfigSchema: z.ZodObject<{
5196
5398
  shellBlocklist: string[];
5197
5399
  requireApprovalFor: string[];
5198
5400
  browserEnabled: boolean;
5401
+ agentBrowserControl: boolean;
5199
5402
  dynamicToolSandbox: "auto" | "isolate" | "worker";
5200
5403
  mcpServers?: {
5201
5404
  name: string;
@@ -5384,6 +5587,7 @@ declare const CascadeConfigSchema: z.ZodObject<{
5384
5587
  shellBlocklist?: string[] | undefined;
5385
5588
  requireApprovalFor?: string[] | undefined;
5386
5589
  browserEnabled?: boolean | undefined;
5590
+ agentBrowserControl?: boolean | undefined;
5387
5591
  mcpTrusted?: string[] | undefined;
5388
5592
  webSearch?: {
5389
5593
  searxngUrl?: string | undefined;
@@ -6012,6 +6216,14 @@ declare class DashboardServer {
6012
6216
  * always failing.
6013
6217
  */
6014
6218
  private currentPageProvider?;
6219
+ /**
6220
+ * Supplied by the desktop shell so a run can ACT on that page — click, type,
6221
+ * submit — not just read it. Same reasoning as the provider above: absent in
6222
+ * the CLI, so the tool is not registered rather than present and failing.
6223
+ * Cascade applies the `tools.agentBrowserControl` gate on top of this.
6224
+ */
6225
+ private browserController?;
6226
+ private browserActorRelease?;
6015
6227
  private activeControllers;
6016
6228
  /**
6017
6229
  * Run taskIds per chat session — file snapshots are keyed by the run's
@@ -6051,6 +6263,45 @@ declare class DashboardServer {
6051
6263
  constructor(config: CascadeConfig, store: MemoryStore, workspacePath?: string);
6052
6264
  /** Wire the host's browser view in (desktop only). */
6053
6265
  setCurrentPageProvider(provider: CurrentPageProvider): void;
6266
+ /** Let runs act on that view, not just read it (desktop only). */
6267
+ setBrowserController(controller: BrowserController, release?: BrowserActorRelease): void;
6268
+ /**
6269
+ * Told whenever settings are committed through THIS server.
6270
+ *
6271
+ * Settings reach the live config by two routes — the desktop's Electron IPC
6272
+ * handler and this server's `config:update` socket — and both run the same
6273
+ * `commitSettings`. The desktop mirrors `tools.agentBrowserControl` into its
6274
+ * browser module after its own route, but had no way to learn about the
6275
+ * other, so a socket write left the module's copy stale: an enable the module
6276
+ * still refused, or worse a disable the module still honoured for a run
6277
+ * already holding the tool. This is the same sibling-writer drift
6278
+ * `settings-payload.ts` exists to prevent, one layer up.
6279
+ */
6280
+ private settingsChangeHook?;
6281
+ onSettingsChanged(hook: (config: CascadeConfig) => void): void;
6282
+ /**
6283
+ * Told when a run ends, so a host holding run-scoped state can release it.
6284
+ *
6285
+ * The desktop uses this to retire a run's browser Stop control: that has to
6286
+ * outlive each individual action (the gap between two actions is when the
6287
+ * user most wants it) but must not outlive the run.
6288
+ */
6289
+ /**
6290
+ * Fired when a run ends, carrying BOTH identifiers explicitly.
6291
+ *
6292
+ * They are different things and conflating them was a live bug: a chat
6293
+ * `sessionId` can contain many runs (hence `sessionTaskIds`), while
6294
+ * `Cascade.run()` mints a fresh random `taskId` per run — and it is the
6295
+ * taskId that tools see as `ToolExecuteOptions.sessionId`. Passing only the
6296
+ * chat id meant browser cleanup keyed on the task id matched nothing, so a
6297
+ * finished run kept its Stop banner armed and held its browser lease until
6298
+ * the deadlock ceiling.
6299
+ */
6300
+ private runEndedHook?;
6301
+ onRunEnded(hook: (ids: {
6302
+ sessionId: string;
6303
+ taskId?: string;
6304
+ }) => void): void;
6054
6305
  start(): Promise<void>;
6055
6306
  stop(): Promise<void>;
6056
6307
  getSocket(): DashboardSocket;
@@ -7579,4 +7830,4 @@ declare function gatherSyncBundle(config: CascadeConfig): SyncBundle;
7579
7830
  /** Merge a pulled bundle into a config, returning the updated config to persist. */
7580
7831
  declare function applySyncBundle(bundle: SyncBundle, config: CascadeConfig, cleanup?: RetiredProviderCleanup): CascadeConfig;
7581
7832
 
7582
- export { AZURE_BASE_MODELS, AZURE_BASE_URL_TEMPLATE, type AcceptanceOptions, type AcceptanceProbe, type AcceptanceResult, type AcceptanceVerdict, type ApprovalRequest, type ApprovalResponse, type AuditEntry, AuditLogger, type AzureDeploymentInput, type BenchmarksConfig, type Block, type BudgetConfig, CASCADE_AUDIT_FILE, CASCADE_CONFIG_DIR, CASCADE_CONFIG_FILE, CASCADE_DASHBOARD_SECRET_FILE, CASCADE_DB_FILE, CASCADE_IGNORE_FILE, CASCADE_KEYSTORE_FILE, CASCADE_MD_FILE, CASCADE_VERSION, CHARS_PER_TOKEN, COMPLEXITY_T2_COUNT, Cascade, CascadeCancelledError, type CascadeConfig, CascadeConfigSchema, type CascadeEvent, type CascadeEventType, CascadeIgnore, type CascadeMessage, CascadeRouter, type CascadeRunOptions, type CascadeRunResult, type CascadeThemeName, CascadeToolError, type ChartSeries, type ChartSpec, type Chunk, type ChunkOptions, CloudClient, type CloudConversation, type CloudMessage, type CloudSession, type CloudSessionStore, type CloudTurnInput, type CloudUser, type CodeChunkOptions, type CodeChunker, CodeSearchTool, type CompileTaskGraphOptions, type CompiledTaskGraph, type CompleteFn, type CompletedNode, ConfigManager, type ConversationMessage, type CredentialDisposition, type CredentialEndpoint, type CredentialWriteOutcome, type CurrentPageProvider, type CurrentPageSnapshot, CurrentPageTool, DEFAULT_API_PORT, DEFAULT_APPROVAL_REQUIRED, DEFAULT_AUTO_SUMMARIZE_AT, DEFAULT_CLOUD_URL, DEFAULT_CONTEXT_LIMIT, DEFAULT_DASHBOARD_PORT, DEFAULT_MAX_SESSION_MESSAGES, DEFAULT_RETENTION_DAYS, DEFAULT_THEME, DOCUMENT_MIME, type DashboardConfig, DashboardServer, DependencyScheduler, type DeviceStart, type DiscoveredMcpTool, type DistilledFact, type ChartKind as DocumentChartKind, type DocumentFormat, type Embedder, type EncryptedBlob, type EscalationDecision, type EscalationPayload, type ExtendedContextConfig, type FileManifest, FileMcpOAuthStore, GLOBAL_CONFIG_DIR, GLOBAL_CREDENTIALS_FILE, GLOBAL_DB_FILE, GLOBAL_KEYSTORE_FILE, GLOBAL_RUNTIME_DB_FILE, GenerateDocumentTool, type GenerateOptions, type GenerateResult, type GraphFactSource, GraphRetriever, type GraphSearchOptions, GraphSearchTool, type HookDefinition, type HooksConfig, HooksRunner, type Identity, type ImageAttachment, type ImageByteLoader, type ImageInfo, type ImageRef, type InlineRun, Keystore, LLMReranker, LM_STUDIO_BASE_URL, type LegacyThemeName, type LoadedImage, MAX_PAGE_TEXT_CHARS, MCP_TOOL_PREFIX, MODELS, type ManifestDiff, McpClient, type McpDiscoveryResult, McpOAuthProvider, type McpOAuthState, type McpOAuthStore, type McpServerConfig$1 as McpServerConfig, type McpServerRename, type MemoryConfig, MemoryStore, type Message, type MessageContent, type MessagePayload, type MessageStatus, type MessageType, type ModelInfo, type ModelOverrides, type NativeProvider, OLLAMA_BASE_URL, OpenAICompatibleEmbedder, type OpenAIEmbedderOptions, PROVIDER_DISPLAY_NAMES, type PeerMessage, type PeerMessageEvent, type PeerSyncPayload, type PeerSyncType, type PermissionDecision, type PermissionDecisionPayload, type PermissionRequest, type PermissionTrailEntry, type PlanReviewConfig, type ProviderConfig, type ProviderType, RESUME_SCHEMA_VERSION, type RankedFact, type RefreshResult, type RenderOptions, type Reranker, type ResumeCheckpoint, type ResumeReason, ResumeStore, type ResumeStoreOptions, type RetrievalContext, type RetrievalMode, type RetrievalPlan, Retriever, type RetrieverSearchOptions, type RuntimeNode, type RuntimeNodeLog, type RuntimeRefreshPayload, type RuntimeScope, type RuntimeSession, type RuntimeSnapshotPayload, type ScheduledTask, type SchedulerExecutionMode, type SchedulerHooks, type SchedulerOptions, type SchedulerResult, type ScoredChunk, type SearchOptions, type Session, type SessionCheckpoint, type SessionMetadata, type SessionSubscriptionPayload, type SettingsCommitResult, type SettingsCredentialResult, type SettingsPayload, type SettingsSnapshot, type Slide, SqliteVectorStore, type StatusUpdate, type StoredMessage, type StreamChunk, type SyncBundle, T1Administrator, type T1ToT2Assignment, T1_MODEL_PRIORITY, T2Manager, type T2Result, type T2ToT3Assignment, T2_MODEL_PRIORITY, type T3Result, type T3ResultPayload, type T3SubtaskSpec, T3Worker, T3_MODEL_PRIORITY, THEME_NAMES, TOOL_NAMES, type TaskComplexity, type TaskGraph, type TaskGraphInputNode, type TaskGraphIssue, type TaskGraphIssueCode, type TaskGraphNode, type TaskGraphNodeKind, TaskGraphValidationError, type TaskGraphValidationMode, TaskScheduler, type TaskType, Telemetry, type TelemetryConfig, type Theme, type ThemeColors, type ThemeName, type TierConfig, type TierLimits, type TierRole, type TierStatus, type TokenUsage, type ToolCall, type ToolDefinition, type ToolExecuteOptions, ToolRegistry, type ToolResult, type ToolsConfig, VISION_MODEL_PRIORITY, type VectorStore, type WebSearchConfig, type WebhookConfig, type WorkspaceConfig, type WorkspaceFileReader, WorkspaceIndex, type WorkspaceIndexOptions, applyEndpointEdit, applyProviderApiKey, applyProviderCredential, applySettingsCredentials, applySettingsPayload, applySyncBundle, azureModelForDeployment, beginMcpOAuth, buildDocumentTools, buildManifest, buildSessionTranscript, bytesToBase64, cagCharBudget, chartKind, chartToTableRows, chatCompleterFromProviders, chunkCode, chunkText, commitSettings, compileSectionGraph, compileSubtaskGraph, compileTaskGraph, completeMcpOAuth, connectMcpWithLoopbackOAuth, createCascade, credentialDispositionForEdit, credentialEndpointIdentity, decryptJSON as decryptSyncBlob, diffManifest, disambiguateMcpServerNames, discoverMcpAuthServer, discoverMcpTools, distillSessionFacts, embedderFromProviders, encryptJSON as encryptSyncBlob, endpointFromSettingsPayload, evaluateAcceptance, explainRefusal, extractCharts, failures, fileExt, fileOAuthProvider, gatherSyncBundle, hasDefaultEndpoint, hasProviderCredential, hasUsableProvider, hashContent, heuristicCodeChunker, inferAzureBaseModel, inlineRuns, isDocumentFormat, isMcpToolName, matchImageLine, mcpServerPrefix, mcpToolName, nodeHttpFetch, normalizeEndpoint, parseBlocks, parseChartSpec, parseDelimited, parseRankOrder, parseSlide, planRetrieval, preferIpv4Host, priorAzureRow, reciprocalRankFusion, refreshMcpToken, removeMcpServerDenials, renderDocument, renderDocx, renderPptx, renderXlsx, runCascade, sameAzureEndpoint, sameCredentialEndpoint, sameEndpoint, sessionWorthRemembering, settingsSnapshot, sniffImage, splitSlides, streamCascade, stripInline, summarizeCompleted, undecided, uniqueMcpServerName };
7833
+ export { AZURE_BASE_MODELS, AZURE_BASE_URL_TEMPLATE, type AcceptanceOptions, type AcceptanceProbe, type AcceptanceResult, type AcceptanceVerdict, type ApprovalRequest, type ApprovalResponse, type AuditEntry, AuditLogger, type AzureDeploymentInput, type BenchmarksConfig, type Block, type BrowserAction, type BrowserActionOutcome, BrowserControlTool, type BrowserController, type BudgetConfig, CASCADE_AUDIT_FILE, CASCADE_CONFIG_DIR, CASCADE_CONFIG_FILE, CASCADE_DASHBOARD_SECRET_FILE, CASCADE_DB_FILE, CASCADE_IGNORE_FILE, CASCADE_KEYSTORE_FILE, CASCADE_MD_FILE, CASCADE_VERSION, CHARS_PER_TOKEN, COMPLEXITY_T2_COUNT, Cascade, CascadeCancelledError, type CascadeConfig, CascadeConfigSchema, type CascadeEvent, type CascadeEventType, CascadeIgnore, type CascadeMessage, CascadeRouter, type CascadeRunOptions, type CascadeRunResult, type CascadeThemeName, CascadeToolError, type ChartSeries, type ChartSpec, type Chunk, type ChunkOptions, CloudClient, type CloudConversation, type CloudMessage, type CloudSession, type CloudSessionStore, type CloudTurnInput, type CloudUser, type CodeChunkOptions, type CodeChunker, CodeSearchTool, type CompileTaskGraphOptions, type CompiledTaskGraph, type CompleteFn, type CompletedNode, ConfigManager, type ConversationMessage, type CredentialDisposition, type CredentialEndpoint, type CredentialWriteOutcome, type CurrentPageProvider, type CurrentPageSnapshot, CurrentPageTool, DEFAULT_API_PORT, DEFAULT_APPROVAL_REQUIRED, DEFAULT_AUTO_SUMMARIZE_AT, DEFAULT_CLOUD_URL, DEFAULT_CONTEXT_LIMIT, DEFAULT_DASHBOARD_PORT, DEFAULT_MAX_SESSION_MESSAGES, DEFAULT_RETENTION_DAYS, DEFAULT_THEME, DOCUMENT_MIME, type DashboardConfig, DashboardServer, DependencyScheduler, type DeviceStart, type DiscoveredMcpTool, type DistilledFact, type ChartKind as DocumentChartKind, type DocumentFormat, type Embedder, type EncryptedBlob, type EscalationDecision, type EscalationPayload, type ExtendedContextConfig, type FileManifest, FileMcpOAuthStore, GLOBAL_CONFIG_DIR, GLOBAL_CREDENTIALS_FILE, GLOBAL_DB_FILE, GLOBAL_KEYSTORE_FILE, GLOBAL_RUNTIME_DB_FILE, GenerateDocumentTool, type GenerateOptions, type GenerateResult, type GraphFactSource, GraphRetriever, type GraphSearchOptions, GraphSearchTool, type HookDefinition, type HooksConfig, HooksRunner, type Identity, type ImageAttachment, type ImageByteLoader, type ImageInfo, type ImageRef, type InlineRun, Keystore, LLMReranker, LM_STUDIO_BASE_URL, type LegacyThemeName, type LoadedImage, MAX_PAGE_TEXT_CHARS, MCP_TOOL_PREFIX, MODELS, type ManifestDiff, McpClient, type McpDiscoveryResult, McpOAuthProvider, type McpOAuthState, type McpOAuthStore, type McpServerConfig$1 as McpServerConfig, type McpServerRename, type MemoryConfig, MemoryStore, type Message, type MessageContent, type MessagePayload, type MessageStatus, type MessageType, type ModelInfo, type ModelOverrides, type NativeProvider, OLLAMA_BASE_URL, OpenAICompatibleEmbedder, type OpenAIEmbedderOptions, PROVIDER_DISPLAY_NAMES, type PeerMessage, type PeerMessageEvent, type PeerSyncPayload, type PeerSyncType, type PermissionDecision, type PermissionDecisionPayload, type PermissionRequest, type PermissionTrailEntry, type PlanReviewConfig, type ProviderConfig, type ProviderType, RESUME_SCHEMA_VERSION, type RankedFact, type RefreshResult, type RenderOptions, type Reranker, type ResumeCheckpoint, type ResumeReason, ResumeStore, type ResumeStoreOptions, type RetrievalContext, type RetrievalMode, type RetrievalPlan, Retriever, type RetrieverSearchOptions, type RuntimeNode, type RuntimeNodeLog, type RuntimeRefreshPayload, type RuntimeScope, type RuntimeSession, type RuntimeSnapshotPayload, type ScheduledTask, type SchedulerExecutionMode, type SchedulerHooks, type SchedulerOptions, type SchedulerResult, type ScoredChunk, type SearchOptions, type Session, type SessionCheckpoint, type SessionMetadata, type SessionSubscriptionPayload, type SettingsCommitResult, type SettingsCredentialResult, type SettingsPayload, type SettingsSnapshot, type Slide, SqliteVectorStore, type StatusUpdate, type StoredMessage, type StreamChunk, type SyncBundle, T1Administrator, type T1ToT2Assignment, T1_MODEL_PRIORITY, T2Manager, type T2Result, type T2ToT3Assignment, T2_MODEL_PRIORITY, type T3Result, type T3ResultPayload, type T3SubtaskSpec, T3Worker, T3_MODEL_PRIORITY, THEME_NAMES, TOOL_NAMES, type TaskComplexity, type TaskGraph, type TaskGraphInputNode, type TaskGraphIssue, type TaskGraphIssueCode, type TaskGraphNode, type TaskGraphNodeKind, TaskGraphValidationError, type TaskGraphValidationMode, TaskScheduler, type TaskType, Telemetry, type TelemetryConfig, type Theme, type ThemeColors, type ThemeName, type TierConfig, type TierLimits, type TierRole, type TierStatus, type TokenUsage, type ToolCall, type ToolDefinition, type ToolExecuteOptions, ToolRegistry, type ToolResult, type ToolsConfig, VISION_MODEL_PRIORITY, type VectorStore, type WebSearchConfig, type WebhookConfig, type WorkspaceConfig, type WorkspaceFileReader, WorkspaceIndex, type WorkspaceIndexOptions, applyEndpointEdit, applyProviderApiKey, applyProviderCredential, applySettingsCredentials, applySettingsPayload, applySyncBundle, azureModelForDeployment, beginMcpOAuth, buildDocumentTools, buildManifest, buildSessionTranscript, bytesToBase64, cagCharBudget, chartKind, chartToTableRows, chatCompleterFromProviders, chunkCode, chunkText, commitSettings, compileSectionGraph, compileSubtaskGraph, compileTaskGraph, completeMcpOAuth, connectMcpWithLoopbackOAuth, createCascade, credentialDispositionForEdit, credentialEndpointIdentity, decryptJSON as decryptSyncBlob, diffManifest, disambiguateMcpServerNames, discoverMcpAuthServer, discoverMcpTools, distillSessionFacts, embedderFromProviders, encryptJSON as encryptSyncBlob, endpointFromSettingsPayload, evaluateAcceptance, explainRefusal, extractCharts, failures, fileExt, fileOAuthProvider, gatherSyncBundle, hasDefaultEndpoint, hasProviderCredential, hasUsableProvider, hashContent, heuristicCodeChunker, inferAzureBaseModel, inlineRuns, isDocumentFormat, isMcpToolName, matchImageLine, mcpServerPrefix, mcpToolName, nodeHttpFetch, normalizeEndpoint, parseBlocks, parseChartSpec, parseDelimited, parseRankOrder, parseSlide, planRetrieval, preferIpv4Host, priorAzureRow, reciprocalRankFusion, refreshMcpToken, removeMcpServerDenials, renderDocument, renderDocx, renderPptx, renderXlsx, runCascade, sameAzureEndpoint, sameCredentialEndpoint, sameEndpoint, sessionWorthRemembering, settingsSnapshot, sniffImage, splitSlides, streamCascade, stripInline, summarizeCompleted, undecided, uniqueMcpServerName };