|
250 | 250 | (s/def ::azure-options |
251 | 251 | (s/keys :opt-un [::azure-api-version])) |
252 | 252 |
|
| 253 | +;; Provider :headers — extra HTTP headers forwarded with each model request |
| 254 | +;; (upstream PR #1094, available since CLI 1.0.32). Map of header name → value. |
| 255 | +(s/def ::headers (s/map-of string? string?)) |
| 256 | + |
253 | 257 | (s/def ::provider |
254 | 258 | (s/keys :req-un [::base-url] |
255 | | - :opt-un [::provider-type ::wire-api ::api-key ::bearer-token ::azure-options])) |
| 259 | + :opt-un [::provider-type ::wire-api ::api-key ::bearer-token ::azure-options |
| 260 | + ::headers])) |
256 | 261 |
|
257 | 262 | ;; ----------------------------------------------------------------------------- |
258 | 263 | ;; Session configuration |
|
360 | 365 | ;; enableConfigDiscovery: auto-discover MCP configs, skills, instruction files (upstream PR #1044) |
361 | 366 | (s/def ::enable-config-discovery boolean?) |
362 | 367 |
|
| 368 | +;; includeSubAgentStreamingEvents: forward streaming events from sub-agents to the parent |
| 369 | +;; session's event stream (upstream PR #1108). Defaults to true on the wire. |
| 370 | +(s/def ::include-sub-agent-streaming-events? boolean?) |
| 371 | + |
363 | 372 | ;; modelCapabilities override for session config / setModel (upstream PR #1029). |
364 | 373 | ;; DeepPartial<ModelCapabilities> — same shape as ::model-capabilities since all fields are already optional. |
365 | 374 |
|
|
371 | 380 | :disabled-skills :large-output :infinite-sessions |
372 | 381 | :reasoning-effort :on-user-input-request :on-elicitation-request :hooks |
373 | 382 | :working-directory :agent :on-event :create-session-fs-handler |
374 | | - :enable-config-discovery :model-capabilities}) |
| 383 | + :enable-config-discovery :model-capabilities |
| 384 | + :include-sub-agent-streaming-events?}) |
375 | 385 |
|
376 | 386 | (s/def ::session-config |
377 | 387 | (closed-keys |
|
383 | 393 | ::disabled-skills ::large-output ::infinite-sessions |
384 | 394 | ::reasoning-effort ::on-user-input-request ::on-elicitation-request ::hooks |
385 | 395 | ::working-directory ::agent ::on-event ::create-session-fs-handler |
386 | | - ::enable-config-discovery ::model-capabilities]) |
| 396 | + ::enable-config-discovery ::model-capabilities |
| 397 | + ::include-sub-agent-streaming-events?]) |
387 | 398 | session-config-keys)) |
388 | 399 |
|
389 | 400 | (def ^:private resume-session-config-keys |
|
392 | 403 | :mcp-servers :custom-agents :config-dir :skill-directories |
393 | 404 | :disabled-skills :infinite-sessions :reasoning-effort |
394 | 405 | :on-user-input-request :on-elicitation-request :hooks :working-directory :disable-resume? :agent :on-event |
395 | | - :create-session-fs-handler :enable-config-discovery :model-capabilities}) |
| 406 | + :create-session-fs-handler :enable-config-discovery :model-capabilities |
| 407 | + :include-sub-agent-streaming-events?}) |
396 | 408 |
|
397 | 409 | (s/def ::resume-session-config |
398 | 410 | (closed-keys |
|
403 | 415 | ::disabled-skills ::infinite-sessions ::reasoning-effort |
404 | 416 | ::on-user-input-request ::on-elicitation-request ::hooks ::working-directory ::disable-resume? ::agent |
405 | 417 | ::on-event ::create-session-fs-handler |
406 | | - ::enable-config-discovery ::model-capabilities]) |
| 418 | + ::enable-config-discovery ::model-capabilities |
| 419 | + ::include-sub-agent-streaming-events?]) |
407 | 420 | resume-session-config-keys)) |
408 | 421 |
|
409 | 422 | ;; join-session config: same as resume-session-config but :on-permission-request is optional. |
|
417 | 430 | ::disabled-skills ::infinite-sessions ::reasoning-effort |
418 | 431 | ::on-user-input-request ::on-elicitation-request ::hooks ::working-directory ::disable-resume? ::agent |
419 | 432 | ::on-event ::create-session-fs-handler |
420 | | - ::enable-config-discovery ::model-capabilities]) |
| 433 | + ::enable-config-discovery ::model-capabilities |
| 434 | + ::include-sub-agent-streaming-events?]) |
421 | 435 | resume-session-config-keys)) |
422 | 436 |
|
423 | 437 | ;; ----------------------------------------------------------------------------- |
|
504 | 518 | (s/def ::inbound-attachments (s/coll-of ::inbound-attachment)) |
505 | 519 | (s/def ::mode #{:enqueue :immediate}) |
506 | 520 |
|
| 521 | +;; Per-request HTTP headers forwarded to the model provider (upstream PR #1094). |
| 522 | +;; Map of header name → value, merged with any provider-level headers. |
| 523 | +(s/def ::request-headers (s/map-of string? string?)) |
| 524 | + |
507 | 525 | (s/def ::send-options |
508 | 526 | (s/keys :req-un [::prompt] |
509 | | - :opt-un [::attachments ::mode ::timeout-ms])) |
| 527 | + :opt-un [::attachments ::mode ::timeout-ms ::request-headers])) |
510 | 528 |
|
511 | 529 | (s/def ::timeout-ms pos-int?) |
512 | 530 |
|
|
566 | 584 | (s/def ::event-timestamp ::timestamp) |
567 | 585 | (s/def ::parent-id (s/nilable ::non-blank-string)) |
568 | 586 | (s/def ::ephemeral? boolean?) |
| 587 | +;; agent-id: identifies which (sub-)agent emitted an event. Present on most events |
| 588 | +;; once sub-agent streaming is enabled (upstream PR #1108). |
| 589 | +(s/def ::agent-id string?) |
| 590 | + |
| 591 | +;; canOfferSessionApproval: writeFile permission requests carry this hint indicating |
| 592 | +;; whether the CLI can present a "trust this session" option (upstream CLI 1.0.28). |
| 593 | +(s/def ::can-offer-session-approval? boolean?) |
| 594 | + |
| 595 | +;; reasoningTokens: per-message / per-session tokens used for reasoning content |
| 596 | +;; (upstream CLI 1.0.32). Reported on assistant.usage and session.usage_info events. |
| 597 | +(s/def ::reasoning-tokens nat-int?) |
569 | 598 |
|
570 | 599 | ;; Session log specs (upstream PR #737) |
571 | 600 | (s/def ::level #{"info" "warning" "error"}) |
|
574 | 603 |
|
575 | 604 | (s/def ::base-event |
576 | 605 | (s/keys :req-un [::event-id ::event-timestamp ::parent-id] |
577 | | - :opt-un [::ephemeral?])) |
| 606 | + :opt-un [::ephemeral? ::agent-id])) |
578 | 607 |
|
579 | 608 | ;; Event type enum (namespaced under :copilot/) |
580 | 609 | (s/def ::event-type |
|
0 commit comments