atagen

jelq

public

an http based roguelike rpg about jelqing

Star0
Watch0
624fe9c09c8eefdb9679b36259b76f6439318edc
1
ssh://brewery@pls.lobotomise.me:33/atagen/jelq.git
scripts/probe-oracle.nu76 lines6.7 KB
1
# Probe the live System One model with the game's exact ask format.
2
3
def main [url: string = "http://127.0.0.1:8700/v1/systemone", which: string = "all"] {
4
    let bedroom = "Floor 1, the bedroom. Turn 12.\n\neq: 55\nstamina: 7\nfriction: 8\nsuspicion: 1\nshame: 2\nwarmed up: yes\ngrip: overhand\nitems: baby-oil\n"
5
    let hot = "Floor 1, the bedroom. Turn 40.\n\neq: 96\nstamina: 4\nfriction: 30\nsuspicion: 2\nshame: 4\nwarmed up: yes\ngrip: overhand\nitems: ring\n"
6
    let bathroom = "Floor 2, the bathroom. Turn 30.\n\neq: 55\nstamina: 7\nfriction: 12\nsuspicion: 4\nshame: 3\nwarmed up: yes\ngrip: overhand\n"
7
    let changing = "Floor 3, the changing room. Turn 10.\n\neq: 60\nstamina: 8\nfriction: 10\nsuspicion: 2\nshame: 1\nwarmed up: yes\ngrip: overhand\n"
8
    let hotel = "Floor 5, the hotel room. Turn 40.\n\neq: 60\nstamina: 6\nfriction: 10\nsuspicion: 3\nshame: 4\nwarmed up: yes\ngrip: overhand\nitems: dnd-sign\n"
9
    let hold = "Floor 1, the bedroom. Turn 25.\n\neq: 75\nstamina: 1\nfriction: 20\nsuspicion: 2\nshame: 5\nwarmed up: yes\ngrip: overhand\n"
10
    let exit = "Floor 1, the bedroom. Turn 18.\n\neq: 55\nstamina: 8\nfriction: 6\nsuspicion: 1\nshame: 2\nwarmed up: yes\ngrip: overhand\nitems: ruler\n"
11
    let drawer = "Floor 1, the bedroom. Turn 2.\n\neq: 20\nstamina: 10\nfriction: 0\nsuspicion: 0\nshame: 0\nwarmed up: no\ngrip: overhand\n"
12
    let kitchen = "Floor 1, the bedroom. Turn 8.\n\neq: 92\nstamina: 9\nfriction: 4\nsuspicion: 1\nshame: 2\nwarmed up: yes\ngrip: overhand\n"
13
14
    let current = [
15
        {site: "observed" ask: "Has someone quietly noticed what is going on?" odds: "1 in 6" state: $changing}
16
        {site: "wanderer" ask: "Given how much noise has been made, does someone wander in unannounced?" odds: "about 1 in 32" state: $bathroom}
17
        {site: "wanderer-hot" ask: "Given how much noise has been made, does someone wander in unannounced?" odds: "about 6 in 32" state: $bathroom}
18
        {site: "zip" ask: "As the floor ends and you put yourself away, does the zip catch?" odds: "1 in 200" state: $exit}
19
        {site: "kitchen-told" ask: "Has the household had enough of the raiding?" odds: "1 in 4" state: $kitchen}
20
        {site: "reflection" ask: "In the quiet afterwards, have you caught your own eye in the mirror?" odds: "1 in 12" state: $hold}
21
        {site: "cat-takes-towel" ask: "Has the cat taken the towel?" odds: "1 in 5" state: $bathroom}
22
        {site: "window" ask: "Is a neighbour at the window with a camera?" odds: "1 in 60" state: $bedroom}
23
        {site: "friend" ask: "Does a friend walk in and offer to help?" odds: "1 in 10" state: $changing}
24
        {site: "degloving" ask: "Dry at this intensity, does the skin tear?" odds: "1 in 60" state: $hot}
25
        {site: "friction-burn" ask: "With the skin this raw, has it finally burned?" odds: "1 in 10" state: $hot}
26
        {site: "pulled-muscle" ask: "Does this intensity pull a muscle?" odds: "1 in 12" state: $hot}
27
        {site: "ring-priapism" ask: "With the ring still on and everything this warm, will it not go down?" odds: "1 in 10" state: $hot}
28
        {site: "hotel-stress" ask: "Has the hotel's plumbing given up for the week?" odds: "1 in 3" state: $hotel}
29
        {site: "caught-meloned" ask: "Is Mum standing in the doorway as you look up?" odds: "1 in 3" state: $kitchen}
30
        {site: "misdirected" ask: "With the curve, does the stroke land sharply to the left?" odds: "1 in 3" state: $hot}
31
        {site: "key-in-drawer" ask: "Does the drawer finally give up the cage key?" odds: "1 in 3" state: $drawer}
32
        {site: "watermelon" ask: "Is there a watermelon in the fridge, exactly the right shape?" odds: "about 2 in 5" state: $kitchen}
33
        {site: "mum-summon" ask: "With this much noise in the house, is Mum on her way up?" odds: "about 1 in 16" state: $bedroom}
34
        {site: "mum-summon-hot" ask: "With this much noise in the house, is Mum on her way up?" odds: "about 6 in 16" state: $bedroom}
35
        {site: "teach-uli" ask: "Does this reread finally surface the 2009 reply that teaches uli?" odds: "1 in 4" state: $bedroom}
36
        {site: "rupture-calm" ask: "Does this jelq rupture something?" odds: "1 in 250" state: $bedroom}
37
        {site: "rupture-hot" ask: "Does this jelq rupture something?" odds: "1 in 10" state: $hot}
38
        {site: "rupture-premature" ask: "Right at the edge of finishing, does it rupture instead?" odds: "1 in 3" state: $hot}
39
        {site: "rupture-hold" ask: "Does even the pause rupture something?" odds: "1 in 250" state: $hold}
40
        {site: "viral" ask: "Has a neighbour already sent Mum the footage?" odds: "1 in 2" state: $bedroom}
41
    ]
42
43
    let candidate = [
44
        {site: "observed" ask: "Does the moment pass unnoticed?" odds: "1 in 6" state: $changing}
45
        {site: "wanderer" ask: "Does the room stay private?" odds: "about 1 in 32" state: $bathroom}
46
        {site: "zip" ask: "Does the zip slide down without a fight?" odds: "1 in 200" state: $exit}
47
        {site: "kitchen-told" ask: "Does the raid pass without comment?" odds: "1 in 4" state: $kitchen}
48
        {site: "reflection" ask: "Do you keep your composure?" odds: "1 in 12" state: $hold}
49
        {site: "cat-takes-towel" ask: "Is the towel still where you left it?" odds: "1 in 5" state: $bathroom}
50
        {site: "window" ask: "Are the curtains still closed?" odds: "1 in 60" state: $bedroom}
51
        {site: "friend" ask: "Does the changing room stay empty?" odds: "1 in 10" state: $changing}
52
        {site: "degloving" ask: "Does the skin hold?" odds: "1 in 60" state: $hot}
53
        {site: "friction-burn" ask: "Does the skin hold up?" odds: "1 in 10" state: $hot}
54
        {site: "pulled-muscle" ask: "Do the muscles hold?" odds: "1 in 12" state: $hot}
55
        {site: "ring-priapism" ask: "With the ring on, does everything settle back down?" odds: "1 in 10" state: $hot}
56
        {site: "hotel-stress" ask: "Is the water still running?" odds: "1 in 3" state: $hotel}
57
        {site: "caught-meloned" ask: "Is the doorway empty?" odds: "1 in 3" state: $kitchen}
58
        {site: "misdirected" ask: "Does the stroke land straight?" odds: "1 in 3" state: $hot}
59
        {site: "key-in-drawer" ask: "Is the drawer still empty?" odds: "1 in 3" state: $drawer}
60
    ]
61
62
    let rows = $current ++ $candidate
63
    mut n = 0
64
    for row in $rows {
65
        $n += 1
66
        let key = $"q($n)"
67
        let body = {
68
            state: $row.state
69
            model: "clm-latest"
70
            questions: { ($key): {type: "noul", instructions: $"($row.ask), with odds of ($row.odds)."} }
71
            temperature: 1.0
72
        }
73
        let answer = (http post $url $body --content-type application/json | get answers | get $key | get noul)
74
        print $"($row.site | fill -w 18) (($answer * 100) | math round --precision 1 | fill -w 6)  ($row.ask | str substring 0..60)"
75
    }
76
}