Skip to content

Commit 4f16d36

Browse files
committed
Add Steward chain-of-custody hero
1 parent aff8f91 commit 4f16d36

2 files changed

Lines changed: 156 additions & 1 deletion

File tree

web/src/main.tsx

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -904,6 +904,28 @@ function App() {
904904
: "Steward stores a DAO voting mandate, asks Somnia's Parse Website agent to read proposal pages, sends the result to independent LLM reviewers, and casts the majority YES, NO, or ABSTAIN vote onchain."}
905905
</p>
906906
<p className="proofLine">5 proposal URLs · 15 reviewer calls · external forum proof included</p>
907+
<div className="chainOfCustody" aria-label="Agent vote chain of custody">
908+
<article>
909+
<span>01</span>
910+
<strong>Source URL</strong>
911+
<p>Developer DAO forum proposal</p>
912+
</article>
913+
<article>
914+
<span>02</span>
915+
<strong>Parse Website</strong>
916+
<p>Request #{externalCouncilCase.parseRequestId}</p>
917+
</article>
918+
<article>
919+
<span>03</span>
920+
<strong>3 reviewers</strong>
921+
<p>Budget, risk, participation</p>
922+
</article>
923+
<article>
924+
<span>04</span>
925+
<strong>Governor vote</strong>
926+
<p>{externalCouncilCase.tally}</p>
927+
</article>
928+
</div>
907929
<div className="heroStats" aria-label="Steward live proof metrics">
908930
<article>
909931
<strong>5</strong>
@@ -935,6 +957,11 @@ function App() {
935957
</div>
936958

937959
<div className="receipt" id="proof">
960+
<div className="opsHeader" aria-label="Steward command center status">
961+
<span>STWD / COUNCIL-05</span>
962+
<strong>VERIFIED EXTERNAL RUN</strong>
963+
<small>Somnia Testnet · live callbacks</small>
964+
</div>
938965
<div className="proofSpotlight">
939966
<div className="spotlightTop">
940967
<span>External proposal proof</span>
@@ -971,6 +998,23 @@ function App() {
971998
</a>
972999
</div>
9731000
</div>
1001+
<div className="reviewerBoard" aria-label="External council reviewer results">
1002+
<article>
1003+
<span>Budget reviewer</span>
1004+
<strong>YES</strong>
1005+
<p>12,000 USDC request is within delegated public-goods limits.</p>
1006+
</article>
1007+
<article>
1008+
<span>Risk reviewer</span>
1009+
<strong>YES</strong>
1010+
<p>No team unlock, no treasury drain, and source page is public.</p>
1011+
</article>
1012+
<article>
1013+
<span>Participation reviewer</span>
1014+
<strong>YES</strong>
1015+
<p>DevConnect growth work maps to DAO participation criteria.</p>
1016+
</article>
1017+
</div>
9741018
<div className="receiptTop">
9751019
<span>Baseline direct LLM proof</span>
9761020
<strong>

web/src/styles.css

Lines changed: 112 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1696,6 +1696,53 @@ main {
16961696
font-family: "Newsreader", Georgia, serif;
16971697
}
16981698

1699+
.chainOfCustody {
1700+
display: grid;
1701+
max-width: 820px;
1702+
margin-top: 24px;
1703+
border: 1px solid rgba(128, 255, 210, 0.18);
1704+
border-radius: 26px;
1705+
background:
1706+
linear-gradient(90deg, rgba(128, 255, 210, 0.1), transparent 34%),
1707+
rgba(255, 255, 255, 0.035);
1708+
}
1709+
1710+
.chainOfCustody article {
1711+
display: grid;
1712+
grid-template-columns: 52px minmax(0, 0.72fr) minmax(0, 1fr);
1713+
gap: 16px;
1714+
align-items: center;
1715+
min-width: 0;
1716+
padding: 14px 16px;
1717+
border-bottom: 1px solid rgba(221, 255, 246, 0.1);
1718+
}
1719+
1720+
.chainOfCustody article:last-child {
1721+
border-bottom: 0;
1722+
}
1723+
1724+
.chainOfCustody span {
1725+
color: var(--green);
1726+
font-size: 12px;
1727+
font-weight: 700;
1728+
letter-spacing: 0.16em;
1729+
}
1730+
1731+
.chainOfCustody strong {
1732+
color: #f6fff7;
1733+
font-family: "Newsreader", Georgia, serif;
1734+
font-size: 28px;
1735+
line-height: 0.94;
1736+
letter-spacing: -0.06em;
1737+
}
1738+
1739+
.chainOfCustody p {
1740+
margin: 0;
1741+
color: rgba(237, 245, 239, 0.62);
1742+
font-size: 13px;
1743+
line-height: 1.25;
1744+
}
1745+
16991746
.receipt {
17001747
border-color: rgba(128, 255, 210, 0.16);
17011748
border-radius: 18px 70px 18px 70px;
@@ -1715,6 +1762,32 @@ main {
17151762
background-size: 48px 48px;
17161763
}
17171764

1765+
.opsHeader {
1766+
display: grid;
1767+
grid-template-columns: minmax(0, 1fr) auto auto;
1768+
gap: 14px;
1769+
align-items: center;
1770+
margin-bottom: 18px;
1771+
padding: 12px 14px;
1772+
border: 1px solid rgba(128, 255, 210, 0.14);
1773+
border-radius: 999px;
1774+
background: rgba(0, 0, 0, 0.16);
1775+
}
1776+
1777+
.opsHeader strong {
1778+
color: var(--green);
1779+
font-size: 12px;
1780+
letter-spacing: 0.14em;
1781+
}
1782+
1783+
.opsHeader small {
1784+
color: rgba(237, 245, 239, 0.5);
1785+
font-size: 11px;
1786+
font-weight: 700;
1787+
letter-spacing: 0.1em;
1788+
text-transform: uppercase;
1789+
}
1790+
17181791
.proofSpotlight {
17191792
border-color: rgba(128, 255, 210, 0.22);
17201793
border-radius: 14px 48px 14px 48px;
@@ -1757,11 +1830,43 @@ main {
17571830
.quorumDeck article,
17581831
.payloadDeck article,
17591832
.live div,
1760-
.consoleOutput {
1833+
.consoleOutput,
1834+
.reviewerBoard article {
17611835
border-color: rgba(221, 255, 246, 0.12);
17621836
background: rgba(255, 255, 255, 0.045);
17631837
}
17641838

1839+
.reviewerBoard {
1840+
display: grid;
1841+
grid-template-columns: repeat(3, minmax(0, 1fr));
1842+
gap: 10px;
1843+
margin-top: 14px;
1844+
}
1845+
1846+
.reviewerBoard article {
1847+
min-width: 0;
1848+
padding: 16px;
1849+
border: 1px solid;
1850+
border-radius: 22px;
1851+
}
1852+
1853+
.reviewerBoard strong {
1854+
display: block;
1855+
margin-top: 16px;
1856+
color: var(--green);
1857+
font-family: "Newsreader", Georgia, serif;
1858+
font-size: 42px;
1859+
line-height: 0.84;
1860+
letter-spacing: -0.07em;
1861+
}
1862+
1863+
.reviewerBoard p {
1864+
margin: 12px 0 0;
1865+
color: rgba(237, 245, 239, 0.64);
1866+
font-size: 13px;
1867+
line-height: 1.34;
1868+
}
1869+
17651870
.voteCard.yes strong,
17661871
.councilBoard .yes strong,
17671872
.proposalSources .yes strong {
@@ -1916,6 +2021,12 @@ main {
19162021
padding-top: 58px;
19172022
}
19182023

2024+
.chainOfCustody article,
2025+
.opsHeader,
2026+
.reviewerBoard {
2027+
grid-template-columns: 1fr;
2028+
}
2029+
19192030
.copy h1 {
19202031
font-size: clamp(56px, 15vw, 86px);
19212032
}

0 commit comments

Comments
 (0)