feat(ulw-loop): require Oracle verification before completion

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
YeonGyu-Kim
2026-03-06 22:00:14 +09:00
parent c3f2198d34
commit a010de1db2
13 changed files with 286 additions and 58 deletions
+31 -6
View File
@@ -40,10 +40,18 @@ export function readState(directory: string, customPath?: string): RalphLoopStat
return str.replace(/^["']|["']$/g, "")
}
const ultrawork = data.ultrawork === true || data.ultrawork === "true" ? true : undefined
const maxIterations =
data.max_iterations === undefined || data.max_iterations === ""
? ultrawork
? undefined
: DEFAULT_MAX_ITERATIONS
: Number(data.max_iterations) || DEFAULT_MAX_ITERATIONS
return {
active: isActive,
iteration: iterationNum,
max_iterations: Number(data.max_iterations) || DEFAULT_MAX_ITERATIONS,
max_iterations: maxIterations,
message_count_at_start:
typeof data.message_count_at_start === "number"
? data.message_count_at_start
@@ -51,10 +59,17 @@ export function readState(directory: string, customPath?: string): RalphLoopStat
? Number(data.message_count_at_start)
: undefined,
completion_promise: stripQuotes(data.completion_promise) || DEFAULT_COMPLETION_PROMISE,
initial_completion_promise: data.initial_completion_promise
? stripQuotes(data.initial_completion_promise)
: undefined,
started_at: stripQuotes(data.started_at) || new Date().toISOString(),
prompt: body.trim(),
session_id: data.session_id ? stripQuotes(data.session_id) : undefined,
ultrawork: data.ultrawork === true || data.ultrawork === "true" ? true : undefined,
ultrawork,
verification_pending:
data.verification_pending === true || data.verification_pending === "true"
? true
: undefined,
strategy: data.strategy === "reset" || data.strategy === "continue" ? data.strategy : undefined,
}
} catch {
@@ -77,18 +92,28 @@ export function writeState(
const sessionIdLine = state.session_id ? `session_id: "${state.session_id}"\n` : ""
const ultraworkLine = state.ultrawork !== undefined ? `ultrawork: ${state.ultrawork}\n` : ""
const verificationPendingLine =
state.verification_pending !== undefined
? `verification_pending: ${state.verification_pending}\n`
: ""
const strategyLine = state.strategy ? `strategy: "${state.strategy}"\n` : ""
const initialCompletionPromiseLine = state.initial_completion_promise
? `initial_completion_promise: "${state.initial_completion_promise}"\n`
: ""
const messageCountAtStartLine =
typeof state.message_count_at_start === "number"
? `message_count_at_start: ${state.message_count_at_start}\n`
: ""
const maxIterationsLine =
typeof state.max_iterations === "number"
? `max_iterations: ${state.max_iterations}\n`
: ""
const content = `---
active: ${state.active}
iteration: ${state.iteration}
max_iterations: ${state.max_iterations}
completion_promise: "${state.completion_promise}"
started_at: "${state.started_at}"
${sessionIdLine}${ultraworkLine}${strategyLine}${messageCountAtStartLine}---
${maxIterationsLine}completion_promise: "${state.completion_promise}"
${initialCompletionPromiseLine}started_at: "${state.started_at}"
${sessionIdLine}${ultraworkLine}${verificationPendingLine}${strategyLine}${messageCountAtStartLine}---
${state.prompt}
`