diff --git a/run.json b/run.json index b8a2e215e..f6768cbb9 100644 --- a/run.json +++ b/run.json @@ -397,15 +397,113 @@ "in_place": false }, "graph_source": "digraph Interview {\n graph [goal=\"Run a progressive human interview and summarize the answers\"]\n rankdir=LR\n\n start [shape=Mdiamond, label=\"Start\"]\n exit [shape=Msquare, label=\"Exit\"]\n\n yes_no [\n shape=hexagon,\n label=\"Is this interview workflow easy to follow so far?\",\n question_type=\"yes_no\"\n ]\n confirmation [\n shape=hexagon,\n label=\"Confirm that you want to continue into more structured questions.\",\n question_type=\"confirmation\"\n ]\n multiple_choice [\n shape=hexagon,\n label=\"Which theme should be the center of the final summary?\",\n question_type=\"multiple_choice\"\n ]\n multi_select [\n shape=hexagon,\n label=\"Which supporting areas should the final summary emphasize?\",\n question_type=\"multi_select\"\n ]\n freeform [\n shape=hexagon,\n label=\"Add any final context, constraints, or nuance for the summary.\",\n question_type=\"freeform\"\n ]\n summarize [\n shape=tab,\n label=\"Summarize Interview\",\n fidelity=\"summary:high\",\n prompt=\"Summarize the full human interview. Include each question and answer in order, then synthesize the user's priorities, constraints, and open questions. Use the human.gate..question and human.gate..answer context keys when present. Do not invent missing answers.\"\n ]\n\n start -> yes_no\n\n yes_no -> confirmation [label=\"[Y] Yes\"]\n yes_no -> confirmation [label=\"[N] No\"]\n\n confirmation -> multiple_choice [label=\"[Y] Continue\"]\n confirmation -> multiple_choice [label=\"[N] Stop after this, but still summarize\"]\n\n multiple_choice -> multi_select [label=\"[G] Goals\"]\n multiple_choice -> multi_select [label=\"[R] Risks\"]\n multiple_choice -> multi_select [label=\"[T] Tradeoffs\"]\n multiple_choice -> multi_select [label=\"[Q] Open questions\"]\n\n multi_select -> freeform [label=\"[S] Success criteria\"]\n multi_select -> freeform [label=\"[B] Blockers\"]\n multi_select -> freeform [label=\"[D] Decisions needed\"]\n multi_select -> freeform [label=\"[N] Next steps\"]\n\n freeform -> summarize [freeform=true]\n summarize -> exit\n}\n", - "start": null, - "status": { - "kind": "starting" + "start": { + "run_id": "01KR4E6RHFVXY0CT4QEGET0Z93", + "start_time": "2026-05-08T18:39:57.259077Z", + "run_branch": "fabro/run/01KR4E6RHFVXY0CT4QEGET0Z93", + "base_sha": "50032d0f66f59e3d22f2b59125cd0dc9497ba3cb" }, - "status_updated_at": "2026-05-08T18:39:40.120002Z", - "last_event_at": "2026-05-08T18:39:56.323242Z", + "status": { + "kind": "blocked", + "blocked_reason": "human_input_required" + }, + "status_updated_at": "2026-05-08T18:40:01.550914Z", + "last_event_at": "2026-05-08T18:40:01.550914Z", "pending_control": null, - "checkpoint": null, - "checkpoints": [], + "checkpoint": { + "timestamp": "2026-05-08T18:41:41.561944Z", + "current_node": "yes_no", + "completed_nodes": [ + "start", + "yes_no" + ], + "node_retries": {}, + "context_values": { + "internal.fidelity": "compact", + "failure_signature": "", + "internal.run_id": "01KR4E6RHFVXY0CT4QEGET0Z93", + "internal.thread_id": "start", + "internal.work_dir": "/home/daytona/workspace", + "internal.node_visit_count": 1, + "graph.rankdir": "LR", + "internal.retry_count.start": 0, + "human.gate.label": "[Y] Yes", + "human.gate.yes_no.question": "Is this interview workflow easy to follow so far?", + "failure_class": "", + "human.gate.yes_no.label": "[Y] Yes", + "current_node": "yes_no", + "thread.start.current_node": "yes_no", + "human.gate.yes_no.answer": "yes", + "human.gate.selected": "Y", + "internal.retry_count.yes_no": 0, + "preferred_label": "[Y] Yes", + "graph.goal": "Run a progressive human interview and summarize the answers", + "outcome": "succeeded" + }, + "node_outcomes": { + "start": { + "status": "succeeded", + "usage": null + }, + "yes_no": { + "status": "succeeded", + "preferred_label": "[Y] Yes", + "suggested_next_ids": [ + "confirmation" + ], + "context_updates": { + "human.gate.selected": "Y", + "human.gate.label": "[Y] Yes", + "human.gate.yes_no.question": "Is this interview workflow easy to follow so far?", + "human.gate.yes_no.answer": "yes", + "human.gate.yes_no.label": "[Y] Yes" + }, + "usage": null + } + }, + "next_node_id": "confirmation", + "node_visits": { + "start": 1, + "yes_no": 1 + } + }, + "checkpoints": [ + [ + 18, + { + "timestamp": "2026-05-08T18:40:01.550377Z", + "current_node": "start", + "completed_nodes": [ + "start" + ], + "node_retries": {}, + "context_values": { + "current_node": "start", + "failure_class": "", + "internal.thread_id": null, + "internal.work_dir": "/home/daytona/workspace", + "failure_signature": "", + "internal.node_visit_count": 1, + "internal.fidelity": "compact", + "internal.retry_count.start": 0, + "outcome": "succeeded", + "internal.run_id": "01KR4E6RHFVXY0CT4QEGET0Z93", + "graph.goal": "Run a progressive human interview and summarize the answers", + "graph.rankdir": "LR" + }, + "node_outcomes": { + "start": { + "status": "succeeded", + "usage": null + } + }, + "next_node_id": "yes_no", + "node_visits": { + "start": 1 + } + } + ] + ], "conclusion": null, "retro": null, "retro_prompt": null, @@ -421,6 +519,62 @@ "final_patch": null, "pull_request": null, "superseded_by": null, - "pending_interviews": {}, - "stages": {} + "pending_interviews": { + "01KR4E7DGEVKKT0KA9DGZK7SKW": { + "question": { + "id": "01KR4E7DGEVKKT0KA9DGZK7SKW", + "text": "Is this interview workflow easy to follow so far?", + "stage": "yes_no", + "question_type": "yes_no", + "options": [ + { + "key": "Y", + "label": "[Y] Yes" + }, + { + "key": "N", + "label": "[N] No" + } + ], + "allow_freeform": false + }, + "started_at": "2026-05-08T18:40:01.550863Z" + } + }, + "stages": { + "yes_no@1": { + "first_event_seq": 19, + "prompt": null, + "response": null, + "completion": null, + "provider_used": null, + "diff": null, + "script_invocation": null, + "script_timing": null, + "parallel_results": null, + "output": null, + "started_at": "2026-05-08T18:40:01.550553Z", + "state": "running" + }, + "start@1": { + "first_event_seq": 15, + "prompt": null, + "response": null, + "completion": { + "outcome": "succeeded", + "notes": null, + "failure_reason": null, + "timestamp": "2026-05-08T18:40:01.549452Z" + }, + "provider_used": null, + "diff": null, + "script_invocation": null, + "script_timing": null, + "parallel_results": null, + "output": null, + "started_at": "2026-05-08T18:40:01.548598Z", + "duration_ms": 0, + "state": "succeeded" + } + } } \ No newline at end of file diff --git a/stages/001-start@1/status.json b/stages/001-start@1/status.json new file mode 100644 index 000000000..1fafc40a8 --- /dev/null +++ b/stages/001-start@1/status.json @@ -0,0 +1,6 @@ +{ + "outcome": "succeeded", + "notes": null, + "failure_reason": null, + "timestamp": "2026-05-08T18:40:01.549452Z" +} \ No newline at end of file