@agent-link/server 0.1.187 → 0.1.189

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.
Files changed (76) hide show
  1. package/dist/auth-manager.d.ts +36 -0
  2. package/dist/auth-manager.js +96 -0
  3. package/dist/auth-manager.js.map +1 -0
  4. package/dist/http.d.ts +4 -0
  5. package/dist/http.js +85 -0
  6. package/dist/http.js.map +1 -0
  7. package/dist/index.js +5 -84
  8. package/dist/index.js.map +1 -1
  9. package/dist/message-relay.d.ts +17 -0
  10. package/dist/message-relay.js +23 -0
  11. package/dist/message-relay.js.map +1 -0
  12. package/dist/session-manager.d.ts +44 -0
  13. package/dist/session-manager.js +83 -0
  14. package/dist/session-manager.js.map +1 -0
  15. package/dist/ws-agent.js +19 -27
  16. package/dist/ws-agent.js.map +1 -1
  17. package/dist/ws-client.js +31 -37
  18. package/dist/ws-client.js.map +1 -1
  19. package/package.json +3 -3
  20. package/web/dist/assets/index-DIO7Hox0.js +320 -0
  21. package/web/dist/assets/index-DIO7Hox0.js.map +1 -0
  22. package/web/dist/assets/index-Y1FN_mFe.css +1 -0
  23. package/web/{index.html → dist/index.html} +2 -19
  24. package/dist/auth.d.ts +0 -13
  25. package/dist/auth.js +0 -65
  26. package/dist/auth.js.map +0 -1
  27. package/dist/context.d.ts +0 -52
  28. package/dist/context.js +0 -60
  29. package/dist/context.js.map +0 -1
  30. package/web/app.js +0 -2881
  31. package/web/css/ask-question.css +0 -333
  32. package/web/css/base.css +0 -270
  33. package/web/css/btw.css +0 -148
  34. package/web/css/chat.css +0 -176
  35. package/web/css/file-browser.css +0 -499
  36. package/web/css/input.css +0 -671
  37. package/web/css/loop.css +0 -674
  38. package/web/css/markdown.css +0 -169
  39. package/web/css/responsive.css +0 -314
  40. package/web/css/sidebar.css +0 -593
  41. package/web/css/team.css +0 -1277
  42. package/web/css/tools.css +0 -327
  43. package/web/encryption.js +0 -56
  44. package/web/modules/appHelpers.js +0 -100
  45. package/web/modules/askQuestion.js +0 -63
  46. package/web/modules/backgroundRouting.js +0 -269
  47. package/web/modules/connection.js +0 -731
  48. package/web/modules/fileAttachments.js +0 -125
  49. package/web/modules/fileBrowser.js +0 -398
  50. package/web/modules/filePreview.js +0 -213
  51. package/web/modules/i18n.js +0 -101
  52. package/web/modules/loop.js +0 -338
  53. package/web/modules/loopTemplates.js +0 -110
  54. package/web/modules/markdown.js +0 -83
  55. package/web/modules/messageHelpers.js +0 -206
  56. package/web/modules/sidebar.js +0 -402
  57. package/web/modules/streaming.js +0 -116
  58. package/web/modules/team.js +0 -396
  59. package/web/modules/teamTemplates.js +0 -360
  60. package/web/vendor/highlight.min.js +0 -1213
  61. package/web/vendor/marked.min.js +0 -6
  62. package/web/vendor/nacl-fast.min.js +0 -1
  63. package/web/vendor/nacl-util.min.js +0 -1
  64. package/web/vendor/pako.min.js +0 -2
  65. package/web/vendor/vue.global.prod.js +0 -13
  66. /package/web/{favicon.svg → dist/favicon.svg} +0 -0
  67. /package/web/{images → dist/images}/chat-iPad.webp +0 -0
  68. /package/web/{images → dist/images}/chat-iPhone.webp +0 -0
  69. /package/web/{images → dist/images}/loop-iPad.webp +0 -0
  70. /package/web/{images → dist/images}/team-iPad.webp +0 -0
  71. /package/web/{landing.html → dist/landing.html} +0 -0
  72. /package/web/{landing.zh.html → dist/landing.zh.html} +0 -0
  73. /package/web/{locales → dist/locales}/en.json +0 -0
  74. /package/web/{locales → dist/locales}/zh.json +0 -0
  75. /package/web/{vendor → dist/vendor}/github-dark.min.css +0 -0
  76. /package/web/{vendor → dist/vendor}/github.min.css +0 -0
@@ -1,593 +0,0 @@
1
- /* ── Sidebar ── */
2
- .sidebar {
3
- width: 260px;
4
- flex-shrink: 0;
5
- background: var(--bg-secondary);
6
- border-right: 1px solid var(--border);
7
- display: flex;
8
- flex-direction: column;
9
- overflow: hidden;
10
- }
11
-
12
- .sidebar-section {
13
- padding: 0.5rem 0.75rem;
14
- border-bottom: 1px solid var(--border);
15
- }
16
-
17
- .sidebar-workdir {
18
- position: relative;
19
- }
20
-
21
- .sidebar-hostname {
22
- display: flex;
23
- align-items: center;
24
- gap: 6px;
25
- font-size: 0.85rem;
26
- font-weight: 500;
27
- color: var(--text-primary);
28
- margin-bottom: 10px;
29
- padding-bottom: 10px;
30
- border-bottom: 1px solid var(--border);
31
- }
32
-
33
- .sidebar-hostname-icon {
34
- flex-shrink: 0;
35
- opacity: 0.6;
36
- }
37
-
38
- .sidebar-workdir-label {
39
- font-size: 0.7rem;
40
- text-transform: uppercase;
41
- letter-spacing: 0.05em;
42
- color: var(--text-secondary);
43
- margin-bottom: 4px;
44
- }
45
-
46
- .sidebar-workdir-path {
47
- font-size: 0.8rem;
48
- color: var(--text-primary);
49
- font-family: 'SF Mono', 'Fira Code', Consolas, monospace;
50
- overflow: hidden;
51
- text-overflow: ellipsis;
52
- white-space: nowrap;
53
- line-height: 1.3;
54
- }
55
-
56
- /* ── Working Directory History ── */
57
- .workdir-history {
58
- margin-top: 10px;
59
- padding-top: 10px;
60
- border-top: 1px solid var(--border);
61
- }
62
- .workdir-history-label {
63
- font-size: 0.65rem;
64
- text-transform: uppercase;
65
- letter-spacing: 0.05em;
66
- color: var(--text-secondary);
67
- margin-bottom: 6px;
68
- opacity: 0.7;
69
- }
70
- .workdir-history-list {
71
- display: flex;
72
- flex-direction: column;
73
- gap: 2px;
74
- max-height: 120px;
75
- overflow-y: auto;
76
- }
77
- .workdir-history-item {
78
- display: flex;
79
- align-items: center;
80
- gap: 6px;
81
- padding: 4px 6px;
82
- border-radius: 4px;
83
- cursor: pointer;
84
- transition: background 0.15s;
85
- }
86
- .workdir-history-item:hover {
87
- background: var(--bg-tertiary);
88
- }
89
- .workdir-history-path {
90
- font-size: 0.72rem;
91
- color: var(--text-secondary);
92
- font-family: 'SF Mono', 'Fira Code', Consolas, monospace;
93
- overflow: hidden;
94
- text-overflow: ellipsis;
95
- white-space: nowrap;
96
- flex: 1;
97
- min-width: 0;
98
- }
99
- .workdir-history-item:hover .workdir-history-path {
100
- color: var(--text-primary);
101
- }
102
- .workdir-history-delete {
103
- display: flex;
104
- align-items: center;
105
- justify-content: center;
106
- width: 18px;
107
- height: 18px;
108
- background: none;
109
- border: none;
110
- border-radius: 3px;
111
- color: var(--text-secondary);
112
- cursor: pointer;
113
- padding: 0;
114
- flex-shrink: 0;
115
- transition: color 0.15s, background 0.15s;
116
- visibility: hidden;
117
- }
118
- .workdir-history-item:hover .workdir-history-delete {
119
- visibility: visible;
120
- }
121
- .workdir-history-delete:hover {
122
- color: var(--error);
123
- background: rgba(212, 84, 84, 0.1);
124
- }
125
-
126
- .sidebar-sessions {
127
- display: flex;
128
- flex-direction: column;
129
- overflow: hidden;
130
- min-height: 0;
131
- }
132
-
133
- .sidebar-version-footer {
134
- padding: 6px 12px;
135
- font-size: 0.65rem;
136
- color: var(--text-secondary);
137
- opacity: 0.5;
138
- text-align: center;
139
- border-top: 1px solid var(--border);
140
- flex-shrink: 0;
141
- }
142
-
143
- .sidebar-version-sep {
144
- margin: 0 3px;
145
- }
146
-
147
- .sidebar-section-header {
148
- display: flex;
149
- align-items: center;
150
- justify-content: space-between;
151
- font-size: 0.7rem;
152
- text-transform: uppercase;
153
- letter-spacing: 0.05em;
154
- color: var(--text-secondary);
155
- margin-bottom: 4px;
156
- }
157
-
158
- .sidebar-refresh-btn {
159
- display: flex;
160
- align-items: center;
161
- justify-content: center;
162
- width: 20px;
163
- height: 20px;
164
- background: none;
165
- border: none;
166
- border-radius: 4px;
167
- color: var(--text-secondary);
168
- cursor: pointer;
169
- transition: color 0.15s;
170
- }
171
-
172
- .sidebar-refresh-btn:hover {
173
- color: var(--text-primary);
174
- }
175
-
176
- .sidebar-refresh-btn:disabled {
177
- opacity: 0.4;
178
- cursor: not-allowed;
179
- }
180
-
181
- .sidebar-section-header-actions {
182
- display: flex;
183
- align-items: center;
184
- gap: 2px;
185
- }
186
-
187
- .sidebar-collapse-btn {
188
- display: flex;
189
- align-items: center;
190
- justify-content: center;
191
- width: 24px;
192
- height: 24px;
193
- background: none;
194
- border: none;
195
- border-radius: 4px;
196
- color: var(--text-secondary);
197
- cursor: pointer;
198
- transition: color 0.15s;
199
- }
200
-
201
- .sidebar-collapse-btn:hover {
202
- color: var(--text-primary);
203
- }
204
-
205
- .sidebar-collapse-btn svg {
206
- transition: transform 0.2s ease;
207
- }
208
-
209
- .sidebar-collapse-btn svg.collapsed {
210
- transform: rotate(-90deg);
211
- }
212
-
213
- .spinning {
214
- animation: spin 0.8s linear infinite;
215
- }
216
-
217
- .new-conversation-btn {
218
- display: flex;
219
- align-items: center;
220
- gap: 6px;
221
- width: 100%;
222
- padding: 6px 8px;
223
- background: none;
224
- border: 1px dashed var(--border);
225
- border-radius: 6px;
226
- color: var(--text-secondary);
227
- font-size: 0.82rem;
228
- cursor: pointer;
229
- transition: color 0.15s, border-color 0.15s, background 0.15s;
230
- margin-bottom: 8px;
231
- }
232
-
233
- .new-conversation-btn:hover {
234
- color: var(--text-primary);
235
- border-color: var(--text-secondary);
236
- background: var(--bg-tertiary);
237
- }
238
-
239
- .new-conversation-btn:disabled {
240
- opacity: 0.4;
241
- cursor: not-allowed;
242
- }
243
-
244
- .sidebar-loading,
245
- .sidebar-empty {
246
- font-size: 0.8rem;
247
- color: var(--text-secondary);
248
- text-align: center;
249
- padding: 1rem 0;
250
- }
251
-
252
- .session-list {
253
- flex: 1 1 auto;
254
- overflow-y: auto;
255
- min-height: 0;
256
- overscroll-behavior: contain;
257
- display: flex;
258
- flex-direction: column;
259
- gap: 2px;
260
- min-height: 0;
261
- overscroll-behavior: contain;
262
- }
263
-
264
- .session-group {
265
- margin-bottom: 0.5rem;
266
- }
267
-
268
- .session-group-label {
269
- font-size: 0.68rem;
270
- font-weight: 600;
271
- text-transform: uppercase;
272
- letter-spacing: 0.04em;
273
- color: var(--text-secondary);
274
- padding: 0.4rem 8px 0.2rem;
275
- opacity: 0.7;
276
- }
277
-
278
- .session-item {
279
- padding: 8px 10px;
280
- border-radius: 8px;
281
- cursor: pointer;
282
- transition: background 0.15s, transform 0.1s;
283
- border-left: 3px solid transparent;
284
- }
285
-
286
- .session-item:hover {
287
- background: var(--bg-tertiary);
288
- }
289
-
290
- .session-item:active {
291
- transform: scale(0.98);
292
- }
293
-
294
- .session-item.active {
295
- background: var(--bg-tertiary);
296
- border-left-color: var(--accent);
297
- }
298
-
299
- .session-title {
300
- font-size: 0.82rem;
301
- color: var(--text-primary);
302
- overflow: hidden;
303
- text-overflow: ellipsis;
304
- white-space: nowrap;
305
- line-height: 1.3;
306
- display: flex;
307
- align-items: center;
308
- gap: 4px;
309
- }
310
-
311
- .session-team-icon {
312
- flex-shrink: 0;
313
- color: var(--accent);
314
- opacity: 0.7;
315
- }
316
-
317
- /* Processing indicator: pulsing dot before session title */
318
- .session-item.processing .session-title::before {
319
- content: '';
320
- display: inline-block;
321
- width: 6px;
322
- height: 6px;
323
- border-radius: 50%;
324
- background: var(--accent);
325
- margin-right: 6px;
326
- vertical-align: middle;
327
- animation: pulse 1.5s ease-in-out infinite;
328
- }
329
-
330
- .session-meta {
331
- font-size: 0.7rem;
332
- color: var(--text-secondary);
333
- margin-top: 2px;
334
- display: flex;
335
- align-items: center;
336
- justify-content: space-between;
337
- }
338
-
339
- .session-actions {
340
- display: flex;
341
- align-items: center;
342
- gap: 2px;
343
- visibility: hidden;
344
- }
345
-
346
- .session-item:hover .session-actions {
347
- visibility: visible;
348
- }
349
-
350
- .team-history-item:hover .session-actions {
351
- visibility: visible;
352
- }
353
-
354
- .session-delete-btn {
355
- display: flex;
356
- align-items: center;
357
- justify-content: center;
358
- width: 20px;
359
- height: 20px;
360
- background: none;
361
- border: none;
362
- border-radius: 4px;
363
- color: var(--text-secondary);
364
- cursor: pointer;
365
- padding: 0;
366
- transition: color 0.15s, background 0.15s;
367
- }
368
-
369
- .session-delete-btn:hover {
370
- color: var(--error);
371
- background: rgba(212, 84, 84, 0.1);
372
- }
373
-
374
- /* ── Rename session (pencil icon + inline edit) ── */
375
- .session-rename-btn {
376
- display: flex;
377
- align-items: center;
378
- justify-content: center;
379
- width: 20px;
380
- height: 20px;
381
- background: none;
382
- border: none;
383
- border-radius: 4px;
384
- color: var(--text-secondary);
385
- cursor: pointer;
386
- padding: 0;
387
- transition: color 0.15s, background 0.15s;
388
- }
389
-
390
- .session-rename-btn:hover {
391
- color: var(--accent);
392
- background: rgba(107, 159, 206, 0.12);
393
- }
394
-
395
- .session-rename-row {
396
- display: flex;
397
- align-items: center;
398
- gap: 4px;
399
- min-width: 0;
400
- flex: 1;
401
- }
402
-
403
- .session-rename-input {
404
- flex: 1;
405
- min-width: 0;
406
- background: var(--bg-primary);
407
- border: 1px solid var(--accent);
408
- border-radius: 4px;
409
- color: var(--text-primary);
410
- font-size: 0.82rem;
411
- padding: 2px 6px;
412
- outline: none;
413
- }
414
-
415
- .session-rename-ok,
416
- .session-rename-cancel {
417
- background: none;
418
- border: none;
419
- color: var(--text-secondary);
420
- cursor: pointer;
421
- font-size: 0.9rem;
422
- padding: 0 2px;
423
- line-height: 1;
424
- }
425
-
426
- .session-rename-ok:hover { color: var(--accent); }
427
- .session-rename-cancel:hover { color: var(--error); }
428
-
429
- /* ── Delete confirmation dialog ── */
430
- .delete-confirm-dialog {
431
- width: 360px;
432
- background: var(--bg-secondary);
433
- border: 1px solid var(--border);
434
- border-radius: 12px;
435
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
436
- }
437
-
438
- .delete-confirm-header {
439
- padding: 12px 16px;
440
- font-size: 0.95rem;
441
- font-weight: 600;
442
- border-bottom: 1px solid var(--border);
443
- }
444
-
445
- .delete-confirm-body {
446
- padding: 16px;
447
- font-size: 0.88rem;
448
- line-height: 1.5;
449
- }
450
-
451
- .delete-confirm-body p {
452
- margin-bottom: 6px;
453
- }
454
-
455
- .delete-confirm-title {
456
- font-weight: 500;
457
- color: var(--text-primary);
458
- overflow: hidden;
459
- text-overflow: ellipsis;
460
- white-space: nowrap;
461
- padding: 6px 10px;
462
- background: var(--bg-tertiary);
463
- border-radius: 6px;
464
- }
465
-
466
- .delete-confirm-warning {
467
- font-size: 0.78rem;
468
- color: var(--text-secondary);
469
- margin-top: 4px;
470
- }
471
-
472
- .delete-confirm-footer {
473
- padding: 10px 16px;
474
- display: flex;
475
- justify-content: flex-end;
476
- gap: 8px;
477
- border-top: 1px solid var(--border);
478
- }
479
-
480
- .delete-confirm-btn {
481
- padding: 6px 20px;
482
- background: var(--error);
483
- color: #fff;
484
- border: none;
485
- border-radius: 8px;
486
- font-size: 0.85rem;
487
- font-weight: 600;
488
- cursor: pointer;
489
- transition: background 0.15s;
490
- }
491
-
492
- .delete-confirm-btn:hover {
493
- background: #c04444;
494
- }
495
-
496
- /* ── Auth Dialog ── */
497
- .auth-dialog {
498
- background: var(--bg-secondary);
499
- border: 1px solid var(--border);
500
- border-radius: 12px;
501
- width: 360px;
502
- max-width: 90vw;
503
- box-shadow: 0 8px 32px rgba(0,0,0,0.3);
504
- }
505
-
506
- .auth-dialog-header {
507
- display: flex;
508
- align-items: center;
509
- gap: 10px;
510
- padding: 20px 24px 16px;
511
- font-size: 1rem;
512
- font-weight: 600;
513
- color: var(--text-primary);
514
- }
515
-
516
- .auth-dialog-header svg {
517
- color: var(--accent);
518
- }
519
-
520
- .auth-dialog-locked .auth-dialog-header svg {
521
- color: var(--error);
522
- }
523
-
524
- .auth-dialog-body {
525
- padding: 0 24px 16px;
526
- }
527
-
528
- .auth-dialog-body p {
529
- margin: 0 0 12px 0;
530
- color: var(--text-secondary);
531
- font-size: 0.85rem;
532
- }
533
-
534
- .auth-password-input {
535
- width: 100%;
536
- padding: 10px 12px;
537
- background: var(--bg-tertiary);
538
- border: 1px solid var(--border);
539
- border-radius: 8px;
540
- color: var(--text-primary);
541
- font-size: 0.9rem;
542
- outline: none;
543
- box-sizing: border-box;
544
- margin-bottom: 4px;
545
- }
546
-
547
- .auth-password-input:focus {
548
- border-color: var(--accent);
549
- }
550
-
551
- .auth-error {
552
- color: var(--error) !important;
553
- font-size: 0.82rem !important;
554
- margin-top: 8px !important;
555
- }
556
-
557
- .auth-attempts {
558
- color: var(--text-secondary) !important;
559
- font-size: 0.78rem !important;
560
- }
561
-
562
- .auth-locked-hint {
563
- font-size: 0.78rem !important;
564
- color: var(--text-secondary) !important;
565
- }
566
-
567
- .auth-dialog-footer {
568
- padding: 12px 24px 20px;
569
- display: flex;
570
- justify-content: flex-end;
571
- }
572
-
573
- .auth-submit-btn {
574
- background: var(--accent);
575
- color: #fff;
576
- border: none;
577
- padding: 8px 24px;
578
- border-radius: 8px;
579
- font-size: 0.85rem;
580
- font-weight: 600;
581
- cursor: pointer;
582
- transition: background 0.15s;
583
- }
584
-
585
- .auth-submit-btn:hover:not(:disabled) {
586
- background: var(--accent-hover);
587
- }
588
-
589
- .auth-submit-btn:disabled {
590
- opacity: 0.4;
591
- cursor: not-allowed;
592
- }
593
-