MCPcopy Index your code
hub / github.com/ByBrawe/opencode-loop / startWatchdog

Function startWatchdog

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

Source from the content-addressed store, hash-verified

910function updateSessionStatusFromEvent(event) {
911 const sessionID = event?.properties?.sessionID
912 if (typeof sessionID !== "string") return undefined
913 if (event?.type === "session.idle") {
914 sessionStatuses.set(sessionID, "idle")
915 sessionStatusSeenAt.set(sessionID, now())
916 return { sessionID, idle: true }
917 }
918 if (event?.type === "session.status") {
919 const status = event?.properties?.status
920 const type = status && typeof status === "object" ? status.type : undefined
921 if (typeof type === "string") {
922 sessionStatuses.set(sessionID, type)
923 sessionStatusSeenAt.set(sessionID, now())
924 }
925 return { sessionID, idle: type === "idle" }
926 }
927 return undefined
928}
929
930function userInterruptSessionFromEvent(event) {
931 if (!["message.updated", "message.created"].includes(String(event?.type || ""))) return undefined
932 const props = event?.properties || {}
933 const info = props.info || props.message || props
934 const role = info?.role
935 const sessionID = info?.sessionID || props.sessionID
936 if (role !== "user" || typeof sessionID !== "string") return undefined
937 if (loopOwnedUserMessageGuardActive(sessionID)) return undefined
938 return sessionID

Callers 1

scheduleDueWorkFunction · 0.85

Calls 7

readStateFunction · 0.85
nextDueDelayFunction · 0.85
isGoalJobFunction · 0.85
maybeRunDueJobsFunction · 0.85
scheduleDueWorkFunction · 0.85
appendLoopLogFunction · 0.85
sdkErrorMessageFunction · 0.85

Tested by

no test coverage detected