@agent-link/server 0.1.125 → 0.1.127
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/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/web/app.js +40 -6
- package/web/landing.html +19 -1
- package/web/landing.zh.html +1261 -0
- package/web/modules/connection.js +4 -0
- package/web/modules/filePreview.js +16 -0
- package/web/modules/sidebar.js +11 -1
- package/web/style.css +70 -0
package/dist/index.js
CHANGED
|
@@ -30,6 +30,10 @@ const webDir = join(__dirname, '../web');
|
|
|
30
30
|
app.get('/', (_req, res) => {
|
|
31
31
|
res.sendFile(join(webDir, 'landing.html'));
|
|
32
32
|
});
|
|
33
|
+
// Chinese landing page
|
|
34
|
+
app.get('/zh', (_req, res) => {
|
|
35
|
+
res.sendFile(join(webDir, 'landing.zh.html'));
|
|
36
|
+
});
|
|
33
37
|
// Serve versioned index.html with no-store (cache-busting for browsers like iPhone Safari)
|
|
34
38
|
const sendIndexHtml = (_req, res) => {
|
|
35
39
|
res.setHeader('Content-Type', 'text/html; charset=utf-8');
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/web/app.js
CHANGED
|
@@ -80,6 +80,9 @@ const App = {
|
|
|
80
80
|
// Working directory history
|
|
81
81
|
const workdirHistory = ref([]);
|
|
82
82
|
|
|
83
|
+
// Working directory switching loading state
|
|
84
|
+
const workdirSwitching = ref(false);
|
|
85
|
+
|
|
83
86
|
// Authentication state
|
|
84
87
|
const authRequired = ref(false);
|
|
85
88
|
const authPassword = ref('');
|
|
@@ -112,6 +115,7 @@ const App = {
|
|
|
112
115
|
const previewPanelWidth = ref(parseInt(localStorage.getItem('agentlink-preview-panel-width'), 10) || 400);
|
|
113
116
|
const previewFile = ref(null);
|
|
114
117
|
const previewLoading = ref(false);
|
|
118
|
+
const previewMarkdownRendered = ref(false);
|
|
115
119
|
|
|
116
120
|
// ── switchConversation: save current → load target ──
|
|
117
121
|
// Defined here and used by sidebar.newConversation, sidebar.resumeSession, workdir_changed
|
|
@@ -249,7 +253,7 @@ const App = {
|
|
|
249
253
|
folderPickerLoading, folderPickerSelected, streaming,
|
|
250
254
|
deleteConfirmOpen, deleteConfirmTitle,
|
|
251
255
|
renamingSessionId, renameText,
|
|
252
|
-
hostname, workdirHistory,
|
|
256
|
+
hostname, workdirHistory, workdirSwitching,
|
|
253
257
|
// Multi-session parallel
|
|
254
258
|
currentConversationId, conversationCache, processingConversations,
|
|
255
259
|
switchConversation,
|
|
@@ -263,6 +267,7 @@ const App = {
|
|
|
263
267
|
folderPickerLoading, folderPickerEntries, folderPickerPath,
|
|
264
268
|
authRequired, authPassword, authError, authAttempts, authLocked,
|
|
265
269
|
streaming, sidebar, scrollToBottom,
|
|
270
|
+
workdirSwitching,
|
|
266
271
|
// Multi-session parallel
|
|
267
272
|
currentConversationId, processingConversations, conversationCache,
|
|
268
273
|
switchConversation,
|
|
@@ -287,7 +292,7 @@ const App = {
|
|
|
287
292
|
// File preview module
|
|
288
293
|
const filePreview = createFilePreview({
|
|
289
294
|
wsSend, previewPanelOpen, previewPanelWidth, previewFile, previewLoading,
|
|
290
|
-
sidebarView, sidebarOpen, isMobile,
|
|
295
|
+
previewMarkdownRendered, sidebarView, sidebarOpen, isMobile, renderMarkdown,
|
|
291
296
|
});
|
|
292
297
|
setFilePreview(filePreview);
|
|
293
298
|
|
|
@@ -498,6 +503,7 @@ const App = {
|
|
|
498
503
|
filteredWorkdirHistory: sidebar.filteredWorkdirHistory,
|
|
499
504
|
switchToWorkdir: sidebar.switchToWorkdir,
|
|
500
505
|
removeFromWorkdirHistory: sidebar.removeFromWorkdirHistory,
|
|
506
|
+
workdirSwitching,
|
|
501
507
|
// Authentication
|
|
502
508
|
authRequired, authPassword, authError, authAttempts, authLocked,
|
|
503
509
|
submitPassword,
|
|
@@ -516,7 +522,7 @@ const App = {
|
|
|
516
522
|
sidebarView, isMobile, fileBrowser,
|
|
517
523
|
flattenedTree: fileBrowser.flattenedTree,
|
|
518
524
|
// File preview
|
|
519
|
-
previewPanelOpen, previewPanelWidth, previewFile, previewLoading, filePreview,
|
|
525
|
+
previewPanelOpen, previewPanelWidth, previewFile, previewLoading, previewMarkdownRendered, filePreview,
|
|
520
526
|
workdirMenuOpen,
|
|
521
527
|
toggleWorkdirMenu() { workdirMenuOpen.value = !workdirMenuOpen.value; },
|
|
522
528
|
workdirMenuBrowse() {
|
|
@@ -617,9 +623,17 @@ const App = {
|
|
|
617
623
|
<svg viewBox="0 0 24 24" width="14" height="14"><path fill="currentColor" d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/></svg>
|
|
618
624
|
Files
|
|
619
625
|
</button>
|
|
620
|
-
<
|
|
621
|
-
|
|
622
|
-
|
|
626
|
+
<div class="preview-header-actions">
|
|
627
|
+
<button v-if="previewFile?.content && filePreview.isMarkdownFile(previewFile.fileName)"
|
|
628
|
+
class="preview-md-toggle" :class="{ active: previewMarkdownRendered }"
|
|
629
|
+
@click="previewMarkdownRendered = !previewMarkdownRendered"
|
|
630
|
+
:title="previewMarkdownRendered ? 'Show source' : 'Render markdown'">
|
|
631
|
+
<svg viewBox="0 0 16 16" width="14" height="14"><path fill="currentColor" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"/></svg>
|
|
632
|
+
</button>
|
|
633
|
+
<span v-if="previewFile" class="file-preview-mobile-size">
|
|
634
|
+
{{ filePreview.formatFileSize(previewFile.totalSize) }}
|
|
635
|
+
</span>
|
|
636
|
+
</div>
|
|
623
637
|
</div>
|
|
624
638
|
<div class="file-preview-mobile-filename" :title="previewFile?.filePath">
|
|
625
639
|
{{ previewFile?.fileName || 'Preview' }}
|
|
@@ -634,6 +648,9 @@ const App = {
|
|
|
634
648
|
<img :src="'data:' + previewFile.mimeType + ';base64,' + previewFile.content"
|
|
635
649
|
:alt="previewFile.fileName" class="preview-image" />
|
|
636
650
|
</div>
|
|
651
|
+
<div v-else-if="previewFile?.content && previewMarkdownRendered && filePreview.isMarkdownFile(previewFile.fileName)"
|
|
652
|
+
class="preview-markdown-rendered markdown-body" v-html="filePreview.renderedMarkdownHtml(previewFile.content)">
|
|
653
|
+
</div>
|
|
637
654
|
<div v-else-if="previewFile?.content" class="preview-text-container">
|
|
638
655
|
<pre class="preview-code"><code v-html="filePreview.highlightCode(previewFile.content, previewFile.fileName)"></code></pre>
|
|
639
656
|
<div v-if="previewFile.truncated" class="preview-truncated-notice">
|
|
@@ -1036,6 +1053,12 @@ const App = {
|
|
|
1036
1053
|
<span class="preview-panel-filename" :title="previewFile?.filePath">
|
|
1037
1054
|
{{ previewFile?.fileName || 'Preview' }}
|
|
1038
1055
|
</span>
|
|
1056
|
+
<button v-if="previewFile?.content && filePreview.isMarkdownFile(previewFile.fileName)"
|
|
1057
|
+
class="preview-md-toggle" :class="{ active: previewMarkdownRendered }"
|
|
1058
|
+
@click="previewMarkdownRendered = !previewMarkdownRendered"
|
|
1059
|
+
:title="previewMarkdownRendered ? 'Show source' : 'Render markdown'">
|
|
1060
|
+
<svg viewBox="0 0 16 16" width="14" height="14"><path fill="currentColor" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"/></svg>
|
|
1061
|
+
</button>
|
|
1039
1062
|
<span v-if="previewFile" class="preview-panel-size">
|
|
1040
1063
|
{{ filePreview.formatFileSize(previewFile.totalSize) }}
|
|
1041
1064
|
</span>
|
|
@@ -1051,6 +1074,9 @@ const App = {
|
|
|
1051
1074
|
<img :src="'data:' + previewFile.mimeType + ';base64,' + previewFile.content"
|
|
1052
1075
|
:alt="previewFile.fileName" class="preview-image" />
|
|
1053
1076
|
</div>
|
|
1077
|
+
<div v-else-if="previewFile?.content && previewMarkdownRendered && filePreview.isMarkdownFile(previewFile.fileName)"
|
|
1078
|
+
class="preview-markdown-rendered markdown-body" v-html="filePreview.renderedMarkdownHtml(previewFile.content)">
|
|
1079
|
+
</div>
|
|
1054
1080
|
<div v-else-if="previewFile?.content" class="preview-text-container">
|
|
1055
1081
|
<pre class="preview-code"><code v-html="filePreview.highlightCode(previewFile.content, previewFile.fileName)"></code></pre>
|
|
1056
1082
|
<div v-if="previewFile.truncated" class="preview-truncated-notice">
|
|
@@ -1165,6 +1191,14 @@ const App = {
|
|
|
1165
1191
|
</div>
|
|
1166
1192
|
</div>
|
|
1167
1193
|
|
|
1194
|
+
<!-- Workdir switching overlay -->
|
|
1195
|
+
<Transition name="fade">
|
|
1196
|
+
<div v-if="workdirSwitching" class="workdir-switching-overlay">
|
|
1197
|
+
<div class="workdir-switching-spinner"></div>
|
|
1198
|
+
<div class="workdir-switching-text">Switching directory...</div>
|
|
1199
|
+
</div>
|
|
1200
|
+
</Transition>
|
|
1201
|
+
|
|
1168
1202
|
<!-- File context menu -->
|
|
1169
1203
|
<div
|
|
1170
1204
|
v-if="fileContextMenu"
|
package/web/landing.html
CHANGED
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
<meta name="description" content="Remote control for Claude Code. Start a task in your terminal, walk away, and continue from your phone or any browser. Multi-session, end-to-end encrypted.">
|
|
8
8
|
<meta name="keywords" content="Claude Code, remote control, browser IDE, AI coding assistant, AgentLink, end-to-end encrypted, self-hosted, mobile coding">
|
|
9
9
|
<link rel="canonical" href="https://msclaude.ai/">
|
|
10
|
+
<link rel="alternate" hreflang="en" href="https://msclaude.ai/">
|
|
11
|
+
<link rel="alternate" hreflang="zh" href="https://msclaude.ai/zh">
|
|
12
|
+
<link rel="alternate" hreflang="x-default" href="https://msclaude.ai/">
|
|
10
13
|
<!-- Open Graph -->
|
|
11
14
|
<meta property="og:type" content="website">
|
|
12
15
|
<meta property="og:title" content="AgentLink — Remote Control for Claude Code">
|
|
@@ -210,6 +213,20 @@
|
|
|
210
213
|
|
|
211
214
|
.nav-gh svg { width: 16px; height: 16px; fill: currentColor; }
|
|
212
215
|
|
|
216
|
+
.nav-lang {
|
|
217
|
+
font-size: 0.8rem;
|
|
218
|
+
color: var(--text-dim);
|
|
219
|
+
padding: 0.35rem 0.7rem;
|
|
220
|
+
border: 1px solid var(--border);
|
|
221
|
+
border-radius: 6px;
|
|
222
|
+
transition: all 0.3s;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.nav-lang:hover {
|
|
226
|
+
color: var(--text);
|
|
227
|
+
border-color: var(--border-hover);
|
|
228
|
+
}
|
|
229
|
+
|
|
213
230
|
/* ── Hero ── */
|
|
214
231
|
.hero {
|
|
215
232
|
text-align: center;
|
|
@@ -875,7 +892,7 @@
|
|
|
875
892
|
.hero { padding: 5rem 1.5rem 3rem; }
|
|
876
893
|
.cta-group { flex-direction: column; }
|
|
877
894
|
.nav-links { gap: 1rem; }
|
|
878
|
-
.nav-links a:not(.nav-gh) { display: none; }
|
|
895
|
+
.nav-links a:not(.nav-gh):not(.nav-lang) { display: none; }
|
|
879
896
|
.encrypt-visual { flex-wrap: wrap; justify-content: center; gap: 0.5rem; }
|
|
880
897
|
.encrypt-visual .encrypt-arrow { display: none; }
|
|
881
898
|
.encrypt-block { font-size: 0.65rem; }
|
|
@@ -970,6 +987,7 @@
|
|
|
970
987
|
<div class="nav-links">
|
|
971
988
|
<a href="#features">Features</a>
|
|
972
989
|
<a href="#how-it-works">How It Works</a>
|
|
990
|
+
<a href="/zh" class="nav-lang">中文</a>
|
|
973
991
|
<a href="https://github.com/yilee/agentlink" target="_blank" rel="noopener" class="nav-gh">
|
|
974
992
|
<svg viewBox="0 0 16 16" aria-hidden="true"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg>
|
|
975
993
|
GitHub
|