kilo-loop/public/index.html

136 lines
5.3 KiB
HTML
Raw Permalink Normal View History

2026-09-13 10:46:28 +00:00
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>kilocode-loop</title>
<link rel="stylesheet" href="/styles.css" />
</head>
<body>
2026-09-13 16:29:03 +00:00
<header class="topbar" id="topbar">
2026-09-13 10:46:28 +00:00
<div class="brand">
<span class="logo"></span>
<div>
<div class="title">kilocode-loop</div>
<div class="sub" id="run-meta">connecting…</div>
</div>
</div>
<div class="spacer"></div>
2026-09-13 16:29:03 +00:00
<label
class="toggle"
id="toggle-shared"
title="Reuse one growing session across iterations (more context/tokens). Off = each iteration starts fresh with a curated handoff."
>
<input type="checkbox" id="chk-shared" />
<span>Use shared context between iterations</span>
</label>
2026-09-13 10:46:28 +00:00
<div class="status" id="status-pill">starting</div>
<div class="controls">
2026-09-13 16:29:03 +00:00
<button id="btn-new-run" class="hidden" title="Start another plan">New run</button>
<a id="btn-export" class="btn-link" href="#" title="Download the run report (markdown)">Report</a>
2026-09-13 10:46:28 +00:00
<button id="btn-pause" title="Pause before the next iteration (P)">Pause</button>
<button id="btn-abort" title="Stop after the current session finishes (X)">Abort after session</button>
<button id="btn-stop" class="danger" title="Kill the current session now (Q)">Stop now</button>
</div>
</header>
2026-09-13 16:29:03 +00:00
<section class="launcher hidden" id="launcher">
<div class="launcher-card">
<h2>Run a plan</h2>
<p class="muted">
Pick a goal or plan, set the verify command the loop must pass before a stage counts as done, then start.
</p>
<label class="field">
<span>Plan</span>
<select id="goal-select"></select>
</label>
<div id="goal-meta" class="goal-meta muted"></div>
<div class="goal-actions">
<button id="btn-mark-all" title="Mark every stage of this plan as done (100%)">Mark 100%</button>
<button id="btn-clear-all" title="Clear the done state on every stage">Clear done</button>
<span class="spacer"></span>
<button id="btn-delete-goal" class="danger" title="Move this plan file to .kilocode-loop/trash/ (recoverable)">Delete plan</button>
</div>
<div class="verify-global">
<label class="field grow">
<span>Default verify command (all stages)</span>
<input type="text" id="global-verify" placeholder="e.g. dotnet test w4c-workflows-api" />
</label>
<button id="btn-save-global-verify" title="Save to .kilocode-loop/config.json">Save</button>
</div>
<div class="goal-stages" id="goal-stages"></div>
<label class="field prompt-extra">
<span>Custom instruction (optional)</span>
<textarea
id="opt-prompt-extra"
rows="2"
placeholder="Added to the top of every iteration prompt, e.g. Keep the diff focused on the current stage and run pnpm test before reporting done."
></textarea>
</label>
<div class="run-options">
<label class="field"><span>Iterations</span><input type="number" id="opt-iterations" min="1" value="5" /></label>
<label class="field"><span>Agent</span><input type="text" id="opt-agent" value="code-design" /></label>
<label class="field"><span>HITL</span>
<select id="opt-hitl">
<option value="on-question">on question</option>
<option value="always">always</option>
<option value="off">off</option>
</select>
</label>
<label class="field checkbox"><input type="checkbox" id="opt-dryrun" /><span>Dry run</span></label>
</div>
<div class="launcher-actions">
<button id="btn-goals-refresh" title="Re-scan goals/plans">Refresh</button>
<button id="btn-start" class="primary">Start run</button>
</div>
<div id="launcher-error" class="launcher-error"></div>
</div>
</section>
<div id="run-view">
2026-09-13 10:46:28 +00:00
<section class="stats" id="stats"></section>
2026-09-13 16:29:03 +00:00
<section class="stages-panel">
<h2>Stages <span class="hint" id="stages-hint">verification gate: a stage is only done when its verify command passes</span></h2>
<div id="stages" class="stages"></div>
</section>
2026-09-13 10:46:28 +00:00
<main>
<section class="panel timeline-panel">
<h2>Iterations <span class="hint" id="iter-hint"></span></h2>
<div id="iterations" class="iterations"></div>
</section>
<section class="panel console-panel">
<h2>
Live session
<span class="hint">sections mark the current action · <b>X</b> abort after current · <b>P</b> pause · <b>Q</b> stop</span>
</h2>
<div id="log" class="log"></div>
</section>
</main>
2026-09-13 16:29:03 +00:00
</div>
2026-09-13 10:46:28 +00:00
<div class="modal hidden" id="modal">
<div class="modal-card">
<h3>Operator input required</h3>
<p class="muted" id="modal-sub"></p>
<div id="modal-questions"></div>
<div class="modal-actions">
<button id="btn-skip">Skip all</button>
<button id="btn-submit" class="primary">Submit</button>
</div>
</div>
</div>
<script src="/app.js"></script>
</body>
</html>