agentgui 1.0.10 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/color-table.html +0 -41
- package/install.sh +0 -147
- package/test-block.html +0 -181
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentgui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.11",
|
|
4
4
|
"description": "Multi-agent ACP client with real-time communication",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "server.js",
|
|
7
7
|
"bin": {
|
|
8
|
-
"
|
|
9
|
-
"
|
|
8
|
+
"agentgui": "./bin/gmgui.cjs",
|
|
9
|
+
"gmgui": "./bin/gmgui.cjs"
|
|
10
10
|
},
|
|
11
11
|
"repository": {
|
|
12
12
|
"type": "git",
|
package/color-table.html
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>Color Table - RippleUI</title>
|
|
7
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/rippleui@1.12.1/dist/css/styles.css" />
|
|
8
|
-
</head>
|
|
9
|
-
<body class="p-8">
|
|
10
|
-
<div class="container mx-auto">
|
|
11
|
-
<h1 class="text-3xl font-bold mb-6">Color Table</h1>
|
|
12
|
-
|
|
13
|
-
<table class="table">
|
|
14
|
-
<thead>
|
|
15
|
-
<tr>
|
|
16
|
-
<th>Color Name</th>
|
|
17
|
-
<th>Hex Code</th>
|
|
18
|
-
<th>Preview</th>
|
|
19
|
-
</tr>
|
|
20
|
-
</thead>
|
|
21
|
-
<tbody>
|
|
22
|
-
<tr>
|
|
23
|
-
<td>Red</td>
|
|
24
|
-
<td>#FF0000</td>
|
|
25
|
-
<td><span class="badge badge-solid-error">Red</span></td>
|
|
26
|
-
</tr>
|
|
27
|
-
<tr>
|
|
28
|
-
<td>Green</td>
|
|
29
|
-
<td>#00FF00</td>
|
|
30
|
-
<td><span class="badge badge-solid-success">Green</span></td>
|
|
31
|
-
</tr>
|
|
32
|
-
<tr>
|
|
33
|
-
<td>Blue</td>
|
|
34
|
-
<td>#0000FF</td>
|
|
35
|
-
<td><span class="badge badge-solid-primary">Blue</span></td>
|
|
36
|
-
</tr>
|
|
37
|
-
</tbody>
|
|
38
|
-
</table>
|
|
39
|
-
</div>
|
|
40
|
-
</body>
|
|
41
|
-
</html>
|
package/install.sh
DELETED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
set -euo pipefail
|
|
3
|
-
|
|
4
|
-
# GMGUI Installation Script
|
|
5
|
-
# Robust, error-handled installation with proper cleanup
|
|
6
|
-
|
|
7
|
-
# Enable error handling and cleanup
|
|
8
|
-
TMPDIR=""
|
|
9
|
-
EXIT_CODE=0
|
|
10
|
-
|
|
11
|
-
cleanup() {
|
|
12
|
-
local code=$?
|
|
13
|
-
if [ -n "$TMPDIR" ] && [ -d "$TMPDIR" ]; then
|
|
14
|
-
rm -rf "$TMPDIR" 2>/dev/null || true
|
|
15
|
-
fi
|
|
16
|
-
if [ $code -ne 0 ] && [ $code -ne 130 ]; then
|
|
17
|
-
echo "Error: Installation failed. Check messages above." >&2
|
|
18
|
-
fi
|
|
19
|
-
exit $code
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
# Handle interrupts gracefully
|
|
23
|
-
handle_interrupt() {
|
|
24
|
-
echo ""
|
|
25
|
-
echo "Installation interrupted. Cleaning up..." >&2
|
|
26
|
-
exit 130
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
trap cleanup EXIT
|
|
30
|
-
trap handle_interrupt SIGINT SIGTERM
|
|
31
|
-
|
|
32
|
-
# Detect runtime (prefer bun, fall back to node)
|
|
33
|
-
RUNTIME=""
|
|
34
|
-
if command -v bun &> /dev/null; then
|
|
35
|
-
RUNTIME=bun
|
|
36
|
-
elif command -v node &> /dev/null; then
|
|
37
|
-
RUNTIME=node
|
|
38
|
-
else
|
|
39
|
-
echo "Error: Neither bun nor node is installed." >&2
|
|
40
|
-
echo "Install one with:" >&2
|
|
41
|
-
echo " • Bun (recommended, 3-4x faster):" >&2
|
|
42
|
-
echo " curl -fsSL https://bun.sh/install | bash" >&2
|
|
43
|
-
echo " • Node.js:" >&2
|
|
44
|
-
echo " curl https://nodejs.org/en/download/" >&2
|
|
45
|
-
exit 1
|
|
46
|
-
fi
|
|
47
|
-
|
|
48
|
-
# Verify curl or wget is available
|
|
49
|
-
if ! command -v curl &> /dev/null && ! command -v wget &> /dev/null; then
|
|
50
|
-
echo "Error: Neither curl nor wget found. Install one to download gmgui." >&2
|
|
51
|
-
exit 1
|
|
52
|
-
fi
|
|
53
|
-
|
|
54
|
-
# Create temp directory with secure permissions
|
|
55
|
-
TMPDIR=$(mktemp -d) || {
|
|
56
|
-
echo "Error: Could not create temporary directory." >&2
|
|
57
|
-
exit 1
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
# Verify we have write access to temp directory
|
|
61
|
-
if ! [ -w "$TMPDIR" ]; then
|
|
62
|
-
echo "Error: No write permission to temporary directory." >&2
|
|
63
|
-
exit 1
|
|
64
|
-
fi
|
|
65
|
-
|
|
66
|
-
# Check disk space (need at least 200MB)
|
|
67
|
-
AVAILABLE_KB=$(df "$TMPDIR" 2>/dev/null | tail -1 | awk '{print $4}' || echo 0)
|
|
68
|
-
if [ "$AVAILABLE_KB" -lt 200000 ]; then
|
|
69
|
-
echo "Warning: Low disk space. At least 200MB recommended." >&2
|
|
70
|
-
fi
|
|
71
|
-
|
|
72
|
-
echo "Downloading gmgui from GitHub..."
|
|
73
|
-
cd "$TMPDIR"
|
|
74
|
-
|
|
75
|
-
# Use git if available, otherwise use curl/wget to download tarball
|
|
76
|
-
if command -v git &> /dev/null; then
|
|
77
|
-
# Git clone with error handling
|
|
78
|
-
if ! git clone --depth=1 https://github.com/AnEntrypoint/gmgui.git . 2>&1 | grep -v "^Cloning"; then
|
|
79
|
-
echo "Warning: Git clone failed, trying tarball download..." >&2
|
|
80
|
-
# Fallback to tarball
|
|
81
|
-
if command -v curl &> /dev/null; then
|
|
82
|
-
curl -fsSL https://github.com/AnEntrypoint/gmgui/archive/refs/heads/main.tar.gz | tar xz --strip-components=1 || {
|
|
83
|
-
echo "Error: Could not download gmgui from GitHub." >&2
|
|
84
|
-
exit 1
|
|
85
|
-
}
|
|
86
|
-
else
|
|
87
|
-
wget -qO- https://github.com/AnEntrypoint/gmgui/archive/refs/heads/main.tar.gz | tar xz --strip-components=1 || {
|
|
88
|
-
echo "Error: Could not download gmgui from GitHub." >&2
|
|
89
|
-
exit 1
|
|
90
|
-
}
|
|
91
|
-
fi
|
|
92
|
-
fi
|
|
93
|
-
else
|
|
94
|
-
echo "Downloading tarball (git not available)..."
|
|
95
|
-
# Download tarball with curl or wget
|
|
96
|
-
if command -v curl &> /dev/null; then
|
|
97
|
-
curl -fsSL https://github.com/AnEntrypoint/gmgui/archive/refs/heads/main.tar.gz | tar xz --strip-components=1 || {
|
|
98
|
-
echo "Error: Could not download gmgui from GitHub." >&2
|
|
99
|
-
exit 1
|
|
100
|
-
}
|
|
101
|
-
else
|
|
102
|
-
wget -qO- https://github.com/AnEntrypoint/gmgui/archive/refs/heads/main.tar.gz | tar xz --strip-components=1 || {
|
|
103
|
-
echo "Error: Could not download gmgui from GitHub." >&2
|
|
104
|
-
exit 1
|
|
105
|
-
}
|
|
106
|
-
fi
|
|
107
|
-
fi
|
|
108
|
-
|
|
109
|
-
# Verify essential files were downloaded
|
|
110
|
-
if [ ! -f server.js ] || [ ! -f package.json ]; then
|
|
111
|
-
echo "Error: Downloaded files appear corrupted. Missing server.js or package.json." >&2
|
|
112
|
-
exit 1
|
|
113
|
-
fi
|
|
114
|
-
|
|
115
|
-
echo "Installing dependencies with $RUNTIME..."
|
|
116
|
-
if [ "$RUNTIME" = "bun" ]; then
|
|
117
|
-
if ! bun install --frozen-lockfile 2>&1 | grep -E "added|removed|found|vulnerabilities" | tail -1; then
|
|
118
|
-
# Warn but don't fail if grep doesn't match
|
|
119
|
-
bun install --frozen-lockfile 2>&1 | tail -3
|
|
120
|
-
fi
|
|
121
|
-
else
|
|
122
|
-
if ! npm install 2>&1 | grep -E "added|removed|found|vulnerabilities" | tail -1; then
|
|
123
|
-
# Warn but don't fail if grep doesn't match
|
|
124
|
-
npm install 2>&1 | tail -3
|
|
125
|
-
fi
|
|
126
|
-
|
|
127
|
-
# For Node.js, install better-sqlite3 if not already present
|
|
128
|
-
echo "Installing better-sqlite3 for Node.js..."
|
|
129
|
-
if ! npm install better-sqlite3 2>&1 | grep -E "added|removed|found|vulnerabilities" | tail -1; then
|
|
130
|
-
# Warn but don't fail - may already be installed
|
|
131
|
-
echo "Note: better-sqlite3 installation completed." >&2
|
|
132
|
-
fi
|
|
133
|
-
fi
|
|
134
|
-
|
|
135
|
-
echo ""
|
|
136
|
-
echo "✓ Installation complete!"
|
|
137
|
-
echo ""
|
|
138
|
-
echo "Starting gmgui server on http://localhost:3000"
|
|
139
|
-
echo "Press Ctrl+C to stop"
|
|
140
|
-
echo ""
|
|
141
|
-
|
|
142
|
-
# Start server with proper error handling
|
|
143
|
-
if [ "$RUNTIME" = "bun" ]; then
|
|
144
|
-
exec bun run server.js
|
|
145
|
-
else
|
|
146
|
-
exec node server.js
|
|
147
|
-
fi
|
package/test-block.html
DELETED
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>Hero Card</title>
|
|
7
|
-
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,700;1,700&family=DM+Sans:wght@400;500&display=swap" rel="stylesheet">
|
|
8
|
-
<style>
|
|
9
|
-
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
|
|
10
|
-
|
|
11
|
-
:root {
|
|
12
|
-
--ink: #0a0a0a;
|
|
13
|
-
--cream: #f4f0eb;
|
|
14
|
-
--accent: #c8553d;
|
|
15
|
-
--accent-light: #e8886e;
|
|
16
|
-
--glass: rgba(244, 240, 235, 0.06);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
html, body {
|
|
20
|
-
height: 100%;
|
|
21
|
-
font-family: 'DM Sans', sans-serif;
|
|
22
|
-
background: var(--ink);
|
|
23
|
-
display: flex;
|
|
24
|
-
align-items: center;
|
|
25
|
-
justify-content: center;
|
|
26
|
-
overflow: hidden;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
body::before {
|
|
30
|
-
content: '';
|
|
31
|
-
position: fixed;
|
|
32
|
-
inset: 0;
|
|
33
|
-
background:
|
|
34
|
-
radial-gradient(ellipse 80% 60% at 20% 80%, rgba(200, 85, 61, 0.12), transparent),
|
|
35
|
-
radial-gradient(ellipse 60% 50% at 80% 20%, rgba(232, 136, 110, 0.08), transparent);
|
|
36
|
-
pointer-events: none;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.noise {
|
|
40
|
-
position: fixed;
|
|
41
|
-
inset: 0;
|
|
42
|
-
opacity: 0.035;
|
|
43
|
-
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
|
|
44
|
-
background-size: 200px;
|
|
45
|
-
pointer-events: none;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
.card {
|
|
49
|
-
position: relative;
|
|
50
|
-
width: min(520px, 90vw);
|
|
51
|
-
padding: 56px 48px 48px;
|
|
52
|
-
border: 1px solid rgba(244, 240, 235, 0.08);
|
|
53
|
-
border-radius: 2px;
|
|
54
|
-
background: var(--glass);
|
|
55
|
-
backdrop-filter: blur(40px);
|
|
56
|
-
-webkit-backdrop-filter: blur(40px);
|
|
57
|
-
animation: cardIn 1s cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
@keyframes cardIn {
|
|
61
|
-
from { opacity: 0; transform: translateY(32px) scale(0.97); }
|
|
62
|
-
to { opacity: 1; transform: translateY(0) scale(1); }
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.card::before {
|
|
66
|
-
content: '';
|
|
67
|
-
position: absolute;
|
|
68
|
-
top: -1px; left: 48px; right: 48px;
|
|
69
|
-
height: 1px;
|
|
70
|
-
background: linear-gradient(90deg, transparent, var(--accent), transparent);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.label {
|
|
74
|
-
font-size: 10px;
|
|
75
|
-
font-weight: 500;
|
|
76
|
-
letter-spacing: 0.25em;
|
|
77
|
-
text-transform: uppercase;
|
|
78
|
-
color: var(--accent-light);
|
|
79
|
-
margin-bottom: 28px;
|
|
80
|
-
animation: fadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.15s both;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.heading {
|
|
84
|
-
font-family: 'Playfair Display', serif;
|
|
85
|
-
font-size: clamp(2rem, 5vw, 2.75rem);
|
|
86
|
-
font-weight: 700;
|
|
87
|
-
line-height: 1.15;
|
|
88
|
-
color: var(--cream);
|
|
89
|
-
margin-bottom: 20px;
|
|
90
|
-
animation: fadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.25s both;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.heading em {
|
|
94
|
-
font-style: italic;
|
|
95
|
-
color: var(--accent-light);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.desc {
|
|
99
|
-
font-size: 15px;
|
|
100
|
-
line-height: 1.7;
|
|
101
|
-
color: rgba(244, 240, 235, 0.5);
|
|
102
|
-
max-width: 38ch;
|
|
103
|
-
margin-bottom: 40px;
|
|
104
|
-
animation: fadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.35s both;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.cta {
|
|
108
|
-
display: inline-flex;
|
|
109
|
-
align-items: center;
|
|
110
|
-
gap: 12px;
|
|
111
|
-
padding: 14px 32px;
|
|
112
|
-
font-family: 'DM Sans', sans-serif;
|
|
113
|
-
font-size: 13px;
|
|
114
|
-
font-weight: 500;
|
|
115
|
-
letter-spacing: 0.12em;
|
|
116
|
-
text-transform: uppercase;
|
|
117
|
-
color: var(--cream);
|
|
118
|
-
background: var(--accent);
|
|
119
|
-
border: none;
|
|
120
|
-
border-radius: 1px;
|
|
121
|
-
cursor: pointer;
|
|
122
|
-
transition: background 0.3s, transform 0.2s, box-shadow 0.3s;
|
|
123
|
-
animation: fadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.45s both;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
.cta:hover {
|
|
127
|
-
background: var(--accent-light);
|
|
128
|
-
transform: translateY(-1px);
|
|
129
|
-
box-shadow: 0 8px 32px rgba(200, 85, 61, 0.3);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
.cta:active {
|
|
133
|
-
transform: translateY(0);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
.cta svg {
|
|
137
|
-
width: 16px;
|
|
138
|
-
height: 16px;
|
|
139
|
-
transition: transform 0.3s;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
.cta:hover svg {
|
|
143
|
-
transform: translateX(3px);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
.rule {
|
|
147
|
-
display: block;
|
|
148
|
-
width: 40px;
|
|
149
|
-
height: 1px;
|
|
150
|
-
background: rgba(244, 240, 235, 0.12);
|
|
151
|
-
margin-bottom: 24px;
|
|
152
|
-
animation: ruleIn 1s cubic-bezier(0.16, 1, 0.3, 1) 0.3s both;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
@keyframes fadeUp {
|
|
156
|
-
from { opacity: 0; transform: translateY(16px); }
|
|
157
|
-
to { opacity: 1; transform: translateY(0); }
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
@keyframes ruleIn {
|
|
161
|
-
from { opacity: 0; width: 0; }
|
|
162
|
-
to { opacity: 1; width: 40px; }
|
|
163
|
-
}
|
|
164
|
-
</style>
|
|
165
|
-
</head>
|
|
166
|
-
<body>
|
|
167
|
-
<div class="noise"></div>
|
|
168
|
-
<div class="card">
|
|
169
|
-
<p class="label">Introducing</p>
|
|
170
|
-
<h1 class="heading">Craft something<br><em>extraordinary</em></h1>
|
|
171
|
-
<span class="rule"></span>
|
|
172
|
-
<p class="desc">Where restraint meets ambition. Build interfaces that command attention through precision, not noise.</p>
|
|
173
|
-
<button class="cta">
|
|
174
|
-
Get started
|
|
175
|
-
<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
176
|
-
<path d="M3 8h10M9 4l4 4-4 4"/>
|
|
177
|
-
</svg>
|
|
178
|
-
</button>
|
|
179
|
-
</div>
|
|
180
|
-
</body>
|
|
181
|
-
</html>
|