@memtensor/memos-local-openclaw-plugin 1.0.4-beta.10 → 1.0.4-beta.12
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/client/connector.d.ts +5 -0
- package/dist/client/connector.d.ts.map +1 -1
- package/dist/client/connector.js +38 -8
- package/dist/client/connector.js.map +1 -1
- package/dist/hub/server.d.ts +1 -0
- package/dist/hub/server.d.ts.map +1 -1
- package/dist/hub/server.js +143 -32
- package/dist/hub/server.js.map +1 -1
- package/dist/hub/user-manager.d.ts +9 -0
- package/dist/hub/user-manager.d.ts.map +1 -1
- package/dist/hub/user-manager.js +26 -2
- package/dist/hub/user-manager.js.map +1 -1
- package/dist/ingest/chunker.d.ts +2 -1
- package/dist/ingest/chunker.d.ts.map +1 -1
- package/dist/ingest/chunker.js +14 -10
- package/dist/ingest/chunker.js.map +1 -1
- package/dist/recall/engine.d.ts.map +1 -1
- package/dist/recall/engine.js +7 -2
- package/dist/recall/engine.js.map +1 -1
- package/dist/sharing/types.d.ts +1 -1
- package/dist/sharing/types.d.ts.map +1 -1
- package/dist/skill/evolver.d.ts +2 -0
- package/dist/skill/evolver.d.ts.map +1 -1
- package/dist/skill/evolver.js +56 -5
- package/dist/skill/evolver.js.map +1 -1
- package/dist/skill/generator.d.ts +2 -0
- package/dist/skill/generator.d.ts.map +1 -1
- package/dist/skill/generator.js +45 -3
- package/dist/skill/generator.js.map +1 -1
- package/dist/skill/installer.d.ts +26 -0
- package/dist/skill/installer.d.ts.map +1 -1
- package/dist/skill/installer.js +80 -4
- package/dist/skill/installer.js.map +1 -1
- package/dist/skill/upgrader.d.ts +2 -0
- package/dist/skill/upgrader.d.ts.map +1 -1
- package/dist/skill/upgrader.js +139 -1
- package/dist/skill/upgrader.js.map +1 -1
- package/dist/skill/validator.d.ts +3 -0
- package/dist/skill/validator.d.ts.map +1 -1
- package/dist/skill/validator.js +75 -0
- package/dist/skill/validator.js.map +1 -1
- package/dist/storage/sqlite.d.ts +28 -0
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +155 -16
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -1
- package/dist/viewer/html.d.ts.map +1 -1
- package/dist/viewer/html.js +64 -24
- package/dist/viewer/html.js.map +1 -1
- package/dist/viewer/server.d.ts.map +1 -1
- package/dist/viewer/server.js +39 -20
- package/dist/viewer/server.js.map +1 -1
- package/index.ts +338 -33
- package/package.json +1 -1
- package/src/client/connector.ts +43 -8
- package/src/hub/server.ts +142 -31
- package/src/hub/user-manager.ts +42 -6
- package/src/ingest/chunker.ts +19 -13
- package/src/recall/engine.ts +7 -2
- package/src/sharing/types.ts +1 -1
- package/src/skill/evolver.ts +58 -6
- package/src/skill/generator.ts +44 -5
- package/src/skill/installer.ts +107 -4
- package/src/skill/upgrader.ts +139 -1
- package/src/skill/validator.ts +79 -0
- package/src/storage/sqlite.ts +174 -16
- package/src/types.ts +11 -0
- package/src/viewer/html.ts +64 -24
- package/src/viewer/server.ts +39 -20
package/dist/viewer/html.js
CHANGED
|
@@ -807,6 +807,10 @@ input,textarea,select{font-family:inherit;font-size:inherit}
|
|
|
807
807
|
.recall-score.high{background:rgba(34,197,94,.12);color:#22c55e}
|
|
808
808
|
.recall-score.mid{background:rgba(251,191,36,.12);color:#f59e0b}
|
|
809
809
|
.recall-score.low{background:rgba(248,113,113,.1);color:var(--text-muted)}
|
|
810
|
+
.recall-origin{flex-shrink:0;font-size:9px;font-weight:600;padding:1px 5px;border-radius:4px}
|
|
811
|
+
.recall-origin.local-shared{background:rgba(59,130,246,.12);color:#3b82f6}
|
|
812
|
+
.recall-origin.hub-memory{background:rgba(139,92,246,.12);color:#8b5cf6}
|
|
813
|
+
.recall-origin.hub-remote{background:rgba(139,92,246,.12);color:#8b5cf6}
|
|
810
814
|
.recall-summary-short{flex:1;color:var(--text-sec);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
811
815
|
.recall-expand-icon{flex-shrink:0;font-size:10px;color:var(--text-muted);transition:transform .15s}
|
|
812
816
|
.recall-item.expanded .recall-expand-icon{transform:rotate(90deg)}
|
|
@@ -1219,7 +1223,7 @@ input,textarea,select{font-family:inherit;font-size:inherit}
|
|
|
1219
1223
|
</div>
|
|
1220
1224
|
<button class="btn btn-ghost btn-sm" onclick="doLogout()" data-i18n="logout">Logout</button>
|
|
1221
1225
|
</div>
|
|
1222
|
-
|
|
1226
|
+
</div>
|
|
1223
1227
|
</div>
|
|
1224
1228
|
|
|
1225
1229
|
<div class="main-content">
|
|
@@ -2232,6 +2236,9 @@ const I18N={
|
|
|
2232
2236
|
'logs.recall.noHits':'No matching memories',
|
|
2233
2237
|
'logs.recall.noneRelevant':'LLM filter: none relevant',
|
|
2234
2238
|
'logs.recall.more':'{n} more...',
|
|
2239
|
+
'recall.origin.localShared':'Local Shared',
|
|
2240
|
+
'recall.origin.hubMemory':'Team Cache',
|
|
2241
|
+
'recall.origin.hubRemote':'Team',
|
|
2235
2242
|
'tab.import':'\u{1F4E5} Import',
|
|
2236
2243
|
'tab.settings':'\u2699 Settings',
|
|
2237
2244
|
'settings.modelconfig':'Model Configuration',
|
|
@@ -2943,6 +2950,9 @@ const I18N={
|
|
|
2943
2950
|
'logs.recall.noHits':'未匹配到记忆',
|
|
2944
2951
|
'logs.recall.noneRelevant':'LLM 过滤:无相关记忆',
|
|
2945
2952
|
'logs.recall.more':'还有 {n} 条...',
|
|
2953
|
+
'recall.origin.localShared':'本机共享',
|
|
2954
|
+
'recall.origin.hubMemory':'团队缓存',
|
|
2955
|
+
'recall.origin.hubRemote':'团队',
|
|
2946
2956
|
'tab.import':'\u{1F4E5} 导入',
|
|
2947
2957
|
'tab.settings':'\u2699 设置',
|
|
2948
2958
|
'settings.modelconfig':'模型配置',
|
|
@@ -3689,7 +3699,14 @@ function switchView(view){
|
|
|
3689
3699
|
else if(view==='skills') loadSkills();
|
|
3690
3700
|
else if(view==='analytics') loadMetrics();
|
|
3691
3701
|
else if(view==='logs') loadLogs();
|
|
3692
|
-
else if(view==='settings'){loadConfig()
|
|
3702
|
+
else if(view==='settings'){loadConfig().then(function(){
|
|
3703
|
+
var notDismissed=localStorage.getItem('memos-team-guide-dismissed')!=='1';
|
|
3704
|
+
var sharingOn=document.getElementById('cfgSharingEnabled');
|
|
3705
|
+
var sharingNotEnabled=!sharingOn||!sharingOn.checked;
|
|
3706
|
+
if(notDismissed&&sharingNotEnabled){
|
|
3707
|
+
switchSettingsTab('hub',document.querySelector('.settings-tab-btn[data-tab="hub"]'));
|
|
3708
|
+
}
|
|
3709
|
+
});loadModelHealth();}
|
|
3693
3710
|
else if(view==='import'){if(!window._migrateRunning) migrateScan(false);}
|
|
3694
3711
|
else if(view==='admin'){loadAdminData();}
|
|
3695
3712
|
}
|
|
@@ -3729,6 +3746,13 @@ function onTaskScopeChange(){
|
|
|
3729
3746
|
|
|
3730
3747
|
var _clientPendingPollTimer=null;
|
|
3731
3748
|
var _lastSharingConnStatus='';
|
|
3749
|
+
function _updateScopeSelectorsVisibility(hubAvailable){
|
|
3750
|
+
var ids=['memorySearchScope','taskSearchScope','skillSearchScope'];
|
|
3751
|
+
for(var i=0;i<ids.length;i++){
|
|
3752
|
+
var el=document.getElementById(ids[i]);
|
|
3753
|
+
if(el) el.style.display=hubAvailable?'':'none';
|
|
3754
|
+
}
|
|
3755
|
+
}
|
|
3732
3756
|
async function loadSharingStatus(forcePending){
|
|
3733
3757
|
try{
|
|
3734
3758
|
const r=await fetch('/api/sharing/status');
|
|
@@ -3741,15 +3765,19 @@ async function loadSharingStatus(forcePending){
|
|
|
3741
3765
|
if(!d||!d.enabled){
|
|
3742
3766
|
if(_clientPendingPollTimer){clearInterval(_clientPendingPollTimer);_clientPendingPollTimer=null;}
|
|
3743
3767
|
_lastSharingConnStatus='';
|
|
3768
|
+
_updateScopeSelectorsVisibility(false);
|
|
3744
3769
|
return;
|
|
3745
3770
|
}
|
|
3746
3771
|
var conn=d.connection||{};
|
|
3747
3772
|
var curStatus=conn.rejected?'rejected':conn.pendingApproval?'pending':conn.connected?'connected':'none';
|
|
3773
|
+
var hubActive=d.role==='hub'||curStatus==='connected';
|
|
3774
|
+
_updateScopeSelectorsVisibility(hubActive);
|
|
3748
3775
|
if(_lastSharingConnStatus==='pending'&&curStatus==='rejected'){
|
|
3749
3776
|
toast(t('sharing.rejected.toast'),'error');
|
|
3750
3777
|
}
|
|
3751
3778
|
if(_lastSharingConnStatus==='pending'&&curStatus==='connected'){
|
|
3752
3779
|
toast(t('sharing.approved.toast'),'success');
|
|
3780
|
+
loadMemories();loadTasks();loadSkills();
|
|
3753
3781
|
}
|
|
3754
3782
|
_lastSharingConnStatus=curStatus;
|
|
3755
3783
|
if(curStatus==='pending'&&!_clientPendingPollTimer){
|
|
@@ -3763,6 +3791,7 @@ async function loadSharingStatus(forcePending){
|
|
|
3763
3791
|
renderSharingSidebar(null);
|
|
3764
3792
|
renderSharingSettings(null);
|
|
3765
3793
|
updateTeamGuide(null);
|
|
3794
|
+
_updateScopeSelectorsVisibility(false);
|
|
3766
3795
|
}
|
|
3767
3796
|
}
|
|
3768
3797
|
|
|
@@ -4090,7 +4119,7 @@ function adminPaginateHtml(total,page,refilterFn){
|
|
|
4090
4119
|
if(end<pages) html+=(end<pages-1?'<span class="pg-info">...</span>':'')+'<button class="pg-btn" onclick="'+refilterFn+'Page('+(pages-1)+')">'+pages+'</button>';
|
|
4091
4120
|
html+='<button class="pg-btn'+(page>=pages-1?' disabled':'')+'" onclick="'+refilterFn+'Page('+(page+1)+')">\\u2192</button>';
|
|
4092
4121
|
html+='<span class="pg-info">'+total+' '+t('pagination.total')+'</span>';
|
|
4093
|
-
|
|
4122
|
+
html+='</div>';
|
|
4094
4123
|
return html;
|
|
4095
4124
|
}
|
|
4096
4125
|
|
|
@@ -4152,12 +4181,12 @@ async function loadAdminData(){
|
|
|
4152
4181
|
var fetches;
|
|
4153
4182
|
if(isAdmin){
|
|
4154
4183
|
fetches=await Promise.all([
|
|
4155
|
-
|
|
4156
|
-
|
|
4157
|
-
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
|
|
4184
|
+
fetch('/api/sharing/users').then(function(r){return r.json();}),
|
|
4185
|
+
fetch('/api/admin/shared-tasks').then(function(r){return r.json();}),
|
|
4186
|
+
fetch('/api/admin/shared-skills').then(function(r){return r.json();}),
|
|
4187
|
+
fetch('/api/sharing/pending-users').then(function(r){return r.json();}),
|
|
4188
|
+
fetch('/api/admin/shared-memories').then(function(r){return r.json();})
|
|
4189
|
+
]);
|
|
4161
4190
|
}else{
|
|
4162
4191
|
fetches=await Promise.all([
|
|
4163
4192
|
Promise.resolve({users:[]}),
|
|
@@ -5392,6 +5421,13 @@ function parseMemoryAddEntries(out){
|
|
|
5392
5421
|
return results;
|
|
5393
5422
|
}
|
|
5394
5423
|
|
|
5424
|
+
function recallOriginBadge(origin){
|
|
5425
|
+
if(origin==='local-shared') return '<span class="recall-origin local-shared">'+t('recall.origin.localShared')+'</span>';
|
|
5426
|
+
if(origin==='hub-memory') return '<span class="recall-origin hub-memory">'+t('recall.origin.hubMemory')+'</span>';
|
|
5427
|
+
if(origin==='hub-remote') return '<span class="recall-origin hub-remote">'+t('recall.origin.hubRemote')+'</span>';
|
|
5428
|
+
return '';
|
|
5429
|
+
}
|
|
5430
|
+
|
|
5395
5431
|
function buildLogSummary(lg){
|
|
5396
5432
|
let inputObj=null;
|
|
5397
5433
|
try{inputObj=JSON.parse(lg.input);}catch(_){}
|
|
@@ -5416,8 +5452,9 @@ function buildLogSummary(lg){
|
|
|
5416
5452
|
var scoreClass=c.score>=0.7?'high':c.score>=0.5?'mid':'low';
|
|
5417
5453
|
var shortText=escapeHtml(c.summary||c.content||c.original_excerpt||'');
|
|
5418
5454
|
var fullText=escapeHtml(c.content||c.original_excerpt||c.summary||'');
|
|
5455
|
+
var oBadge=recallOriginBadge(c.origin);
|
|
5419
5456
|
html+='<div class="recall-item" onclick="event.stopPropagation();this.classList.toggle(\\\'expanded\\\')">';
|
|
5420
|
-
html+='<div class="recall-item-head"><span class="recall-score '+scoreClass+'">'+c.score.toFixed(2)+'</span><span class="log-msg-role '+(c.role||'user')+'">'+(c.role||'user')+'</span
|
|
5457
|
+
html+='<div class="recall-item-head"><span class="recall-score '+scoreClass+'">'+c.score.toFixed(2)+'</span><span class="log-msg-role '+(c.role||'user')+'">'+(c.role||'user')+'</span>'+oBadge+'<span class="recall-summary-short">'+shortText+'</span><span class="recall-expand-icon">\u25B6</span></div>';
|
|
5421
5458
|
html+='<div class="recall-summary-full">'+fullText+'</div>';
|
|
5422
5459
|
html+='</div>';
|
|
5423
5460
|
});
|
|
@@ -5430,8 +5467,9 @@ function buildLogSummary(lg){
|
|
|
5430
5467
|
var scoreClass=f.score>=0.7?'high':f.score>=0.5?'mid':'low';
|
|
5431
5468
|
var shortText=escapeHtml(f.summary||f.content||f.original_excerpt||'');
|
|
5432
5469
|
var fullText=escapeHtml(f.content||f.original_excerpt||f.summary||'');
|
|
5470
|
+
var oBadge=recallOriginBadge(f.origin);
|
|
5433
5471
|
html+='<div class="recall-item" onclick="event.stopPropagation();this.classList.toggle(\\\'expanded\\\')">';
|
|
5434
|
-
html+='<div class="recall-item-head"><span class="recall-score '+scoreClass+'">'+f.score.toFixed(2)+'</span><span class="log-msg-role '+(f.role||'user')+'">'+(f.role||'user')+'</span
|
|
5472
|
+
html+='<div class="recall-item-head"><span class="recall-score '+scoreClass+'">'+f.score.toFixed(2)+'</span><span class="log-msg-role '+(f.role||'user')+'">'+(f.role||'user')+'</span>'+oBadge+'<span class="recall-summary-short">'+shortText+'</span><span class="recall-expand-icon">\u25B6</span></div>';
|
|
5435
5473
|
html+='<div class="recall-summary-full">'+fullText+'</div>';
|
|
5436
5474
|
html+='</div>';
|
|
5437
5475
|
});
|
|
@@ -5495,8 +5533,9 @@ function buildRecallDetailHtml(rd){
|
|
|
5495
5533
|
var scoreClass=c.score>=0.7?'high':c.score>=0.5?'mid':'low';
|
|
5496
5534
|
var shortText=escapeHtml(c.summary||c.content||c.original_excerpt||'');
|
|
5497
5535
|
var fullText=escapeHtml(c.content||c.original_excerpt||c.summary||'');
|
|
5536
|
+
var oBadge=recallOriginBadge(c.origin);
|
|
5498
5537
|
html+='<div class="recall-item" onclick="event.stopPropagation();this.classList.toggle(\\\'expanded\\\')">';
|
|
5499
|
-
html+='<div class="recall-item-head"><span class="recall-idx">'+(i+1)+'</span><span class="recall-score '+scoreClass+'">'+c.score.toFixed(3)+'</span><span class="log-msg-role '+(c.role||'user')+'">'+(c.role||'user')+'</span
|
|
5538
|
+
html+='<div class="recall-item-head"><span class="recall-idx">'+(i+1)+'</span><span class="recall-score '+scoreClass+'">'+c.score.toFixed(3)+'</span><span class="log-msg-role '+(c.role||'user')+'">'+(c.role||'user')+'</span>'+oBadge+'<span class="recall-summary-short">'+shortText+'</span><span class="recall-expand-icon">\u25B6</span></div>';
|
|
5500
5539
|
html+='<div class="recall-summary-full">'+fullText+'</div>';
|
|
5501
5540
|
html+='</div>';
|
|
5502
5541
|
});
|
|
@@ -5510,8 +5549,9 @@ function buildRecallDetailHtml(rd){
|
|
|
5510
5549
|
var scoreClass=f.score>=0.7?'high':f.score>=0.5?'mid':'low';
|
|
5511
5550
|
var shortText=escapeHtml(f.summary||f.content||f.original_excerpt||'');
|
|
5512
5551
|
var fullText=escapeHtml(f.content||f.original_excerpt||f.summary||'');
|
|
5552
|
+
var oBadge=recallOriginBadge(f.origin);
|
|
5513
5553
|
html+='<div class="recall-item" onclick="event.stopPropagation();this.classList.toggle(\\\'expanded\\\')">';
|
|
5514
|
-
html+='<div class="recall-item-head"><span class="recall-idx">'+(i+1)+'</span><span class="recall-score '+scoreClass+'">'+f.score.toFixed(3)+'</span><span class="log-msg-role '+(f.role||'user')+'">'+(f.role||'user')+'</span
|
|
5554
|
+
html+='<div class="recall-item-head"><span class="recall-idx">'+(i+1)+'</span><span class="recall-score '+scoreClass+'">'+f.score.toFixed(3)+'</span><span class="log-msg-role '+(f.role||'user')+'">'+(f.role||'user')+'</span>'+oBadge+'<span class="recall-summary-short">'+shortText+'</span><span class="recall-expand-icon">\u25B6</span></div>';
|
|
5515
5555
|
html+='<div class="recall-summary-full">'+fullText+'</div>';
|
|
5516
5556
|
html+='</div>';
|
|
5517
5557
|
});
|
|
@@ -6717,8 +6757,8 @@ async function saveHubConfig(){
|
|
|
6717
6757
|
if(!td.ok){
|
|
6718
6758
|
var errMsg=td.error==='cannot_join_self'?t('sharing.cannotJoinSelf'):(td.error||t('settings.hub.test.fail'));
|
|
6719
6759
|
done();toast(errMsg,'error');return;
|
|
6720
|
-
|
|
6721
|
-
|
|
6760
|
+
}
|
|
6761
|
+
}catch(e){
|
|
6722
6762
|
done();toast(t('settings.hub.test.fail')+': '+String(e),'error');return;
|
|
6723
6763
|
}
|
|
6724
6764
|
}
|
|
@@ -7539,8 +7579,8 @@ function getFilterParams(){
|
|
|
7539
7579
|
if(scope==='local'){
|
|
7540
7580
|
p.set('owner',_currentAgentOwner);
|
|
7541
7581
|
}else if(scope==='allLocal'){
|
|
7542
|
-
|
|
7543
|
-
|
|
7582
|
+
const owner=document.getElementById('filterOwner').value;
|
|
7583
|
+
if(owner) p.set('owner',owner);
|
|
7544
7584
|
}
|
|
7545
7585
|
return p;
|
|
7546
7586
|
}
|
|
@@ -7570,11 +7610,11 @@ async function loadMemories(page,silent){
|
|
|
7570
7610
|
renderPagination();
|
|
7571
7611
|
}catch(e){
|
|
7572
7612
|
if(!silent){
|
|
7573
|
-
|
|
7574
|
-
|
|
7613
|
+
list.innerHTML='';
|
|
7614
|
+
totalPages=1;totalCount=0;
|
|
7575
7615
|
_lastMemoriesFingerprint='';
|
|
7576
|
-
|
|
7577
|
-
|
|
7616
|
+
renderMemories([]);
|
|
7617
|
+
renderPagination();
|
|
7578
7618
|
}
|
|
7579
7619
|
}
|
|
7580
7620
|
}
|
|
@@ -7601,9 +7641,9 @@ async function loadHubMemories(silent){
|
|
|
7601
7641
|
}catch(e){
|
|
7602
7642
|
if(!silent){
|
|
7603
7643
|
_lastMemoriesFingerprint='';
|
|
7604
|
-
|
|
7605
|
-
|
|
7606
|
-
|
|
7644
|
+
document.getElementById('searchMeta').textContent='0'+t('search.meta.results');
|
|
7645
|
+
renderMemories([]);
|
|
7646
|
+
document.getElementById('pagination').innerHTML='';
|
|
7607
7647
|
}
|
|
7608
7648
|
}
|
|
7609
7649
|
}
|
package/dist/viewer/html.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/viewer/html.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/viewer/html.ts"],"names":[],"mappings":";;AAAA,gCAyoRC;AAzoRD,SAAgB,UAAU,CAAC,aAAsB;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,gCAAgC,aAAa,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qKA0qC8J,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA49OnK,CAAC;AACT,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/viewer/server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/viewer/server.ts"],"names":[],"mappings":"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"}
|
package/dist/viewer/server.js
CHANGED
|
@@ -1357,7 +1357,7 @@ class ViewerServer {
|
|
|
1357
1357
|
});
|
|
1358
1358
|
if (!isLocalShared)
|
|
1359
1359
|
this.store.markMemorySharedLocally(chunkId);
|
|
1360
|
-
if (hubClient.userId) {
|
|
1360
|
+
if (hubClient.userId && this.ctx?.config?.sharing?.role === "hub") {
|
|
1361
1361
|
const existing = this.store.getHubMemoryBySource(hubClient.userId, chunkId);
|
|
1362
1362
|
this.store.upsertHubMemory({
|
|
1363
1363
|
id: response?.memoryId ?? existing?.id ?? node_crypto_1.default.randomUUID(),
|
|
@@ -1929,7 +1929,8 @@ class ViewerServer {
|
|
|
1929
1929
|
localIPs.push("127.0.0.1", "localhost", "0.0.0.0");
|
|
1930
1930
|
try {
|
|
1931
1931
|
const u = new URL(hubUrl);
|
|
1932
|
-
|
|
1932
|
+
const targetPort = u.port || (u.protocol === "https:" ? "443" : "80");
|
|
1933
|
+
if (localIPs.includes(u.hostname) && targetPort === String(this.port)) {
|
|
1933
1934
|
return this.jsonResponse(res, { ok: false, error: "cannot_join_self" });
|
|
1934
1935
|
}
|
|
1935
1936
|
}
|
|
@@ -1938,10 +1939,13 @@ class ViewerServer {
|
|
|
1938
1939
|
const nickname = sharing.client?.nickname;
|
|
1939
1940
|
const username = nickname || os.userInfo().username || "user";
|
|
1940
1941
|
const hostname = os.hostname() || "unknown";
|
|
1942
|
+
const persisted = this.store.getClientHubConnection();
|
|
1943
|
+
const existingIdentityKey = persisted?.identityKey || "";
|
|
1941
1944
|
const result = await (0, hub_1.hubRequestJson)(hubUrl, "", "/api/v1/hub/join", {
|
|
1942
1945
|
method: "POST",
|
|
1943
|
-
body: JSON.stringify({ teamToken, username, deviceName: hostname, reapply: true }),
|
|
1946
|
+
body: JSON.stringify({ teamToken, username, deviceName: hostname, reapply: true, identityKey: existingIdentityKey }),
|
|
1944
1947
|
});
|
|
1948
|
+
const returnedIdentityKey = String(result.identityKey || existingIdentityKey || "");
|
|
1945
1949
|
this.store.setClientHubConnection({
|
|
1946
1950
|
hubUrl,
|
|
1947
1951
|
userId: String(result.userId || ""),
|
|
@@ -1949,6 +1953,8 @@ class ViewerServer {
|
|
|
1949
1953
|
userToken: result.userToken || "",
|
|
1950
1954
|
role: "member",
|
|
1951
1955
|
connectedAt: Date.now(),
|
|
1956
|
+
identityKey: returnedIdentityKey,
|
|
1957
|
+
lastKnownStatus: result.status || "",
|
|
1952
1958
|
});
|
|
1953
1959
|
this.jsonResponse(res, { ok: true, status: result.status || "pending" });
|
|
1954
1960
|
}
|
|
@@ -2244,14 +2250,13 @@ class ViewerServer {
|
|
|
2244
2250
|
},
|
|
2245
2251
|
}),
|
|
2246
2252
|
});
|
|
2247
|
-
|
|
2248
|
-
if (hubUserId) {
|
|
2253
|
+
if (hubClient.userId && this.ctx?.config?.sharing?.role === "hub") {
|
|
2249
2254
|
const now = Date.now();
|
|
2250
|
-
const existing = this.store.getHubMemoryBySource(
|
|
2255
|
+
const existing = this.store.getHubMemoryBySource(hubClient.userId, chunk.id);
|
|
2251
2256
|
this.store.upsertHubMemory({
|
|
2252
2257
|
id: response?.memoryId ?? existing?.id ?? node_crypto_1.default.randomUUID(),
|
|
2253
2258
|
sourceChunkId: chunk.id,
|
|
2254
|
-
sourceUserId:
|
|
2259
|
+
sourceUserId: hubClient.userId,
|
|
2255
2260
|
role: chunk.role,
|
|
2256
2261
|
content: chunk.content,
|
|
2257
2262
|
summary: chunk.summary ?? "",
|
|
@@ -2811,7 +2816,8 @@ class ViewerServer {
|
|
|
2811
2816
|
localIPs.push("127.0.0.1", "localhost", "0.0.0.0");
|
|
2812
2817
|
try {
|
|
2813
2818
|
const u = new URL(addr.startsWith("http") ? addr : `http://${addr}`);
|
|
2814
|
-
|
|
2819
|
+
const targetPort = u.port || (u.protocol === "https:" ? "443" : "80");
|
|
2820
|
+
if (localIPs.includes(u.hostname) && targetPort === String(this.port)) {
|
|
2815
2821
|
res.writeHead(400, { "Content-Type": "application/json" });
|
|
2816
2822
|
res.end(JSON.stringify({ error: "cannot_join_self" }));
|
|
2817
2823
|
return;
|
|
@@ -2835,16 +2841,21 @@ class ViewerServer {
|
|
|
2835
2841
|
const isClient = newEnabled && newRole === "client";
|
|
2836
2842
|
if (wasClient && !isClient) {
|
|
2837
2843
|
this.notifyHubLeave();
|
|
2838
|
-
this.store.
|
|
2839
|
-
|
|
2844
|
+
const oldConn = this.store.getClientHubConnection();
|
|
2845
|
+
if (oldConn) {
|
|
2846
|
+
this.store.setClientHubConnection({ ...oldConn, userToken: "", lastKnownStatus: "left" });
|
|
2847
|
+
}
|
|
2848
|
+
this.log.info("Client hub connection token cleared (sharing disabled or role changed), identity preserved");
|
|
2840
2849
|
}
|
|
2841
|
-
// Detect switching to a different Hub while still in client mode
|
|
2842
2850
|
if (wasClient && isClient) {
|
|
2843
2851
|
const newClientAddr = String(merged.client?.hubAddress || "");
|
|
2844
2852
|
if (newClientAddr && oldClientHubAddress && (0, hub_1.normalizeHubUrl)(newClientAddr) !== (0, hub_1.normalizeHubUrl)(oldClientHubAddress)) {
|
|
2845
2853
|
this.notifyHubLeave();
|
|
2846
|
-
this.store.
|
|
2847
|
-
|
|
2854
|
+
const oldConn = this.store.getClientHubConnection();
|
|
2855
|
+
if (oldConn) {
|
|
2856
|
+
this.store.setClientHubConnection({ ...oldConn, hubUrl: (0, hub_1.normalizeHubUrl)(newClientAddr), userToken: "", lastKnownStatus: "hub_changed" });
|
|
2857
|
+
}
|
|
2858
|
+
this.log.info("Client hub connection token cleared (switched to different Hub), identity preserved");
|
|
2848
2859
|
}
|
|
2849
2860
|
}
|
|
2850
2861
|
if (merged.role === "hub") {
|
|
@@ -2859,9 +2870,11 @@ class ViewerServer {
|
|
|
2859
2870
|
node_fs_1.default.writeFileSync(cfgPath, JSON.stringify(raw, null, 2), "utf-8");
|
|
2860
2871
|
this.log.info("Plugin config updated via Viewer");
|
|
2861
2872
|
this.stopHubHeartbeat();
|
|
2862
|
-
// When switching to client mode,
|
|
2873
|
+
// When switching to client mode or re-enabling sharing as client, send join request
|
|
2863
2874
|
const finalSharing = config.sharing;
|
|
2864
|
-
|
|
2875
|
+
const nowClient = Boolean(finalSharing?.enabled) && finalSharing?.role === "client";
|
|
2876
|
+
const previouslyClient = oldSharingEnabled && oldSharingRole === "client";
|
|
2877
|
+
if (nowClient && !previouslyClient) {
|
|
2865
2878
|
this.autoJoinOnSave(finalSharing).catch(e => this.log.warn(`Auto-join on save failed: ${e}`));
|
|
2866
2879
|
}
|
|
2867
2880
|
this.jsonResponse(res, { ok: true });
|
|
@@ -2884,10 +2897,13 @@ class ViewerServer {
|
|
|
2884
2897
|
const nickname = String(clientCfg?.nickname || "");
|
|
2885
2898
|
const username = nickname || os.userInfo().username || "user";
|
|
2886
2899
|
const hostname = os.hostname() || "unknown";
|
|
2900
|
+
const persisted = this.store.getClientHubConnection();
|
|
2901
|
+
const existingIdentityKey = persisted?.identityKey || "";
|
|
2887
2902
|
const result = await (0, hub_1.hubRequestJson)(hubUrl, "", "/api/v1/hub/join", {
|
|
2888
2903
|
method: "POST",
|
|
2889
|
-
body: JSON.stringify({ teamToken, username, deviceName: hostname }),
|
|
2904
|
+
body: JSON.stringify({ teamToken, username, deviceName: hostname, identityKey: existingIdentityKey }),
|
|
2890
2905
|
});
|
|
2906
|
+
const returnedIdentityKey = String(result.identityKey || existingIdentityKey || "");
|
|
2891
2907
|
this.store.setClientHubConnection({
|
|
2892
2908
|
hubUrl,
|
|
2893
2909
|
userId: String(result.userId || ""),
|
|
@@ -2895,6 +2911,8 @@ class ViewerServer {
|
|
|
2895
2911
|
userToken: result.userToken || "",
|
|
2896
2912
|
role: "member",
|
|
2897
2913
|
connectedAt: Date.now(),
|
|
2914
|
+
identityKey: returnedIdentityKey,
|
|
2915
|
+
lastKnownStatus: result.status || "",
|
|
2898
2916
|
});
|
|
2899
2917
|
this.log.info(`Auto-join on save: status=${result.status}, userId=${result.userId}`);
|
|
2900
2918
|
if (result.userToken) {
|
|
@@ -2989,10 +3007,10 @@ class ViewerServer {
|
|
|
2989
3007
|
}
|
|
2990
3008
|
}
|
|
2991
3009
|
else {
|
|
2992
|
-
const
|
|
2993
|
-
if (
|
|
3010
|
+
const persistedConn = this.store.getClientHubConnection();
|
|
3011
|
+
if (persistedConn) {
|
|
2994
3012
|
this.store.setClientHubConnection({
|
|
2995
|
-
...
|
|
3013
|
+
...persistedConn,
|
|
2996
3014
|
username: result.username,
|
|
2997
3015
|
userToken: result.userToken,
|
|
2998
3016
|
});
|
|
@@ -3022,7 +3040,8 @@ class ViewerServer {
|
|
|
3022
3040
|
const localIPs = this.getLocalIPs();
|
|
3023
3041
|
localIPs.push("127.0.0.1", "localhost", "0.0.0.0");
|
|
3024
3042
|
const parsed = new URL(hubUrl.startsWith("http") ? hubUrl : `http://${hubUrl}`);
|
|
3025
|
-
|
|
3043
|
+
const targetPort = parsed.port || (parsed.protocol === "https:" ? "443" : "80");
|
|
3044
|
+
if (localIPs.includes(parsed.hostname) && targetPort === String(this.port)) {
|
|
3026
3045
|
this.jsonResponse(res, { ok: false, error: "cannot_join_self" });
|
|
3027
3046
|
return;
|
|
3028
3047
|
}
|