Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions $null
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ERROR: Invalid pattern is specified in "path:pattern".
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Empty file added Added
Empty file.
6 changes: 6 additions & 0 deletions InstallationLog.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
************************************* Invoked: Wed May 20 07:24:00 2026
[0] Arguments: C:/Users/ljm37/AppData/Local/Temp/msys2.exe
[2] Operations sanity check succeeded.
[3] Warning: Cannot create lock file "C:\Users\ljm37\AppData\Local\Temp\msys21234865.lock": 另一个程序正在使用此文件,进程无法访问。
(0x00000020)
[21] UnableToStart : Unable to start installer : Another msys2 instance is already running. Wait until it finishes, close it, or restart your system.
Expand Down
17 changes: 17 additions & 0 deletions _read_cli.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
const fs=require('fs');const p=require('path');const h=require('os').homedir();
const c=JSON.parse(fs.readFileSync(p.join(h,'.claude.json'),'utf8'));
console.log('provider:',c.provider);
console.log('baseUrl:',c.baseUrl);
console.log('model:',c.model);
// Check .claude/ for any config
const cd=p.join(h,'.claude');
function check(f){
try{const t=fs.readFileSync(f,'utf8');if(/deepseek|provider|api.?key|base.?url/i.test(t))console.log(f+':',t.substring(0,500))}catch(e){}
}
for(const e of fs.readdirSync(cd,{withFileTypes:true})){
if(e.isFile())check(p.join(cd,e.name));
else if(e.name==='settings'){for(const f of fs.readdirSync(p.join(cd,e.name),{withFileTypes:true})){if(f.isFile())check(p.join(cd,e.name,f.name))}}
}
// Check env
console.log('\nEnv vars:');
['ANTHROPIC_API_KEY','ANTHROPIC_BASE_URL','ANTHROPIC_PROVIDER','ANTHROPIC_MODEL','DEEPSEEK_API_KEY'].forEach(k=>console.log(k+':',process.env[k]?'set':'not set'));
16 changes: 16 additions & 0 deletions _test_exe.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
const{execSync}=require('child_process');
const h=require('os').homedir();
const exe=h+'/AppData/Roaming/npm/node_modules/deepseek-tui/bin/downloads/deepseek.exe';
try{
const r=execSync('"'+exe+'" --version',{encoding:'utf8',timeout:10000});
console.log('Direct exe OK:',r.trim());
}catch(e){
console.log('Direct FAIL:',e.message);
}
// Also try --help
try{
const r=execSync('"'+exe+'" --help',{encoding:'utf8',timeout:10000});
console.log('--help first 500:',r.substring(0,500));
}catch(e){
console.log('--help FAIL:',e.message);
}
27 changes: 27 additions & 0 deletions analyze_claude_paths.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// analyze_claude_paths.js
const fs=require('fs');
const p=require('path');
const h=require('os').homedir();
const pkgDir=p.join(h,'AppData','Roaming','npm','node_modules','@anthropic-ai','claude-code');
console.log('Exists:',fs.existsSync(pkgDir));
if(!fs.existsSync(pkgDir))process.exit(1);
const pkg=JSON.parse(fs.readFileSync(p.join(pkgDir,'package.json'),'utf8'));
console.log('Main:',pkg.main,'Bin:',JSON.stringify(pkg.bin));
const entry=p.join(pkgDir,pkg.bin.claude);
if(fs.existsSync(entry)){
const c=fs.readFileSync(entry,'utf8');
console.log('Entry first 800:',c.substring(0,800));
}
function search(dir,pattern,depth){
if(depth>3||!fs.existsSync(dir))return;
const es=fs.readdirSync(dir,{withFileTypes:true});
for(const e of es){
const f=p.join(dir,e.name);
if(e.isDirectory()&&!e.name.startsWith('node_modules'))search(f,pattern,depth+1);
else if(e.isFile()&&/\.(js|ts|mjs)$/.test(e.name)){
try{const c=fs.readFileSync(f,'utf8');if(c.includes(pattern))console.log(' MATCH:',p.relative(pkgDir,f),'for',pattern)}catch(ex){}
}
}
}
console.log('\n-- Searching dist/ --');
['.claude.json','.claude/skills','homedir','.claude'].forEach(pat=>search(p.join(pkgDir,'dist'),pat,0));
7 changes: 7 additions & 0 deletions build_check.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
@echo off
set MSYS_NO_PATHCONV=1
set MSYS2_ARG_CONV_EXCL=*
set PATH=C:\msys64\mingw64\bin;%PATH%
cd /d "C:\Users\ljm37\DeepSeek Tui"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Hardcoded absolute path detected (C:\Users\ljm37\...). This script will fail on any other machine. Use relative paths or environment variables like %USERPROFILE%.

cd /d "%USERPROFILE%\DeepSeek Tui"

set CARGO_TARGET_DIR=C:\cargo_target
cargo check -p deepseek-tui
9 changes: 9 additions & 0 deletions check_ds.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
const fs=require('fs');const p=require('path');
const z='C:/Users/ljm37/Desktop/deepseek-tui-full.zip';
console.log('File:',fs.existsSync(z),'Size:',(fs.statSync(z).size/(1024*1024)).toFixed(0),'MB');
// Quick check with PowerShell listing
const{execSync}=require('child_process');
try{
const r=execSync('powershell -Command "Add-Type -A System.IO.Compression.FileSystem;[System.IO.Compression.ZipFile]::OpenRead(\\\"'+z+'\\\").Entries|?{$_.Name -match \\\"config|env\\\"}|Select Name,Length|ft -a"',{encoding:'utf8',timeout:15000});
console.log(r);
}catch(e){console.log('list err:',e.message)}
30 changes: 30 additions & 0 deletions check_git.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
const{execSync}=require('child_process');
const fs=require('fs');
const p=require('path');

// Git size check
const gitDir='C:\\Program Files\\Git';
if(fs.existsSync(gitDir)){
function getSize(dir){
let total=0;
try{
const es=fs.readdirSync(dir,{withFileTypes:true});
for(const e of es){
const fp=p.join(dir,e.name);
if(e.isDirectory())total+=getSize(fp);
else total+=fs.statSync(fp).size;
}
}catch(ex){}
return total;
}
const mb=getSize(gitDir)/(1024*1024);
console.log('Git size:',mb.toFixed(0),'MB');

// Show top-level
const es=fs.readdirSync(gitDir,{withFileTypes:true});
es.forEach(e=>console.log(e.isDirectory()?'[DIR]':'[FILE]',e.name));
}

// Check gh
console.log('\ngh CLI:');
try{console.log(execSync('gh --version',{encoding:'utf8'}))}catch(ex){console.log('Not installed')}
22 changes: 22 additions & 0 deletions check_pkg_paths.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
const fs=require('fs');const p=require('path');const h=require('os').homedir();
const pkg=p.join(h,'AppData','Roaming','npm','node_modules','deepseek-tui');
console.log('Package:',fs.existsSync(pkg));
if(fs.existsSync(pkg)){
function getSize(dir){let t=0;for(const e of fs.readdirSync(dir,{withFileTypes:true})){const fp=p.join(dir,e.name);if(e.isDirectory())t+=getSize(fp);else t+=fs.statSync(fp).size}return t}
console.log('Size:',(getSize(pkg)/(1024*1024)).toFixed(1),'MB');
console.log('\nStructure:');
function show(dir,indent){
for(const e of fs.readdirSync(dir,{withFileTypes:true}).slice(0,30)){
const fp=p.join(dir,e.name);
if(e.isDirectory()){console.log(indent+'[DIR]',e.name);show(fp,indent+' ')}
else{const s=fs.statSync(fp).size;console.log(indent+e.name,(s>1024?(s/1024).toFixed(0)+'KB':s+'B'))}
}
}
show(pkg,'');
}
// Check shim binary sizes
console.log('\nShim sizes:');
['deepseek','deepseek.cmd','deepseek-tui','deepseek-tui.cmd'].forEach(f=>{
const fp=p.join(h,'AppData','Roaming','npm',f);
if(fs.existsSync(fp))console.log(f,fs.statSync(fp).size,'bytes');
});
41 changes: 41 additions & 0 deletions check_ports.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
// check_ports.js
const{execSync}=require('child_process');
const ns = execSync('netstat -ano', {encoding:'utf8'});

// Find all unique PIDs with LISTENING
const listening = {};
for (const line of ns.split('\n')) {
if (line.includes('LISTENING')) {
const parts = line.trim().split(/\s+/);
const pid = parts[parts.length - 1];
const addr = parts[1];
if (!listening[pid]) listening[pid] = [];
listening[pid].push(addr);
}
}

// Show clash-related PIDs
const clashPids = ['9796', '6092', '49464'];
console.log('=== Clash-related LISTENING ports ===');
for (const pid of clashPids) {
if (listening[pid]) {
console.log(`PID ${pid}:`);
listening[pid].forEach(a => console.log(' ' + a));
} else {
console.log(`PID ${pid}: NO LISTENING ports`);
}
}

// Show all listening
console.log('\n=== All LISTENING ports ===');
for (const [pid, addrs] of Object.entries(listening)) {
console.log(`PID ${pid}: ${addrs.join(', ')}`);
}

// Check port 9097
console.log('\n=== Connections to 9097 ===');
for (const line of ns.split('\n')) {
if (line.includes(':9097')) {
console.log(line.trim());
}
}
7 changes: 7 additions & 0 deletions check_py.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import importlib
for m in ['openpyxl','pandas','pdfplumber','selenium','playwright','requests','PIL','bs4','lxml','numpy','matplotlib','flask','fastapi']:
try:
importlib.import_module(m)
print(f'{m}: OK')
except:
print(f'{m}: MISS')
35 changes: 35 additions & 0 deletions check_scripts.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// check_scripts.js - Find actual script files in skills
const fs=require('fs');
const p=require('path');
const h=require('os').homedir();
const dirs=[p.join(h,'.claude','skills'),p.join(h,'.agents','skills')];
const scripts=[];
for(const d of dirs){
if(!fs.existsSync(d))continue;
function w(dd,name){
for(const f of fs.readdirSync(dd,{withFileTypes:true})){
const fp=p.join(dd,f.name);
if(f.isDirectory())w(fp,name);
else if(/\.(py|js|sh|bat|ps1)$/.test(f.name)&&!f.name.includes('node_modules')){
const s=fs.statSync(fp).size;
scripts.push({skill:name,file:f.name,path:fp,size:s});
}
}
}
for(const e of fs.readdirSync(d,{withFileTypes:true})){
if(e.isDirectory())w(p.join(d,e.name),e.name);
}
}
scripts.sort((a,b)=>b.size-a.size);
for(const s of scripts){
console.log(`${s.skill}: ${s.file} (${(s.size/1024).toFixed(1)}KB)`);
}
console.log(`\nTotal: ${scripts.length} script files`);

// Categorize by type
const byExt={};
for(const s of scripts){
const ext=p.extname(s.file);
byExt[ext]=(byExt[ext]||0)+1;
}
console.log('\nBy type:',JSON.stringify(byExt));
Loading