@github/copilot-sdk 1.0.13-preview.0 → 1.0.13-preview.2

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.
@@ -15,7 +15,7 @@ export type JsonValue = null | boolean | number | string | JsonValue[] | {
15
15
  * via the `definition` "AuthInfo".
16
16
  */
17
17
  /** @experimental */
18
- export type AuthInfo = HMACAuthInfo | EnvAuthInfo | TokenAuthInfo | CopilotApiTokenAuthInfo | UserAuthInfo | GhCliAuthInfo | ApiKeyAuthInfo;
18
+ export type AuthInfo = HMACAuthInfo | EnvAuthInfo | TokenAuthInfo | TokenProviderAuthInfo | CopilotApiTokenAuthInfo | UserAuthInfo | GhCliAuthInfo | ApiKeyAuthInfo;
19
19
  /**
20
20
  * User to log out
21
21
  *
@@ -241,6 +241,8 @@ export type AuthInfoType =
241
241
  | "api-key"
242
242
  /** Authentication from a GitHub token. */
243
243
  | "token"
244
+ /** Authentication from an SDK GitHub token callback. */
245
+ | "token-provider"
244
246
  /** Authentication from a Copilot API token. */
245
247
  | "copilot-api-token";
246
248
  /**
@@ -796,8 +798,6 @@ export type DebugCollectLogsResultKind =
796
798
  "archive"
797
799
  /** A directory containing redacted files was written. */
798
800
  | "directory";
799
- /** @experimental */
800
- export type DisableBypassPermissionsMode = "disable";
801
801
  /**
802
802
  * Persisted extension discovery source
803
803
  *
@@ -1128,6 +1128,48 @@ export type FactoryPhaseStatus =
1128
1128
  export type FilterMapping = {
1129
1129
  [k: string]: ContentFilterMode;
1130
1130
  } | ContentFilterMode;
1131
+ /**
1132
+ * Why the runtime is requesting a GitHub credential.
1133
+ *
1134
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
1135
+ * via the `definition` "GitHubTokenAcquireReason".
1136
+ */
1137
+ /** @experimental */
1138
+ export type GitHubTokenAcquireReason =
1139
+ /** The runtime is acquiring the registration's first credential. */
1140
+ "initial"
1141
+ /** The runtime is replacing a credential that is approaching expiry. */
1142
+ | "refresh";
1143
+ /**
1144
+ * SDK host response to a GitHub credential request.
1145
+ *
1146
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
1147
+ * via the `definition` "GitHubTokenAcquireResult".
1148
+ */
1149
+ /** @experimental */
1150
+ export type GitHubTokenAcquireResult = {
1151
+ /**
1152
+ * GitHub access token acquired by the SDK host.
1153
+ */
1154
+ accessToken: string;
1155
+ /**
1156
+ * OAuth token type. Defaults to bearer when omitted.
1157
+ */
1158
+ tokenType?: string;
1159
+ /**
1160
+ * Remaining token lifetime in seconds when callback execution completes. It must exceed the one-hour preflight refresh threshold.
1161
+ */
1162
+ expiresIn: number;
1163
+ /**
1164
+ * GitHub credential response variant discriminator.
1165
+ */
1166
+ kind: "token";
1167
+ } | {
1168
+ /**
1169
+ * GitHub credential response variant discriminator.
1170
+ */
1171
+ kind: "cancelled";
1172
+ };
1131
1173
  /**
1132
1174
  * Optional compaction parameters.
1133
1175
  *
@@ -1736,7 +1778,7 @@ export type McpOauthPendingRequestResponse = {
1736
1778
  */
1737
1779
  accessToken: string;
1738
1780
  /**
1739
- * OAuth token type. Defaults to Bearer when omitted.
1781
+ * OAuth token type. Defaults to bearer when omitted.
1740
1782
  */
1741
1783
  tokenType?: string;
1742
1784
  /**
@@ -2331,8 +2373,24 @@ export type PermissionDecisionSurface =
2331
2373
  | "prompt_mode"
2332
2374
  /** The Copilot App client. */
2333
2375
  | "copilot_app"
2376
+ /** An Agent Client Protocol host. */
2377
+ | "acp"
2334
2378
  /** A generic Copilot SDK client. */
2335
2379
  | "sdk";
2380
+ /**
2381
+ * Response capability available to the client when it settled a permission request.
2382
+ *
2383
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
2384
+ * via the `definition` "PermissionResponseCapability".
2385
+ */
2386
+ /** @experimental */
2387
+ export type PermissionResponseCapability =
2388
+ /** The client could ask a user for this decision. */
2389
+ "interactive"
2390
+ /** The client could return an automated response but could not ask a user. */
2391
+ | "headless"
2392
+ /** The client had no response path available. */
2393
+ | "none";
2336
2394
  /**
2337
2395
  * Tool approval to persist and apply
2338
2396
  *
@@ -3019,6 +3077,14 @@ export type SessionsOpenProgressStatus =
3019
3077
  "in-progress"
3020
3078
  /** The step has completed successfully. */
3021
3079
  | "complete";
3080
+ /**
3081
+ * Authentication credentials accepted by session.gitHubAuth.setCredentials. Session-owned token-provider identities cannot be installed through this method.
3082
+ *
3083
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3084
+ * via the `definition` "SettableAuthInfo".
3085
+ */
3086
+ /** @experimental */
3087
+ export type SettableAuthInfo = HMACAuthInfo | EnvAuthInfo | SettableTokenAuthInfo | CopilotApiTokenAuthInfo | UserAuthInfo | GhCliAuthInfo | ApiKeyAuthInfo;
3022
3088
  /**
3023
3089
  * Rust-owned settings predicates exposed across the SDK boundary. Raw feature-flag names are intentionally not part of the contract.
3024
3090
  *
@@ -3913,6 +3979,32 @@ export interface TokenAuthInfo {
3913
3979
  * The token value itself. Treat as a secret.
3914
3980
  */
3915
3981
  token: string;
3982
+ /**
3983
+ * Opaque native GitHub credential registration backing this token identity, when applicable.
3984
+ */
3985
+ registrationId?: string;
3986
+ copilotUser?: CopilotUserResponse;
3987
+ }
3988
+ /**
3989
+ * Authentication-info variant backed by an SDK GitHub token callback. It carries routing metadata but never a plaintext token.
3990
+ *
3991
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
3992
+ * via the `definition` "TokenProviderAuthInfo".
3993
+ */
3994
+ /** @experimental */
3995
+ export interface TokenProviderAuthInfo {
3996
+ /**
3997
+ * SDK callback-backed GitHub token authentication.
3998
+ */
3999
+ type: "token-provider";
4000
+ /**
4001
+ * Authentication host.
4002
+ */
4003
+ host: string;
4004
+ /**
4005
+ * Opaque SDK callback registration identifier.
4006
+ */
4007
+ registrationId: string;
3916
4008
  copilotUser?: CopilotUserResponse;
3917
4009
  }
3918
4010
  /**
@@ -4556,6 +4648,10 @@ export interface AuthIdentity {
4556
4648
  * Name of the environment variable that supplied the credential, when applicable
4557
4649
  */
4558
4650
  envVar?: string;
4651
+ /**
4652
+ * Opaque SDK GitHub credential registration backing this identity. Routing metadata only; never a credential.
4653
+ */
4654
+ registrationId?: string;
4559
4655
  copilotUser?: CopilotUserResponse;
4560
4656
  }
4561
4657
  /**
@@ -6776,6 +6872,10 @@ export interface ExternalToolTextResultForLlmContentShellExit {
6776
6872
  * Whether outputPreview is known to be incomplete or truncated
6777
6873
  */
6778
6874
  outputTruncated?: boolean;
6875
+ /**
6876
+ * Path reported in the shell session's filesystem namespace when shell output exceeded the configured large-output threshold.
6877
+ */
6878
+ outputFilePath?: string;
6779
6879
  }
6780
6880
  /**
6781
6881
  * Image content block with base64-encoded data
@@ -7596,6 +7696,14 @@ export interface FactoryResumeRequest {
7596
7696
  */
7597
7697
  runId: string;
7598
7698
  limits?: FactoryRunLimits;
7699
+ /**
7700
+ * Whether to notify the originating session when the factory completes.
7701
+ */
7702
+ notifyOnComplete?: boolean;
7703
+ /**
7704
+ * Whether to emit factory phase names to the session transcript.
7705
+ */
7706
+ logPhaseNames?: boolean;
7599
7707
  }
7600
7708
  /**
7601
7709
  * Wire-only per-invocation factory resource ceiling overrides.
@@ -7779,6 +7887,14 @@ export interface FactoryRunRequest {
7779
7887
  /** @experimental */
7780
7888
  export interface RunOptions {
7781
7889
  limits?: FactoryRunLimits;
7890
+ /**
7891
+ * Whether to notify the originating session when the factory completes.
7892
+ */
7893
+ notifyOnComplete?: boolean;
7894
+ /**
7895
+ * Whether to emit factory phase names to the session transcript.
7896
+ */
7897
+ logPhaseNames?: boolean;
7782
7898
  /**
7783
7899
  * Run identifier whose journal and progress should seed this resumed run.
7784
7900
  */
@@ -7897,6 +8013,14 @@ export interface GitHubTelemetryClientInfo {
7897
8013
  * Stable machine identifier for the device.
7898
8014
  */
7899
8015
  dev_device_id?: string;
8016
+ /**
8017
+ * Distinct CPU model names for the host, comma-separated.
8018
+ */
8019
+ cpu_model?: string;
8020
+ /**
8021
+ * Number of logical CPU cores on the host.
8022
+ */
8023
+ cpu_count?: number;
7900
8024
  }
7901
8025
  /**
7902
8026
  * A single telemetry event in the runtime's native GitHub-shaped telemetry format, forwarded verbatim to opted-in hosts. The `restricted` flag on the enclosing GitHubTelemetryNotification distinguishes standard from restricted events; the payload shape is identical for both.
@@ -7968,6 +8092,28 @@ export interface GitHubTelemetryNotification {
7968
8092
  restricted: boolean;
7969
8093
  event: GitHubTelemetryEvent;
7970
8094
  }
8095
+ /**
8096
+ * Asks the SDK client to acquire a GitHub access token from an opaque callback registration.
8097
+ *
8098
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
8099
+ * via the `definition` "GitHubTokenAcquireRequest".
8100
+ */
8101
+ /** @experimental */
8102
+ export interface GitHubTokenAcquireRequest {
8103
+ /**
8104
+ * Opaque identifier generated by the SDK for this callback registration.
8105
+ */
8106
+ registrationId: string;
8107
+ /**
8108
+ * Effective GitHub host for which the callback must return a token.
8109
+ */
8110
+ host: string;
8111
+ /**
8112
+ * Session receiving the token. Absent only before a cloud session has been assigned its id.
8113
+ */
8114
+ sessionId?: string;
8115
+ reason: GitHubTokenAcquireReason;
8116
+ }
7971
8117
  /**
7972
8118
  * Pending external tool call request ID, with the tool result or an error describing why it failed.
7973
8119
  *
@@ -8368,6 +8514,10 @@ export interface InstalledPlugin {
8368
8514
  * Per-plugin source fingerprint (a SHA-256 hash of the plugin's catalog source spec plus its resolved source subtree — NOT a Git commit SHA) captured at marketplace install/update time. Auto-update compares it against the freshly recomputed fingerprint to detect a content change that does not bump the version. Absent for pre-existing installs and for direct (non-marketplace) installs.
8369
8515
  */
8370
8516
  source_sha?: string;
8517
+ /**
8518
+ * Absolute path of the marketplace directory a live plugin was resolved from. Present only on live, never-persisted records — those synthesized at session start for a directory/local marketplace, whose cache_path points at the real plugin directory on disk rather than a copy under the installed-plugins cache. Its presence is what marks a record as live, and no record carrying it is ever written to the persisted installedPlugins key.
8519
+ */
8520
+ installed_from?: string;
8371
8521
  }
8372
8522
  /**
8373
8523
  * Source descriptor for a direct GitHub plugin install, with `owner/repo`, optional ref or full commit SHA, and optional subpath.
@@ -8472,6 +8622,10 @@ export interface InstalledPluginInfo {
8472
8622
  * Whether the plugin is currently enabled for new sessions
8473
8623
  */
8474
8624
  enabled: boolean;
8625
+ /**
8626
+ * Absolute path of the marketplace directory a live plugin was resolved from. Present only on live, never-persisted records — a plugin belonging to a directory/local marketplace, which is loaded from its real directory on every pass instead of a copy under the installed-plugins cache. Its presence is what marks a listed plugin as live: such a plugin is always present on disk, so `enabled` is its only meaningful state and it is never "not installed".
8627
+ */
8628
+ installedFrom?: string;
8475
8629
  }
8476
8630
  /**
8477
8631
  * Canonical file or directory where custom instructions can be discovered or created, with location, kind, preference, and project path.
@@ -11315,6 +11469,15 @@ export interface Model {
11315
11469
  supportedContextTiers?: string[];
11316
11470
  modelPickerCategory?: ModelPickerCategory;
11317
11471
  modelPickerPriceCategory?: ModelPickerPriceCategory;
11472
+ warningText?: ModelWarningText;
11473
+ /**
11474
+ * Informational notices the service published for this model, such as an upcoming change or a recommended alternative. Present only when the service published at least one notice. Hosts should surface these without implying anything is wrong with the model.
11475
+ */
11476
+ infoMessages?: ModelMessage[];
11477
+ /**
11478
+ * Warnings the service published for this model, such as a deprecated client version. Present only when the service published at least one warning. The model remains usable; hosts should surface these as advisory rather than blocking.
11479
+ */
11480
+ warningMessages?: ModelMessage[];
11318
11481
  }
11319
11482
  /**
11320
11483
  * Model capabilities and limits
@@ -11537,6 +11700,36 @@ export interface ModelBillingPromo {
11537
11700
  */
11538
11701
  message?: string;
11539
11702
  }
11703
+ /**
11704
+ * Service-published warning text that hosts should display when presenting a model.
11705
+ *
11706
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
11707
+ * via the `definition` "ModelWarningText".
11708
+ */
11709
+ /** @experimental */
11710
+ export interface ModelWarningText {
11711
+ /**
11712
+ * Data-retention warning for the model. The text may contain Markdown links and should be rendered as Markdown when supported.
11713
+ */
11714
+ dataRetention?: string;
11715
+ }
11716
+ /**
11717
+ * A service-published message about a model, carrying a stable machine-readable code alongside human-readable text.
11718
+ *
11719
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
11720
+ * via the `definition` "ModelMessage".
11721
+ */
11722
+ /** @experimental */
11723
+ export interface ModelMessage {
11724
+ /**
11725
+ * Stable machine-readable identifier for the message, such as `client_version_deprecated`. Hosts can key custom presentation off this; unrecognized codes should fall back to displaying `message`.
11726
+ */
11727
+ code: string;
11728
+ /**
11729
+ * Human-readable message text intended for display to the user.
11730
+ */
11731
+ message: string;
11732
+ }
11540
11733
  /**
11541
11734
  * Managed, repository, and CLI model overrides to overlay onto the session at startup.
11542
11735
  *
@@ -12751,6 +12944,7 @@ export interface PermissionDecisionContext {
12751
12944
  outcome: PermissionDecisionOutcome;
12752
12945
  source: PermissionDecisionSource;
12753
12946
  surface: PermissionDecisionSurface;
12947
+ responseCapability?: PermissionResponseCapability;
12754
12948
  }
12755
12949
  /**
12756
12950
  * Pending permission request ID and the decision to apply (approve/reject and scope).
@@ -13045,7 +13239,7 @@ export interface PermissionLocationResolveResult {
13045
13239
  /** @experimental */
13046
13240
  export interface PermissionPathsAddParams {
13047
13241
  /**
13048
- * Directory to add to the allow-list. The runtime resolves and validates the path before adding.
13242
+ * Directory to add to the allow-list. The runtime resolves and validates the path before adding, then loads conventional `.github/skills/` and `.github/agents/` definitions under it when their subsystem gates are enabled. Adding the directory is therefore also a trust decision for configuration stored there.
13049
13243
  */
13050
13244
  path: string;
13051
13245
  }
@@ -13088,7 +13282,7 @@ export interface PermissionPathsConfig {
13088
13282
  */
13089
13283
  unrestricted?: boolean;
13090
13284
  /**
13091
- * Additional directories to allow tool access to (in addition to the session's working directory). When `unrestricted` is true, these are still pre-populated on the UnrestrictedPathManager so they remain visible via getDirectories() (e.g. for @-mention completion).
13285
+ * Additional directories to allow tool access to (in addition to the session's working directory). Conventional `.github/skills/` and `.github/agents/` definitions under them also join the session catalogs when their subsystem gates are enabled, so supplying a directory is a trust decision for configuration stored there. When `unrestricted` is true, these are still pre-populated on the UnrestrictedPathManager so they remain visible via getDirectories() (e.g. for @-mention completion).
13092
13286
  */
13093
13287
  additionalDirectories?: string[];
13094
13288
  /**
@@ -15013,6 +15207,10 @@ export interface QueuePendingItemsResult {
15013
15207
  * Display text for messages currently in the immediate steering queue (interjections sent during a running turn).
15014
15208
  */
15015
15209
  steeringMessages: string[];
15210
+ /**
15211
+ * How many leading entries of `steeringMessages` have already been folded into the running turn (and so have an emitted `user.message`), as opposed to still waiting for one. Absent for hosts that do not distinguish the two.
15212
+ */
15213
+ inFlightSteeringCount?: number;
15016
15214
  }
15017
15215
  /**
15018
15216
  * Parameters for removing a queued item by stable id.
@@ -15545,7 +15743,7 @@ export interface SandboxConfig {
15545
15743
  addCurrentWorkingDirectory?: boolean;
15546
15744
  auth?: SandboxConfigAuth;
15547
15745
  /**
15548
- * Whether to auto-grant read access to the tool directories discovered on PATH and in toolchain environment variables (GOROOT, CARGO_HOME, JAVA_HOME, VIRTUAL_ENV, and similar), and to common developer-tool caches, registries, and toolchains in their default home locations (cargo, go, npm, Maven, and more), plus read-write access to (and, on Unix, up-front creation of) the scratch caches builds write on every run (go-build, ccache, sccache, Gradle caches, Cargo lock/tracker files), so builds work without extra configuration; a relocated CARGO_HOME additionally gets its Cargo lock files granted read-write. Set to false to disable every grant listed above: user-installed toolchains (rustup, nvm, pyenv, conda, pipx) then need explicit userPolicy.filesystem entries — readonlyPaths to read them, plus readwriteFiles for a relocated CARGO_HOME's .package-cache and .global-cache, which Cargo locks on every build. Only these developer-tool grants are affected: the working directory (see addCurrentWorkingDirectory), temporary storage, session log paths, and system locations follow their own rules and stay granted, so commands still run. Default: true (enabled by default; set to false to opt out).
15746
+ * 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).
15549
15747
  */
15550
15748
  allowDevToolAccess?: boolean;
15551
15749
  }
@@ -16849,6 +17047,10 @@ export interface SessionInstalledPlugin {
16849
17047
  * Per-plugin source fingerprint (a SHA-256 hash of the plugin's catalog source spec plus its resolved source subtree — NOT a Git commit SHA) captured at marketplace install/update time. Auto-update compares it against the freshly recomputed fingerprint to detect a content change that does not bump the version. Absent for pre-existing installs and for direct (non-marketplace) installs.
16850
17048
  */
16851
17049
  source_sha?: string;
17050
+ /**
17051
+ * Absolute path of the marketplace directory a live plugin was resolved from. Present only on live, never-persisted records — those synthesized at session start for a directory/local marketplace, whose cache_path points at the real plugin directory on disk rather than a copy under the installed-plugins cache. Its presence is what marks a record as live, and no record carrying it is ever written to the persisted installedPlugins key.
17052
+ */
17053
+ installed_from?: string;
16852
17054
  }
16853
17055
  /**
16854
17056
  * Source descriptor for a direct GitHub plugin install, with `owner/repo`, optional ref or full commit SHA, and optional subpath.
@@ -17052,7 +17254,10 @@ export interface SessionLoadDeferredRepoHooksResult {
17052
17254
  */
17053
17255
  /** @experimental */
17054
17256
  export interface SessionManagedPermissions {
17055
- disableBypassPermissionsMode?: DisableBypassPermissionsMode;
17257
+ /**
17258
+ * When set to `disable`, prevents bypass/allow-all permission modes. `allow-auto-only` blocks full allow-all but permits advisory auto-approval. Any other value is accepted rather than failing the session, but is enforced as `disable`: the key is only present to restrict something, so a mode this runtime cannot interpret fails closed to the most restrictive one it knows. Omit the key entirely to impose no restriction.
17259
+ */
17260
+ disableBypassPermissionsMode?: string;
17056
17261
  /**
17057
17262
  * Permission rules that block matching operations. Deny has highest precedence.
17058
17263
  */
@@ -17257,7 +17462,7 @@ export interface SessionOpenOptions {
17257
17462
  */
17258
17463
  workingDirectory?: string;
17259
17464
  /**
17260
- * Additional directories the agent may access beyond the working directory. Each entry is granted to the session's file-access allow-list and surfaced to the model (system prompt context and `@`-mention completion). Absolute paths are recommended; a relative path is resolved against the session's working directory. Nonexistent or unresolvable entries are skipped with a warning. This is applied on both session creation and resume, and is not persisted: a resumed session that omits this option does not retain previously supplied directories (re-supply them, exactly as the CLI re-passes `--add-dir`).
17465
+ * Additional directories the agent may access beyond the working directory. Each entry is granted to the session's file-access allow-list and surfaced to the model (system prompt context and `@`-mention completion). Conventional `.github/skills/` and `.github/agents/` definitions under each directory also join the session's project catalogs when their existing subsystem gates are enabled: added-root skills require both `enableConfigDiscovery` and effective `enableSkills`; added-root agents require `enableConfigDiscovery`. Supplying a directory therefore activates configuration from it and should be treated as a trust decision. Absolute paths are recommended; a relative path is resolved against the session's working directory. Nonexistent or unresolvable entries are skipped with a warning. This is applied during session creation and cold resume and is not persisted, so a cold resume must re-supply the directories.
17261
17466
  */
17262
17467
  additionalDirectories?: string[];
17263
17468
  workingDirectoryContext?: SessionContext;
@@ -17329,6 +17534,10 @@ export interface SessionOpenOptions {
17329
17534
  * Additional directories to search for skills.
17330
17535
  */
17331
17536
  skillDirectories?: string[];
17537
+ /**
17538
+ * 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.
17539
+ */
17540
+ includedBuiltinSkills?: string[];
17332
17541
  /**
17333
17542
  * Skill IDs disabled for this session.
17334
17543
  */
@@ -17870,7 +18079,29 @@ export interface SessionsEnrichMetadataRequest {
17870
18079
  */
17871
18080
  /** @experimental */
17872
18081
  export interface SessionSetCredentialsParams {
17873
- credentials?: AuthInfo;
18082
+ credentials?: SettableAuthInfo;
18083
+ }
18084
+ /**
18085
+ * Token authentication accepted by session.gitHubAuth.setCredentials.
18086
+ *
18087
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
18088
+ * via the `definition` "SettableTokenAuthInfo".
18089
+ */
18090
+ /** @experimental */
18091
+ export interface SettableTokenAuthInfo {
18092
+ /**
18093
+ * SDK-side token authentication; the host configured the token directly via the SDK.
18094
+ */
18095
+ type: "token";
18096
+ /**
18097
+ * Authentication host.
18098
+ */
18099
+ host: string;
18100
+ /**
18101
+ * The token value itself. Treat as a secret.
18102
+ */
18103
+ token: string;
18104
+ copilotUser?: CopilotUserResponse;
17874
18105
  }
17875
18106
  /**
17876
18107
  * Indicates whether the credential update succeeded.
@@ -18693,6 +18924,10 @@ export interface SessionUpdateOptionsParams {
18693
18924
  * Additional directories to search for skills.
18694
18925
  */
18695
18926
  skillDirectories?: string[];
18927
+ /**
18928
+ * 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. Set to null to remove the allowlist restriction.
18929
+ */
18930
+ includedBuiltinSkills?: string[] | null;
18696
18931
  /**
18697
18932
  * Skill IDs that should be excluded from this session.
18698
18933
  */
@@ -20073,10 +20308,6 @@ export interface ToolsExecuteRequest {
20073
20308
  */
20074
20309
  /** @experimental */
20075
20310
  export interface ToolsGetBuiltinDescriptorsRequest {
20076
- /**
20077
- * Whether line numbers should be omitted from the view tool descriptor.
20078
- */
20079
- noViewLineNumbers?: boolean;
20080
20311
  /**
20081
20312
  * Whether descriptors should favor fewer user-intervention prompts.
20082
20313
  */
@@ -20090,10 +20321,6 @@ export interface ToolsGetBuiltinDescriptorsRequest {
20090
20321
  */
20091
20322
  skillEmbeddingEnabled?: boolean;
20092
20323
  shellConfig?: ToolsShellDescriptorConfig;
20093
- /**
20094
- * Whether shell commands may only run asynchronously.
20095
- */
20096
- shellAsyncOnlyEnabled?: boolean;
20097
20324
  /**
20098
20325
  * Whether the configured shell supports PowerShell 7 syntax.
20099
20326
  */
@@ -23646,7 +23873,7 @@ export declare function createSessionRpc(connection: MessageConnection, sessionI
23646
23873
  */
23647
23874
  list: () => Promise<PermissionPathsList>;
23648
23875
  /**
23649
- * Adds a directory to the session's allow-list.
23876
+ * Adds a directory to the session's allow-list and activates conventional skill and agent definitions under it.
23650
23877
  *
23651
23878
  * @param params Directory path to add to the session's allowed directories.
23652
23879
  *
@@ -24332,11 +24559,24 @@ export interface GitHubTelemetryHandler {
24332
24559
  */
24333
24560
  event(params: GitHubTelemetryNotification): Promise<void>;
24334
24561
  }
24562
+ /** Handler for `gitHubToken` client global API methods. */
24563
+ /** @experimental */
24564
+ export interface GitHubTokenHandler {
24565
+ /**
24566
+ * Asks the SDK client to mint a GitHub access token for a session whose configuration supplied a GitHub token provider. The runtime acquires the initial token during bootstrap and refreshes it during expiry preflight when one hour or less remains.
24567
+ *
24568
+ * @param params Asks the SDK client to acquire a GitHub access token from an opaque callback registration.
24569
+ *
24570
+ * @returns SDK host response to a GitHub credential request.
24571
+ */
24572
+ getToken(params: GitHubTokenAcquireRequest): Promise<GitHubTokenAcquireResult>;
24573
+ }
24335
24574
  /** All client global API handler groups. */
24336
24575
  export interface ClientGlobalApiHandlers {
24337
24576
  extensionLaunchProvider?: ExtensionLaunchProviderHandler;
24338
24577
  llmInference?: LlmInferenceHandler;
24339
24578
  gitHubTelemetry?: GitHubTelemetryHandler;
24579
+ gitHubToken?: GitHubTokenHandler;
24340
24580
  }
24341
24581
  /**
24342
24582
  * Register client global API handlers on a JSON-RPC connection.
@@ -1963,7 +1963,7 @@ function createSessionRpc(connection, sessionId) {
1963
1963
  */
1964
1964
  list: async () => connection.sendRequest("session.permissions.paths.list", { sessionId }),
1965
1965
  /**
1966
- * Adds a directory to the session's allow-list.
1966
+ * Adds a directory to the session's allow-list and activates conventional skill and agent definitions under it.
1967
1967
  *
1968
1968
  * @param params Directory path to add to the session's allowed directories.
1969
1969
  *
@@ -2512,6 +2512,25 @@ function createInternalSessionRpc(connection, sessionId) {
2512
2512
  }
2513
2513
  },
2514
2514
  /** @experimental */
2515
+ factory: {
2516
+ /**
2517
+ * Internal tool-originated factory invocation.
2518
+ *
2519
+ * @param params Internal parameters for invoking a registered factory from a tool.
2520
+ *
2521
+ * @returns Complete current or terminal factory run envelope.
2522
+ */
2523
+ runFromTool: async (params) => connection.sendRequest("session.factory.runFromTool", { sessionId, ...params }),
2524
+ /**
2525
+ * Internal tool-originated factory resume.
2526
+ *
2527
+ * @param params Internal parameters for resuming a factory run from a tool.
2528
+ *
2529
+ * @returns Resolved persisted factory identity and resumed run envelope.
2530
+ */
2531
+ resumeFromTool: async (params) => connection.sendRequest("session.factory.resumeFromTool", { sessionId, ...params })
2532
+ },
2533
+ /** @experimental */
2515
2534
  model: {
2516
2535
  /**
2517
2536
  * Resolves and applies organization-managed and repository model overlays.
@@ -2809,6 +2828,11 @@ function registerClientGlobalApiHandlers(connection, handlers) {
2809
2828
  if (!handler) return;
2810
2829
  await handler.event(params);
2811
2830
  });
2831
+ connection.onRequest("gitHubToken.getToken", async (params) => {
2832
+ const handler = handlers.gitHubToken;
2833
+ if (!handler) throw new Error("No gitHubToken client-global handler registered");
2834
+ return handler.getToken(params);
2835
+ });
2812
2836
  }
2813
2837
  export {
2814
2838
  createInternalServerRpc,