bots-garden/sidekickspublic Fork
⑂ m1-foundation-start
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/sidekicks.git
git clone ssh://git@rickub.com/bots-garden/sidekicks.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP
packages.drawio · 45 lines · 13.9 KBGDScript3 Blame HistoryRaw
 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
<mxfile host="app.diagrams.net">
  <diagram id="packages" name="Sidekicks — packages and dependencies">
    <mxGraphModel dx="1200" dy="780" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1200" pageHeight="780" background="#F5F7FC" math="0" shadow="0">
      <root>
        <mxCell id="0"/>
        <mxCell id="1" parent="0"/>
        <mxCell id="title" value="&lt;b style=&quot;font-size:25px;color:#1A237E&quot;&gt;Sidekicks — packages and dependencies&lt;/b&gt;&lt;br&gt;&lt;i style=&quot;font-size:14px;color:#546E7A&quot;&gt;arrows are imports · the frontend only talks to internal/app · nothing outside internal/acp sees the ACP SDK&lt;/i&gt;" style="text;html=1;align=center;verticalAlign=middle;strokeColor=none;fillColor=none;" vertex="1" parent="1"><mxGeometry x="150.0" y="12" width="900" height="56" as="geometry"/></mxCell>
        <mxCell id="c5" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=block;startFill=1;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="290" y="157" as="sourcePoint"/><mxPoint x="475" y="157" as="targetPoint"/></mxGeometry></mxCell>
        <mxCell id="c7" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="910" y="157" as="sourcePoint"/><mxPoint x="725" y="157" as="targetPoint"/></mxGeometry></mxCell>
        <mxCell id="c13" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="600" y="215" as="sourcePoint"/><mxPoint x="165" y="300" as="targetPoint"/><Array as="points"><mxPoint x="600" y="255"/><mxPoint x="165" y="255"/></Array></mxGeometry></mxCell>
        <mxCell id="c14" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="600" y="215" as="sourcePoint"/><mxPoint x="455" y="300" as="targetPoint"/><Array as="points"><mxPoint x="600" y="255"/><mxPoint x="455" y="255"/></Array></mxGeometry></mxCell>
        <mxCell id="c15" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="600" y="215" as="sourcePoint"/><mxPoint x="745" y="300" as="targetPoint"/><Array as="points"><mxPoint x="600" y="255"/><mxPoint x="745" y="255"/></Array></mxGeometry></mxCell>
        <mxCell id="c16" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="600" y="215" as="sourcePoint"/><mxPoint x="1035" y="300" as="targetPoint"/><Array as="points"><mxPoint x="600" y="255"/><mxPoint x="1035" y="255"/></Array></mxGeometry></mxCell>
        <mxCell id="c17" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="290" y="355" as="sourcePoint"/><mxPoint x="330" y="355" as="targetPoint"/></mxGeometry></mxCell>
        <mxCell id="c18" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="580" y="355" as="sourcePoint"/><mxPoint x="620" y="355" as="targetPoint"/></mxGeometry></mxCell>
        <mxCell id="c22" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="165" y="410" as="sourcePoint"/><mxPoint x="165" y="480" as="targetPoint"/></mxGeometry></mxCell>
        <mxCell id="c23" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="455" y="410" as="sourcePoint"/><mxPoint x="455" y="480" as="targetPoint"/></mxGeometry></mxCell>
        <mxCell id="c24" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="745" y="410" as="sourcePoint"/><mxPoint x="745" y="480" as="targetPoint"/></mxGeometry></mxCell>
        <mxCell id="c29" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="165" y="585" as="sourcePoint"/><mxPoint x="165" y="655" as="targetPoint"/></mxGeometry></mxCell>
        <mxCell id="c30" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="455" y="585" as="sourcePoint"/><mxPoint x="455" y="655" as="targetPoint"/></mxGeometry></mxCell>
        <mxCell id="c32" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="745" y="585" as="sourcePoint"/><mxPoint x="745" y="655" as="targetPoint"/></mxGeometry></mxCell>
        <mxCell id="c33" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1035" y="410" as="sourcePoint"/><mxPoint x="1035" y="655" as="targetPoint"/></mxGeometry></mxCell>
        <mxCell id="c1" value="💻&lt;br&gt;&lt;b style=&quot;font-size:16px&quot;&gt;frontend/&lt;/b&gt;&lt;br&gt;&lt;span style=&quot;font-size:11.5px;font-weight:normal&quot;&gt;Svelte 5 · panels · Markdown&lt;br&gt;CodeMirror · xterm.js&lt;/span&gt;" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#E3F2FD;gradientColor=#BBDEFB;strokeColor=#1565C0;strokeWidth=2;shadow=1;fontSize=20;fontColor=#0D47A1;" vertex="1" parent="1"><mxGeometry x="40" y="100" width="250" height="115" as="geometry"/></mxCell>
        <mxCell id="c2" value="🔀&lt;br&gt;&lt;b style=&quot;font-size:16px&quot;&gt;internal/app&lt;/b&gt;&lt;br&gt;&lt;span style=&quot;font-size:11.5px;font-weight:normal&quot;&gt;Wails services bound to the UI&lt;br&gt;typed events to the UI&lt;/span&gt;" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#F3E5F5;gradientColor=#E1BEE7;strokeColor=#6A1B9A;strokeWidth=3;shadow=1;fontSize=20;fontColor=#4A148C;" vertex="1" parent="1"><mxGeometry x="475" y="100" width="250" height="115" as="geometry"/></mxCell>
        <mxCell id="c3" value="&lt;b&gt;★ only API of the UI&lt;/b&gt;" style="rounded=1;arcSize=50;html=1;fillColor=#6A1B9A;strokeColor=none;fontColor=#FFFFFF;fontSize=11;" vertex="1" parent="1"><mxGeometry x="577.0" y="88" width="158.0" height="24" as="geometry"/></mxCell>
        <mxCell id="c4" value="⚙️&lt;br&gt;&lt;b style=&quot;font-size:16px&quot;&gt;cmd/sidekicks&lt;/b&gt;&lt;br&gt;&lt;span style=&quot;font-size:11.5px;font-weight:normal&quot;&gt;main: reads flags, wires&lt;br&gt;the services, runs Wails&lt;/span&gt;" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#ECEFF1;gradientColor=#CFD8DC;strokeColor=#455A64;strokeWidth=2;shadow=1;fontSize=20;fontColor=#263238;" vertex="1" parent="1"><mxGeometry x="910" y="100" width="250" height="115" as="geometry"/></mxCell>
        <mxCell id="c6" value="&lt;b style=&quot;font-size:12.5px;color:#263238&quot;&gt;bindings · events&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;fillColor=#FFFFFF;strokeColor=none;rounded=1;" vertex="1" parent="1"><mxGeometry x="317.0" y="145.0" width="130" height="24" as="geometry"/></mxCell>
        <mxCell id="c8" value="&lt;b style=&quot;font-size:12.5px;color:#263238&quot;&gt;creates&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;fillColor=#FFFFFF;strokeColor=none;rounded=1;" vertex="1" parent="1"><mxGeometry x="782.0" y="145.0" width="70" height="24" as="geometry"/></mxCell>
        <mxCell id="c9" value="💬&lt;br&gt;&lt;b style=&quot;font-size:16px&quot;&gt;internal/channels&lt;/b&gt;&lt;br&gt;&lt;span style=&quot;font-size:11.5px;font-weight:normal&quot;&gt;channels, members, routing&lt;br&gt;@mentions · /agent:command&lt;/span&gt;" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#E1F5FE;gradientColor=#B3E5FC;strokeColor=#0277BD;strokeWidth=2;shadow=1;fontSize=20;fontColor=#01579B;" vertex="1" parent="1"><mxGeometry x="40" y="300" width="250" height="110" as="geometry"/></mxCell>
        <mxCell id="c10" value="🤖&lt;br&gt;&lt;b style=&quot;font-size:16px&quot;&gt;internal/agents&lt;/b&gt;&lt;br&gt;&lt;span style=&quot;font-size:11.5px;font-weight:normal&quot;&gt;agent processes: lazy start,&lt;br&gt;idle stop, limit, logs&lt;/span&gt;" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#E1F5FE;gradientColor=#B3E5FC;strokeColor=#0277BD;strokeWidth=2;shadow=1;fontSize=20;fontColor=#01579B;" vertex="1" parent="1"><mxGeometry x="330" y="300" width="250" height="110" as="geometry"/></mxCell>
        <mxCell id="c11" value="📋&lt;br&gt;&lt;b style=&quot;font-size:16px&quot;&gt;internal/config&lt;/b&gt;&lt;br&gt;&lt;span style=&quot;font-size:11.5px;font-weight:normal&quot;&gt;load · validate · watch&lt;br&gt;save with comments&lt;/span&gt;" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#E1F5FE;gradientColor=#B3E5FC;strokeColor=#0277BD;strokeWidth=2;shadow=1;fontSize=20;fontColor=#01579B;" vertex="1" parent="1"><mxGeometry x="620" y="300" width="250" height="110" as="geometry"/></mxCell>
        <mxCell id="c12" value="🧰&lt;br&gt;&lt;b style=&quot;font-size:16px&quot;&gt;internal/workspace&lt;/b&gt;&lt;br&gt;&lt;span style=&quot;font-size:11.5px;font-weight:normal&quot;&gt;files + exec: local,&lt;br&gt;container, sbx&lt;/span&gt;" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#E1F5FE;gradientColor=#B3E5FC;strokeColor=#0277BD;strokeWidth=2;shadow=1;fontSize=20;fontColor=#01579B;" vertex="1" parent="1"><mxGeometry x="910" y="300" width="250" height="110" as="geometry"/></mxCell>
        <mxCell id="c19" value="📥&lt;br&gt;&lt;b style=&quot;font-size:16px&quot;&gt;internal/store&lt;/b&gt;&lt;br&gt;&lt;span style=&quot;font-size:11.5px;font-weight:normal&quot;&gt;Pebble: channels, messages,&lt;br&gt;session ids&lt;/span&gt;" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#E1F5FE;gradientColor=#B3E5FC;strokeColor=#0277BD;strokeWidth=2;shadow=1;fontSize=20;fontColor=#01579B;" vertex="1" parent="1"><mxGeometry x="40" y="480" width="250" height="105" as="geometry"/></mxCell>
        <mxCell id="c20" value="🔧&lt;br&gt;&lt;b style=&quot;font-size:16px&quot;&gt;internal/acp&lt;/b&gt;&lt;br&gt;&lt;span style=&quot;font-size:11.5px;font-weight:normal&quot;&gt;ACP v1 client wrapper&lt;br&gt;SDK types stay inside&lt;/span&gt;" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#E1F5FE;gradientColor=#B3E5FC;strokeColor=#0277BD;strokeWidth=2;shadow=1;fontSize=20;fontColor=#01579B;" vertex="1" parent="1"><mxGeometry x="330" y="480" width="250" height="105" as="geometry"/></mxCell>
        <mxCell id="c21" value="🛡️&lt;br&gt;&lt;b style=&quot;font-size:16px&quot;&gt;schema&lt;/b&gt;&lt;br&gt;&lt;span style=&quot;font-size:11.5px;font-weight:normal&quot;&gt;config JSON Schema&lt;br&gt;ValidateConfig()&lt;/span&gt;" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#E1F5FE;gradientColor=#B3E5FC;strokeColor=#0277BD;strokeWidth=2;shadow=1;fontSize=20;fontColor=#01579B;" vertex="1" parent="1"><mxGeometry x="620" y="480" width="250" height="105" as="geometry"/></mxCell>
        <mxCell id="c25" value="&lt;b&gt;cockroachdb/pebble/v2&lt;/b&gt;" style="rounded=1;arcSize=20;whiteSpace=wrap;html=1;fillColor=#ECEFF1;gradientColor=#CFD8DC;strokeColor=#455A64;strokeWidth=2;shadow=1;fontSize=13;fontColor=#263238;" vertex="1" parent="1"><mxGeometry x="40" y="655" width="250" height="50" as="geometry"/></mxCell>
        <mxCell id="c26" value="&lt;b&gt;coder/acp-go-sdk → mm -acp&lt;/b&gt;" style="rounded=1;arcSize=20;whiteSpace=wrap;html=1;fillColor=#ECEFF1;gradientColor=#CFD8DC;strokeColor=#455A64;strokeWidth=2;shadow=1;fontSize=13;fontColor=#263238;" vertex="1" parent="1"><mxGeometry x="330" y="655" width="250" height="50" as="geometry"/></mxCell>
        <mxCell id="c27" value="&lt;b&gt;jsonschema/v6 · yaml/v3&lt;/b&gt;" style="rounded=1;arcSize=20;whiteSpace=wrap;html=1;fillColor=#ECEFF1;gradientColor=#CFD8DC;strokeColor=#455A64;strokeWidth=2;shadow=1;fontSize=13;fontColor=#263238;" vertex="1" parent="1"><mxGeometry x="620" y="655" width="250" height="50" as="geometry"/></mxCell>
        <mxCell id="c28" value="&lt;b&gt;creack/pty · docker · sbx&lt;/b&gt;" style="rounded=1;arcSize=20;whiteSpace=wrap;html=1;fillColor=#ECEFF1;gradientColor=#CFD8DC;strokeColor=#455A64;strokeWidth=2;shadow=1;fontSize=13;fontColor=#263238;" vertex="1" parent="1"><mxGeometry x="910" y="655" width="250" height="50" as="geometry"/></mxCell>
        <mxCell id="c31" value="&lt;b style=&quot;font-size:12.5px;color:#263238&quot;&gt;stdio&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;fillColor=#FFFFFF;strokeColor=none;rounded=1;" vertex="1" parent="1"><mxGeometry x="475.0" y="608.0" width="50" height="24" as="geometry"/></mxCell>
        <mxCell id="c34" value="Third-party modules in grey. Wails v3 is imported by cmd/sidekicks and internal/app only." style="text;html=1;align=center;verticalAlign=middle;strokeColor=none;fillColor=none;fontSize=12.5;fontColor=#455A64;fontStyle=2;" vertex="1" parent="1"><mxGeometry x="255.125" y="737.5" width="689.75" height="18.5" as="geometry"/></mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>