@github/copilot-sdk 1.0.13-preview.4 → 1.0.13

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.
@@ -3,7 +3,7 @@
3
3
  * Generated from: api.schema.json
4
4
  */
5
5
  import type { MessageConnection } from "vscode-jsonrpc/node.js";
6
- import type { AbortReason, Attachment, AutoTier, ContextTier, EmbeddedBlobResourceContents, EmbeddedTextResourceContents, McpOauthHttpResponse, McpOauthWWWAuthenticateParams, McpServerSource, McpServerStatus, ModelChangeSource, PermissionMode, PermissionPromptRequest, PermissionRule, ReasoningSummary, SessionEvent, SessionLimitsConfig, SessionMode, ShutdownType, SkillSource, TaskCompleteData, TaskCompletionOutcome, UserToolSessionApproval, Verbosity } from "./session-events.js";
6
+ import type { AbortReason, AgentModelPolicy, Attachment, AutoTier, ContextTier, EmbeddedBlobResourceContents, EmbeddedTextResourceContents, McpOauthHttpResponse, McpOauthWWWAuthenticateParams, McpServerMetadata, McpServerSource, McpServerStatus, ModelChangeSource, PermissionMode, PermissionPromptRequest, PermissionRule, ReasoningSummary, RemediationAction, SessionEvent, SessionLimitsConfig, SessionMode, ShutdownType, SkillSource, TaskCompleteData, TaskCompletionOutcome, UserToolSessionApproval, Verbosity } from "./session-events.js";
7
7
  /** A value that can be represented losslessly on the SDK JSON wire. */
8
8
  export type JsonValue = null | boolean | number | string | JsonValue[] | {
9
9
  [key: string]: JsonValue;
@@ -253,6 +253,20 @@ export type AuthInfoType =
253
253
  */
254
254
  /** @experimental */
255
255
  export type AuthValidationErrors = AuthValidationError[];
256
+ /**
257
+ * Current normalized autopilot objective lifecycle status.
258
+ *
259
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
260
+ * via the `definition` "AutopilotObjectiveStatus".
261
+ */
262
+ /** @experimental */
263
+ export type AutopilotObjectiveStatus =
264
+ /** The objective is actively running. */
265
+ "active"
266
+ /** The objective is paused and may be resumed. */
267
+ | "paused"
268
+ /** The objective completed. */
269
+ | "completed";
256
270
  /**
257
271
  * Root JSON Schema type for a built-in tool input.
258
272
  *
@@ -529,7 +543,13 @@ export type CatalogNetworkFailureReason =
529
543
  | "tls"
530
544
  /** The connection was refused or reset. */
531
545
  | "connection-refused"
532
- /** The authority returned a status the runtime treats as a failure. */
546
+ /** The configured proxy returned 407 and requires authentication. */
547
+ | "proxy-authentication-required"
548
+ /** The authority rate-limited requests and supplied or implied a bounded cooldown. */
549
+ | "rate-limited"
550
+ /** The authority returned a transient 5xx response. */
551
+ | "service-unavailable"
552
+ /** The authority returned another status the runtime treats as a failure. */
533
553
  | "http-status"
534
554
  /** The response exceeded the permitted size. */
535
555
  | "response-too-large"
@@ -623,6 +643,18 @@ export type CatalogUnavailableTransportReason =
623
643
  | "transport-not-supported"
624
644
  /** Eligible remotes could not be enumerated, so no explicit choice can be offered. */
625
645
  | "remote-enumeration-unavailable";
646
+ /**
647
+ * Why the runtime requests client-task cancellation.
648
+ *
649
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
650
+ * via the `definition` "ClientTaskCancelReason".
651
+ */
652
+ /** @experimental */
653
+ export type ClientTaskCancelReason =
654
+ /** A caller requested task cancellation. */
655
+ "cancel_requested"
656
+ /** The session is shutting down. */
657
+ | "session_shutdown";
626
658
  /**
627
659
  * Coarse command category for grouping and behavior: runtime built-in, skill-backed command, or SDK/client-owned command
628
660
  *
@@ -702,6 +734,20 @@ export type ConnectedRemoteSessionMetadataKind =
702
734
  "remote-session"
703
735
  /** GitHub Copilot coding agent session. */
704
736
  | "coding-agent";
737
+ /**
738
+ * Closed set of public task kinds a connection can negotiate.
739
+ *
740
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
741
+ * via the `definition` "TaskKind".
742
+ */
743
+ /** @experimental */
744
+ export type TaskKind =
745
+ /** Runtime-owned background agent task. */
746
+ "agent"
747
+ /** Runtime-owned shell task. */
748
+ | "shell"
749
+ /** Client-owned externally executed task. */
750
+ | "client";
705
751
  /**
706
752
  * Controls how MCP tool result content is filtered: none leaves content unchanged, markdown sanitizes HTML while preserving Markdown-friendly output, and hidden_characters removes characters that can hide directives.
707
753
  *
@@ -824,6 +870,64 @@ export type DiscoveredExtensionMode =
824
870
  | "load_only"
825
871
  /** Extensions are loaded and the agent can create, reload, and manage them. */
826
872
  | "load_and_augment";
873
+ /**
874
+ * Hook event name. Discovery emits the file-configurable subset; SDK callbacks additionally support callback-only events.
875
+ *
876
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
877
+ * via the `definition` "HookType".
878
+ */
879
+ /** @experimental */
880
+ export type HookType =
881
+ /** Runs before a tool is invoked. */
882
+ "preToolUse"
883
+ /** Runs before an MCP tool is invoked. */
884
+ | "preMcpToolCall"
885
+ /** Runs after a tool completes successfully. */
886
+ | "postToolUse"
887
+ /** Runs after a tool fails. */
888
+ | "postToolUseFailure"
889
+ /** Runs after the user submits a prompt. */
890
+ | "userPromptSubmitted"
891
+ /** Runs after the runtime transforms the submitted prompt for the model, before it is added to session history. */
892
+ | "userPromptTransformed"
893
+ /** Runs when a session starts. */
894
+ | "sessionStart"
895
+ /** Runs when a session ends. */
896
+ | "sessionEnd"
897
+ /** Runs after an agent result is produced. */
898
+ | "postResult"
899
+ /** Runs before a pull request description is generated. */
900
+ | "prePRDescription"
901
+ /** Runs when the agent encounters an error. */
902
+ | "errorOccurred"
903
+ /** Runs when the agent stops. */
904
+ | "agentStop"
905
+ /** Runs when a subagent starts. */
906
+ | "subagentStart"
907
+ /** Runs when a subagent stops. */
908
+ | "subagentStop"
909
+ /** Runs before conversation context is compacted. */
910
+ | "preCompact"
911
+ /** Runs when the agent requests permission. */
912
+ | "permissionRequest"
913
+ /** Runs when the agent emits a notification. */
914
+ | "notification";
915
+ /**
916
+ * Configuration tier that contributed a discovered hook action.
917
+ *
918
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
919
+ * via the `definition` "HookOrigin".
920
+ */
921
+ /** @experimental */
922
+ export type HookOrigin =
923
+ /** Hook loaded from user settings or the user's hook directory. */
924
+ "user"
925
+ /** Hook loaded from repository settings or the repository hook directory. */
926
+ | "repository"
927
+ /** Hook provided by an enabled installed or explicit plugin. Projectless rows omit projectPath and do not expand a project directory. */
928
+ | "plugin"
929
+ /** Hook enforced by centrally managed policy. */
930
+ | "policy";
827
931
  /**
828
932
  * Server transport type: stdio, http, sse (deprecated), or memory
829
933
  *
@@ -1075,6 +1179,15 @@ export type FactoryRunFailure = {
1075
1179
  * Factory failure variant discriminator.
1076
1180
  */
1077
1181
  type: "factory_accounting_incomplete";
1182
+ } | {
1183
+ /**
1184
+ * Factory run identifier.
1185
+ */
1186
+ runId: string;
1187
+ /**
1188
+ * Factory failure variant discriminator.
1189
+ */
1190
+ type: "factory_provider_disconnected";
1078
1191
  };
1079
1192
  /**
1080
1193
  * Cumulative resource ceiling that stopped a factory run.
@@ -2205,6 +2318,18 @@ export type ModelListRequest = {
2205
2318
  */
2206
2319
  skipCache?: boolean;
2207
2320
  };
2321
+ /**
2322
+ * Whether the requested preference was already effective or was accepted for later transactional activation.
2323
+ *
2324
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
2325
+ * via the `definition` "ModelSwitchAutoTierStatus".
2326
+ */
2327
+ /** @experimental */
2328
+ export type ModelSwitchAutoTierStatus =
2329
+ /** The requested preference is already effective. No activation is pending for it, although this request may have cancelled an earlier unclaimed preference reported in `supersededAutoTier`. */
2330
+ "unchanged"
2331
+ /** The request was accepted but has not committed. A later user turn using the `auto` model must mint and validate the replacement before it becomes effective. */
2332
+ | "pending";
2208
2333
  /**
2209
2334
  * Provider type. Defaults to "openai" for generic OpenAI-compatible APIs.
2210
2335
  *
@@ -2471,6 +2596,18 @@ export type PermissionsSetApproveAllSource =
2471
2596
  | "user_setting"
2472
2597
  /** Allow-all was enabled through an RPC caller. */
2473
2598
  | "rpc";
2599
+ /**
2600
+ * Where completed plugin content was staged before atomic promotion.
2601
+ *
2602
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
2603
+ * via the `definition` "PluginInstallStagingMode".
2604
+ */
2605
+ /** @experimental */
2606
+ export type PluginInstallStagingMode =
2607
+ /** A sibling of the installed-plugins root, outside the recursively watched tree. */
2608
+ "external"
2609
+ /** A sibling of the destination plugin directory, used when external staging is unavailable. */
2610
+ | "destination_sibling";
2474
2611
  /**
2475
2612
  * Optional flags controlling which side effects the reload performs.
2476
2613
  *
@@ -3267,13 +3404,154 @@ export type TaskExecutionMode =
3267
3404
  /** The task is managed in the background. */
3268
3405
  | "background";
3269
3406
  /**
3270
- * Tracked task union returned by task APIs, containing either an agent task or a shell task.
3407
+ * Active status a client owner may publish with a progress update.
3408
+ *
3409
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3410
+ * via the `definition` "TaskClientActiveStatus".
3411
+ */
3412
+ /** @experimental */
3413
+ export type TaskClientActiveStatus =
3414
+ /** The external owner is actively working. */
3415
+ "running"
3416
+ /** The external owner is connected but waiting. */
3417
+ | "idle";
3418
+ /**
3419
+ * Client-owned tasks always execute outside the runtime in background mode.
3420
+ *
3421
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3422
+ * via the `definition` "TaskClientExecutionMode".
3423
+ */
3424
+ /** @experimental */
3425
+ export type TaskClientExecutionMode = "background";
3426
+ /**
3427
+ * Discriminator for a client-owned task.
3428
+ *
3429
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3430
+ * via the `definition` "TaskClientType".
3431
+ */
3432
+ /** @experimental */
3433
+ export type TaskClientType = "client";
3434
+ /**
3435
+ * Lifecycle status of a client-owned task.
3436
+ *
3437
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3438
+ * via the `definition` "TaskClientStatus".
3439
+ */
3440
+ /** @experimental */
3441
+ export type TaskClientStatus =
3442
+ /** The external owner is actively working. */
3443
+ "running"
3444
+ /** The external owner is connected but waiting. */
3445
+ | "idle"
3446
+ /** The owner reported successful completion. */
3447
+ | "completed"
3448
+ /** The owner reported failure. */
3449
+ | "failed"
3450
+ /** The owner reported or confirmed cancellation. */
3451
+ | "cancelled"
3452
+ /** The bound owner join disappeared; external executor state is unknown. */
3453
+ | "orphaned";
3454
+ /**
3455
+ * Connection class owning a client task.
3456
+ *
3457
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3458
+ * via the `definition` "TaskClientOwnerKind".
3459
+ */
3460
+ /** @experimental */
3461
+ export type TaskClientOwnerKind =
3462
+ /** A discovered extension connection owns the task. */
3463
+ "extension"
3464
+ /** A generic SDK connection owns the task. */
3465
+ | "sdk";
3466
+ /**
3467
+ * Presence of the task's bound join.
3468
+ *
3469
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3470
+ * via the `definition` "TaskClientOwnerPresence".
3471
+ */
3472
+ /** @experimental */
3473
+ export type TaskClientOwnerPresence =
3474
+ /** The bound session join is connected. */
3475
+ "connected"
3476
+ /** The bound session join is disconnected. */
3477
+ | "disconnected";
3478
+ /**
3479
+ * Progress or terminal update for a client-owned task.
3480
+ *
3481
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3482
+ * via the `definition` "TaskClientUpdate".
3483
+ */
3484
+ /** @experimental */
3485
+ export type TaskClientUpdate = {
3486
+ status?: TaskClientActiveStatus;
3487
+ /**
3488
+ * Optional progress message appended to recent activity when nonempty
3489
+ */
3490
+ message?: string;
3491
+ /**
3492
+ * Optional progress phase; null clears the current phase
3493
+ */
3494
+ phase?: string | null;
3495
+ /**
3496
+ * Optional completion percentage; null clears the current percentage
3497
+ */
3498
+ percentage?: number | null;
3499
+ /**
3500
+ * Client task update variant discriminator.
3501
+ */
3502
+ kind: "progress";
3503
+ } | {
3504
+ /**
3505
+ * Optional final progress message
3506
+ */
3507
+ message?: string;
3508
+ /**
3509
+ * Optional opaque successful terminal result
3510
+ */
3511
+ result?: JsonValue;
3512
+ /**
3513
+ * Client task update variant discriminator.
3514
+ */
3515
+ kind: "completed";
3516
+ } | {
3517
+ /**
3518
+ * Optional final progress message
3519
+ */
3520
+ message?: string;
3521
+ /**
3522
+ * Human-readable terminal failure message
3523
+ */
3524
+ error: string;
3525
+ /**
3526
+ * Optional owner-supplied terminal failure code
3527
+ */
3528
+ code?: string;
3529
+ /**
3530
+ * Client task update variant discriminator.
3531
+ */
3532
+ kind: "failed";
3533
+ } | {
3534
+ /**
3535
+ * Optional final progress message
3536
+ */
3537
+ message?: string;
3538
+ /**
3539
+ * Optional human-readable cancellation reason
3540
+ */
3541
+ reason?: string;
3542
+ /**
3543
+ * Client task update variant discriminator.
3544
+ */
3545
+ kind: "cancelled";
3546
+ };
3547
+ /**
3548
+ * Tracked task union returned by task APIs, containing an agent, client, or shell task.
3271
3549
  *
3272
3550
  * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3273
3551
  * via the `definition` "TaskInfo".
3274
3552
  */
3275
3553
  /** @experimental */
3276
- export type TaskInfo = TaskAgentInfo | TaskShellInfo;
3554
+ export type TaskInfo = TaskAgentInfo | TaskClientInfo | TaskShellInfo;
3277
3555
  /**
3278
3556
  * Whether the shell runs inside a managed PTY session or as an independent background process
3279
3557
  *
@@ -3293,7 +3571,7 @@ export type TaskShellInfoAttachmentMode =
3293
3571
  * via the `definition` "TaskProgress".
3294
3572
  */
3295
3573
  /** @experimental */
3296
- export type TaskProgress = (TaskAgentProgress | TaskShellProgress) | null;
3574
+ export type TaskProgress = TaskAgentProgress | TaskClientProgress | TaskShellProgress | null;
3297
3575
  /**
3298
3576
  * Canonical result returned by a session tool.
3299
3577
  *
@@ -4272,7 +4550,7 @@ export interface AgentGetCurrentResult {
4272
4550
  agent?: AgentInfo | null;
4273
4551
  }
4274
4552
  /**
4275
- * Agent metadata, including identifiers, display details, source, tools, model, MCP servers, skills, and file path.
4553
+ * Agent metadata, including identifiers, display details, source, tools, model, models, MCP servers, skills, and file path.
4276
4554
  *
4277
4555
  * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
4278
4556
  * via the `definition` "AgentInfo".
@@ -4312,6 +4590,11 @@ export interface AgentInfo {
4312
4590
  * Authored preferred model id for this agent. Runtime model selection may choose a different model; omitted means no authored preference.
4313
4591
  */
4314
4592
  model?: string;
4593
+ /**
4594
+ * Authored preferred model ids for this agent, in priority order. Runtime model selection chooses the first available model; omitted means no authored preference.
4595
+ */
4596
+ models?: string[];
4597
+ modelPolicy?: AgentModelPolicy;
4315
4598
  /**
4316
4599
  * MCP server configurations attached to this agent, keyed by server name. Server config shape mirrors the MCP `mcpServers` schema.
4317
4600
  *
@@ -4671,6 +4954,75 @@ export interface AuthValidationError {
4671
4954
  */
4672
4955
  githubMessage?: string;
4673
4956
  }
4957
+ /**
4958
+ * Current per-window credit limit and consumption for an autopilot objective.
4959
+ *
4960
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
4961
+ * via the `definition` "AutopilotObjectiveCreditLimit".
4962
+ */
4963
+ /** @experimental */
4964
+ export interface AutopilotObjectiveCreditLimit {
4965
+ /**
4966
+ * Configured AI-credit cap, when one is set.
4967
+ */
4968
+ credits?: number;
4969
+ /**
4970
+ * Window consumption in fractional AI credits, for display.
4971
+ */
4972
+ creditsUsed: number;
4973
+ /**
4974
+ * Exact window consumption in non-negative integer nano-AIU, encoded as a decimal string.
4975
+ */
4976
+ creditsUsedNanoAiu: string;
4977
+ }
4978
+ /**
4979
+ * Canonical runtime state for the session's current autopilot objective.
4980
+ *
4981
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
4982
+ * via the `definition` "AutopilotObjectiveGetStateResult".
4983
+ */
4984
+ /** @experimental */
4985
+ export interface AutopilotObjectiveGetStateResult {
4986
+ /**
4987
+ * Current objective state, or `null` when the session has no objective.
4988
+ */
4989
+ state: AutopilotObjectiveState | null;
4990
+ }
4991
+ /**
4992
+ * Public, persistence-independent projection of an autopilot objective.
4993
+ *
4994
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
4995
+ * via the `definition` "AutopilotObjectiveState".
4996
+ */
4997
+ /** @experimental */
4998
+ export interface AutopilotObjectiveState {
4999
+ /**
5000
+ * Session-local objective identifier.
5001
+ */
5002
+ id: number;
5003
+ /**
5004
+ * User-provided objective text.
5005
+ */
5006
+ objective: string;
5007
+ status: AutopilotObjectiveStatus;
5008
+ /**
5009
+ * Number of objective turns started.
5010
+ */
5011
+ turnCount: number;
5012
+ /**
5013
+ * Optional reason the objective is paused.
5014
+ */
5015
+ pauseReason?: string;
5016
+ /**
5017
+ * Optional summary recorded when the objective completed.
5018
+ */
5019
+ completionSummary?: string;
5020
+ /**
5021
+ * Exact lifetime AI-credit consumption in non-negative integer nano-AIU, encoded as a decimal string.
5022
+ */
5023
+ creditCountNanoAiu: string;
5024
+ creditLimit?: AutopilotObjectiveCreditLimit;
5025
+ }
4674
5026
  /**
4675
5027
  * The running runtime's complete catalog of well-known built-in model IDs, including supported models and additional IDs with built-in metadata.
4676
5028
  *
@@ -5527,6 +5879,10 @@ export interface CatalogNetworkFailureError {
5527
5879
  * HTTP status code, when the failure was a rejected response.
5528
5880
  */
5529
5881
  statusCode?: number;
5882
+ /**
5883
+ * Bounded cooldown in seconds before another catalog request should be attempted, when the authority supplied a numeric Retry-After value or the runtime applied its documented fallback.
5884
+ */
5885
+ retryAfterSeconds?: number;
5530
5886
  /**
5531
5887
  * Human-readable explanation, safe to surface. Never contains a query, URL, handle, or secret.
5532
5888
  */
@@ -5578,7 +5934,7 @@ export interface CatalogPolicyRejectedError {
5578
5934
  export interface CatalogSearchRequest {
5579
5935
  contract: CatalogClientContract;
5580
5936
  /**
5581
- * Free-text search query. Never written to logs or telemetry.
5937
+ * Free-text search query. Persisted as tool input for session continuity, but omitted from telemetry.
5582
5938
  */
5583
5939
  query: string;
5584
5940
  /**
@@ -5700,6 +6056,45 @@ export interface CatalogUnavailableTransportError {
5700
6056
  */
5701
6057
  message: string;
5702
6058
  }
6059
+ /**
6060
+ * Runtime-to-owner cancellation request for a client-owned task.
6061
+ *
6062
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
6063
+ * via the `definition` "ClientTaskCancelRequest".
6064
+ */
6065
+ /** @experimental */
6066
+ export interface ClientTaskCancelRequest {
6067
+ /**
6068
+ * Session that owns the client task
6069
+ */
6070
+ sessionId: string;
6071
+ /**
6072
+ * Canonical runtime-generated task identifier
6073
+ */
6074
+ id: string;
6075
+ /**
6076
+ * Owner-scoped task key included for correlation
6077
+ */
6078
+ clientTaskId: string;
6079
+ /**
6080
+ * Opaque identifier shared by coalesced cancellation callers
6081
+ */
6082
+ cancellationId: string;
6083
+ reason: ClientTaskCancelReason;
6084
+ }
6085
+ /**
6086
+ * Whether the client authoritatively confirmed its external work stopped.
6087
+ *
6088
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
6089
+ * via the `definition` "ClientTaskCancelResult".
6090
+ */
6091
+ /** @experimental */
6092
+ export interface ClientTaskCancelResult {
6093
+ /**
6094
+ * True only when the owner confirms that external work stopped before responding
6095
+ */
6096
+ cancelled: boolean;
6097
+ }
5703
6098
  /**
5704
6099
  * Slash commands available in the session, after applying any include/exclude filters.
5705
6100
  *
@@ -6153,7 +6548,7 @@ export interface ContextHeaviestMessage {
6153
6548
  tokens: number;
6154
6549
  }
6155
6550
  /**
6156
- * The currently selected model, reasoning effort, and context tier for the session. The context tier reflects `Session.getContextTier()`, restored from the session journal on resume.
6551
+ * The session's authoritative model snapshot. Auto preference fields are configuration for the virtual `auto` model and do not change the selected model identifier. The context tier reflects `Session.getContextTier()`, restored from the session journal on resume.
6157
6552
  *
6158
6553
  * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
6159
6554
  * via the `definition` "CurrentModel".
@@ -6169,6 +6564,15 @@ export interface CurrentModel {
6169
6564
  */
6170
6565
  reasoningEffort?: string;
6171
6566
  contextTier?: ContextTier;
6567
+ autoTier?: AutoTier;
6568
+ /**
6569
+ * Latest unclaimed Auto preference waiting for a future user turn. Null means the pending request is returning to provider-default routing.
6570
+ */
6571
+ pendingAutoTier?: AutoTier | null;
6572
+ /**
6573
+ * Auto preference currently claimed by an in-progress activation. Null means the activation is returning to provider-default routing.
6574
+ */
6575
+ activatingAutoTier?: AutoTier | null;
6172
6576
  }
6173
6577
  /**
6174
6578
  * Lightweight metadata for a currently initialized session tool
@@ -6425,6 +6829,37 @@ export interface DiscoveredExtensionsEnableRequest {
6425
6829
  */
6426
6830
  ids: string[];
6427
6831
  }
6832
+ /**
6833
+ * One server-discovered hook action from user, repository, plugin, or managed-policy configuration.
6834
+ *
6835
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
6836
+ * via the `definition` "DiscoveredHook".
6837
+ */
6838
+ /** @experimental */
6839
+ export interface DiscoveredHook {
6840
+ /**
6841
+ * Deterministic identifier for this server-discovered action row. It remains stable while the project, origin, source, event, action content, and duplicate ordinal are unchanged. This is row identity, not the key persisted in disabledHooks.
6842
+ */
6843
+ id: string;
6844
+ hookType: HookType;
6845
+ origin: HookOrigin;
6846
+ /**
6847
+ * Human-readable source label, such as a hook file path, settings source, or plugin name.
6848
+ */
6849
+ source?: string;
6850
+ /**
6851
+ * Input project path for which this server-side action was resolved. Set on every row returned for project-scoped discovery, including repeated user and policy actions.
6852
+ */
6853
+ projectPath?: string;
6854
+ /**
6855
+ * Whether this action is enabled under the server-side discovery settings. Concrete sessions may differ because they can add session-specific directories, plugins, or trust. False when its disable key is present in the user's disabled-hooks setting or disable-all settings suppress the action.
6856
+ */
6857
+ enabled: boolean;
6858
+ /**
6859
+ * Durable content hash used by hook enablement. Identical actions may intentionally share this key. Omitted when changing the user's disabled-hooks setting cannot change the action's current server-discovered state, including managed-policy hooks, session-start prompt actions, actions suppressed by disable-all settings, and projectless plugin actions that require project-directory expansion.
6860
+ */
6861
+ disableKey?: string;
6862
+ }
6428
6863
  /**
6429
6864
  * MCP server discovered by `mcp.discover`, with config source, optional plugin source, transport type, and enabled state.
6430
6865
  *
@@ -7761,6 +8196,10 @@ export interface FactoryRunResult {
7761
8196
  * Factory run identifier.
7762
8197
  */
7763
8198
  runId: string;
8199
+ /**
8200
+ * One-based execution attempt represented by this envelope. Absent before the first attempt starts or when returned by an older runtime.
8201
+ */
8202
+ attempt?: number;
7764
8203
  status: FactoryRunStatus;
7765
8204
  /**
7766
8205
  * Completed factory result.
@@ -8482,6 +8921,44 @@ export interface HistoryTruncateResult {
8482
8921
  */
8483
8922
  checkpointCleanupError?: string;
8484
8923
  }
8924
+ /**
8925
+ * Optional project paths and host-exclusion behavior for server-scoped hook discovery.
8926
+ *
8927
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
8928
+ * via the `definition` "HooksDiscoverRequest".
8929
+ */
8930
+ /** @experimental */
8931
+ export interface HooksDiscoverRequest {
8932
+ /**
8933
+ * Optional project directory paths whose trusted repository and project-expanded plugin hooks should be discovered. When omitted or empty, user, managed-policy, and globally enabled installed or explicit plugin hooks are returned without project expansion.
8934
+ */
8935
+ projectPaths?: string[];
8936
+ /**
8937
+ * When true, omit host-owned user and plugin hook rows and their diagnostics. Managed-policy hooks and trusted repository hooks remain visible, and host disabledHooks still contribute to each remaining row's effective enabled state. This filters sources rather than simulating a host with no settings.
8938
+ */
8939
+ excludeHostHooks?: boolean;
8940
+ }
8941
+ /**
8942
+ * Server-discovered hook actions and partial-load diagnostics from user, repository, plugin, and managed-policy sources. Concrete sessions may include additional session-specific hook sources.
8943
+ *
8944
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
8945
+ * via the `definition` "HooksDiscoverResult".
8946
+ */
8947
+ /** @experimental */
8948
+ export interface HooksDiscoverResult {
8949
+ /**
8950
+ * All discovered hook actions. Byte-identical actions remain separate rows even when they share a disable key.
8951
+ */
8952
+ hooks: DiscoveredHook[];
8953
+ /**
8954
+ * Non-fatal source-loading warnings. Discovery remains complete for the affected source, although the source had a recoverable issue. Repository-settings warnings are prefixed with their project path when attribution is available.
8955
+ */
8956
+ warnings: string[];
8957
+ /**
8958
+ * Errors for hook sources or actions that could not be loaded, making the result partially incomplete. Other valid actions are still returned. Project-resolution and repository-settings errors are prefixed with their project path.
8959
+ */
8960
+ errors: string[];
8961
+ }
8485
8962
  /**
8486
8963
  * Installed plugin record from global state, with marketplace, version, install time, enabled state, cache path, and source.
8487
8964
  *
@@ -9870,6 +10347,10 @@ export interface McpConfigRemoveRequest {
9870
10347
  * Name of the MCP server to remove
9871
10348
  */
9872
10349
  name: string;
10350
+ /**
10351
+ * OAuth Client ID Metadata Document URL whose persisted credentials should also be removed.
10352
+ */
10353
+ authClientIdMetadataUrl?: string;
9873
10354
  }
9874
10355
  /**
9875
10356
  * MCP server name and replacement configuration to write to user configuration.
@@ -11085,6 +11566,7 @@ export interface McpServer {
11085
11566
  * Error message if the server failed to connect
11086
11567
  */
11087
11568
  error?: string;
11569
+ serverMetadata?: McpServerMetadata;
11088
11570
  }
11089
11571
  /**
11090
11572
  * MCP servers configured for the session, with their connection status and host-level state.
@@ -11458,6 +11940,12 @@ export interface Model {
11458
11940
  */
11459
11941
  name: string;
11460
11942
  capabilities: ModelCapabilities;
11943
+ /**
11944
+ * Provider-supplied model metadata. Keys and JSON-compatible values are preserved unchanged. This is factual metadata published by the model provider; it carries no picker or UX semantics.
11945
+ */
11946
+ metadata?: {
11947
+ [k: string]: JsonValue | undefined;
11948
+ };
11461
11949
  policy?: ModelPolicy;
11462
11950
  billing?: ModelBilling;
11463
11951
  /**
@@ -11704,6 +12192,10 @@ export interface ModelBillingPromo {
11704
12192
  * Human-readable promotion message. Does not include the expiry timestamp; consumers may format endsAt and append it when present.
11705
12193
  */
11706
12194
  message?: string;
12195
+ /**
12196
+ * Whether the service asked hosts to give this promotion a prominent surface, such as a dedicated banner, in addition to listing it with the model. `true` requests that surface and `false` asks for the model list only. Absent means the service expressed no preference — for example a response that predates the field — so hosts should apply their own default rather than read it as `false`.
12197
+ */
12198
+ showBanner?: boolean;
11707
12199
  }
11708
12200
  /**
11709
12201
  * Service-published warning text that hosts should display when presenting a model.
@@ -11751,6 +12243,10 @@ export interface ModelApplyStartupOverlayRequest {
11751
12243
  * Model required by server-managed policy, when configured.
11752
12244
  */
11753
12245
  serverManagedModel?: string;
12246
+ /**
12247
+ * Startup default model from the enterprise policy helper, when configured. Weakest of the managed sources: it applies only when neither device nor server policy names a model, and an explicit user selection still wins.
12248
+ */
12249
+ policyHelperModel?: string;
11754
12250
  /**
11755
12251
  * Model selected by repository settings, when configured.
11756
12252
  */
@@ -11899,33 +12395,70 @@ export interface ModelPickerSettingsContext {
11899
12395
  /** @experimental */
11900
12396
  export interface ModelSetReasoningEffortRequest {
11901
12397
  /**
11902
- * Reasoning effort level to apply to the currently selected model. The host is responsible for validating the value against the model's supported levels before calling.
12398
+ * Reasoning effort level to apply to the currently selected model. The host is responsible for validating the value against the model's supported levels before calling.
12399
+ */
12400
+ reasoningEffort: string;
12401
+ }
12402
+ /**
12403
+ * Update the session's reasoning effort without changing the selected model. Use `switchTo` instead when you also need to change the model. The runtime stores the effort on the session and applies it to subsequent turns.
12404
+ *
12405
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
12406
+ * via the `definition` "ModelSetReasoningEffortResult".
12407
+ */
12408
+ /** @experimental */
12409
+ export interface ModelSetReasoningEffortResult {
12410
+ /**
12411
+ * Reasoning effort level recorded on the session after the update
12412
+ */
12413
+ reasoningEffort: string;
12414
+ }
12415
+ /** @experimental */
12416
+ export interface ModelsListRequest {
12417
+ /**
12418
+ * Opaque account identifier returned by `account.getAllUsers`. When omitted, the current account is used.
12419
+ */
12420
+ selectionId?: string;
12421
+ /**
12422
+ * GitHub token accepted for compatibility with existing SDK clients. When provided, resolves this token instead of using the current account.
12423
+ */
12424
+ gitHubToken?: string;
12425
+ }
12426
+ /**
12427
+ * An Auto preference request for the session. This updates Auto configuration only; it does not change the selected model to `auto`.
12428
+ *
12429
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
12430
+ * via the `definition` "ModelSwitchAutoTierRequest".
12431
+ */
12432
+ /** @experimental */
12433
+ export interface ModelSwitchAutoTierRequest {
12434
+ /**
12435
+ * Auto preference to activate when a future user turn using the `auto` model safely mints a replacement model and token pair. Pass null to return to provider-default Auto routing.
11903
12436
  */
11904
- reasoningEffort: string;
12437
+ autoTier: AutoTier | null;
12438
+ source?: ModelChangeSource;
11905
12439
  }
11906
12440
  /**
11907
- * Update the session's reasoning effort without changing the selected model. Use `switchTo` instead when you also need to change the model. The runtime stores the effort on the session and applies it to subsequent turns.
12441
+ * Immediate acknowledgement and Auto preference snapshot after a switch request. This result never implies that a pending preference committed.
11908
12442
  *
11909
12443
  * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
11910
- * via the `definition` "ModelSetReasoningEffortResult".
12444
+ * via the `definition` "ModelSwitchAutoTierResult".
11911
12445
  */
11912
12446
  /** @experimental */
11913
- export interface ModelSetReasoningEffortResult {
12447
+ export interface ModelSwitchAutoTierResult {
12448
+ status: ModelSwitchAutoTierStatus;
12449
+ effectiveAutoTier?: AutoTier;
11914
12450
  /**
11915
- * Reasoning effort level recorded on the session after the update
12451
+ * Latest unclaimed Auto preference waiting for a future user turn.
11916
12452
  */
11917
- reasoningEffort: string;
11918
- }
11919
- /** @experimental */
11920
- export interface ModelsListRequest {
12453
+ pendingAutoTier?: AutoTier | null;
11921
12454
  /**
11922
- * Opaque account identifier returned by `account.getAllUsers`. When omitted, the current account is used.
12455
+ * Auto preference currently claimed by an in-progress activation. Null means the activation is returning to provider-default routing.
11923
12456
  */
11924
- selectionId?: string;
12457
+ activatingAutoTier?: AutoTier | null;
11925
12458
  /**
11926
- * GitHub token accepted for compatibility with existing SDK clients. When provided, resolves this token instead of using the current account.
12459
+ * Earlier unclaimed preference replaced by this request. This can be present with either status, including when selecting the effective preference cancels pending work.
11927
12460
  */
11928
- gitHubToken?: string;
12461
+ supersededAutoTier?: AutoTier | null;
11929
12462
  }
11930
12463
  /** @experimental */
11931
12464
  export interface ModelSwitchConfirmation {
@@ -11954,6 +12487,10 @@ export interface ModelSwitchToRequest {
11954
12487
  * Model selection id to switch to, as returned by `list`. A bare id (e.g. `claude-sonnet-4.6`) names a Copilot (CAPI) model; a provider-qualified id (`provider/id`, e.g. `acme/claude-sonnet`) targets a registry BYOK model.
11955
12488
  */
11956
12489
  modelId: string;
12490
+ /**
12491
+ * Optional Auto routing preference to stage atomically with selecting `auto`. Pass null to return to provider-default Auto routing. This field is rejected when `modelId` is not `auto`.
12492
+ */
12493
+ autoTier?: AutoTier | null;
11957
12494
  /**
11958
12495
  * Reasoning effort level to use for the model. CAPI values are model-defined and validated against the selected model; BYOK providers may define additional values. "none" disables reasoning. When omitted, no effort override is applied.
11959
12496
  */
@@ -12026,6 +12563,7 @@ export interface ModelSwitchToResult {
12026
12563
  * Deprecation warnings associated with the selected model or options.
12027
12564
  */
12028
12565
  deprecationWarnings?: string[];
12566
+ modelState?: CurrentModel;
12029
12567
  }
12030
12568
  /**
12031
12569
  * Agent interaction mode to apply to the session.
@@ -13962,6 +14500,7 @@ export interface PluginInstallResult {
13962
14500
  * Number of skills discovered and installed from the plugin
13963
14501
  */
13964
14502
  skillsInstalled: number;
14503
+ stagingMode?: PluginInstallStagingMode;
13965
14504
  /**
13966
14505
  * Optional post-install message provided by the plugin (e.g. setup instructions)
13967
14506
  */
@@ -15189,6 +15728,10 @@ export interface QueuePendingItems {
15189
15728
  * Stable opaque id for the canonical queued item. Batch rows share one id.
15190
15729
  */
15191
15730
  id: string;
15731
+ /**
15732
+ * Stable identity of the queued user message. Present for message rows and absent for slash commands and model changes.
15733
+ */
15734
+ messageId?: string;
15192
15735
  kind: QueuePendingItemsKind;
15193
15736
  /**
15194
15737
  * Human-readable text to display for this queue entry in the UI
@@ -15746,6 +16289,18 @@ export interface SandboxConfig {
15746
16289
  * Whether to auto-add the current working directory to readwritePaths. Default: true.
15747
16290
  */
15748
16291
  addCurrentWorkingDirectory?: boolean;
16292
+ /**
16293
+ * Whether MCP servers the session launches are confined by the sandbox. Only an explicit `false` opts out; doing so also lets remote-MCP egress leave the sandbox, so the flag and `enabled` are always read together. Ignored while `enabled` is false. Default: true (enabled by default; set to false to opt out).
16294
+ */
16295
+ sandboxMcpServers?: boolean;
16296
+ /**
16297
+ * Whether language servers the session launches are confined by the sandbox. Only an explicit `false` opts out. Ignored while `enabled` is false. Default: true (enabled by default; set to false to opt out).
16298
+ */
16299
+ sandboxLspServers?: boolean;
16300
+ /**
16301
+ * Whether the agent may request that an individual command run outside the sandbox, which the host then approves or denies through the usual permission flow. A host capability flag rather than part of the policy: it is stripped from the effective spawn policy and only has an effect while `enabled` is true. Fail-closed, unlike the opt-out flags on this object: omitting it offers no bypass. Default: false (opt-in).
16302
+ */
16303
+ allowBypass?: boolean;
15749
16304
  auth?: SandboxConfigAuth;
15750
16305
  /**
15751
16306
  * Whether to auto-grant read access to tool directories discovered on PATH and in toolchain environment variables (GOROOT, JAVA_HOME, VIRTUAL_ENV, and similar), and to common developer-tool caches, config, and toolchains. Writable grants cover scratch caches, the Unix GitHub CLI cache, and Cargo's registry, git store, and lock/tracker files. A relocated CARGO_HOME gets the same narrow split: registry and git are read-write; bin is read-only; the home root, config.toml, and credentials.toml stay ungranted. Set to false to disable every grant listed above; user-installed toolchains and caches then need explicit userPolicy.filesystem readonlyPaths and readwritePaths entries. The working directory (see addCurrentWorkingDirectory), temporary storage, session log paths, and system locations follow their own rules and stay granted. Default: true (enabled by default; set to false to opt out).
@@ -15817,7 +16372,7 @@ export interface SandboxConfigUserPolicyNetwork {
15817
16372
  /** @experimental */
15818
16373
  export interface SandboxConfigUserPolicyNetworkProxy {
15819
16374
  /**
15820
- * Proxy URL (e.g. http://proxy.example.com:8080). The port is optional and defaults to the scheme's standard port when omitted. Credentials must not be embedded here — a `user:pass@` authority is rejected; put them in the separate `username`/`password` fields. A credential-free http:// loopback URL is routed through the localhost proxy automatically; loopback covers localhost and any *.localhost subdomain, the whole 127.0.0.0/8 range, ::1, and IPv4-mapped loopback (::ffff:127.0.0.1). An https:// URL, or one with a username/password set, is used as-is.
16375
+ * Proxy URL (e.g. http://proxy.example.com:8080). The port is optional and defaults to the scheme's standard port when omitted; an explicit port must be between 1 and 65535. Credentials must not be embedded here — a `user:pass@` authority is rejected; put them in the separate `username`/`password` fields. A credential-free http:// loopback proxy URL is routed through the localhost proxy automatically; loopback covers localhost and any *.localhost subdomain, the whole 127.0.0.0/8 range, ::1, and IPv4-mapped loopback (::ffff:127.0.0.1). An https:// URL, or one with a username/password set, is used as-is.
15821
16376
  */
15822
16377
  url: string;
15823
16378
  /**
@@ -17437,6 +17992,10 @@ export interface SessionOpenOptions {
17437
17992
  * Identifier of the client driving the session.
17438
17993
  */
17439
17994
  clientName?: string;
17995
+ /**
17996
+ * OAuth Client ID Metadata Document URL used by this host for MCP authorization.
17997
+ */
17998
+ authClientIdMetadataUrl?: string;
17440
17999
  /**
17441
18000
  * Structured client kind used for runtime behavior gates.
17442
18001
  */
@@ -17560,6 +18119,10 @@ export interface SessionOpenOptions {
17560
18119
  * Additional directories to search for skills.
17561
18120
  */
17562
18121
  skillDirectories?: string[];
18122
+ /**
18123
+ * Whether skill loading is enabled. When omitted, an SDK skill provider enables skills by default.
18124
+ */
18125
+ enableSkills?: boolean;
17563
18126
  /**
17564
18127
  * Built-in skill names to include in this session. When specified, only these runtime-bundled skills are available. Skills from other sources with the same name remain available.
17565
18128
  */
@@ -18698,6 +19261,28 @@ export interface SessionsPruneOldRequest {
18698
19261
  */
18699
19262
  excludeSessionIds?: string[];
18700
19263
  }
19264
+ /**
19265
+ * Pagination options for reading an inactive or active local session's persisted event journal.
19266
+ *
19267
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
19268
+ * via the `definition` "SessionsReadPersistedEventsRequest".
19269
+ */
19270
+ /** @experimental */
19271
+ export interface SessionsReadPersistedEventsRequest {
19272
+ /**
19273
+ * Session ID whose persisted event journal should be read.
19274
+ */
19275
+ sessionId: string;
19276
+ /**
19277
+ * Opaque cursor returned by a previous persisted-event read. Omit on the first call.
19278
+ */
19279
+ cursor?: string;
19280
+ /**
19281
+ * Maximum number of events to return in this batch (1–1000, default 200).
19282
+ */
19283
+ max?: number;
19284
+ direction?: EventsReadDirection;
19285
+ }
18701
19286
  /**
18702
19287
  * Session ID whose in-use lock should be released.
18703
19288
  *
@@ -19065,7 +19650,7 @@ export interface SessionUpdateOptionsParams {
19065
19650
  */
19066
19651
  enableSessionStore?: boolean;
19067
19652
  /**
19068
- * Whether to enable skill directory scanning and loading. Falls back to enableConfigDiscovery when unset.
19653
+ * Whether skill loading is enabled. Explicit false disables every source, including a bound SDK provider; changing the value invalidates the loaded skill snapshot. When omitted, creation falls back to enableConfigDiscovery unless an SDK skill provider is registered.
19069
19654
  */
19070
19655
  enableSkills?: boolean;
19071
19656
  contextTier?: OptionsUpdateContextTier;
@@ -19286,6 +19871,35 @@ export interface SkillList {
19286
19871
  */
19287
19872
  skills: Skill[];
19288
19873
  }
19874
+ /**
19875
+ * Catalog-only metadata for one SDK-provided skill. The complete SKILL.md is fetched separately and lazily.
19876
+ *
19877
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
19878
+ * via the `definition` "SkillProviderDescriptor".
19879
+ */
19880
+ /** @experimental */
19881
+ export interface SkillProviderDescriptor {
19882
+ /**
19883
+ * Invocation and display name.
19884
+ */
19885
+ name: string;
19886
+ /**
19887
+ * Description used in skill catalogs without fetching content.
19888
+ */
19889
+ description: string;
19890
+ /**
19891
+ * Whether users may invoke the skill directly. Defaults to true.
19892
+ */
19893
+ userInvocable?: boolean;
19894
+ /**
19895
+ * Whether model invocation is disabled. Defaults to false.
19896
+ */
19897
+ disableModelInvocation?: boolean;
19898
+ /**
19899
+ * Optional freeform argument hint used by slash-command catalogs.
19900
+ */
19901
+ argumentHint?: string;
19902
+ }
19289
19903
  /**
19290
19904
  * Skill names to mark as disabled in global configuration, replacing any previous list.
19291
19905
  *
@@ -19406,7 +20020,7 @@ export interface SkillsInvokedSkill {
19406
20020
  */
19407
20021
  name: string;
19408
20022
  /**
19409
- * Path to the SKILL.md file
20023
+ * Path to the SKILL.md file, or an empty string for an SDK-provided skill without a filesystem identity
19410
20024
  */
19411
20025
  path: string;
19412
20026
  /**
@@ -19417,6 +20031,10 @@ export interface SkillsInvokedSkill {
19417
20031
  * Tools that should be auto-approved when this skill is active, captured at invocation time
19418
20032
  */
19419
20033
  allowedTools?: string[];
20034
+ /**
20035
+ * Whether model invocation was disabled when this skill was invoked
20036
+ */
20037
+ disableModelInvocation?: boolean;
19420
20038
  /**
19421
20039
  * Turn number when the skill was invoked
19422
20040
  */
@@ -19469,6 +20087,7 @@ export interface SlashCommandTimelineEntry {
19469
20087
  * Optional URL associated with the timeline entry.
19470
20088
  */
19471
20089
  url?: string;
20090
+ remediation?: RemediationAction;
19472
20091
  }
19473
20092
  /**
19474
20093
  * Slash-command invocation result that submits an agent prompt, with display prompt, optional mode, optional user-facing notice, and settings-change flag.
@@ -19516,6 +20135,7 @@ export interface SlashCommandCompletedResult {
19516
20135
  * Optional user-facing message describing the completed command
19517
20136
  */
19518
20137
  message?: string;
20138
+ mode?: SessionMode;
19519
20139
  /**
19520
20140
  * True when the invocation mutated user runtime settings; consumers caching settings should refresh
19521
20141
  */
@@ -19697,6 +20317,7 @@ export interface SubagentSettingsEntry {
19697
20317
  * Model override for matching subagents
19698
20318
  */
19699
20319
  model?: string;
20320
+ modelPolicy?: AgentModelPolicy;
19700
20321
  /**
19701
20322
  * Reasoning effort override for matching subagents
19702
20323
  */
@@ -19824,6 +20445,157 @@ export interface TaskProgressLine {
19824
20445
  */
19825
20446
  timestamp: string;
19826
20447
  }
20448
+ /**
20449
+ * Tracked client-owned task metadata.
20450
+ *
20451
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
20452
+ * via the `definition` "TaskClientInfo".
20453
+ */
20454
+ /** @experimental */
20455
+ export interface TaskClientInfo {
20456
+ type: TaskClientType;
20457
+ /**
20458
+ * Canonical runtime-generated task identifier
20459
+ */
20460
+ id: string;
20461
+ /**
20462
+ * Owner-scoped registration and reclaim key
20463
+ */
20464
+ clientTaskId: string;
20465
+ /**
20466
+ * Optional task display name
20467
+ */
20468
+ displayName?: string;
20469
+ /**
20470
+ * Task description
20471
+ */
20472
+ description: string;
20473
+ status: TaskClientStatus;
20474
+ owner: TaskClientOwner;
20475
+ /**
20476
+ * ISO 8601 timestamp when the task started
20477
+ */
20478
+ startedAt: string;
20479
+ /**
20480
+ * ISO 8601 timestamp of the latest accepted lifecycle change
20481
+ */
20482
+ updatedAt: string;
20483
+ /**
20484
+ * ISO 8601 timestamp when the task reached a terminal status
20485
+ */
20486
+ completedAt?: string;
20487
+ /**
20488
+ * Accumulated active execution time in milliseconds
20489
+ */
20490
+ activeTimeMs: number;
20491
+ /**
20492
+ * ISO 8601 timestamp when the current active segment started
20493
+ */
20494
+ activeStartedAt?: string;
20495
+ /**
20496
+ * ISO 8601 timestamp when the connected owner entered idle status
20497
+ */
20498
+ idleSince?: string;
20499
+ /**
20500
+ * ISO 8601 timestamp of the most recent orphan transition
20501
+ */
20502
+ orphanedAt?: string;
20503
+ /**
20504
+ * ISO 8601 timestamp of the most recent successful reclaim
20505
+ */
20506
+ reclaimedAt?: string;
20507
+ executionMode: TaskClientExecutionMode;
20508
+ /**
20509
+ * Whether the currently bound owner can receive a cancellation request
20510
+ */
20511
+ canCancel: boolean;
20512
+ /**
20513
+ * Sequence number of the latest accepted owner update
20514
+ */
20515
+ sequence: number;
20516
+ /**
20517
+ * Opaque successful terminal result supplied by the task owner
20518
+ */
20519
+ result?: JsonValue;
20520
+ /**
20521
+ * Human-readable terminal failure message
20522
+ */
20523
+ error?: string;
20524
+ /**
20525
+ * Optional owner-supplied terminal failure code
20526
+ */
20527
+ errorCode?: string;
20528
+ /**
20529
+ * Human-readable reason for terminal cancellation
20530
+ */
20531
+ cancellationReason?: string;
20532
+ }
20533
+ /**
20534
+ * Public owner attribution for a client-owned task. Identifiers are opaque and never authorize requests.
20535
+ *
20536
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
20537
+ * via the `definition` "TaskClientOwner".
20538
+ */
20539
+ /** @experimental */
20540
+ export interface TaskClientOwner {
20541
+ /**
20542
+ * Opaque session-scoped participant identity
20543
+ */
20544
+ participantId: string;
20545
+ /**
20546
+ * Opaque identity of the currently or most recently bound session join
20547
+ */
20548
+ joinId: string;
20549
+ kind: TaskClientOwnerKind;
20550
+ /**
20551
+ * Display-only owner name
20552
+ */
20553
+ displayName?: string;
20554
+ /**
20555
+ * Display-only owner source
20556
+ */
20557
+ source?: string;
20558
+ presence: TaskClientOwnerPresence;
20559
+ /**
20560
+ * ISO 8601 timestamp when the bound join disconnected
20561
+ */
20562
+ disconnectedAt?: string;
20563
+ }
20564
+ /**
20565
+ * Generic progress for a client-owned task.
20566
+ *
20567
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
20568
+ * via the `definition` "TaskClientProgress".
20569
+ */
20570
+ /** @experimental */
20571
+ export interface TaskClientProgress {
20572
+ type: TaskClientType;
20573
+ status: TaskClientStatus;
20574
+ /**
20575
+ * Sequence number of the latest accepted owner update
20576
+ */
20577
+ sequence: number;
20578
+ /**
20579
+ * ISO 8601 timestamp of the latest accepted lifecycle change
20580
+ */
20581
+ updatedAt: string;
20582
+ /**
20583
+ * Current owner-defined progress phase
20584
+ */
20585
+ phase?: string;
20586
+ /**
20587
+ * Current completion percentage from zero through one hundred
20588
+ */
20589
+ percentage?: number;
20590
+ /**
20591
+ * Most recent nonempty progress message
20592
+ */
20593
+ lastMessage?: string;
20594
+ /**
20595
+ * Recent server-timestamped progress messages
20596
+ */
20597
+ recentActivity: TaskProgressLine[];
20598
+ }
19827
20599
  /** @experimental */
19828
20600
  export interface TaskCompletionDecision {
19829
20601
  outcome: TaskCompletionOutcome;
@@ -20041,6 +20813,54 @@ export interface TasksPromoteToBackgroundResult {
20041
20813
  /** @experimental */
20042
20814
  export interface TasksRefreshResult {
20043
20815
  }
20816
+ /**
20817
+ * Registers or reclaims a client-owned task.
20818
+ *
20819
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
20820
+ * via the `definition` "TasksRegisterRequest".
20821
+ */
20822
+ /** @experimental */
20823
+ export interface TasksRegisterRequest {
20824
+ type: TaskClientType;
20825
+ /**
20826
+ * Owner-scoped idempotency key used for registration and reclaim
20827
+ */
20828
+ clientTaskId: string;
20829
+ /**
20830
+ * Human-readable description of the external work
20831
+ */
20832
+ description: string;
20833
+ /**
20834
+ * Optional short display name for the external work
20835
+ */
20836
+ displayName?: string;
20837
+ /**
20838
+ * Whether the owner supports runtime cancellation requests
20839
+ */
20840
+ cancellable: boolean;
20841
+ /**
20842
+ * Expected current sequence for idempotent registration or orphan reclaim
20843
+ */
20844
+ expectedSequence?: number;
20845
+ }
20846
+ /**
20847
+ * Result of registering or reclaiming a client-owned task.
20848
+ *
20849
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
20850
+ * via the `definition` "TasksRegisterResult".
20851
+ */
20852
+ /** @experimental */
20853
+ export interface TasksRegisterResult {
20854
+ task: TaskClientInfo;
20855
+ /**
20856
+ * True only when this invocation created a new task
20857
+ */
20858
+ created: boolean;
20859
+ /**
20860
+ * True only when this invocation reclaimed an orphaned task
20861
+ */
20862
+ reclaimed: boolean;
20863
+ }
20044
20864
  /**
20045
20865
  * Identifier of the completed or cancelled task to remove from tracking.
20046
20866
  *
@@ -20147,6 +20967,42 @@ export interface TasksStartAgentResult {
20147
20967
  */
20148
20968
  agentId: string;
20149
20969
  }
20970
+ /**
20971
+ * Updates a client-owned task.
20972
+ *
20973
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
20974
+ * via the `definition` "TasksUpdateRequest".
20975
+ */
20976
+ /** @experimental */
20977
+ export interface TasksUpdateRequest {
20978
+ /**
20979
+ * Canonical runtime-generated task identifier
20980
+ */
20981
+ id: string;
20982
+ /**
20983
+ * Owner update sequence to apply
20984
+ */
20985
+ sequence: number;
20986
+ update: TaskClientUpdate;
20987
+ }
20988
+ /**
20989
+ * Result of publishing a client-owned task update.
20990
+ *
20991
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
20992
+ * via the `definition` "TasksUpdateResult".
20993
+ */
20994
+ /** @experimental */
20995
+ export interface TasksUpdateResult {
20996
+ task: TaskClientInfo;
20997
+ /**
20998
+ * Whether this invocation changed task state
20999
+ */
21000
+ applied: boolean;
21001
+ /**
21002
+ * Whether this invocation repeated the latest accepted update
21003
+ */
21004
+ duplicate: boolean;
21005
+ }
20150
21006
  /**
20151
21007
  * Wait until all in-flight background tasks (agents + shells) and any follow-up turns scheduled by their completions have settled. Returns when the runtime is fully drained or after an internal timeout (default 10 minutes; configurable via COPILOT_TASK_WAIT_TIMEOUT_SECONDS).
20152
21008
  *
@@ -21999,6 +22855,19 @@ export interface SessionLimitPredictionPredictRequest {
21999
22855
  modelId?: string;
22000
22856
  clientType?: SessionLimitPredictionClientType;
22001
22857
  }
22858
+ /**
22859
+ * Identifies the target session.
22860
+ *
22861
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
22862
+ * via the `definition` "SkillProviderListRequest".
22863
+ */
22864
+ /** @experimental */
22865
+ export interface SkillProviderListRequest {
22866
+ /**
22867
+ * Target session identifier
22868
+ */
22869
+ sessionId: string;
22870
+ }
22002
22871
  /**
22003
22872
  * Identifies the target session.
22004
22873
  *
@@ -22025,6 +22894,17 @@ export declare function createServerRpc(connection: MessageConnection): {
22025
22894
  */
22026
22895
  ping: (params: PingRequest) => Promise<PingResult>;
22027
22896
  /** @experimental */
22897
+ hooks: {
22898
+ /**
22899
+ * Discovers hook actions enabled under server-side discovery settings from user, repository, plugin, and managed-policy sources.
22900
+ *
22901
+ * @param params Optional project paths and host-exclusion behavior for server-scoped hook discovery.
22902
+ *
22903
+ * @returns Server-discovered hook actions and partial-load diagnostics from user, repository, plugin, and managed-policy sources. Concrete sessions may include additional session-specific hook sources.
22904
+ */
22905
+ discover: (params: HooksDiscoverRequest) => Promise<HooksDiscoverResult>;
22906
+ };
22907
+ /** @experimental */
22028
22908
  models: {
22029
22909
  /**
22030
22910
  * Lists Copilot models available to the authenticated user.
@@ -22414,6 +23294,10 @@ export declare function createServerRpc(connection: MessageConnection): {
22414
23294
  * @returns Validated device-managed settings discovered before a session exists.
22415
23295
  */
22416
23296
  read: () => Promise<ManagedSettingsReadResult>;
23297
+ /**
23298
+ * Force-refreshes enterprise managed settings for every account: wipes the persistent server-policy cache (the whole `<cacheHome>/managed-settings` directory) and drops this runtime process's in-memory retained server policy. It does not itself fetch policy — the effect is that the next time a session resolves managed settings for an account, that resolution re-fetches the account's org policy from the network instead of serving a cached response. Note that `managedSettings.read` returns only device/MDM settings and never triggers the account server-policy fetch, so a host implementing "sync account policy" should start a fresh session resolution rather than treat a subsequent `managedSettings.read` as the refreshed org policy. Mirrors the invalidation a sign-out performs, broadened from the one signing-out account to all of them; device/MDM layers describe the machine, not the account, and are left untouched. Rejects if the on-disk cache cannot be removed.
23299
+ */
23300
+ clearCache: () => Promise<void>;
22417
23301
  };
22418
23302
  /** @experimental */
22419
23303
  runtime: {
@@ -22492,6 +23376,14 @@ export declare function createServerRpc(connection: MessageConnection): {
22492
23376
  * @returns Sessions matching the filter, ordered most-recently-modified first.
22493
23377
  */
22494
23378
  list: (params: SessionsListRequest) => Promise<SessionList>;
23379
+ /**
23380
+ * Reads a page of durable events directly from a local session's persisted journal without creating, resuming, or activating the session. The initial backward read uses a bounded tail scan for fast first paint; cursor continuations preserve the session event-log paging semantics. Persisted events may omit payloads that are reconstructed only for an active session.
23381
+ *
23382
+ * @param params Pagination options for reading an inactive or active local session's persisted event journal.
23383
+ *
23384
+ * @returns Batch of session events returned by a read, with cursor and continuation metadata.
23385
+ */
23386
+ readPersistedEvents: (params: SessionsReadPersistedEventsRequest) => Promise<EventsReadResult>;
22495
23387
  /**
22496
23388
  * Finds the local session bound to a GitHub task ID, if any.
22497
23389
  *
@@ -22891,9 +23783,9 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
22891
23783
  /** @experimental */
22892
23784
  model: {
22893
23785
  /**
22894
- * Gets the currently selected model for the session.
23786
+ * Gets the session's authoritative model snapshot, including the committed Auto preference and any newer unclaimed Auto preference waiting for a future user turn.
22895
23787
  *
22896
- * @returns The currently selected model, reasoning effort, and context tier for the session. The context tier reflects `Session.getContextTier()`, restored from the session journal on resume.
23788
+ * @returns The session's authoritative model snapshot. Auto preference fields are configuration for the virtual `auto` model and do not change the selected model identifier. The context tier reflects `Session.getContextTier()`, restored from the session journal on resume.
22897
23789
  */
22898
23790
  getCurrent: () => Promise<CurrentModel>;
22899
23791
  /**
@@ -22904,6 +23796,14 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
22904
23796
  * @returns The model identifier active on the session after the switch.
22905
23797
  */
22906
23798
  switchTo: (params: ModelSwitchToRequest) => Promise<ModelSwitchToResult>;
23799
+ /**
23800
+ * Requests an Auto preference change without changing the session's selected model. The latest unclaimed request wins; the runtime commits it only after a later prompt using the `auto` model mints a usable model and token pair. A `pending` response confirms that the request was accepted, not that it committed. Observe eventual success through `session.model_change`, failure through the ephemeral `session.auto_tier_switch_failed` event, or current unclaimed state through `session.model.getCurrent`.
23801
+ *
23802
+ * @param params An Auto preference request for the session. This updates Auto configuration only; it does not change the selected model to `auto`.
23803
+ *
23804
+ * @returns Immediate acknowledgement and Auto preference snapshot after a switch request. This result never implies that a pending preference committed.
23805
+ */
23806
+ switchAutoTier: (params: ModelSwitchAutoTierRequest) => Promise<ModelSwitchAutoTierResult>;
22907
23807
  /**
22908
23808
  * Updates the session's reasoning effort without changing the selected model.
22909
23809
  *
@@ -23110,6 +24010,15 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
23110
24010
  diff: (params: WorkspacesDiffRequest) => Promise<WorkspaceDiffResult>;
23111
24011
  };
23112
24012
  /** @experimental */
24013
+ autopilotObjective: {
24014
+ /**
24015
+ * Reads the current canonical autopilot objective state for this session.
24016
+ *
24017
+ * @returns Canonical runtime state for the session's current autopilot objective.
24018
+ */
24019
+ getState: () => Promise<AutopilotObjectiveGetStateResult>;
24020
+ };
24021
+ /** @experimental */
23113
24022
  completions: {
23114
24023
  /**
23115
24024
  * Gets the characters that should trigger host-driven completions for the session. Empty disables host-driven completions (e.g. local sessions, or a relay host that does not advertise them).
@@ -23203,6 +24112,22 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
23203
24112
  * @returns Background tasks currently tracked by the session.
23204
24113
  */
23205
24114
  list: () => Promise<TaskList>;
24115
+ /**
24116
+ * Registers a client-owned task, or reclaims an orphaned task belonging to the same extension principal.
24117
+ *
24118
+ * @param params Registers or reclaims a client-owned task.
24119
+ *
24120
+ * @returns Result of registering or reclaiming a client-owned task.
24121
+ */
24122
+ register: (params: TasksRegisterRequest) => Promise<TasksRegisterResult>;
24123
+ /**
24124
+ * Publishes generic progress or a terminal outcome for a client-owned task.
24125
+ *
24126
+ * @param params Updates a client-owned task.
24127
+ *
24128
+ * @returns Result of publishing a client-owned task update.
24129
+ */
24130
+ update: (params: TasksUpdateRequest) => Promise<TasksUpdateResult>;
23206
24131
  /**
23207
24132
  * Refreshes metadata for any detached background shells the runtime knows about.
23208
24133
  *
@@ -24404,6 +25329,18 @@ export interface FactoryHandler {
24404
25329
  */
24405
25330
  abort(params: FactoryAbortRequest): Promise<FactoryAckResult>;
24406
25331
  }
25332
+ /** Handler for `tasks` client session API methods. */
25333
+ /** @experimental */
25334
+ export interface TasksHandler {
25335
+ /**
25336
+ * Asks the client currently bound to a client-owned session task to confirm that its external work stopped.
25337
+ *
25338
+ * @param params Runtime-to-owner cancellation request for a client-owned task.
25339
+ *
25340
+ * @returns Whether the client authoritatively confirmed its external work stopped.
25341
+ */
25342
+ cancel(params: ClientTaskCancelRequest): Promise<ClientTaskCancelResult>;
25343
+ }
24407
25344
  /** Handler for `sessionFs` client session API methods. */
24408
25345
  /** @experimental */
24409
25346
  export interface SessionFsHandler {
@@ -24542,6 +25479,7 @@ export interface CanvasHandler {
24542
25479
  export interface ClientSessionApiHandlers {
24543
25480
  providerToken?: ProviderTokenHandler;
24544
25481
  factory?: FactoryHandler;
25482
+ tasks?: TasksHandler;
24545
25483
  sessionFs?: SessionFsHandler;
24546
25484
  canvas?: CanvasHandler;
24547
25485
  }