add docs for new event types
This commit is contained in:
@@ -175,6 +175,16 @@ Summary:
|
|||||||
|
|
||||||
Event payloads describe what is happening. Harness getters describe latest config for future snapshots. Hook and listener settlement should be awaited in lifecycle order where possible; transport backpressure is handled below the harness by `AssistantMessageStream`, so the harness does not need a separate async event queue merely to keep SSE or websocket reads flowing.
|
Event payloads describe what is happening. Harness getters describe latest config for future snapshots. Hook and listener settlement should be awaited in lifecycle order where possible; transport backpressure is handled below the harness by `AssistantMessageStream`, so the harness does not need a separate async event queue merely to keep SSE or websocket reads flowing.
|
||||||
|
|
||||||
|
### Summarization retry events
|
||||||
|
|
||||||
|
When the harness is configured with a retry policy, generated compaction and branch-summary requests emit retry lifecycle events for transient provider errors:
|
||||||
|
|
||||||
|
- `retry_scheduled`: a retry was scheduled. Includes `operation: "compaction" | "branch_summary"`, `attempt`, `maxAttempts`, `delayMs`, and `errorMessage`.
|
||||||
|
- `retry_attempt_start`: the backoff delay completed and the retried summarization request is starting. Includes `operation`.
|
||||||
|
- `retry_finished`: the retry loop finished after success, exhaustion, or abort. Includes `operation`.
|
||||||
|
|
||||||
|
These events are observational and do not accept hook results.
|
||||||
|
|
||||||
## Planned session facade
|
## Planned session facade
|
||||||
|
|
||||||
Extensions should eventually interact with a harness-scoped `HarnessSession` facade rather than the raw session. The facade should wrap the internal session and enforce harness pending-write ordering semantics. Once this exists, hooks and event listeners can receive a context that exposes the full `AgentHarness` plus the session facade without giving direct access to unordered raw session writes.
|
Extensions should eventually interact with a harness-scoped `HarnessSession` facade rather than the raw session. The facade should wrap the internal session and enforce harness pending-write ordering semantics. Once this exists, hooks and event listeners can receive a context that exposes the full `AgentHarness` plus the session facade without giving direct access to unordered raw session writes.
|
||||||
|
|||||||
@@ -17,7 +17,11 @@ type AgentSessionEvent =
|
|||||||
| { type: "compaction_start"; reason: "manual" | "threshold" | "overflow" }
|
| { type: "compaction_start"; reason: "manual" | "threshold" | "overflow" }
|
||||||
| { type: "compaction_end"; reason: "manual" | "threshold" | "overflow"; result: CompactionResult | undefined; aborted: boolean; willRetry: boolean; errorMessage?: string }
|
| { type: "compaction_end"; reason: "manual" | "threshold" | "overflow"; result: CompactionResult | undefined; aborted: boolean; willRetry: boolean; errorMessage?: string }
|
||||||
| { type: "auto_retry_start"; attempt: number; maxAttempts: number; delayMs: number; errorMessage: string }
|
| { type: "auto_retry_start"; attempt: number; maxAttempts: number; delayMs: number; errorMessage: string }
|
||||||
| { type: "auto_retry_end"; success: boolean; attempt: number; finalError?: string };
|
| { type: "auto_retry_end"; success: boolean; attempt: number; finalError?: string }
|
||||||
|
| { type: "summarization_retry_scheduled"; attempt: number; maxAttempts: number; delayMs: number; errorMessage: string }
|
||||||
|
| { type: "summarization_retry_attempt_start"; source: "branchSummary" }
|
||||||
|
| { type: "summarization_retry_attempt_start"; source: "compaction"; reason: "manual" | "threshold" | "overflow" }
|
||||||
|
| { type: "summarization_retry_finished" };
|
||||||
```
|
```
|
||||||
|
|
||||||
`queue_update` emits the full pending steering and follow-up queues whenever they change. `compaction_start` and `compaction_end` cover both manual and automatic compaction.
|
`queue_update` emits the full pending steering and follow-up queues whenever they change. `compaction_start` and `compaction_end` cover both manual and automatic compaction.
|
||||||
|
|||||||
@@ -851,6 +851,9 @@ Events are streamed to stdout as JSON lines during agent operation. Events do NO
|
|||||||
| `compaction_end` | Compaction completes |
|
| `compaction_end` | Compaction completes |
|
||||||
| `auto_retry_start` | Auto-retry begins (after transient error) |
|
| `auto_retry_start` | Auto-retry begins (after transient error) |
|
||||||
| `auto_retry_end` | Auto-retry completes (success or final failure) |
|
| `auto_retry_end` | Auto-retry completes (success or final failure) |
|
||||||
|
| `summarization_retry_scheduled` | Retry scheduled for a transient compaction or branch-summary summarization error |
|
||||||
|
| `summarization_retry_attempt_start` | Retried summarization request starts |
|
||||||
|
| `summarization_retry_finished` | Summarization retry loop completes |
|
||||||
| `extension_error` | Extension threw an error |
|
| `extension_error` | Extension threw an error |
|
||||||
|
|
||||||
### agent_start
|
### agent_start
|
||||||
@@ -1077,6 +1080,36 @@ On final failure (max retries exceeded):
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### summarization_retry_scheduled / summarization_retry_attempt_start / summarization_retry_finished
|
||||||
|
|
||||||
|
Emitted when compaction or branch-summary summarization retries after a transient provider error. These events use the same retry settings as automatic assistant-turn retries.
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"type": "summarization_retry_scheduled",
|
||||||
|
"attempt": 1,
|
||||||
|
"maxAttempts": 3,
|
||||||
|
"delayMs": 2000,
|
||||||
|
"errorMessage": "terminated"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"type": "summarization_retry_attempt_start",
|
||||||
|
"source": "compaction",
|
||||||
|
"reason": "threshold"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
For branch summaries, `source` is `"branchSummary"` and no `reason` is present.
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"type": "summarization_retry_finished"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### extension_error
|
### extension_error
|
||||||
|
|
||||||
Emitted when an extension throws an error.
|
Emitted when an extension throws an error.
|
||||||
|
|||||||
@@ -319,6 +319,9 @@ session.subscribe((event) => {
|
|||||||
case "compaction_end":
|
case "compaction_end":
|
||||||
case "auto_retry_start":
|
case "auto_retry_start":
|
||||||
case "auto_retry_end":
|
case "auto_retry_end":
|
||||||
|
case "summarization_retry_scheduled":
|
||||||
|
case "summarization_retry_attempt_start":
|
||||||
|
case "summarization_retry_finished":
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user