File size: 6,522 Bytes
ae853c1
 
 
 
 
 
 
 
e30a933
ae853c1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fb88864
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ae853c1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e30a933
 
ae853c1
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>WEED-SIM · Document Hub</title>
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="/static/meta.css">
    <link rel="stylesheet" href="/static/agent-widget.css">
</head>
<body>
    <div class="glow a"></div><div class="glow b"></div>
    <div class="wrap">
        <div class="topbar">
            <div class="brand"><span class="hex"></span><h1>DOCUMENT HUB</h1></div>
            <nav class="topnav">
                <a href="/">Home</a><a href="/play">Play</a><a href="/lab">Lab</a><a href="/deck">Deck</a><a href="/docs">API</a>
            </nav>
        </div>

        <section class="hero" style="padding:1rem 0 1.5rem">
            <div class="kicker">Meta routing manifest</div>
            <h2 style="font-size:clamp(2rem,5vw,3.2rem)">Every surface, one click away.</h2>
            <p class="tagline">A self-describing index of the system. Each card below routes <b>straight into the live subsystem</b> it documents — read endpoints open inline, the modes open their UI, provenance links reach the Observer Bus.</p>
        </section>

        <!-- Agent access -->
        <section class="section">
            <h3>Agent Access · connect &amp; use it</h3>
            <p>WEED-SIM is fully driveable by agents over HTTP — no browser needed. State is held by a
                <b>session header</b> (not a cookie), so any client keeps its own germplasm registry. The machine
                contract is at <a class="inline" href="/openapi.json" target="_blank">/openapi.json</a>
                (<a class="inline" href="/docs" target="_blank">Swagger</a>). The embedded
                <a class="inline" href="/bus">Observer Bus</a> is open too: read
                <a class="inline" href="/bus/api/signals" target="_blank">signals</a>,
                <a class="inline" href="/bus/api/facilities" target="_blank">facilities</a> (WEED-SIM ops are registered there),
                and the <a class="inline" href="/bus/api/os" target="_blank">Resource OS</a>.</p>
            <pre style="background:rgba(0,0,0,0.45);border:1px solid var(--border-glass);padding:1rem;overflow:auto;font-family:var(--font-mono);font-size:0.8rem;color:var(--text-main);line-height:1.5;">SID="agent-$(uuidgen)"            # any stable id; this IS your session
H="X-WeedSim-Session: $SID"
B=https://tostido-weed-sim.hf.space

curl -s -X POST -H "$H" $B/api/inventory/starter        # seed 12 strains
curl -s        -H "$H" $B/api/lab/germplasm | jq .count # observe the registry
ID=$(curl -s   -H "$H" $B/api/inventory | jq -r .seeds[0].id)
curl -s -X POST -H "$H" $B/api/seed/$ID/grow            # grow x3 -> MATURE ...
curl -s -X POST -H "$H" -H 'Content-Type: application/json' \
     -d "{\"parent1_id\":\"A\",\"parent2_id\":\"B\"}" $B/api/breed   # cross -> receipt

curl -s $B/bus/api/signals    | jq '.signals[].title'   # crosses appear on the bus
curl -s $B/bus/api/facilities | jq '.facilities'        # WEED-SIM syscall table</pre>
            <p>Images carry the session via <code>?sid=&lt;SID&gt;</code> (since <code>&lt;img&gt;</code> can't send headers):
                <a class="inline" href="/api/image/{id}/96?sid={SID}" target="_blank">/api/image/{id}/96?sid=…</a>.</p>
        </section>

        <!-- Live route manifest -->
        <section class="section">
            <h3>Routing Manifest</h3>
            <div id="manifest"><p>loading…</p></div>
        </section>

        <!-- Architecture docs, each linking to its live surface -->
        <section class="section">
            <h3>Genetics Engine</h3>
            <p>Each trait is a pair of <b>alleles</b> with a per-trait <b>stability</b>. Numeric traits (THC, CBD, Yield, GrowTime) inherit by dominance-weighted averaging; <b>BudColor</b> and <b>LeafColor</b> are HSV allele ranges recombined per channel, so offspring colors stay vivid instead of muddying. See the genotype live in <a class="inline" href="/api/lab/germplasm" target="_blank">/api/lab/germplasm</a> or breed in <a class="inline" href="/play">Play Mode</a>.</p>
        </section>
        <section class="section">
            <h3>Sprite Masking</h3>
            <p>Pixel-art sprites are split per-pixel into <b>leaf</b> (green-family hue) and <b>bud</b> (cola) masks. Offspring keep each pixel's brightness while shifting hue to the inherited bud/leaf color — green foliage, distinctly colored colas. Rendered at <a class="inline" href="/api/image/{id}/96" target="_blank">/api/image/{id}/{size}</a>.</p>
        </section>
        <section class="section">
            <h3>Speciation Lab</h3>
            <p>A <b>BrAPI-style</b> germplasm surface: faceted grid, brushable <b>parallel coordinates</b>, an HSV <b>color-gamut wheel</b>, and a Monte-Carlo <b>cross predictor</b>. A breeding pedigree is a <i>reticulate network</i> (crosses = hybridization), exportable as <a class="inline" href="/api/lab/newick" target="_blank">Extended Newick</a> for <a class="inline" href="https://icytree.org/" target="_blank">IcyTree</a>. Model follows the <a class="inline" href="https://brapi.org/specification" target="_blank">BrAPI spec</a>. Open the <a class="inline" href="/lab">Lab →</a></p>
        </section>
        <section class="section">
            <h3>The Deck &amp; Observer Bus</h3>
            <p>The <a class="inline" href="/deck">Deck</a> is the shared-state hub: <a class="inline" href="/api/deck/summary" target="_blank">/api/deck/summary</a> aggregates the whole population, and <a class="inline" href="/api/deck/signals" target="_blank">/api/deck/signals</a> proxies the <a class="inline" href="https://huggingface.co/spaces/tostido/K-os" target="_blank">K-os Observer Bus</a>. Every cross publishes a fail-open <b>provenance receipt</b>; a shared <a class="inline" href="/api/selection" target="_blank">selection</a> rides across all three modes.</p>
        </section>

        <footer>
            WEED-SIM Document Hub · <a href="/">Home</a> · <a href="/docs">OpenAPI / Swagger</a> ·
            <a href="https://huggingface.co/spaces/tostido/K-os" target="_blank">K-os</a>
        </footer>
    </div>
    <script src="/static/docs.js"></script>
    <script src="/static/session.js"></script>
    <script src="/static/agent-widget.js"></script>
</body>
</html>