-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcomponents.json
More file actions
138 lines (138 loc) · 5.95 KB
/
Copy pathcomponents.json
File metadata and controls
138 lines (138 loc) · 5.95 KB
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
{
"$schema": "./components.schema.json",
"version": 1,
"components": [
{
"slug": "claude-code",
"kind": "runtime",
"title": "Claude Code",
"description": "The Claude Code agentic CLI — the default agent runtime (installed on every agent).",
"requires": []
},
{
"slug": "claude-code-router",
"kind": "runtime",
"title": "Claude Code Router",
"description": "Local CCR proxy on 127.0.0.1:3456 that routes Claude Code to a configured provider via ANTHROPIC_BASE_URL in ~/.agent-env. Requires Claude Code.",
"requires": ["claude-code"],
"chip": { "label": "Router", "live": false }
},
{
"slug": "chrome",
"kind": "runtime",
"title": "Google Chrome",
"description": "Chrome browser (required by the SideButton extension and Claude-native browsing).",
"requires": [],
"chip": { "label": "Chrome", "live": true, "processKey": "chrome" }
},
{
"slug": "sidebutton-server",
"kind": "runtime",
"title": "SideButton MCP server",
"description": "MCP server on :9876. Unlocks dispatch from the portal and agent capabilities (roles). Without it the agent is RDP/manual only and not dispatchable.",
"requires": [],
"unlocks": ["dispatch", "capabilities"],
"chip": { "label": "SB server", "live": true, "processKey": "sidebutton", "versionKey": "sidebutton" }
},
{
"slug": "sidebutton-extension",
"kind": "runtime",
"title": "SideButton Chrome extension",
"description": "Force-installs the SideButton extension via Chrome managed policy and waits for the browser_connected handshake.",
"requires": ["chrome", "sidebutton-server"],
"chip": { "label": "Extension", "live": true, "processKey": "extension" }
},
{
"slug": "knowledge-packs",
"kind": "packs",
"title": "Knowledge packs",
"description": "Universal 'agents' ops pack (dispatch ops workflows) + the per-account knowledge-pack registry and its update timer.",
"requires": ["sidebutton-server"],
"chip": { "label": "Knowledge packs", "live": false }
},
{
"slug": "dotnet9",
"kind": "toolchain",
"title": ".NET 9 SDK",
"description": ".NET 9 SDK + ASP.NET runtime (build/run/test .NET projects).",
"requires": [],
"chip": { "label": ".NET 9", "live": false }
},
{
"slug": "docker",
"kind": "toolchain",
"title": "Docker",
"description": "Docker engine (enables container builds and Testcontainers-based test suites). Adds the agent user to the docker group.",
"requires": [],
"chip": { "label": "Docker", "live": true }
},
{
"slug": "postgres-client",
"kind": "toolchain",
"title": "PostgreSQL client",
"description": "psql command-line client for DB inspection and migration scripts.",
"requires": [],
"chip": { "label": "psql", "live": false }
},
{
"slug": "openvpn",
"kind": "toolchain",
"title": "OpenVPN client",
"description": "OpenVPN client + the sb-vpn-connect helper. Drop a .ovpn profile at /etc/sidebutton/config/openvpn/ (portal Files hub or manual SSH) and it auto-connects on boot via openvpn-client@; removing it tears the tunnel down. Break-glass: sudo sb-vpn-connect <profile.ovpn>.",
"requires": [],
"chip": { "label": "VPN", "live": false },
"config_files": [
{
"id": "ovpn-profile",
"label": "OpenVPN profile (.ovpn)",
"description": "Client profile incl. inline private key; applied via sb-vpn-connect (net_gateway-pinned so the heartbeat stays off-tunnel).",
"accept": [".ovpn"],
"secret": true,
"scope_default": "workspace",
"target_path": "/etc/sidebutton/config/openvpn/",
"multiple": true
}
]
},
{
"slug": "wireguard",
"kind": "toolchain",
"title": "WireGuard client",
"description": "WireGuard client (wireguard-tools) + the sb-wg-connect helper. Drop a .conf profile at /etc/sidebutton/config/wireguard/ (portal Files hub or manual SSH) and it auto-connects on boot via wg-quick@; removing it tears the tunnel down. Split-tunnel; no heartbeat carve-outs. Break-glass: sudo sb-wg-connect <profile.conf> [name].",
"requires": [],
"chip": { "label": "VPN", "live": false },
"config_files": [
{
"id": "wg-profile",
"label": "WireGuard profile (.conf)",
"description": "Client tunnel config incl. inline private key (+ optional preshared key); applied via sb-wg-connect. One keypair per device — prefer agent scope for concurrent agents.",
"accept": [".conf"],
"secret": true,
"scope_default": "workspace",
"target_path": "/etc/sidebutton/config/wireguard/",
"multiple": true
}
]
},
{
"slug": "rdp-client",
"kind": "toolchain",
"title": "RDP client (FreeRDP)",
"description": "FreeRDP (xfreerdp) + the sb-rdp-connect helper. Opens an outbound RDP session to a customer host (e.g. an on-prem Windows ERP with no API) and renders it as a fixed-geometry window on the agent desktop (:10) — driveable by computer-use, visible in LiveDesktop, auto-reconnecting on drop. Drop the target host + credentials at /etc/sidebutton/rdp.env (portal Files hub or manual SSH, out-of-band, never in cloud-init) and sb-rdp starts automatically.",
"requires": [],
"chip": { "label": "RDP", "live": false },
"config_files": [
{
"id": "rdp-env",
"label": "RDP connection (rdp.env)",
"description": "RDP_HOST/RDP_USER/RDP_PASS (+ optional RDP_DOMAIN/RDP_GEOMETRY/RDP_EXTRA). sb-rdp-connect idle-waits on this exact file; presence enables sb-rdp.",
"accept": [".env"],
"secret": true,
"scope_default": "workspace",
"target_path": "/etc/sidebutton/rdp.env",
"multiple": false
}
]
}
]
}