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

Function sessionStatusType

src/index.js:828–860  ·  view source on GitHub ↗
(client, sessionID, directory, options = {})

Source from the content-addressed store, hash-verified

826 const completed = Number(info?.time?.completed || 0);
827 const created = Number(info?.time?.created || 0);
828 if (!Number.isFinite(completed) || completed <= 0)
829 return "incomplete";
830 const startedAt = Number(active?.startedAt || 0);
831 if (startedAt > 0 && completed < startedAt && (!Number.isFinite(created) || created < startedAt))
832 return "incomplete";
833 const relevant = ordered.filter((message) => {
834 const candidate = message?.info || message || {};
835 if (candidate.role !== "assistant")
836 return false;
837 if (startedAt <= 0)
838 return true;
839 const candidateCreated = Number(candidate?.time?.created || 0);
840 const candidateCompleted = Number(candidate?.time?.completed || 0);
841 return candidateCreated >= startedAt || candidateCompleted >= startedAt;
842 });
843 return relevant.some(assistantMessageHasMeaningfulActivity) ? "completed" : "empty";
844}
845async function resolveCompactionModel(directory, client, sessionID, preferredModel) {
846 const preferred = normalizedModelRef(preferredModel);
847 if (preferred)
848 return preferred;
849 const cached = normalizedModelRef(getSessionExecutionContext(sessionID)?.model);
850 if (cached)
851 return cached;
852 const captured = await captureSessionExecutionContext(client, sessionID);
853 const capturedModel = normalizedModelRef(captured?.model);
854 if (capturedModel)
855 return capturedModel;
856 const messages = await readRecentSessionMessages(client, sessionID, directory);
857 for (const message of orderedSessionMessages(messages).reverse()) {
858 const info = message?.info || message;
859 const model = normalizedModelRef(info?.model) || normalizedModelRef(info);
860 if (!model)
861 continue;
862 const previous = getSessionExecutionContext(sessionID) || {};
863 setSessionExecutionContext(sessionID, { ...previous, model });

Callers 1

sessionIsIdleFunction · 0.85

Calls 3

nowFunction · 0.85
readLiveSessionStatusFunction · 0.85
staleActiveRunFunction · 0.85

Tested by

no test coverage detected