@github/copilot-sdk-darwin-x64 1.0.13 → 1.0.14-preview.1
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/builtin/discover-resources/SKILL.md +2 -0
- package/builtin-skills/discover-resources/SKILL.md +2 -0
- package/package.json +1 -1
- package/plugins/computer-use/.plugin/plugin.json +1 -1
- package/plugins/computer-use/Copilot Computer Use.app/Contents/CodeResources +0 -0
- package/plugins/computer-use/Copilot Computer Use.app/Contents/Info.plist +2 -2
- package/plugins/computer-use/Copilot Computer Use.app/Contents/MacOS/Copilot Computer Use +0 -0
- package/plugins/computer-use/computer-use-mcp +0 -0
- package/prebuilds/darwin-x64/copilot-runtime +0 -0
- package/prebuilds/darwin-x64/runtime.node +0 -0
- package/ripgrep/bin/darwin-arm64/rg +0 -0
- package/ripgrep/bin/darwin-x64/rg +0 -0
- package/schemas/api.schema.json +1315 -52
- package/schemas/session-events.schema.json +1118 -141
- package/sdk/index.js +289 -315
- package/tgrep/bin/darwin-arm64/tgrep +0 -0
- package/tgrep/bin/darwin-x64/tgrep +0 -0
|
@@ -1755,6 +1755,10 @@
|
|
|
1755
1755
|
"AssistantUsageCopilotUsage": {
|
|
1756
1756
|
"type": "object",
|
|
1757
1757
|
"properties": {
|
|
1758
|
+
"model": {
|
|
1759
|
+
"type": "string",
|
|
1760
|
+
"description": "Default billing model for token details that do not identify their own model"
|
|
1761
|
+
},
|
|
1758
1762
|
"tokenDetails": {
|
|
1759
1763
|
"type": "array",
|
|
1760
1764
|
"items": {
|
|
@@ -1790,6 +1794,10 @@
|
|
|
1790
1794
|
"minimum": 0,
|
|
1791
1795
|
"description": "Cost per batch of tokens"
|
|
1792
1796
|
},
|
|
1797
|
+
"model": {
|
|
1798
|
+
"type": "string",
|
|
1799
|
+
"description": "Model responsible for this billing entry"
|
|
1800
|
+
},
|
|
1793
1801
|
"tokenCount": {
|
|
1794
1802
|
"type": "integer",
|
|
1795
1803
|
"minimum": 0,
|
|
@@ -3424,16 +3432,91 @@
|
|
|
3424
3432
|
"enum": [
|
|
3425
3433
|
"efficiency",
|
|
3426
3434
|
"balance",
|
|
3427
|
-
"intelligence"
|
|
3435
|
+
"intelligence",
|
|
3436
|
+
"fast"
|
|
3428
3437
|
],
|
|
3429
|
-
"description": "Routing preference used when the session model is `auto`.",
|
|
3438
|
+
"description": "Routing preference used when the session model is `auto`. `fast` is an integrator-only latency preset and is not a first-party GitHub Copilot product preference.",
|
|
3430
3439
|
"title": "AutoTier",
|
|
3431
3440
|
"x-enumDescriptions": {
|
|
3432
3441
|
"efficiency": "Optimize for efficiency.",
|
|
3433
3442
|
"balance": "Balance efficiency and intelligence.",
|
|
3434
|
-
"intelligence": "Optimize for intelligence."
|
|
3443
|
+
"intelligence": "Optimize for intelligence.",
|
|
3444
|
+
"fast": "Integrator-only preset that optimizes for latency."
|
|
3435
3445
|
}
|
|
3436
3446
|
},
|
|
3447
|
+
"AutoTierRecommendationData": {
|
|
3448
|
+
"type": "object",
|
|
3449
|
+
"properties": {
|
|
3450
|
+
"recommendedAutoTier": {
|
|
3451
|
+
"$ref": "#/definitions/RecommendedAutoTier",
|
|
3452
|
+
"description": "Recommended Auto preference."
|
|
3453
|
+
}
|
|
3454
|
+
},
|
|
3455
|
+
"required": [
|
|
3456
|
+
"recommendedAutoTier"
|
|
3457
|
+
],
|
|
3458
|
+
"additionalProperties": false,
|
|
3459
|
+
"description": "Live-only Auto preference recommendation from Copilot API after a successful Auto model call.",
|
|
3460
|
+
"title": "AutoTierRecommendationData",
|
|
3461
|
+
"stability": "experimental"
|
|
3462
|
+
},
|
|
3463
|
+
"AutoTierRecommendationEvent": {
|
|
3464
|
+
"type": "object",
|
|
3465
|
+
"properties": {
|
|
3466
|
+
"id": {
|
|
3467
|
+
"type": "string",
|
|
3468
|
+
"format": "uuid",
|
|
3469
|
+
"description": "Unique event identifier (UUID v4), generated when the event is emitted"
|
|
3470
|
+
},
|
|
3471
|
+
"timestamp": {
|
|
3472
|
+
"type": "string",
|
|
3473
|
+
"format": "date-time",
|
|
3474
|
+
"description": "ISO 8601 timestamp when the event was created"
|
|
3475
|
+
},
|
|
3476
|
+
"parentId": {
|
|
3477
|
+
"anyOf": [
|
|
3478
|
+
{
|
|
3479
|
+
"type": "string",
|
|
3480
|
+
"format": "uuid"
|
|
3481
|
+
},
|
|
3482
|
+
{
|
|
3483
|
+
"type": "null"
|
|
3484
|
+
}
|
|
3485
|
+
],
|
|
3486
|
+
"description": "ID of the chronologically preceding event in the session, forming a linked chain. Null for the first event."
|
|
3487
|
+
},
|
|
3488
|
+
"ephemeral": {
|
|
3489
|
+
"type": "boolean",
|
|
3490
|
+
"const": true,
|
|
3491
|
+
"description": "Always true for events that are transient and not persisted to the session event log on disk."
|
|
3492
|
+
},
|
|
3493
|
+
"agentId": {
|
|
3494
|
+
"type": "string",
|
|
3495
|
+
"description": "Sub-agent instance identifier. Absent for events from the root/main agent and session-level events."
|
|
3496
|
+
},
|
|
3497
|
+
"type": {
|
|
3498
|
+
"type": "string",
|
|
3499
|
+
"const": "session.auto_tier_recommendation",
|
|
3500
|
+
"description": "Type discriminator. Always \"session.auto_tier_recommendation\"."
|
|
3501
|
+
},
|
|
3502
|
+
"data": {
|
|
3503
|
+
"$ref": "#/definitions/AutoTierRecommendationData",
|
|
3504
|
+
"description": "Live-only Auto preference recommendation from Copilot API after a successful Auto model call."
|
|
3505
|
+
}
|
|
3506
|
+
},
|
|
3507
|
+
"required": [
|
|
3508
|
+
"id",
|
|
3509
|
+
"timestamp",
|
|
3510
|
+
"parentId",
|
|
3511
|
+
"ephemeral",
|
|
3512
|
+
"type",
|
|
3513
|
+
"data"
|
|
3514
|
+
],
|
|
3515
|
+
"additionalProperties": false,
|
|
3516
|
+
"description": "Session event \"session.auto_tier_recommendation\". Live-only Auto preference recommendation from Copilot API after a successful Auto model call.",
|
|
3517
|
+
"title": "AutoTierRecommendationEvent",
|
|
3518
|
+
"stability": "experimental"
|
|
3519
|
+
},
|
|
3437
3520
|
"AutoTierSwitchFailedData": {
|
|
3438
3521
|
"type": "object",
|
|
3439
3522
|
"properties": {
|
|
@@ -3445,7 +3528,7 @@
|
|
|
3445
3528
|
"anyOf": [
|
|
3446
3529
|
{
|
|
3447
3530
|
"$ref": "#/definitions/AutoTier",
|
|
3448
|
-
"description": "Routing preference used when the session model is `auto`."
|
|
3531
|
+
"description": "Routing preference used when the session model is `auto`. `fast` is an integrator-only latency preset and is not a first-party GitHub Copilot product preference."
|
|
3449
3532
|
},
|
|
3450
3533
|
{
|
|
3451
3534
|
"type": "null"
|
|
@@ -5112,6 +5195,11 @@
|
|
|
5112
5195
|
"CompactionCompleteCompactionTokensUsedCopilotUsage": {
|
|
5113
5196
|
"type": "object",
|
|
5114
5197
|
"properties": {
|
|
5198
|
+
"model": {
|
|
5199
|
+
"type": "string",
|
|
5200
|
+
"description": "Default billing model for token details that do not identify their own model",
|
|
5201
|
+
"visibility": "internal"
|
|
5202
|
+
},
|
|
5115
5203
|
"tokenDetails": {
|
|
5116
5204
|
"type": "array",
|
|
5117
5205
|
"items": {
|
|
@@ -5148,6 +5236,10 @@
|
|
|
5148
5236
|
"minimum": 0,
|
|
5149
5237
|
"description": "Cost per batch of tokens"
|
|
5150
5238
|
},
|
|
5239
|
+
"model": {
|
|
5240
|
+
"type": "string",
|
|
5241
|
+
"description": "Model responsible for this billing entry"
|
|
5242
|
+
},
|
|
5151
5243
|
"tokenCount": {
|
|
5152
5244
|
"type": "integer",
|
|
5153
5245
|
"minimum": 0,
|
|
@@ -5212,6 +5304,11 @@
|
|
|
5212
5304
|
"type": "string",
|
|
5213
5305
|
"description": "LLM-generated summary of the compacted conversation history"
|
|
5214
5306
|
},
|
|
5307
|
+
"activeFactorySummary": {
|
|
5308
|
+
"type": "string",
|
|
5309
|
+
"description": "Authoritative active-factory reminder appended to the compacted context",
|
|
5310
|
+
"visibility": "internal"
|
|
5311
|
+
},
|
|
5215
5312
|
"behaviorModelId": {
|
|
5216
5313
|
"type": "string",
|
|
5217
5314
|
"description": "Canonical model identifier used for model-specific behavior when replaying compaction"
|
|
@@ -5815,6 +5912,10 @@
|
|
|
5815
5912
|
"type": "boolean",
|
|
5816
5913
|
"description": "Whether the agent can be selected by the user"
|
|
5817
5914
|
},
|
|
5915
|
+
"disableModelInvocation": {
|
|
5916
|
+
"type": "boolean",
|
|
5917
|
+
"description": "Whether model-driven invocation is disabled for this agent."
|
|
5918
|
+
},
|
|
5818
5919
|
"model": {
|
|
5819
5920
|
"type": "string",
|
|
5820
5921
|
"description": "Model override for this agent, if set"
|
|
@@ -7170,6 +7271,7 @@
|
|
|
7170
7271
|
"enum": [
|
|
7171
7272
|
"completed",
|
|
7172
7273
|
"halted",
|
|
7274
|
+
"paused",
|
|
7173
7275
|
"cancelled",
|
|
7174
7276
|
"error"
|
|
7175
7277
|
],
|
|
@@ -7178,6 +7280,7 @@
|
|
|
7178
7280
|
"x-enumDescriptions": {
|
|
7179
7281
|
"completed": "The factory body resolved and its result was committed.",
|
|
7180
7282
|
"halted": "The run was stopped by a limit, an approval refusal or another policy decision.",
|
|
7283
|
+
"paused": "The attempt paused intentionally while preserving resumable run state.",
|
|
7181
7284
|
"cancelled": "The run was cancelled by its caller or by session disposal.",
|
|
7182
7285
|
"error": "The run failed, with `failureType` carrying the class when it has one."
|
|
7183
7286
|
}
|
|
@@ -11503,7 +11606,7 @@
|
|
|
11503
11606
|
"anyOf": [
|
|
11504
11607
|
{
|
|
11505
11608
|
"$ref": "#/definitions/AutoTier",
|
|
11506
|
-
"description": "Routing preference used when the session model is `auto`."
|
|
11609
|
+
"description": "Routing preference used when the session model is `auto`. `fast` is an integrator-only latency preset and is not a first-party GitHub Copilot product preference."
|
|
11507
11610
|
},
|
|
11508
11611
|
{
|
|
11509
11612
|
"type": "null"
|
|
@@ -11932,6 +12035,96 @@
|
|
|
11932
12035
|
"description": "Permission response variant indicating the request was cancelled before use, with an optional reason.",
|
|
11933
12036
|
"title": "PermissionCancelled"
|
|
11934
12037
|
},
|
|
12038
|
+
"PermissionCarriedForwardData": {
|
|
12039
|
+
"type": "object",
|
|
12040
|
+
"properties": {
|
|
12041
|
+
"requestId": {
|
|
12042
|
+
"type": "string",
|
|
12043
|
+
"description": "Authorization edge minted for this admission. Not a prompt id: no prompt was raised, so no client should expect a request with this id.",
|
|
12044
|
+
"stability": "experimental"
|
|
12045
|
+
},
|
|
12046
|
+
"toolCallId": {
|
|
12047
|
+
"type": "string",
|
|
12048
|
+
"description": "Tool call this admission authorizes. Its execution receipts the prior grant, which is how a single-effect approval is spent rather than carried forward again.",
|
|
12049
|
+
"stability": "experimental"
|
|
12050
|
+
},
|
|
12051
|
+
"recordId": {
|
|
12052
|
+
"type": "string",
|
|
12053
|
+
"description": "Identity of the prior authorization record that contained the proposal.",
|
|
12054
|
+
"stability": "experimental"
|
|
12055
|
+
},
|
|
12056
|
+
"decisionSource": {
|
|
12057
|
+
"$ref": "#/definitions/PermissionDecisionSource",
|
|
12058
|
+
"description": "Always `authorization_carry_forward`. Stated explicitly so a consumer reading this event cannot mistake it for a human, host-policy, or assisted-approval decision.",
|
|
12059
|
+
"stability": "experimental"
|
|
12060
|
+
}
|
|
12061
|
+
},
|
|
12062
|
+
"required": [
|
|
12063
|
+
"requestId",
|
|
12064
|
+
"toolCallId",
|
|
12065
|
+
"recordId",
|
|
12066
|
+
"decisionSource"
|
|
12067
|
+
],
|
|
12068
|
+
"additionalProperties": false,
|
|
12069
|
+
"description": "Records that a live authorization record from an earlier human decision in this session contained a permission proposal, so it ran without another prompt. This mints no authority: it accounts for one more effect against the prior grant, which is what lets a replayed session agree with the live one about how much of that grant is left.",
|
|
12070
|
+
"title": "PermissionCarriedForwardData",
|
|
12071
|
+
"stability": "experimental"
|
|
12072
|
+
},
|
|
12073
|
+
"PermissionCarriedForwardEvent": {
|
|
12074
|
+
"type": "object",
|
|
12075
|
+
"properties": {
|
|
12076
|
+
"id": {
|
|
12077
|
+
"type": "string",
|
|
12078
|
+
"format": "uuid",
|
|
12079
|
+
"description": "Unique event identifier (UUID v4), generated when the event is emitted"
|
|
12080
|
+
},
|
|
12081
|
+
"timestamp": {
|
|
12082
|
+
"type": "string",
|
|
12083
|
+
"format": "date-time",
|
|
12084
|
+
"description": "ISO 8601 timestamp when the event was created"
|
|
12085
|
+
},
|
|
12086
|
+
"parentId": {
|
|
12087
|
+
"anyOf": [
|
|
12088
|
+
{
|
|
12089
|
+
"type": "string",
|
|
12090
|
+
"format": "uuid"
|
|
12091
|
+
},
|
|
12092
|
+
{
|
|
12093
|
+
"type": "null"
|
|
12094
|
+
}
|
|
12095
|
+
],
|
|
12096
|
+
"description": "ID of the chronologically preceding event in the session, forming a linked chain. Null for the first event."
|
|
12097
|
+
},
|
|
12098
|
+
"ephemeral": {
|
|
12099
|
+
"type": "boolean",
|
|
12100
|
+
"description": "When true, the event is transient and not persisted to the session event log on disk"
|
|
12101
|
+
},
|
|
12102
|
+
"agentId": {
|
|
12103
|
+
"type": "string",
|
|
12104
|
+
"description": "Sub-agent instance identifier. Absent for events from the root/main agent and session-level events."
|
|
12105
|
+
},
|
|
12106
|
+
"type": {
|
|
12107
|
+
"type": "string",
|
|
12108
|
+
"const": "permission.carriedForward",
|
|
12109
|
+
"description": "Type discriminator. Always \"permission.carriedForward\"."
|
|
12110
|
+
},
|
|
12111
|
+
"data": {
|
|
12112
|
+
"$ref": "#/definitions/PermissionCarriedForwardData",
|
|
12113
|
+
"description": "Records that a live authorization record from an earlier human decision in this session contained a permission proposal, so it ran without another prompt. This mints no authority: it accounts for one more effect against the prior grant, which is what lets a replayed session agree with the live one about how much of that grant is left."
|
|
12114
|
+
}
|
|
12115
|
+
},
|
|
12116
|
+
"required": [
|
|
12117
|
+
"id",
|
|
12118
|
+
"timestamp",
|
|
12119
|
+
"parentId",
|
|
12120
|
+
"type",
|
|
12121
|
+
"data"
|
|
12122
|
+
],
|
|
12123
|
+
"additionalProperties": false,
|
|
12124
|
+
"description": "Session event \"permission.carriedForward\". Records that a live authorization record from an earlier human decision in this session contained a permission proposal, so it ran without another prompt. This mints no authority: it accounts for one more effect against the prior grant, which is what lets a replayed session agree with the live one about how much of that grant is left.",
|
|
12125
|
+
"title": "PermissionCarriedForwardEvent",
|
|
12126
|
+
"stability": "experimental"
|
|
12127
|
+
},
|
|
11935
12128
|
"PermissionCompletedData": {
|
|
11936
12129
|
"type": "object",
|
|
11937
12130
|
"properties": {
|
|
@@ -11946,6 +12139,11 @@
|
|
|
11946
12139
|
"result": {
|
|
11947
12140
|
"$ref": "#/definitions/PermissionResult",
|
|
11948
12141
|
"description": "The result of the permission request"
|
|
12142
|
+
},
|
|
12143
|
+
"decisionSource": {
|
|
12144
|
+
"$ref": "#/definitions/PermissionDecisionSource",
|
|
12145
|
+
"description": "Who decided this permission request. Absent on completions recorded before this field existed, which consumers must treat as \"not a human decision\" rather than assuming one. Authorization records are minted only for `human_response`; an assisted-approval verdict, a host policy, an unattended fallback, and a hook resolution all produce the same `result` a person does, so this is the only field that distinguishes them.",
|
|
12146
|
+
"stability": "experimental"
|
|
11949
12147
|
}
|
|
11950
12148
|
},
|
|
11951
12149
|
"required": [
|
|
@@ -12010,6 +12208,25 @@
|
|
|
12010
12208
|
"description": "Session event \"permission.completed\". Permission request completion notification signaling UI dismissal",
|
|
12011
12209
|
"title": "PermissionCompletedEvent"
|
|
12012
12210
|
},
|
|
12211
|
+
"PermissionDecisionSource": {
|
|
12212
|
+
"type": "string",
|
|
12213
|
+
"enum": [
|
|
12214
|
+
"assisted_approval",
|
|
12215
|
+
"human_response",
|
|
12216
|
+
"host_policy",
|
|
12217
|
+
"unattended_fallback",
|
|
12218
|
+
"authorization_carry_forward"
|
|
12219
|
+
],
|
|
12220
|
+
"description": "Controlled reason or actor responsible for a permission response.",
|
|
12221
|
+
"title": "PermissionDecisionSource",
|
|
12222
|
+
"x-enumDescriptions": {
|
|
12223
|
+
"assisted_approval": "The response followed the assisted-approval judge recommendation.",
|
|
12224
|
+
"human_response": "A human supplied the response through an interactive prompt.",
|
|
12225
|
+
"host_policy": "The host applied a standing policy or override rather than a judge recommendation or human decision.",
|
|
12226
|
+
"unattended_fallback": "The host denied the request because no interactive user response was available.",
|
|
12227
|
+
"authorization_carry_forward": "A live authorization record from an earlier human decision in this session contained the proposal, so it ran without another prompt. This is not a new human decision and never mints authority of its own."
|
|
12228
|
+
}
|
|
12229
|
+
},
|
|
12013
12230
|
"PermissionDeniedByContentExclusionPolicy": {
|
|
12014
12231
|
"type": "object",
|
|
12015
12232
|
"properties": {
|
|
@@ -12125,84 +12342,368 @@
|
|
|
12125
12342
|
"description": "Permission response variant denied because no approval rule matched and user confirmation was unavailable.",
|
|
12126
12343
|
"title": "PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser"
|
|
12127
12344
|
},
|
|
12128
|
-
"
|
|
12129
|
-
"type": "
|
|
12130
|
-
"
|
|
12131
|
-
"
|
|
12132
|
-
|
|
12133
|
-
|
|
12134
|
-
|
|
12135
|
-
"description": "Permission mode for the session.",
|
|
12136
|
-
"title": "PermissionMode",
|
|
12137
|
-
"x-enumDescriptions": {
|
|
12138
|
-
"manual": "Permission requests follow the normal approval flow.",
|
|
12139
|
-
"assisted": "Permission requests include an LLM safety recommendation; clients may automatically approve requests judged acceptable.",
|
|
12140
|
-
"allow-all": "Tool, path, and URL permission requests are automatically approved."
|
|
12141
|
-
},
|
|
12142
|
-
"stability": "experimental"
|
|
12143
|
-
},
|
|
12144
|
-
"PermissionPromptRequest": {
|
|
12145
|
-
"anyOf": [
|
|
12146
|
-
{
|
|
12147
|
-
"$ref": "#/definitions/PermissionPromptRequestCommands",
|
|
12148
|
-
"description": "Shell command permission prompt"
|
|
12149
|
-
},
|
|
12150
|
-
{
|
|
12151
|
-
"$ref": "#/definitions/PermissionPromptRequestWrite",
|
|
12152
|
-
"description": "File write permission prompt"
|
|
12153
|
-
},
|
|
12154
|
-
{
|
|
12155
|
-
"$ref": "#/definitions/PermissionPromptRequestRead",
|
|
12156
|
-
"description": "File read permission prompt"
|
|
12157
|
-
},
|
|
12158
|
-
{
|
|
12159
|
-
"$ref": "#/definitions/PermissionPromptRequestMcp",
|
|
12160
|
-
"description": "MCP tool invocation permission prompt"
|
|
12161
|
-
},
|
|
12162
|
-
{
|
|
12163
|
-
"$ref": "#/definitions/PermissionPromptRequestUrl",
|
|
12164
|
-
"description": "URL access permission prompt"
|
|
12345
|
+
"PermissionMessageAuthorizationData": {
|
|
12346
|
+
"type": "object",
|
|
12347
|
+
"properties": {
|
|
12348
|
+
"recordId": {
|
|
12349
|
+
"type": "string",
|
|
12350
|
+
"description": "Deterministic identity of the record, derived from the turn and span offsets so re-extracting the same span mints nothing new.",
|
|
12351
|
+
"stability": "experimental"
|
|
12165
12352
|
},
|
|
12166
|
-
{
|
|
12167
|
-
"
|
|
12168
|
-
"
|
|
12353
|
+
"turnIndex": {
|
|
12354
|
+
"type": "integer",
|
|
12355
|
+
"minimum": 0,
|
|
12356
|
+
"description": "The human turn the quoted span was read from.",
|
|
12357
|
+
"stability": "experimental"
|
|
12169
12358
|
},
|
|
12170
|
-
{
|
|
12171
|
-
"$ref": "#/definitions/
|
|
12172
|
-
"description": "
|
|
12359
|
+
"polarity": {
|
|
12360
|
+
"$ref": "#/definitions/PermissionMessageAuthorizationPolarity",
|
|
12361
|
+
"description": "Whether the claim granted or denied authority.",
|
|
12362
|
+
"stability": "experimental"
|
|
12173
12363
|
},
|
|
12174
|
-
{
|
|
12175
|
-
"
|
|
12176
|
-
"description": "
|
|
12364
|
+
"actionClass": {
|
|
12365
|
+
"type": "string",
|
|
12366
|
+
"description": "The kind of effect authorized, as an action-class identifier.",
|
|
12367
|
+
"stability": "experimental"
|
|
12177
12368
|
},
|
|
12178
|
-
{
|
|
12179
|
-
"
|
|
12180
|
-
"
|
|
12369
|
+
"spanStart": {
|
|
12370
|
+
"type": "integer",
|
|
12371
|
+
"minimum": 0,
|
|
12372
|
+
"description": "Start byte offset of the authorizing span within the turn.",
|
|
12373
|
+
"stability": "experimental"
|
|
12181
12374
|
},
|
|
12182
|
-
{
|
|
12183
|
-
"
|
|
12184
|
-
"
|
|
12375
|
+
"spanEnd": {
|
|
12376
|
+
"type": "integer",
|
|
12377
|
+
"minimum": 0,
|
|
12378
|
+
"description": "End byte offset of the authorizing span within the turn.",
|
|
12379
|
+
"stability": "experimental"
|
|
12185
12380
|
},
|
|
12186
|
-
{
|
|
12187
|
-
"
|
|
12188
|
-
"
|
|
12381
|
+
"targetMembers": {
|
|
12382
|
+
"type": "array",
|
|
12383
|
+
"items": {
|
|
12384
|
+
"type": "string"
|
|
12385
|
+
},
|
|
12386
|
+
"default": [],
|
|
12387
|
+
"description": "Concrete named targets that appear verbatim inside the span.",
|
|
12388
|
+
"stability": "experimental"
|
|
12189
12389
|
},
|
|
12190
|
-
{
|
|
12191
|
-
"
|
|
12192
|
-
"description": "
|
|
12390
|
+
"task": {
|
|
12391
|
+
"type": "string",
|
|
12392
|
+
"description": "The task the permission is scoped to, when the human named one.",
|
|
12393
|
+
"stability": "experimental"
|
|
12193
12394
|
},
|
|
12194
|
-
{
|
|
12195
|
-
"
|
|
12196
|
-
"
|
|
12395
|
+
"world": {
|
|
12396
|
+
"description": "The trusted version discriminator, when one exists. Exact shell-command grants carry the byte-identical commands grounded in the human span; world-derived classes carry a file object, remote tip, or runner only when that state was captured safely. An opaque object mirroring the runtime's adjacently-tagged resolution.",
|
|
12397
|
+
"x-opaque-json": true,
|
|
12398
|
+
"stability": "experimental"
|
|
12197
12399
|
}
|
|
12400
|
+
},
|
|
12401
|
+
"required": [
|
|
12402
|
+
"recordId",
|
|
12403
|
+
"turnIndex",
|
|
12404
|
+
"polarity",
|
|
12405
|
+
"actionClass",
|
|
12406
|
+
"spanStart",
|
|
12407
|
+
"spanEnd"
|
|
12198
12408
|
],
|
|
12199
|
-
"
|
|
12200
|
-
"
|
|
12409
|
+
"additionalProperties": false,
|
|
12410
|
+
"description": "Freezes one blinded, verbatim-verified authorization claim the runtime minted from a human user message, so a resumed session re-establishes the same grant deterministically instead of re-running the extraction model. This mints no authority on its own: it records what a blinded proposer pointed at and the trusted discriminator the runtime established, and deterministic establishment runs on replay. Persisted so recorded authority survives compaction and process resume.",
|
|
12411
|
+
"title": "PermissionMessageAuthorizationData",
|
|
12412
|
+
"stability": "experimental"
|
|
12201
12413
|
},
|
|
12202
|
-
"
|
|
12414
|
+
"PermissionMessageAuthorizationDegradedData": {
|
|
12203
12415
|
"type": "object",
|
|
12204
12416
|
"properties": {
|
|
12205
|
-
"
|
|
12417
|
+
"turnIndex": {
|
|
12418
|
+
"type": "integer",
|
|
12419
|
+
"minimum": 0,
|
|
12420
|
+
"description": "The human turn that could not be represented safely.",
|
|
12421
|
+
"stability": "experimental"
|
|
12422
|
+
}
|
|
12423
|
+
},
|
|
12424
|
+
"required": [
|
|
12425
|
+
"turnIndex"
|
|
12426
|
+
],
|
|
12427
|
+
"additionalProperties": false,
|
|
12428
|
+
"description": "Records that message-backed authorization could not safely represent one human turn before compaction. The runtime may compact the original message after this marker is durable, but message-derived carry-forward and assisted auto-approval remain disabled for the rest of the session so subsequent commands continue through the ordinary permission prompt.",
|
|
12429
|
+
"title": "PermissionMessageAuthorizationDegradedData",
|
|
12430
|
+
"stability": "experimental"
|
|
12431
|
+
},
|
|
12432
|
+
"PermissionMessageAuthorizationDegradedEvent": {
|
|
12433
|
+
"type": "object",
|
|
12434
|
+
"properties": {
|
|
12435
|
+
"id": {
|
|
12436
|
+
"type": "string",
|
|
12437
|
+
"format": "uuid",
|
|
12438
|
+
"description": "Unique event identifier (UUID v4), generated when the event is emitted"
|
|
12439
|
+
},
|
|
12440
|
+
"timestamp": {
|
|
12441
|
+
"type": "string",
|
|
12442
|
+
"format": "date-time",
|
|
12443
|
+
"description": "ISO 8601 timestamp when the event was created"
|
|
12444
|
+
},
|
|
12445
|
+
"parentId": {
|
|
12446
|
+
"anyOf": [
|
|
12447
|
+
{
|
|
12448
|
+
"type": "string",
|
|
12449
|
+
"format": "uuid"
|
|
12450
|
+
},
|
|
12451
|
+
{
|
|
12452
|
+
"type": "null"
|
|
12453
|
+
}
|
|
12454
|
+
],
|
|
12455
|
+
"description": "ID of the chronologically preceding event in the session, forming a linked chain. Null for the first event."
|
|
12456
|
+
},
|
|
12457
|
+
"ephemeral": {
|
|
12458
|
+
"type": "boolean",
|
|
12459
|
+
"description": "When true, the event is transient and not persisted to the session event log on disk"
|
|
12460
|
+
},
|
|
12461
|
+
"agentId": {
|
|
12462
|
+
"type": "string",
|
|
12463
|
+
"description": "Sub-agent instance identifier. Absent for events from the root/main agent and session-level events."
|
|
12464
|
+
},
|
|
12465
|
+
"type": {
|
|
12466
|
+
"type": "string",
|
|
12467
|
+
"const": "permission.messageAuthorizationDegraded",
|
|
12468
|
+
"description": "Type discriminator. Always \"permission.messageAuthorizationDegraded\"."
|
|
12469
|
+
},
|
|
12470
|
+
"data": {
|
|
12471
|
+
"$ref": "#/definitions/PermissionMessageAuthorizationDegradedData",
|
|
12472
|
+
"description": "Records that message-backed authorization could not safely represent one human turn before compaction. The runtime may compact the original message after this marker is durable, but message-derived carry-forward and assisted auto-approval remain disabled for the rest of the session so subsequent commands continue through the ordinary permission prompt."
|
|
12473
|
+
}
|
|
12474
|
+
},
|
|
12475
|
+
"required": [
|
|
12476
|
+
"id",
|
|
12477
|
+
"timestamp",
|
|
12478
|
+
"parentId",
|
|
12479
|
+
"type",
|
|
12480
|
+
"data"
|
|
12481
|
+
],
|
|
12482
|
+
"additionalProperties": false,
|
|
12483
|
+
"description": "Session event \"permission.messageAuthorizationDegraded\". Records that message-backed authorization could not safely represent one human turn before compaction. The runtime may compact the original message after this marker is durable, but message-derived carry-forward and assisted auto-approval remain disabled for the rest of the session so subsequent commands continue through the ordinary permission prompt.",
|
|
12484
|
+
"title": "PermissionMessageAuthorizationDegradedEvent",
|
|
12485
|
+
"stability": "experimental"
|
|
12486
|
+
},
|
|
12487
|
+
"PermissionMessageAuthorizationEvent": {
|
|
12488
|
+
"type": "object",
|
|
12489
|
+
"properties": {
|
|
12490
|
+
"id": {
|
|
12491
|
+
"type": "string",
|
|
12492
|
+
"format": "uuid",
|
|
12493
|
+
"description": "Unique event identifier (UUID v4), generated when the event is emitted"
|
|
12494
|
+
},
|
|
12495
|
+
"timestamp": {
|
|
12496
|
+
"type": "string",
|
|
12497
|
+
"format": "date-time",
|
|
12498
|
+
"description": "ISO 8601 timestamp when the event was created"
|
|
12499
|
+
},
|
|
12500
|
+
"parentId": {
|
|
12501
|
+
"anyOf": [
|
|
12502
|
+
{
|
|
12503
|
+
"type": "string",
|
|
12504
|
+
"format": "uuid"
|
|
12505
|
+
},
|
|
12506
|
+
{
|
|
12507
|
+
"type": "null"
|
|
12508
|
+
}
|
|
12509
|
+
],
|
|
12510
|
+
"description": "ID of the chronologically preceding event in the session, forming a linked chain. Null for the first event."
|
|
12511
|
+
},
|
|
12512
|
+
"ephemeral": {
|
|
12513
|
+
"type": "boolean",
|
|
12514
|
+
"description": "When true, the event is transient and not persisted to the session event log on disk"
|
|
12515
|
+
},
|
|
12516
|
+
"agentId": {
|
|
12517
|
+
"type": "string",
|
|
12518
|
+
"description": "Sub-agent instance identifier. Absent for events from the root/main agent and session-level events."
|
|
12519
|
+
},
|
|
12520
|
+
"type": {
|
|
12521
|
+
"type": "string",
|
|
12522
|
+
"const": "permission.messageAuthorization",
|
|
12523
|
+
"description": "Type discriminator. Always \"permission.messageAuthorization\"."
|
|
12524
|
+
},
|
|
12525
|
+
"data": {
|
|
12526
|
+
"$ref": "#/definitions/PermissionMessageAuthorizationData",
|
|
12527
|
+
"description": "Freezes one blinded, verbatim-verified authorization claim the runtime minted from a human user message, so a resumed session re-establishes the same grant deterministically instead of re-running the extraction model. This mints no authority on its own: it records what a blinded proposer pointed at and the trusted discriminator the runtime established, and deterministic establishment runs on replay. Persisted so recorded authority survives compaction and process resume."
|
|
12528
|
+
}
|
|
12529
|
+
},
|
|
12530
|
+
"required": [
|
|
12531
|
+
"id",
|
|
12532
|
+
"timestamp",
|
|
12533
|
+
"parentId",
|
|
12534
|
+
"type",
|
|
12535
|
+
"data"
|
|
12536
|
+
],
|
|
12537
|
+
"additionalProperties": false,
|
|
12538
|
+
"description": "Session event \"permission.messageAuthorization\". Freezes one blinded, verbatim-verified authorization claim the runtime minted from a human user message, so a resumed session re-establishes the same grant deterministically instead of re-running the extraction model. This mints no authority on its own: it records what a blinded proposer pointed at and the trusted discriminator the runtime established, and deterministic establishment runs on replay. Persisted so recorded authority survives compaction and process resume.",
|
|
12539
|
+
"title": "PermissionMessageAuthorizationEvent",
|
|
12540
|
+
"stability": "experimental"
|
|
12541
|
+
},
|
|
12542
|
+
"PermissionMessageAuthorizationPolarity": {
|
|
12543
|
+
"type": "string",
|
|
12544
|
+
"enum": [
|
|
12545
|
+
"grant",
|
|
12546
|
+
"denial"
|
|
12547
|
+
],
|
|
12548
|
+
"description": "Which direction a message-backed authorization claim moves authority in.",
|
|
12549
|
+
"title": "PermissionMessageAuthorizationPolarity",
|
|
12550
|
+
"x-enumDescriptions": {
|
|
12551
|
+
"grant": "The human's words authorized an effect.",
|
|
12552
|
+
"denial": "The human's words refused an effect."
|
|
12553
|
+
},
|
|
12554
|
+
"stability": "experimental"
|
|
12555
|
+
},
|
|
12556
|
+
"PermissionMessageAuthorizationReadData": {
|
|
12557
|
+
"type": "object",
|
|
12558
|
+
"properties": {
|
|
12559
|
+
"turnIndex": {
|
|
12560
|
+
"type": "integer",
|
|
12561
|
+
"minimum": 0,
|
|
12562
|
+
"description": "The human turn that was read by the proposer.",
|
|
12563
|
+
"stability": "experimental"
|
|
12564
|
+
}
|
|
12565
|
+
},
|
|
12566
|
+
"required": [
|
|
12567
|
+
"turnIndex"
|
|
12568
|
+
],
|
|
12569
|
+
"additionalProperties": false,
|
|
12570
|
+
"description": "Records that one human turn has been read by the blinded authorization proposer, whether or not it minted anything, so a resumed session does not re-run the extraction model on a turn the live session already read. Persisted purely to avoid wasted model calls across resume; it is never a correctness mechanism.",
|
|
12571
|
+
"title": "PermissionMessageAuthorizationReadData",
|
|
12572
|
+
"stability": "experimental"
|
|
12573
|
+
},
|
|
12574
|
+
"PermissionMessageAuthorizationReadEvent": {
|
|
12575
|
+
"type": "object",
|
|
12576
|
+
"properties": {
|
|
12577
|
+
"id": {
|
|
12578
|
+
"type": "string",
|
|
12579
|
+
"format": "uuid",
|
|
12580
|
+
"description": "Unique event identifier (UUID v4), generated when the event is emitted"
|
|
12581
|
+
},
|
|
12582
|
+
"timestamp": {
|
|
12583
|
+
"type": "string",
|
|
12584
|
+
"format": "date-time",
|
|
12585
|
+
"description": "ISO 8601 timestamp when the event was created"
|
|
12586
|
+
},
|
|
12587
|
+
"parentId": {
|
|
12588
|
+
"anyOf": [
|
|
12589
|
+
{
|
|
12590
|
+
"type": "string",
|
|
12591
|
+
"format": "uuid"
|
|
12592
|
+
},
|
|
12593
|
+
{
|
|
12594
|
+
"type": "null"
|
|
12595
|
+
}
|
|
12596
|
+
],
|
|
12597
|
+
"description": "ID of the chronologically preceding event in the session, forming a linked chain. Null for the first event."
|
|
12598
|
+
},
|
|
12599
|
+
"ephemeral": {
|
|
12600
|
+
"type": "boolean",
|
|
12601
|
+
"description": "When true, the event is transient and not persisted to the session event log on disk"
|
|
12602
|
+
},
|
|
12603
|
+
"agentId": {
|
|
12604
|
+
"type": "string",
|
|
12605
|
+
"description": "Sub-agent instance identifier. Absent for events from the root/main agent and session-level events."
|
|
12606
|
+
},
|
|
12607
|
+
"type": {
|
|
12608
|
+
"type": "string",
|
|
12609
|
+
"const": "permission.messageAuthorizationRead",
|
|
12610
|
+
"description": "Type discriminator. Always \"permission.messageAuthorizationRead\"."
|
|
12611
|
+
},
|
|
12612
|
+
"data": {
|
|
12613
|
+
"$ref": "#/definitions/PermissionMessageAuthorizationReadData",
|
|
12614
|
+
"description": "Records that one human turn has been read by the blinded authorization proposer, whether or not it minted anything, so a resumed session does not re-run the extraction model on a turn the live session already read. Persisted purely to avoid wasted model calls across resume; it is never a correctness mechanism."
|
|
12615
|
+
}
|
|
12616
|
+
},
|
|
12617
|
+
"required": [
|
|
12618
|
+
"id",
|
|
12619
|
+
"timestamp",
|
|
12620
|
+
"parentId",
|
|
12621
|
+
"type",
|
|
12622
|
+
"data"
|
|
12623
|
+
],
|
|
12624
|
+
"additionalProperties": false,
|
|
12625
|
+
"description": "Session event \"permission.messageAuthorizationRead\". Records that one human turn has been read by the blinded authorization proposer, whether or not it minted anything, so a resumed session does not re-run the extraction model on a turn the live session already read. Persisted purely to avoid wasted model calls across resume; it is never a correctness mechanism.",
|
|
12626
|
+
"title": "PermissionMessageAuthorizationReadEvent",
|
|
12627
|
+
"stability": "experimental"
|
|
12628
|
+
},
|
|
12629
|
+
"PermissionMode": {
|
|
12630
|
+
"type": "string",
|
|
12631
|
+
"enum": [
|
|
12632
|
+
"manual",
|
|
12633
|
+
"assisted",
|
|
12634
|
+
"allow-all"
|
|
12635
|
+
],
|
|
12636
|
+
"description": "Permission mode for the session.",
|
|
12637
|
+
"title": "PermissionMode",
|
|
12638
|
+
"x-enumDescriptions": {
|
|
12639
|
+
"manual": "Permission requests follow the normal approval flow.",
|
|
12640
|
+
"assisted": "Permission requests include an LLM safety recommendation; clients may automatically approve requests judged acceptable.",
|
|
12641
|
+
"allow-all": "Tool, path, and URL permission requests are automatically approved."
|
|
12642
|
+
},
|
|
12643
|
+
"stability": "experimental"
|
|
12644
|
+
},
|
|
12645
|
+
"PermissionPromptRequest": {
|
|
12646
|
+
"anyOf": [
|
|
12647
|
+
{
|
|
12648
|
+
"$ref": "#/definitions/PermissionPromptRequestCommands",
|
|
12649
|
+
"description": "Shell command permission prompt"
|
|
12650
|
+
},
|
|
12651
|
+
{
|
|
12652
|
+
"$ref": "#/definitions/PermissionPromptRequestWrite",
|
|
12653
|
+
"description": "File write permission prompt"
|
|
12654
|
+
},
|
|
12655
|
+
{
|
|
12656
|
+
"$ref": "#/definitions/PermissionPromptRequestRead",
|
|
12657
|
+
"description": "File read permission prompt"
|
|
12658
|
+
},
|
|
12659
|
+
{
|
|
12660
|
+
"$ref": "#/definitions/PermissionPromptRequestMcp",
|
|
12661
|
+
"description": "MCP tool invocation permission prompt"
|
|
12662
|
+
},
|
|
12663
|
+
{
|
|
12664
|
+
"$ref": "#/definitions/PermissionPromptRequestUrl",
|
|
12665
|
+
"description": "URL access permission prompt"
|
|
12666
|
+
},
|
|
12667
|
+
{
|
|
12668
|
+
"$ref": "#/definitions/PermissionPromptRequestMemory",
|
|
12669
|
+
"description": "Memory operation permission prompt"
|
|
12670
|
+
},
|
|
12671
|
+
{
|
|
12672
|
+
"$ref": "#/definitions/PermissionPromptRequestCustomTool",
|
|
12673
|
+
"description": "Custom tool invocation permission prompt"
|
|
12674
|
+
},
|
|
12675
|
+
{
|
|
12676
|
+
"$ref": "#/definitions/PermissionPromptRequestPath",
|
|
12677
|
+
"description": "Path access permission prompt"
|
|
12678
|
+
},
|
|
12679
|
+
{
|
|
12680
|
+
"$ref": "#/definitions/PermissionPromptRequestHook",
|
|
12681
|
+
"description": "Hook confirmation permission prompt"
|
|
12682
|
+
},
|
|
12683
|
+
{
|
|
12684
|
+
"$ref": "#/definitions/PermissionPromptRequestExtensionManagement",
|
|
12685
|
+
"description": "Extension management permission prompt"
|
|
12686
|
+
},
|
|
12687
|
+
{
|
|
12688
|
+
"$ref": "#/definitions/PermissionPromptRequestFactory",
|
|
12689
|
+
"description": "Factory run or authoring permission prompt"
|
|
12690
|
+
},
|
|
12691
|
+
{
|
|
12692
|
+
"$ref": "#/definitions/PermissionPromptRequestExtensionPermissionAccess",
|
|
12693
|
+
"description": "Extension permission access prompt"
|
|
12694
|
+
},
|
|
12695
|
+
{
|
|
12696
|
+
"$ref": "#/definitions/PermissionPromptRequestExtensionEnvAccess",
|
|
12697
|
+
"description": "Extension sensitive environment variable access prompt"
|
|
12698
|
+
}
|
|
12699
|
+
],
|
|
12700
|
+
"description": "Derived user-facing permission prompt details for UI consumers",
|
|
12701
|
+
"title": "PermissionPromptRequest"
|
|
12702
|
+
},
|
|
12703
|
+
"PermissionPromptRequestCommands": {
|
|
12704
|
+
"type": "object",
|
|
12705
|
+
"properties": {
|
|
12706
|
+
"kind": {
|
|
12206
12707
|
"type": "string",
|
|
12207
12708
|
"const": "commands",
|
|
12208
12709
|
"description": "Prompt kind discriminator"
|
|
@@ -12242,6 +12743,18 @@
|
|
|
12242
12743
|
"managedApprovalRequired": {
|
|
12243
12744
|
"type": "boolean",
|
|
12244
12745
|
"description": "Whether managed policy requires a human response and forbids host auto-approval"
|
|
12746
|
+
},
|
|
12747
|
+
"requestSandboxBypass": {
|
|
12748
|
+
"type": "boolean",
|
|
12749
|
+
"description": "True when the shell command is requesting sandbox escalation. This is a request, not a grant."
|
|
12750
|
+
},
|
|
12751
|
+
"requestSandboxPermissive": {
|
|
12752
|
+
"type": "boolean",
|
|
12753
|
+
"description": "True when the escalation is a permissive retry that keeps the sandbox and network policy attached while recording file and process accesses instead of blocking them."
|
|
12754
|
+
},
|
|
12755
|
+
"requestSandboxBypassReason": {
|
|
12756
|
+
"type": "string",
|
|
12757
|
+
"description": "Reason for the sandbox escalation request."
|
|
12245
12758
|
}
|
|
12246
12759
|
},
|
|
12247
12760
|
"required": [
|
|
@@ -12718,6 +13231,11 @@
|
|
|
12718
13231
|
"type": "string",
|
|
12719
13232
|
"description": "Path of the file or directory being read"
|
|
12720
13233
|
},
|
|
13234
|
+
"resolvedPath": {
|
|
13235
|
+
"type": "string",
|
|
13236
|
+
"description": "Runtime-resolved canonical path used for authorization identity checks. Internal and experimental; clients should continue to display path.",
|
|
13237
|
+
"stability": "experimental"
|
|
13238
|
+
},
|
|
12721
13239
|
"assistedApproval": {
|
|
12722
13240
|
"$ref": "#/definitions/PermissionAssistedApproval",
|
|
12723
13241
|
"description": "Assisted-approval judge information for this request; present only in assisted mode.",
|
|
@@ -12808,6 +13326,11 @@
|
|
|
12808
13326
|
"type": "string",
|
|
12809
13327
|
"description": "Path of the file being written to"
|
|
12810
13328
|
},
|
|
13329
|
+
"resolvedPath": {
|
|
13330
|
+
"type": "string",
|
|
13331
|
+
"description": "Runtime-resolved canonical path used for authorization identity checks. Internal and experimental; clients should continue to display fileName.",
|
|
13332
|
+
"stability": "experimental"
|
|
13333
|
+
},
|
|
12811
13334
|
"diff": {
|
|
12812
13335
|
"type": "string",
|
|
12813
13336
|
"description": "Unified diff showing the proposed changes"
|
|
@@ -13425,6 +13948,11 @@
|
|
|
13425
13948
|
"type": "string",
|
|
13426
13949
|
"description": "Path of the file or directory being read"
|
|
13427
13950
|
},
|
|
13951
|
+
"resolvedPath": {
|
|
13952
|
+
"type": "string",
|
|
13953
|
+
"description": "Runtime-resolved canonical path used for authorization identity checks. Internal and experimental; clients should continue to display path.",
|
|
13954
|
+
"stability": "experimental"
|
|
13955
|
+
},
|
|
13428
13956
|
"requestSandboxBypass": {
|
|
13429
13957
|
"type": "boolean",
|
|
13430
13958
|
"description": "True when the tool is asking to re-run this search outside the sandbox, after a sandboxed run looked blocked (host opted in via sandbox.allowBypass). The model cannot ask for this; only the tool raises it. This is a request, not a grant: the search runs unsandboxed only if the user approves this permission request. Hosts should highlight the elevated risk in the approval UI."
|
|
@@ -13490,6 +14018,19 @@
|
|
|
13490
14018
|
},
|
|
13491
14019
|
"description": "File paths that may be read or written by the command"
|
|
13492
14020
|
},
|
|
14021
|
+
"resolvedWorkingDirectory": {
|
|
14022
|
+
"type": "string",
|
|
14023
|
+
"description": "Runtime-resolved canonical working directory the command runs in, used for authorization identity checks. Internal and experimental; clients should not display it.",
|
|
14024
|
+
"stability": "experimental"
|
|
14025
|
+
},
|
|
14026
|
+
"resolvedPaths": {
|
|
14027
|
+
"type": "object",
|
|
14028
|
+
"additionalProperties": {
|
|
14029
|
+
"type": "string"
|
|
14030
|
+
},
|
|
14031
|
+
"description": "Runtime-resolved canonical object each possiblePaths entry names, keyed by the requested spelling, used for authorization identity checks. Internal and experimental; clients should continue to display possiblePaths.",
|
|
14032
|
+
"stability": "experimental"
|
|
14033
|
+
},
|
|
13493
14034
|
"possibleUrls": {
|
|
13494
14035
|
"type": "array",
|
|
13495
14036
|
"items": {
|
|
@@ -13514,6 +14055,10 @@
|
|
|
13514
14055
|
"type": "boolean",
|
|
13515
14056
|
"description": "True when the tool is asking to run this command outside the sandbox, either because the command detaches and cannot be sandboxed at all, or because a sandboxed run looked blocked (host opted in via sandbox.allowBypass). The model cannot ask for this; only the tool raises it. This is a request, not a grant: the command runs unsandboxed only if the user approves this permission request. Hosts should highlight the elevated risk in the approval UI."
|
|
13516
14057
|
},
|
|
14058
|
+
"requestSandboxPermissive": {
|
|
14059
|
+
"type": "boolean",
|
|
14060
|
+
"description": "True when the requested escalation is a permissive retry rather than a full bypass: the command re-runs inside the sandbox with its file and process restrictions recording instead of blocking, while the network policy stays enforced. Always accompanied by requestSandboxBypass, so hosts that do not recognize this field still treat the request as the escalation it is. Hosts that do recognize it must not describe the command as running outside the sandbox, which would overstate the privilege being granted."
|
|
14061
|
+
},
|
|
13517
14062
|
"requestSandboxBypassReason": {
|
|
13518
14063
|
"type": "string",
|
|
13519
14064
|
"description": "What the tool tells the user about the bypass on offer: which policy rule blocked the call, or why it cannot be sandboxed. Only meaningful when requestSandboxBypass is true."
|
|
@@ -13658,6 +14203,11 @@
|
|
|
13658
14203
|
"type": "string",
|
|
13659
14204
|
"description": "Path of the file being written to"
|
|
13660
14205
|
},
|
|
14206
|
+
"resolvedPath": {
|
|
14207
|
+
"type": "string",
|
|
14208
|
+
"description": "Runtime-resolved canonical path used for authorization identity checks. Internal and experimental; clients should continue to display fileName.",
|
|
14209
|
+
"stability": "experimental"
|
|
14210
|
+
},
|
|
13661
14211
|
"diff": {
|
|
13662
14212
|
"type": "string",
|
|
13663
14213
|
"description": "Unified diff showing the proposed changes"
|
|
@@ -13774,10 +14324,6 @@
|
|
|
13774
14324
|
"stability": "experimental"
|
|
13775
14325
|
}
|
|
13776
14326
|
},
|
|
13777
|
-
"required": [
|
|
13778
|
-
"previousMode",
|
|
13779
|
-
"mode"
|
|
13780
|
-
],
|
|
13781
14327
|
"additionalProperties": false,
|
|
13782
14328
|
"description": "Permission-mode transition details.",
|
|
13783
14329
|
"title": "PermissionsChangedData",
|
|
@@ -14234,6 +14780,21 @@
|
|
|
14234
14780
|
"detailed": "Request a detailed summary of the model's reasoning."
|
|
14235
14781
|
}
|
|
14236
14782
|
},
|
|
14783
|
+
"RecommendedAutoTier": {
|
|
14784
|
+
"type": "string",
|
|
14785
|
+
"enum": [
|
|
14786
|
+
"efficiency",
|
|
14787
|
+
"balance",
|
|
14788
|
+
"intelligence"
|
|
14789
|
+
],
|
|
14790
|
+
"description": "Auto preferences that Copilot API can recommend.",
|
|
14791
|
+
"title": "RecommendedAutoTier",
|
|
14792
|
+
"x-enumDescriptions": {
|
|
14793
|
+
"efficiency": "Optimize for efficiency.",
|
|
14794
|
+
"balance": "Balance efficiency and intelligence.",
|
|
14795
|
+
"intelligence": "Optimize for intelligence."
|
|
14796
|
+
}
|
|
14797
|
+
},
|
|
14237
14798
|
"RemediationAction": {
|
|
14238
14799
|
"type": "string",
|
|
14239
14800
|
"enum": [
|
|
@@ -14827,51 +15388,200 @@
|
|
|
14827
15388
|
"properties": {
|
|
14828
15389
|
"control": {
|
|
14829
15390
|
"$ref": "#/definitions/SandboxControl",
|
|
14830
|
-
"description": "Enforcement mechanism this decision describes"
|
|
15391
|
+
"description": "Enforcement mechanism this decision describes"
|
|
15392
|
+
},
|
|
15393
|
+
"outcome": {
|
|
15394
|
+
"$ref": "#/definitions/SandboxOutcome",
|
|
15395
|
+
"description": "Whether the sandboxed process launched under the named backend. Not the exit status of the command that ran inside it."
|
|
15396
|
+
},
|
|
15397
|
+
"toolCallId": {
|
|
15398
|
+
"type": [
|
|
15399
|
+
"string",
|
|
15400
|
+
"null"
|
|
15401
|
+
],
|
|
15402
|
+
"description": "Internal tool-call ID, used only to correlate the decision with its owning span. Omitted when the decision is not attributable to a tool call."
|
|
15403
|
+
},
|
|
15404
|
+
"platform": {
|
|
15405
|
+
"$ref": "#/definitions/SandboxPlatform",
|
|
15406
|
+
"description": "Host platform the sandbox is running on"
|
|
15407
|
+
},
|
|
15408
|
+
"backend": {
|
|
15409
|
+
"$ref": "#/definitions/SandboxBackend",
|
|
15410
|
+
"description": "Process-containment implementation backing the sandbox"
|
|
15411
|
+
},
|
|
15412
|
+
"enforcementPoint": {
|
|
15413
|
+
"$ref": "#/definitions/SandboxEnforcementPoint",
|
|
15414
|
+
"description": "Runtime subsystem that applied the policy"
|
|
15415
|
+
},
|
|
15416
|
+
"durationMs": {
|
|
15417
|
+
"type": "number",
|
|
15418
|
+
"minimum": 0,
|
|
15419
|
+
"description": "Wall-clock time spent spawning the sandboxed process, in milliseconds"
|
|
15420
|
+
},
|
|
15421
|
+
"degradationReason": {
|
|
15422
|
+
"anyOf": [
|
|
15423
|
+
{
|
|
15424
|
+
"$ref": "#/definitions/SandboxDegradationReason",
|
|
15425
|
+
"description": "Finite reason why sandbox enforcement is weaker than configured"
|
|
15426
|
+
},
|
|
15427
|
+
{
|
|
15428
|
+
"type": "null"
|
|
15429
|
+
}
|
|
15430
|
+
],
|
|
15431
|
+
"description": "Why enforcement is weaker than configured, when it is"
|
|
15432
|
+
},
|
|
15433
|
+
"kind": {
|
|
15434
|
+
"type": "string",
|
|
15435
|
+
"const": "spawn_completed",
|
|
15436
|
+
"description": "Sandbox decision variant discriminator."
|
|
15437
|
+
}
|
|
15438
|
+
},
|
|
15439
|
+
"required": [
|
|
15440
|
+
"kind",
|
|
15441
|
+
"control",
|
|
15442
|
+
"outcome",
|
|
15443
|
+
"platform",
|
|
15444
|
+
"backend",
|
|
15445
|
+
"enforcementPoint",
|
|
15446
|
+
"durationMs"
|
|
15447
|
+
],
|
|
15448
|
+
"additionalProperties": false
|
|
15449
|
+
},
|
|
15450
|
+
{
|
|
15451
|
+
"type": "object",
|
|
15452
|
+
"properties": {
|
|
15453
|
+
"control": {
|
|
15454
|
+
"$ref": "#/definitions/SandboxControl",
|
|
15455
|
+
"description": "Enforcement mechanism this decision describes"
|
|
15456
|
+
},
|
|
15457
|
+
"outcome": {
|
|
15458
|
+
"$ref": "#/definitions/SandboxOutcome",
|
|
15459
|
+
"description": "Observed enforcement state: `engaged`, `inactive`, or `failed`. Derived from runtime evidence, never from the configured posture or the compile-time target platform."
|
|
15460
|
+
},
|
|
15461
|
+
"toolCallId": {
|
|
15462
|
+
"type": [
|
|
15463
|
+
"string",
|
|
15464
|
+
"null"
|
|
15465
|
+
],
|
|
15466
|
+
"description": "Internal tool-call ID, used only to correlate the decision with its owning span. Omitted when the decision is not attributable to a tool call."
|
|
15467
|
+
},
|
|
15468
|
+
"platform": {
|
|
15469
|
+
"$ref": "#/definitions/SandboxPlatform",
|
|
15470
|
+
"description": "Host platform the sandbox is running on"
|
|
15471
|
+
},
|
|
15472
|
+
"backend": {
|
|
15473
|
+
"$ref": "#/definitions/SandboxBackend",
|
|
15474
|
+
"description": "Containment backend that engaged. `unsupported` for any state other than `engaged`, since no backend is known to have run."
|
|
15475
|
+
},
|
|
15476
|
+
"enforcementPoint": {
|
|
15477
|
+
"$ref": "#/definitions/SandboxEnforcementPoint",
|
|
15478
|
+
"description": "Runtime subsystem whose enforcement this describes"
|
|
15479
|
+
},
|
|
15480
|
+
"attestation": {
|
|
15481
|
+
"anyOf": [
|
|
15482
|
+
{
|
|
15483
|
+
"$ref": "#/definitions/SandboxAttestation",
|
|
15484
|
+
"description": "Runtime observation backing an enforcement-state or denial claim. Absent on `enforcement_state` when no observation backs the state."
|
|
15485
|
+
},
|
|
15486
|
+
{
|
|
15487
|
+
"type": "null"
|
|
15488
|
+
}
|
|
15489
|
+
],
|
|
15490
|
+
"description": "Runtime observation backing the state. Omitted for `inactive`, which has nothing to attest."
|
|
15491
|
+
},
|
|
15492
|
+
"command": {
|
|
15493
|
+
"type": [
|
|
15494
|
+
"string",
|
|
15495
|
+
"null"
|
|
15496
|
+
],
|
|
15497
|
+
"description": "Command the enforcement governed. Populated only when content capture is enabled, and only for shell commands; MCP, LSP, and search command lines are runtime plumbing."
|
|
15498
|
+
},
|
|
15499
|
+
"kind": {
|
|
15500
|
+
"type": "string",
|
|
15501
|
+
"const": "enforcement_state",
|
|
15502
|
+
"description": "Sandbox decision variant discriminator."
|
|
15503
|
+
}
|
|
15504
|
+
},
|
|
15505
|
+
"required": [
|
|
15506
|
+
"kind",
|
|
15507
|
+
"control",
|
|
15508
|
+
"outcome",
|
|
15509
|
+
"platform",
|
|
15510
|
+
"backend",
|
|
15511
|
+
"enforcementPoint"
|
|
15512
|
+
],
|
|
15513
|
+
"additionalProperties": false
|
|
15514
|
+
},
|
|
15515
|
+
{
|
|
15516
|
+
"type": "object",
|
|
15517
|
+
"properties": {
|
|
15518
|
+
"control": {
|
|
15519
|
+
"$ref": "#/definitions/SandboxControl",
|
|
15520
|
+
"description": "Sandbox control the denial belongs to. Follows from `denialClass`."
|
|
14831
15521
|
},
|
|
14832
15522
|
"outcome": {
|
|
14833
15523
|
"$ref": "#/definitions/SandboxOutcome",
|
|
14834
|
-
"description": "
|
|
15524
|
+
"description": "Always `denied`."
|
|
14835
15525
|
},
|
|
14836
15526
|
"toolCallId": {
|
|
14837
15527
|
"type": [
|
|
14838
15528
|
"string",
|
|
14839
15529
|
"null"
|
|
14840
15530
|
],
|
|
14841
|
-
"description": "
|
|
15531
|
+
"description": "Tool call the denial belongs to, for span correlation only. Never exported as a telemetry attribute or metric dimension."
|
|
14842
15532
|
},
|
|
14843
15533
|
"platform": {
|
|
14844
15534
|
"$ref": "#/definitions/SandboxPlatform",
|
|
14845
|
-
"description": "Host
|
|
14846
|
-
},
|
|
14847
|
-
"backend": {
|
|
14848
|
-
"$ref": "#/definitions/SandboxBackend",
|
|
14849
|
-
"description": "Process-containment implementation backing the sandbox"
|
|
15535
|
+
"description": "Host operating-system family"
|
|
14850
15536
|
},
|
|
14851
15537
|
"enforcementPoint": {
|
|
14852
15538
|
"$ref": "#/definitions/SandboxEnforcementPoint",
|
|
14853
|
-
"description": "Runtime subsystem that
|
|
15539
|
+
"description": "Runtime subsystem that performed the check"
|
|
14854
15540
|
},
|
|
14855
|
-
"
|
|
14856
|
-
"
|
|
14857
|
-
"
|
|
14858
|
-
"description": "Wall-clock time spent spawning the sandboxed process, in milliseconds"
|
|
15541
|
+
"denialClass": {
|
|
15542
|
+
"$ref": "#/definitions/SandboxDenialClass",
|
|
15543
|
+
"description": "Bounded class of the refused access."
|
|
14859
15544
|
},
|
|
14860
|
-
"
|
|
15545
|
+
"attestation": {
|
|
15546
|
+
"$ref": "#/definitions/SandboxAttestation",
|
|
15547
|
+
"description": "Runtime observation backing the denial."
|
|
15548
|
+
},
|
|
15549
|
+
"confidence": {
|
|
14861
15550
|
"anyOf": [
|
|
14862
15551
|
{
|
|
14863
|
-
"$ref": "#/definitions/
|
|
14864
|
-
"description": "
|
|
15552
|
+
"$ref": "#/definitions/SandboxDenialConfidence",
|
|
15553
|
+
"description": "How strong the evidence behind a denial is. A denial the sandbox itself recorded is a fact; one inferred from a command's output text is a judgement, and an analysis that cannot tell them apart will treat a false positive as enforcement."
|
|
14865
15554
|
},
|
|
14866
15555
|
{
|
|
14867
15556
|
"type": "null"
|
|
14868
15557
|
}
|
|
14869
15558
|
],
|
|
14870
|
-
"description": "
|
|
15559
|
+
"description": "How strong the evidence behind this denial is. Lets an analysis separate denials the sandbox recorded from ones inferred from output text, which otherwise look identical."
|
|
15560
|
+
},
|
|
15561
|
+
"deniedResource": {
|
|
15562
|
+
"type": [
|
|
15563
|
+
"string",
|
|
15564
|
+
"null"
|
|
15565
|
+
],
|
|
15566
|
+
"description": "Resource the check refused, when identified and content capture is enabled."
|
|
15567
|
+
},
|
|
15568
|
+
"command": {
|
|
15569
|
+
"type": [
|
|
15570
|
+
"string",
|
|
15571
|
+
"null"
|
|
15572
|
+
],
|
|
15573
|
+
"description": "Command whose execution the denial arose from. Populated only when content capture is enabled."
|
|
15574
|
+
},
|
|
15575
|
+
"processName": {
|
|
15576
|
+
"type": [
|
|
15577
|
+
"string",
|
|
15578
|
+
"null"
|
|
15579
|
+
],
|
|
15580
|
+
"description": "Executable image associated with the captured denial, normalized to a basename. Populated only when content capture is enabled."
|
|
14871
15581
|
},
|
|
14872
15582
|
"kind": {
|
|
14873
15583
|
"type": "string",
|
|
14874
|
-
"const": "
|
|
15584
|
+
"const": "access_denied",
|
|
14875
15585
|
"description": "Sandbox decision variant discriminator."
|
|
14876
15586
|
}
|
|
14877
15587
|
},
|
|
@@ -14880,57 +15590,91 @@
|
|
|
14880
15590
|
"control",
|
|
14881
15591
|
"outcome",
|
|
14882
15592
|
"platform",
|
|
14883
|
-
"backend",
|
|
14884
15593
|
"enforcementPoint",
|
|
14885
|
-
"
|
|
15594
|
+
"denialClass",
|
|
15595
|
+
"attestation"
|
|
14886
15596
|
],
|
|
14887
|
-
"additionalProperties": false
|
|
15597
|
+
"additionalProperties": false,
|
|
15598
|
+
"description": "An enforcement check refused a specific access. Emitted per refusal with no deduplication, including when policy permits the caller to bypass the denial. Carries no backend: the built-in checks that produce this run in-process against the effective policy."
|
|
14888
15599
|
},
|
|
14889
15600
|
{
|
|
14890
15601
|
"type": "object",
|
|
14891
15602
|
"properties": {
|
|
14892
15603
|
"control": {
|
|
14893
15604
|
"$ref": "#/definitions/SandboxControl",
|
|
14894
|
-
"description": "
|
|
15605
|
+
"description": "Always `bypass`."
|
|
14895
15606
|
},
|
|
14896
15607
|
"outcome": {
|
|
14897
15608
|
"$ref": "#/definitions/SandboxOutcome",
|
|
14898
|
-
"description": "
|
|
15609
|
+
"description": "Whether the bypass was granted: `approved` or `declined`. `declined` also covers the cases where nobody answered, since the sandboxed denial stands either way."
|
|
14899
15610
|
},
|
|
14900
15611
|
"toolCallId": {
|
|
14901
15612
|
"type": [
|
|
14902
15613
|
"string",
|
|
14903
15614
|
"null"
|
|
14904
15615
|
],
|
|
14905
|
-
"description": "
|
|
15616
|
+
"description": "Tool call the decision belongs to, for span correlation only. Never exported as a telemetry attribute or metric dimension."
|
|
14906
15617
|
},
|
|
14907
15618
|
"platform": {
|
|
14908
15619
|
"$ref": "#/definitions/SandboxPlatform",
|
|
14909
|
-
"description": "Host
|
|
14910
|
-
},
|
|
14911
|
-
"backend": {
|
|
14912
|
-
"$ref": "#/definitions/SandboxBackend",
|
|
14913
|
-
"description": "Containment backend that engaged. `unsupported` for any state other than `engaged`, since no backend is known to have run."
|
|
15620
|
+
"description": "Host operating-system family"
|
|
14914
15621
|
},
|
|
14915
15622
|
"enforcementPoint": {
|
|
14916
15623
|
"$ref": "#/definitions/SandboxEnforcementPoint",
|
|
14917
|
-
"description": "Runtime subsystem
|
|
15624
|
+
"description": "Runtime subsystem the bypass applies to"
|
|
14918
15625
|
},
|
|
14919
|
-
"
|
|
15626
|
+
"source": {
|
|
15627
|
+
"$ref": "#/definitions/SandboxBypassSource",
|
|
15628
|
+
"description": "Where the request originated. Orthogonal to `outcome`."
|
|
15629
|
+
},
|
|
15630
|
+
"denialClass": {
|
|
14920
15631
|
"anyOf": [
|
|
14921
15632
|
{
|
|
14922
|
-
"$ref": "#/definitions/
|
|
14923
|
-
"description": "
|
|
15633
|
+
"$ref": "#/definitions/SandboxDenialClass",
|
|
15634
|
+
"description": "Bounded class of access an enforcement check refused. Raw resources, commands, and process names accompany it only when content capture is enabled; diagnostic text and matched rules are never exported."
|
|
14924
15635
|
},
|
|
14925
15636
|
{
|
|
14926
15637
|
"type": "null"
|
|
14927
15638
|
}
|
|
14928
15639
|
],
|
|
14929
|
-
"description": "
|
|
15640
|
+
"description": "Bounded class of the access whose refusal raised this escalation. Omitted for a pre-execution bypass, such as a detached command that cannot be sandboxed and therefore resolves no denial."
|
|
15641
|
+
},
|
|
15642
|
+
"confidence": {
|
|
15643
|
+
"anyOf": [
|
|
15644
|
+
{
|
|
15645
|
+
"$ref": "#/definitions/SandboxDenialConfidence",
|
|
15646
|
+
"description": "How strong the evidence behind a denial is. A denial the sandbox itself recorded is a fact; one inferred from a command's output text is a judgement, and an analysis that cannot tell them apart will treat a false positive as enforcement."
|
|
15647
|
+
},
|
|
15648
|
+
{
|
|
15649
|
+
"type": "null"
|
|
15650
|
+
}
|
|
15651
|
+
],
|
|
15652
|
+
"description": "How strong the evidence behind `denialClass` was. Present exactly when `denialClass` is, so a verdict that relaxed the sandbox on a guess is distinguishable from one that relaxed it on a recorded refusal. Named to match `access_denied`, which reports the same pair."
|
|
15653
|
+
},
|
|
15654
|
+
"deniedResource": {
|
|
15655
|
+
"type": [
|
|
15656
|
+
"string",
|
|
15657
|
+
"null"
|
|
15658
|
+
],
|
|
15659
|
+
"description": "Resource whose refusal raised this escalation. Populated only when content capture is enabled."
|
|
15660
|
+
},
|
|
15661
|
+
"command": {
|
|
15662
|
+
"type": [
|
|
15663
|
+
"string",
|
|
15664
|
+
"null"
|
|
15665
|
+
],
|
|
15666
|
+
"description": "Command the verdict governs. Populated only when content capture is enabled."
|
|
15667
|
+
},
|
|
15668
|
+
"processName": {
|
|
15669
|
+
"type": [
|
|
15670
|
+
"string",
|
|
15671
|
+
"null"
|
|
15672
|
+
],
|
|
15673
|
+
"description": "Executable image associated with the denial that raised this escalation, normalized to a basename. Populated only when content capture is enabled."
|
|
14930
15674
|
},
|
|
14931
15675
|
"kind": {
|
|
14932
15676
|
"type": "string",
|
|
14933
|
-
"const": "
|
|
15677
|
+
"const": "bypass_decided",
|
|
14934
15678
|
"description": "Sandbox decision variant discriminator."
|
|
14935
15679
|
}
|
|
14936
15680
|
},
|
|
@@ -14939,28 +15683,29 @@
|
|
|
14939
15683
|
"control",
|
|
14940
15684
|
"outcome",
|
|
14941
15685
|
"platform",
|
|
14942
|
-
"
|
|
14943
|
-
"
|
|
15686
|
+
"enforcementPoint",
|
|
15687
|
+
"source"
|
|
14944
15688
|
],
|
|
14945
|
-
"additionalProperties": false
|
|
15689
|
+
"additionalProperties": false,
|
|
15690
|
+
"description": "A request to run outside the process sandbox was resolved. This is what makes an `inactive` `enforcement_state` readable: without it, a command that ran unsandboxed because a person approved a bypass looks identical to one that ran unsandboxed because the session never had a sandbox. Reported only when a sandbox was in force, since bypassing a disabled sandbox bypasses nothing. Carries neither backend nor attestation: the verdict comes from the runtime's own permission flow or the local escalation prompt, not from a containment backend and not from the built-in policy check, so `source` is what records where it came from."
|
|
14946
15691
|
},
|
|
14947
15692
|
{
|
|
14948
15693
|
"type": "object",
|
|
14949
15694
|
"properties": {
|
|
14950
15695
|
"control": {
|
|
14951
15696
|
"$ref": "#/definitions/SandboxControl",
|
|
14952
|
-
"description": "
|
|
15697
|
+
"description": "Always `process`: the process container is what this rung relaxes, and the network control is deliberately untouched."
|
|
14953
15698
|
},
|
|
14954
15699
|
"outcome": {
|
|
14955
15700
|
"$ref": "#/definitions/SandboxOutcome",
|
|
14956
|
-
"description": "
|
|
15701
|
+
"description": "Whether the permissive retry was granted: `approved` or `declined`. `declined` also covers the cases where nobody answered, since the sandboxed denial stands either way."
|
|
14957
15702
|
},
|
|
14958
15703
|
"toolCallId": {
|
|
14959
15704
|
"type": [
|
|
14960
15705
|
"string",
|
|
14961
15706
|
"null"
|
|
14962
15707
|
],
|
|
14963
|
-
"description": "Tool call the
|
|
15708
|
+
"description": "Tool call the decision belongs to, for span correlation only. Never exported as a telemetry attribute or metric dimension."
|
|
14964
15709
|
},
|
|
14965
15710
|
"platform": {
|
|
14966
15711
|
"$ref": "#/definitions/SandboxPlatform",
|
|
@@ -14968,19 +15713,60 @@
|
|
|
14968
15713
|
},
|
|
14969
15714
|
"enforcementPoint": {
|
|
14970
15715
|
"$ref": "#/definitions/SandboxEnforcementPoint",
|
|
14971
|
-
"description": "Runtime subsystem
|
|
15716
|
+
"description": "Runtime subsystem the retry applies to"
|
|
15717
|
+
},
|
|
15718
|
+
"source": {
|
|
15719
|
+
"$ref": "#/definitions/SandboxBypassSource",
|
|
15720
|
+
"description": "Where the request originated. Orthogonal to `outcome`."
|
|
14972
15721
|
},
|
|
14973
15722
|
"denialClass": {
|
|
14974
|
-
"
|
|
14975
|
-
|
|
15723
|
+
"anyOf": [
|
|
15724
|
+
{
|
|
15725
|
+
"$ref": "#/definitions/SandboxDenialClass",
|
|
15726
|
+
"description": "Bounded class of access an enforcement check refused. Raw resources, commands, and process names accompany it only when content capture is enabled; diagnostic text and matched rules are never exported."
|
|
15727
|
+
},
|
|
15728
|
+
{
|
|
15729
|
+
"type": "null"
|
|
15730
|
+
}
|
|
15731
|
+
],
|
|
15732
|
+
"description": "Bounded class of the access whose refusal raised this escalation."
|
|
14976
15733
|
},
|
|
14977
|
-
"
|
|
14978
|
-
"
|
|
14979
|
-
|
|
15734
|
+
"confidence": {
|
|
15735
|
+
"anyOf": [
|
|
15736
|
+
{
|
|
15737
|
+
"$ref": "#/definitions/SandboxDenialConfidence",
|
|
15738
|
+
"description": "How strong the evidence behind a denial is. A denial the sandbox itself recorded is a fact; one inferred from a command's output text is a judgement, and an analysis that cannot tell them apart will treat a false positive as enforcement."
|
|
15739
|
+
},
|
|
15740
|
+
{
|
|
15741
|
+
"type": "null"
|
|
15742
|
+
}
|
|
15743
|
+
],
|
|
15744
|
+
"description": "How strong the evidence behind `denialClass` was. Present exactly when `denialClass` is."
|
|
15745
|
+
},
|
|
15746
|
+
"deniedResource": {
|
|
15747
|
+
"type": [
|
|
15748
|
+
"string",
|
|
15749
|
+
"null"
|
|
15750
|
+
],
|
|
15751
|
+
"description": "Resource whose refusal raised this escalation. Populated only when content capture is enabled."
|
|
15752
|
+
},
|
|
15753
|
+
"command": {
|
|
15754
|
+
"type": [
|
|
15755
|
+
"string",
|
|
15756
|
+
"null"
|
|
15757
|
+
],
|
|
15758
|
+
"description": "Command the verdict governs. Populated only when content capture is enabled."
|
|
15759
|
+
},
|
|
15760
|
+
"processName": {
|
|
15761
|
+
"type": [
|
|
15762
|
+
"string",
|
|
15763
|
+
"null"
|
|
15764
|
+
],
|
|
15765
|
+
"description": "Executable image associated with the denial that raised this escalation, normalized to a basename. Populated only when content capture is enabled."
|
|
14980
15766
|
},
|
|
14981
15767
|
"kind": {
|
|
14982
15768
|
"type": "string",
|
|
14983
|
-
"const": "
|
|
15769
|
+
"const": "permissive_retry_decided",
|
|
14984
15770
|
"description": "Sandbox decision variant discriminator."
|
|
14985
15771
|
}
|
|
14986
15772
|
},
|
|
@@ -14990,29 +15776,28 @@
|
|
|
14990
15776
|
"outcome",
|
|
14991
15777
|
"platform",
|
|
14992
15778
|
"enforcementPoint",
|
|
14993
|
-
"
|
|
14994
|
-
"attestation"
|
|
15779
|
+
"source"
|
|
14995
15780
|
],
|
|
14996
15781
|
"additionalProperties": false,
|
|
14997
|
-
"description": "
|
|
15782
|
+
"description": "A permissive retry was resolved. Distinct from `bypass_decided` because this rung never requests a run outside the process sandbox: it relaxes the process container for one run while the sandbox, and with it the network policy, stays attached. Reported for both outcomes, so an escalation the user declined still leaves evidence that the runtime asked and that the sandboxed denial stood."
|
|
14998
15783
|
},
|
|
14999
15784
|
{
|
|
15000
15785
|
"type": "object",
|
|
15001
15786
|
"properties": {
|
|
15002
15787
|
"control": {
|
|
15003
15788
|
"$ref": "#/definitions/SandboxControl",
|
|
15004
|
-
"description": "Always `
|
|
15789
|
+
"description": "Always `process`: the retry changes process-container enforcement while leaving network policy attached."
|
|
15005
15790
|
},
|
|
15006
15791
|
"outcome": {
|
|
15007
15792
|
"$ref": "#/definitions/SandboxOutcome",
|
|
15008
|
-
"description": "Whether the
|
|
15793
|
+
"description": "Whether the permissive retry completed successfully: `succeeded` or `failed`."
|
|
15009
15794
|
},
|
|
15010
15795
|
"toolCallId": {
|
|
15011
15796
|
"type": [
|
|
15012
15797
|
"string",
|
|
15013
15798
|
"null"
|
|
15014
15799
|
],
|
|
15015
|
-
"description": "Tool call the
|
|
15800
|
+
"description": "Tool call the completion belongs to, for span correlation only. Never exported as a telemetry attribute or metric dimension."
|
|
15016
15801
|
},
|
|
15017
15802
|
"platform": {
|
|
15018
15803
|
"$ref": "#/definitions/SandboxPlatform",
|
|
@@ -15020,15 +15805,56 @@
|
|
|
15020
15805
|
},
|
|
15021
15806
|
"enforcementPoint": {
|
|
15022
15807
|
"$ref": "#/definitions/SandboxEnforcementPoint",
|
|
15023
|
-
"description": "Runtime subsystem
|
|
15808
|
+
"description": "Runtime subsystem that ran the retry"
|
|
15024
15809
|
},
|
|
15025
|
-
"
|
|
15026
|
-
"
|
|
15027
|
-
|
|
15810
|
+
"denialClass": {
|
|
15811
|
+
"anyOf": [
|
|
15812
|
+
{
|
|
15813
|
+
"$ref": "#/definitions/SandboxDenialClass",
|
|
15814
|
+
"description": "Bounded class of access an enforcement check refused. Raw resources, commands, and process names accompany it only when content capture is enabled; diagnostic text and matched rules are never exported."
|
|
15815
|
+
},
|
|
15816
|
+
{
|
|
15817
|
+
"type": "null"
|
|
15818
|
+
}
|
|
15819
|
+
],
|
|
15820
|
+
"description": "Bounded class of the access whose refusal raised the permissive retry."
|
|
15821
|
+
},
|
|
15822
|
+
"confidence": {
|
|
15823
|
+
"anyOf": [
|
|
15824
|
+
{
|
|
15825
|
+
"$ref": "#/definitions/SandboxDenialConfidence",
|
|
15826
|
+
"description": "How strong the evidence behind a denial is. A denial the sandbox itself recorded is a fact; one inferred from a command's output text is a judgement, and an analysis that cannot tell them apart will treat a false positive as enforcement."
|
|
15827
|
+
},
|
|
15828
|
+
{
|
|
15829
|
+
"type": "null"
|
|
15830
|
+
}
|
|
15831
|
+
],
|
|
15832
|
+
"description": "How strong the evidence behind `denialClass` was."
|
|
15833
|
+
},
|
|
15834
|
+
"deniedResource": {
|
|
15835
|
+
"type": [
|
|
15836
|
+
"string",
|
|
15837
|
+
"null"
|
|
15838
|
+
],
|
|
15839
|
+
"description": "Resource whose refusal raised the retry. Populated only when content capture is enabled."
|
|
15840
|
+
},
|
|
15841
|
+
"command": {
|
|
15842
|
+
"type": [
|
|
15843
|
+
"string",
|
|
15844
|
+
"null"
|
|
15845
|
+
],
|
|
15846
|
+
"description": "Command the retry executed. Populated only when content capture is enabled."
|
|
15847
|
+
},
|
|
15848
|
+
"processName": {
|
|
15849
|
+
"type": [
|
|
15850
|
+
"string",
|
|
15851
|
+
"null"
|
|
15852
|
+
],
|
|
15853
|
+
"description": "Executable image associated with the denial that raised the retry, normalized to a basename. Populated only when content capture is enabled."
|
|
15028
15854
|
},
|
|
15029
15855
|
"kind": {
|
|
15030
15856
|
"type": "string",
|
|
15031
|
-
"const": "
|
|
15857
|
+
"const": "permissive_retry_completed",
|
|
15032
15858
|
"description": "Sandbox decision variant discriminator."
|
|
15033
15859
|
}
|
|
15034
15860
|
},
|
|
@@ -15037,11 +15863,10 @@
|
|
|
15037
15863
|
"control",
|
|
15038
15864
|
"outcome",
|
|
15039
15865
|
"platform",
|
|
15040
|
-
"enforcementPoint"
|
|
15041
|
-
"source"
|
|
15866
|
+
"enforcementPoint"
|
|
15042
15867
|
],
|
|
15043
15868
|
"additionalProperties": false,
|
|
15044
|
-
"description": "
|
|
15869
|
+
"description": "An approved permissive retry finished. `succeeded` means the retry exited successfully without another correlated sandbox denial; `failed` means it failed or remained blocked and may therefore be followed by a full bypass."
|
|
15045
15870
|
}
|
|
15046
15871
|
],
|
|
15047
15872
|
"description": "Payload of `sandbox.decision`, a bounded governance record of what the process sandbox was configured to do and whether it took effect. Discriminated by `kind`.",
|
|
@@ -15122,16 +15947,49 @@
|
|
|
15122
15947
|
"enum": [
|
|
15123
15948
|
"filesystem_read",
|
|
15124
15949
|
"filesystem_write",
|
|
15950
|
+
"process_startup",
|
|
15951
|
+
"registry_access",
|
|
15952
|
+
"ipc_access",
|
|
15953
|
+
"process_access",
|
|
15954
|
+
"job_access",
|
|
15955
|
+
"ui_access",
|
|
15956
|
+
"service_access",
|
|
15125
15957
|
"network_outbound",
|
|
15126
|
-
"network_local"
|
|
15958
|
+
"network_local",
|
|
15959
|
+
"other_access"
|
|
15127
15960
|
],
|
|
15128
|
-
"description": "Bounded class of access an enforcement check refused.
|
|
15961
|
+
"description": "Bounded class of access an enforcement check refused. Raw resources, commands, and process names accompany it only when content capture is enabled; diagnostic text and matched rules are never exported.",
|
|
15129
15962
|
"title": "SandboxDenialClass",
|
|
15130
15963
|
"x-enumDescriptions": {
|
|
15131
15964
|
"filesystem_read": "A read was refused because the effective policy does not grant it.",
|
|
15132
15965
|
"filesystem_write": "A write was refused. Distinct from `filesystem_read` because a read-only grant denies writes to a path it otherwise permits.",
|
|
15966
|
+
"process_startup": "A process could not start because the sandbox refused a required process-scoped resource. Currently emitted for the Windows MSYS `BaseNamedObjects` fork failure confirmed by learning-mode capture.",
|
|
15967
|
+
"registry_access": "Windows registry access was refused and correlated with capture evidence.",
|
|
15968
|
+
"ipc_access": "Windows ALPC or RPC access was refused and correlated with capture evidence.",
|
|
15969
|
+
"process_access": "Access to another Windows process was refused and correlated with capture evidence.",
|
|
15970
|
+
"job_access": "Windows job-object access was refused and correlated with capture evidence.",
|
|
15971
|
+
"ui_access": "Windows UI-handle access was refused and correlated with capture evidence.",
|
|
15972
|
+
"service_access": "Windows service-control-manager access was refused and correlated with capture evidence.",
|
|
15133
15973
|
"network_outbound": "An outbound connection was refused by `network.allowOutbound`.",
|
|
15134
|
-
"network_local": "A connection to a local or loopback destination was refused by `network.allowLocalNetwork`."
|
|
15974
|
+
"network_local": "A connection to a local or loopback destination was refused by `network.allowLocalNetwork`.",
|
|
15975
|
+
"other_access": "The sandbox's denial capture recorded a refusal its record does not attribute to a more specific control: an unclassified resource (registry, COM, section object) or an AppContainer capability with no network meaning. Deliberately generic — the capture proves the denial happened, and naming a narrower class than the record supports would be a guess."
|
|
15976
|
+
}
|
|
15977
|
+
},
|
|
15978
|
+
"SandboxDenialConfidence": {
|
|
15979
|
+
"type": "string",
|
|
15980
|
+
"enum": [
|
|
15981
|
+
"captured",
|
|
15982
|
+
"policy_corroborated",
|
|
15983
|
+
"sandbox_reported",
|
|
15984
|
+
"output_classified"
|
|
15985
|
+
],
|
|
15986
|
+
"description": "How strong the evidence behind a denial is. A denial the sandbox itself recorded is a fact; one inferred from a command's output text is a judgement, and an analysis that cannot tell them apart will treat a false positive as enforcement.",
|
|
15987
|
+
"title": "SandboxDenialConfidence",
|
|
15988
|
+
"x-enumDescriptions": {
|
|
15989
|
+
"captured": "The sandbox's own denial capture recorded the refused access. The strongest evidence available: the kernel observed it, not the runtime.",
|
|
15990
|
+
"policy_corroborated": "The command named a path that the effective policy independently denies. No capture confirmed it, but the policy did.",
|
|
15991
|
+
"sandbox_reported": "The failure carried a fingerprint the sandbox itself emits, so the sandbox is known to have refused something even though the resource was not confirmed.",
|
|
15992
|
+
"output_classified": "Classified from the command's own output text alone. The weakest evidence: a command that merely prints sandbox-like wording reaches this level."
|
|
15135
15993
|
}
|
|
15136
15994
|
},
|
|
15137
15995
|
"SandboxEnforcementPoint": {
|
|
@@ -15202,7 +16060,7 @@
|
|
|
15202
16060
|
"approved",
|
|
15203
16061
|
"declined"
|
|
15204
16062
|
],
|
|
15205
|
-
"description": "Finite result of a sandbox decision. Each `SandboxDecisionData` variant uses a disjoint subset: `policy_resolved` is `resolved | degraded`, `spawn_completed`
|
|
16063
|
+
"description": "Finite result of a sandbox decision. Each `SandboxDecisionData` variant uses a disjoint subset: `policy_resolved` is `resolved | degraded`, `spawn_completed` and `permissive_retry_completed` are `succeeded | failed`, `enforcement_state` is `engaged | inactive | failed`, `access_denied` is `denied`, and escalation decisions are `approved | declined`.",
|
|
15206
16064
|
"title": "SandboxOutcome",
|
|
15207
16065
|
"x-enumDescriptions": {
|
|
15208
16066
|
"resolved": "The sandbox policy resolved successfully. Describes configuration only and makes no claim that a backend engaged.",
|
|
@@ -15210,7 +16068,7 @@
|
|
|
15210
16068
|
"engaged": "A runtime-owned containment backend accepted the workload. Evidence of engagement, not of verified containment for the workload's lifetime.",
|
|
15211
16069
|
"succeeded": "The sandbox operation completed successfully.",
|
|
15212
16070
|
"failed": "The sandbox operation failed.",
|
|
15213
|
-
"degraded": "The sandbox is active with one or more controls weakened by platform limitations.",
|
|
16071
|
+
"degraded": "The sandbox is active with one or more controls weakened by platform limitations or an explicitly selected relaxed mode.",
|
|
15214
16072
|
"denied": "An enforcement check refused the requested access.",
|
|
15215
16073
|
"approved": "A request to run outside the process sandbox was granted.",
|
|
15216
16074
|
"declined": "A request to run outside the process sandbox was not granted."
|
|
@@ -15584,6 +16442,10 @@
|
|
|
15584
16442
|
"$ref": "#/definitions/ModelChangeEvent",
|
|
15585
16443
|
"description": "Session event \"session.model_change\". Model change details including previous and new model identifiers"
|
|
15586
16444
|
},
|
|
16445
|
+
{
|
|
16446
|
+
"$ref": "#/definitions/AutoTierRecommendationEvent",
|
|
16447
|
+
"description": "Session event \"session.auto_tier_recommendation\". Live-only Auto preference recommendation from Copilot API after a successful Auto model call."
|
|
16448
|
+
},
|
|
15587
16449
|
{
|
|
15588
16450
|
"$ref": "#/definitions/AutoTierSwitchFailedEvent",
|
|
15589
16451
|
"description": "Session event \"session.auto_tier_switch_failed\". A transient Auto preference failure emitted when the runtime cannot mint or accept a usable model and token pair. The previously effective preference remains active, so SDK clients can surface a non-blocking failure without changing their committed-tier state. This event is ephemeral and is not persisted or replayed on resume."
|
|
@@ -15892,6 +16754,22 @@
|
|
|
15892
16754
|
"$ref": "#/definitions/PermissionCompletedEvent",
|
|
15893
16755
|
"description": "Session event \"permission.completed\". Permission request completion notification signaling UI dismissal"
|
|
15894
16756
|
},
|
|
16757
|
+
{
|
|
16758
|
+
"$ref": "#/definitions/PermissionCarriedForwardEvent",
|
|
16759
|
+
"description": "Session event \"permission.carriedForward\". Records that a live authorization record from an earlier human decision in this session contained a permission proposal, so it ran without another prompt. This mints no authority: it accounts for one more effect against the prior grant, which is what lets a replayed session agree with the live one about how much of that grant is left."
|
|
16760
|
+
},
|
|
16761
|
+
{
|
|
16762
|
+
"$ref": "#/definitions/PermissionMessageAuthorizationEvent",
|
|
16763
|
+
"description": "Session event \"permission.messageAuthorization\". Freezes one blinded, verbatim-verified authorization claim the runtime minted from a human user message, so a resumed session re-establishes the same grant deterministically instead of re-running the extraction model. This mints no authority on its own: it records what a blinded proposer pointed at and the trusted discriminator the runtime established, and deterministic establishment runs on replay. Persisted so recorded authority survives compaction and process resume."
|
|
16764
|
+
},
|
|
16765
|
+
{
|
|
16766
|
+
"$ref": "#/definitions/PermissionMessageAuthorizationReadEvent",
|
|
16767
|
+
"description": "Session event \"permission.messageAuthorizationRead\". Records that one human turn has been read by the blinded authorization proposer, whether or not it minted anything, so a resumed session does not re-run the extraction model on a turn the live session already read. Persisted purely to avoid wasted model calls across resume; it is never a correctness mechanism."
|
|
16768
|
+
},
|
|
16769
|
+
{
|
|
16770
|
+
"$ref": "#/definitions/PermissionMessageAuthorizationDegradedEvent",
|
|
16771
|
+
"description": "Session event \"permission.messageAuthorizationDegraded\". Records that message-backed authorization could not safely represent one human turn before compaction. The runtime may compact the original message after this marker is durable, but message-derived carry-forward and assisted auto-approval remain disabled for the rest of the session so subsequent commands continue through the ordinary permission prompt."
|
|
16772
|
+
},
|
|
15895
16773
|
{
|
|
15896
16774
|
"$ref": "#/definitions/UserInputRequestedEvent",
|
|
15897
16775
|
"description": "Session event \"user_input.requested\". User input request notification with question and optional predefined choices"
|
|
@@ -17307,6 +18185,10 @@
|
|
|
17307
18185
|
"type": "string",
|
|
17308
18186
|
"description": "Why an explicit task-call model did not become the effective model"
|
|
17309
18187
|
},
|
|
18188
|
+
"modelSelectionSource": {
|
|
18189
|
+
"$ref": "#/definitions/SubagentModelSelectionSource",
|
|
18190
|
+
"description": "Authority or runtime mechanism responsible for sub-agent model selection"
|
|
18191
|
+
},
|
|
17310
18192
|
"configuredModelMatchesActual": {
|
|
17311
18193
|
"type": "boolean",
|
|
17312
18194
|
"description": "Whether the first model actually dispatched matched the user's configured preference"
|
|
@@ -17581,6 +18463,10 @@
|
|
|
17581
18463
|
"type": "string",
|
|
17582
18464
|
"description": "Why an explicit task-call model did not become the effective model"
|
|
17583
18465
|
},
|
|
18466
|
+
"modelSelectionSource": {
|
|
18467
|
+
"$ref": "#/definitions/SubagentModelSelectionSource",
|
|
18468
|
+
"description": "Authority or runtime mechanism responsible for sub-agent model selection"
|
|
18469
|
+
},
|
|
17584
18470
|
"configuredModelMatchesActual": {
|
|
17585
18471
|
"type": "boolean",
|
|
17586
18472
|
"description": "Whether the first model actually dispatched matched the user's configured preference"
|
|
@@ -17666,6 +18552,29 @@
|
|
|
17666
18552
|
"description": "Session event \"subagent.failed\". Sub-agent failure details including error message and agent information",
|
|
17667
18553
|
"title": "SubagentFailedEvent"
|
|
17668
18554
|
},
|
|
18555
|
+
"SubagentModelSelectionSource": {
|
|
18556
|
+
"type": "string",
|
|
18557
|
+
"enum": [
|
|
18558
|
+
"explicit_override",
|
|
18559
|
+
"configured_required",
|
|
18560
|
+
"configured_preference",
|
|
18561
|
+
"complementary_default",
|
|
18562
|
+
"session_inheritance",
|
|
18563
|
+
"agent_definition_default",
|
|
18564
|
+
"runtime_policy"
|
|
18565
|
+
],
|
|
18566
|
+
"description": "Authority or runtime mechanism responsible for sub-agent model selection.",
|
|
18567
|
+
"title": "SubagentModelSelectionSource",
|
|
18568
|
+
"x-enumDescriptions": {
|
|
18569
|
+
"explicit_override": "Explicit model supplied by the parent agent on the task call and selected for dispatch.",
|
|
18570
|
+
"configured_required": "Required model policy configured for the sub-agent.",
|
|
18571
|
+
"configured_preference": "Non-required model preference configured for the sub-agent.",
|
|
18572
|
+
"complementary_default": "Complementary-model default selected for the sub-agent.",
|
|
18573
|
+
"session_inheritance": "Model inherited from the parent session.",
|
|
18574
|
+
"agent_definition_default": "Default model declared by the agent definition.",
|
|
18575
|
+
"runtime_policy": "Runtime policy, Auto mode, or an experiment selected the model."
|
|
18576
|
+
}
|
|
18577
|
+
},
|
|
17669
18578
|
"SubagentSelectedData": {
|
|
17670
18579
|
"type": "object",
|
|
17671
18580
|
"properties": {
|
|
@@ -17778,6 +18687,10 @@
|
|
|
17778
18687
|
"type": "string",
|
|
17779
18688
|
"description": "Model the sub-agent will run with, when known at start."
|
|
17780
18689
|
},
|
|
18690
|
+
"taskModelSource": {
|
|
18691
|
+
"$ref": "#/definitions/SubagentTaskModelSource",
|
|
18692
|
+
"description": "Where the model input for this sub-agent came from. Present when the task planner resolved the launch (the task tool and factory agents); absent for sub-agents created through other runtime paths."
|
|
18693
|
+
},
|
|
17781
18694
|
"factoryRunId": {
|
|
17782
18695
|
"type": "string",
|
|
17783
18696
|
"description": "Root id of the factory run that spawned this sub-agent, when it was spawned by one."
|
|
@@ -17863,6 +18776,23 @@
|
|
|
17863
18776
|
"description": "Session event \"subagent.started\". Sub-agent startup details including parent tool call and agent information",
|
|
17864
18777
|
"title": "SubagentStartedEvent"
|
|
17865
18778
|
},
|
|
18779
|
+
"SubagentTaskModelSource": {
|
|
18780
|
+
"type": "string",
|
|
18781
|
+
"enum": [
|
|
18782
|
+
"task_argument",
|
|
18783
|
+
"subagent_configuration",
|
|
18784
|
+
"custom_agent_definition",
|
|
18785
|
+
"unset"
|
|
18786
|
+
],
|
|
18787
|
+
"description": "Where the model input for a task-tool sub-agent came from.",
|
|
18788
|
+
"title": "SubagentTaskModelSource",
|
|
18789
|
+
"x-enumDescriptions": {
|
|
18790
|
+
"task_argument": "The spawning agent supplied the task tool's model argument.",
|
|
18791
|
+
"subagent_configuration": "The task omitted a model and the per-sub-agent settings entry supplied a concrete one.",
|
|
18792
|
+
"custom_agent_definition": "The task omitted a model and the user-defined custom agent's definition supplied one.",
|
|
18793
|
+
"unset": "Neither the task call, the per-sub-agent settings entry, nor a custom agent definition supplied a model."
|
|
18794
|
+
}
|
|
18795
|
+
},
|
|
17866
18796
|
"SystemMessageData": {
|
|
17867
18797
|
"type": "object",
|
|
17868
18798
|
"properties": {
|
|
@@ -18235,6 +19165,10 @@
|
|
|
18235
19165
|
"retryGuidance": {
|
|
18236
19166
|
"type": "string",
|
|
18237
19167
|
"description": "Actionable run_factory resume guidance for a resource-limit failure."
|
|
19168
|
+
},
|
|
19169
|
+
"pauseInfo": {
|
|
19170
|
+
"$ref": "#/definitions/SystemNotificationFactoryPauseInfo",
|
|
19171
|
+
"description": "Pause initiator metadata when this attempt settled as paused."
|
|
18238
19172
|
}
|
|
18239
19173
|
},
|
|
18240
19174
|
"required": [
|
|
@@ -18256,6 +19190,7 @@
|
|
|
18256
19190
|
"enum": [
|
|
18257
19191
|
"completed",
|
|
18258
19192
|
"halted",
|
|
19193
|
+
"paused",
|
|
18259
19194
|
"cancelled",
|
|
18260
19195
|
"error"
|
|
18261
19196
|
],
|
|
@@ -18264,10 +19199,48 @@
|
|
|
18264
19199
|
"x-enumDescriptions": {
|
|
18265
19200
|
"completed": "The factory completed successfully.",
|
|
18266
19201
|
"halted": "The factory was halted.",
|
|
19202
|
+
"paused": "The factory attempt paused intentionally.",
|
|
18267
19203
|
"cancelled": "The factory was cancelled.",
|
|
18268
19204
|
"error": "The factory failed."
|
|
18269
19205
|
}
|
|
18270
19206
|
},
|
|
19207
|
+
"SystemNotificationFactoryPauseInfo": {
|
|
19208
|
+
"anyOf": [
|
|
19209
|
+
{
|
|
19210
|
+
"type": "object",
|
|
19211
|
+
"properties": {
|
|
19212
|
+
"type": {
|
|
19213
|
+
"type": "string",
|
|
19214
|
+
"const": "user",
|
|
19215
|
+
"description": "Factory pause initiator discriminator."
|
|
19216
|
+
}
|
|
19217
|
+
},
|
|
19218
|
+
"required": [
|
|
19219
|
+
"type"
|
|
19220
|
+
]
|
|
19221
|
+
},
|
|
19222
|
+
{
|
|
19223
|
+
"type": "object",
|
|
19224
|
+
"properties": {
|
|
19225
|
+
"key": {
|
|
19226
|
+
"type": "string",
|
|
19227
|
+
"description": "Stable author-defined checkpoint key that initiated the pause."
|
|
19228
|
+
},
|
|
19229
|
+
"type": {
|
|
19230
|
+
"type": "string",
|
|
19231
|
+
"const": "checkpoint",
|
|
19232
|
+
"description": "Factory pause initiator discriminator."
|
|
19233
|
+
}
|
|
19234
|
+
},
|
|
19235
|
+
"required": [
|
|
19236
|
+
"type",
|
|
19237
|
+
"key"
|
|
19238
|
+
]
|
|
19239
|
+
}
|
|
19240
|
+
],
|
|
19241
|
+
"description": "Durable metadata describing who initiated a factory pause.",
|
|
19242
|
+
"title": "SystemNotificationFactoryPauseInfo"
|
|
19243
|
+
},
|
|
18271
19244
|
"SystemNotificationInstructionDiscovered": {
|
|
18272
19245
|
"type": "object",
|
|
18273
19246
|
"properties": {
|
|
@@ -19574,6 +20547,10 @@
|
|
|
19574
20547
|
"type": "string",
|
|
19575
20548
|
"description": "Original tool name on the MCP server, when the tool is an MCP tool"
|
|
19576
20549
|
},
|
|
20550
|
+
"mcpTransport": {
|
|
20551
|
+
"$ref": "#/definitions/McpServerTransport",
|
|
20552
|
+
"description": "Transport the MCP server hosting this tool is connected over, when the tool is an MCP tool and the server is configured"
|
|
20553
|
+
},
|
|
19577
20554
|
"turnId": {
|
|
19578
20555
|
"type": "string",
|
|
19579
20556
|
"description": "Identifier for the agent loop turn this tool was invoked in, matching the corresponding assistant.turn_start event"
|