@github/copilot-sdk 1.0.9 → 1.0.10-preview.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/client.js +10 -6
- package/dist/cjs/generated/rpc.js +20 -0
- package/dist/client.js +10 -6
- package/dist/generated/rpc.d.ts +267 -2
- package/dist/generated/rpc.js +20 -0
- package/dist/generated/session-events.d.ts +20 -8
- package/dist/index.d.ts +1 -1
- package/dist/types.d.ts +73 -0
- package/package.json +2 -2
package/dist/cjs/client.js
CHANGED
|
@@ -1027,7 +1027,7 @@ class CopilotClient {
|
|
|
1027
1027
|
this.onGetTraceContext,
|
|
1028
1028
|
{
|
|
1029
1029
|
mcpAuthHandler: config.onMcpAuthRequest,
|
|
1030
|
-
managedSettingsEnabled: config.enableManagedSettings
|
|
1030
|
+
managedSettingsEnabled: config.enableManagedSettings === true || config.managedSettings !== void 0
|
|
1031
1031
|
}
|
|
1032
1032
|
);
|
|
1033
1033
|
s.registerTools(config.tools);
|
|
@@ -1086,7 +1086,8 @@ class CopilotClient {
|
|
|
1086
1086
|
overridesBuiltInTool: tool.overridesBuiltInTool,
|
|
1087
1087
|
skipPermission: tool.skipPermission,
|
|
1088
1088
|
defer: tool.defer,
|
|
1089
|
-
metadata: tool.metadata
|
|
1089
|
+
metadata: tool.metadata,
|
|
1090
|
+
isTerminal: tool.isTerminal
|
|
1090
1091
|
})),
|
|
1091
1092
|
toolSearch: config.toolSearch,
|
|
1092
1093
|
canvases: config.canvases?.map((canvas) => canvas.declaration),
|
|
@@ -1154,7 +1155,8 @@ class CopilotClient {
|
|
|
1154
1155
|
remoteSession: config.remoteSession,
|
|
1155
1156
|
cloud: config.cloud,
|
|
1156
1157
|
expAssignments: config.expAssignments,
|
|
1157
|
-
enableManagedSettings: config.enableManagedSettings
|
|
1158
|
+
enableManagedSettings: config.enableManagedSettings,
|
|
1159
|
+
managedSettings: config.managedSettings
|
|
1158
1160
|
});
|
|
1159
1161
|
const {
|
|
1160
1162
|
sessionId: returnedSessionId,
|
|
@@ -1232,7 +1234,7 @@ class CopilotClient {
|
|
|
1232
1234
|
this.onGetTraceContext,
|
|
1233
1235
|
{
|
|
1234
1236
|
mcpAuthHandler: config.onMcpAuthRequest,
|
|
1235
|
-
managedSettingsEnabled: config.enableManagedSettings
|
|
1237
|
+
managedSettingsEnabled: config.enableManagedSettings === true || config.managedSettings !== void 0
|
|
1236
1238
|
}
|
|
1237
1239
|
);
|
|
1238
1240
|
session.registerTools(config.tools);
|
|
@@ -1304,7 +1306,8 @@ class CopilotClient {
|
|
|
1304
1306
|
overridesBuiltInTool: tool.overridesBuiltInTool,
|
|
1305
1307
|
skipPermission: tool.skipPermission,
|
|
1306
1308
|
defer: tool.defer,
|
|
1307
|
-
metadata: tool.metadata
|
|
1309
|
+
metadata: tool.metadata,
|
|
1310
|
+
isTerminal: tool.isTerminal
|
|
1308
1311
|
})),
|
|
1309
1312
|
toolSearch: config.toolSearch,
|
|
1310
1313
|
canvases: config.canvases?.map((canvas) => canvas.declaration),
|
|
@@ -1367,7 +1370,8 @@ class CopilotClient {
|
|
|
1367
1370
|
remoteSession: config.remoteSession,
|
|
1368
1371
|
openCanvases: config.openCanvases,
|
|
1369
1372
|
expAssignments: config.expAssignments,
|
|
1370
|
-
enableManagedSettings: config.enableManagedSettings
|
|
1373
|
+
enableManagedSettings: config.enableManagedSettings,
|
|
1374
|
+
managedSettings: config.managedSettings
|
|
1371
1375
|
});
|
|
1372
1376
|
const { workspacePath, capabilities, openCanvases } = response;
|
|
1373
1377
|
session["_workspacePath"] = workspacePath;
|
|
@@ -191,6 +191,12 @@ function createServerRpc(connection) {
|
|
|
191
191
|
*/
|
|
192
192
|
disable: async (params) => connection.sendRequest("extensions.disable", params)
|
|
193
193
|
},
|
|
194
|
+
/**
|
|
195
|
+
* Registers the calling SDK client as the per-entrypoint extension launch provider. Call before creating any sessions. When omitted, the runtime temporarily falls back to its built-in Node launcher for backward compatibility.
|
|
196
|
+
*
|
|
197
|
+
* @experimental
|
|
198
|
+
*/
|
|
199
|
+
registerExtensionLaunchProvider: async () => connection.sendRequest("registerExtensionLaunchProvider", {}),
|
|
194
200
|
/** @experimental */
|
|
195
201
|
plugins: {
|
|
196
202
|
/**
|
|
@@ -381,6 +387,15 @@ function createServerRpc(connection) {
|
|
|
381
387
|
}
|
|
382
388
|
},
|
|
383
389
|
/** @experimental */
|
|
390
|
+
managedSettings: {
|
|
391
|
+
/**
|
|
392
|
+
* Discovers device-managed settings from production MDM and managed-file sources, validates them against the runtime-owned managed-settings schema, and returns the canonical JSON without requiring a session.
|
|
393
|
+
*
|
|
394
|
+
* @returns Validated device-managed settings discovered before a session exists.
|
|
395
|
+
*/
|
|
396
|
+
read: async () => connection.sendRequest("managedSettings.read", {})
|
|
397
|
+
},
|
|
398
|
+
/** @experimental */
|
|
384
399
|
runtime: {
|
|
385
400
|
/**
|
|
386
401
|
* Gracefully shuts down an SDK-owned runtime. The response is sent only after cleanup completes; callers may then terminate the owned runtime process.
|
|
@@ -2623,6 +2638,11 @@ function registerClientSessionApiHandlers(connection, getHandlers) {
|
|
|
2623
2638
|
});
|
|
2624
2639
|
}
|
|
2625
2640
|
function registerClientGlobalApiHandlers(connection, handlers) {
|
|
2641
|
+
connection.onRequest("extensionLaunchProvider.resolve", async (params) => {
|
|
2642
|
+
const handler = handlers.extensionLaunchProvider;
|
|
2643
|
+
if (!handler) throw new Error("No extensionLaunchProvider client-global handler registered");
|
|
2644
|
+
return handler.resolve(params);
|
|
2645
|
+
});
|
|
2626
2646
|
connection.onRequest("llmInference.httpRequestStart", async (params) => {
|
|
2627
2647
|
const handler = handlers.llmInference;
|
|
2628
2648
|
if (!handler) throw new Error("No llmInference client-global handler registered");
|
package/dist/client.js
CHANGED
|
@@ -1004,7 +1004,7 @@ class CopilotClient {
|
|
|
1004
1004
|
this.onGetTraceContext,
|
|
1005
1005
|
{
|
|
1006
1006
|
mcpAuthHandler: config.onMcpAuthRequest,
|
|
1007
|
-
managedSettingsEnabled: config.enableManagedSettings
|
|
1007
|
+
managedSettingsEnabled: config.enableManagedSettings === true || config.managedSettings !== void 0
|
|
1008
1008
|
}
|
|
1009
1009
|
);
|
|
1010
1010
|
s.registerTools(config.tools);
|
|
@@ -1063,7 +1063,8 @@ class CopilotClient {
|
|
|
1063
1063
|
overridesBuiltInTool: tool.overridesBuiltInTool,
|
|
1064
1064
|
skipPermission: tool.skipPermission,
|
|
1065
1065
|
defer: tool.defer,
|
|
1066
|
-
metadata: tool.metadata
|
|
1066
|
+
metadata: tool.metadata,
|
|
1067
|
+
isTerminal: tool.isTerminal
|
|
1067
1068
|
})),
|
|
1068
1069
|
toolSearch: config.toolSearch,
|
|
1069
1070
|
canvases: config.canvases?.map((canvas) => canvas.declaration),
|
|
@@ -1131,7 +1132,8 @@ class CopilotClient {
|
|
|
1131
1132
|
remoteSession: config.remoteSession,
|
|
1132
1133
|
cloud: config.cloud,
|
|
1133
1134
|
expAssignments: config.expAssignments,
|
|
1134
|
-
enableManagedSettings: config.enableManagedSettings
|
|
1135
|
+
enableManagedSettings: config.enableManagedSettings,
|
|
1136
|
+
managedSettings: config.managedSettings
|
|
1135
1137
|
});
|
|
1136
1138
|
const {
|
|
1137
1139
|
sessionId: returnedSessionId,
|
|
@@ -1209,7 +1211,7 @@ class CopilotClient {
|
|
|
1209
1211
|
this.onGetTraceContext,
|
|
1210
1212
|
{
|
|
1211
1213
|
mcpAuthHandler: config.onMcpAuthRequest,
|
|
1212
|
-
managedSettingsEnabled: config.enableManagedSettings
|
|
1214
|
+
managedSettingsEnabled: config.enableManagedSettings === true || config.managedSettings !== void 0
|
|
1213
1215
|
}
|
|
1214
1216
|
);
|
|
1215
1217
|
session.registerTools(config.tools);
|
|
@@ -1281,7 +1283,8 @@ class CopilotClient {
|
|
|
1281
1283
|
overridesBuiltInTool: tool.overridesBuiltInTool,
|
|
1282
1284
|
skipPermission: tool.skipPermission,
|
|
1283
1285
|
defer: tool.defer,
|
|
1284
|
-
metadata: tool.metadata
|
|
1286
|
+
metadata: tool.metadata,
|
|
1287
|
+
isTerminal: tool.isTerminal
|
|
1285
1288
|
})),
|
|
1286
1289
|
toolSearch: config.toolSearch,
|
|
1287
1290
|
canvases: config.canvases?.map((canvas) => canvas.declaration),
|
|
@@ -1344,7 +1347,8 @@ class CopilotClient {
|
|
|
1344
1347
|
remoteSession: config.remoteSession,
|
|
1345
1348
|
openCanvases: config.openCanvases,
|
|
1346
1349
|
expAssignments: config.expAssignments,
|
|
1347
|
-
enableManagedSettings: config.enableManagedSettings
|
|
1350
|
+
enableManagedSettings: config.enableManagedSettings,
|
|
1351
|
+
managedSettings: config.managedSettings
|
|
1348
1352
|
});
|
|
1349
1353
|
const { workspacePath, capabilities, openCanvases } = response;
|
|
1350
1354
|
session["_workspacePath"] = workspacePath;
|
package/dist/generated/rpc.d.ts
CHANGED
|
@@ -398,6 +398,8 @@ export type DebugCollectLogsResultKind =
|
|
|
398
398
|
"archive"
|
|
399
399
|
/** A directory containing redacted files was written. */
|
|
400
400
|
| "directory";
|
|
401
|
+
/** @experimental */
|
|
402
|
+
export type DisableBypassPermissionsMode = "disable";
|
|
401
403
|
/**
|
|
402
404
|
* Persisted extension discovery source
|
|
403
405
|
*
|
|
@@ -1183,6 +1185,63 @@ export type SessionContextAttribution = {
|
|
|
1183
1185
|
* Total token count of the current context window the entries are measured against (system message + conversation messages + tool definitions — the same total reported by /context). Divide an entry's `tokens` by this to derive its share.
|
|
1184
1186
|
*/
|
|
1185
1187
|
totalTokens: number;
|
|
1188
|
+
/**
|
|
1189
|
+
* The concrete model id the entire breakdown was tokenized against (feeds the per-model token multiplier). Under `Auto` (Free/Student) this is the resolved model, not the literal `auto` sentinel, so totals are not undercounted. A single-model approximation of a potentially multi-model Auto session.
|
|
1190
|
+
*/
|
|
1191
|
+
modelId: string;
|
|
1192
|
+
/**
|
|
1193
|
+
* How `modelId` was chosen. Not a closed set — tolerate unknown values. Known values today: `autoResolved` (the model Auto resolved to), `selected` (the user's explicitly selected model), `default` (a fallback before any model is known).
|
|
1194
|
+
*/
|
|
1195
|
+
modelSource: string;
|
|
1196
|
+
/**
|
|
1197
|
+
* Maximum prompt tokens the resolved model accepts — the denominator for a `##k/###k` context-usage display. Mirrors `SessionContextInfo.promptTokenLimit`.
|
|
1198
|
+
*/
|
|
1199
|
+
promptTokenLimit: number;
|
|
1200
|
+
/**
|
|
1201
|
+
* Prompt limit plus the model's output reserve: the full context window `categories.freeSpace` and `categories.buffer` are measured against. Mirrors `SessionContextInfo.limit`.
|
|
1202
|
+
*/
|
|
1203
|
+
limit: number;
|
|
1204
|
+
/**
|
|
1205
|
+
* Output reserve plus the tokens past the buffer-exhaustion blocking threshold. Mirrors `SessionContextInfo.bufferTokens`.
|
|
1206
|
+
*/
|
|
1207
|
+
bufferTokens: number;
|
|
1208
|
+
/**
|
|
1209
|
+
* Token count at which background compaction starts. Mirrors `SessionContextInfo.compactionThreshold`.
|
|
1210
|
+
*/
|
|
1211
|
+
compactionThreshold: number;
|
|
1212
|
+
/**
|
|
1213
|
+
* The six normalized `/context` header buckets, computed from the same tokenization as `entries` so the two never disagree. Convenience rollups: `freeSpace` and `buffer` describe window capacity rather than occupied context, so the values do not sum to `totalTokens`.
|
|
1214
|
+
*/
|
|
1215
|
+
categories: {
|
|
1216
|
+
/**
|
|
1217
|
+
* System prompt tokens, excluding custom instructions.
|
|
1218
|
+
*/
|
|
1219
|
+
systemPrompt: number;
|
|
1220
|
+
/**
|
|
1221
|
+
* Custom-instructions tokens (0 when none are configured).
|
|
1222
|
+
*/
|
|
1223
|
+
customInstructions: number;
|
|
1224
|
+
/**
|
|
1225
|
+
* Non-MCP tool-definition tokens.
|
|
1226
|
+
*/
|
|
1227
|
+
systemTools: number;
|
|
1228
|
+
/**
|
|
1229
|
+
* MCP tool-definition tokens.
|
|
1230
|
+
*/
|
|
1231
|
+
mcpTools: number;
|
|
1232
|
+
/**
|
|
1233
|
+
* Conversation (user/assistant/tool) message tokens.
|
|
1234
|
+
*/
|
|
1235
|
+
messages: number;
|
|
1236
|
+
/**
|
|
1237
|
+
* Remaining unused window capacity (clamped at 0).
|
|
1238
|
+
*/
|
|
1239
|
+
freeSpace: number;
|
|
1240
|
+
/**
|
|
1241
|
+
* Output reserve plus post-blocking-threshold buffer.
|
|
1242
|
+
*/
|
|
1243
|
+
buffer: number;
|
|
1244
|
+
};
|
|
1186
1245
|
/**
|
|
1187
1246
|
* Flat list of per-source attribution entries. Group by `kind` and render unrecognized kinds generically. Nesting and rollups are expressed via `parentId`.
|
|
1188
1247
|
*/
|
|
@@ -1494,6 +1553,52 @@ export type PermissionDecisionApproveForSessionApproval = PermissionDecisionAppr
|
|
|
1494
1553
|
*/
|
|
1495
1554
|
/** @experimental */
|
|
1496
1555
|
export type PermissionDecisionApproveForLocationApproval = PermissionDecisionApproveForLocationApprovalCommands | PermissionDecisionApproveForLocationApprovalRead | PermissionDecisionApproveForLocationApprovalWrite | PermissionDecisionApproveForLocationApprovalMcp | PermissionDecisionApproveForLocationApprovalMcpSampling | PermissionDecisionApproveForLocationApprovalMemory | PermissionDecisionApproveForLocationApprovalCustomTool | PermissionDecisionApproveForLocationApprovalExtensionManagement | PermissionDecisionApproveForLocationApprovalFactory | PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess;
|
|
1556
|
+
/**
|
|
1557
|
+
* Disposition of a permission request as observed by the responding client.
|
|
1558
|
+
*
|
|
1559
|
+
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
|
|
1560
|
+
* via the `definition` "PermissionDecisionOutcome".
|
|
1561
|
+
*/
|
|
1562
|
+
/** @experimental */
|
|
1563
|
+
export type PermissionDecisionOutcome =
|
|
1564
|
+
/** The request was approved automatically without a new human decision. */
|
|
1565
|
+
"auto_approved"
|
|
1566
|
+
/** The request was denied without an interactive user decision; source records why. */
|
|
1567
|
+
| "autopilot_denied"
|
|
1568
|
+
/** The response came from an interactive user prompt. */
|
|
1569
|
+
| "prompted_user";
|
|
1570
|
+
/**
|
|
1571
|
+
* Controlled reason or actor responsible for a permission response.
|
|
1572
|
+
*
|
|
1573
|
+
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
|
|
1574
|
+
* via the `definition` "PermissionDecisionSource".
|
|
1575
|
+
*/
|
|
1576
|
+
/** @experimental */
|
|
1577
|
+
export type PermissionDecisionSource =
|
|
1578
|
+
/** The response followed the auto-approval judge recommendation. */
|
|
1579
|
+
"judge_recommendation"
|
|
1580
|
+
/** A human supplied the response through an interactive prompt. */
|
|
1581
|
+
| "human_response"
|
|
1582
|
+
/** The host applied a standing policy or override rather than a judge recommendation or human decision. */
|
|
1583
|
+
| "host_policy"
|
|
1584
|
+
/** The host denied the request because no interactive user response was available. */
|
|
1585
|
+
| "unattended_fallback";
|
|
1586
|
+
/**
|
|
1587
|
+
* Client surface that submitted a permission response.
|
|
1588
|
+
*
|
|
1589
|
+
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
|
|
1590
|
+
* via the `definition` "PermissionDecisionSurface".
|
|
1591
|
+
*/
|
|
1592
|
+
/** @experimental */
|
|
1593
|
+
export type PermissionDecisionSurface =
|
|
1594
|
+
/** The interactive Copilot CLI terminal UI. */
|
|
1595
|
+
"tui"
|
|
1596
|
+
/** The non-interactive Copilot CLI prompt mode. */
|
|
1597
|
+
| "prompt_mode"
|
|
1598
|
+
/** The Copilot App client. */
|
|
1599
|
+
| "copilot_app"
|
|
1600
|
+
/** A generic Copilot SDK client. */
|
|
1601
|
+
| "sdk";
|
|
1497
1602
|
/**
|
|
1498
1603
|
* Tool approval to persist and apply
|
|
1499
1604
|
*
|
|
@@ -4935,6 +5040,61 @@ export interface ExtensionContextPushInput {
|
|
|
4935
5040
|
[k: string]: unknown | undefined;
|
|
4936
5041
|
};
|
|
4937
5042
|
}
|
|
5043
|
+
/**
|
|
5044
|
+
* Opaque integrator-owned process launch profile for one extension entrypoint.
|
|
5045
|
+
*
|
|
5046
|
+
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
|
|
5047
|
+
* via the `definition` "ExtensionLaunchProfile".
|
|
5048
|
+
*/
|
|
5049
|
+
/** @experimental */
|
|
5050
|
+
export interface ExtensionLaunchProfile {
|
|
5051
|
+
/**
|
|
5052
|
+
* Executable used to launch the extension entrypoint.
|
|
5053
|
+
*/
|
|
5054
|
+
executable: string;
|
|
5055
|
+
/**
|
|
5056
|
+
* Opaque integrator-defined arguments passed to the executable. The runtime does not append the extension entrypoint.
|
|
5057
|
+
*/
|
|
5058
|
+
args: string[];
|
|
5059
|
+
/**
|
|
5060
|
+
* Opaque integrator-defined environment variables. Runtime-owned COPILOT_SDK_PATH, SESSION_ID, and COPILOT_EXTENSION_PARENT_PID values take precedence.
|
|
5061
|
+
*/
|
|
5062
|
+
env: {
|
|
5063
|
+
[k: string]: string | undefined;
|
|
5064
|
+
};
|
|
5065
|
+
}
|
|
5066
|
+
/**
|
|
5067
|
+
* A discovered extension entrypoint that the registered integrator may classify and resolve to an opaque launch profile.
|
|
5068
|
+
*
|
|
5069
|
+
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
|
|
5070
|
+
* via the `definition` "ExtensionLaunchProviderResolveRequest".
|
|
5071
|
+
*/
|
|
5072
|
+
/** @experimental */
|
|
5073
|
+
export interface ExtensionLaunchProviderResolveRequest {
|
|
5074
|
+
/**
|
|
5075
|
+
* Source-qualified extension identifier.
|
|
5076
|
+
*/
|
|
5077
|
+
id: string;
|
|
5078
|
+
/**
|
|
5079
|
+
* Human-readable extension name.
|
|
5080
|
+
*/
|
|
5081
|
+
name: string;
|
|
5082
|
+
/**
|
|
5083
|
+
* Absolute path to the discovered extension entrypoint.
|
|
5084
|
+
*/
|
|
5085
|
+
modulePath: string;
|
|
5086
|
+
source: ExtensionSource;
|
|
5087
|
+
}
|
|
5088
|
+
/**
|
|
5089
|
+
* The launch profile for a supported entrypoint. Omit launch when the provider does not support the entrypoint.
|
|
5090
|
+
*
|
|
5091
|
+
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
|
|
5092
|
+
* via the `definition` "ExtensionLaunchProviderResolveResult".
|
|
5093
|
+
*/
|
|
5094
|
+
/** @experimental */
|
|
5095
|
+
export interface ExtensionLaunchProviderResolveResult {
|
|
5096
|
+
launch?: ExtensionLaunchProfile;
|
|
5097
|
+
}
|
|
4938
5098
|
/**
|
|
4939
5099
|
* Extensions discovered for the session, with their current status.
|
|
4940
5100
|
*
|
|
@@ -7041,6 +7201,25 @@ export interface LspInitializeRequest {
|
|
|
7041
7201
|
*/
|
|
7042
7202
|
force?: boolean;
|
|
7043
7203
|
}
|
|
7204
|
+
/**
|
|
7205
|
+
* Validated device-managed settings discovered before a session exists.
|
|
7206
|
+
*
|
|
7207
|
+
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
|
|
7208
|
+
* via the `definition` "ManagedSettingsReadResult".
|
|
7209
|
+
*/
|
|
7210
|
+
/** @experimental */
|
|
7211
|
+
export interface ManagedSettingsReadResult {
|
|
7212
|
+
/**
|
|
7213
|
+
* Validated, canonical managed-settings JSON. Omitted when no managed settings were discovered or when discovered settings failed validation.
|
|
7214
|
+
*/
|
|
7215
|
+
settingsJson?: {
|
|
7216
|
+
[k: string]: unknown | undefined;
|
|
7217
|
+
};
|
|
7218
|
+
/**
|
|
7219
|
+
* Discovery or validation error text when managed settings could not be read safely.
|
|
7220
|
+
*/
|
|
7221
|
+
errorMessage?: string;
|
|
7222
|
+
}
|
|
7044
7223
|
/**
|
|
7045
7224
|
* Result of registering a new marketplace.
|
|
7046
7225
|
*
|
|
@@ -9957,6 +10136,18 @@ export interface PermissionDecisionDeniedByPermissionRequestHook {
|
|
|
9957
10136
|
*/
|
|
9958
10137
|
interrupt?: boolean;
|
|
9959
10138
|
}
|
|
10139
|
+
/**
|
|
10140
|
+
* Optional informational context describing how and where the permission decision was made. This does not affect permission behavior.
|
|
10141
|
+
*
|
|
10142
|
+
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
|
|
10143
|
+
* via the `definition` "PermissionDecisionContext".
|
|
10144
|
+
*/
|
|
10145
|
+
/** @experimental */
|
|
10146
|
+
export interface PermissionDecisionContext {
|
|
10147
|
+
outcome: PermissionDecisionOutcome;
|
|
10148
|
+
source: PermissionDecisionSource;
|
|
10149
|
+
surface: PermissionDecisionSurface;
|
|
10150
|
+
}
|
|
9960
10151
|
/**
|
|
9961
10152
|
* Pending permission request ID and the decision to apply (approve/reject and scope).
|
|
9962
10153
|
*
|
|
@@ -9970,6 +10161,7 @@ export interface PermissionDecisionRequest {
|
|
|
9970
10161
|
*/
|
|
9971
10162
|
requestId: string;
|
|
9972
10163
|
result: PermissionDecision;
|
|
10164
|
+
decisionContext?: PermissionDecisionContext;
|
|
9973
10165
|
}
|
|
9974
10166
|
/**
|
|
9975
10167
|
* Location-scoped tool approval to persist.
|
|
@@ -12598,9 +12790,9 @@ export interface SandboxConfig {
|
|
|
12598
12790
|
*/
|
|
12599
12791
|
ghAuth?: boolean;
|
|
12600
12792
|
/**
|
|
12601
|
-
* Whether to auto-grant read access 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
|
|
12793
|
+
* Whether to auto-grant read access 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. Default: true (enabled by default; set to false to opt out).
|
|
12602
12794
|
*/
|
|
12603
|
-
|
|
12795
|
+
allowDevToolAccess?: boolean;
|
|
12604
12796
|
}
|
|
12605
12797
|
/**
|
|
12606
12798
|
* User-managed sandbox policy fragment merged into the auto-discovered base policy.
|
|
@@ -13187,6 +13379,10 @@ export interface ServerSkill {
|
|
|
13187
13379
|
* Unique identifier for the skill
|
|
13188
13380
|
*/
|
|
13189
13381
|
name: string;
|
|
13382
|
+
/**
|
|
13383
|
+
* Canonical slash command name used to invoke the skill, without the leading '/'
|
|
13384
|
+
*/
|
|
13385
|
+
commandName?: string;
|
|
13190
13386
|
/**
|
|
13191
13387
|
* Description of what the skill does
|
|
13192
13388
|
*/
|
|
@@ -14001,6 +14197,38 @@ export interface SessionLoadDeferredRepoHooksResult {
|
|
|
14001
14197
|
*/
|
|
14002
14198
|
hookCount: number;
|
|
14003
14199
|
}
|
|
14200
|
+
/**
|
|
14201
|
+
* Enterprise permission policy expressed with the runtime's managed permission-rule syntax.
|
|
14202
|
+
*
|
|
14203
|
+
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
|
|
14204
|
+
* via the `definition` "SessionManagedPermissions".
|
|
14205
|
+
*/
|
|
14206
|
+
/** @experimental */
|
|
14207
|
+
export interface SessionManagedPermissions {
|
|
14208
|
+
disableBypassPermissionsMode?: DisableBypassPermissionsMode;
|
|
14209
|
+
/**
|
|
14210
|
+
* Permission rules that block matching operations. Deny has highest precedence.
|
|
14211
|
+
*/
|
|
14212
|
+
deny?: string[];
|
|
14213
|
+
/**
|
|
14214
|
+
* Permission rules that require explicit human approval.
|
|
14215
|
+
*/
|
|
14216
|
+
ask?: string[];
|
|
14217
|
+
/**
|
|
14218
|
+
* Permission rules that allow matching operations unless another managed source, deny, or ask rule restricts them.
|
|
14219
|
+
*/
|
|
14220
|
+
allow?: string[];
|
|
14221
|
+
}
|
|
14222
|
+
/**
|
|
14223
|
+
* Managed settings an SDK host may inject at session startup. Only permissions are accepted in this initial contract.
|
|
14224
|
+
*
|
|
14225
|
+
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
|
|
14226
|
+
* via the `definition` "SessionManagedSettings".
|
|
14227
|
+
*/
|
|
14228
|
+
/** @experimental */
|
|
14229
|
+
export interface SessionManagedSettings {
|
|
14230
|
+
permissions?: SessionManagedPermissions;
|
|
14231
|
+
}
|
|
14004
14232
|
/**
|
|
14005
14233
|
* Point-in-time snapshot of slow-changing session identifier and state fields
|
|
14006
14234
|
*
|
|
@@ -14144,6 +14372,7 @@ export interface SessionOpenOptions {
|
|
|
14144
14372
|
* Opt-in: self-fetch and enforce enterprise managed settings at session bootstrap.
|
|
14145
14373
|
*/
|
|
14146
14374
|
enableManagedSettings?: boolean;
|
|
14375
|
+
managedSettings?: SessionManagedSettings;
|
|
14147
14376
|
/**
|
|
14148
14377
|
* Opt in to capturing file changes for session rewind and session diff. Capture cannot reconstruct changes made before it was enabled. On create it starts capture from the first turn. It is also honored on resume: for a session that already has tracked prior turns, tracking continues automatically even if this is omitted; passing it on resume additionally enables tracking for an eligible session that has no prior root turn yet. Resuming a session whose prior root turns were never tracked has no restorable baseline, so tracking stays disabled for it and rewind reports file change tracking as unavailable; the resume itself still succeeds, so sessions that predate tracking remain loadable. The opt-in is only rejected when the session can never track (a subagent session, or one without local session storage). It is intentionally absent from the mutable options update because enabling it after edits have occurred would create an incomplete, misleading baseline. Subagents share the parent session's capture store and are not tracked as separate rewind points: a file a subagent writes is attributed to whichever root user turn was open when the capture was staged, just before the tool body ran. A turn cannot open while a staged capture is still in flight, so a subagent tool that staged under the spawning turn stays attributed to it however late the write lands, while a capture it stages after the user's next message belongs to that later turn. Attribution decides which turn's rewind point counts and file preview include that write; it does not narrow which rewinds revert it, because a rewind restores every capture from the selected turn onward, so the earlier spawning turn reverts it as well.
|
|
14149
14378
|
*/
|
|
@@ -14238,6 +14467,10 @@ export interface SessionOpenOptions {
|
|
|
14238
14467
|
*/
|
|
14239
14468
|
logInteractiveShells?: boolean;
|
|
14240
14469
|
envValueMode?: SessionOpenOptionsEnvValueMode;
|
|
14470
|
+
/**
|
|
14471
|
+
* MCP server names disabled for this session. Disabled servers are not started or authenticated on create or cold resume.
|
|
14472
|
+
*/
|
|
14473
|
+
disabledMcpServers?: string[];
|
|
14241
14474
|
/**
|
|
14242
14475
|
* Whether to include instructions from every MCP server in the system prompt instead of only allowlisted servers.
|
|
14243
14476
|
*/
|
|
@@ -15689,6 +15922,10 @@ export interface Skill {
|
|
|
15689
15922
|
* Unique identifier for the skill
|
|
15690
15923
|
*/
|
|
15691
15924
|
name: string;
|
|
15925
|
+
/**
|
|
15926
|
+
* Canonical slash command name used to invoke the skill, without the leading '/'
|
|
15927
|
+
*/
|
|
15928
|
+
commandName?: string;
|
|
15692
15929
|
/**
|
|
15693
15930
|
* Description of what the skill does
|
|
15694
15931
|
*/
|
|
@@ -18161,6 +18398,12 @@ export declare function createServerRpc(connection: MessageConnection): {
|
|
|
18161
18398
|
*/
|
|
18162
18399
|
disable: (params: DiscoveredExtensionsDisableRequest) => Promise<void>;
|
|
18163
18400
|
};
|
|
18401
|
+
/**
|
|
18402
|
+
* Registers the calling SDK client as the per-entrypoint extension launch provider. Call before creating any sessions. When omitted, the runtime temporarily falls back to its built-in Node launcher for backward compatibility.
|
|
18403
|
+
*
|
|
18404
|
+
* @experimental
|
|
18405
|
+
*/
|
|
18406
|
+
registerExtensionLaunchProvider: () => Promise<void>;
|
|
18164
18407
|
/** @experimental */
|
|
18165
18408
|
plugins: {
|
|
18166
18409
|
/**
|
|
@@ -18351,6 +18594,15 @@ export declare function createServerRpc(connection: MessageConnection): {
|
|
|
18351
18594
|
};
|
|
18352
18595
|
};
|
|
18353
18596
|
/** @experimental */
|
|
18597
|
+
managedSettings: {
|
|
18598
|
+
/**
|
|
18599
|
+
* Discovers device-managed settings from production MDM and managed-file sources, validates them against the runtime-owned managed-settings schema, and returns the canonical JSON without requiring a session.
|
|
18600
|
+
*
|
|
18601
|
+
* @returns Validated device-managed settings discovered before a session exists.
|
|
18602
|
+
*/
|
|
18603
|
+
read: () => Promise<ManagedSettingsReadResult>;
|
|
18604
|
+
};
|
|
18605
|
+
/** @experimental */
|
|
18354
18606
|
runtime: {
|
|
18355
18607
|
/**
|
|
18356
18608
|
* Gracefully shuts down an SDK-owned runtime. The response is sent only after cleanup completes; callers may then terminate the owned runtime process.
|
|
@@ -20428,6 +20680,18 @@ export interface ClientSessionApiHandlers {
|
|
|
20428
20680
|
* function uses `getHandlers` to resolve the session's handlers.
|
|
20429
20681
|
*/
|
|
20430
20682
|
export declare function registerClientSessionApiHandlers(connection: MessageConnection, getHandlers: (sessionId: string) => ClientSessionApiHandlers): void;
|
|
20683
|
+
/** Handler for `extensionLaunchProvider` client global API methods. */
|
|
20684
|
+
/** @experimental */
|
|
20685
|
+
export interface ExtensionLaunchProviderHandler {
|
|
20686
|
+
/**
|
|
20687
|
+
* Asks the registered SDK client to resolve an opaque process launch profile for one discovered extension entrypoint immediately before launch or reload. The provider must respond within 15 seconds.
|
|
20688
|
+
*
|
|
20689
|
+
* @param params A discovered extension entrypoint that the registered integrator may classify and resolve to an opaque launch profile.
|
|
20690
|
+
*
|
|
20691
|
+
* @returns The launch profile for a supported entrypoint. Omit launch when the provider does not support the entrypoint.
|
|
20692
|
+
*/
|
|
20693
|
+
resolve(params: ExtensionLaunchProviderResolveRequest): Promise<ExtensionLaunchProviderResolveResult>;
|
|
20694
|
+
}
|
|
20431
20695
|
/** Handler for `llmInference` client global API methods. */
|
|
20432
20696
|
/** @experimental */
|
|
20433
20697
|
export interface LlmInferenceHandler {
|
|
@@ -20460,6 +20724,7 @@ export interface GitHubTelemetryHandler {
|
|
|
20460
20724
|
}
|
|
20461
20725
|
/** All client global API handler groups. */
|
|
20462
20726
|
export interface ClientGlobalApiHandlers {
|
|
20727
|
+
extensionLaunchProvider?: ExtensionLaunchProviderHandler;
|
|
20463
20728
|
llmInference?: LlmInferenceHandler;
|
|
20464
20729
|
gitHubTelemetry?: GitHubTelemetryHandler;
|
|
20465
20730
|
}
|
package/dist/generated/rpc.js
CHANGED
|
@@ -163,6 +163,12 @@ function createServerRpc(connection) {
|
|
|
163
163
|
*/
|
|
164
164
|
disable: async (params) => connection.sendRequest("extensions.disable", params)
|
|
165
165
|
},
|
|
166
|
+
/**
|
|
167
|
+
* Registers the calling SDK client as the per-entrypoint extension launch provider. Call before creating any sessions. When omitted, the runtime temporarily falls back to its built-in Node launcher for backward compatibility.
|
|
168
|
+
*
|
|
169
|
+
* @experimental
|
|
170
|
+
*/
|
|
171
|
+
registerExtensionLaunchProvider: async () => connection.sendRequest("registerExtensionLaunchProvider", {}),
|
|
166
172
|
/** @experimental */
|
|
167
173
|
plugins: {
|
|
168
174
|
/**
|
|
@@ -353,6 +359,15 @@ function createServerRpc(connection) {
|
|
|
353
359
|
}
|
|
354
360
|
},
|
|
355
361
|
/** @experimental */
|
|
362
|
+
managedSettings: {
|
|
363
|
+
/**
|
|
364
|
+
* Discovers device-managed settings from production MDM and managed-file sources, validates them against the runtime-owned managed-settings schema, and returns the canonical JSON without requiring a session.
|
|
365
|
+
*
|
|
366
|
+
* @returns Validated device-managed settings discovered before a session exists.
|
|
367
|
+
*/
|
|
368
|
+
read: async () => connection.sendRequest("managedSettings.read", {})
|
|
369
|
+
},
|
|
370
|
+
/** @experimental */
|
|
356
371
|
runtime: {
|
|
357
372
|
/**
|
|
358
373
|
* Gracefully shuts down an SDK-owned runtime. The response is sent only after cleanup completes; callers may then terminate the owned runtime process.
|
|
@@ -2595,6 +2610,11 @@ function registerClientSessionApiHandlers(connection, getHandlers) {
|
|
|
2595
2610
|
});
|
|
2596
2611
|
}
|
|
2597
2612
|
function registerClientGlobalApiHandlers(connection, handlers) {
|
|
2613
|
+
connection.onRequest("extensionLaunchProvider.resolve", async (params) => {
|
|
2614
|
+
const handler = handlers.extensionLaunchProvider;
|
|
2615
|
+
if (!handler) throw new Error("No extensionLaunchProvider client-global handler registered");
|
|
2616
|
+
return handler.resolve(params);
|
|
2617
|
+
});
|
|
2598
2618
|
connection.onRequest("llmInference.httpRequestStart", async (params) => {
|
|
2599
2619
|
const handler = handlers.llmInference;
|
|
2600
2620
|
if (!handler) throw new Error("No llmInference client-global handler registered");
|
|
@@ -557,14 +557,18 @@ export type AutoModeResolvedReasoningBucket =
|
|
|
557
557
|
/** The request looks high-reasoning; a stronger model is appropriate. */
|
|
558
558
|
| "high";
|
|
559
559
|
/**
|
|
560
|
-
*
|
|
560
|
+
* Summary of which managed-settings channels contributed to the effective session policy. Use the per-channel booleans for exact provenance.
|
|
561
561
|
*/
|
|
562
562
|
export type ManagedSettingsResolvedSource =
|
|
563
|
-
/**
|
|
563
|
+
/** Only the server/account channel contributed. */
|
|
564
564
|
"server"
|
|
565
|
-
/**
|
|
565
|
+
/** Only the device MDM/plist/registry/file channel contributed. */
|
|
566
566
|
| "device"
|
|
567
|
-
/**
|
|
567
|
+
/** Only session-local SDK-host injection contributed. */
|
|
568
|
+
| "client"
|
|
569
|
+
/** More than one channel contributed. Ordinary keys resolve device over server per key, while permissions compose restrictively across all present layers. */
|
|
570
|
+
| "mixed"
|
|
571
|
+
/** No managed policy is in force (no channel contributed). */
|
|
568
572
|
| "none";
|
|
569
573
|
/**
|
|
570
574
|
* The category of runtime action that enterprise managed settings governed (blocked or capped)
|
|
@@ -8285,7 +8289,7 @@ export interface AutoModeResolvedData {
|
|
|
8285
8289
|
stickyOverride?: boolean;
|
|
8286
8290
|
}
|
|
8287
8291
|
/**
|
|
8288
|
-
* Session event "session.managed_settings_resolved". Enterprise managed-settings resolution: the effective managed settings the session applied and
|
|
8292
|
+
* Session event "session.managed_settings_resolved". Enterprise managed-settings resolution: the effective managed settings the session applied and which channels contributed, so SDK clients can show users what is enterprise-managed. Fires whenever managed policy is (re)applied — at session start, on resume, and on account switch. This is an ephemeral live snapshot (delivered to subscribers but not persisted to the session event log), because at session start it resolves before `session.start` is emitted. Device values take precedence over server values per ordinary key, while permissions compose restrictively across device, server, and SDK-client layers. The account-scoped `getManagedSettings()` API does not include session-local client injection. Marked experimental while the managed-settings surface stabilizes.
|
|
8289
8293
|
*/
|
|
8290
8294
|
/** @experimental */
|
|
8291
8295
|
export interface ManagedSettingsResolvedEvent {
|
|
@@ -8316,7 +8320,7 @@ export interface ManagedSettingsResolvedEvent {
|
|
|
8316
8320
|
type: "session.managed_settings_resolved";
|
|
8317
8321
|
}
|
|
8318
8322
|
/**
|
|
8319
|
-
* Enterprise managed-settings resolution: the effective managed settings the session applied and
|
|
8323
|
+
* Enterprise managed-settings resolution: the effective managed settings the session applied and which channels contributed, so SDK clients can show users what is enterprise-managed. Fires whenever managed policy is (re)applied — at session start, on resume, and on account switch. This is an ephemeral live snapshot (delivered to subscribers but not persisted to the session event log), because at session start it resolves before `session.start` is emitted. Device values take precedence over server values per ordinary key, while permissions compose restrictively across device, server, and SDK-client layers. The account-scoped `getManagedSettings()` API does not include session-local client injection. Marked experimental while the managed-settings surface stabilizes.
|
|
8320
8324
|
*/
|
|
8321
8325
|
/** @experimental */
|
|
8322
8326
|
export interface ManagedSettingsResolvedData {
|
|
@@ -8325,7 +8329,11 @@ export interface ManagedSettingsResolvedData {
|
|
|
8325
8329
|
*/
|
|
8326
8330
|
bypassPermissionsDisabled: boolean;
|
|
8327
8331
|
/**
|
|
8328
|
-
* Whether
|
|
8332
|
+
* Whether a session-local permissions layer injected by the SDK host was present
|
|
8333
|
+
*/
|
|
8334
|
+
clientManaged?: boolean;
|
|
8335
|
+
/**
|
|
8336
|
+
* Whether an actual device MDM/plist/registry/file managed-settings layer was present
|
|
8329
8337
|
*/
|
|
8330
8338
|
deviceManaged: boolean;
|
|
8331
8339
|
/**
|
|
@@ -8337,7 +8345,7 @@ export interface ManagedSettingsResolvedData {
|
|
|
8337
8345
|
*/
|
|
8338
8346
|
managedKeys: string[];
|
|
8339
8347
|
/**
|
|
8340
|
-
* Whether
|
|
8348
|
+
* Whether at least two managed sources supplied permission allowlists, so enforcement intersects them and the flattened settings payload omits `permissions.allow`.
|
|
8341
8349
|
*/
|
|
8342
8350
|
permissionsAllowIntersected?: boolean;
|
|
8343
8351
|
/**
|
|
@@ -8775,6 +8783,10 @@ export interface SkillsLoadedSkill {
|
|
|
8775
8783
|
* Optional freeform hint describing the skill's expected arguments, from the `argument-hint` frontmatter field
|
|
8776
8784
|
*/
|
|
8777
8785
|
argumentHint?: string;
|
|
8786
|
+
/**
|
|
8787
|
+
* Canonical slash command name used to invoke the skill, without the leading '/'
|
|
8788
|
+
*/
|
|
8789
|
+
commandName?: string;
|
|
8778
8790
|
/**
|
|
8779
8791
|
* Description of what the skill does
|
|
8780
8792
|
*/
|
package/dist/index.d.ts
CHANGED
|
@@ -11,5 +11,5 @@ export { defineFactory, FactoryResumeError, isFactoryRunTerminal } from "./facto
|
|
|
11
11
|
export { Canvas, CanvasError, createCanvas, type CanvasAction, type CanvasDeclaration, type CanvasHostContext, type CanvasHostContextCapabilities, type CanvasJsonSchema, type CanvasOptions, } from "./canvas.js";
|
|
12
12
|
export { defineTool, approveAll, convertMcpCallToolResult, createSessionFsAdapter, CopilotRequestHandler, CopilotWebSocketHandler, CopilotWebSocketCloseStatus, CopilotWebSocketForwarder, SessionFsSqliteTransactionFailure, SYSTEM_MESSAGE_SECTIONS, } from "./types.js";
|
|
13
13
|
export type * from "./generated/session-events.js";
|
|
14
|
-
export type { CommandContext, CommandDefinition, CommandHandler, CanvasProviderIdentity, CloudSessionOptions, CloudSessionRepository, AutoModeSwitchHandler, AutoModeSwitchRequest, AutoModeSwitchResponse, AgentStopHandler, AgentStopHookInput, AgentStopHookOutput, UserPromptTransformedHandler, UserPromptTransformedHookInput, UserPromptTransformedHookOutput, CopilotClientMode, CopilotClientOptions, CopilotExpAssignmentResponse, StdioRuntimeConnection, InProcessRuntimeConnection, TcpRuntimeConnection, UriRuntimeConnection, ChildProcessRuntimeConnection, CustomAgentConfig, ElicitationFieldValue, ElicitationHandler, ElicitationParams, ElicitationContext, ElicitationResult, ElicitationSchema, ElicitationSchemaField, ExpConfigEntry, ExpFlagValue, ExitPlanModeHandler, ExitPlanModeRequest, ExitPlanModeResult, ExtensionInfo, ForegroundSessionInfo, GetAuthStatusResponse, GetStatusResponse, GitHubMcpToolConfig, GitHubTelemetryNotification, GitHubTelemetryEvent, GitHubTelemetryClientInfo, InfiniteSessionConfig, LargeToolOutputConfig, MemoryConfiguration, UiInputOptions, FactoryLimits, FactoryMeta, MCPStdioServerConfig, MCPHTTPServerConfig, MCPServerConfig, DefaultAgentConfig, BearerTokenProvider, MessageOptions, ModelBilling, ModelBillingTokenPrices, ModelBillingTokenPricesLongContext, CapiSessionOptions, ModelCapabilities, ModelCapabilitiesOverride, ModelInfo, ModelPolicy, NamedProviderConfig, PermissionHandler, PermissionRequest, PermissionRequestedData, PermissionRequestedEvent, PermissionRequestResult, ProviderConfig, ProviderModelConfig, ProviderTokenArgs, RemoteSessionMode, ResumeSessionConfig, SectionOverride, SectionOverrideAction, SectionTransformFn, SessionCapabilities, SessionConfig, SessionConfigBase, SessionEvent, SessionEventHandler, SessionEventPayload, SessionEventType, SessionLifecycleEvent, SessionLifecycleEventMetadata, SessionLifecycleEventType, SessionLifecycleHandler, SessionHooks, SessionCreatedEvent, SessionDeletedEvent, SessionUpdatedEvent, SessionForegroundEvent, SessionBackgroundEvent, SessionContext, SessionListFilter, SessionMetadata, SessionUiApi, SessionFsConfig, SessionFsProvider, SessionFsFileInfo, SessionFsSqliteQueryResult, SessionFsSqliteQueryType, SessionFsSqliteProvider, SessionFsSqliteStatement, SessionFsSqliteTransactionErrorClass, CopilotRequestContext, SystemMessageAppendConfig, SystemMessageConfig, SystemMessageCustomizeConfig, SystemMessageReplaceConfig, SystemMessageSection, TelemetryConfig, TraceContext, TraceContextProvider, Tool, ToolHandler, ToolInvocation, CurrentToolMetadata, ToolTelemetry, ToolResultObject, ToolSearchConfig, TypedSessionEventHandler, TypedSessionLifecycleHandler, ZodSchema, } from "./types.js";
|
|
14
|
+
export type { CommandContext, CommandDefinition, CommandHandler, CanvasProviderIdentity, CloudSessionOptions, CloudSessionRepository, AutoModeSwitchHandler, AutoModeSwitchRequest, AutoModeSwitchResponse, AgentStopHandler, AgentStopHookInput, AgentStopHookOutput, UserPromptTransformedHandler, UserPromptTransformedHookInput, UserPromptTransformedHookOutput, CopilotClientMode, CopilotClientOptions, CopilotExpAssignmentResponse, StdioRuntimeConnection, InProcessRuntimeConnection, TcpRuntimeConnection, UriRuntimeConnection, ChildProcessRuntimeConnection, CustomAgentConfig, ElicitationFieldValue, ElicitationHandler, ElicitationParams, ElicitationContext, ElicitationResult, ElicitationSchema, ElicitationSchemaField, ExpConfigEntry, ExpFlagValue, ExitPlanModeHandler, ExitPlanModeRequest, ExitPlanModeResult, ExtensionInfo, ForegroundSessionInfo, GetAuthStatusResponse, GetStatusResponse, GitHubMcpToolConfig, GitHubTelemetryNotification, GitHubTelemetryEvent, GitHubTelemetryClientInfo, InfiniteSessionConfig, LargeToolOutputConfig, MemoryConfiguration, UiInputOptions, FactoryLimits, FactoryMeta, MCPStdioServerConfig, MCPHTTPServerConfig, MCPServerConfig, DefaultAgentConfig, BearerTokenProvider, MessageOptions, ManagedSettings, ManagedSettingsPermissions, ModelBilling, ModelBillingTokenPrices, ModelBillingTokenPricesLongContext, CapiSessionOptions, ModelCapabilities, ModelCapabilitiesOverride, ModelInfo, ModelPolicy, NamedProviderConfig, PermissionHandler, PermissionRequest, PermissionRequestedData, PermissionRequestedEvent, PermissionRequestResult, ProviderConfig, ProviderModelConfig, ProviderTokenArgs, RemoteSessionMode, ResumeSessionConfig, SectionOverride, SectionOverrideAction, SectionTransformFn, SessionCapabilities, SessionConfig, SessionConfigBase, SessionEvent, SessionEventHandler, SessionEventPayload, SessionEventType, SessionLifecycleEvent, SessionLifecycleEventMetadata, SessionLifecycleEventType, SessionLifecycleHandler, SessionHooks, SessionCreatedEvent, SessionDeletedEvent, SessionUpdatedEvent, SessionForegroundEvent, SessionBackgroundEvent, SessionContext, SessionListFilter, SessionMetadata, SessionUiApi, SessionFsConfig, SessionFsProvider, SessionFsFileInfo, SessionFsSqliteQueryResult, SessionFsSqliteQueryType, SessionFsSqliteProvider, SessionFsSqliteStatement, SessionFsSqliteTransactionErrorClass, CopilotRequestContext, SystemMessageAppendConfig, SystemMessageConfig, SystemMessageCustomizeConfig, SystemMessageReplaceConfig, SystemMessageSection, TelemetryConfig, TraceContext, TraceContextProvider, Tool, ToolHandler, ToolInvocation, CurrentToolMetadata, ToolTelemetry, ToolResultObject, ToolSearchConfig, TypedSessionEventHandler, TypedSessionLifecycleHandler, ZodSchema, } from "./types.js";
|
|
15
15
|
export type { RunOptions, ResumeOptions, FactoryResumeErrorCode, SessionFactoryApi, FactoryAgentOptions, FactoryContext, FactoryDefinition, FactoryHandle, FactoryJsonSchema, JsonValue, FactoryPipelineStage, FactoryStepOptions, FactoryRunResult, FactoryRunStatus, FactoryRunSummary, FactoryRunDetail, FactoryProgressPage, FactoryProgressLine, FactoryPhaseObservation, FactoryPhaseStatus, FactoryAgentSummary, } from "./factory.js";
|
package/dist/types.d.ts
CHANGED
|
@@ -484,6 +484,17 @@ export interface Tool<TArgs = unknown> {
|
|
|
484
484
|
* Unknown keys are preserved and round-tripped untouched.
|
|
485
485
|
*/
|
|
486
486
|
metadata?: Record<string, unknown>;
|
|
487
|
+
/**
|
|
488
|
+
* When true, a successful call to this tool ends the agent turn: the runtime's
|
|
489
|
+
* tool phase halts instead of feeding the tool result back to the model for
|
|
490
|
+
* another round. A failed call (for example input validation) leaves the loop
|
|
491
|
+
* running so the model can read the error and retry.
|
|
492
|
+
*
|
|
493
|
+
* Use this for tools whose whole purpose is to terminate the turn, such as a
|
|
494
|
+
* context clear that replaces the conversation the model would otherwise
|
|
495
|
+
* continue from.
|
|
496
|
+
*/
|
|
497
|
+
isTerminal?: boolean;
|
|
487
498
|
}
|
|
488
499
|
/**
|
|
489
500
|
* Helper to define a tool with Zod schema and get type inference for the handler.
|
|
@@ -497,6 +508,7 @@ export declare function defineTool<T = unknown>(name: string, config: {
|
|
|
497
508
|
skipPermission?: boolean;
|
|
498
509
|
defer?: "auto" | "never";
|
|
499
510
|
metadata?: Record<string, unknown>;
|
|
511
|
+
isTerminal?: boolean;
|
|
500
512
|
}): Tool<T>;
|
|
501
513
|
/**
|
|
502
514
|
* SDK-supplied override for the runtime's built-in tool-search behavior.
|
|
@@ -1682,6 +1694,43 @@ export interface GitHubMcpToolConfig {
|
|
|
1682
1694
|
enableInsidersMode?: boolean;
|
|
1683
1695
|
disableFormDeferral?: boolean;
|
|
1684
1696
|
}
|
|
1697
|
+
/**
|
|
1698
|
+
* Permissions-only managed policy injected by the host via
|
|
1699
|
+
* {@link SessionConfigBase.managedSettings}.
|
|
1700
|
+
*
|
|
1701
|
+
* Rule strings use the same vocabulary the runtime accepts for fetched managed
|
|
1702
|
+
* policy (e.g. `"Read(**)"`, `"Shell(git push *)"`); malformed rules are
|
|
1703
|
+
* rejected at session creation.
|
|
1704
|
+
*/
|
|
1705
|
+
export interface ManagedSettingsPermissions {
|
|
1706
|
+
/**
|
|
1707
|
+
* When set to `"disable"`, bypass-permissions ("yolo") mode is turned off
|
|
1708
|
+
* for the session. This is deny-wins: it cannot be re-enabled by any other
|
|
1709
|
+
* layer.
|
|
1710
|
+
*/
|
|
1711
|
+
disableBypassPermissionsMode?: "disable";
|
|
1712
|
+
/** Operations that must always be denied. Unioned across managed layers. */
|
|
1713
|
+
deny?: string[];
|
|
1714
|
+
/**
|
|
1715
|
+
* Operations that must prompt for approval. Unioned across managed layers.
|
|
1716
|
+
*/
|
|
1717
|
+
ask?: string[];
|
|
1718
|
+
/**
|
|
1719
|
+
* Operations permitted without prompting. Every declared `allow` list
|
|
1720
|
+
* (across managed layers) must admit an operation for it to be allowed.
|
|
1721
|
+
*/
|
|
1722
|
+
allow?: string[];
|
|
1723
|
+
}
|
|
1724
|
+
/**
|
|
1725
|
+
* Host-injected enterprise managed settings. The first supported contract is
|
|
1726
|
+
* permissions-only; unknown sibling keys are rejected by the runtime.
|
|
1727
|
+
*
|
|
1728
|
+
* @see {@link SessionConfigBase.managedSettings}
|
|
1729
|
+
*/
|
|
1730
|
+
export interface ManagedSettings {
|
|
1731
|
+
/** Managed permission policy for the session. */
|
|
1732
|
+
permissions?: ManagedSettingsPermissions;
|
|
1733
|
+
}
|
|
1685
1734
|
/**
|
|
1686
1735
|
* Shared configuration fields used by both {@link SessionConfig} (for
|
|
1687
1736
|
* creating a new session) and {@link ResumeSessionConfig} (for resuming
|
|
@@ -2118,6 +2167,30 @@ export interface SessionConfigBase {
|
|
|
2118
2167
|
* if omitted, the runtime is expected to reject session creation (fail-closed).
|
|
2119
2168
|
*/
|
|
2120
2169
|
enableManagedSettings?: boolean;
|
|
2170
|
+
/**
|
|
2171
|
+
* Host-injected enterprise managed settings for this session.
|
|
2172
|
+
*
|
|
2173
|
+
* Unlike {@link SessionConfigBase.enableManagedSettings} — which asks the
|
|
2174
|
+
* runtime to *self-fetch* account/org and device policy — this field lets
|
|
2175
|
+
* the host supply the managed policy directly. The runtime validates it
|
|
2176
|
+
* with the same managed-permission parser it uses for fetched policy and
|
|
2177
|
+
* composes it restrictively with any self-fetched (server) and
|
|
2178
|
+
* device-managed (MDM) layers: `deny`/`ask` rules are unioned, every
|
|
2179
|
+
* declared `allow` list must admit an operation, and
|
|
2180
|
+
* `disableBypassPermissionsMode: "disable"` is deny-wins.
|
|
2181
|
+
*
|
|
2182
|
+
* This is startup-only. It is **not** persisted: it must be re-supplied on
|
|
2183
|
+
* {@link CopilotClient.resumeSession | resume}, where it replaces the prior
|
|
2184
|
+
* injected layer (omitting it clears the layer, so warm and cold resume
|
|
2185
|
+
* behave identically). It may be combined with `enableManagedSettings`;
|
|
2186
|
+
* when both are supplied the injected, server, and device restrictions all
|
|
2187
|
+
* apply.
|
|
2188
|
+
*
|
|
2189
|
+
* Requires a Copilot runtime whose RPC schema includes `managedSettings`.
|
|
2190
|
+
* Older runtimes may ignore this additive field, so hosts must not rely on
|
|
2191
|
+
* injected policy until they ship a compatible runtime.
|
|
2192
|
+
*/
|
|
2193
|
+
managedSettings?: ManagedSettings;
|
|
2121
2194
|
/**
|
|
2122
2195
|
* When true, skips embedding-based retrieval for this session.
|
|
2123
2196
|
* Use in multitenant deployments to prevent cross-session information leakage
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"type": "git",
|
|
5
5
|
"url": "https://github.com/github/copilot-sdk.git"
|
|
6
6
|
},
|
|
7
|
-
"version": "1.0.
|
|
7
|
+
"version": "1.0.10-preview.0",
|
|
8
8
|
"description": "TypeScript SDK for programmatic control of GitHub Copilot CLI via JSON-RPC",
|
|
9
9
|
"main": "./dist/cjs/index.js",
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"author": "GitHub",
|
|
57
57
|
"license": "MIT",
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@github/copilot": "^1.0.
|
|
59
|
+
"@github/copilot": "^1.0.79-6",
|
|
60
60
|
"koffi": "^3.1.0",
|
|
61
61
|
"vscode-jsonrpc": "^8.2.1",
|
|
62
62
|
"zod": "^4.3.6"
|