@opencoop/opencode-plugin 1.0.0 → 1.1.1

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.
@@ -1,129 +1,300 @@
1
1
  <!DOCTYPE html>
2
- <html lang="en">
2
+ <html lang="en" data-theme="dark">
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>OpenCOOP - Accept Invite</title>
6
+ <title>OpenCOOP - Join Team</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com">
8
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
7
10
  <link rel="stylesheet" href="/assets/style.css">
8
- </head>
9
- <body>
10
- <div class="invite-page">
11
- <div class="invite-card">
12
- <h1>OpenCOOP</h1>
13
- <h2>Accept Team Invite</h2>
14
-
15
- <div id="invite-status" class="invite-status">
16
- <div class="spinner"></div>
17
- <p>Validating invite link...</p>
18
- </div>
11
+ <style>
12
+ body {
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: center;
16
+ min-height: 100vh;
17
+ overflow: auto;
18
+ }
19
+
20
+ .invite-container {
21
+ width: 100%;
22
+ max-width: 440px;
23
+ padding: 40px;
24
+ background: var(--bg-secondary);
25
+ border: 1px solid var(--border-color);
26
+ border-radius: var(--radius-xl);
27
+ box-shadow: var(--shadow-lg);
28
+ animation: slideUp 0.6s ease forwards;
29
+ opacity: 0;
30
+ text-align: center;
31
+ }
32
+
33
+ .invite-logo {
34
+ width: 72px;
35
+ height: 72px;
36
+ margin: 0 auto 24px;
37
+ border-radius: var(--radius-lg);
38
+ background: var(--gradient-primary);
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ color: white;
43
+ font-size: 1.5rem;
44
+ font-weight: 800;
45
+ box-shadow: 0 8px 24px rgba(139, 92, 246, 0.3);
46
+ animation: bounce 2s ease-in-out infinite;
47
+ }
48
+
49
+ .invite-title {
50
+ font-size: 1.6rem;
51
+ font-weight: 700;
52
+ margin-bottom: 8px;
53
+ background: var(--gradient-primary);
54
+ -webkit-background-clip: text;
55
+ -webkit-text-fill-color: transparent;
56
+ background-clip: text;
57
+ }
58
+
59
+ .invite-subtitle {
60
+ color: var(--text-secondary);
61
+ margin-bottom: 32px;
62
+ }
63
+
64
+ .invite-status {
65
+ padding: 16px;
66
+ border-radius: var(--radius-md);
67
+ margin-bottom: 24px;
68
+ animation: fadeIn 0.4s ease forwards;
69
+ }
70
+
71
+ .invite-status.valid {
72
+ background: rgba(16, 185, 129, 0.1);
73
+ border: 1px solid rgba(16, 185, 129, 0.3);
74
+ color: var(--accent-success);
75
+ }
76
+
77
+ .invite-status.invalid {
78
+ background: rgba(239, 68, 68, 0.1);
79
+ border: 1px solid rgba(239, 68, 68, 0.3);
80
+ color: var(--accent-danger);
81
+ }
82
+
83
+ .invite-status.loading {
84
+ background: rgba(139, 92, 246, 0.1);
85
+ border: 1px solid rgba(139, 92, 246, 0.3);
86
+ color: var(--accent-primary);
87
+ }
88
+
89
+ .invite-form {
90
+ text-align: left;
91
+ }
92
+
93
+ .invite-form .form-group {
94
+ margin-bottom: 20px;
95
+ }
96
+
97
+ .invite-form label {
98
+ display: block;
99
+ margin-bottom: 8px;
100
+ font-weight: 500;
101
+ color: var(--text-secondary);
102
+ }
103
+
104
+ .invite-form input {
105
+ width: 100%;
106
+ padding: 14px 16px;
107
+ background: var(--bg-tertiary);
108
+ border: 1px solid var(--border-color);
109
+ border-radius: var(--radius-md);
110
+ color: var(--text-primary);
111
+ outline: none;
112
+ transition: all var(--transition-fast);
113
+ }
114
+
115
+ .invite-form input:focus {
116
+ border-color: var(--border-focus);
117
+ box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.1);
118
+ }
119
+
120
+ .invite-form input::placeholder {
121
+ color: var(--text-tertiary);
122
+ }
123
+
124
+ .invite-btn {
125
+ width: 100%;
126
+ padding: 14px;
127
+ background: var(--gradient-primary);
128
+ color: white;
129
+ border: none;
130
+ border-radius: var(--radius-md);
131
+ font-weight: 600;
132
+ font-size: 1rem;
133
+ cursor: pointer;
134
+ transition: all var(--transition-fast);
135
+ box-shadow: 0 4px 12px rgba(139, 92, 246, 0.3);
136
+ }
19
137
 
20
- <div id="invite-form" class="invite-form hidden">
21
- <div class="invite-info">
22
- <p><strong>Workspace:</strong> <span id="invite-workspace">-</span></p>
23
- <p><strong>Permissions:</strong> <span id="invite-permissions">-</span></p>
24
- <p><strong>Expires:</strong> <span id="invite-expires">-</span></p>
25
- </div>
138
+ .invite-btn:hover {
139
+ transform: translateY(-2px);
140
+ box-shadow: 0 6px 20px rgba(139, 92, 246, 0.4);
141
+ }
142
+
143
+ .invite-btn:disabled {
144
+ opacity: 0.6;
145
+ cursor: not-allowed;
146
+ transform: none;
147
+ }
148
+
149
+ .invite-permissions {
150
+ display: flex;
151
+ gap: 8px;
152
+ margin-bottom: 20px;
153
+ }
154
+
155
+ .perm-option {
156
+ flex: 1;
157
+ padding: 12px;
158
+ background: var(--bg-tertiary);
159
+ border: 1px solid var(--border-color);
160
+ border-radius: var(--radius-md);
161
+ text-align: center;
162
+ cursor: pointer;
163
+ transition: all var(--transition-fast);
164
+ }
165
+
166
+ .perm-option:hover {
167
+ border-color: var(--accent-primary);
168
+ }
169
+
170
+ .perm-option.selected {
171
+ background: rgba(139, 92, 246, 0.15);
172
+ border-color: var(--accent-primary);
173
+ }
174
+
175
+ .perm-option input {
176
+ display: none;
177
+ }
178
+
179
+ .perm-label {
180
+ font-weight: 500;
181
+ font-size: 0.9rem;
182
+ }
183
+
184
+ .perm-desc {
185
+ font-size: 0.75rem;
186
+ color: var(--text-tertiary);
187
+ margin-top: 4px;
188
+ }
26
189
 
27
- <div class="form-group">
28
- <label>Your Name:</label>
29
- <input type="text" id="user-name" placeholder="Enter your name">
30
- </div>
190
+ @keyframes fadeIn {
191
+ from { opacity: 0; transform: translateY(10px); }
192
+ to { opacity: 1; transform: translateY(0); }
193
+ }
31
194
 
32
- <div class="form-group">
33
- <label>Your Email:</label>
34
- <input type="email" id="user-email" placeholder="Enter your email">
35
- </div>
195
+ .spinner {
196
+ display: inline-block;
197
+ width: 20px;
198
+ height: 20px;
199
+ border: 2px solid rgba(255,255,255,0.3);
200
+ border-radius: 50%;
201
+ border-top-color: white;
202
+ animation: spin 0.8s linear infinite;
203
+ vertical-align: middle;
204
+ margin-right: 8px;
205
+ }
206
+ </style>
207
+ </head>
208
+ <body>
209
+ <div class="invite-container">
210
+ <div class="invite-logo">OC</div>
211
+ <h1 class="invite-title">Join the Team</h1>
212
+ <p class="invite-subtitle">You've been invited to collaborate on OpenCOOP</p>
36
213
 
37
- <button onclick="acceptInvite()" class="btn-primary">Join Team</button>
214
+ <div id="invite-status" class="invite-status loading">
215
+ <span class="spinner"></span> Validating invite link...
216
+ </div>
217
+
218
+ <div id="invite-form" class="invite-form" style="display: none;">
219
+ <div class="form-group">
220
+ <label>Your Name</label>
221
+ <input type="text" id="user-name" placeholder="Enter your name">
38
222
  </div>
39
223
 
40
- <div id="invite-success" class="invite-success hidden">
41
- <div class="success-icon">SUCCESS</div>
42
- <h3>Welcome to the Team!</h3>
43
- <p>You have been added to the workspace.</p>
44
- <p>Copy this MCP config and add it to your <code>opencode.json</code>:</p>
45
- <div class="config-code">
46
- <pre id="mcp-config"></pre>
47
- <button onclick="copyMcpConfig()" class="btn-secondary">Copy Config</button>
48
- </div>
49
- <a href="/" class="btn-primary">Go to Dashboard</a>
224
+ <div class="form-group">
225
+ <label>Your Email</label>
226
+ <input type="email" id="user-email" placeholder="Enter your email">
50
227
  </div>
51
228
 
52
- <div id="invite-error" class="invite-error hidden">
53
- <div class="error-icon">ERROR</div>
54
- <h3>Invalid Invite</h3>
55
- <p id="error-message">This invite link is invalid or has expired.</p>
56
- <a href="/" class="btn-primary">Go to Dashboard</a>
229
+ <label style="display: block; margin-bottom: 12px; font-weight: 500; color: var(--text-secondary);">Permission Level</label>
230
+ <div class="invite-permissions">
231
+ <label class="perm-option selected" onclick="selectPerm(this, 'read')">
232
+ <input type="radio" name="perm" value="read" checked>
233
+ <div class="perm-label">Read Only</div>
234
+ <div class="perm-desc">View files</div>
235
+ </label>
236
+ <label class="perm-option" onclick="selectPerm(this, 'read,write')">
237
+ <input type="radio" name="perm" value="read,write">
238
+ <div class="perm-label">Read + Write</div>
239
+ <div class="perm-desc">Edit files</div>
240
+ </label>
57
241
  </div>
242
+
243
+ <button class="invite-btn" onclick="acceptInvite()">Join Team</button>
58
244
  </div>
245
+
246
+ <div id="invite-error" class="invite-status invalid" style="display: none;"></div>
59
247
  </div>
60
248
 
61
249
  <script>
62
- const token = window.location.pathname.split('/').pop();
250
+ const token = window.location.pathname.split('/invite/')[1];
251
+ let selectedPerms = ['read'];
252
+
253
+ function selectPerm(el, perms) {
254
+ document.querySelectorAll('.perm-option').forEach(p => p.classList.remove('selected'));
255
+ el.classList.add('selected');
256
+ selectedPerms = perms.split(',');
257
+ }
63
258
 
64
259
  async function validateInvite() {
260
+ if (!token) {
261
+ showInvalid('No invite token provided');
262
+ return;
263
+ }
264
+
65
265
  try {
66
266
  const res = await fetch(`/api/invite/validate/${token}`);
67
267
  const data = await res.json();
68
268
 
69
269
  if (data.valid) {
70
- document.getElementById('invite-status').classList.add('hidden');
71
- document.getElementById('invite-form').classList.remove('hidden');
72
- document.getElementById('invite-workspace').textContent = data.workspaceId || 'Shared Project';
73
- document.getElementById('invite-permissions').textContent = data.permissions?.join(', ') || 'read, write';
270
+ document.getElementById('invite-status').style.display = 'none';
271
+ document.getElementById('invite-form').style.display = 'block';
74
272
  } else {
75
- showError(data.reason || 'Invalid invite link');
273
+ showInvalid(data.reason || 'This invite link is invalid');
76
274
  }
77
- } catch (e) {
78
- showError('Failed to validate invite');
275
+ } catch {
276
+ showInvalid('Failed to validate invite link');
79
277
  }
80
278
  }
81
279
 
82
- function showError(msg) {
83
- document.getElementById('invite-status').classList.add('hidden');
84
- document.getElementById('invite-error').classList.remove('hidden');
85
- document.getElementById('error-message').textContent = msg;
280
+ function showInvalid(msg) {
281
+ const el = document.getElementById('invite-status');
282
+ el.className = 'invite-status invalid';
283
+ el.innerHTML = msg;
86
284
  }
87
285
 
88
286
  async function acceptInvite() {
89
- const name = document.getElementById('user-name').value;
90
- const email = document.getElementById('user-email').value;
287
+ const name = document.getElementById('user-name').value.trim();
288
+ const email = document.getElementById('user-email').value.trim();
91
289
 
92
290
  if (!name || !email) {
93
291
  alert('Please fill in all fields');
94
292
  return;
95
293
  }
96
294
 
97
- try {
98
- const res = await fetch('/api/config');
99
- const config = await res.json();
100
-
101
- const mcpConfig = {
102
- mcp: {
103
- opencoop: {
104
- type: "remote",
105
- url: `http://localhost:31313/mcp`,
106
- enabled: true,
107
- headers: {
108
- "Authorization": `Bearer ${token}`
109
- }
110
- }
111
- }
112
- };
113
-
114
- document.getElementById('mcp-config').textContent = JSON.stringify(mcpConfig, null, 2);
115
-
116
- document.getElementById('invite-form').classList.add('hidden');
117
- document.getElementById('invite-success').classList.remove('hidden');
118
- } catch (e) {
119
- alert('Error accepting invite');
120
- }
121
- }
122
-
123
- function copyMcpConfig() {
124
- const config = document.getElementById('mcp-config').textContent;
125
- navigator.clipboard.writeText(config);
126
- alert('Config copied!');
295
+ // In a real implementation, this would register the user
296
+ alert(`Welcome ${name}! You've been added to the team with ${selectedPerms.join(', ')} permissions.`);
297
+ window.location.href = '/';
127
298
  }
128
299
 
129
300
  validateInvite();
@@ -97,6 +97,7 @@ export async function createWebUI(config) {
97
97
  permissions: permissions || ["read", "write"],
98
98
  expiresInDays: expires_in_days || 7,
99
99
  createdBy: ownerId,
100
+ port: config.port,
100
101
  });
101
102
  res.json({ success: true, invite: link });
102
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opencoop/opencode-plugin",
3
- "version": "1.0.0",
3
+ "version": "1.1.1",
4
4
  "description": "OpenCode plugin for team collaboration via shared MCP server",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",