## Compact an objective `client.objectives.compact(stringobjectiveID, ObjectiveCompactParamsbody, RequestOptionsoptions?): ObjectiveCompactResponse` **post** `/v1/objectives/{objectiveId}/compact` Triggers compaction on a running objective. Optionally override the variation's compaction config. ### Parameters - `objectiveID: string` - `body: ObjectiveCompactParams` - `compactionConfig?: AgentVariationSpecCompactionConfig` CompactionConfig defines how context window compaction behaves for objectives using this variation. - `summarization?: CompactionConfigSummarizationStrategy` SummarizationStrategy configures LLM-powered summarization of older conversation turns. - `instructions?: string` Custom instructions that guide what the summarizer preserves. Replaces the default summarization prompt entirely. Example: "Preserve all code snippets, variable names, and technical decisions." - `toolResultClearing?: CompactionConfigToolResultClearingStrategy` ToolResultClearingStrategy configures clearing of older tool result content. - `preserveRecentResults?: number` Number of most recent tool call results to keep intact. Older tool results have their content replaced with "[result cleared]" while preserving the assistant tool call message (function name, arguments). Default: 2 - `triggerThreshold?: number` Trigger threshold as a percentage of the model's context window (0.0 to 1.0). When input tokens reach this percentage of the model's limit, compaction triggers. Default: 0.75 (75%) ### Returns - `ObjectiveCompactResponse` Compact objective response - `contextWindow?: ObjectiveContextWindowData` The new context window created by the compaction - `completionTokens?: number` A calculated value for how many completion tokens (output tokens) have been used in this context window - `objectiveId?: string` The objective's ID that this window belongs to - `previousWindowContinueInstructions?: string` The instructions for this window to continue from a previous window's chat history. - `promptTokens?: number` A calculated value for how many prompt tokens (input tokens) have been used in this context window - `sequence?: number` sequence is a numeric representation of which context window this is. Sequences are useful to perform a max(sequence) on in order to calculate how many context windows an objective has. ### Example ```typescript import Cadenya from '@cadenya/cadenya'; const client = new Cadenya({ apiKey: process.env['CADENYA_API_KEY'], // This is the default and can be omitted }); const response = await client.objectives.compact('objectiveId'); console.log(response.contextWindow); ``` #### Response ```json { "contextWindow": { "completionTokens": 0, "objectiveId": "objectiveId", "previousWindowContinueInstructions": "previousWindowContinueInstructions", "promptTokens": 0, "sequence": 0 } } ```