MCPcopy Create free account
hub / github.com/cursor/plugins / main

Function main

continual-learning/hooks/continual-learning-stop.ts:146–244  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

144}
145
146async function main(): Promise<number> {
147 try {
148 const input = await parseHookInput<StopHookInput>();
149 const state = loadState();
150
151 if (input.generation_id && input.generation_id === state.lastProcessedGenerationId) {
152 console.log(JSON.stringify({}));
153 return 0;
154 }
155 state.lastProcessedGenerationId = input.generation_id ?? null;
156
157 const countedTurn = shouldCountTurn(input);
158 const turnIncrement = countedTurn ? 1 : 0;
159 const turnsSinceLastRun = state.turnsSinceLastRun + turnIncrement;
160 const now = Date.now();
161
162 const trialEnabled = parseBoolean(
163 readEnvValue("CONTINUAL_LEARNING_TRIAL_MODE", "CONTINUOUS_LEARNING_TRIAL_MODE")
164 );
165 if (trialEnabled && countedTurn && state.trialStartedAtMs === null) {
166 state.trialStartedAtMs = now;
167 }
168
169 const trialDurationMinutes = parsePositiveInt(
170 readEnvValue(
171 "CONTINUAL_LEARNING_TRIAL_DURATION_MINUTES",
172 "CONTINUOUS_LEARNING_TRIAL_DURATION_MINUTES"
173 ),
174 TRIAL_DEFAULT_DURATION_MINUTES
175 );
176 const trialMinTurns = parsePositiveInt(
177 readEnvValue(
178 "CONTINUAL_LEARNING_TRIAL_MIN_TURNS",
179 "CONTINUOUS_LEARNING_TRIAL_MIN_TURNS"
180 ),
181 TRIAL_DEFAULT_MIN_TURNS
182 );
183 const trialMinMinutes = parsePositiveInt(
184 readEnvValue(
185 "CONTINUAL_LEARNING_TRIAL_MIN_MINUTES",
186 "CONTINUOUS_LEARNING_TRIAL_MIN_MINUTES"
187 ),
188 TRIAL_DEFAULT_MIN_MINUTES
189 );
190 const inTrialWindow =
191 trialEnabled &&
192 state.trialStartedAtMs !== null &&
193 now - state.trialStartedAtMs < trialDurationMinutes * 60_000;
194
195 const minTurns = parsePositiveInt(
196 readEnvValue("CONTINUAL_LEARNING_MIN_TURNS", "CONTINUOUS_LEARNING_MIN_TURNS"),
197 DEFAULT_MIN_TURNS
198 );
199 const minMinutes = parsePositiveInt(
200 readEnvValue("CONTINUAL_LEARNING_MIN_MINUTES", "CONTINUOUS_LEARNING_MIN_MINUTES"),
201 DEFAULT_MIN_MINUTES
202 );
203

Callers 1

Calls 7

loadStateFunction · 0.85
shouldCountTurnFunction · 0.85
parseBooleanFunction · 0.85
readEnvValueFunction · 0.85
parsePositiveIntFunction · 0.85
getTranscriptMtimeMsFunction · 0.85
saveStateFunction · 0.85

Tested by

no test coverage detected