@github/copilot-sdk-linuxmusl-x64 1.0.14-preview.1 → 1.0.14

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, PermissionDecisionSource, 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
  *
@@ -317,6 +331,124 @@ export type CardDigestValue = string;
317
331
  */
318
332
  /** @experimental */
319
333
  export type CatalogCandidateSource = CatalogCandidateSourceUrl | CatalogCandidateSourceEmbedded;
334
+ /**
335
+ * A versioned, bounded trust observation carried unchanged with a catalog candidate and its private handle context. Current observations require a recognised T1/T2 tier; every non-current state structurally forbids a tier. Eligibility remains `unknown` while Agent Finder supplies no exposure decision, and states absent from its current wire are never inferred from age, relevance, popularity, or a tier transition.
336
+ *
337
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
338
+ * via the `definition` "CatalogTrustSnapshot".
339
+ */
340
+ /** @experimental */
341
+ export type CatalogTrustSnapshot = CatalogTrustSnapshotCurrent | CatalogTrustSnapshotAbsent | CatalogTrustSnapshotStale | CatalogTrustSnapshotDowngraded | CatalogTrustSnapshotRevoked | CatalogTrustSnapshotUnsupported | CatalogTrustSnapshotMalformed;
342
+ /**
343
+ * Schema version of the catalogue trust snapshot envelope
344
+ *
345
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
346
+ * via the `definition` "CatalogTrustSnapshotSchemaVersion".
347
+ */
348
+ /** @experimental */
349
+ export type CatalogTrustSnapshotSchemaVersion =
350
+ /** Initial envelope carrying one bounded service tier or one explicit unavailable state. */
351
+ "v1";
352
+ /**
353
+ * A recognised T1 or T2 service tier was observed.
354
+ *
355
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
356
+ * via the `definition` "CatalogTrustSnapshotCurrentStatus".
357
+ */
358
+ /** @experimental */
359
+ export type CatalogTrustSnapshotCurrentStatus = "current";
360
+ /**
361
+ * Service-computed trust tier currently emitted by Agent Finder. It is independent of search score, popularity, and client-side ranking.
362
+ *
363
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
364
+ * via the `definition` "CatalogTrustTier".
365
+ */
366
+ /** @experimental */
367
+ export type CatalogTrustTier =
368
+ /** Tier one as assigned by the catalogue authority. */
369
+ "T1"
370
+ /** Tier two as assigned by the catalogue authority. */
371
+ | "T2";
372
+ /**
373
+ * Authority-computed exposure eligibility, kept separate from tier. The current tier-only Agent Finder response maps to `unknown`, never to a locally inferred eligibility.
374
+ *
375
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
376
+ * via the `definition` "CatalogTrustEligibility".
377
+ */
378
+ /** @experimental */
379
+ export type CatalogTrustEligibility =
380
+ /** Eligible for default catalogue exposure. */
381
+ "default"
382
+ /** Eligible only when expanded or community results are requested. */
383
+ | "expanded"
384
+ /** Not eligible for normal catalogue exposure. */
385
+ | "hidden"
386
+ /** The authority did not supply an eligibility decision. */
387
+ | "unknown";
388
+ /**
389
+ * Bounded authority that supplied a catalogue trust observation
390
+ *
391
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
392
+ * via the `definition` "CatalogTrustSource".
393
+ */
394
+ /** @experimental */
395
+ export type CatalogTrustSource =
396
+ /** GitHub Agent Finder supplied the trust field on its search result. */
397
+ "agent-finder";
398
+ /**
399
+ * The authority omitted trust metadata.
400
+ *
401
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
402
+ * via the `definition` "CatalogTrustSnapshotAbsentStatus".
403
+ */
404
+ /** @experimental */
405
+ export type CatalogTrustSnapshotAbsentStatus = "absent";
406
+ /**
407
+ * The authority explicitly marked its assessment stale.
408
+ *
409
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
410
+ * via the `definition` "CatalogTrustSnapshotStaleStatus".
411
+ */
412
+ /** @experimental */
413
+ export type CatalogTrustSnapshotStaleStatus = "stale";
414
+ /**
415
+ * The authority explicitly reported a downgraded assessment.
416
+ *
417
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
418
+ * via the `definition` "CatalogTrustSnapshotDowngradedStatus".
419
+ */
420
+ /** @experimental */
421
+ export type CatalogTrustSnapshotDowngradedStatus =
422
+ /** The authority explicitly reported a downgraded assessment. */
423
+ "downgraded";
424
+ /**
425
+ * The authority explicitly revoked its assessment.
426
+ *
427
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
428
+ * via the `definition` "CatalogTrustSnapshotRevokedStatus".
429
+ */
430
+ /** @experimental */
431
+ export type CatalogTrustSnapshotRevokedStatus = "revoked";
432
+ /**
433
+ * The authority supplied a bounded trust value this runtime does not understand.
434
+ *
435
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
436
+ * via the `definition` "CatalogTrustSnapshotUnsupportedStatus".
437
+ */
438
+ /** @experimental */
439
+ export type CatalogTrustSnapshotUnsupportedStatus =
440
+ /** The authority supplied a bounded trust value this runtime does not understand. */
441
+ "unsupported";
442
+ /**
443
+ * The trust field was empty, unbounded, or had the wrong JSON type.
444
+ *
445
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
446
+ * via the `definition` "CatalogTrustSnapshotMalformedStatus".
447
+ */
448
+ /** @experimental */
449
+ export type CatalogTrustSnapshotMalformedStatus =
450
+ /** The trust field was empty, unbounded, or had the wrong JSON type. */
451
+ "malformed";
320
452
  /**
321
453
  * Why the catalog authority did not accept the caller's identity
322
454
  *
@@ -392,7 +524,9 @@ export type CatalogCapability =
392
524
  /** Understands side-effect-free MCP install-plan requests, results, and plan handles; `planning-unavailable` separately reports that planning is not enabled. */
393
525
  | "mcp-install-planning"
394
526
  /** Understands plans that enumerate every eligible transport rather than a single preferred one. */
395
- | "multiple-transport-choice";
527
+ | "multiple-transport-choice"
528
+ /** Understands versioned candidate trust snapshots. Protocol-3 callers must require this capability before the runtime adds the optional snapshot field. */
529
+ | "trust-snapshot";
396
530
  /**
397
531
  * Bounded extensible wire-feature identifier. Known values are described by `CatalogCapability`; newer callers may send future identifiers so an older runtime can return a typed negotiation refusal instead of failing schema validation. Capability negotiation establishes contract understanding, while each operation's result separately reports runtime availability.
398
532
  *
@@ -529,7 +663,13 @@ export type CatalogNetworkFailureReason =
529
663
  | "tls"
530
664
  /** The connection was refused or reset. */
531
665
  | "connection-refused"
532
- /** The authority returned a status the runtime treats as a failure. */
666
+ /** The configured proxy returned 407 and requires authentication. */
667
+ | "proxy-authentication-required"
668
+ /** The authority rate-limited requests and supplied or implied a bounded cooldown. */
669
+ | "rate-limited"
670
+ /** The authority returned a transient 5xx response. */
671
+ | "service-unavailable"
672
+ /** The authority returned another status the runtime treats as a failure. */
533
673
  | "http-status"
534
674
  /** The response exceeded the permitted size. */
535
675
  | "response-too-large"
@@ -623,6 +763,18 @@ export type CatalogUnavailableTransportReason =
623
763
  | "transport-not-supported"
624
764
  /** Eligible remotes could not be enumerated, so no explicit choice can be offered. */
625
765
  | "remote-enumeration-unavailable";
766
+ /**
767
+ * Why the runtime requests client-task cancellation.
768
+ *
769
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
770
+ * via the `definition` "ClientTaskCancelReason".
771
+ */
772
+ /** @experimental */
773
+ export type ClientTaskCancelReason =
774
+ /** A caller requested task cancellation. */
775
+ "cancel_requested"
776
+ /** The session is shutting down. */
777
+ | "session_shutdown";
626
778
  /**
627
779
  * Coarse command category for grouping and behavior: runtime built-in, skill-backed command, or SDK/client-owned command
628
780
  *
@@ -702,6 +854,20 @@ export type ConnectedRemoteSessionMetadataKind =
702
854
  "remote-session"
703
855
  /** GitHub Copilot coding agent session. */
704
856
  | "coding-agent";
857
+ /**
858
+ * Closed set of public task kinds a connection can negotiate.
859
+ *
860
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
861
+ * via the `definition` "TaskKind".
862
+ */
863
+ /** @experimental */
864
+ export type TaskKind =
865
+ /** Runtime-owned background agent task. */
866
+ "agent"
867
+ /** Runtime-owned shell task. */
868
+ | "shell"
869
+ /** Client-owned externally executed task. */
870
+ | "client";
705
871
  /**
706
872
  * 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
873
  *
@@ -824,6 +990,64 @@ export type DiscoveredExtensionMode =
824
990
  | "load_only"
825
991
  /** Extensions are loaded and the agent can create, reload, and manage them. */
826
992
  | "load_and_augment";
993
+ /**
994
+ * Hook event name. Discovery emits the file-configurable subset; SDK callbacks additionally support callback-only events.
995
+ *
996
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
997
+ * via the `definition` "HookType".
998
+ */
999
+ /** @experimental */
1000
+ export type HookType =
1001
+ /** Runs before a tool is invoked. */
1002
+ "preToolUse"
1003
+ /** Runs before an MCP tool is invoked. */
1004
+ | "preMcpToolCall"
1005
+ /** Runs after a tool completes successfully. */
1006
+ | "postToolUse"
1007
+ /** Runs after a tool fails. */
1008
+ | "postToolUseFailure"
1009
+ /** Runs after the user submits a prompt. */
1010
+ | "userPromptSubmitted"
1011
+ /** Runs after the runtime transforms the submitted prompt for the model, before it is added to session history. */
1012
+ | "userPromptTransformed"
1013
+ /** Runs when a session starts. */
1014
+ | "sessionStart"
1015
+ /** Runs when a session ends. */
1016
+ | "sessionEnd"
1017
+ /** Runs after an agent result is produced. */
1018
+ | "postResult"
1019
+ /** Runs before a pull request description is generated. */
1020
+ | "prePRDescription"
1021
+ /** Runs when the agent encounters an error. */
1022
+ | "errorOccurred"
1023
+ /** Runs when the agent stops. */
1024
+ | "agentStop"
1025
+ /** Runs when a subagent starts. */
1026
+ | "subagentStart"
1027
+ /** Runs when a subagent stops. */
1028
+ | "subagentStop"
1029
+ /** Runs before conversation context is compacted. */
1030
+ | "preCompact"
1031
+ /** Runs when the agent requests permission. */
1032
+ | "permissionRequest"
1033
+ /** Runs when the agent emits a notification. */
1034
+ | "notification";
1035
+ /**
1036
+ * Configuration tier that contributed a discovered hook action.
1037
+ *
1038
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
1039
+ * via the `definition` "HookOrigin".
1040
+ */
1041
+ /** @experimental */
1042
+ export type HookOrigin =
1043
+ /** Hook loaded from user settings or the user's hook directory. */
1044
+ "user"
1045
+ /** Hook loaded from repository settings or the repository hook directory. */
1046
+ | "repository"
1047
+ /** Hook provided by an enabled installed or explicit plugin. Projectless rows omit projectPath and do not expand a project directory. */
1048
+ | "plugin"
1049
+ /** Hook enforced by centrally managed policy. */
1050
+ | "policy";
827
1051
  /**
828
1052
  * Server transport type: stdio, http, sse (deprecated), or memory
829
1053
  *
@@ -873,16 +1097,16 @@ export type EventsReadDirection =
873
1097
  /** Tail-first: return the newest events and page toward older events. */
874
1098
  | "backward";
875
1099
  /**
876
- * Cursor status: 'ok' means the cursor was applied successfully; 'expired' means the cursor referred to an event that no longer exists in history (e.g. truncated or compacted away) and the read fell back to a boundary of the remaining history (the beginning for a forward read, the tail for a backward read). The fallback page is a fresh boundary snapshot, not a continuation of the requested cursor, so it may overlap already-rendered events; on 'expired' a consumer should reset/rebase its pagination state (or deduplicate by event id) before continuing from the returned cursor.
1100
+ * Cursor status: 'ok' means the read succeeded against the requested history; 'expired' means the requested continuation is unavailable. Recovery is endpoint-specific: session.eventLog.read returns a boundary window of remaining active history that may overlap prior pages, while sessions.readPersistedEvents returns an empty terminal page and never switches journal generations. An expired persisted read is not successful completion; a complete persisted snapshot requires cursorStatus 'ok' and hasMore false.
877
1101
  *
878
1102
  * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
879
1103
  * via the `definition` "EventsCursorStatus".
880
1104
  */
881
1105
  /** @experimental */
882
1106
  export type EventsCursorStatus =
883
- /** The cursor was applied successfully. */
1107
+ /** The read succeeded against the requested history. */
884
1108
  "ok"
885
- /** The cursor referred to history that is no longer available. */
1109
+ /** The requested continuation is unavailable; see the endpoint's recovery semantics. */
886
1110
  | "expired";
887
1111
  /**
888
1112
  * Discovery source: project (.github/extensions/), user (~/.copilot/extensions/), plugin (installed plugin), or session (session-state/<id>/extensions/)
@@ -1010,6 +1234,8 @@ export type FactoryRunStatus =
1010
1234
  | "completed"
1011
1235
  /** The run was interrupted while resource budget remained. */
1012
1236
  | "halted"
1237
+ /** The current attempt stopped intentionally and the run may be resumed. */
1238
+ | "paused"
1013
1239
  /** The run was cancelled before completion. */
1014
1240
  | "cancelled"
1015
1241
  /** The factory body failed or reached a cumulative resource ceiling. */
@@ -1027,6 +1253,10 @@ export type FactoryRunFailure = {
1027
1253
  * Approved effective ceiling that was reached.
1028
1254
  */
1029
1255
  value: number;
1256
+ /**
1257
+ * Suggested larger ceiling when the runtime can derive one safely.
1258
+ */
1259
+ suggestedValue?: number;
1030
1260
  /**
1031
1261
  * Factory run identifier.
1032
1262
  */
@@ -1075,6 +1305,15 @@ export type FactoryRunFailure = {
1075
1305
  * Factory failure variant discriminator.
1076
1306
  */
1077
1307
  type: "factory_accounting_incomplete";
1308
+ } | {
1309
+ /**
1310
+ * Factory run identifier.
1311
+ */
1312
+ runId: string;
1313
+ /**
1314
+ * Factory failure variant discriminator.
1315
+ */
1316
+ type: "factory_provider_disconnected";
1078
1317
  };
1079
1318
  /**
1080
1319
  * Cumulative resource ceiling that stopped a factory run.
@@ -1090,6 +1329,28 @@ export type FactoryRunFailureKind =
1090
1329
  | "timeoutSeconds"
1091
1330
  /** The run's settled subagent model usage exceeded the approved AI-credit ceiling, or no headroom remained for another subagent. */
1092
1331
  | "maxAiCredits";
1332
+ /**
1333
+ * Durable metadata describing who initiated a factory pause.
1334
+ *
1335
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
1336
+ * via the `definition` "FactoryPauseInfo".
1337
+ */
1338
+ /** @experimental */
1339
+ export type FactoryPauseInfo = {
1340
+ /**
1341
+ * Factory pause initiator discriminator.
1342
+ */
1343
+ type: "user";
1344
+ } | {
1345
+ /**
1346
+ * Stable author-defined checkpoint key that initiated the pause.
1347
+ */
1348
+ key: string;
1349
+ /**
1350
+ * Factory pause initiator discriminator.
1351
+ */
1352
+ type: "checkpoint";
1353
+ };
1093
1354
  /**
1094
1355
  * Kind of factory progress line.
1095
1356
  *
@@ -1102,6 +1363,18 @@ export type FactoryLogLineKind =
1102
1363
  "log"
1103
1364
  /** A named factory phase marker. */
1104
1365
  | "phase";
1366
+ /**
1367
+ * Action the runtime selected for a durable factory pause checkpoint.
1368
+ *
1369
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
1370
+ * via the `definition` "FactoryPauseCheckpointAction".
1371
+ */
1372
+ /** @experimental */
1373
+ export type FactoryPauseCheckpointAction =
1374
+ /** The checkpoint was committed by a prior paused attempt, so execution may continue. */
1375
+ "continue"
1376
+ /** This attempt claimed the checkpoint and must cooperatively stop. */
1377
+ | "pause";
1105
1378
  /**
1106
1379
  * Derived lifecycle state of a factory phase.
1107
1380
  *
@@ -2205,6 +2478,18 @@ export type ModelListRequest = {
2205
2478
  */
2206
2479
  skipCache?: boolean;
2207
2480
  };
2481
+ /**
2482
+ * Whether the requested preference was already effective or was accepted for later transactional activation.
2483
+ *
2484
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
2485
+ * via the `definition` "ModelSwitchAutoTierStatus".
2486
+ */
2487
+ /** @experimental */
2488
+ export type ModelSwitchAutoTierStatus =
2489
+ /** 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`. */
2490
+ "unchanged"
2491
+ /** 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. */
2492
+ | "pending";
2208
2493
  /**
2209
2494
  * Provider type. Defaults to "openai" for generic OpenAI-compatible APIs.
2210
2495
  *
@@ -2343,22 +2628,6 @@ export type PermissionDecisionOutcome =
2343
2628
  | "autopilot_denied"
2344
2629
  /** The response came from an interactive user prompt. */
2345
2630
  | "prompted_user";
2346
- /**
2347
- * Controlled reason or actor responsible for a permission response.
2348
- *
2349
- * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
2350
- * via the `definition` "PermissionDecisionSource".
2351
- */
2352
- /** @experimental */
2353
- export type PermissionDecisionSource =
2354
- /** The response followed the assisted-approval judge recommendation. */
2355
- "assisted_approval"
2356
- /** A human supplied the response through an interactive prompt. */
2357
- | "human_response"
2358
- /** The host applied a standing policy or override rather than a judge recommendation or human decision. */
2359
- | "host_policy"
2360
- /** The host denied the request because no interactive user response was available. */
2361
- | "unattended_fallback";
2362
2631
  /**
2363
2632
  * Client surface that submitted a permission response.
2364
2633
  *
@@ -2471,6 +2740,18 @@ export type PermissionsSetApproveAllSource =
2471
2740
  | "user_setting"
2472
2741
  /** Allow-all was enabled through an RPC caller. */
2473
2742
  | "rpc";
2743
+ /**
2744
+ * Where completed plugin content was staged before atomic promotion.
2745
+ *
2746
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
2747
+ * via the `definition` "PluginInstallStagingMode".
2748
+ */
2749
+ /** @experimental */
2750
+ export type PluginInstallStagingMode =
2751
+ /** A sibling of the installed-plugins root, outside the recursively watched tree. */
2752
+ "external"
2753
+ /** A sibling of the destination plugin directory, used when external staging is unavailable. */
2754
+ | "destination_sibling";
2474
2755
  /**
2475
2756
  * Optional flags controlling which side effects the reload performs.
2476
2757
  *
@@ -3077,6 +3358,68 @@ export type SessionsOpenProgressStatus =
3077
3358
  "in-progress"
3078
3359
  /** The step has completed successfully. */
3079
3360
  | "complete";
3361
+ /**
3362
+ * Client metadata outcome for one requested local session.
3363
+ *
3364
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3365
+ * via the `definition` "SessionsClientMetadataEntry".
3366
+ */
3367
+ /** @experimental */
3368
+ export type SessionsClientMetadataEntry = {
3369
+ /**
3370
+ * Requested session ID.
3371
+ */
3372
+ sessionId: string;
3373
+ metadata: ClientMetadata;
3374
+ /**
3375
+ * Client metadata outcome discriminator.
3376
+ */
3377
+ status: "ok";
3378
+ } | {
3379
+ /**
3380
+ * Requested session ID.
3381
+ */
3382
+ sessionId: string;
3383
+ /**
3384
+ * Client metadata outcome discriminator.
3385
+ */
3386
+ status: "notFound";
3387
+ } | {
3388
+ /**
3389
+ * Requested session ID.
3390
+ */
3391
+ sessionId: string;
3392
+ /**
3393
+ * Client metadata outcome discriminator.
3394
+ */
3395
+ status: "corrupt";
3396
+ } | {
3397
+ /**
3398
+ * Requested session ID.
3399
+ */
3400
+ sessionId: string;
3401
+ /**
3402
+ * Client metadata outcome discriminator.
3403
+ */
3404
+ status: "unsupportedVersion";
3405
+ } | {
3406
+ /**
3407
+ * Requested session ID.
3408
+ */
3409
+ sessionId: string;
3410
+ /**
3411
+ * Filesystem or provider error code. Clients should not assume every provider uses operating-system error codes.
3412
+ */
3413
+ code: string;
3414
+ /**
3415
+ * Human-readable diagnostic message. Not stable for programmatic matching.
3416
+ */
3417
+ message: string;
3418
+ /**
3419
+ * Client metadata outcome discriminator.
3420
+ */
3421
+ status: "unavailable";
3422
+ };
3080
3423
  /**
3081
3424
  * Authentication credentials accepted by session.gitHubAuth.setCredentials. Session-owned token-provider identities cannot be installed through this method.
3082
3425
  *
@@ -3131,6 +3474,14 @@ export type SessionSettingsPredicateName =
3131
3474
  | "trivialChangeEnabledForTool"
3132
3475
  /** Whether trivial-change skip behavior is enabled for a specific tool. */
3133
3476
  | "trivialChangeSkipEnabledForTool";
3477
+ /**
3478
+ * Ordered client metadata outcomes for the requested local sessions.
3479
+ *
3480
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3481
+ * via the `definition` "SessionsGetClientMetadataResult".
3482
+ */
3483
+ /** @experimental */
3484
+ export type SessionsGetClientMetadataResult = SessionsClientMetadataEntry[];
3134
3485
  /**
3135
3486
  * Which session sources to include. Defaults to `local` for backward compatibility.
3136
3487
  *
@@ -3267,13 +3618,154 @@ export type TaskExecutionMode =
3267
3618
  /** The task is managed in the background. */
3268
3619
  | "background";
3269
3620
  /**
3270
- * Tracked task union returned by task APIs, containing either an agent task or a shell task.
3621
+ * Active status a client owner may publish with a progress update.
3622
+ *
3623
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3624
+ * via the `definition` "TaskClientActiveStatus".
3625
+ */
3626
+ /** @experimental */
3627
+ export type TaskClientActiveStatus =
3628
+ /** The external owner is actively working. */
3629
+ "running"
3630
+ /** The external owner is connected but waiting. */
3631
+ | "idle";
3632
+ /**
3633
+ * Client-owned tasks always execute outside the runtime in background mode.
3634
+ *
3635
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3636
+ * via the `definition` "TaskClientExecutionMode".
3637
+ */
3638
+ /** @experimental */
3639
+ export type TaskClientExecutionMode = "background";
3640
+ /**
3641
+ * Discriminator for a client-owned task.
3642
+ *
3643
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3644
+ * via the `definition` "TaskClientType".
3645
+ */
3646
+ /** @experimental */
3647
+ export type TaskClientType = "client";
3648
+ /**
3649
+ * Lifecycle status of a client-owned task.
3650
+ *
3651
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3652
+ * via the `definition` "TaskClientStatus".
3653
+ */
3654
+ /** @experimental */
3655
+ export type TaskClientStatus =
3656
+ /** The external owner is actively working. */
3657
+ "running"
3658
+ /** The external owner is connected but waiting. */
3659
+ | "idle"
3660
+ /** The owner reported successful completion. */
3661
+ | "completed"
3662
+ /** The owner reported failure. */
3663
+ | "failed"
3664
+ /** The owner reported or confirmed cancellation. */
3665
+ | "cancelled"
3666
+ /** The bound owner join disappeared; external executor state is unknown. */
3667
+ | "orphaned";
3668
+ /**
3669
+ * Connection class owning a client task.
3670
+ *
3671
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3672
+ * via the `definition` "TaskClientOwnerKind".
3673
+ */
3674
+ /** @experimental */
3675
+ export type TaskClientOwnerKind =
3676
+ /** A discovered extension connection owns the task. */
3677
+ "extension"
3678
+ /** A generic SDK connection owns the task. */
3679
+ | "sdk";
3680
+ /**
3681
+ * Presence of the task's bound join.
3682
+ *
3683
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3684
+ * via the `definition` "TaskClientOwnerPresence".
3685
+ */
3686
+ /** @experimental */
3687
+ export type TaskClientOwnerPresence =
3688
+ /** The bound session join is connected. */
3689
+ "connected"
3690
+ /** The bound session join is disconnected. */
3691
+ | "disconnected";
3692
+ /**
3693
+ * Progress or terminal update for a client-owned task.
3694
+ *
3695
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3696
+ * via the `definition` "TaskClientUpdate".
3697
+ */
3698
+ /** @experimental */
3699
+ export type TaskClientUpdate = {
3700
+ status?: TaskClientActiveStatus;
3701
+ /**
3702
+ * Optional progress message appended to recent activity when nonempty
3703
+ */
3704
+ message?: string;
3705
+ /**
3706
+ * Optional progress phase; null clears the current phase
3707
+ */
3708
+ phase?: string | null;
3709
+ /**
3710
+ * Optional completion percentage; null clears the current percentage
3711
+ */
3712
+ percentage?: number | null;
3713
+ /**
3714
+ * Client task update variant discriminator.
3715
+ */
3716
+ kind: "progress";
3717
+ } | {
3718
+ /**
3719
+ * Optional final progress message
3720
+ */
3721
+ message?: string;
3722
+ /**
3723
+ * Optional opaque successful terminal result
3724
+ */
3725
+ result?: JsonValue;
3726
+ /**
3727
+ * Client task update variant discriminator.
3728
+ */
3729
+ kind: "completed";
3730
+ } | {
3731
+ /**
3732
+ * Optional final progress message
3733
+ */
3734
+ message?: string;
3735
+ /**
3736
+ * Human-readable terminal failure message
3737
+ */
3738
+ error: string;
3739
+ /**
3740
+ * Optional owner-supplied terminal failure code
3741
+ */
3742
+ code?: string;
3743
+ /**
3744
+ * Client task update variant discriminator.
3745
+ */
3746
+ kind: "failed";
3747
+ } | {
3748
+ /**
3749
+ * Optional final progress message
3750
+ */
3751
+ message?: string;
3752
+ /**
3753
+ * Optional human-readable cancellation reason
3754
+ */
3755
+ reason?: string;
3756
+ /**
3757
+ * Client task update variant discriminator.
3758
+ */
3759
+ kind: "cancelled";
3760
+ };
3761
+ /**
3762
+ * Tracked task union returned by task APIs, containing an agent, client, or shell task.
3271
3763
  *
3272
3764
  * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3273
3765
  * via the `definition` "TaskInfo".
3274
3766
  */
3275
3767
  /** @experimental */
3276
- export type TaskInfo = TaskAgentInfo | TaskShellInfo;
3768
+ export type TaskInfo = TaskAgentInfo | TaskClientInfo | TaskShellInfo;
3277
3769
  /**
3278
3770
  * Whether the shell runs inside a managed PTY session or as an independent background process
3279
3771
  *
@@ -3293,7 +3785,7 @@ export type TaskShellInfoAttachmentMode =
3293
3785
  * via the `definition` "TaskProgress".
3294
3786
  */
3295
3787
  /** @experimental */
3296
- export type TaskProgress = (TaskAgentProgress | TaskShellProgress) | null;
3788
+ export type TaskProgress = TaskAgentProgress | TaskClientProgress | TaskShellProgress | null;
3297
3789
  /**
3298
3790
  * Canonical result returned by a session tool.
3299
3791
  *
@@ -3621,11 +4113,15 @@ export interface CopilotUserResponse {
3621
4113
  */
3622
4114
  organization_login_list?: string[];
3623
4115
  /**
3624
- * Organizations the user belongs to, each with an optional login and display name.
4116
+ * Organizations the user belongs to, each with an optional ID, login, and display name.
3625
4117
  */
3626
4118
  organization_list?: ({
3627
4119
  [k: string]: unknown | undefined;
3628
4120
  } | ({
4121
+ /**
4122
+ * Numeric database ID of the organization.
4123
+ */
4124
+ id?: number;
3629
4125
  /**
3630
4126
  * GitHub login of the organization.
3631
4127
  */
@@ -4272,7 +4768,7 @@ export interface AgentGetCurrentResult {
4272
4768
  agent?: AgentInfo | null;
4273
4769
  }
4274
4770
  /**
4275
- * Agent metadata, including identifiers, display details, source, tools, model, MCP servers, skills, and file path.
4771
+ * Agent metadata, including identifiers, display details, source, tools, model, models, MCP servers, skills, and file path.
4276
4772
  *
4277
4773
  * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
4278
4774
  * via the `definition` "AgentInfo".
@@ -4304,6 +4800,10 @@ export interface AgentInfo {
4304
4800
  * Whether the agent can be selected directly by the user. Agents marked `false` are subagent-only.
4305
4801
  */
4306
4802
  userInvocable?: boolean;
4803
+ /**
4804
+ * Whether model-driven invocation is disabled for this agent.
4805
+ */
4806
+ disableModelInvocation?: boolean;
4307
4807
  /**
4308
4808
  * Allowed tool names for this agent. Empty array means none; omitted means inherit defaults.
4309
4809
  */
@@ -4312,6 +4812,11 @@ export interface AgentInfo {
4312
4812
  * Authored preferred model id for this agent. Runtime model selection may choose a different model; omitted means no authored preference.
4313
4813
  */
4314
4814
  model?: string;
4815
+ /**
4816
+ * Authored preferred model ids for this agent, in priority order. Runtime model selection chooses the first available model; omitted means no authored preference.
4817
+ */
4818
+ models?: string[];
4819
+ modelPolicy?: AgentModelPolicy;
4315
4820
  /**
4316
4821
  * MCP server configurations attached to this agent, keyed by server name. Server config shape mirrors the MCP `mcpServers` schema.
4317
4822
  *
@@ -4671,6 +5176,75 @@ export interface AuthValidationError {
4671
5176
  */
4672
5177
  githubMessage?: string;
4673
5178
  }
5179
+ /**
5180
+ * Current per-window credit limit and consumption for an autopilot objective.
5181
+ *
5182
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
5183
+ * via the `definition` "AutopilotObjectiveCreditLimit".
5184
+ */
5185
+ /** @experimental */
5186
+ export interface AutopilotObjectiveCreditLimit {
5187
+ /**
5188
+ * Configured AI-credit cap, when one is set.
5189
+ */
5190
+ credits?: number;
5191
+ /**
5192
+ * Window consumption in fractional AI credits, for display.
5193
+ */
5194
+ creditsUsed: number;
5195
+ /**
5196
+ * Exact window consumption in non-negative integer nano-AIU, encoded as a decimal string.
5197
+ */
5198
+ creditsUsedNanoAiu: string;
5199
+ }
5200
+ /**
5201
+ * Canonical runtime state for the session's current autopilot objective.
5202
+ *
5203
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
5204
+ * via the `definition` "AutopilotObjectiveGetStateResult".
5205
+ */
5206
+ /** @experimental */
5207
+ export interface AutopilotObjectiveGetStateResult {
5208
+ /**
5209
+ * Current objective state, or `null` when the session has no objective.
5210
+ */
5211
+ state: AutopilotObjectiveState | null;
5212
+ }
5213
+ /**
5214
+ * Public, persistence-independent projection of an autopilot objective.
5215
+ *
5216
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
5217
+ * via the `definition` "AutopilotObjectiveState".
5218
+ */
5219
+ /** @experimental */
5220
+ export interface AutopilotObjectiveState {
5221
+ /**
5222
+ * Session-local objective identifier.
5223
+ */
5224
+ id: number;
5225
+ /**
5226
+ * User-provided objective text.
5227
+ */
5228
+ objective: string;
5229
+ status: AutopilotObjectiveStatus;
5230
+ /**
5231
+ * Number of objective turns started.
5232
+ */
5233
+ turnCount: number;
5234
+ /**
5235
+ * Optional reason the objective is paused.
5236
+ */
5237
+ pauseReason?: string;
5238
+ /**
5239
+ * Optional summary recorded when the objective completed.
5240
+ */
5241
+ completionSummary?: string;
5242
+ /**
5243
+ * Exact lifetime AI-credit consumption in non-negative integer nano-AIU, encoded as a decimal string.
5244
+ */
5245
+ creditCountNanoAiu: string;
5246
+ creditLimit?: AutopilotObjectiveCreditLimit;
5247
+ }
4674
5248
  /**
4675
5249
  * The running runtime's complete catalog of well-known built-in model IDs, including supported models and additional IDs with built-in metadata.
4676
5250
  *
@@ -5239,6 +5813,7 @@ export interface CatalogAiSkillCandidate {
5239
5813
  publisher?: string;
5240
5814
  source: CatalogCandidateSource;
5241
5815
  provenance: CatalogAiSkillCandidateProvenance;
5816
+ trust?: CatalogTrustSnapshot;
5242
5817
  }
5243
5818
  /**
5244
5819
  * Candidate whose card is retrieved from a URL through the runtime's hardened fetch boundary.
@@ -5291,6 +5866,112 @@ export interface CatalogAiSkillCandidateProvenance {
5291
5866
  */
5292
5867
  mediaType: "application/ai-skill";
5293
5868
  }
5869
+ /**
5870
+ * A recognised current Agent Finder T1 or T2 trust tier.
5871
+ *
5872
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
5873
+ * via the `definition` "CatalogTrustSnapshotCurrent".
5874
+ */
5875
+ /** @experimental */
5876
+ export interface CatalogTrustSnapshotCurrent {
5877
+ schemaVersion: CatalogTrustSnapshotSchemaVersion;
5878
+ status: CatalogTrustSnapshotCurrentStatus;
5879
+ tier: CatalogTrustTier;
5880
+ eligibility: CatalogTrustEligibility;
5881
+ provenance: CatalogTrustProvenance;
5882
+ }
5883
+ /**
5884
+ * Where and when the runtime observed the trust metadata. Observation time is not the authority's evaluation time and must not be used to infer staleness.
5885
+ *
5886
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
5887
+ * via the `definition` "CatalogTrustProvenance".
5888
+ */
5889
+ /** @experimental */
5890
+ export interface CatalogTrustProvenance {
5891
+ source: CatalogTrustSource;
5892
+ /**
5893
+ * ISO 8601 timestamp with a timezone offset at which the runtime observed the search result carrying this trust field.
5894
+ */
5895
+ observedAt: string;
5896
+ }
5897
+ /**
5898
+ * Discriminator: the authority omitted trust metadata.
5899
+ *
5900
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
5901
+ * via the `definition` "CatalogTrustSnapshotAbsent".
5902
+ */
5903
+ /** @experimental */
5904
+ export interface CatalogTrustSnapshotAbsent {
5905
+ schemaVersion: CatalogTrustSnapshotSchemaVersion;
5906
+ status: CatalogTrustSnapshotAbsentStatus;
5907
+ eligibility: CatalogTrustEligibility;
5908
+ provenance: CatalogTrustProvenance;
5909
+ }
5910
+ /**
5911
+ * Discriminator: the authority explicitly marked the assessment stale.
5912
+ *
5913
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
5914
+ * via the `definition` "CatalogTrustSnapshotStale".
5915
+ */
5916
+ /** @experimental */
5917
+ export interface CatalogTrustSnapshotStale {
5918
+ schemaVersion: CatalogTrustSnapshotSchemaVersion;
5919
+ status: CatalogTrustSnapshotStaleStatus;
5920
+ eligibility: CatalogTrustEligibility;
5921
+ provenance: CatalogTrustProvenance;
5922
+ }
5923
+ /**
5924
+ * Discriminator: the authority explicitly reported a downgraded assessment.
5925
+ *
5926
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
5927
+ * via the `definition` "CatalogTrustSnapshotDowngraded".
5928
+ */
5929
+ /** @experimental */
5930
+ export interface CatalogTrustSnapshotDowngraded {
5931
+ schemaVersion: CatalogTrustSnapshotSchemaVersion;
5932
+ status: CatalogTrustSnapshotDowngradedStatus;
5933
+ eligibility: CatalogTrustEligibility;
5934
+ provenance: CatalogTrustProvenance;
5935
+ }
5936
+ /**
5937
+ * Discriminator: the authority explicitly revoked the assessment.
5938
+ *
5939
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
5940
+ * via the `definition` "CatalogTrustSnapshotRevoked".
5941
+ */
5942
+ /** @experimental */
5943
+ export interface CatalogTrustSnapshotRevoked {
5944
+ schemaVersion: CatalogTrustSnapshotSchemaVersion;
5945
+ status: CatalogTrustSnapshotRevokedStatus;
5946
+ eligibility: CatalogTrustEligibility;
5947
+ provenance: CatalogTrustProvenance;
5948
+ }
5949
+ /**
5950
+ * Discriminator: the authority supplied a bounded trust value this runtime does not understand.
5951
+ *
5952
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
5953
+ * via the `definition` "CatalogTrustSnapshotUnsupported".
5954
+ */
5955
+ /** @experimental */
5956
+ export interface CatalogTrustSnapshotUnsupported {
5957
+ schemaVersion: CatalogTrustSnapshotSchemaVersion;
5958
+ status: CatalogTrustSnapshotUnsupportedStatus;
5959
+ eligibility: CatalogTrustEligibility;
5960
+ provenance: CatalogTrustProvenance;
5961
+ }
5962
+ /**
5963
+ * Discriminator: the trust field was empty, unbounded, or had the wrong JSON type.
5964
+ *
5965
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
5966
+ * via the `definition` "CatalogTrustSnapshotMalformed".
5967
+ */
5968
+ /** @experimental */
5969
+ export interface CatalogTrustSnapshotMalformed {
5970
+ schemaVersion: CatalogTrustSnapshotSchemaVersion;
5971
+ status: CatalogTrustSnapshotMalformedStatus;
5972
+ eligibility: CatalogTrustEligibility;
5973
+ provenance: CatalogTrustProvenance;
5974
+ }
5294
5975
  /**
5295
5976
  * An optional catalog authentication exchange did not establish the caller's identity. Anonymous search remains supported; this refusal is reserved for an operation that cannot continue after the attempted exchange. It is distinct from `policy-rejected` and from a network failure, and the reason identifies the recovery action.
5296
5977
  *
@@ -5345,6 +6026,7 @@ export interface CatalogMcpServerCandidate {
5345
6026
  publisher?: string;
5346
6027
  source: CatalogCandidateSource;
5347
6028
  provenance: CatalogMcpServerCandidateProvenance;
6029
+ trust?: CatalogTrustSnapshot;
5348
6030
  }
5349
6031
  /**
5350
6032
  * Where and when an MCP server catalog reference was observed. Discovery provenance deliberately carries no content digest because search does not establish the exact validated content a later plan will bind.
@@ -5496,9 +6178,11 @@ export interface CatalogNegotiationRefusedError {
5496
6178
  */
5497
6179
  minimumSupportedProtocolVersion: number;
5498
6180
  /**
5499
- * Every wire feature this runtime understands, so the caller can retry within that contract. This list does not imply that every deployment has enabled every operation.
6181
+ * Capabilities this runtime can safely advertise to this caller. The complete five-capability protocol-3 legacy set is always present; every capability added after that baseline appears only when the caller required it, so an older closed-enum decoder can still consume a refusal. This list does not imply that every deployment has enabled every operation.
6182
+ *
6183
+ * @maxItems 32
5500
6184
  */
5501
- supportedCapabilities: CatalogCapability[];
6185
+ supportedCapabilities: CatalogCapabilityId[];
5502
6186
  /**
5503
6187
  * The subset of the caller's bounded extensible capability identifiers this runtime cannot honour.
5504
6188
  *
@@ -5527,6 +6211,10 @@ export interface CatalogNetworkFailureError {
5527
6211
  * HTTP status code, when the failure was a rejected response.
5528
6212
  */
5529
6213
  statusCode?: number;
6214
+ /**
6215
+ * 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.
6216
+ */
6217
+ retryAfterSeconds?: number;
5530
6218
  /**
5531
6219
  * Human-readable explanation, safe to surface. Never contains a query, URL, handle, or secret.
5532
6220
  */
@@ -5578,7 +6266,7 @@ export interface CatalogPolicyRejectedError {
5578
6266
  export interface CatalogSearchRequest {
5579
6267
  contract: CatalogClientContract;
5580
6268
  /**
5581
- * Free-text search query. Never written to logs or telemetry.
6269
+ * Free-text search query. Persisted as tool input for session continuity, but omitted from telemetry.
5582
6270
  */
5583
6271
  query: string;
5584
6272
  /**
@@ -5700,6 +6388,55 @@ export interface CatalogUnavailableTransportError {
5700
6388
  */
5701
6389
  message: string;
5702
6390
  }
6391
+ /**
6392
+ * Client-owned, case-sensitive string metadata persisted with a local session. Clients should namespace keys by owner. Keys must be non-empty and at most 256 UTF-8 bytes; keys under `copilot/` and `github/` are reserved. Values may contain at most 16 KiB of UTF-8 data. A bag may contain at most 128 entries and its serialized sidecar may contain at most 64 KiB. The runtime stores but never interprets these values.
6393
+ *
6394
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
6395
+ * via the `definition` "ClientMetadata".
6396
+ */
6397
+ /** @experimental */
6398
+ export interface ClientMetadata {
6399
+ [k: string]: string | undefined;
6400
+ }
6401
+ /**
6402
+ * Runtime-to-owner cancellation request for a client-owned task.
6403
+ *
6404
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
6405
+ * via the `definition` "ClientTaskCancelRequest".
6406
+ */
6407
+ /** @experimental */
6408
+ export interface ClientTaskCancelRequest {
6409
+ /**
6410
+ * Session that owns the client task
6411
+ */
6412
+ sessionId: string;
6413
+ /**
6414
+ * Canonical runtime-generated task identifier
6415
+ */
6416
+ id: string;
6417
+ /**
6418
+ * Owner-scoped task key included for correlation
6419
+ */
6420
+ clientTaskId: string;
6421
+ /**
6422
+ * Opaque identifier shared by coalesced cancellation callers
6423
+ */
6424
+ cancellationId: string;
6425
+ reason: ClientTaskCancelReason;
6426
+ }
6427
+ /**
6428
+ * Whether the client authoritatively confirmed its external work stopped.
6429
+ *
6430
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
6431
+ * via the `definition` "ClientTaskCancelResult".
6432
+ */
6433
+ /** @experimental */
6434
+ export interface ClientTaskCancelResult {
6435
+ /**
6436
+ * True only when the owner confirms that external work stopped before responding
6437
+ */
6438
+ cancelled: boolean;
6439
+ }
5703
6440
  /**
5704
6441
  * Slash commands available in the session, after applying any include/exclude filters.
5705
6442
  *
@@ -6153,7 +6890,7 @@ export interface ContextHeaviestMessage {
6153
6890
  tokens: number;
6154
6891
  }
6155
6892
  /**
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.
6893
+ * 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
6894
  *
6158
6895
  * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
6159
6896
  * via the `definition` "CurrentModel".
@@ -6169,6 +6906,15 @@ export interface CurrentModel {
6169
6906
  */
6170
6907
  reasoningEffort?: string;
6171
6908
  contextTier?: ContextTier;
6909
+ autoTier?: AutoTier;
6910
+ /**
6911
+ * Latest unclaimed Auto preference waiting for a future user turn. Null means the pending request is returning to provider-default routing.
6912
+ */
6913
+ pendingAutoTier?: AutoTier | null;
6914
+ /**
6915
+ * Auto preference currently claimed by an in-progress activation. Null means the activation is returning to provider-default routing.
6916
+ */
6917
+ activatingAutoTier?: AutoTier | null;
6172
6918
  }
6173
6919
  /**
6174
6920
  * Lightweight metadata for a currently initialized session tool
@@ -6394,63 +7140,156 @@ export interface DiscoveredExtensionPlugin {
6394
7140
  /** @experimental */
6395
7141
  export interface DiscoveredExtensions {
6396
7142
  /**
6397
- * Discovered user and enabled installed-plugin extensions from persisted Copilot home state
7143
+ * Discovered user and enabled installed-plugin extensions from persisted Copilot home state
7144
+ */
7145
+ extensions: DiscoveredExtension[];
7146
+ mode: DiscoveredExtensionMode;
7147
+ }
7148
+ /**
7149
+ * Source-qualified extension identifiers to persistently disable for future sessions.
7150
+ *
7151
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
7152
+ * via the `definition` "DiscoveredExtensionsDisableRequest".
7153
+ */
7154
+ /** @experimental */
7155
+ export interface DiscoveredExtensionsDisableRequest {
7156
+ /**
7157
+ * Source-qualified user or plugin extension IDs to disable
7158
+ */
7159
+ ids: string[];
7160
+ }
7161
+ /**
7162
+ * Source-qualified extension identifiers to persistently enable for future sessions.
7163
+ *
7164
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
7165
+ * via the `definition` "DiscoveredExtensionsEnableRequest".
7166
+ */
7167
+ /** @experimental */
7168
+ export interface DiscoveredExtensionsEnableRequest {
7169
+ /**
7170
+ * Source-qualified user or plugin extension IDs to enable
7171
+ */
7172
+ ids: string[];
7173
+ }
7174
+ /**
7175
+ * One server-discovered hook action from user, repository, plugin, or managed-policy configuration.
7176
+ *
7177
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
7178
+ * via the `definition` "DiscoveredHook".
7179
+ */
7180
+ /** @experimental */
7181
+ export interface DiscoveredHook {
7182
+ /**
7183
+ * 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.
7184
+ */
7185
+ id: string;
7186
+ hookType: HookType;
7187
+ origin: HookOrigin;
7188
+ /**
7189
+ * Human-readable source label, such as a hook file path, settings source, or plugin name.
7190
+ */
7191
+ source?: string;
7192
+ /**
7193
+ * 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.
7194
+ */
7195
+ projectPath?: string;
7196
+ /**
7197
+ * 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.
7198
+ */
7199
+ enabled: boolean;
7200
+ /**
7201
+ * 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.
7202
+ */
7203
+ disableKey?: string;
7204
+ }
7205
+ /**
7206
+ * MCP server discovered by `mcp.discover`, with config source, optional plugin source, transport type, and enabled state.
7207
+ *
7208
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
7209
+ * via the `definition` "DiscoveredMcpServer".
7210
+ */
7211
+ /** @experimental */
7212
+ export interface DiscoveredMcpServer {
7213
+ /**
7214
+ * Server name (config key)
7215
+ */
7216
+ name: string;
7217
+ type?: DiscoveredMcpServerType;
7218
+ source: McpServerSource;
7219
+ /**
7220
+ * Plugin name that provided this server, when source is plugin.
7221
+ */
7222
+ sourcePlugin?: string;
7223
+ /**
7224
+ * Plugin version that provided this server, when source is plugin.
6398
7225
  */
6399
- extensions: DiscoveredExtension[];
6400
- mode: DiscoveredExtensionMode;
7226
+ sourcePluginVersion?: string;
7227
+ effectiveSource?: McpSourceRef;
7228
+ /**
7229
+ * Whether the server is enabled (not in the disabled list)
7230
+ */
7231
+ enabled: boolean;
6401
7232
  }
6402
7233
  /**
6403
- * Source-qualified extension identifiers to persistently disable for future sessions.
7234
+ * Canonical identity and location of the effective MCP server declaration. The declaration is uniquely addressed by this source id together with the discovered server name.
6404
7235
  *
6405
7236
  * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
6406
- * via the `definition` "DiscoveredExtensionsDisableRequest".
7237
+ * via the `definition` "McpSourceRef".
6407
7238
  */
6408
7239
  /** @experimental */
6409
- export interface DiscoveredExtensionsDisableRequest {
7240
+ export interface McpSourceRef {
6410
7241
  /**
6411
- * Source-qualified user or plugin extension IDs to disable
7242
+ * Open source-kind identifier. Known values include user, workspace, invocation, plugin, builtin, and device-registry.
6412
7243
  */
6413
- ids: string[];
7244
+ kind: string;
7245
+ /**
7246
+ * Opaque stable identity for the configuration source. Clients must not parse this value.
7247
+ */
7248
+ id: string;
7249
+ /**
7250
+ * Open semantic editability identifier. Known values are editable and read-only.
7251
+ */
7252
+ editability: string;
7253
+ file?: McpSourceFile;
7254
+ plugin?: McpSourcePlugin;
6414
7255
  }
6415
7256
  /**
6416
- * Source-qualified extension identifiers to persistently enable for future sessions.
7257
+ * Concrete configuration file containing an MCP server declaration.
6417
7258
  *
6418
7259
  * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
6419
- * via the `definition` "DiscoveredExtensionsEnableRequest".
7260
+ * via the `definition` "McpSourceFile".
6420
7261
  */
6421
7262
  /** @experimental */
6422
- export interface DiscoveredExtensionsEnableRequest {
7263
+ export interface McpSourceFile {
6423
7264
  /**
6424
- * Source-qualified user or plugin extension IDs to enable
7265
+ * Canonical file URI for the configuration document
6425
7266
  */
6426
- ids: string[];
7267
+ uri: string;
7268
+ /**
7269
+ * RFC 6901 JSON Pointer to the server declaration, when known
7270
+ */
7271
+ jsonPointer?: string;
6427
7272
  }
6428
7273
  /**
6429
- * MCP server discovered by `mcp.discover`, with config source, optional plugin source, transport type, and enabled state.
7274
+ * Plugin identity associated with an MCP server declaration.
6430
7275
  *
6431
7276
  * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
6432
- * via the `definition` "DiscoveredMcpServer".
7277
+ * via the `definition` "McpSourcePlugin".
6433
7278
  */
6434
7279
  /** @experimental */
6435
- export interface DiscoveredMcpServer {
7280
+ export interface McpSourcePlugin {
6436
7281
  /**
6437
- * Server name (config key)
6438
- */
6439
- name: string;
6440
- type?: DiscoveredMcpServerType;
6441
- source: McpServerSource;
6442
- /**
6443
- * Plugin name that provided this server, when source is plugin.
7282
+ * Canonical plugin identity
6444
7283
  */
6445
- sourcePlugin?: string;
7284
+ id: string;
6446
7285
  /**
6447
- * Plugin version that provided this server, when source is plugin.
7286
+ * Human-readable plugin name, when available
6448
7287
  */
6449
- sourcePluginVersion?: string;
7288
+ name?: string;
6450
7289
  /**
6451
- * Whether the server is enabled (not in the disabled list)
7290
+ * Plugin version, when available
6452
7291
  */
6453
- enabled: boolean;
7292
+ version?: string;
6454
7293
  }
6455
7294
  /**
6456
7295
  * Slash-prefixed command string to enqueue for FIFO processing.
@@ -6559,7 +7398,7 @@ export interface EventsReadResult {
6559
7398
  */
6560
7399
  cursor: string;
6561
7400
  /**
6562
- * True when more events are available in the read's direction. For a forward read, true means the batch returned `max` events and more are available immediately. For a backward read, true means older persisted events remain before the returned window.
7401
+ * True when more events are available in the read's direction. For a backward read, true means older persisted events remain before the returned window. A persisted-event page may contain fewer than `max` events because of its byte budget while still reporting hasMore true; continue according to this flag rather than the event count.
6563
7402
  */
6564
7403
  hasMore: boolean;
6565
7404
  cursorStatus: EventsCursorStatus;
@@ -7017,6 +7856,10 @@ export interface FactoryAbortRequest {
7017
7856
  * Factory run identifier.
7018
7857
  */
7019
7858
  runId: string;
7859
+ /**
7860
+ * Opaque token identifying the execution attempt to abort.
7861
+ */
7862
+ executionToken: string;
7020
7863
  }
7021
7864
  /**
7022
7865
  * Acknowledgement that a factory request was accepted.
@@ -7048,12 +7891,12 @@ export interface FactoryAgentOptions {
7048
7891
  */
7049
7892
  model?: string;
7050
7893
  /**
7051
- * Optional reasoning effort for the subagent. This field is accepted but not yet honored.
7894
+ * Optional reasoning effort override for the subagent.
7052
7895
  */
7053
7896
  reasoningEffort?: string;
7054
7897
  contextTier?: ContextTier;
7055
7898
  /**
7056
- * Optional custom agent name for the subagent. This field is accepted but not yet honored.
7899
+ * Optional built-in or custom agent name whose definition configures the subagent.
7057
7900
  */
7058
7901
  agent?: string;
7059
7902
  }
@@ -7484,6 +8327,10 @@ export interface FactoryRunSummary {
7484
8327
  * Terminal run outcome, or null while nonterminal.
7485
8328
  */
7486
8329
  terminal: FactoryRunTerminal | null;
8330
+ /**
8331
+ * Whether the durable run state currently passes runtime resume eligibility checks.
8332
+ */
8333
+ canResume: boolean;
7487
8334
  }
7488
8335
  /**
7489
8336
  * Durable factory resource consumption.
@@ -7527,6 +8374,10 @@ export interface FactoryRunTerminal {
7527
8374
  * Prompt-safe preview of the completed result.
7528
8375
  */
7529
8376
  resultPreview?: string;
8377
+ /**
8378
+ * Pause initiator metadata, or null when the run did not pause.
8379
+ */
8380
+ pauseInfo: FactoryPauseInfo | null;
7530
8381
  }
7531
8382
  /**
7532
8383
  * One ordered factory progress line.
@@ -7567,6 +8418,44 @@ export interface FactoryLogRequest {
7567
8418
  */
7568
8419
  lines: FactoryLogLine[];
7569
8420
  }
8421
+ /**
8422
+ * Parameters for an owned durable pause checkpoint.
8423
+ *
8424
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
8425
+ * via the `definition` "FactoryPauseCheckpointRequest".
8426
+ */
8427
+ /** @experimental */
8428
+ export interface FactoryPauseCheckpointRequest {
8429
+ /**
8430
+ * Factory run identifier.
8431
+ */
8432
+ runId: string;
8433
+ /**
8434
+ * Opaque token identifying the execution attempt that reached the checkpoint.
8435
+ */
8436
+ executionToken: string;
8437
+ /**
8438
+ * Stable author-defined checkpoint key.
8439
+ */
8440
+ key: string;
8441
+ }
8442
+ /** @experimental */
8443
+ export interface FactoryPauseCheckpointResult {
8444
+ action: FactoryPauseCheckpointAction;
8445
+ }
8446
+ /**
8447
+ * Parameters for pausing a running factory.
8448
+ *
8449
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
8450
+ * via the `definition` "FactoryPauseRequest".
8451
+ */
8452
+ /** @experimental */
8453
+ export interface FactoryPauseRequest {
8454
+ /**
8455
+ * Factory run identifier.
8456
+ */
8457
+ runId: string;
8458
+ }
7570
8459
  /**
7571
8460
  * Durable lifecycle and timing for one factory phase.
7572
8461
  *
@@ -7721,19 +8610,19 @@ export interface FactoryRunLimits {
7721
8610
  /**
7722
8611
  * Maximum number of factory subagents that may run concurrently.
7723
8612
  */
7724
- maxConcurrentSubagents?: number;
8613
+ maxConcurrentSubagents?: number | null;
7725
8614
  /**
7726
8615
  * Maximum total number of factory subagents that may be admitted.
7727
8616
  */
7728
- maxTotalSubagents?: number;
8617
+ maxTotalSubagents?: number | null;
7729
8618
  /**
7730
8619
  * Maximum accumulated active-execution time in seconds. Active execution includes the entire extension body, subprocess waits, queued-agent waits, and sleeps; time between resumed attempts is not counted.
7731
8620
  */
7732
- timeoutSeconds?: number;
8621
+ timeoutSeconds?: number | null;
7733
8622
  /**
7734
8623
  * Maximum AI credits consumed by factory subagents and their descendants. The post-paid ceiling is soft: parallel turns can settle beyond it before the run stops.
7735
8624
  */
7736
- maxAiCredits?: number;
8625
+ maxAiCredits?: number | null;
7737
8626
  }
7738
8627
  /**
7739
8628
  * Resolved persisted factory identity and resumed run envelope.
@@ -7761,6 +8650,10 @@ export interface FactoryRunResult {
7761
8650
  * Factory run identifier.
7762
8651
  */
7763
8652
  runId: string;
8653
+ /**
8654
+ * One-based execution attempt represented by this envelope. Absent before the first attempt starts or when returned by an older runtime.
8655
+ */
8656
+ attempt?: number;
7764
8657
  status: FactoryRunStatus;
7765
8658
  /**
7766
8659
  * Completed factory result.
@@ -7779,6 +8672,7 @@ export interface FactoryRunResult {
7779
8672
  * Partial journal and progress snapshot for a halted, cancelled, or errored run.
7780
8673
  */
7781
8674
  snapshot?: JsonValue;
8675
+ pauseInfo?: FactoryPauseInfo;
7782
8676
  }
7783
8677
  /**
7784
8678
  * Full factory run observability detail.
@@ -7855,6 +8749,10 @@ export interface FactoryRunDetail {
7855
8749
  * Terminal run outcome, or null while nonterminal.
7856
8750
  */
7857
8751
  terminal: FactoryRunTerminal | null;
8752
+ /**
8753
+ * Whether the durable run state currently passes runtime resume eligibility checks.
8754
+ */
8755
+ canResume: boolean;
7858
8756
  /**
7859
8757
  * Lifecycle and timing observations for each factory phase.
7860
8758
  */
@@ -7906,7 +8804,7 @@ export interface RunOptions {
7906
8804
  resumeFromRunId?: string;
7907
8805
  }
7908
8806
  /**
7909
- * Optional user prompt to combine with the fleet orchestration instructions.
8807
+ * Parameters for starting fleet orchestration: an optional user prompt combined with the fleet instructions, plus the send options forwarded to the resulting turn.
7910
8808
  *
7911
8809
  * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
7912
8810
  * via the `definition` "FleetStartRequest".
@@ -7917,6 +8815,14 @@ export interface FleetStartRequest {
7917
8815
  * Optional user prompt to combine with fleet instructions
7918
8816
  */
7919
8817
  prompt?: string;
8818
+ /**
8819
+ * Optional attachments (files, directories, selections, blobs, GitHub references) to include with the fleet request
8820
+ */
8821
+ attachments?: Attachment[];
8822
+ /**
8823
+ * If true, await completion of the agentic loop for this fleet request before returning. Defaults to false.
8824
+ */
8825
+ wait?: boolean;
7920
8826
  }
7921
8827
  /**
7922
8828
  * Indicates whether fleet mode was successfully activated.
@@ -8482,6 +9388,44 @@ export interface HistoryTruncateResult {
8482
9388
  */
8483
9389
  checkpointCleanupError?: string;
8484
9390
  }
9391
+ /**
9392
+ * Optional project paths and host-exclusion behavior for server-scoped hook discovery.
9393
+ *
9394
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
9395
+ * via the `definition` "HooksDiscoverRequest".
9396
+ */
9397
+ /** @experimental */
9398
+ export interface HooksDiscoverRequest {
9399
+ /**
9400
+ * 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.
9401
+ */
9402
+ projectPaths?: string[];
9403
+ /**
9404
+ * 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.
9405
+ */
9406
+ excludeHostHooks?: boolean;
9407
+ }
9408
+ /**
9409
+ * 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.
9410
+ *
9411
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
9412
+ * via the `definition` "HooksDiscoverResult".
9413
+ */
9414
+ /** @experimental */
9415
+ export interface HooksDiscoverResult {
9416
+ /**
9417
+ * All discovered hook actions. Byte-identical actions remain separate rows even when they share a disable key.
9418
+ */
9419
+ hooks: DiscoveredHook[];
9420
+ /**
9421
+ * 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.
9422
+ */
9423
+ warnings: string[];
9424
+ /**
9425
+ * 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.
9426
+ */
9427
+ errors: string[];
9428
+ }
8485
9429
  /**
8486
9430
  * Installed plugin record from global state, with marketplace, version, install time, enabled state, cache path, and source.
8487
9431
  *
@@ -9870,6 +10814,10 @@ export interface McpConfigRemoveRequest {
9870
10814
  * Name of the MCP server to remove
9871
10815
  */
9872
10816
  name: string;
10817
+ /**
10818
+ * OAuth Client ID Metadata Document URL whose persisted credentials should also be removed.
10819
+ */
10820
+ authClientIdMetadataUrl?: string;
9873
10821
  }
9874
10822
  /**
9875
10823
  * MCP server name and replacement configuration to write to user configuration.
@@ -9923,6 +10871,10 @@ export interface McpDiscoverRequest {
9923
10871
  * Working directory used as context for discovery (e.g., plugin resolution)
9924
10872
  */
9925
10873
  workingDirectory?: string;
10874
+ /**
10875
+ * Whether to include canonical effectiveSource metadata for each discovered server. Callers must opt in so protocol-3 clients retain the legacy closed response shape.
10876
+ */
10877
+ includeEffectiveSource?: boolean;
9926
10878
  }
9927
10879
  /**
9928
10880
  * MCP servers discovered from user, workspace, plugin, and built-in sources.
@@ -11085,6 +12037,7 @@ export interface McpServer {
11085
12037
  * Error message if the server failed to connect
11086
12038
  */
11087
12039
  error?: string;
12040
+ serverMetadata?: McpServerMetadata;
11088
12041
  }
11089
12042
  /**
11090
12043
  * MCP servers configured for the session, with their connection status and host-level state.
@@ -11441,6 +12394,31 @@ export interface MetadataSnapshotRemoteMetadataRepository {
11441
12394
  */
11442
12395
  branch: string;
11443
12396
  }
12397
+ /**
12398
+ * Atomic patch for client-owned session metadata. Operations apply in clear, remove, then set order. The resulting bag must satisfy the ClientMetadata entry and serialized-size limits. Local storage coordinates concurrent runtime processes; custom SessionFs providers must serialize writers that access the same session from multiple processes.
12399
+ *
12400
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
12401
+ * via the `definition` "MetadataUpdateClientMetadataRequest".
12402
+ */
12403
+ /** @experimental */
12404
+ export interface MetadataUpdateClientMetadataRequest {
12405
+ /**
12406
+ * Remove every existing client metadata entry before applying remove and set. Defaults to false.
12407
+ */
12408
+ clear?: boolean;
12409
+ /**
12410
+ * Case-sensitive keys to remove. Missing keys are ignored. Each key must be non-empty, at most 256 UTF-8 bytes, and outside the reserved `copilot/` and `github/` namespaces.
12411
+ *
12412
+ * @maxItems 128
12413
+ */
12414
+ remove?: string[];
12415
+ /**
12416
+ * String entries to add or replace. Set wins when a key also appears in remove. Each key must be non-empty, at most 256 UTF-8 bytes, and outside the reserved `copilot/` and `github/` namespaces. Each value may contain at most 16 KiB of UTF-8 data.
12417
+ */
12418
+ set?: {
12419
+ [k: string]: string | undefined;
12420
+ };
12421
+ }
11444
12422
  /**
11445
12423
  * Copilot model metadata, including identifier, display name, capabilities, policy, billing, reasoning efforts, and picker categories.
11446
12424
  *
@@ -11458,6 +12436,12 @@ export interface Model {
11458
12436
  */
11459
12437
  name: string;
11460
12438
  capabilities: ModelCapabilities;
12439
+ /**
12440
+ * 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.
12441
+ */
12442
+ metadata?: {
12443
+ [k: string]: JsonValue | undefined;
12444
+ };
11461
12445
  policy?: ModelPolicy;
11462
12446
  billing?: ModelBilling;
11463
12447
  /**
@@ -11704,6 +12688,10 @@ export interface ModelBillingPromo {
11704
12688
  * Human-readable promotion message. Does not include the expiry timestamp; consumers may format endsAt and append it when present.
11705
12689
  */
11706
12690
  message?: string;
12691
+ /**
12692
+ * 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`.
12693
+ */
12694
+ showBanner?: boolean;
11707
12695
  }
11708
12696
  /**
11709
12697
  * Service-published warning text that hosts should display when presenting a model.
@@ -11751,6 +12739,10 @@ export interface ModelApplyStartupOverlayRequest {
11751
12739
  * Model required by server-managed policy, when configured.
11752
12740
  */
11753
12741
  serverManagedModel?: string;
12742
+ /**
12743
+ * 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.
12744
+ */
12745
+ policyHelperModel?: string;
11754
12746
  /**
11755
12747
  * Model selected by repository settings, when configured.
11756
12748
  */
@@ -11763,6 +12755,10 @@ export interface ModelApplyStartupOverlayRequest {
11763
12755
  * Context tier selected by repository settings, when configured.
11764
12756
  */
11765
12757
  repoContextTier?: string;
12758
+ /**
12759
+ * Auto routing preference selected by repository settings, when configured. Applied only when the overlay selects the Auto model; beside a concrete model it stays dormant.
12760
+ */
12761
+ repoAutoTier?: string;
11766
12762
  /**
11767
12763
  * Model explicitly selected by the CLI, when provided.
11768
12764
  */
@@ -11890,6 +12886,44 @@ export interface ModelPickerSettingsContext {
11890
12886
  */
11891
12887
  environment: {};
11892
12888
  }
12889
+ /**
12890
+ * Host-supplied exact model selection IDs to allow for this running session. CAPI IDs are intersected with repository `.github/allowed_models.txt` policy; provider-qualified IDs remain exempt from repository-only policy but are restricted by this host list. Omit or pass null to clear the host restriction; an explicit empty or disjoint list is rejected. Validation and pre-selection fallback failures preserve the previous restriction. Failures after a fallback selection commits retain the new restriction and selected model; callers should inspect current session state after such an error.
12891
+ *
12892
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
12893
+ * via the `definition` "ModelSetAllowedModelsRequest".
12894
+ */
12895
+ /** @experimental */
12896
+ export interface ModelSetAllowedModelsRequest {
12897
+ /**
12898
+ * Exact model IDs to permit, or null to clear the host restriction.
12899
+ */
12900
+ allowedModels?: string[] | null;
12901
+ }
12902
+ /**
12903
+ * The applied host allowlist and effective session model policy after intersection.
12904
+ *
12905
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
12906
+ * via the `definition` "ModelSetAllowedModelsResult".
12907
+ */
12908
+ /** @experimental */
12909
+ export interface ModelSetAllowedModelsResult {
12910
+ /**
12911
+ * Normalized host allowlist. Omitted when the host restriction was cleared, or when a relay client does not return the host policy.
12912
+ */
12913
+ allowedModels?: string[];
12914
+ /**
12915
+ * Effective exact IDs or repository policy patterns after applying the host restriction. Omitted by relay clients that do not return the host policy.
12916
+ */
12917
+ effectiveAllowedModels?: string[];
12918
+ /**
12919
+ * Effective deterministic fallback model, when the policy defines one.
12920
+ */
12921
+ fallbackModel?: string;
12922
+ /**
12923
+ * Selected session model after reconciling a now-disallowed concrete selection.
12924
+ */
12925
+ modelId?: string;
12926
+ }
11893
12927
  /**
11894
12928
  * Reasoning effort level to apply to the currently selected model.
11895
12929
  *
@@ -11927,6 +12961,43 @@ export interface ModelsListRequest {
11927
12961
  */
11928
12962
  gitHubToken?: string;
11929
12963
  }
12964
+ /**
12965
+ * An Auto preference request for the session. This updates Auto configuration only; it does not change the selected model to `auto`.
12966
+ *
12967
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
12968
+ * via the `definition` "ModelSwitchAutoTierRequest".
12969
+ */
12970
+ /** @experimental */
12971
+ export interface ModelSwitchAutoTierRequest {
12972
+ /**
12973
+ * 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.
12974
+ */
12975
+ autoTier: AutoTier | null;
12976
+ source?: ModelChangeSource;
12977
+ }
12978
+ /**
12979
+ * Immediate acknowledgement and Auto preference snapshot after a switch request. This result never implies that a pending preference committed.
12980
+ *
12981
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
12982
+ * via the `definition` "ModelSwitchAutoTierResult".
12983
+ */
12984
+ /** @experimental */
12985
+ export interface ModelSwitchAutoTierResult {
12986
+ status: ModelSwitchAutoTierStatus;
12987
+ effectiveAutoTier?: AutoTier;
12988
+ /**
12989
+ * Latest unclaimed Auto preference waiting for a future user turn.
12990
+ */
12991
+ pendingAutoTier?: AutoTier | null;
12992
+ /**
12993
+ * Auto preference currently claimed by an in-progress activation. Null means the activation is returning to provider-default routing.
12994
+ */
12995
+ activatingAutoTier?: AutoTier | null;
12996
+ /**
12997
+ * Earlier unclaimed preference replaced by this request. This can be present with either status, including when selecting the effective preference cancels pending work.
12998
+ */
12999
+ supersededAutoTier?: AutoTier | null;
13000
+ }
11930
13001
  /** @experimental */
11931
13002
  export interface ModelSwitchConfirmation {
11932
13003
  /**
@@ -11954,6 +13025,10 @@ export interface ModelSwitchToRequest {
11954
13025
  * 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
13026
  */
11956
13027
  modelId: string;
13028
+ /**
13029
+ * 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`.
13030
+ */
13031
+ autoTier?: AutoTier | null;
11957
13032
  /**
11958
13033
  * 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
13034
  */
@@ -12026,6 +13101,7 @@ export interface ModelSwitchToResult {
12026
13101
  * Deprecation warnings associated with the selected model or options.
12027
13102
  */
12028
13103
  deprecationWarnings?: string[];
13104
+ modelState?: CurrentModel;
12029
13105
  }
12030
13106
  /**
12031
13107
  * Agent interaction mode to apply to the session.
@@ -12036,6 +13112,7 @@ export interface ModelSwitchToResult {
12036
13112
  /** @experimental */
12037
13113
  export interface ModeSetRequest {
12038
13114
  mode: SessionMode;
13115
+ expectedMode?: SessionMode;
12039
13116
  /**
12040
13117
  * Session whose plan-mode base state should be inherited.
12041
13118
  */
@@ -12090,6 +13167,10 @@ export interface ModeSetResult {
12090
13167
  * Whether applying the mode changed the active model.
12091
13168
  */
12092
13169
  modelChanged: boolean;
13170
+ /**
13171
+ * Whether the requested mode was applied to the session. False only when an 'expectedMode' precondition did not hold, in which case any model change reported alongside it was still applied.
13172
+ */
13173
+ modeApplied?: boolean;
12093
13174
  confirmation?: ModelSwitchConfirmation;
12094
13175
  /**
12095
13176
  * User-facing warning produced while applying the mode change.
@@ -13962,6 +15043,7 @@ export interface PluginInstallResult {
13962
15043
  * Number of skills discovered and installed from the plugin
13963
15044
  */
13964
15045
  skillsInstalled: number;
15046
+ stagingMode?: PluginInstallStagingMode;
13965
15047
  /**
13966
15048
  * Optional post-install message provided by the plugin (e.g. setup instructions)
13967
15049
  */
@@ -14013,7 +15095,7 @@ export interface PluginsBuiltinSetRequest {
14013
15095
  paths: string[];
14014
15096
  }
14015
15097
  /**
14016
- * Plugin names (or specs) to disable.
15098
+ * Plugin names (or specs) to disable, plus the optional working directory the repository-controlled guard is evaluated against.
14017
15099
  *
14018
15100
  * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
14019
15101
  * via the `definition` "PluginsDisableRequest".
@@ -14024,9 +15106,13 @@ export interface PluginsDisableRequest {
14024
15106
  * Plugin names or "plugin@marketplace" specs to disable. Unknown names are ignored. Non-marketplace direct installs cannot be disabled via this API; uninstall them instead. Plugin-owned MCP servers are stopped in active sessions immediately; other plugin contributions remain available until each session reloads plugins.
14025
15107
  */
14026
15108
  names: string[];
15109
+ /**
15110
+ * Working directory whose repository `enabledPlugins` overlay decides whether this mutation is repository-controlled. Hosts that serve sessions across several repositories (the SDK server) should pass the session's directory; otherwise the guard is evaluated against the server process's own working directory, which may belong to a different repository. Defaults to the server's current working directory.
15111
+ */
15112
+ workingDirectory?: string;
14027
15113
  }
14028
15114
  /**
14029
- * Plugin names (or specs) to enable.
15115
+ * Plugin names (or specs) to enable, plus the optional working directory the repository-controlled guard is evaluated against.
14030
15116
  *
14031
15117
  * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
14032
15118
  * via the `definition` "PluginsEnableRequest".
@@ -14037,6 +15123,10 @@ export interface PluginsEnableRequest {
14037
15123
  * Plugin names or "plugin@marketplace" specs to enable. Unknown names are ignored. Non-marketplace direct installs are always enabled and cannot be toggled via this API.
14038
15124
  */
14039
15125
  names: string[];
15126
+ /**
15127
+ * Working directory whose repository `enabledPlugins` overlay decides whether this mutation is repository-controlled. Hosts that serve sessions across several repositories (the SDK server) should pass the session's directory; otherwise the guard is evaluated against the server process's own working directory, which may belong to a different repository. Defaults to the server's current working directory.
15128
+ */
15129
+ workingDirectory?: string;
14040
15130
  }
14041
15131
  /**
14042
15132
  * Plugin source and optional working directory for relative-path resolution.
@@ -15189,6 +16279,10 @@ export interface QueuePendingItems {
15189
16279
  * Stable opaque id for the canonical queued item. Batch rows share one id.
15190
16280
  */
15191
16281
  id: string;
16282
+ /**
16283
+ * Stable identity of the queued user message. Present for message rows and absent for slash commands and model changes.
16284
+ */
16285
+ messageId?: string;
15192
16286
  kind: QueuePendingItemsKind;
15193
16287
  /**
15194
16288
  * Human-readable text to display for this queue entry in the UI
@@ -15746,6 +16840,18 @@ export interface SandboxConfig {
15746
16840
  * Whether to auto-add the current working directory to readwritePaths. Default: true.
15747
16841
  */
15748
16842
  addCurrentWorkingDirectory?: boolean;
16843
+ /**
16844
+ * 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).
16845
+ */
16846
+ sandboxMcpServers?: boolean;
16847
+ /**
16848
+ * 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).
16849
+ */
16850
+ sandboxLspServers?: boolean;
16851
+ /**
16852
+ * 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).
16853
+ */
16854
+ allowBypass?: boolean;
15749
16855
  auth?: SandboxConfigAuth;
15750
16856
  /**
15751
16857
  * 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 +16923,7 @@ export interface SandboxConfigUserPolicyNetwork {
15817
16923
  /** @experimental */
15818
16924
  export interface SandboxConfigUserPolicyNetworkProxy {
15819
16925
  /**
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.
16926
+ * 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
16927
  */
15822
16928
  url: string;
15823
16929
  /**
@@ -15882,6 +16988,37 @@ export interface SandboxConfigAuth {
15882
16988
  */
15883
16989
  gh?: boolean;
15884
16990
  }
16991
+ /**
16992
+ * Request to disable sandboxing for the current session while resolving an active sandbox-bypass permission prompt.
16993
+ *
16994
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
16995
+ * via the `definition` "SandboxDisableForSessionRequest".
16996
+ */
16997
+ /** @experimental */
16998
+ export interface SandboxDisableForSessionRequest {
16999
+ /**
17000
+ * Identifier of the exact pending sandbox-bypass permission request that authorized the session opt-out.
17001
+ */
17002
+ requestId: string;
17003
+ decisionContext?: PermissionDecisionContext;
17004
+ }
17005
+ /**
17006
+ * Result of attempting to disable sandboxing for the current session.
17007
+ *
17008
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
17009
+ * via the `definition` "SandboxDisableForSessionResult".
17010
+ */
17011
+ /** @experimental */
17012
+ export interface SandboxDisableForSessionResult {
17013
+ /**
17014
+ * Whether this call resolved the pending request and applied the session opt-out.
17015
+ */
17016
+ success: boolean;
17017
+ /**
17018
+ * The authoritative sandbox enabled state after the operation.
17019
+ */
17020
+ enabled: boolean;
17021
+ }
15885
17022
  /**
15886
17023
  * Managed sandbox enforcement state for a session.
15887
17024
  *
@@ -16543,7 +17680,7 @@ export interface SessionEnrichMetadataResult {
16543
17680
  sessions: LocalSessionMetadataValue[];
16544
17681
  }
16545
17682
  /**
16546
- * File path, content to append, and optional mode for the client-provided session filesystem.
17683
+ * File path, content to append, and optional mode for the client-provided session filesystem. Implementations create parent directories as needed.
16547
17684
  *
16548
17685
  * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
16549
17686
  * via the `definition` "SessionFsAppendFileRequest".
@@ -17437,6 +18574,10 @@ export interface SessionOpenOptions {
17437
18574
  * Identifier of the client driving the session.
17438
18575
  */
17439
18576
  clientName?: string;
18577
+ /**
18578
+ * OAuth Client ID Metadata Document URL used by this host for MCP authorization.
18579
+ */
18580
+ authClientIdMetadataUrl?: string;
17440
18581
  /**
17441
18582
  * Structured client kind used for runtime behavior gates.
17442
18583
  */
@@ -17560,6 +18701,10 @@ export interface SessionOpenOptions {
17560
18701
  * Additional directories to search for skills.
17561
18702
  */
17562
18703
  skillDirectories?: string[];
18704
+ /**
18705
+ * Whether skill loading is enabled. When omitted, an SDK skill provider enables skills by default.
18706
+ */
18707
+ enableSkills?: boolean;
17563
18708
  /**
17564
18709
  * 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
18710
  */
@@ -17580,6 +18725,10 @@ export interface SessionOpenOptions {
17580
18725
  * Whether to skip custom instruction sources.
17581
18726
  */
17582
18727
  skipCustomInstructions?: boolean;
18728
+ /**
18729
+ * Whether to invalidate cached custom-instruction discovery before constructing the session. Use when instruction files may have changed earlier in the same runtime process.
18730
+ */
18731
+ refreshCustomInstructions?: boolean;
17583
18732
  /**
17584
18733
  * Instruction source IDs disabled for this session.
17585
18734
  */
@@ -18494,9 +19643,30 @@ export interface SessionsGetBoardEntryCountRequest {
18494
19643
  /** @experimental */
18495
19644
  export interface SessionsGetBoardEntryCountResult {
18496
19645
  /**
18497
- * Board entry count, when available.
19646
+ * Board entry count, when available.
19647
+ */
19648
+ count?: number;
19649
+ }
19650
+ /**
19651
+ * Bounded batch request for client-owned metadata from persisted local sessions.
19652
+ *
19653
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
19654
+ * via the `definition` "SessionsGetClientMetadataRequest".
19655
+ */
19656
+ /** @experimental */
19657
+ export interface SessionsGetClientMetadataRequest {
19658
+ /**
19659
+ * Session IDs to inspect. Results preserve this order.
19660
+ *
19661
+ * @maxItems 1000
19662
+ */
19663
+ sessionIds: string[];
19664
+ /**
19665
+ * Case-sensitive keys to project from each valid bag. Each key must be non-empty, at most 256 UTF-8 bytes, and outside the reserved `copilot/` and `github/` namespaces. Omit to return every entry.
19666
+ *
19667
+ * @maxItems 128
18498
19668
  */
18499
- count?: number;
19669
+ keys?: string[];
18500
19670
  }
18501
19671
  /**
18502
19672
  * Session ID whose event-log file path to compute.
@@ -18698,6 +19868,28 @@ export interface SessionsPruneOldRequest {
18698
19868
  */
18699
19869
  excludeSessionIds?: string[];
18700
19870
  }
19871
+ /**
19872
+ * Pagination options for reading an inactive or active local session's persisted event journal.
19873
+ *
19874
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
19875
+ * via the `definition` "SessionsReadPersistedEventsRequest".
19876
+ */
19877
+ /** @experimental */
19878
+ export interface SessionsReadPersistedEventsRequest {
19879
+ /**
19880
+ * Session ID whose persisted event journal should be read.
19881
+ */
19882
+ sessionId: string;
19883
+ /**
19884
+ * Opaque, process-local, single-use cursor returned by the previous persisted-event read. Omit on the first call and issue continuations sequentially; reusing the same cursor returns an expired terminal page.
19885
+ */
19886
+ cursor?: string;
19887
+ /**
19888
+ * Maximum number of events to return in this batch (1–1000, default 200). Pages may contain fewer events to keep the serialized event array within a soft 1 MiB budget including resolved binary assets; one oversized event is returned alone to guarantee progress.
19889
+ */
19890
+ max?: number;
19891
+ direction?: EventsReadDirection;
19892
+ }
18701
19893
  /**
18702
19894
  * Session ID whose in-use lock should be released.
18703
19895
  *
@@ -19065,7 +20257,7 @@ export interface SessionUpdateOptionsParams {
19065
20257
  */
19066
20258
  enableSessionStore?: boolean;
19067
20259
  /**
19068
- * Whether to enable skill directory scanning and loading. Falls back to enableConfigDiscovery when unset.
20260
+ * 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
20261
  */
19070
20262
  enableSkills?: boolean;
19071
20263
  contextTier?: OptionsUpdateContextTier;
@@ -19286,6 +20478,35 @@ export interface SkillList {
19286
20478
  */
19287
20479
  skills: Skill[];
19288
20480
  }
20481
+ /**
20482
+ * Catalog-only metadata for one SDK-provided skill. The complete SKILL.md is fetched separately and lazily.
20483
+ *
20484
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
20485
+ * via the `definition` "SkillProviderDescriptor".
20486
+ */
20487
+ /** @experimental */
20488
+ export interface SkillProviderDescriptor {
20489
+ /**
20490
+ * Invocation and display name.
20491
+ */
20492
+ name: string;
20493
+ /**
20494
+ * Description used in skill catalogs without fetching content.
20495
+ */
20496
+ description: string;
20497
+ /**
20498
+ * Whether users may invoke the skill directly. Defaults to true.
20499
+ */
20500
+ userInvocable?: boolean;
20501
+ /**
20502
+ * Whether model invocation is disabled. Defaults to false.
20503
+ */
20504
+ disableModelInvocation?: boolean;
20505
+ /**
20506
+ * Optional freeform argument hint used by slash-command catalogs.
20507
+ */
20508
+ argumentHint?: string;
20509
+ }
19289
20510
  /**
19290
20511
  * Skill names to mark as disabled in global configuration, replacing any previous list.
19291
20512
  *
@@ -19406,7 +20627,7 @@ export interface SkillsInvokedSkill {
19406
20627
  */
19407
20628
  name: string;
19408
20629
  /**
19409
- * Path to the SKILL.md file
20630
+ * Path to the SKILL.md file, or an empty string for an SDK-provided skill without a filesystem identity
19410
20631
  */
19411
20632
  path: string;
19412
20633
  /**
@@ -19417,6 +20638,10 @@ export interface SkillsInvokedSkill {
19417
20638
  * Tools that should be auto-approved when this skill is active, captured at invocation time
19418
20639
  */
19419
20640
  allowedTools?: string[];
20641
+ /**
20642
+ * Whether model invocation was disabled when this skill was invoked
20643
+ */
20644
+ disableModelInvocation?: boolean;
19420
20645
  /**
19421
20646
  * Turn number when the skill was invoked
19422
20647
  */
@@ -19469,6 +20694,7 @@ export interface SlashCommandTimelineEntry {
19469
20694
  * Optional URL associated with the timeline entry.
19470
20695
  */
19471
20696
  url?: string;
20697
+ remediation?: RemediationAction;
19472
20698
  }
19473
20699
  /**
19474
20700
  * Slash-command invocation result that submits an agent prompt, with display prompt, optional mode, optional user-facing notice, and settings-change flag.
@@ -19516,6 +20742,7 @@ export interface SlashCommandCompletedResult {
19516
20742
  * Optional user-facing message describing the completed command
19517
20743
  */
19518
20744
  message?: string;
20745
+ mode?: SessionMode;
19519
20746
  /**
19520
20747
  * True when the invocation mutated user runtime settings; consumers caching settings should refresh
19521
20748
  */
@@ -19686,7 +20913,7 @@ export interface SlashCommandSetPlanModelResult {
19686
20913
  runtimeSettingsChanged?: boolean;
19687
20914
  }
19688
20915
  /**
19689
- * Subagent model, reasoning effort, and context tier settings
20916
+ * Subagent model, reasoning effort, context tier, and auto-invocation settings
19690
20917
  *
19691
20918
  * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
19692
20919
  * via the `definition` "SubagentSettingsEntry".
@@ -19697,11 +20924,16 @@ export interface SubagentSettingsEntry {
19697
20924
  * Model override for matching subagents
19698
20925
  */
19699
20926
  model?: string;
20927
+ modelPolicy?: AgentModelPolicy;
19700
20928
  /**
19701
20929
  * Reasoning effort override for matching subagents
19702
20930
  */
19703
20931
  effortLevel?: string;
19704
20932
  contextTier?: SubagentSettingsEntryContextTier;
20933
+ /**
20934
+ * Whether this agent's runtime-defined proactive invocation prompting is enabled, if supported. Currently consumed by the built-in rubber-duck agent.
20935
+ */
20936
+ autoInvoke?: boolean;
19705
20937
  }
19706
20938
  /**
19707
20939
  * Tracked background agent task metadata, including IDs, status, timing, agent type, prompt, model, result, and latest response.
@@ -19824,6 +21056,157 @@ export interface TaskProgressLine {
19824
21056
  */
19825
21057
  timestamp: string;
19826
21058
  }
21059
+ /**
21060
+ * Tracked client-owned task metadata.
21061
+ *
21062
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
21063
+ * via the `definition` "TaskClientInfo".
21064
+ */
21065
+ /** @experimental */
21066
+ export interface TaskClientInfo {
21067
+ type: TaskClientType;
21068
+ /**
21069
+ * Canonical runtime-generated task identifier
21070
+ */
21071
+ id: string;
21072
+ /**
21073
+ * Owner-scoped registration and reclaim key
21074
+ */
21075
+ clientTaskId: string;
21076
+ /**
21077
+ * Optional task display name
21078
+ */
21079
+ displayName?: string;
21080
+ /**
21081
+ * Task description
21082
+ */
21083
+ description: string;
21084
+ status: TaskClientStatus;
21085
+ owner: TaskClientOwner;
21086
+ /**
21087
+ * ISO 8601 timestamp when the task started
21088
+ */
21089
+ startedAt: string;
21090
+ /**
21091
+ * ISO 8601 timestamp of the latest accepted lifecycle change
21092
+ */
21093
+ updatedAt: string;
21094
+ /**
21095
+ * ISO 8601 timestamp when the task reached a terminal status
21096
+ */
21097
+ completedAt?: string;
21098
+ /**
21099
+ * Accumulated active execution time in milliseconds
21100
+ */
21101
+ activeTimeMs: number;
21102
+ /**
21103
+ * ISO 8601 timestamp when the current active segment started
21104
+ */
21105
+ activeStartedAt?: string;
21106
+ /**
21107
+ * ISO 8601 timestamp when the connected owner entered idle status
21108
+ */
21109
+ idleSince?: string;
21110
+ /**
21111
+ * ISO 8601 timestamp of the most recent orphan transition
21112
+ */
21113
+ orphanedAt?: string;
21114
+ /**
21115
+ * ISO 8601 timestamp of the most recent successful reclaim
21116
+ */
21117
+ reclaimedAt?: string;
21118
+ executionMode: TaskClientExecutionMode;
21119
+ /**
21120
+ * Whether the currently bound owner can receive a cancellation request
21121
+ */
21122
+ canCancel: boolean;
21123
+ /**
21124
+ * Sequence number of the latest accepted owner update
21125
+ */
21126
+ sequence: number;
21127
+ /**
21128
+ * Opaque successful terminal result supplied by the task owner
21129
+ */
21130
+ result?: JsonValue;
21131
+ /**
21132
+ * Human-readable terminal failure message
21133
+ */
21134
+ error?: string;
21135
+ /**
21136
+ * Optional owner-supplied terminal failure code
21137
+ */
21138
+ errorCode?: string;
21139
+ /**
21140
+ * Human-readable reason for terminal cancellation
21141
+ */
21142
+ cancellationReason?: string;
21143
+ }
21144
+ /**
21145
+ * Public owner attribution for a client-owned task. Identifiers are opaque and never authorize requests.
21146
+ *
21147
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
21148
+ * via the `definition` "TaskClientOwner".
21149
+ */
21150
+ /** @experimental */
21151
+ export interface TaskClientOwner {
21152
+ /**
21153
+ * Opaque session-scoped participant identity
21154
+ */
21155
+ participantId: string;
21156
+ /**
21157
+ * Opaque identity of the currently or most recently bound session join
21158
+ */
21159
+ joinId: string;
21160
+ kind: TaskClientOwnerKind;
21161
+ /**
21162
+ * Display-only owner name
21163
+ */
21164
+ displayName?: string;
21165
+ /**
21166
+ * Display-only owner source
21167
+ */
21168
+ source?: string;
21169
+ presence: TaskClientOwnerPresence;
21170
+ /**
21171
+ * ISO 8601 timestamp when the bound join disconnected
21172
+ */
21173
+ disconnectedAt?: string;
21174
+ }
21175
+ /**
21176
+ * Generic progress for a client-owned task.
21177
+ *
21178
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
21179
+ * via the `definition` "TaskClientProgress".
21180
+ */
21181
+ /** @experimental */
21182
+ export interface TaskClientProgress {
21183
+ type: TaskClientType;
21184
+ status: TaskClientStatus;
21185
+ /**
21186
+ * Sequence number of the latest accepted owner update
21187
+ */
21188
+ sequence: number;
21189
+ /**
21190
+ * ISO 8601 timestamp of the latest accepted lifecycle change
21191
+ */
21192
+ updatedAt: string;
21193
+ /**
21194
+ * Current owner-defined progress phase
21195
+ */
21196
+ phase?: string;
21197
+ /**
21198
+ * Current completion percentage from zero through one hundred
21199
+ */
21200
+ percentage?: number;
21201
+ /**
21202
+ * Most recent nonempty progress message
21203
+ */
21204
+ lastMessage?: string;
21205
+ /**
21206
+ * Recent server-timestamped progress messages
21207
+ */
21208
+ recentActivity: TaskProgressLine[];
21209
+ }
19827
21210
  /** @experimental */
19828
21211
  export interface TaskCompletionDecision {
19829
21212
  outcome: TaskCompletionOutcome;
@@ -20041,6 +21424,54 @@ export interface TasksPromoteToBackgroundResult {
20041
21424
  /** @experimental */
20042
21425
  export interface TasksRefreshResult {
20043
21426
  }
21427
+ /**
21428
+ * Registers or reclaims a client-owned task.
21429
+ *
21430
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
21431
+ * via the `definition` "TasksRegisterRequest".
21432
+ */
21433
+ /** @experimental */
21434
+ export interface TasksRegisterRequest {
21435
+ type: TaskClientType;
21436
+ /**
21437
+ * Owner-scoped idempotency key used for registration and reclaim
21438
+ */
21439
+ clientTaskId: string;
21440
+ /**
21441
+ * Human-readable description of the external work
21442
+ */
21443
+ description: string;
21444
+ /**
21445
+ * Optional short display name for the external work
21446
+ */
21447
+ displayName?: string;
21448
+ /**
21449
+ * Whether the owner supports runtime cancellation requests
21450
+ */
21451
+ cancellable: boolean;
21452
+ /**
21453
+ * Expected current sequence for idempotent registration or orphan reclaim
21454
+ */
21455
+ expectedSequence?: number;
21456
+ }
21457
+ /**
21458
+ * Result of registering or reclaiming a client-owned task.
21459
+ *
21460
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
21461
+ * via the `definition` "TasksRegisterResult".
21462
+ */
21463
+ /** @experimental */
21464
+ export interface TasksRegisterResult {
21465
+ task: TaskClientInfo;
21466
+ /**
21467
+ * True only when this invocation created a new task
21468
+ */
21469
+ created: boolean;
21470
+ /**
21471
+ * True only when this invocation reclaimed an orphaned task
21472
+ */
21473
+ reclaimed: boolean;
21474
+ }
20044
21475
  /**
20045
21476
  * Identifier of the completed or cancelled task to remove from tracking.
20046
21477
  *
@@ -20147,6 +21578,42 @@ export interface TasksStartAgentResult {
20147
21578
  */
20148
21579
  agentId: string;
20149
21580
  }
21581
+ /**
21582
+ * Updates a client-owned task.
21583
+ *
21584
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
21585
+ * via the `definition` "TasksUpdateRequest".
21586
+ */
21587
+ /** @experimental */
21588
+ export interface TasksUpdateRequest {
21589
+ /**
21590
+ * Canonical runtime-generated task identifier
21591
+ */
21592
+ id: string;
21593
+ /**
21594
+ * Owner update sequence to apply
21595
+ */
21596
+ sequence: number;
21597
+ update: TaskClientUpdate;
21598
+ }
21599
+ /**
21600
+ * Result of publishing a client-owned task update.
21601
+ *
21602
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
21603
+ * via the `definition` "TasksUpdateResult".
21604
+ */
21605
+ /** @experimental */
21606
+ export interface TasksUpdateResult {
21607
+ task: TaskClientInfo;
21608
+ /**
21609
+ * Whether this invocation changed task state
21610
+ */
21611
+ applied: boolean;
21612
+ /**
21613
+ * Whether this invocation repeated the latest accepted update
21614
+ */
21615
+ duplicate: boolean;
21616
+ }
20150
21617
  /**
20151
21618
  * 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
21619
  *
@@ -21902,6 +23369,10 @@ export interface WorkspacesWriteAutopilotObjectiveResult {
21902
23369
  operation: string;
21903
23370
  }
21904
23371
  /** @experimental */
23372
+ export interface SessionFactoryPauseAtCheckpointResult {
23373
+ action: FactoryPauseCheckpointAction;
23374
+ }
23375
+ /** @experimental */
21905
23376
  export interface SessionModelListRequest {
21906
23377
  /**
21907
23378
  * If true, bypasses the per-session model list cache and re-fetches from CAPI.
@@ -21999,6 +23470,19 @@ export interface SessionLimitPredictionPredictRequest {
21999
23470
  modelId?: string;
22000
23471
  clientType?: SessionLimitPredictionClientType;
22001
23472
  }
23473
+ /**
23474
+ * Identifies the target session.
23475
+ *
23476
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
23477
+ * via the `definition` "SkillProviderListRequest".
23478
+ */
23479
+ /** @experimental */
23480
+ export interface SkillProviderListRequest {
23481
+ /**
23482
+ * Target session identifier
23483
+ */
23484
+ sessionId: string;
23485
+ }
22002
23486
  /**
22003
23487
  * Identifies the target session.
22004
23488
  *
@@ -22025,6 +23509,17 @@ export declare function createServerRpc(connection: MessageConnection): {
22025
23509
  */
22026
23510
  ping: (params: PingRequest) => Promise<PingResult>;
22027
23511
  /** @experimental */
23512
+ hooks: {
23513
+ /**
23514
+ * Discovers hook actions enabled under server-side discovery settings from user, repository, plugin, and managed-policy sources.
23515
+ *
23516
+ * @param params Optional project paths and host-exclusion behavior for server-scoped hook discovery.
23517
+ *
23518
+ * @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.
23519
+ */
23520
+ discover: (params: HooksDiscoverRequest) => Promise<HooksDiscoverResult>;
23521
+ };
23522
+ /** @experimental */
22028
23523
  models: {
22029
23524
  /**
22030
23525
  * Lists Copilot models available to the authenticated user.
@@ -22241,13 +23736,13 @@ export declare function createServerRpc(connection: MessageConnection): {
22241
23736
  /**
22242
23737
  * Enables installed plugins for new sessions.
22243
23738
  *
22244
- * @param params Plugin names (or specs) to enable.
23739
+ * @param params Plugin names (or specs) to enable, plus the optional working directory the repository-controlled guard is evaluated against.
22245
23740
  */
22246
23741
  enable: (params: PluginsEnableRequest) => Promise<void>;
22247
23742
  /**
22248
23743
  * Disables installed plugins for new sessions.
22249
23744
  *
22250
- * @param params Plugin names (or specs) to disable.
23745
+ * @param params Plugin names (or specs) to disable, plus the optional working directory the repository-controlled guard is evaluated against.
22251
23746
  */
22252
23747
  disable: (params: PluginsDisableRequest) => Promise<void>;
22253
23748
  /** @experimental */
@@ -22414,6 +23909,10 @@ export declare function createServerRpc(connection: MessageConnection): {
22414
23909
  * @returns Validated device-managed settings discovered before a session exists.
22415
23910
  */
22416
23911
  read: () => Promise<ManagedSettingsReadResult>;
23912
+ /**
23913
+ * 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.
23914
+ */
23915
+ clearCache: () => Promise<void>;
22417
23916
  };
22418
23917
  /** @experimental */
22419
23918
  runtime: {
@@ -22492,6 +23991,22 @@ export declare function createServerRpc(connection: MessageConnection): {
22492
23991
  * @returns Sessions matching the filter, ordered most-recently-modified first.
22493
23992
  */
22494
23993
  list: (params: SessionsListRequest) => Promise<SessionList>;
23994
+ /**
23995
+ * Reads client-owned metadata for multiple persisted local sessions without opening them. Results preserve request order and report missing, corrupt, unsupported, or temporarily unavailable sessions independently.
23996
+ *
23997
+ * @param params Bounded batch request for client-owned metadata from persisted local sessions.
23998
+ *
23999
+ * @returns Ordered client metadata outcomes for the requested local sessions.
24000
+ */
24001
+ getClientMetadata: (params: SessionsGetClientMetadataRequest) => Promise<SessionsGetClientMetadataResult>;
24002
+ /**
24003
+ * Reads a page of durable events directly from a local session's persisted journal without creating, resuming, or activating the session. The first read pins the currently opened journal generation and its byte-length boundary; opaque cursor continuations remain on that generation across runtime-owned compaction, truncation, and rewrite operations, which replace the live path atomically, and events appended after the boundary are excluded. For cold hydration, await the first successful page before activation and establish lossless live-event buffering before resume; merge subsequent live events by ID, preserving persisted order and letting live payloads win. Continuations are process-local, single-use capabilities bound to the originating session and storage context and must be paged sequentially; concurrent or repeated use of the same cursor expires that duplicate read rather than reading the generation twice. A complete snapshot has cursorStatus 'ok' and hasMore false. Snapshots expire after five idle minutes, with at most eight retained per process and idle-only eviction under pressure; completion and cancelled-worker exit release their handles. No transcript copy is created, but retained handles may keep replaced files' disk blocks alive until release. Pages have a soft 1 MiB serialized event-array budget including resolved binary assets; one oversized event is returned alone to guarantee progress. Working memory also includes a record/lookahead and asset resolution; resolving the first binary reference may scan the full pinned generation to build a bounded offset index. If the snapshot expires, is evicted, is cancelled before a continuation is established, or becomes unreadable after an observable unsupported in-place shortening, the continuation returns cursorStatus 'expired' with an empty terminal page and never falls back to a different generation. A missing or initially unreadable journal is an RPC error. Persisted history excludes ephemeral events and may omit payloads that are reconstructed only for an active session; use the active session event stream for post-resume live events.
24004
+ *
24005
+ * @param params Pagination options for reading an inactive or active local session's persisted event journal.
24006
+ *
24007
+ * @returns Batch of session events returned by a read, with cursor and continuation metadata.
24008
+ */
24009
+ readPersistedEvents: (params: SessionsReadPersistedEventsRequest) => Promise<EventsReadResult>;
22495
24010
  /**
22496
24011
  * Finds the local session bound to a GitHub task ID, if any.
22497
24012
  *
@@ -22689,6 +24204,14 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
22689
24204
  * @returns Managed sandbox enforcement state for a session.
22690
24205
  */
22691
24206
  getEnforcementStatus: () => Promise<SandboxEnforcementStatus>;
24207
+ /**
24208
+ * Disables sandboxing for the remainder of the current session and approves the referenced pending sandbox-bypass permission request. The request is rejected unless the exact request is still pending and the effective sandbox policy permits bypass.
24209
+ *
24210
+ * @param params Request to disable sandboxing for the current session while resolving an active sandbox-bypass permission prompt.
24211
+ *
24212
+ * @returns Result of attempting to disable sandboxing for the current session.
24213
+ */
24214
+ disableForSession: (params: SandboxDisableForSessionRequest) => Promise<SandboxDisableForSessionResult>;
22692
24215
  };
22693
24216
  /**
22694
24217
  * Aborts the current agent turn.
@@ -22852,6 +24375,14 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
22852
24375
  * @returns Complete current or terminal factory run envelope.
22853
24376
  */
22854
24377
  cancel: (params: FactoryCancelRequest) => Promise<FactoryRunResult>;
24378
+ /**
24379
+ * Pauses a running factory and returns its settled run envelope.
24380
+ *
24381
+ * @param params Parameters for pausing a running factory.
24382
+ *
24383
+ * @returns Complete current or terminal factory run envelope.
24384
+ */
24385
+ pause: (params: FactoryPauseRequest) => Promise<FactoryRunResult>;
22855
24386
  /**
22856
24387
  * Records a batch of ordered factory progress lines.
22857
24388
  *
@@ -22891,9 +24422,9 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
22891
24422
  /** @experimental */
22892
24423
  model: {
22893
24424
  /**
22894
- * Gets the currently selected model for the session.
24425
+ * 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
24426
  *
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.
24427
+ * @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
24428
  */
22898
24429
  getCurrent: () => Promise<CurrentModel>;
22899
24430
  /**
@@ -22904,6 +24435,22 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
22904
24435
  * @returns The model identifier active on the session after the switch.
22905
24436
  */
22906
24437
  switchTo: (params: ModelSwitchToRequest) => Promise<ModelSwitchToResult>;
24438
+ /**
24439
+ * 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`.
24440
+ *
24441
+ * @param params An Auto preference request for the session. This updates Auto configuration only; it does not change the selected model to `auto`.
24442
+ *
24443
+ * @returns Immediate acknowledgement and Auto preference snapshot after a switch request. This result never implies that a pending preference committed.
24444
+ */
24445
+ switchAutoTier: (params: ModelSwitchAutoTierRequest) => Promise<ModelSwitchAutoTierResult>;
24446
+ /**
24447
+ * Replaces or clears the host-supplied model allowlist for a running session.
24448
+ *
24449
+ * @param params Host-supplied exact model selection IDs to allow for this running session. CAPI IDs are intersected with repository `.github/allowed_models.txt` policy; provider-qualified IDs remain exempt from repository-only policy but are restricted by this host list. Omit or pass null to clear the host restriction; an explicit empty or disjoint list is rejected. Validation and pre-selection fallback failures preserve the previous restriction. Failures after a fallback selection commits retain the new restriction and selected model; callers should inspect current session state after such an error.
24450
+ *
24451
+ * @returns The applied host allowlist and effective session model policy after intersection.
24452
+ */
24453
+ setAllowedModels: (params: ModelSetAllowedModelsRequest) => Promise<ModelSetAllowedModelsResult>;
22907
24454
  /**
22908
24455
  * Updates the session's reasoning effort without changing the selected model.
22909
24456
  *
@@ -23110,6 +24657,15 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
23110
24657
  diff: (params: WorkspacesDiffRequest) => Promise<WorkspaceDiffResult>;
23111
24658
  };
23112
24659
  /** @experimental */
24660
+ autopilotObjective: {
24661
+ /**
24662
+ * Reads the current canonical autopilot objective state for this session.
24663
+ *
24664
+ * @returns Canonical runtime state for the session's current autopilot objective.
24665
+ */
24666
+ getState: () => Promise<AutopilotObjectiveGetStateResult>;
24667
+ };
24668
+ /** @experimental */
23113
24669
  completions: {
23114
24670
  /**
23115
24671
  * 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).
@@ -23140,7 +24696,7 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
23140
24696
  /**
23141
24697
  * Starts fleet mode by submitting the fleet orchestration prompt to the session.
23142
24698
  *
23143
- * @param params Optional user prompt to combine with the fleet orchestration instructions.
24699
+ * @param params Parameters for starting fleet orchestration: an optional user prompt combined with the fleet instructions, plus the send options forwarded to the resulting turn.
23144
24700
  *
23145
24701
  * @returns Indicates whether fleet mode was successfully activated.
23146
24702
  */
@@ -23203,6 +24759,22 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
23203
24759
  * @returns Background tasks currently tracked by the session.
23204
24760
  */
23205
24761
  list: () => Promise<TaskList>;
24762
+ /**
24763
+ * Registers a client-owned task, or reclaims an orphaned task belonging to the same extension principal.
24764
+ *
24765
+ * @param params Registers or reclaims a client-owned task.
24766
+ *
24767
+ * @returns Result of registering or reclaiming a client-owned task.
24768
+ */
24769
+ register: (params: TasksRegisterRequest) => Promise<TasksRegisterResult>;
24770
+ /**
24771
+ * Publishes generic progress or a terminal outcome for a client-owned task.
24772
+ *
24773
+ * @param params Updates a client-owned task.
24774
+ *
24775
+ * @returns Result of publishing a client-owned task update.
24776
+ */
24777
+ update: (params: TasksUpdateRequest) => Promise<TasksUpdateResult>;
23206
24778
  /**
23207
24779
  * Refreshes metadata for any detached background shells the runtime knows about.
23208
24780
  *
@@ -23666,7 +25238,7 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
23666
25238
  */
23667
25239
  set: (params: ToolsSetRequest) => Promise<ToolsSetResult>;
23668
25240
  /**
23669
- * Updates the current session's live subagent settings after user settings change. The persisted user settings remain the source of truth for future sessions.
25241
+ * Sets the current session's live subagent settings override, which takes precedence over persisted user settings until cleared. Persisted user settings remain the source of truth for future sessions.
23670
25242
  *
23671
25243
  * @param params Subagent settings to apply to the current session
23672
25244
  *
@@ -24016,6 +25588,20 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
24016
25588
  * @returns Point-in-time snapshot of slow-changing session identifier and state fields
24017
25589
  */
24018
25590
  snapshot: () => Promise<SessionMetadataSnapshot>;
25591
+ /**
25592
+ * Returns the client-owned string metadata persisted with this local session. The metadata is not included in model context, events, telemetry, snapshots, or remote exports.
25593
+ *
25594
+ * @returns Client-owned, case-sensitive string metadata persisted with a local session. Clients should namespace keys by owner. Keys must be non-empty and at most 256 UTF-8 bytes; keys under `copilot/` and `github/` are reserved. Values may contain at most 16 KiB of UTF-8 data. A bag may contain at most 128 entries and its serialized sidecar may contain at most 64 KiB. The runtime stores but never interprets these values.
25595
+ */
25596
+ getClientMetadata: () => Promise<ClientMetadata>;
25597
+ /**
25598
+ * Atomically patches the client-owned string metadata persisted with this local session and returns the committed bag.
25599
+ *
25600
+ * @param params Atomic patch for client-owned session metadata. Operations apply in clear, remove, then set order. The resulting bag must satisfy the ClientMetadata entry and serialized-size limits. Local storage coordinates concurrent runtime processes; custom SessionFs providers must serialize writers that access the same session from multiple processes.
25601
+ *
25602
+ * @returns Client-owned, case-sensitive string metadata persisted with a local session. Clients should namespace keys by owner. Keys must be non-empty and at most 256 UTF-8 bytes; keys under `copilot/` and `github/` are reserved. Values may contain at most 16 KiB of UTF-8 data. A bag may contain at most 128 entries and its serialized sidecar may contain at most 64 KiB. The runtime stores but never interprets these values.
25603
+ */
25604
+ updateClientMetadata: (params: MetadataUpdateClientMetadataRequest) => Promise<ClientMetadata>;
24019
25605
  /**
24020
25606
  * Reports whether the local session is currently processing user/agent messages.
24021
25607
  *
@@ -24404,6 +25990,18 @@ export interface FactoryHandler {
24404
25990
  */
24405
25991
  abort(params: FactoryAbortRequest): Promise<FactoryAckResult>;
24406
25992
  }
25993
+ /** Handler for `tasks` client session API methods. */
25994
+ /** @experimental */
25995
+ export interface TasksHandler {
25996
+ /**
25997
+ * Asks the client currently bound to a client-owned session task to confirm that its external work stopped.
25998
+ *
25999
+ * @param params Runtime-to-owner cancellation request for a client-owned task.
26000
+ *
26001
+ * @returns Whether the client authoritatively confirmed its external work stopped.
26002
+ */
26003
+ cancel(params: ClientTaskCancelRequest): Promise<ClientTaskCancelResult>;
26004
+ }
24407
26005
  /** Handler for `sessionFs` client session API methods. */
24408
26006
  /** @experimental */
24409
26007
  export interface SessionFsHandler {
@@ -24424,9 +26022,9 @@ export interface SessionFsHandler {
24424
26022
  */
24425
26023
  writeFile(params: SessionFsWriteFileRequest): Promise<SessionFsError | undefined>;
24426
26024
  /**
24427
- * Appends content to a file in the client-provided session filesystem.
26025
+ * Appends content to a file in the client-provided session filesystem, creating parent directories as needed.
24428
26026
  *
24429
- * @param params File path, content to append, and optional mode for the client-provided session filesystem.
26027
+ * @param params File path, content to append, and optional mode for the client-provided session filesystem. Implementations create parent directories as needed.
24430
26028
  *
24431
26029
  * @returns Describes a filesystem error.
24432
26030
  */
@@ -24542,6 +26140,7 @@ export interface CanvasHandler {
24542
26140
  export interface ClientSessionApiHandlers {
24543
26141
  providerToken?: ProviderTokenHandler;
24544
26142
  factory?: FactoryHandler;
26143
+ tasks?: TasksHandler;
24545
26144
  sessionFs?: SessionFsHandler;
24546
26145
  canvas?: CanvasHandler;
24547
26146
  }