@github/copilot-sdk-win32-x64 1.0.14 → 1.0.15-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.
@@ -1859,6 +1859,20 @@
1859
1859
  "minimum": 0,
1860
1860
  "description": "Number of output tokens used for reasoning (e.g., chain-of-thought)"
1861
1861
  },
1862
+ "thinkingDroppedBlocks": {
1863
+ "type": "integer",
1864
+ "minimum": 0,
1865
+ "description": "Number of prior thinking blocks the provider dropped while transforming the request",
1866
+ "visibility": "internal"
1867
+ },
1868
+ "thinkingDroppedReasons": {
1869
+ "type": "array",
1870
+ "items": {
1871
+ "type": "string"
1872
+ },
1873
+ "description": "Recognized provider-reported reasons for dropped thinking blocks, in response order",
1874
+ "visibility": "internal"
1875
+ },
1862
1876
  "cost": {
1863
1877
  "type": "number",
1864
1878
  "description": "Model multiplier cost for billing purposes",
@@ -5308,6 +5322,10 @@
5308
5322
  "type": "string",
5309
5323
  "description": "LLM-generated summary of the compacted conversation history"
5310
5324
  },
5325
+ "responsesReasoning": {
5326
+ "$ref": "#/definitions/ResponsesReasoning",
5327
+ "description": "Reasoning baseline on the replacement summary, preserved when replay skips the compacted history"
5328
+ },
5311
5329
  "activeFactorySummary": {
5312
5330
  "type": "string",
5313
5331
  "description": "Authoritative active-factory reminder appended to the compacted context",
@@ -9345,6 +9363,315 @@
9345
9363
  "description": "Session event \"session.idle\". Payload indicating the session is idle with no background agents or attached shell commands in flight",
9346
9364
  "title": "IdleEvent"
9347
9365
  },
9366
+ "IndexedSearchData": {
9367
+ "anyOf": [
9368
+ {
9369
+ "type": "object",
9370
+ "properties": {
9371
+ "state": {
9372
+ "$ref": "#/definitions/IndexedSearchState",
9373
+ "description": "Current indexed-search state for this session activation."
9374
+ },
9375
+ "kind": {
9376
+ "type": "string",
9377
+ "const": "status",
9378
+ "description": "Indexed-search event variant discriminator."
9379
+ }
9380
+ },
9381
+ "required": [
9382
+ "kind",
9383
+ "state"
9384
+ ],
9385
+ "additionalProperties": false
9386
+ },
9387
+ {
9388
+ "type": "object",
9389
+ "properties": {
9390
+ "outcome": {
9391
+ "$ref": "#/definitions/IndexedSearchOutcome",
9392
+ "description": "Outcome of this startup attempt."
9393
+ },
9394
+ "fileCount": {
9395
+ "type": "number",
9396
+ "minimum": 0,
9397
+ "description": "Number of text files counted in the repository."
9398
+ },
9399
+ "startupDurationMs": {
9400
+ "type": "number",
9401
+ "minimum": 0,
9402
+ "description": "Wall-clock duration of startup in milliseconds."
9403
+ },
9404
+ "forcedByEnv": {
9405
+ "type": "boolean",
9406
+ "description": "Whether indexed search was explicitly enabled through the environment."
9407
+ },
9408
+ "warmStart": {
9409
+ "type": "boolean",
9410
+ "description": "Whether waiting for index readiness was requested, including skipped attempts."
9411
+ },
9412
+ "disabledReason": {
9413
+ "$ref": "#/definitions/IndexedSearchDisabledReason",
9414
+ "description": "Why indexed search was disabled, when applicable."
9415
+ },
9416
+ "errorMessage": {
9417
+ "type": "string",
9418
+ "description": "Startup failure details. May contain sensitive user data; restricted telemetry only."
9419
+ },
9420
+ "eligible": {
9421
+ "type": "boolean",
9422
+ "description": "Whether the repository meets the automatic indexing file-count threshold, when known."
9423
+ },
9424
+ "kind": {
9425
+ "type": "string",
9426
+ "const": "startup",
9427
+ "description": "Indexed-search event variant discriminator."
9428
+ }
9429
+ },
9430
+ "required": [
9431
+ "kind",
9432
+ "outcome",
9433
+ "startupDurationMs",
9434
+ "forcedByEnv",
9435
+ "warmStart"
9436
+ ],
9437
+ "additionalProperties": false
9438
+ },
9439
+ {
9440
+ "type": "object",
9441
+ "properties": {
9442
+ "errorType": {
9443
+ "$ref": "#/definitions/IndexedSearchErrorType",
9444
+ "description": "Category of the server failure."
9445
+ },
9446
+ "exitCode": {
9447
+ "type": "number",
9448
+ "description": "Process exit code, when available."
9449
+ },
9450
+ "errorMessage": {
9451
+ "type": "string",
9452
+ "description": "Server failure details. May contain sensitive user data; restricted telemetry only."
9453
+ },
9454
+ "kind": {
9455
+ "type": "string",
9456
+ "const": "server_error",
9457
+ "description": "Indexed-search event variant discriminator."
9458
+ }
9459
+ },
9460
+ "required": [
9461
+ "kind",
9462
+ "errorType"
9463
+ ],
9464
+ "additionalProperties": false
9465
+ },
9466
+ {
9467
+ "type": "object",
9468
+ "properties": {
9469
+ "phase": {
9470
+ "$ref": "#/definitions/IndexedSearchIncrementalPhase",
9471
+ "description": "Phase of the incremental index update."
9472
+ },
9473
+ "changedFileCount": {
9474
+ "type": "number",
9475
+ "minimum": 0,
9476
+ "description": "Number of modified files."
9477
+ },
9478
+ "addedFileCount": {
9479
+ "type": "number",
9480
+ "minimum": 0,
9481
+ "description": "Number of added files."
9482
+ },
9483
+ "deletedFileCount": {
9484
+ "type": "number",
9485
+ "minimum": 0,
9486
+ "description": "Number of deleted files."
9487
+ },
9488
+ "totalChangeCount": {
9489
+ "type": "number",
9490
+ "minimum": 0,
9491
+ "description": "Total number of detected changes."
9492
+ },
9493
+ "walkDurationMs": {
9494
+ "type": "number",
9495
+ "minimum": 0,
9496
+ "description": "Workspace scan duration in milliseconds."
9497
+ },
9498
+ "updateDurationMs": {
9499
+ "type": "number",
9500
+ "minimum": 0,
9501
+ "description": "Index update duration in milliseconds."
9502
+ },
9503
+ "totalDurationMs": {
9504
+ "type": "number",
9505
+ "minimum": 0,
9506
+ "description": "Total incremental indexing duration in milliseconds."
9507
+ },
9508
+ "kind": {
9509
+ "type": "string",
9510
+ "const": "incremental",
9511
+ "description": "Indexed-search event variant discriminator."
9512
+ }
9513
+ },
9514
+ "required": [
9515
+ "kind",
9516
+ "phase"
9517
+ ],
9518
+ "additionalProperties": false
9519
+ }
9520
+ ],
9521
+ "description": "Transient indexed-search status and diagnostics from the live runtime service. Never persisted or used to infer activation from session history.",
9522
+ "title": "IndexedSearchData"
9523
+ },
9524
+ "IndexedSearchDisabledReason": {
9525
+ "type": "string",
9526
+ "enum": [
9527
+ "use_tgrep_false",
9528
+ "use_builtin_ripgrep_false",
9529
+ "organization",
9530
+ "organization_policy_auth_pending",
9531
+ "organization_policy_unknown",
9532
+ "virtual_filesystem",
9533
+ "cloud_sync_root",
9534
+ "cloud_sync_detection_failed",
9535
+ "workspace_not_local"
9536
+ ],
9537
+ "description": "Configuration, policy, or workspace condition that disabled indexed search.",
9538
+ "title": "IndexedSearchDisabledReason",
9539
+ "x-enumDescriptions": {
9540
+ "use_tgrep_false": "Indexed search was explicitly disabled by the environment.",
9541
+ "use_builtin_ripgrep_false": "Search uses the external ripgrep binary instead of bundled search.",
9542
+ "organization": "Organization policy disables indexed search.",
9543
+ "organization_policy_auth_pending": "Authentication has not resolved organization policy.",
9544
+ "organization_policy_unknown": "Organization policy could not be determined.",
9545
+ "virtual_filesystem": "The workspace uses a virtualized or network filesystem.",
9546
+ "cloud_sync_root": "The workspace is inside a Windows cloud-sync root.",
9547
+ "cloud_sync_detection_failed": "The Windows cloud-sync safety check failed.",
9548
+ "workspace_not_local": "The workspace is not available on the runtime's local filesystem."
9549
+ }
9550
+ },
9551
+ "IndexedSearchErrorType": {
9552
+ "type": "string",
9553
+ "enum": [
9554
+ "spawn_error",
9555
+ "unexpected_exit",
9556
+ "killed_by_signal"
9557
+ ],
9558
+ "description": "Category of an indexed-search server failure.",
9559
+ "title": "IndexedSearchErrorType",
9560
+ "x-enumDescriptions": {
9561
+ "spawn_error": "The indexed-search server could not be spawned.",
9562
+ "unexpected_exit": "The indexed-search server exited unexpectedly.",
9563
+ "killed_by_signal": "The indexed-search server was terminated by a signal."
9564
+ }
9565
+ },
9566
+ "IndexedSearchEvent": {
9567
+ "type": "object",
9568
+ "properties": {
9569
+ "id": {
9570
+ "type": "string",
9571
+ "format": "uuid",
9572
+ "description": "Unique event identifier (UUID v4), generated when the event is emitted"
9573
+ },
9574
+ "timestamp": {
9575
+ "type": "string",
9576
+ "format": "date-time",
9577
+ "description": "ISO 8601 timestamp when the event was created"
9578
+ },
9579
+ "parentId": {
9580
+ "anyOf": [
9581
+ {
9582
+ "type": "string",
9583
+ "format": "uuid"
9584
+ },
9585
+ {
9586
+ "type": "null"
9587
+ }
9588
+ ],
9589
+ "description": "ID of the chronologically preceding event in the session, forming a linked chain. Null for the first event."
9590
+ },
9591
+ "ephemeral": {
9592
+ "type": "boolean",
9593
+ "const": true,
9594
+ "description": "Always true for events that are transient and not persisted to the session event log on disk."
9595
+ },
9596
+ "agentId": {
9597
+ "type": "string",
9598
+ "description": "Sub-agent instance identifier. Absent for events from the root/main agent and session-level events."
9599
+ },
9600
+ "type": {
9601
+ "type": "string",
9602
+ "const": "session.indexed_search",
9603
+ "description": "Type discriminator. Always \"session.indexed_search\"."
9604
+ },
9605
+ "data": {
9606
+ "$ref": "#/definitions/IndexedSearchData",
9607
+ "description": "Transient indexed-search status and diagnostics from the live runtime service. Never persisted or used to infer activation from session history."
9608
+ }
9609
+ },
9610
+ "required": [
9611
+ "id",
9612
+ "timestamp",
9613
+ "parentId",
9614
+ "ephemeral",
9615
+ "type",
9616
+ "data"
9617
+ ],
9618
+ "additionalProperties": false,
9619
+ "description": "Session event \"session.indexed_search\". Transient indexed-search status and diagnostics from the live runtime service. Never persisted or used to infer activation from session history.",
9620
+ "title": "IndexedSearchEvent"
9621
+ },
9622
+ "IndexedSearchIncrementalPhase": {
9623
+ "type": "string",
9624
+ "enum": [
9625
+ "changes_detected",
9626
+ "updated"
9627
+ ],
9628
+ "description": "Phase of an incremental indexed-search update.",
9629
+ "title": "IndexedSearchIncrementalPhase",
9630
+ "x-enumDescriptions": {
9631
+ "changes_detected": "A workspace scan found changes to index.",
9632
+ "updated": "The incremental index update completed."
9633
+ }
9634
+ },
9635
+ "IndexedSearchOutcome": {
9636
+ "type": "string",
9637
+ "enum": [
9638
+ "started",
9639
+ "skipped_below_threshold",
9640
+ "skipped_no_gitroot",
9641
+ "skipped_disabled",
9642
+ "reused_existing",
9643
+ "failed"
9644
+ ],
9645
+ "description": "Result of an indexed-search startup attempt.",
9646
+ "title": "IndexedSearchOutcome",
9647
+ "x-enumDescriptions": {
9648
+ "started": "A new indexed-search server was started.",
9649
+ "skipped_below_threshold": "The repository has too few files for automatic indexing.",
9650
+ "skipped_no_gitroot": "No Git repository was found and indexing was not forced.",
9651
+ "skipped_disabled": "Configuration, policy, or workspace safety disabled indexing.",
9652
+ "reused_existing": "An existing indexed-search server was reused.",
9653
+ "failed": "The startup attempt failed."
9654
+ }
9655
+ },
9656
+ "IndexedSearchState": {
9657
+ "type": "string",
9658
+ "enum": [
9659
+ "disabled",
9660
+ "starting",
9661
+ "enabled",
9662
+ "ready",
9663
+ "failed"
9664
+ ],
9665
+ "description": "Live indexed-search state for this session activation, never inferred from persisted history.",
9666
+ "title": "IndexedSearchState",
9667
+ "x-enumDescriptions": {
9668
+ "disabled": "Indexed search is not active for this session.",
9669
+ "starting": "Indexed-search startup is in progress.",
9670
+ "enabled": "The indexed-search server started successfully; its index may still be warming.",
9671
+ "ready": "The indexed-search server and its index are ready.",
9672
+ "failed": "Indexed-search startup or the active server failed."
9673
+ }
9674
+ },
9348
9675
  "InfoData": {
9349
9676
  "type": "object",
9350
9677
  "properties": {
@@ -11701,6 +12028,7 @@
11701
12028
  "agent",
11702
12029
  "plan_mode",
11703
12030
  "automatic",
12031
+ "changeboarding_shortcut",
11704
12032
  "sdk"
11705
12033
  ],
11706
12034
  "description": "Origin of an effective session model change.",
@@ -11716,6 +12044,7 @@
11716
12044
  "agent": "Selecting an agent selected its configured model.",
11717
12045
  "plan_mode": "Entering, leaving, or reconfiguring plan mode selected the model.",
11718
12046
  "automatic": "The runtime selected the model automatically, such as rate-limit recovery or refusal fallback.",
12047
+ "changeboarding_shortcut": "The user selected the promoted model from the changeboarding card or its keyboard shortcut.",
11719
12048
  "sdk": "An SDK or RPC caller selected the model."
11720
12049
  }
11721
12050
  },
@@ -11924,6 +12253,121 @@
11924
12253
  "description": "Session event \"pending_messages.modified\". Empty payload; the event signals that the pending message queue has changed",
11925
12254
  "title": "PendingMessagesModifiedEvent"
11926
12255
  },
12256
+ "PermissionApprovalEvaluation": {
12257
+ "type": "object",
12258
+ "properties": {
12259
+ "reasonCode": {
12260
+ "type": "string",
12261
+ "enum": [
12262
+ "unknown",
12263
+ "not-reached",
12264
+ "inactive",
12265
+ "authorization-history-incomplete",
12266
+ "managed-approval-required",
12267
+ "sandbox-bypass",
12268
+ "action-too-long",
12269
+ "path-not-authorized",
12270
+ "invalid-working-directory",
12271
+ "unreadable",
12272
+ "not-regular-file",
12273
+ "too-large",
12274
+ "non-utf8",
12275
+ "interpreter-unavailable",
12276
+ "interpreter-too-large",
12277
+ "shell-environment-unreviewable",
12278
+ "unrepresentable-path",
12279
+ "interpreter-wrapped-script",
12280
+ "unreviewable-script-invocation",
12281
+ "argument-binding-unreviewable",
12282
+ "malformed-script-action-review",
12283
+ "malformed-script-action-manifest",
12284
+ "unavailable",
12285
+ "judge-verdict",
12286
+ "judge-error",
12287
+ "inherited"
12288
+ ],
12289
+ "description": "Machine-readable runtime gate reason, never a command, path or human rationale.",
12290
+ "x-enumDescriptions": {
12291
+ "unknown": "Attribution is missing or outside the supported vocabulary.",
12292
+ "not-reached": "The request resolved before assisted-approval evaluation.",
12293
+ "inactive": "Assisted approval was inactive for this request.",
12294
+ "authorization-history-incomplete": "The judge was skipped because authorization extraction could not safely establish a complete recent history.",
12295
+ "managed-approval-required": "Managed policy required a human decision.",
12296
+ "sandbox-bypass": "The request asked to bypass sandbox restrictions.",
12297
+ "action-too-long": "An action field exceeded the judge input limit.",
12298
+ "path-not-authorized": "The script path was not authorized for inspection.",
12299
+ "invalid-working-directory": "The script working directory was invalid.",
12300
+ "unreadable": "The script snapshot could not be read.",
12301
+ "not-regular-file": "The script path was not a regular file.",
12302
+ "too-large": "The script snapshot exceeded the size limit.",
12303
+ "non-utf8": "The script snapshot was not UTF-8.",
12304
+ "interpreter-unavailable": "The script interpreter could not be inspected.",
12305
+ "interpreter-too-large": "The interpreter snapshot exceeded the size limit.",
12306
+ "shell-environment-unreviewable": "The shell environment could not be reviewed.",
12307
+ "unrepresentable-path": "A script path could not be represented for review.",
12308
+ "interpreter-wrapped-script": "An interpreter wrapped a script that could not be reviewed.",
12309
+ "unreviewable-script-invocation": "The script invocation could not be reviewed.",
12310
+ "argument-binding-unreviewable": "The script argument binding could not be reviewed.",
12311
+ "malformed-script-action-review": "The script review metadata was malformed.",
12312
+ "malformed-script-action-manifest": "The script snapshot manifest was malformed.",
12313
+ "unavailable": "Script review was unavailable.",
12314
+ "judge-verdict": "The judge interface returned a usable verdict.",
12315
+ "judge-error": "The judge interface returned an error.",
12316
+ "inherited": "The request inherited an outcome from another decision."
12317
+ }
12318
+ },
12319
+ "judgeStatus": {
12320
+ "type": "string",
12321
+ "enum": [
12322
+ "unknown",
12323
+ "not_called",
12324
+ "completed",
12325
+ "failed",
12326
+ "cached",
12327
+ "inherited"
12328
+ ],
12329
+ "description": "Status of the local judge interface, not proof of a model network call.",
12330
+ "x-enumDescriptions": {
12331
+ "unknown": "No authoritative attribution is available.",
12332
+ "not_called": "This evaluation did not invoke the judge interface.",
12333
+ "completed": "The judge interface returned a usable verdict.",
12334
+ "failed": "The judge interface returned an error.",
12335
+ "cached": "This evaluation reused a cached recommendation.",
12336
+ "inherited": "This request inherited another decision without local judge attribution."
12337
+ }
12338
+ },
12339
+ "evaluationStage": {
12340
+ "type": "string",
12341
+ "enum": [
12342
+ "unknown",
12343
+ "not_reached",
12344
+ "pre_judge",
12345
+ "judge",
12346
+ "reuse"
12347
+ ],
12348
+ "description": "Stage that produced this attribution.",
12349
+ "x-enumDescriptions": {
12350
+ "unknown": "The attribution stage is unknown.",
12351
+ "not_reached": "The request resolved before assisted-approval evaluation.",
12352
+ "pre_judge": "A runtime gate skipped the judge.",
12353
+ "judge": "The judge interface produced the evaluation.",
12354
+ "reuse": "A cached recommendation or another request's outcome was reused."
12355
+ }
12356
+ },
12357
+ "judgeAttempted": {
12358
+ "type": "boolean",
12359
+ "description": "Whether the request invoked the judge interface. A cached recommendation retains the original attempt fact. Omitted means unknown, including inherited outcomes."
12360
+ }
12361
+ },
12362
+ "required": [
12363
+ "reasonCode",
12364
+ "judgeStatus",
12365
+ "evaluationStage"
12366
+ ],
12367
+ "additionalProperties": false,
12368
+ "description": "Bounded runtime attribution, independent of free-text rationale. Telemetry revalidates this vocabulary before standard collection.",
12369
+ "title": "PermissionApprovalEvaluation"
12370
+ },
11927
12371
  "PermissionApproved": {
11928
12372
  "type": "object",
11929
12373
  "properties": {
@@ -12081,6 +12525,10 @@
12081
12525
  "PermissionAssistedApproval": {
12082
12526
  "type": "object",
12083
12527
  "properties": {
12528
+ "evaluation": {
12529
+ "$ref": "#/definitions/PermissionApprovalEvaluation",
12530
+ "description": "Runtime reason and judge-call metadata. Absent on older events; missing metadata means unknown, not that the judge was skipped."
12531
+ },
12084
12532
  "recommendation": {
12085
12533
  "$ref": "#/definitions/AssistedApprovalRecommendation",
12086
12534
  "description": "The assisted-approval safety judge's outcome for this request."
@@ -12227,6 +12675,14 @@
12227
12675
  "type": "string",
12228
12676
  "description": "Optional tool call ID associated with this permission prompt; clients may use it to correlate UI created from tool-scoped prompts"
12229
12677
  },
12678
+ "recoveryEpisodeId": {
12679
+ "type": "string",
12680
+ "description": "Permission-recovery episode settled by this response, when the request was escalated by Autopilot"
12681
+ },
12682
+ "blocker": {
12683
+ "$ref": "#/definitions/TaskBlocker",
12684
+ "description": "Atomic structured blocked outcome when this permission response ended an Autopilot recovery episode unsuccessfully"
12685
+ },
12230
12686
  "result": {
12231
12687
  "$ref": "#/definitions/PermissionResult",
12232
12688
  "description": "The result of the permission request"
@@ -13577,6 +14033,264 @@
13577
14033
  },
13578
14034
  "stability": "experimental"
13579
14035
  },
14036
+ "PermissionRecoveryAttempt": {
14037
+ "type": "object",
14038
+ "properties": {
14039
+ "attemptId": {
14040
+ "type": "string",
14041
+ "description": "Unique identifier for this attempt record"
14042
+ },
14043
+ "toolCallId": {
14044
+ "type": "string",
14045
+ "description": "Tool-call identifier associated with this attempt, when available"
14046
+ },
14047
+ "permissionKind": {
14048
+ "type": "string",
14049
+ "description": "Controlled permission request kind, such as shell, path, URL, or tool"
14050
+ },
14051
+ "requestFingerprint": {
14052
+ "type": "string",
14053
+ "description": "SHA-256 fingerprint of normalized request data; raw permission arguments are not included"
14054
+ },
14055
+ "relation": {
14056
+ "$ref": "#/definitions/PermissionRecoveryAttemptRelation",
14057
+ "description": "Relationship between this attempt and earlier attempts in the episode"
14058
+ },
14059
+ "disposition": {
14060
+ "$ref": "#/definitions/PermissionRecoveryAttemptDisposition",
14061
+ "description": "How the runtime handled this attempt"
14062
+ },
14063
+ "reason": {
14064
+ "$ref": "#/definitions/PermissionRecoveryAttemptReason",
14065
+ "description": "Controlled reason for the attempt disposition"
14066
+ },
14067
+ "ordinal": {
14068
+ "type": "integer",
14069
+ "minimum": 1,
14070
+ "description": "One-based position of this attempt in the episode"
14071
+ }
14072
+ },
14073
+ "required": [
14074
+ "attemptId",
14075
+ "permissionKind",
14076
+ "requestFingerprint",
14077
+ "relation",
14078
+ "disposition",
14079
+ "reason",
14080
+ "ordinal"
14081
+ ],
14082
+ "additionalProperties": false
14083
+ },
14084
+ "PermissionRecoveryAttemptDisposition": {
14085
+ "type": "string",
14086
+ "enum": [
14087
+ "deferred",
14088
+ "prompted",
14089
+ "approved",
14090
+ "denied",
14091
+ "blocked",
14092
+ "succeeded"
14093
+ ],
14094
+ "description": "Runtime handling applied to a recovery attempt",
14095
+ "title": "PermissionRecoveryAttemptDisposition",
14096
+ "x-enumDescriptions": {
14097
+ "deferred": "The request was denied without prompting so the agent could try an alternative.",
14098
+ "prompted": "The request was surfaced to an interactive responder.",
14099
+ "approved": "The interactive responder approved the request.",
14100
+ "denied": "The interactive responder denied the request or became unavailable.",
14101
+ "blocked": "The request exhausted unattended recovery and produced a blocked outcome.",
14102
+ "succeeded": "A tool call succeeded as an equivalent alternative."
14103
+ }
14104
+ },
14105
+ "PermissionRecoveryAttemptReason": {
14106
+ "type": "string",
14107
+ "enum": [
14108
+ "permission_required",
14109
+ "repeated_attempt",
14110
+ "attempts_exhausted",
14111
+ "permission_approved",
14112
+ "permission_denied",
14113
+ "responder_unavailable",
14114
+ "equivalent_alternative_succeeded"
14115
+ ],
14116
+ "description": "Controlled reason for an individual attempt disposition",
14117
+ "title": "PermissionRecoveryAttemptReason",
14118
+ "x-enumDescriptions": {
14119
+ "permission_required": "The attempt required permission that Assisted Permissions could not grant.",
14120
+ "repeated_attempt": "The request repeated an earlier attempt.",
14121
+ "attempts_exhausted": "The request exceeded the bounded number of distinct attempts.",
14122
+ "permission_approved": "The interactive responder approved the request.",
14123
+ "permission_denied": "The interactive responder denied the request.",
14124
+ "responder_unavailable": "The interactive responder became unavailable.",
14125
+ "equivalent_alternative_succeeded": "The tool call succeeded without the blocked permission."
14126
+ }
14127
+ },
14128
+ "PermissionRecoveryAttemptRelation": {
14129
+ "type": "string",
14130
+ "enum": [
14131
+ "initial",
14132
+ "retry",
14133
+ "alternative"
14134
+ ],
14135
+ "description": "Relationship of an attempt to earlier permission requests",
14136
+ "title": "PermissionRecoveryAttemptRelation",
14137
+ "x-enumDescriptions": {
14138
+ "initial": "The first denied permission request in the episode.",
14139
+ "retry": "A request equivalent to an earlier attempt.",
14140
+ "alternative": "A distinct request or a successful alternative tool call."
14141
+ }
14142
+ },
14143
+ "PermissionRecoveryData": {
14144
+ "type": "object",
14145
+ "properties": {
14146
+ "episodeId": {
14147
+ "type": "string",
14148
+ "description": "Stable identifier shared by every transition in this recovery episode"
14149
+ },
14150
+ "status": {
14151
+ "$ref": "#/definitions/PermissionRecoveryStatus",
14152
+ "description": "Current lifecycle state of the recovery episode"
14153
+ },
14154
+ "onBlocked": {
14155
+ "$ref": "#/definitions/PermissionRecoveryOnBlocked",
14156
+ "description": "Policy selected from the current client's response capability; mode or client changes may update it during recovery"
14157
+ },
14158
+ "reason": {
14159
+ "$ref": "#/definitions/PermissionRecoveryReason",
14160
+ "description": "Controlled reason for the latest episode transition"
14161
+ },
14162
+ "maxAttempts": {
14163
+ "type": "integer",
14164
+ "minimum": 1,
14165
+ "description": "Maximum number of distinct autonomous permission attempts allowed before escalation"
14166
+ },
14167
+ "attempts": {
14168
+ "type": "array",
14169
+ "items": {
14170
+ "$ref": "#/definitions/PermissionRecoveryAttempt"
14171
+ },
14172
+ "description": "Ordered privacy-safe record of permission attempts and the successful alternative, when any"
14173
+ }
14174
+ },
14175
+ "required": [
14176
+ "episodeId",
14177
+ "status",
14178
+ "onBlocked",
14179
+ "reason",
14180
+ "maxAttempts",
14181
+ "attempts"
14182
+ ],
14183
+ "additionalProperties": false,
14184
+ "description": "Authoritative snapshot of an Autopilot permission-recovery episode",
14185
+ "title": "PermissionRecoveryData"
14186
+ },
14187
+ "PermissionRecoveryEvent": {
14188
+ "type": "object",
14189
+ "properties": {
14190
+ "id": {
14191
+ "type": "string",
14192
+ "format": "uuid",
14193
+ "description": "Unique event identifier (UUID v4), generated when the event is emitted"
14194
+ },
14195
+ "timestamp": {
14196
+ "type": "string",
14197
+ "format": "date-time",
14198
+ "description": "ISO 8601 timestamp when the event was created"
14199
+ },
14200
+ "parentId": {
14201
+ "anyOf": [
14202
+ {
14203
+ "type": "string",
14204
+ "format": "uuid"
14205
+ },
14206
+ {
14207
+ "type": "null"
14208
+ }
14209
+ ],
14210
+ "description": "ID of the chronologically preceding event in the session, forming a linked chain. Null for the first event."
14211
+ },
14212
+ "ephemeral": {
14213
+ "type": "boolean",
14214
+ "description": "When true, the event is transient and not persisted to the session event log on disk"
14215
+ },
14216
+ "agentId": {
14217
+ "type": "string",
14218
+ "description": "Sub-agent instance identifier. Absent for events from the root/main agent and session-level events."
14219
+ },
14220
+ "type": {
14221
+ "type": "string",
14222
+ "const": "session.permission_recovery",
14223
+ "description": "Type discriminator. Always \"session.permission_recovery\"."
14224
+ },
14225
+ "data": {
14226
+ "$ref": "#/definitions/PermissionRecoveryData",
14227
+ "description": "Authoritative snapshot of an Autopilot permission-recovery episode"
14228
+ }
14229
+ },
14230
+ "required": [
14231
+ "id",
14232
+ "timestamp",
14233
+ "parentId",
14234
+ "type",
14235
+ "data"
14236
+ ],
14237
+ "additionalProperties": false,
14238
+ "description": "Session event \"session.permission_recovery\". Authoritative snapshot of an Autopilot permission-recovery episode",
14239
+ "title": "PermissionRecoveryEvent"
14240
+ },
14241
+ "PermissionRecoveryOnBlocked": {
14242
+ "type": "string",
14243
+ "enum": [
14244
+ "ask",
14245
+ "fail"
14246
+ ],
14247
+ "description": "Action selected when autonomous recovery cannot continue",
14248
+ "title": "PermissionRecoveryOnBlocked",
14249
+ "x-enumDescriptions": {
14250
+ "ask": "Surface the existing permission prompt to a response-capable client.",
14251
+ "fail": "Return a structured unsuccessful blocked outcome because no responder is available."
14252
+ }
14253
+ },
14254
+ "PermissionRecoveryReason": {
14255
+ "type": "string",
14256
+ "enum": [
14257
+ "permission_required",
14258
+ "repeated_attempt",
14259
+ "attempts_exhausted",
14260
+ "permission_approved",
14261
+ "permission_denied",
14262
+ "responder_unavailable",
14263
+ "equivalent_alternative_succeeded"
14264
+ ],
14265
+ "description": "Controlled reason for a permission-recovery episode transition",
14266
+ "title": "PermissionRecoveryReason",
14267
+ "x-enumDescriptions": {
14268
+ "permission_required": "An action required permission that Assisted Permissions could not grant.",
14269
+ "repeated_attempt": "The agent repeated an equivalent permission request instead of making progress.",
14270
+ "attempts_exhausted": "The bounded number of distinct permission attempts was exhausted.",
14271
+ "permission_approved": "A responder approved the escalated permission request.",
14272
+ "permission_denied": "A responder denied the escalated permission request.",
14273
+ "responder_unavailable": "The response-capable client became unavailable while escalation was pending.",
14274
+ "equivalent_alternative_succeeded": "A later tool call succeeded without requiring the blocked permission."
14275
+ }
14276
+ },
14277
+ "PermissionRecoveryStatus": {
14278
+ "type": "string",
14279
+ "enum": [
14280
+ "recovering",
14281
+ "awaiting_approval",
14282
+ "resolved",
14283
+ "blocked"
14284
+ ],
14285
+ "description": "Lifecycle state of a permission-recovery episode",
14286
+ "title": "PermissionRecoveryStatus",
14287
+ "x-enumDescriptions": {
14288
+ "recovering": "Autopilot may try a bounded equivalent alternative.",
14289
+ "awaiting_approval": "An interactive permission response is required.",
14290
+ "resolved": "The episode ended through approval or a successful equivalent alternative.",
14291
+ "blocked": "No autonomous path remains and the task requires intervention."
14292
+ }
14293
+ },
13580
14294
  "PermissionRequest": {
13581
14295
  "anyOf": [
13582
14296
  {
@@ -13684,6 +14398,10 @@
13684
14398
  "$ref": "#/definitions/PermissionPromptRequest",
13685
14399
  "description": "Derived user-facing permission prompt details for UI consumers"
13686
14400
  },
14401
+ "permissionMode": {
14402
+ "$ref": "#/definitions/PermissionMode",
14403
+ "description": "Permission mode captured when evaluation began. Absent on historical events."
14404
+ },
13687
14405
  "agentMode": {
13688
14406
  "$ref": "#/definitions/SessionMode",
13689
14407
  "description": "Agent mode captured from the owning turn when permission evaluation began."
@@ -13695,6 +14413,10 @@
13695
14413
  "resolvedByHook": {
13696
14414
  "type": "boolean",
13697
14415
  "description": "When true, this permission was already resolved by a permissionRequest hook and requires no client action"
14416
+ },
14417
+ "recoveryEpisodeId": {
14418
+ "type": "string",
14419
+ "description": "Permission-recovery episode that authorized this request to surface for interactive attention"
13698
14420
  }
13699
14421
  },
13700
14422
  "required": [
@@ -15084,6 +15806,31 @@
15084
15806
  "description": "Session event \"session.remote_steerable_changed\". Notifies that the session's remote steering capability has changed",
15085
15807
  "title": "RemoteSteerableChangedEvent"
15086
15808
  },
15809
+ "ResponsesReasoning": {
15810
+ "type": "object",
15811
+ "properties": {
15812
+ "model": {
15813
+ "type": "string",
15814
+ "description": "Provider model whose reasoning settings this boundary records"
15815
+ },
15816
+ "initialEffort": {
15817
+ "type": "string",
15818
+ "description": "Original request-level effort, retained while replaying this conversation prefix"
15819
+ },
15820
+ "effort": {
15821
+ "type": "string",
15822
+ "description": "Effective effort selected before this message, independent of the response-level reasoning field"
15823
+ }
15824
+ },
15825
+ "required": [
15826
+ "model",
15827
+ "initialEffort",
15828
+ "effort"
15829
+ ],
15830
+ "additionalProperties": false,
15831
+ "description": "Original request-level and effective conversation reasoning effort for a Responses history boundary",
15832
+ "title": "ResponsesReasoning"
15833
+ },
15087
15834
  "ResumeData": {
15088
15835
  "type": "object",
15089
15836
  "properties": {
@@ -16637,6 +17384,10 @@
16637
17384
  "$ref": "#/definitions/InfoEvent",
16638
17385
  "description": "Session event \"session.info\". Informational message for timeline display with categorization"
16639
17386
  },
17387
+ {
17388
+ "$ref": "#/definitions/IndexedSearchEvent",
17389
+ "description": "Session event \"session.indexed_search\". Transient indexed-search status and diagnostics from the live runtime service. Never persisted or used to infer activation from session history."
17390
+ },
16640
17391
  {
16641
17392
  "$ref": "#/definitions/WarningEvent",
16642
17393
  "description": "Session event \"session.warning\". Warning message for timeline display with categorization"
@@ -16760,6 +17511,10 @@
16760
17511
  "$ref": "#/definitions/FusionCompletedEvent",
16761
17512
  "description": "Session event \"session.fusion_completed\". Experimental durable aggregate outcome of a HydraFusion turn."
16762
17513
  },
17514
+ {
17515
+ "$ref": "#/definitions/PermissionRecoveryEvent",
17516
+ "description": "Session event \"session.permission_recovery\". Authoritative snapshot of an Autopilot permission-recovery episode"
17517
+ },
16763
17518
  {
16764
17519
  "$ref": "#/definitions/UserMessageEvent",
16765
17520
  "description": "Session event \"user.message\". Payload of `user.message` with displayed and model-transformed content, attachments, source/delivery metadata, mode, and telemetry IDs."
@@ -18048,6 +18803,12 @@
18048
18803
  "type": "string",
18049
18804
  "description": "Name of the invoked skill"
18050
18805
  },
18806
+ "invokedAtTurn": {
18807
+ "type": "integer",
18808
+ "minimum": 0,
18809
+ "maximum": 9007199254740991,
18810
+ "description": "Projected chat-message count when the skill was invoked. New writers persist this so replay does not need to reconstruct superseded history; readers derive it for legacy events when absent."
18811
+ },
18051
18812
  "model": {
18052
18813
  "type": "string",
18053
18814
  "description": "Model identifier active when the skill was invoked, when known"
@@ -18162,6 +18923,12 @@
18162
18923
  "type": "string",
18163
18924
  "description": "Name of the invoked skill"
18164
18925
  },
18926
+ "invokedAtTurn": {
18927
+ "type": "integer",
18928
+ "minimum": 0,
18929
+ "maximum": 9007199254740991,
18930
+ "description": "Projected chat-message count when the skill was invoked. Preserved from the inline event data when the authored body is deduplicated."
18931
+ },
18165
18932
  "model": {
18166
18933
  "type": "string",
18167
18934
  "description": "Model identifier active when the skill was invoked, when known"
@@ -19569,6 +20336,10 @@
19569
20336
  "kind": {
19570
20337
  "$ref": "#/definitions/SystemNotification",
19571
20338
  "description": "Structured metadata identifying what triggered this notification"
20339
+ },
20340
+ "responsesReasoning": {
20341
+ "$ref": "#/definitions/ResponsesReasoning",
20342
+ "description": "Responses reasoning settings anchored before this model-facing message, for cache-stable history replay"
19572
20343
  }
19573
20344
  },
19574
20345
  "required": [
@@ -19906,6 +20677,48 @@
19906
20677
  "description": "System notification metadata from an external host that does not match a runtime-owned notification kind.",
19907
20678
  "title": "SystemNotificationUnclassified"
19908
20679
  },
20680
+ "TaskBlocker": {
20681
+ "type": "object",
20682
+ "properties": {
20683
+ "kind": {
20684
+ "$ref": "#/definitions/TaskBlockerKind",
20685
+ "description": "Category of intervention that blocked the task"
20686
+ },
20687
+ "reason": {
20688
+ "$ref": "#/definitions/PermissionRecoveryReason",
20689
+ "description": "Controlled reason for the current blocked state"
20690
+ },
20691
+ "resumable": {
20692
+ "type": "boolean",
20693
+ "description": "Whether a later user response or steering message can resume the task"
20694
+ },
20695
+ "permissionRecovery": {
20696
+ "$ref": "#/definitions/PermissionRecoveryData",
20697
+ "description": "Permission-recovery episode that produced this blocker"
20698
+ }
20699
+ },
20700
+ "required": [
20701
+ "kind",
20702
+ "reason",
20703
+ "resumable",
20704
+ "permissionRecovery"
20705
+ ],
20706
+ "additionalProperties": false,
20707
+ "description": "Structured reason that the task cannot continue without intervention",
20708
+ "title": "TaskBlocker",
20709
+ "stability": "experimental"
20710
+ },
20711
+ "TaskBlockerKind": {
20712
+ "type": "string",
20713
+ "enum": [
20714
+ "permission_recovery"
20715
+ ],
20716
+ "description": "Category of structured task blocker",
20717
+ "title": "TaskBlockerKind",
20718
+ "x-enumDescriptions": {
20719
+ "permission_recovery": "Autopilot permission recovery requires intervention or has no safe autonomous path."
20720
+ }
20721
+ },
19909
20722
  "TaskCompleteData": {
19910
20723
  "type": "object",
19911
20724
  "properties": {
@@ -19929,6 +20742,10 @@
19929
20742
  "objectiveId": {
19930
20743
  "type": "integer",
19931
20744
  "description": "Active autopilot objective ID evaluated by the completion reviewer"
20745
+ },
20746
+ "blocker": {
20747
+ "$ref": "#/definitions/TaskBlocker",
20748
+ "description": "Structured blocker details when outcome is blocked"
19932
20749
  }
19933
20750
  },
19934
20751
  "additionalProperties": false,
@@ -22147,6 +22964,10 @@
22147
22964
  "type": "string",
22148
22965
  "description": "The user's message text as displayed in the timeline"
22149
22966
  },
22967
+ "responsesReasoning": {
22968
+ "$ref": "#/definitions/ResponsesReasoning",
22969
+ "description": "Responses reasoning settings anchored before this model-facing message, for cache-stable history replay"
22970
+ },
22150
22971
  "messageId": {
22151
22972
  "type": "string",
22152
22973
  "description": "Stable identity of the logical user message, matching the ID returned by send and retained by pending queue snapshots"