SessionCompactionCompleteEvent.java
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
*--------------------------------------------------------------------------------------------*/
package com.github.copilot.sdk.events;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* Event: session.compaction_complete
*
* @since 1.0.0
*/
@JsonIgnoreProperties(ignoreUnknown = true)
public final class SessionCompactionCompleteEvent extends AbstractSessionEvent {
@JsonProperty("data")
private SessionCompactionCompleteData data;
@Override
public String getType() {
return "session.compaction_complete";
}
public SessionCompactionCompleteData getData() {
return data;
}
public void setData(SessionCompactionCompleteData data) {
this.data = data;
}
@JsonIgnoreProperties(ignoreUnknown = true)
public record SessionCompactionCompleteData(@JsonProperty("success") boolean success,
@JsonProperty("error") String error, @JsonProperty("preCompactionTokens") Double preCompactionTokens,
@JsonProperty("postCompactionTokens") Double postCompactionTokens,
@JsonProperty("preCompactionMessagesLength") Double preCompactionMessagesLength,
@JsonProperty("messagesRemoved") Double messagesRemoved,
@JsonProperty("tokensRemoved") Double tokensRemoved, @JsonProperty("summaryContent") String summaryContent,
@JsonProperty("checkpointNumber") Double checkpointNumber,
@JsonProperty("checkpointPath") String checkpointPath,
@JsonProperty("compactionTokensUsed") CompactionTokensUsed compactionTokensUsed,
@JsonProperty("requestId") String requestId) {
}
/**
* Token usage information for the compaction operation.
*/
@JsonIgnoreProperties(ignoreUnknown = true)
public record CompactionTokensUsed(@JsonProperty("input") double input, @JsonProperty("output") double output,
@JsonProperty("cachedInput") double cachedInput) {
}
}