MCPcopy Create free account
hub / github.com/ByBrawe/opencode-loop / scheduleIdleWork

Function scheduleIdleWork

src/index.js:866–890  ·  view source on GitHub ↗
(directory, client, sessionID)

Source from the content-addressed store, hash-verified

864 const info = message?.info || message;
865 const model = normalizedModelRef(info?.model) || normalizedModelRef(info);
866 if (!model)
867 continue;
868 const previous = getSessionExecutionContext(sessionID) || {};
869 setSessionExecutionContext(sessionID, { ...previous, model });
870 return model;
871 }
872 return;
873}
874async function compactSession(directory, client, sessionID, preferredModel) {
875 for (const command of ["session.compact", "session_compact"]) {
876 try {
877 await executeTuiCommand(client, command);
878 return true;
879 } catch (error) {
880 await log(client, "warn", `tui ${command} failed`, { error: sdkErrorMessage(error) });
881 }
882 }
883 try {
884 if (!client?.session?.summarize)
885 throw new Error("client.session.summarize is not available");
886 const model = await resolveCompactionModel(directory, client, sessionID, preferredModel);
887 if (!model)
888 throw new Error("could not resolve a provider/model for session.summarize");
889 const body = { providerID: model.providerID, modelID: model.modelID, auto: false };
890 await sdkCall(client.session.summarize.bind(client.session), { path: { id: sessionID }, body }, { path: { sessionID }, body }, { sessionID, ...body });
891 return true;
892 } catch (error) {
893 await log(client, "warn", "session.summarize fallback failed", { error: sdkErrorMessage(error) });

Callers 3

addLoopFunction · 0.85
resumeGoalFunction · 0.85
OpenCodeLoopPluginFunction · 0.85

Calls 7

sessionIsIdleFunction · 0.85
scheduleDueWorkFunction · 0.85
finalizeActiveRunFunction · 0.85
maybeRunDueJobsFunction · 0.85
toastFunction · 0.85
sdkErrorMessageFunction · 0.85
appendLoopLogFunction · 0.85

Tested by

no test coverage detected