@agent-link/server 0.1.74 → 0.1.76

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-link/server",
3
- "version": "0.1.74",
3
+ "version": "0.1.76",
4
4
  "description": "AgentLink relay server",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/web/app.js CHANGED
@@ -81,7 +81,7 @@ const App = {
81
81
  const dragOver = ref(false);
82
82
 
83
83
  // Theme
84
- const theme = ref(localStorage.getItem('agentlink-theme') || 'dark');
84
+ const theme = ref(localStorage.getItem('agentlink-theme') || 'light');
85
85
  function applyTheme() {
86
86
  document.documentElement.setAttribute('data-theme', theme.value);
87
87
  const link = document.getElementById('hljs-theme');
@@ -165,7 +165,7 @@ const App = {
165
165
 
166
166
  // ── Computed ──
167
167
  const canSend = computed(() =>
168
- status.value === 'Connected' && (inputText.value.trim() || attachments.value.length > 0) && !isCompacting.value
168
+ status.value === 'Connected' && (inputText.value.trim() || attachments.value.length > 0) && !isProcessing.value && !isCompacting.value
169
169
  && !messages.value.some(m => m.role === 'ask-question' && !m.answered)
170
170
  );
171
171
 
@@ -191,13 +191,11 @@ const App = {
191
191
  name: f.name, size: f.size, isImage: f.isImage, thumbUrl: f.thumbUrl,
192
192
  }));
193
193
 
194
- const isQueued = isProcessing.value;
195
194
  messages.value.push({
196
195
  id: streaming.nextId(), role: 'user',
197
196
  content: text || (files.length > 0 ? `[${files.length} file${files.length > 1 ? 's' : ''} attached]` : ''),
198
197
  attachments: msgAttachments.length > 0 ? msgAttachments : undefined,
199
198
  timestamp: new Date(),
200
- queued: isQueued,
201
199
  });
202
200
  isProcessing.value = true;
203
201
  scrollToBottom(true);
@@ -437,7 +435,6 @@ const App = {
437
435
  <div class="message-role-label user-label">You</div>
438
436
  <div class="message-bubble user-bubble" :title="formatTimestamp(msg.timestamp)">
439
437
  <div class="message-content">{{ msg.content }}</div>
440
- <span v-if="msg.queued" class="queued-badge">Queued</span>
441
438
  <div v-if="msg.attachments && msg.attachments.length" class="message-attachments">
442
439
  <div v-for="(att, ai) in msg.attachments" :key="ai" class="message-attachment-chip">
443
440
  <img v-if="att.isImage && att.thumbUrl" :src="att.thumbUrl" class="message-attachment-thumb" />
@@ -602,7 +599,7 @@ const App = {
602
599
  <button v-if="isProcessing" @click="cancelExecution" class="send-btn stop-btn" title="Stop generation">
603
600
  <svg viewBox="0 0 24 24" width="14" height="14"><rect x="6" y="6" width="12" height="12" rx="2" fill="currentColor"/></svg>
604
601
  </button>
605
- <button @click="sendMessage" :disabled="!canSend" class="send-btn" title="Send">
602
+ <button v-else @click="sendMessage" :disabled="!canSend" class="send-btn" title="Send">
606
603
  <svg viewBox="0 0 24 24" width="16" height="16"><path fill="currentColor" d="M2.01 21L23 12 2.01 3 2 10l15 2-15 2z"/></svg>
607
604
  </button>
608
605
  </div>
package/web/index.html CHANGED
@@ -6,11 +6,11 @@
6
6
  <title>AgentLink</title>
7
7
  <link rel="icon" type="image/svg+xml" href="/favicon.svg">
8
8
  <link rel="stylesheet" href="/style.css">
9
- <link id="hljs-theme" rel="stylesheet" href="/vendor/github-dark.min.css">
9
+ <link id="hljs-theme" rel="stylesheet" href="/vendor/github.min.css">
10
10
  <script>
11
11
  // Apply saved theme immediately to prevent flash
12
12
  (function() {
13
- var t = localStorage.getItem('agentlink-theme') || 'dark';
13
+ var t = localStorage.getItem('agentlink-theme') || 'light';
14
14
  document.documentElement.setAttribute('data-theme', t);
15
15
  var link = document.getElementById('hljs-theme');
16
16
  if (link) link.href = t === 'light'
@@ -256,20 +256,7 @@ export function createConnection(deps) {
256
256
  } else if (msg.type === 'turn_completed' || msg.type === 'execution_cancelled') {
257
257
  streaming.flushReveal();
258
258
  finalizeStreamingMsg(scheduleHighlight);
259
- if (msg.type === 'execution_cancelled') {
260
- // Cancel clears all queued messages
261
- messages.value.forEach(m => { if (m.queued) m.queued = false; });
262
- isProcessing.value = false;
263
- } else {
264
- // Turn completed — check if there's a queued message that Claude will process next
265
- const nextQueued = messages.value.find(m => m.role === 'user' && m.queued);
266
- if (nextQueued) {
267
- nextQueued.queued = false;
268
- // Still processing — Claude will handle the queued message
269
- } else {
270
- isProcessing.value = false;
271
- }
272
- }
259
+ isProcessing.value = false;
273
260
  isCompacting.value = false;
274
261
  if (msg.type === 'execution_cancelled') {
275
262
  messages.value.push({
package/web/style.css CHANGED
@@ -720,17 +720,6 @@ body {
720
720
  color: var(--text-primary);
721
721
  }
722
722
 
723
- .queued-badge {
724
- display: inline-block;
725
- font-size: 0.65rem;
726
- color: var(--text-secondary);
727
- background: var(--bg-secondary);
728
- padding: 1px 6px;
729
- border-radius: 4px;
730
- margin-top: 4px;
731
- opacity: 0.8;
732
- }
733
-
734
723
  .assistant-bubble {
735
724
  background: transparent;
736
725
  padding: 0.2rem 0;