Upload 91 files
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .bash_history +148 -0
- .bash_profile +20 -0
- .bashrc +28 -0
- .claude.json +0 -0
- .claude.json.backup +0 -0
- .dockerignore +11 -0
- .env.example +3 -0
- .git-credentials +1 -0
- .gitattributes +1 -0
- .gitconfig +2 -0
- .gitignore +172 -2
- .gtkrc-2.0 +16 -0
- .lmmsrc.xml +23 -0
- .node_repl_history +1 -0
- .npmrc +1 -0
- .steampid +1 -0
- .wget-hsts +5 -0
- .zcompdump-11XlAmdaX-5.9 +2091 -0
- .zcompdump-11XlAmdaX-5.9.zwc +3 -0
- .zsh_history +0 -0
- .zshrc +10 -0
- 9x25dillon_LiMp_ luck +0 -0
- App.tsx +35 -0
- Backup.tsx +11 -0
- CHAOS_RAG_JULIA.md +14 -0
- CONTRIBUTING.md +367 -0
- ConsentPrivacy.tsx +20 -0
- DEPLOYMENT_INSTRUCTIONS.md +204 -0
- Dashboard.tsx +11 -0
- Detail.tsx +10 -0
- Dockerfile +13 -15
- ImportSources.tsx +15 -0
- LICENSE +201 -21
- LICENSE-CODE +21 -0
- List.tsx +10 -0
- Makefile +21 -0
- PersonaBasics.tsx +19 -0
- PrimerPreview.tsx +9 -0
- README.md +27 -304
- ReviewPin.tsx +15 -0
- SECURITY.md +52 -0
- Sfpud.py +1004 -0
- Start.tsx +12 -0
- Studio.tsx +10 -0
- Timeline.tsx +10 -0
- __init__.py +0 -2
- carryon.zip +3 -0
- chaos_rag_single2.zip +3 -0
- config.py +18 -0
- config_16B.json +19 -0
.bash_history
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
ani-cli
|
| 2 |
+
bash
|
| 3 |
+
fa aw
|
| 4 |
+
/
|
| 5 |
+
end
|
| 6 |
+
kill
|
| 7 |
+
kill -sigspec 73a|process
|
| 8 |
+
ls
|
| 9 |
+
bash cursor
|
| 10 |
+
N
|
| 11 |
+
ls
|
| 12 |
+
ls
|
| 13 |
+
start
|
| 14 |
+
B
|
| 15 |
+
#
|
| 16 |
+
cursor
|
| 17 |
+
instal
|
| 18 |
+
install
|
| 19 |
+
#bash
|
| 20 |
+
ls
|
| 21 |
+
cd
|
| 22 |
+
ls
|
| 23 |
+
cd LS
|
| 24 |
+
ls
|
| 25 |
+
cd
|
| 26 |
+
cursor
|
| 27 |
+
ls
|
| 28 |
+
cd /home/kill/
|
| 29 |
+
,
|
| 30 |
+
cursor
|
| 31 |
+
cd /home/kill/aipyapp
|
| 32 |
+
python3 -m venv venv
|
| 33 |
+
# Use bash instead of fish for activation
|
| 34 |
+
bash -c "source venv/bin/activate && pip install loguru && python3 -m aipyapp"
|
| 35 |
+
sudo pacman -S claude-code
|
| 36 |
+
cd /home/kill/aipyapp
|
| 37 |
+
python3 -m aipyapp
|
| 38 |
+
cd /home/kill/
|
| 39 |
+
ls
|
| 40 |
+
cd /home/kill/aipyapp/
|
| 41 |
+
python3 -m aipyapp
|
| 42 |
+
ls
|
| 43 |
+
bash aipyapp
|
| 44 |
+
cd
|
| 45 |
+
cd /claude-code/
|
| 46 |
+
claude --version
|
| 47 |
+
npm install -g @anthropic-ai/claude-code
|
| 48 |
+
claude --version
|
| 49 |
+
which claude
|
| 50 |
+
cd /home/kill/aipyapp
|
| 51 |
+
bash claude
|
| 52 |
+
claude
|
| 53 |
+
export ANTHROPIC_API_KEY="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"
|
| 54 |
+
cd /home/kill/aipyapp
|
| 55 |
+
ls
|
| 56 |
+
git clone https://github.com/9x25dillon/NuRea_sim.git
|
| 57 |
+
claude
|
| 58 |
+
cd /home/kill/aipyapp/KNOWLEDGE-BASE
|
| 59 |
+
python -m uvicorn api.knowledge_api:app --host 0.0.0.0 --port 8888
|
| 60 |
+
sudo docker-compose -f /home/kill/aipyapp/KNOWLEDGE-BASE/docker-compose.yml exec postgres psql -U limps -d limps -c "SELECT current_user;"
|
| 61 |
+
cd /home/kill/aipyapp/KNOWLEDGE-BASE
|
| 62 |
+
python -m uvicorn api.knowledge_api:app --host 0.0.0.0 --port 8888
|
| 63 |
+
cd /home/kill/aipyapp/Eopiez
|
| 64 |
+
python -m venv venv
|
| 65 |
+
venv/bin/pip install fastapi uvicorn httpx aiofiles numpy python-multipart
|
| 66 |
+
PORT=8001 venv/bin/python api.py
|
| 67 |
+
cd /home/kill/aipyapp/9xdSq-LIMPS-FemTO-R1C/limps
|
| 68 |
+
julia --project=. -e 'using LIMPS; LIMPS.start_limps_server(8000)'
|
| 69 |
+
cd /home/kill/aipyapp/KNOWLEDGE-BASE
|
| 70 |
+
python -m uvicorn api.knowledge_api:app --host 0.0.0.0 --port 8888
|
| 71 |
+
bash: vm.swappiness: command not found
|
| 72 |
+
bash: vm.vfs_cache_pressure: command not found
|
| 73 |
+
[kill@11XlAmdaX ~]$ cd /home/kill/aipyapp/KNOWLEDGE-BASE
|
| 74 |
+
python -m uvicorn api.knowledge_api:app --host 0.0.0.0 --port 8888
|
| 75 |
+
/usr/bin/python: No module named uvicorn
|
| 76 |
+
[kill@11XlAmdaX KNOWLEDGE-BASE]$
|
| 77 |
+
cd /home/kill/aipyapp/KNOWLEDGE-BASE && python -m uvicorn api.knowledge_api:app --host 0.0.0.0 --port 8888
|
| 78 |
+
source /home/kill/aipyapp/venv/bin/activate
|
| 79 |
+
cd /home/kill/aipyapp && git push -u origin main
|
| 80 |
+
source /home/kill/aipyapp/venv/bin/activate
|
| 81 |
+
cd /home/kill/aipyapp && git push -u origin main
|
| 82 |
+
source /home/kill/aipyapp/venv/bin/activate
|
| 83 |
+
cd /home/kill/pyzart/backend/musiclib
|
| 84 |
+
wget https://musical-artifacts.com/artifacts/1593/FluidR3_GM.sf2
|
| 85 |
+
source /home/kill/aipyapp/venv/bin/activate
|
| 86 |
+
cd /home/kill/pyzart/backend/musiclib && wget https://github.com/FluidSynth/fluidsynth/raw/master/share/soundfonts/FluidR3_GM.sf2
|
| 87 |
+
sudo pacman -S fluidsynth
|
| 88 |
+
cd /home/kill/pyzart/backend
|
| 89 |
+
cd /home/kill/pyzart/backend/musiclib && cp /usr/share/soundfonts/freepats-general-midi.sf2 FluidR3_GM.sf2
|
| 90 |
+
python -c "
|
| 91 |
+
from musiclib.pyzart import Piano
|
| 92 |
+
piano = Piano()
|
| 93 |
+
print('Testing note generation...')
|
| 94 |
+
note_file = piano.play_note('C4', filename='test_note')
|
| 95 |
+
print(f'Generated: {note_file}')
|
| 96 |
+
"
|
| 97 |
+
source /home/kill/aipyapp/venv/bin/activate
|
| 98 |
+
cd /home/kill/pyzart
|
| 99 |
+
source venv/bin/activate
|
| 100 |
+
cd backend
|
| 101 |
+
python -c "
|
| 102 |
+
from musiclib.pyzart import Piano
|
| 103 |
+
piano = Piano()
|
| 104 |
+
print('Testing note generation...')
|
| 105 |
+
note_file = piano.play_note('C4', filename='test_note')
|
| 106 |
+
print(f'Generated: {note_file}')
|
| 107 |
+
"
|
| 108 |
+
cd /home/kill/pyzart && source venv/bin/activate && cd backend && python -c "
|
| 109 |
+
from musiclib.pyzart import Piano
|
| 110 |
+
piano = Piano()
|
| 111 |
+
print('Testing note generation...')
|
| 112 |
+
note_file = piano.play_note('C4', filename='test_note')
|
| 113 |
+
print(f'Generated: {note_file}')
|
| 114 |
+
"
|
| 115 |
+
cd backend
|
| 116 |
+
python -c "
|
| 117 |
+
from musiclib.pyzart import Piano
|
| 118 |
+
piano = Piano()
|
| 119 |
+
print('Testing note generation...')
|
| 120 |
+
note_file = piano.play_note('C4', filename='test_note')
|
| 121 |
+
print(f'Generated: {note_file}')
|
| 122 |
+
"
|
| 123 |
+
cd /home/kill/pyzart
|
| 124 |
+
source venv/bin/activate
|
| 125 |
+
cd backend
|
| 126 |
+
python -c "
|
| 127 |
+
from musiclib.pyzart import Piano
|
| 128 |
+
piano = Piano()
|
| 129 |
+
print('Testing note generation...')
|
| 130 |
+
note_file = piano.play_note('C4', filename='test_note')
|
| 131 |
+
print(f'Generated: {note_file}')
|
| 132 |
+
"
|
| 133 |
+
source /home/kill/aipyapp/venv/bin/activate
|
| 134 |
+
cd /home/kill/pyzart/backend
|
| 135 |
+
python aipyapp_symphony.py
|
| 136 |
+
python aipyapp_symphony.py
|
| 137 |
+
claude
|
| 138 |
+
source /home/kill/aipyapp/venv/bin/activate
|
| 139 |
+
# Verify configuration loaded
|
| 140 |
+
echo $NODE_OPTIONS
|
| 141 |
+
# Check available memory
|
| 142 |
+
free -h
|
| 143 |
+
# Monitor Cursor processes
|
| 144 |
+
ps aux | grep cursor
|
| 145 |
+
# Restart Cursor to apply memory settings
|
| 146 |
+
cursor --new-window
|
| 147 |
+
source /home/kill/aipyapp/venv/bin/activate
|
| 148 |
+
echo 'source /home/kill/.cursor-server/memory-config-64gb.sh' >> ~/.config/fish/config.fish
|
.bash_profile
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#
|
| 2 |
+
# ~/.bash_profile
|
| 3 |
+
#
|
| 4 |
+
|
| 5 |
+
[[ -f ~/.bashrc ]] && . ~/.bashrc
|
| 6 |
+
|
| 7 |
+
# >>> juliaup initialize >>>
|
| 8 |
+
|
| 9 |
+
# !! Contents within this block are managed by juliaup !!
|
| 10 |
+
|
| 11 |
+
case ":$PATH:" in
|
| 12 |
+
*:/home/kill/.juliaup/bin:*)
|
| 13 |
+
;;
|
| 14 |
+
|
| 15 |
+
*)
|
| 16 |
+
export PATH=/home/kill/.juliaup/bin${PATH:+:${PATH}}
|
| 17 |
+
;;
|
| 18 |
+
esac
|
| 19 |
+
|
| 20 |
+
# <<< juliaup initialize <<<
|
.bashrc
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#
|
| 2 |
+
# ~/.bashrc
|
| 3 |
+
#
|
| 4 |
+
|
| 5 |
+
# If not running interactively, don't do anything
|
| 6 |
+
[[ $- != *i* ]] && return
|
| 7 |
+
|
| 8 |
+
alias ls='ls --color=auto'
|
| 9 |
+
alias grep='grep --color=auto'
|
| 10 |
+
PS1='[\u@\h \W]\$ '
|
| 11 |
+
|
| 12 |
+
# >>> juliaup initialize >>>
|
| 13 |
+
|
| 14 |
+
# !! Contents within this block are managed by juliaup !!
|
| 15 |
+
|
| 16 |
+
case ":$PATH:" in
|
| 17 |
+
*:/home/kill/.juliaup/bin:*)
|
| 18 |
+
;;
|
| 19 |
+
|
| 20 |
+
*)
|
| 21 |
+
export PATH=/home/kill/.juliaup/bin${PATH:+:${PATH}}
|
| 22 |
+
;;
|
| 23 |
+
esac
|
| 24 |
+
|
| 25 |
+
# <<< juliaup initialize <<<
|
| 26 |
+
vm.swappiness = 10
|
| 27 |
+
vm.vfs_cache_pressure = 50
|
| 28 |
+
export PATH=~/.npm-global/bin:$PATH
|
.claude.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
.claude.json.backup
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
.dockerignore
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# VCS
|
| 2 |
+
.git
|
| 3 |
+
.gitignore
|
| 4 |
+
|
| 5 |
+
# Caches
|
| 6 |
+
.julia
|
| 7 |
+
.julia_compiled
|
| 8 |
+
|
| 9 |
+
# Local artifacts
|
| 10 |
+
julia-portable
|
| 11 |
+
julia.tar.gz
|
.env.example
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
CARRYON_DB_URL=sqlite:///data/carryon.db
|
| 2 |
+
CARRYON_EMBEDDINGS_MODEL=sentence-transformers/all-MiniLM-L6-v2
|
| 3 |
+
CARRYON_FAISS_INDEX_PATH=data/faiss.index
|
.git-credentials
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://9x25dillon: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@github.com
|
.gitattributes
CHANGED
|
@@ -35,3 +35,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
cognitive_communication_organism.cpython-313.pyc filter=lfs diff=lfs merge=lfs -text
|
| 37 |
Cursor-1.6.45-x86_64.appimage filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
cognitive_communication_organism.cpython-313.pyc filter=lfs diff=lfs merge=lfs -text
|
| 37 |
Cursor-1.6.45-x86_64.appimage filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
.zcompdump-11XlAmdaX-5.9.zwc filter=lfs diff=lfs merge=lfs -text
|
.gitconfig
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[credential]
|
| 2 |
+
helper = store
|
.gitignore
CHANGED
|
@@ -1,2 +1,172 @@
|
|
| 1 |
-
#
|
| 2 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Byte-compiled / optimized / DLL files
|
| 2 |
+
__pycache__/
|
| 3 |
+
*.py[cod]
|
| 4 |
+
*$py.class
|
| 5 |
+
|
| 6 |
+
# C extensions
|
| 7 |
+
*.so
|
| 8 |
+
|
| 9 |
+
# Distribution / packaging
|
| 10 |
+
.Python
|
| 11 |
+
build/
|
| 12 |
+
develop-eggs/
|
| 13 |
+
dist/
|
| 14 |
+
downloads/
|
| 15 |
+
eggs/
|
| 16 |
+
.eggs/
|
| 17 |
+
lib/
|
| 18 |
+
lib64/
|
| 19 |
+
parts/
|
| 20 |
+
sdist/
|
| 21 |
+
var/
|
| 22 |
+
wheels/
|
| 23 |
+
share/python-wheels/
|
| 24 |
+
*.egg-info/
|
| 25 |
+
.installed.cfg
|
| 26 |
+
*.egg
|
| 27 |
+
MANIFEST
|
| 28 |
+
|
| 29 |
+
# PyInstaller
|
| 30 |
+
# Usually these files are written by a python script from a template
|
| 31 |
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
| 32 |
+
*.manifest
|
| 33 |
+
*.spec
|
| 34 |
+
|
| 35 |
+
# Installer logs
|
| 36 |
+
pip-log.txt
|
| 37 |
+
pip-delete-this-directory.txt
|
| 38 |
+
|
| 39 |
+
# Unit test / coverage reports
|
| 40 |
+
htmlcov/
|
| 41 |
+
.tox/
|
| 42 |
+
.nox/
|
| 43 |
+
.coverage
|
| 44 |
+
.coverage.*
|
| 45 |
+
.cache
|
| 46 |
+
nosetests.xml
|
| 47 |
+
coverage.xml
|
| 48 |
+
*.cover
|
| 49 |
+
*.py,cover
|
| 50 |
+
.hypothesis/
|
| 51 |
+
.pytest_cache/
|
| 52 |
+
cover/
|
| 53 |
+
|
| 54 |
+
# Translations
|
| 55 |
+
*.mo
|
| 56 |
+
*.pot
|
| 57 |
+
|
| 58 |
+
# Django stuff:
|
| 59 |
+
*.log
|
| 60 |
+
local_settings.py
|
| 61 |
+
db.sqlite3
|
| 62 |
+
db.sqlite3-journal
|
| 63 |
+
|
| 64 |
+
# Flask stuff:
|
| 65 |
+
instance/
|
| 66 |
+
.webassets-cache
|
| 67 |
+
|
| 68 |
+
# Scrapy stuff:
|
| 69 |
+
.scrapy
|
| 70 |
+
|
| 71 |
+
# Sphinx documentation
|
| 72 |
+
docs/_build/
|
| 73 |
+
|
| 74 |
+
# PyBuilder
|
| 75 |
+
.pybuilder/
|
| 76 |
+
target/
|
| 77 |
+
|
| 78 |
+
# Jupyter Notebook
|
| 79 |
+
.ipynb_checkpoints
|
| 80 |
+
|
| 81 |
+
# IPython
|
| 82 |
+
profile_default/
|
| 83 |
+
ipython_config.py
|
| 84 |
+
|
| 85 |
+
# pyenv
|
| 86 |
+
# For a library or package, you might want to ignore these files since the code is
|
| 87 |
+
# intended to run in multiple environments; otherwise, check them in:
|
| 88 |
+
# .python-version
|
| 89 |
+
|
| 90 |
+
# pipenv
|
| 91 |
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
| 92 |
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
| 93 |
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
| 94 |
+
# install all needed dependencies.
|
| 95 |
+
#Pipfile.lock
|
| 96 |
+
|
| 97 |
+
# UV
|
| 98 |
+
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
| 99 |
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
| 100 |
+
# commonly ignored for libraries.
|
| 101 |
+
#uv.lock
|
| 102 |
+
|
| 103 |
+
# poetry
|
| 104 |
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
| 105 |
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
| 106 |
+
# commonly ignored for libraries.
|
| 107 |
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
| 108 |
+
#poetry.lock
|
| 109 |
+
|
| 110 |
+
# pdm
|
| 111 |
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
| 112 |
+
#pdm.lock
|
| 113 |
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
| 114 |
+
# in version control.
|
| 115 |
+
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
|
| 116 |
+
.pdm.toml
|
| 117 |
+
.pdm-python
|
| 118 |
+
.pdm-build/
|
| 119 |
+
|
| 120 |
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
| 121 |
+
__pypackages__/
|
| 122 |
+
|
| 123 |
+
# Celery stuff
|
| 124 |
+
celerybeat-schedule
|
| 125 |
+
celerybeat.pid
|
| 126 |
+
|
| 127 |
+
# SageMath parsed files
|
| 128 |
+
*.sage.py
|
| 129 |
+
|
| 130 |
+
# Environments
|
| 131 |
+
.env
|
| 132 |
+
.venv
|
| 133 |
+
env/
|
| 134 |
+
venv/
|
| 135 |
+
ENV/
|
| 136 |
+
env.bak/
|
| 137 |
+
venv.bak/
|
| 138 |
+
|
| 139 |
+
# Spyder project settings
|
| 140 |
+
.spyderproject
|
| 141 |
+
.spyproject
|
| 142 |
+
|
| 143 |
+
# Rope project settings
|
| 144 |
+
.ropeproject
|
| 145 |
+
|
| 146 |
+
# mkdocs documentation
|
| 147 |
+
/site
|
| 148 |
+
|
| 149 |
+
# mypy
|
| 150 |
+
.mypy_cache/
|
| 151 |
+
.dmypy.json
|
| 152 |
+
dmypy.json
|
| 153 |
+
|
| 154 |
+
# Pyre type checker
|
| 155 |
+
.pyre/
|
| 156 |
+
|
| 157 |
+
# pytype static type analyzer
|
| 158 |
+
.pytype/
|
| 159 |
+
|
| 160 |
+
# Cython debug symbols
|
| 161 |
+
cython_debug/
|
| 162 |
+
|
| 163 |
+
# PyCharm
|
| 164 |
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
| 165 |
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
| 166 |
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
| 167 |
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
| 168 |
+
#.idea/
|
| 169 |
+
|
| 170 |
+
.vscode/*
|
| 171 |
+
|
| 172 |
+
.DS_Store
|
.gtkrc-2.0
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
gtk-enable-event-sounds=0
|
| 2 |
+
gtk-enable-animations=0
|
| 3 |
+
gtk-theme-name="cachyos-nord"
|
| 4 |
+
gtk-primary-button-warps-slider=1
|
| 5 |
+
gtk-toolbar-style=3
|
| 6 |
+
gtk-menu-images=1
|
| 7 |
+
gtk-button-images=1
|
| 8 |
+
gtk-cursor-blink-time=1000
|
| 9 |
+
gtk-cursor-blink=1
|
| 10 |
+
gtk-cursor-theme-size=72
|
| 11 |
+
gtk-cursor-theme-name="satania_cursor"
|
| 12 |
+
gtk-sound-theme-name="ocean"
|
| 13 |
+
gtk-icon-theme-name="Chameleon-Symbolic-Dark-Icons"
|
| 14 |
+
gtk-font-name="DejaVu Sans, 10"
|
| 15 |
+
|
| 16 |
+
gtk-modules=appmenu-gtk-module
|
.lmmsrc.xml
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!DOCTYPE lmms-config-file>
|
| 3 |
+
<lmms version="1.2.2">
|
| 4 |
+
<MidiAlsaRaw device="default"/>
|
| 5 |
+
<MidiJack device="lmms"/>
|
| 6 |
+
<Midialsaseq device="default"/>
|
| 7 |
+
<app disablebackup="0" configured="1" displaydbfs="0" language="en" nommpz="0" openlastproject="0" nanhandler="1" nomsgaftersetup="0"/>
|
| 8 |
+
<audioalsa device="null" channels="2"/>
|
| 9 |
+
<audiojack clientname="lmms" channels="2"/>
|
| 10 |
+
<audiooss device="/dev/dsp" channels="2"/>
|
| 11 |
+
<audiopa device="default" channels="2"/>
|
| 12 |
+
<audioportaudio device="" backend=""/>
|
| 13 |
+
<audiosdl device=""/>
|
| 14 |
+
<audiosoundio backend="PulseAudio" out_device_raw="no" out_device_id="alsa_output.usb-Turtle_Beach_Corp_Stealth_600X_Gen_3_0000000000000000-00.analog-stereo"/>
|
| 15 |
+
<midioss device="/dev/midi"/>
|
| 16 |
+
<mixer framesperaudiobuffer="6912" audiodev="SDL (Simple DirectMedia Layer)" mididev="ALSA Raw-MIDI (Advanced Linux Sound Architecture)" hqaudio="1"/>
|
| 17 |
+
<paths vstdir="/home/kill/Documents/lmms/plugins/vst/" sf2dir="/home/kill/Documents/lmms/samples/soundfonts/" laddir="/home/kill/Documents/lmms/plugins/ladspa/" stkdir="/usr/share/stk/rawwaves/" backgroundartwork="" gigdir="/home/kill/Documents/lmms/samples/gig/" workingdir="/home/kill/Documents/lmms/" defaultsf2="" artwork="data:/themes/default/"/>
|
| 18 |
+
<tooltips disabled="0"/>
|
| 19 |
+
<ui smoothscroll="0" enableautosave="1" saveinterval="2" enablerunningautosave="0" oneinstrumenttrackwindow="0" printnotelabels="0" animateafp="1" compacttrackbuttons="0" syncvstplugins="1" vstalwaysontop="0" disableautoquit="1" vstembedmethod="none" displaywaveform="1"/>
|
| 20 |
+
<recentfiles>
|
| 21 |
+
<file path="data:/projects/templates/default.mpt"/>
|
| 22 |
+
</recentfiles>
|
| 23 |
+
</lmms>
|
.node_repl_history
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
cd
|
.npmrc
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
prefix=~/.npm-global
|
.steampid
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
32373
|
.wget-hsts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# HSTS 1.0 Known Hosts database for GNU Wget.
|
| 2 |
+
# Edit at your own risk.
|
| 3 |
+
# <hostname> <port> <incl. subdomains> <created> <max-age>
|
| 4 |
+
raw.githubusercontent.com 0 0 1759674098 31536000
|
| 5 |
+
github.com 0 1 1759665145 31536000
|
.zcompdump-11XlAmdaX-5.9
ADDED
|
@@ -0,0 +1,2091 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#files: 1009 version: 5.9
|
| 2 |
+
|
| 3 |
+
_comps=(
|
| 4 |
+
'-' '_precommand'
|
| 5 |
+
'.' '_source'
|
| 6 |
+
'5g' '_go'
|
| 7 |
+
'5l' '_go'
|
| 8 |
+
'6g' '_go'
|
| 9 |
+
'6l' '_go'
|
| 10 |
+
'8g' '_go'
|
| 11 |
+
'8l' '_go'
|
| 12 |
+
'a2ps' '_a2ps'
|
| 13 |
+
'aaaa' '_hosts'
|
| 14 |
+
'aap' '_aap'
|
| 15 |
+
'abcde' '_abcde'
|
| 16 |
+
'ack' '_ack'
|
| 17 |
+
'ack2' '_ack'
|
| 18 |
+
'ack-grep' '_ack'
|
| 19 |
+
'ack-standalone' '_ack'
|
| 20 |
+
'acpi' '_acpi'
|
| 21 |
+
'acpitool' '_acpitool'
|
| 22 |
+
'acroread' '_acroread'
|
| 23 |
+
'adb' '_adb'
|
| 24 |
+
'add-zle-hook-widget' '_add-zle-hook-widget'
|
| 25 |
+
'add-zsh-hook' '_add-zsh-hook'
|
| 26 |
+
'admin' '_sccs'
|
| 27 |
+
'afew' '_afew'
|
| 28 |
+
'alacritty' '_alacritty'
|
| 29 |
+
'ali' '_mh'
|
| 30 |
+
'alias' '_alias'
|
| 31 |
+
'amaya' '_webbrowser'
|
| 32 |
+
'analyseplugin' '_analyseplugin'
|
| 33 |
+
'android' '_android'
|
| 34 |
+
'animate' '_imagemagick'
|
| 35 |
+
'anno' '_mh'
|
| 36 |
+
'ansible' '_ansible'
|
| 37 |
+
'ansible-config' '_ansible'
|
| 38 |
+
'ansible-console' '_ansible'
|
| 39 |
+
'ansible-doc' '_ansible'
|
| 40 |
+
'ansible-galaxy' '_ansible'
|
| 41 |
+
'ansible-inventory' '_ansible'
|
| 42 |
+
'ansible-playbook' '_ansible'
|
| 43 |
+
'ansible-pull' '_ansible'
|
| 44 |
+
'ansible-vault' '_ansible'
|
| 45 |
+
'ant' '_ant'
|
| 46 |
+
'antiword' '_antiword'
|
| 47 |
+
'aodh' '_openstack'
|
| 48 |
+
'aoss' '_precommand'
|
| 49 |
+
'apache2ctl' '_apachectl'
|
| 50 |
+
'apachectl' '_apachectl'
|
| 51 |
+
'aplay' '_alsa-utils'
|
| 52 |
+
'apm' '_apm'
|
| 53 |
+
'appletviewer' '_java'
|
| 54 |
+
'apropos' '_man'
|
| 55 |
+
'apvlv' '_pdf'
|
| 56 |
+
'arch-chroot' '_arch-chroot'
|
| 57 |
+
'archlinux-java' '_archlinux-java'
|
| 58 |
+
'arduino-ctags' '_ctags'
|
| 59 |
+
'arecord' '_alsa-utils'
|
| 60 |
+
'arena' '_webbrowser'
|
| 61 |
+
'_arguments' '__arguments'
|
| 62 |
+
'arp' '_arp'
|
| 63 |
+
'arping' '_arping'
|
| 64 |
+
'-array-value-' '_value'
|
| 65 |
+
'artisan' '_artisan'
|
| 66 |
+
'asciidoctor' '_asciidoctor'
|
| 67 |
+
'asciinema' '_asciinema'
|
| 68 |
+
'ash' '_sh'
|
| 69 |
+
'-assign-parameter-' '_assign'
|
| 70 |
+
'at' '_at'
|
| 71 |
+
'atach' '_atach'
|
| 72 |
+
'atq' '_at'
|
| 73 |
+
'atrm' '_at'
|
| 74 |
+
'attr' '_attr'
|
| 75 |
+
'augtool' '_augeas'
|
| 76 |
+
'autoload' '_typeset'
|
| 77 |
+
'avahi-browse' '_avahi'
|
| 78 |
+
'avahi-browse-domains' '_avahi'
|
| 79 |
+
'avahi-resolve' '_avahi'
|
| 80 |
+
'avahi-resolve-address' '_avahi'
|
| 81 |
+
'avahi-resolve-host-name' '_avahi'
|
| 82 |
+
'avdmanager' '_avdmanager'
|
| 83 |
+
'awk' '_awk'
|
| 84 |
+
'b2sum' '_md5sum'
|
| 85 |
+
'barbican' '_openstack'
|
| 86 |
+
'base32' '_base64'
|
| 87 |
+
'base64' '_base64'
|
| 88 |
+
'basename' '_basename'
|
| 89 |
+
'basenc' '_basenc'
|
| 90 |
+
'bash' '_bash'
|
| 91 |
+
'bat' '_bat'
|
| 92 |
+
'batch' '_at'
|
| 93 |
+
'baz' '_baz'
|
| 94 |
+
'beep' '_beep'
|
| 95 |
+
'bg' '_jobs_bg'
|
| 96 |
+
'bibtex' '_bibtex'
|
| 97 |
+
'bindkey' '_bindkey'
|
| 98 |
+
'bison' '_bison'
|
| 99 |
+
'bitcoin-cli' '_bitcoin-cli'
|
| 100 |
+
'bluetoothctl' '_bluetoothctl'
|
| 101 |
+
'bmake' '_make'
|
| 102 |
+
'bogofilter' '_bogofilter'
|
| 103 |
+
'bogotune' '_bogofilter'
|
| 104 |
+
'bogoutil' '_bogofilter'
|
| 105 |
+
'bootctl' '_bootctl'
|
| 106 |
+
'bower' '_bower'
|
| 107 |
+
'bpython' '_bpython'
|
| 108 |
+
'bpython2' '_bpython'
|
| 109 |
+
'bpython2-gtk' '_bpython'
|
| 110 |
+
'bpython2-urwid' '_bpython'
|
| 111 |
+
'bpython3' '_bpython'
|
| 112 |
+
'bpython3-gtk' '_bpython'
|
| 113 |
+
'bpython3-urwid' '_bpython'
|
| 114 |
+
'bpython-gtk' '_bpython'
|
| 115 |
+
'bpython-urwid' '_bpython'
|
| 116 |
+
'-brace-parameter-' '_brace_parameter'
|
| 117 |
+
'brctl' '_brctl'
|
| 118 |
+
'bsdgrep' '_grep'
|
| 119 |
+
'bsdtar' '_tar'
|
| 120 |
+
'btdownloadcurses' '_bittorrent'
|
| 121 |
+
'btdownloadgui' '_bittorrent'
|
| 122 |
+
'btdownloadheadless' '_bittorrent'
|
| 123 |
+
'btlaunchmany' '_bittorrent'
|
| 124 |
+
'btlaunchmanycurses' '_bittorrent'
|
| 125 |
+
'btmakemetafile' '_bittorrent'
|
| 126 |
+
'btreannounce' '_bittorrent'
|
| 127 |
+
'btrename' '_bittorrent'
|
| 128 |
+
'btrfs' '_btrfs'
|
| 129 |
+
'btshowmetainfo' '_bittorrent'
|
| 130 |
+
'bttrack' '_bittorrent'
|
| 131 |
+
'buildhash' '_ispell'
|
| 132 |
+
'builtin' '_builtin'
|
| 133 |
+
'bundle' '_bundle'
|
| 134 |
+
'bunzip2' '_bzip2'
|
| 135 |
+
'burst' '_mh'
|
| 136 |
+
'busctl' '_busctl'
|
| 137 |
+
'bwrap' '_bwrap'
|
| 138 |
+
'bzcat' '_bzip2'
|
| 139 |
+
'bzegrep' '_grep'
|
| 140 |
+
'bzfgrep' '_grep'
|
| 141 |
+
'bzgrep' '_grep'
|
| 142 |
+
'bzip2' '_bzip2'
|
| 143 |
+
'bzip2recover' '_bzip2'
|
| 144 |
+
'bzr' '_bzr'
|
| 145 |
+
'c++' '_gcc'
|
| 146 |
+
'cabal' '_cabal'
|
| 147 |
+
'cal' '_cal'
|
| 148 |
+
'calendar' '_calendar'
|
| 149 |
+
'cap' '_cap'
|
| 150 |
+
'cargo' '_cargo'
|
| 151 |
+
'cask' '_cask'
|
| 152 |
+
'cat' '_cat'
|
| 153 |
+
'catchsegv' '_precommand'
|
| 154 |
+
'cc' '_gcc'
|
| 155 |
+
'ccache' '_ccache'
|
| 156 |
+
'ccal' '_ccal'
|
| 157 |
+
'cd' '_cd'
|
| 158 |
+
'cdc' '_sccs'
|
| 159 |
+
'cdcd' '_cdcd'
|
| 160 |
+
'cdr' '_cdr'
|
| 161 |
+
'cdrdao' '_cdrdao'
|
| 162 |
+
'cdrecord' '_cdrecord'
|
| 163 |
+
'ceilometer' '_openstack'
|
| 164 |
+
'certtool' '_gnutls'
|
| 165 |
+
'cf' '_cf'
|
| 166 |
+
'cftp' '_twisted'
|
| 167 |
+
'chage' '_users'
|
| 168 |
+
'chattr' '_chattr'
|
| 169 |
+
'chcon' '_chcon'
|
| 170 |
+
'chdir' '_cd'
|
| 171 |
+
'checkupdates' '_checkupdates'
|
| 172 |
+
'chfn' '_users'
|
| 173 |
+
'chgrp' '_chown'
|
| 174 |
+
'chimera' '_webbrowser'
|
| 175 |
+
'chkconfig' '_chkconfig'
|
| 176 |
+
'chkstow' '_stow'
|
| 177 |
+
'chmod' '_chmod'
|
| 178 |
+
'choc' '_choc'
|
| 179 |
+
'choom' '_choom'
|
| 180 |
+
'chown' '_chown'
|
| 181 |
+
'chpass' '_chsh'
|
| 182 |
+
'chromium' '_chromium'
|
| 183 |
+
'chroot' '_chroot'
|
| 184 |
+
'chrt' '_chrt'
|
| 185 |
+
'chsh' '_chsh'
|
| 186 |
+
'chwd' '_chwd'
|
| 187 |
+
'ci' '_rcs'
|
| 188 |
+
'cifsiostat' '_sysstat'
|
| 189 |
+
'cinder' '_openstack'
|
| 190 |
+
'ckeygen' '_twisted'
|
| 191 |
+
'cksum' '_cksum'
|
| 192 |
+
'clang' '_gcc'
|
| 193 |
+
'clang++' '_gcc'
|
| 194 |
+
'clang-check' '_clang-check'
|
| 195 |
+
'clang-format' '_clang-format'
|
| 196 |
+
'clang-tidy' '_clang-tidy'
|
| 197 |
+
'clay' '_clay'
|
| 198 |
+
'clear' '_nothing'
|
| 199 |
+
'cloudkitty' '_openstack'
|
| 200 |
+
'clusterdb' '_postgresql'
|
| 201 |
+
'cmake' '_cmake'
|
| 202 |
+
'cmp' '_cmp'
|
| 203 |
+
'co' '_rcs'
|
| 204 |
+
'code' '_code'
|
| 205 |
+
'code-oss' '_code-oss'
|
| 206 |
+
'coffee' '_coffee'
|
| 207 |
+
'column' '_column'
|
| 208 |
+
'comb' '_sccs'
|
| 209 |
+
'combine' '_imagemagick'
|
| 210 |
+
'combinediff' '_patchutils'
|
| 211 |
+
'comm' '_comm'
|
| 212 |
+
'-command-' '_autocd'
|
| 213 |
+
'command' '_command'
|
| 214 |
+
'-command-line-' '_normal'
|
| 215 |
+
'comp' '_mh'
|
| 216 |
+
'compadd' '_compadd'
|
| 217 |
+
'compdef' '_compdef'
|
| 218 |
+
'composer' '_composer'
|
| 219 |
+
'composer.phar' '_composer'
|
| 220 |
+
'composite' '_imagemagick'
|
| 221 |
+
'compress' '_compress'
|
| 222 |
+
'conan' '_conan'
|
| 223 |
+
'conch' '_twisted'
|
| 224 |
+
'concourse' '_concourse'
|
| 225 |
+
'-condition-' '_condition'
|
| 226 |
+
'config.status' '_configure'
|
| 227 |
+
'configure' '_configure'
|
| 228 |
+
'console' '_console'
|
| 229 |
+
'convert' '_imagemagick'
|
| 230 |
+
'coredumpctl' '_coredumpctl'
|
| 231 |
+
'cowsay' '_cowsay'
|
| 232 |
+
'cowthink' '_cowsay'
|
| 233 |
+
'cp' '_cp'
|
| 234 |
+
'cpio' '_cpio'
|
| 235 |
+
'cplay' '_cplay'
|
| 236 |
+
'cppcheck' '_cppcheck'
|
| 237 |
+
'cpupower' '_cpupower'
|
| 238 |
+
'createdb' '_pgsql_utils'
|
| 239 |
+
'createuser' '_pgsql_utils'
|
| 240 |
+
'crontab' '_crontab'
|
| 241 |
+
'crsh' '_cssh'
|
| 242 |
+
'cryptsetup' '_cryptsetup'
|
| 243 |
+
'cscope' '_cscope'
|
| 244 |
+
'csh' '_sh'
|
| 245 |
+
'csplit' '_csplit'
|
| 246 |
+
'cssh' '_cssh'
|
| 247 |
+
'ctags' '_ctags'
|
| 248 |
+
'ctags-exuberant' '_ctags'
|
| 249 |
+
'ctags-universal' '_ctags'
|
| 250 |
+
'ctr' '_ctr'
|
| 251 |
+
'curl' '_curl'
|
| 252 |
+
'cut' '_cut'
|
| 253 |
+
'cvs' '_cvs'
|
| 254 |
+
'dad' '_dad'
|
| 255 |
+
'darcs' '_darcs'
|
| 256 |
+
'dart' '_dart'
|
| 257 |
+
'dash' '_sh'
|
| 258 |
+
'date' '_date'
|
| 259 |
+
'dbus-launch' '_dbus'
|
| 260 |
+
'dbus-monitor' '_dbus'
|
| 261 |
+
'dbus-send' '_dbus'
|
| 262 |
+
'dconf' '_dconf'
|
| 263 |
+
'dcop' '_dcop'
|
| 264 |
+
'dcopclient' '_dcop'
|
| 265 |
+
'dcopfind' '_dcop'
|
| 266 |
+
'dcopobject' '_dcop'
|
| 267 |
+
'dcopref' '_dcop'
|
| 268 |
+
'dcopstart' '_dcop'
|
| 269 |
+
'dd' '_dd'
|
| 270 |
+
'declare' '_typeset'
|
| 271 |
+
'-default-' '_default'
|
| 272 |
+
'delta' '_sccs'
|
| 273 |
+
'designate' '_openstack'
|
| 274 |
+
'devtodo' '_devtodo'
|
| 275 |
+
'df' '_df'
|
| 276 |
+
'dget' '_dget'
|
| 277 |
+
'dhclient' '_dhclient'
|
| 278 |
+
'dhclient3' '_dhclient'
|
| 279 |
+
'dhcpcd' '_dhcpcd'
|
| 280 |
+
'diana' '_diana'
|
| 281 |
+
'dict' '_dict'
|
| 282 |
+
'diff' '_diff'
|
| 283 |
+
'diff3' '_diff3'
|
| 284 |
+
'diffstat' '_diffstat'
|
| 285 |
+
'dig' '_dig'
|
| 286 |
+
'dillo' '_webbrowser'
|
| 287 |
+
'dircmp' '_directories'
|
| 288 |
+
'direnv' '_direnv'
|
| 289 |
+
'dirs' '_dirs'
|
| 290 |
+
'disable' '_disable'
|
| 291 |
+
'disown' '_jobs_fg'
|
| 292 |
+
'display' '_imagemagick'
|
| 293 |
+
'dist' '_mh'
|
| 294 |
+
'django-admin' '_django'
|
| 295 |
+
'django-admin.py' '_django'
|
| 296 |
+
'dkms' '_dkms'
|
| 297 |
+
'dmake' '_make'
|
| 298 |
+
'dmesg' '_dmesg'
|
| 299 |
+
'dmidecode' '_dmidecode'
|
| 300 |
+
'doas' '_doas'
|
| 301 |
+
'docker' '_docker'
|
| 302 |
+
'docpad' '_docpad'
|
| 303 |
+
'dolphin' '_dolphin'
|
| 304 |
+
'domainname' '_yp'
|
| 305 |
+
'dos2unix' '_dos2unix'
|
| 306 |
+
'drill' '_drill'
|
| 307 |
+
'dropbox' '_dropbox'
|
| 308 |
+
'dropdb' '_pgsql_utils'
|
| 309 |
+
'dropuser' '_pgsql_utils'
|
| 310 |
+
'drush' '_drush'
|
| 311 |
+
'dsh' '_dsh'
|
| 312 |
+
'dtruss' '_dtruss'
|
| 313 |
+
'du' '_du'
|
| 314 |
+
'dvibook' '_dvi'
|
| 315 |
+
'dviconcat' '_dvi'
|
| 316 |
+
'dvicopy' '_dvi'
|
| 317 |
+
'dvidvi' '_dvi'
|
| 318 |
+
'dvipdf' '_dvi'
|
| 319 |
+
'dvips' '_dvi'
|
| 320 |
+
'dviselect' '_dvi'
|
| 321 |
+
'dvitodvi' '_dvi'
|
| 322 |
+
'dvitype' '_dvi'
|
| 323 |
+
'dwb' '_webbrowser'
|
| 324 |
+
'e2label' '_e2label'
|
| 325 |
+
'eatmydata' '_precommand'
|
| 326 |
+
'ecasound' '_ecasound'
|
| 327 |
+
'ecdsautil' '_ecdsautil'
|
| 328 |
+
'echotc' '_echotc'
|
| 329 |
+
'echoti' '_echoti'
|
| 330 |
+
'ed' '_ed'
|
| 331 |
+
'egrep' '_grep'
|
| 332 |
+
'elfdump' '_elfdump'
|
| 333 |
+
'elinks' '_elinks'
|
| 334 |
+
'emacs' '_emacs'
|
| 335 |
+
'emacsclient' '_emacsclient'
|
| 336 |
+
'emulate' '_emulate'
|
| 337 |
+
'emulator' '_emulator'
|
| 338 |
+
'enable' '_enable'
|
| 339 |
+
'enscript' '_enscript'
|
| 340 |
+
'entr' '_entr'
|
| 341 |
+
'env' '_env'
|
| 342 |
+
'envdir' '_envdir'
|
| 343 |
+
'eog' '_eog'
|
| 344 |
+
'epdfview' '_pdf'
|
| 345 |
+
'epsffit' '_psutils'
|
| 346 |
+
'-equal-' '_equal'
|
| 347 |
+
'erb' '_ruby'
|
| 348 |
+
'espeak' '_espeak'
|
| 349 |
+
'etags' '_etags'
|
| 350 |
+
'ethtool' '_ethtool'
|
| 351 |
+
'eu-nm' '_nm'
|
| 352 |
+
'eu-objdump' '_objdump'
|
| 353 |
+
'eu-readelf' '_readelf'
|
| 354 |
+
'eu-strings' '_strings'
|
| 355 |
+
'eval' '_precommand'
|
| 356 |
+
'eview' '_vim'
|
| 357 |
+
'evim' '_vim'
|
| 358 |
+
'evince' '_evince'
|
| 359 |
+
'ex' '_vi'
|
| 360 |
+
'exec' '_exec'
|
| 361 |
+
'expand' '_unexpand'
|
| 362 |
+
'export' '_typeset'
|
| 363 |
+
'exportfs' '_exportfs'
|
| 364 |
+
'express' '_webbrowser'
|
| 365 |
+
'extcheck' '_java'
|
| 366 |
+
'extract' '_extract'
|
| 367 |
+
'extractres' '_psutils'
|
| 368 |
+
'eza' '_eza'
|
| 369 |
+
'fab' '_fab'
|
| 370 |
+
'fail2ban-client' '_fail2ban-client'
|
| 371 |
+
'fakeroot' '_fakeroot'
|
| 372 |
+
'false' '_nothing'
|
| 373 |
+
'fastfetch' '_fastfetch'
|
| 374 |
+
'fc' '_fc'
|
| 375 |
+
'fc-list' '_xft_fonts'
|
| 376 |
+
'fc-match' '_xft_fonts'
|
| 377 |
+
'fd' '_fd'
|
| 378 |
+
'feh' '_feh'
|
| 379 |
+
'fetchmail' '_fetchmail'
|
| 380 |
+
'ffind' '_ffind'
|
| 381 |
+
'ffmpeg' '_ffmpeg'
|
| 382 |
+
'fg' '_jobs_fg'
|
| 383 |
+
'fgrep' '_grep'
|
| 384 |
+
'figlet' '_figlet'
|
| 385 |
+
'filterdiff' '_patchutils'
|
| 386 |
+
'find' '_find'
|
| 387 |
+
'findaffix' '_ispell'
|
| 388 |
+
'findmnt' '_findmnt'
|
| 389 |
+
'finger' '_finger'
|
| 390 |
+
'firefox' '_mozilla'
|
| 391 |
+
'-first-' '_first'
|
| 392 |
+
'fixdlsrps' '_psutils'
|
| 393 |
+
'fixfmps' '_psutils'
|
| 394 |
+
'fixmacps' '_psutils'
|
| 395 |
+
'fixpsditps' '_psutils'
|
| 396 |
+
'fixpspps' '_psutils'
|
| 397 |
+
'fixscribeps' '_psutils'
|
| 398 |
+
'fixtpps' '_psutils'
|
| 399 |
+
'fixwfwps' '_psutils'
|
| 400 |
+
'fixwpps' '_psutils'
|
| 401 |
+
'fixwwps' '_psutils'
|
| 402 |
+
'flac' '_flac'
|
| 403 |
+
'fleetctl' '_fleetctl'
|
| 404 |
+
'flex' '_flex'
|
| 405 |
+
'flex++' '_flex'
|
| 406 |
+
'flipdiff' '_patchutils'
|
| 407 |
+
'flist' '_mh'
|
| 408 |
+
'flists' '_mh'
|
| 409 |
+
'float' '_typeset'
|
| 410 |
+
'flutter' '_flutter'
|
| 411 |
+
'fly' '_concourse'
|
| 412 |
+
'fmt' '_fmt'
|
| 413 |
+
'fmttest' '_mh'
|
| 414 |
+
'fned' '_zed'
|
| 415 |
+
'fnext' '_mh'
|
| 416 |
+
'fold' '_fold'
|
| 417 |
+
'folder' '_mh'
|
| 418 |
+
'folders' '_mh'
|
| 419 |
+
'fortune' '_fortune'
|
| 420 |
+
'forw' '_mh'
|
| 421 |
+
'fprev' '_mh'
|
| 422 |
+
'free' '_free'
|
| 423 |
+
'freebsd-make' '_make'
|
| 424 |
+
'freezer' '_openstack'
|
| 425 |
+
'fsh' '_fsh'
|
| 426 |
+
'ftp' '_hosts'
|
| 427 |
+
'functions' '_typeset'
|
| 428 |
+
'fuser' '_fuser'
|
| 429 |
+
'fusermount' '_fusermount'
|
| 430 |
+
'fvm' '_fvm'
|
| 431 |
+
'fwhois' '_whois'
|
| 432 |
+
'fwupdmgr' '_fwupdmgr'
|
| 433 |
+
'g++' '_gcc'
|
| 434 |
+
'galeon' '_webbrowser'
|
| 435 |
+
'gas' '_gas'
|
| 436 |
+
'gawk' '_awk'
|
| 437 |
+
'gb2sum' '_md5sum'
|
| 438 |
+
'gbase32' '_base64'
|
| 439 |
+
'gbase64' '_base64'
|
| 440 |
+
'gbasename' '_basename'
|
| 441 |
+
'gcat' '_cat'
|
| 442 |
+
'gcc' '_gcc'
|
| 443 |
+
'gccgo' '_go'
|
| 444 |
+
'gchgrp' '_chown'
|
| 445 |
+
'gchmod' '_chmod'
|
| 446 |
+
'gchown' '_chown'
|
| 447 |
+
'gchroot' '_chroot'
|
| 448 |
+
'gcksum' '_cksum'
|
| 449 |
+
'gcmp' '_cmp'
|
| 450 |
+
'gcomm' '_comm'
|
| 451 |
+
'gcore' '_gcore'
|
| 452 |
+
'gcp' '_cp'
|
| 453 |
+
'gcut' '_cut'
|
| 454 |
+
'gdate' '_date'
|
| 455 |
+
'gdb' '_gdb'
|
| 456 |
+
'gdd' '_dd'
|
| 457 |
+
'gdf' '_df'
|
| 458 |
+
'gdiff' '_diff'
|
| 459 |
+
'gdu' '_du'
|
| 460 |
+
'geany' '_geany'
|
| 461 |
+
'gegrep' '_grep'
|
| 462 |
+
'gem' '_gem'
|
| 463 |
+
'genfstab' '_genfstab'
|
| 464 |
+
'genisoimage' '_genisoimage'
|
| 465 |
+
'genv' '_env'
|
| 466 |
+
'get' '_sccs'
|
| 467 |
+
'getafm' '_psutils'
|
| 468 |
+
'getconf' '_getconf'
|
| 469 |
+
'getent' '_getent'
|
| 470 |
+
'getfacl' '_getfacl'
|
| 471 |
+
'getfacl.exe' '_getfacl'
|
| 472 |
+
'getfattr' '_attr'
|
| 473 |
+
'getmail' '_getmail'
|
| 474 |
+
'getopt' '_getopt'
|
| 475 |
+
'getopts' '_vars'
|
| 476 |
+
'gex' '_vim'
|
| 477 |
+
'gexpand' '_unexpand'
|
| 478 |
+
'gfgrep' '_grep'
|
| 479 |
+
'gfind' '_find'
|
| 480 |
+
'gfmt' '_fmt'
|
| 481 |
+
'gfold' '_fold'
|
| 482 |
+
'ggetopt' '_getopt'
|
| 483 |
+
'ggrep' '_grep'
|
| 484 |
+
'ggv' '_gnome-gv'
|
| 485 |
+
'ghc' '_ghc'
|
| 486 |
+
'ghci' '_ghc'
|
| 487 |
+
'ghc-pkg' '_ghc'
|
| 488 |
+
'ghead' '_head'
|
| 489 |
+
'ghostscript' '_ghostscript'
|
| 490 |
+
'ghostview' '_pspdf'
|
| 491 |
+
'gid' '_id'
|
| 492 |
+
'ginstall' '_install'
|
| 493 |
+
'gist' '_gist'
|
| 494 |
+
'git' '_git'
|
| 495 |
+
'git-cvsserver' '_git'
|
| 496 |
+
'git-flow' '_git-flow'
|
| 497 |
+
'gitk' '_git'
|
| 498 |
+
'git-pulls' '_git-pulls'
|
| 499 |
+
'git-receive-pack' '_git'
|
| 500 |
+
'git-revise' '_git-revise'
|
| 501 |
+
'git-shell' '_git'
|
| 502 |
+
'git-upload-archive' '_git'
|
| 503 |
+
'git-upload-pack' '_git'
|
| 504 |
+
'git-wtf' '_git-wtf'
|
| 505 |
+
'gjoin' '_join'
|
| 506 |
+
'glance' '_openstack'
|
| 507 |
+
'glances' '_glances'
|
| 508 |
+
'gln' '_ln'
|
| 509 |
+
'global' '_global'
|
| 510 |
+
'glocate' '_locate'
|
| 511 |
+
'gls' '_ls'
|
| 512 |
+
'gm' '_graphicsmagick'
|
| 513 |
+
'gmake' '_make'
|
| 514 |
+
'gmd5sum' '_md5sum'
|
| 515 |
+
'gmkdir' '_mkdir'
|
| 516 |
+
'gmkfifo' '_mkfifo'
|
| 517 |
+
'gmknod' '_mknod'
|
| 518 |
+
'gmktemp' '_mktemp'
|
| 519 |
+
'gmplayer' '_mplayer'
|
| 520 |
+
'gmv' '_mv'
|
| 521 |
+
'gnl' '_nl'
|
| 522 |
+
'gnocchi' '_openstack'
|
| 523 |
+
'gnome-gv' '_gnome-gv'
|
| 524 |
+
'gnumfmt' '_numfmt'
|
| 525 |
+
'gnupod_addsong' '_gnupod'
|
| 526 |
+
'gnupod_addsong.pl' '_gnupod'
|
| 527 |
+
'gnupod_check' '_gnupod'
|
| 528 |
+
'gnupod_check.pl' '_gnupod'
|
| 529 |
+
'gnupod_INIT' '_gnupod'
|
| 530 |
+
'gnupod_INIT.pl' '_gnupod'
|
| 531 |
+
'gnupod_search' '_gnupod'
|
| 532 |
+
'gnupod_search.pl' '_gnupod'
|
| 533 |
+
'gnutls-cli' '_gnutls'
|
| 534 |
+
'gnutls-cli-debug' '_gnutls'
|
| 535 |
+
'gnutls-serv' '_gnutls'
|
| 536 |
+
'go' '_golang'
|
| 537 |
+
'god' '_od'
|
| 538 |
+
'gofmt' '_go'
|
| 539 |
+
'google' '_google'
|
| 540 |
+
'gpasswd' '_gpasswd'
|
| 541 |
+
'gpaste' '_paste'
|
| 542 |
+
'gpatch' '_patch'
|
| 543 |
+
'gpg' '_gpg'
|
| 544 |
+
'gpg2' '_gpg'
|
| 545 |
+
'gpgconf' '_gpgconf'
|
| 546 |
+
'gpgv' '_gpg'
|
| 547 |
+
'gpg-zip' '_gpg'
|
| 548 |
+
'gphoto2' '_gphoto2'
|
| 549 |
+
'gprintenv' '_printenv'
|
| 550 |
+
'gprof' '_gprof'
|
| 551 |
+
'gqview' '_gqview'
|
| 552 |
+
'gradle' '_gradle'
|
| 553 |
+
'gradlew' '_gradle'
|
| 554 |
+
'grail' '_webbrowser'
|
| 555 |
+
'greadlink' '_readlink'
|
| 556 |
+
'grep' '_grep'
|
| 557 |
+
'grepdiff' '_patchutils'
|
| 558 |
+
'grm' '_rm'
|
| 559 |
+
'grmdir' '_rmdir'
|
| 560 |
+
'groff' '_groff'
|
| 561 |
+
'groupadd' '_user_admin'
|
| 562 |
+
'groupdel' '_groups'
|
| 563 |
+
'groupmod' '_user_admin'
|
| 564 |
+
'groups' '_users'
|
| 565 |
+
'growisofs' '_growisofs'
|
| 566 |
+
'grpcurl' '_grpcurl'
|
| 567 |
+
'gs' '_ghostscript'
|
| 568 |
+
'gsbj' '_pspdf'
|
| 569 |
+
'gsdj' '_pspdf'
|
| 570 |
+
'gsdj500' '_pspdf'
|
| 571 |
+
'gsed' '_sed'
|
| 572 |
+
'gseq' '_seq'
|
| 573 |
+
'gsettings' '_gsettings'
|
| 574 |
+
'gsha1sum' '_md5sum'
|
| 575 |
+
'gsha224sum' '_md5sum'
|
| 576 |
+
'gsha256sum' '_md5sum'
|
| 577 |
+
'gsha384sum' '_md5sum'
|
| 578 |
+
'gsha512sum' '_md5sum'
|
| 579 |
+
'gshred' '_shred'
|
| 580 |
+
'gshuf' '_shuf'
|
| 581 |
+
'gslj' '_pspdf'
|
| 582 |
+
'gslp' '_pspdf'
|
| 583 |
+
'gsnd' '_pspdf'
|
| 584 |
+
'gsort' '_sort'
|
| 585 |
+
'gsplit' '_split'
|
| 586 |
+
'gstat' '_stat'
|
| 587 |
+
'gstdbuf' '_stdbuf'
|
| 588 |
+
'gstrings' '_strings'
|
| 589 |
+
'gstty' '_stty'
|
| 590 |
+
'gsum' '_cksum'
|
| 591 |
+
'gtac' '_tac'
|
| 592 |
+
'gtail' '_tail'
|
| 593 |
+
'gtar' '_tar'
|
| 594 |
+
'gtee' '_tee'
|
| 595 |
+
'gtimeout' '_timeout'
|
| 596 |
+
'gtk-launch' '_gtk-launch'
|
| 597 |
+
'gtouch' '_touch'
|
| 598 |
+
'gtr' '_tr'
|
| 599 |
+
'gtty' '_tty'
|
| 600 |
+
'guilt' '_guilt'
|
| 601 |
+
'guilt-add' '_guilt'
|
| 602 |
+
'guilt-applied' '_guilt'
|
| 603 |
+
'guilt-delete' '_guilt'
|
| 604 |
+
'guilt-files' '_guilt'
|
| 605 |
+
'guilt-fold' '_guilt'
|
| 606 |
+
'guilt-fork' '_guilt'
|
| 607 |
+
'guilt-header' '_guilt'
|
| 608 |
+
'guilt-help' '_guilt'
|
| 609 |
+
'guilt-import' '_guilt'
|
| 610 |
+
'guilt-import-commit' '_guilt'
|
| 611 |
+
'guilt-init' '_guilt'
|
| 612 |
+
'guilt-new' '_guilt'
|
| 613 |
+
'guilt-next' '_guilt'
|
| 614 |
+
'guilt-patchbomb' '_guilt'
|
| 615 |
+
'guilt-pop' '_guilt'
|
| 616 |
+
'guilt-prev' '_guilt'
|
| 617 |
+
'guilt-push' '_guilt'
|
| 618 |
+
'guilt-rebase' '_guilt'
|
| 619 |
+
'guilt-refresh' '_guilt'
|
| 620 |
+
'guilt-rm' '_guilt'
|
| 621 |
+
'guilt-series' '_guilt'
|
| 622 |
+
'guilt-status' '_guilt'
|
| 623 |
+
'guilt-top' '_guilt'
|
| 624 |
+
'guilt-unapplied' '_guilt'
|
| 625 |
+
'guname' '_uname'
|
| 626 |
+
'gunexpand' '_unexpand'
|
| 627 |
+
'guniq' '_uniq'
|
| 628 |
+
'gunzip' '_gzip'
|
| 629 |
+
'guptime' '_uptime'
|
| 630 |
+
'gv' '_gv'
|
| 631 |
+
'gview' '_vim'
|
| 632 |
+
'gvim' '_vim'
|
| 633 |
+
'gvimdiff' '_vim'
|
| 634 |
+
'gwc' '_wc'
|
| 635 |
+
'gwho' '_who'
|
| 636 |
+
'gxargs' '_xargs'
|
| 637 |
+
'gzcat' '_gzip'
|
| 638 |
+
'gzegrep' '_grep'
|
| 639 |
+
'gzfgrep' '_grep'
|
| 640 |
+
'gzgrep' '_grep'
|
| 641 |
+
'gzilla' '_webbrowser'
|
| 642 |
+
'gzip' '_gzip'
|
| 643 |
+
'hash' '_hash'
|
| 644 |
+
'hd' '_hexdump'
|
| 645 |
+
'head' '_head'
|
| 646 |
+
'heat' '_openstack'
|
| 647 |
+
'hello' '_hello'
|
| 648 |
+
'help' '_sccs'
|
| 649 |
+
'hexdump' '_hexdump'
|
| 650 |
+
'hilite' '_precommand'
|
| 651 |
+
'histed' '_zed'
|
| 652 |
+
'history' '_fc'
|
| 653 |
+
'hledger' '_hledger'
|
| 654 |
+
'homestead' '_homestead'
|
| 655 |
+
'host' '_host'
|
| 656 |
+
'hostname' '_hostname'
|
| 657 |
+
'hostnamectl' '_hostnamectl'
|
| 658 |
+
'hotjava' '_webbrowser'
|
| 659 |
+
'htop' '_htop'
|
| 660 |
+
'http' '_httpie'
|
| 661 |
+
'https' '_httpie'
|
| 662 |
+
'ibus' '_ibus'
|
| 663 |
+
'iceweasel' '_mozilla'
|
| 664 |
+
'icombine' '_ispell'
|
| 665 |
+
'iconv' '_iconv'
|
| 666 |
+
'iconvconfig' '_iconvconfig'
|
| 667 |
+
'id' '_id'
|
| 668 |
+
'identify' '_imagemagick'
|
| 669 |
+
'ifconfig' '_ifconfig'
|
| 670 |
+
'ifdown' '_net_interfaces'
|
| 671 |
+
'iftop' '_iftop'
|
| 672 |
+
'ifup' '_net_interfaces'
|
| 673 |
+
'ijoin' '_ispell'
|
| 674 |
+
'img2sixel' '_img2sixel'
|
| 675 |
+
'import' '_imagemagick'
|
| 676 |
+
'inc' '_mh'
|
| 677 |
+
'includeres' '_psutils'
|
| 678 |
+
'include-what-you-use' '_include-what-you-use'
|
| 679 |
+
'info' '_texinfo'
|
| 680 |
+
'infocmp' '_terminals'
|
| 681 |
+
'initctl' '_initctl'
|
| 682 |
+
'initdb' '_pgsql_utils'
|
| 683 |
+
'insmod' '_insmod'
|
| 684 |
+
'install' '_install'
|
| 685 |
+
'install-info' '_texinfo'
|
| 686 |
+
'integer' '_typeset'
|
| 687 |
+
'interdiff' '_patchutils'
|
| 688 |
+
'inxi' '_inxi'
|
| 689 |
+
'ionice' '_ionice'
|
| 690 |
+
'iostat' '_iostat'
|
| 691 |
+
'ip' '_ip'
|
| 692 |
+
'ip6tables' '_iptables'
|
| 693 |
+
'ip6tables-restore' '_iptables'
|
| 694 |
+
'ip6tables-save' '_iptables'
|
| 695 |
+
'ipkg' '_opkg'
|
| 696 |
+
'ipsec' '_ipsec'
|
| 697 |
+
'ipset' '_ipset'
|
| 698 |
+
'iptables' '_iptables'
|
| 699 |
+
'iptables-restore' '_iptables'
|
| 700 |
+
'iptables-save' '_iptables'
|
| 701 |
+
'irb' '_ruby'
|
| 702 |
+
'ironic' '_openstack'
|
| 703 |
+
'irssi' '_irssi'
|
| 704 |
+
'isag' '_sysstat'
|
| 705 |
+
'ispell' '_ispell'
|
| 706 |
+
'iwconfig' '_iwconfig'
|
| 707 |
+
'iwyu' '_include-what-you-use'
|
| 708 |
+
'jadetex' '_tex'
|
| 709 |
+
'jar' '_java'
|
| 710 |
+
'jarsigner' '_java'
|
| 711 |
+
'java' '_java'
|
| 712 |
+
'javac' '_java'
|
| 713 |
+
'javadoc' '_java'
|
| 714 |
+
'javah' '_java'
|
| 715 |
+
'javap' '_java'
|
| 716 |
+
'jdb' '_java'
|
| 717 |
+
'jmeter' '_jmeter'
|
| 718 |
+
'jmeter-plugins' '_jmeter-plugins'
|
| 719 |
+
'jobs' '_jobs_builtin'
|
| 720 |
+
'joe' '_joe'
|
| 721 |
+
'join' '_join'
|
| 722 |
+
'jonas' '_jonas'
|
| 723 |
+
'journalctl' '_journalctl'
|
| 724 |
+
'jq' '_jq'
|
| 725 |
+
'jrnl' '_jrnl'
|
| 726 |
+
'kak' '_kak'
|
| 727 |
+
'kcmshell5' '_systemsettings'
|
| 728 |
+
'kcmshell6' '_systemsettings'
|
| 729 |
+
'kdeconnect-cli' '_kdeconnect'
|
| 730 |
+
'kde-inhibit' '_kde-inhibit'
|
| 731 |
+
'kernel-install' '_kernel-install'
|
| 732 |
+
'keystone' '_openstack'
|
| 733 |
+
'keytool' '_java'
|
| 734 |
+
'kfmclient' '_kfmclient'
|
| 735 |
+
'kill' '_kill'
|
| 736 |
+
'killall' '_killall'
|
| 737 |
+
'killall5' '_killall'
|
| 738 |
+
'kinfocenter' '_systemsettings'
|
| 739 |
+
'kioclient' '_kfmclient'
|
| 740 |
+
'kitchen' '_kitchen'
|
| 741 |
+
'knife' '_knife'
|
| 742 |
+
'knock' '_knock'
|
| 743 |
+
'konqueror' '_webbrowser'
|
| 744 |
+
'konsole' '_konsole'
|
| 745 |
+
'konsoleprofile' '_konsole'
|
| 746 |
+
'kpartx' '_kpartx'
|
| 747 |
+
'kpdf' '_pdf'
|
| 748 |
+
'krunner' '_krunner'
|
| 749 |
+
'kscreen-doctor' '_kscreen-doctor'
|
| 750 |
+
'ksh' '_sh'
|
| 751 |
+
'ksh88' '_sh'
|
| 752 |
+
'ksh93' '_sh'
|
| 753 |
+
'kvno' '_kvno'
|
| 754 |
+
'last' '_last'
|
| 755 |
+
'lastb' '_last'
|
| 756 |
+
'latex' '_tex'
|
| 757 |
+
'latexmk' '_tex'
|
| 758 |
+
'ldconfig' '_ldconfig'
|
| 759 |
+
'ldconfig.real' '_ldconfig'
|
| 760 |
+
'ldd' '_ldd'
|
| 761 |
+
'less' '_less'
|
| 762 |
+
'let' '_math'
|
| 763 |
+
'lftp' '_ncftp'
|
| 764 |
+
'lha' '_lha'
|
| 765 |
+
'libinput' '_libinput'
|
| 766 |
+
'light' '_webbrowser'
|
| 767 |
+
'lilypond' '_lilypond'
|
| 768 |
+
'limit' '_limit'
|
| 769 |
+
'links' '_links'
|
| 770 |
+
'links2' '_links'
|
| 771 |
+
'linux' '_uml'
|
| 772 |
+
'lldb' '_lldb'
|
| 773 |
+
'llvm-g++' '_gcc'
|
| 774 |
+
'llvm-gcc' '_gcc'
|
| 775 |
+
'llvm-objdump' '_objdump'
|
| 776 |
+
'ln' '_ln'
|
| 777 |
+
'loadkeys' '_loadkeys'
|
| 778 |
+
'local' '_typeset'
|
| 779 |
+
'locale' '_locale'
|
| 780 |
+
'localectl' '_localectl'
|
| 781 |
+
'localedef' '_localedef'
|
| 782 |
+
'locate' '_locate'
|
| 783 |
+
'log' '_nothing'
|
| 784 |
+
'logger' '_logger'
|
| 785 |
+
'loginctl' '_loginctl'
|
| 786 |
+
'logname' '_nothing'
|
| 787 |
+
'look' '_look'
|
| 788 |
+
'losetup' '_losetup'
|
| 789 |
+
'lp' '_lp'
|
| 790 |
+
'lpadmin' '_lp'
|
| 791 |
+
'lpinfo' '_lp'
|
| 792 |
+
'lpoptions' '_lp'
|
| 793 |
+
'lpq' '_lp'
|
| 794 |
+
'lpr' '_lp'
|
| 795 |
+
'lprm' '_lp'
|
| 796 |
+
'lpstat' '_lp'
|
| 797 |
+
'ls' '_ls'
|
| 798 |
+
'lsattr' '_lsattr'
|
| 799 |
+
'lsblk' '_lsblk'
|
| 800 |
+
'lsdiff' '_patchutils'
|
| 801 |
+
'lsinitcpio' '_mkinitcpio'
|
| 802 |
+
'lsmod' '_lsmod'
|
| 803 |
+
'lsns' '_lsns'
|
| 804 |
+
'lsof' '_lsof'
|
| 805 |
+
'lsusb' '_lsusb'
|
| 806 |
+
'ltrace' '_ltrace'
|
| 807 |
+
'lua' '_lua'
|
| 808 |
+
'luarocks' '_luarocks'
|
| 809 |
+
'lunchy' '_lunchy'
|
| 810 |
+
'lynx' '_lynx'
|
| 811 |
+
'lz4' '_lz4'
|
| 812 |
+
'lz4c' '_lz4'
|
| 813 |
+
'lz4c32' '_lz4'
|
| 814 |
+
'lz4cat' '_lz4'
|
| 815 |
+
'lzcat' '_xz'
|
| 816 |
+
'lzma' '_xz'
|
| 817 |
+
'lzop' '_lzop'
|
| 818 |
+
'mac2unix' '_dos2unix'
|
| 819 |
+
'machinectl' '_machinectl'
|
| 820 |
+
'magnum' '_openstack'
|
| 821 |
+
'mail' '_mail'
|
| 822 |
+
'Mail' '_mail'
|
| 823 |
+
'mailx' '_mail'
|
| 824 |
+
'make' '_make'
|
| 825 |
+
'makeinfo' '_texinfo'
|
| 826 |
+
'makepkg' '_pacman'
|
| 827 |
+
'man' '_man'
|
| 828 |
+
'manage.py' '_django'
|
| 829 |
+
'manila' '_openstack'
|
| 830 |
+
'mark' '_mh'
|
| 831 |
+
'mat' '_mat'
|
| 832 |
+
'mat2' '_mat2'
|
| 833 |
+
'-math-' '_math'
|
| 834 |
+
'matlab' '_matlab'
|
| 835 |
+
'mattrib' '_mtools'
|
| 836 |
+
'mc' '_mc'
|
| 837 |
+
'mcd' '_mtools'
|
| 838 |
+
'mcopy' '_mtools'
|
| 839 |
+
'md2' '_cksum'
|
| 840 |
+
'md4' '_cksum'
|
| 841 |
+
'md5' '_cksum'
|
| 842 |
+
'md5sum' '_md5sum'
|
| 843 |
+
'mdadm' '_mdadm'
|
| 844 |
+
'mdel' '_mtools'
|
| 845 |
+
'mdeltree' '_mtools'
|
| 846 |
+
'mdir' '_mtools'
|
| 847 |
+
'mdu' '_mtools'
|
| 848 |
+
'mencal' '_mencal'
|
| 849 |
+
'mere' '_mere'
|
| 850 |
+
'merge' '_rcs'
|
| 851 |
+
'meson' '_meson'
|
| 852 |
+
'metaflac' '_flac'
|
| 853 |
+
'mformat' '_mtools'
|
| 854 |
+
'mgv' '_pspdf'
|
| 855 |
+
'mhfixmsg' '_mh'
|
| 856 |
+
'mhlist' '_mh'
|
| 857 |
+
'mhmail' '_mh'
|
| 858 |
+
'mhn' '_mh'
|
| 859 |
+
'mhparam' '_mh'
|
| 860 |
+
'mhpath' '_mh'
|
| 861 |
+
'mhshow' '_mh'
|
| 862 |
+
'mhstore' '_mh'
|
| 863 |
+
'middleman' '_middleman'
|
| 864 |
+
'mii-tool' '_mii-tool'
|
| 865 |
+
'mina' '_mina'
|
| 866 |
+
'mistral' '_openstack'
|
| 867 |
+
'mix' '_mix'
|
| 868 |
+
'mkcert' '_mkcert'
|
| 869 |
+
'mkdir' '_mkdir'
|
| 870 |
+
'mkfifo' '_mkfifo'
|
| 871 |
+
'mkinitcpio' '_mkinitcpio'
|
| 872 |
+
'mkisofs' '_growisofs'
|
| 873 |
+
'mknod' '_mknod'
|
| 874 |
+
'mksh' '_sh'
|
| 875 |
+
'mktemp' '_mktemp'
|
| 876 |
+
'mktunes' '_gnupod'
|
| 877 |
+
'mktunes.pl' '_gnupod'
|
| 878 |
+
'mlabel' '_mtools'
|
| 879 |
+
'mlocate' '_locate'
|
| 880 |
+
'mmd' '_mtools'
|
| 881 |
+
'mmm' '_webbrowser'
|
| 882 |
+
'mmount' '_mtools'
|
| 883 |
+
'mmove' '_mtools'
|
| 884 |
+
'modinfo' '_modutils'
|
| 885 |
+
'modprobe' '_modutils'
|
| 886 |
+
'module' '_module'
|
| 887 |
+
'mogrify' '_imagemagick'
|
| 888 |
+
'monasca' '_openstack'
|
| 889 |
+
'mondoarchive' '_mondo'
|
| 890 |
+
'montage' '_imagemagick'
|
| 891 |
+
'moosic' '_moosic'
|
| 892 |
+
'Mosaic' '_webbrowser'
|
| 893 |
+
'mosh' '_mosh'
|
| 894 |
+
'mount' '_mount'
|
| 895 |
+
'mozilla' '_mozilla'
|
| 896 |
+
'mozilla-firefox' '_mozilla'
|
| 897 |
+
'mozilla-xremote-client' '_mozilla'
|
| 898 |
+
'mpc' '_mpc'
|
| 899 |
+
'mplayer' '_mplayer'
|
| 900 |
+
'mpstat' '_sysstat'
|
| 901 |
+
'mpv' '_mpv'
|
| 902 |
+
'mr' '_myrepos'
|
| 903 |
+
'mrd' '_mtools'
|
| 904 |
+
'mread' '_mtools'
|
| 905 |
+
'mren' '_mtools'
|
| 906 |
+
'msgchk' '_mh'
|
| 907 |
+
'mssh' '_mssh'
|
| 908 |
+
'mt' '_mt'
|
| 909 |
+
'mtn' '_monotone'
|
| 910 |
+
'mtoolstest' '_mtools'
|
| 911 |
+
'mtr' '_mtr'
|
| 912 |
+
'mtype' '_mtools'
|
| 913 |
+
'mullvad' '_mullvad'
|
| 914 |
+
'munchlist' '_ispell'
|
| 915 |
+
'mupdf' '_mupdf'
|
| 916 |
+
'murano' '_openstack'
|
| 917 |
+
'mush' '_mail'
|
| 918 |
+
'mussh' '_mussh'
|
| 919 |
+
'mutt' '_mutt'
|
| 920 |
+
'mux' '_tmuxinator'
|
| 921 |
+
'mv' '_mv'
|
| 922 |
+
'mvim' '_vim'
|
| 923 |
+
'mvn' '_mvn'
|
| 924 |
+
'mvnDebug' '_mvn'
|
| 925 |
+
'mx' '_hosts'
|
| 926 |
+
'mysql' '_mysql_utils'
|
| 927 |
+
'mysqladmin' '_mysql_utils'
|
| 928 |
+
'mysqldiff' '_mysqldiff'
|
| 929 |
+
'mysqldump' '_mysql_utils'
|
| 930 |
+
'mysqlimport' '_mysql_utils'
|
| 931 |
+
'mysqlshow' '_mysql_utils'
|
| 932 |
+
'nail' '_mail'
|
| 933 |
+
'nano' '_nano'
|
| 934 |
+
'nanoc' '_nanoc'
|
| 935 |
+
'native2ascii' '_java'
|
| 936 |
+
'nautilus' '_nautilus'
|
| 937 |
+
'nawk' '_awk'
|
| 938 |
+
'nc' '_netcat'
|
| 939 |
+
'ncal' '_cal'
|
| 940 |
+
'ncftp' '_ncftp'
|
| 941 |
+
'ncl' '_nedit'
|
| 942 |
+
'nedit' '_nedit'
|
| 943 |
+
'nedit-nc' '_nedit'
|
| 944 |
+
'neofetch' '_neofetch'
|
| 945 |
+
'netcat' '_netcat'
|
| 946 |
+
'netctl' '_netctl'
|
| 947 |
+
'netctl-auto' '_netctl'
|
| 948 |
+
'netrik' '_webbrowser'
|
| 949 |
+
'netscape' '_netscape'
|
| 950 |
+
'netstat' '_netstat'
|
| 951 |
+
'networkctl' '_networkctl'
|
| 952 |
+
'networkQuality' '_networkQuality'
|
| 953 |
+
'neutron' '_openstack'
|
| 954 |
+
'new' '_mh'
|
| 955 |
+
'newgrp' '_groups'
|
| 956 |
+
'next' '_mh'
|
| 957 |
+
'nft' '_nftables'
|
| 958 |
+
'nginx' '_nginx'
|
| 959 |
+
'ngrep' '_ngrep'
|
| 960 |
+
'nice' '_nice'
|
| 961 |
+
'ninja' '_ninja'
|
| 962 |
+
'nkf' '_nkf'
|
| 963 |
+
'nl' '_nl'
|
| 964 |
+
'nm' '_nm'
|
| 965 |
+
'nmap' '_nmap'
|
| 966 |
+
'nmblookup' '_samba'
|
| 967 |
+
'nmcli' '_networkmanager'
|
| 968 |
+
'nocorrect' '_precommand'
|
| 969 |
+
'node' '_node'
|
| 970 |
+
'noglob' '_precommand'
|
| 971 |
+
'nohup' '_precommand'
|
| 972 |
+
'nova' '_openstack'
|
| 973 |
+
'npm' '_npm'
|
| 974 |
+
'ns' '_hosts'
|
| 975 |
+
'nsenter' '_nsenter'
|
| 976 |
+
'nslookup' '_nslookup'
|
| 977 |
+
'ntalk' '_other_accounts'
|
| 978 |
+
'numfmt' '_numfmt'
|
| 979 |
+
'nvim' '_vim'
|
| 980 |
+
'nvm' '_nvm'
|
| 981 |
+
'objdump' '_objdump'
|
| 982 |
+
'od' '_od'
|
| 983 |
+
'ogg123' '_vorbis'
|
| 984 |
+
'oggdec' '_vorbis'
|
| 985 |
+
'oggenc' '_vorbis'
|
| 986 |
+
'ogginfo' '_vorbis'
|
| 987 |
+
'oksh' '_sh'
|
| 988 |
+
'okular' '_okular'
|
| 989 |
+
'oomctl' '_oomctl'
|
| 990 |
+
'openssl' '_openssl'
|
| 991 |
+
'openstack' '_openstack'
|
| 992 |
+
'openvpn3' '_openvpn3'
|
| 993 |
+
'opera' '_webbrowser'
|
| 994 |
+
'opera-next' '_webbrowser'
|
| 995 |
+
'opkg' '_opkg'
|
| 996 |
+
'optirun' '_optirun'
|
| 997 |
+
'opusdec' '_opustools'
|
| 998 |
+
'opusenc' '_opustools'
|
| 999 |
+
'opusinfo' '_opustools'
|
| 1000 |
+
'p11-kit' '_p11-kit'
|
| 1001 |
+
'p4' '_perforce'
|
| 1002 |
+
'p4d' '_perforce'
|
| 1003 |
+
'pacat' '_pulseaudio'
|
| 1004 |
+
'paccache' '_paccache'
|
| 1005 |
+
'pacdiff' '_pacdiff'
|
| 1006 |
+
'pack' '_pack'
|
| 1007 |
+
'packf' '_mh'
|
| 1008 |
+
'paclist' '_paclist'
|
| 1009 |
+
'paclog-pkglist' '_paclog-pkglist'
|
| 1010 |
+
'pacman' '_pacman'
|
| 1011 |
+
'pacman-conf' '_pacman'
|
| 1012 |
+
'pacman-key' '_pacman'
|
| 1013 |
+
'pacman.static' '_pacman'
|
| 1014 |
+
'pacmd' '_pulseaudio'
|
| 1015 |
+
'pacscripts' '_pacscripts'
|
| 1016 |
+
'pacsearch' '_pacsearch'
|
| 1017 |
+
'pacsort' '_pacsort'
|
| 1018 |
+
'pacstrap' '_pacstrap'
|
| 1019 |
+
'pactl' '_pulseaudio'
|
| 1020 |
+
'pactree' '_pactree'
|
| 1021 |
+
'padsp' '_pulseaudio'
|
| 1022 |
+
'pandoc' '_pandoc'
|
| 1023 |
+
'paplay' '_pulseaudio'
|
| 1024 |
+
'parallel' '_parallel'
|
| 1025 |
+
'-parameter-' '_parameter'
|
| 1026 |
+
'parec' '_pulseaudio'
|
| 1027 |
+
'parecord' '_pulseaudio'
|
| 1028 |
+
'paru' '_paru'
|
| 1029 |
+
'passwd' '_users'
|
| 1030 |
+
'paste' '_paste'
|
| 1031 |
+
'pasuspender' '_pulseaudio'
|
| 1032 |
+
'patch' '_patch'
|
| 1033 |
+
'patchelf' '_patchelf'
|
| 1034 |
+
'patool' '_patool'
|
| 1035 |
+
'pax' '_pax'
|
| 1036 |
+
'pcat' '_pack'
|
| 1037 |
+
'pcp-htop' '_htop'
|
| 1038 |
+
'pcred' '_pids'
|
| 1039 |
+
'pdf2dsc' '_pdf'
|
| 1040 |
+
'pdf2ps' '_pdf'
|
| 1041 |
+
'pdffonts' '_pdf'
|
| 1042 |
+
'pdfimages' '_pdf'
|
| 1043 |
+
'pdfinfo' '_pdf'
|
| 1044 |
+
'pdfjadetex' '_tex'
|
| 1045 |
+
'pdflatex' '_tex'
|
| 1046 |
+
'pdfopt' '_pdf'
|
| 1047 |
+
'pdftex' '_tex'
|
| 1048 |
+
'pdftexi2dvi' '_texinfo'
|
| 1049 |
+
'pdftk' '_pdftk'
|
| 1050 |
+
'pdftopbm' '_pdf'
|
| 1051 |
+
'pdftops' '_pdf'
|
| 1052 |
+
'pdftotext' '_pdf'
|
| 1053 |
+
'pdksh' '_sh'
|
| 1054 |
+
'perf' '_perf'
|
| 1055 |
+
'periscope' '_periscope'
|
| 1056 |
+
'perl' '_perl'
|
| 1057 |
+
'perldoc' '_perldoc'
|
| 1058 |
+
'pfiles' '_pids'
|
| 1059 |
+
'pflags' '_pids'
|
| 1060 |
+
'pg_config' '_postgresql'
|
| 1061 |
+
'pg_ctl' '_postgresql'
|
| 1062 |
+
'pg_dump' '_pgsql_utils'
|
| 1063 |
+
'pg_dumpall' '_pgsql_utils'
|
| 1064 |
+
'pg_isready' '_postgresql'
|
| 1065 |
+
'pgrep' '_pgrep'
|
| 1066 |
+
'pg_restore' '_pgsql_utils'
|
| 1067 |
+
'pg_upgrade' '_postgresql'
|
| 1068 |
+
'phing' '_phing'
|
| 1069 |
+
'php' '_php'
|
| 1070 |
+
'pick' '_mh'
|
| 1071 |
+
'picocom' '_picocom'
|
| 1072 |
+
'pidof' '_pidof'
|
| 1073 |
+
'pidstat' '_sysstat'
|
| 1074 |
+
'pigz' '_gzip'
|
| 1075 |
+
'pine' '_pine'
|
| 1076 |
+
'pinef' '_pine'
|
| 1077 |
+
'pinfo' '_texinfo'
|
| 1078 |
+
'ping' '_ping'
|
| 1079 |
+
'ping6' '_ping'
|
| 1080 |
+
'pixz' '_pixz'
|
| 1081 |
+
'pkcon' '_pkcon'
|
| 1082 |
+
'pkgadd' '_pkgadd'
|
| 1083 |
+
'pkg-config' '_pkg-config'
|
| 1084 |
+
'pkgfile' '_pkgfile'
|
| 1085 |
+
'pkginfo' '_pkginfo'
|
| 1086 |
+
'pkgrm' '_pkgrm'
|
| 1087 |
+
'pkill' '_pgrep'
|
| 1088 |
+
'plasmashell' '_plasmashell'
|
| 1089 |
+
'play' '_play'
|
| 1090 |
+
'pldd' '_pids'
|
| 1091 |
+
'pm2' '_pm2'
|
| 1092 |
+
'pmake' '_make'
|
| 1093 |
+
'pman' '_perl_modules'
|
| 1094 |
+
'pmap' '_pmap'
|
| 1095 |
+
'pmcat' '_perl_modules'
|
| 1096 |
+
'pmdesc' '_perl_modules'
|
| 1097 |
+
'pmeth' '_perl_modules'
|
| 1098 |
+
'pmexp' '_perl_modules'
|
| 1099 |
+
'pmfunc' '_perl_modules'
|
| 1100 |
+
'pmload' '_perl_modules'
|
| 1101 |
+
'pmls' '_perl_modules'
|
| 1102 |
+
'pmpath' '_perl_modules'
|
| 1103 |
+
'pmvers' '_perl_modules'
|
| 1104 |
+
'podgrep' '_perl_modules'
|
| 1105 |
+
'podpath' '_perl_modules'
|
| 1106 |
+
'podtoc' '_perl_modules'
|
| 1107 |
+
'poff' '_pon'
|
| 1108 |
+
'policytool' '_java'
|
| 1109 |
+
'pon' '_pon'
|
| 1110 |
+
'popd' '_directory_stack'
|
| 1111 |
+
'port' '_port'
|
| 1112 |
+
'postconf' '_postfix'
|
| 1113 |
+
'postgres' '_postgresql'
|
| 1114 |
+
'postmaster' '_postgresql'
|
| 1115 |
+
'postqueue' '_postfix'
|
| 1116 |
+
'postsuper' '_postfix'
|
| 1117 |
+
'powerprofilesctl' '_powerprofilesctl'
|
| 1118 |
+
'pr' '_pr'
|
| 1119 |
+
'prev' '_mh'
|
| 1120 |
+
'print' '_print'
|
| 1121 |
+
'printenv' '_printenv'
|
| 1122 |
+
'printf' '_print'
|
| 1123 |
+
'prompt' '_prompt'
|
| 1124 |
+
'protoc' '_protoc'
|
| 1125 |
+
'prove' '_prove'
|
| 1126 |
+
'prs' '_sccs'
|
| 1127 |
+
'prt' '_sccs'
|
| 1128 |
+
'prun' '_pids'
|
| 1129 |
+
'ps' '_ps'
|
| 1130 |
+
'ps2ascii' '_pspdf'
|
| 1131 |
+
'ps2epsi' '_postscript'
|
| 1132 |
+
'ps2pdf' '_postscript'
|
| 1133 |
+
'ps2pdf12' '_postscript'
|
| 1134 |
+
'ps2pdf13' '_postscript'
|
| 1135 |
+
'ps2pdf14' '_postscript'
|
| 1136 |
+
'ps2pdfwr' '_postscript'
|
| 1137 |
+
'ps2ps' '_postscript'
|
| 1138 |
+
'psbook' '_psutils'
|
| 1139 |
+
'psed' '_sed'
|
| 1140 |
+
'psig' '_pids'
|
| 1141 |
+
'psmerge' '_psutils'
|
| 1142 |
+
'psmulti' '_postscript'
|
| 1143 |
+
'psnup' '_psutils'
|
| 1144 |
+
'psql' '_pgsql_utils'
|
| 1145 |
+
'psresize' '_psutils'
|
| 1146 |
+
'psselect' '_psutils'
|
| 1147 |
+
'pstack' '_pids'
|
| 1148 |
+
'pstoedit' '_pspdf'
|
| 1149 |
+
'pstop' '_pids'
|
| 1150 |
+
'pstops' '_psutils'
|
| 1151 |
+
'pstotgif' '_pspdf'
|
| 1152 |
+
'pswrap' '_postscript'
|
| 1153 |
+
'ptx' '_ptx'
|
| 1154 |
+
'pulseaudio' '_pulseaudio'
|
| 1155 |
+
'pump' '_pump'
|
| 1156 |
+
'pushd' '_cd'
|
| 1157 |
+
'pv' '_pv'
|
| 1158 |
+
'pwait' '_pids'
|
| 1159 |
+
'pwdx' '_pids'
|
| 1160 |
+
'pwgen' '_pwgen'
|
| 1161 |
+
'pygmentize' '_pygmentize'
|
| 1162 |
+
'pyhtmlizer' '_twisted'
|
| 1163 |
+
'qdbus' '_qdbus'
|
| 1164 |
+
'qiv' '_qiv'
|
| 1165 |
+
'qmk' '_qmk'
|
| 1166 |
+
'qpdf' '_qpdf'
|
| 1167 |
+
'quilt' '_quilt'
|
| 1168 |
+
'r' '_fc'
|
| 1169 |
+
'rails' '_rails'
|
| 1170 |
+
'rake' '_rake'
|
| 1171 |
+
'ralio' '_ralio'
|
| 1172 |
+
'rankmirrors' '_rankmirrors'
|
| 1173 |
+
'ranlib' '_ranlib'
|
| 1174 |
+
'rar' '_rar'
|
| 1175 |
+
'rc' '_sh'
|
| 1176 |
+
'rclone' '_rclone'
|
| 1177 |
+
'rcp' '_rlogin'
|
| 1178 |
+
'rcs' '_rcs'
|
| 1179 |
+
'rcsdiff' '_rcs'
|
| 1180 |
+
'rdesktop' '_rdesktop'
|
| 1181 |
+
'read' '_read'
|
| 1182 |
+
'readelf' '_readelf'
|
| 1183 |
+
'readlink' '_readlink'
|
| 1184 |
+
'readonly' '_typeset'
|
| 1185 |
+
'rec' '_redis-cli'
|
| 1186 |
+
'-redirect-' '_redirect'
|
| 1187 |
+
'-redirect-,<,bunzip2' '_bzip2'
|
| 1188 |
+
'-redirect-,<,bzip2' '_bzip2'
|
| 1189 |
+
'-redirect-,>,bzip2' '_bzip2'
|
| 1190 |
+
'-redirect-,<,compress' '_compress'
|
| 1191 |
+
'-redirect-,>,compress' '_compress'
|
| 1192 |
+
'-redirect-,-default-,-default-' '_files'
|
| 1193 |
+
'-redirect-,<,gunzip' '_gzip'
|
| 1194 |
+
'-redirect-,<,gzip' '_gzip'
|
| 1195 |
+
'-redirect-,>,gzip' '_gzip'
|
| 1196 |
+
'-redirect-,<,uncompress' '_compress'
|
| 1197 |
+
'-redirect-,<,unxz' '_xz'
|
| 1198 |
+
'-redirect-,<,xz' '_xz'
|
| 1199 |
+
'-redirect-,>,xz' '_xz'
|
| 1200 |
+
'redis-cli' '_redis-cli'
|
| 1201 |
+
'refile' '_mh'
|
| 1202 |
+
'rehash' '_hash'
|
| 1203 |
+
'reindexdb' '_postgresql'
|
| 1204 |
+
'reload' '_initctl'
|
| 1205 |
+
'remsh' '_rlogin'
|
| 1206 |
+
'renice' '_renice'
|
| 1207 |
+
'repl' '_mh'
|
| 1208 |
+
'resolvectl' '_resolvectl'
|
| 1209 |
+
'restart' '_initctl'
|
| 1210 |
+
'retawq' '_webbrowser'
|
| 1211 |
+
'rfkill' '_rfkill'
|
| 1212 |
+
'rg' '_rg'
|
| 1213 |
+
'rgrep' '_grep'
|
| 1214 |
+
'rgview' '_vim'
|
| 1215 |
+
'rgvim' '_vim'
|
| 1216 |
+
'ri' '_ri'
|
| 1217 |
+
'rkt' '_rkt'
|
| 1218 |
+
'rlogin' '_rlogin'
|
| 1219 |
+
'rm' '_rm'
|
| 1220 |
+
'rmd160' '_cksum'
|
| 1221 |
+
'rmdel' '_sccs'
|
| 1222 |
+
'rmdir' '_rmdir'
|
| 1223 |
+
'rmf' '_mh'
|
| 1224 |
+
'rmic' '_java'
|
| 1225 |
+
'rmid' '_java'
|
| 1226 |
+
'rmiregistry' '_java'
|
| 1227 |
+
'rmlint' '_rmlint'
|
| 1228 |
+
'rmlint.sh' '_rmlint'
|
| 1229 |
+
'rmm' '_mh'
|
| 1230 |
+
'rmmod' '_rmmod'
|
| 1231 |
+
'route' '_route'
|
| 1232 |
+
'rrdtool' '_rrdtool'
|
| 1233 |
+
'rsh' '_rlogin'
|
| 1234 |
+
'rslsync' '_rslsync'
|
| 1235 |
+
'rspec' '_rspec'
|
| 1236 |
+
'rsvm' '_rsvm'
|
| 1237 |
+
'rsync' '_rsync'
|
| 1238 |
+
'rtin' '_tin'
|
| 1239 |
+
'rubber' '_rubber'
|
| 1240 |
+
'rubber-info' '_rubber'
|
| 1241 |
+
'rubber-pipe' '_rubber'
|
| 1242 |
+
'rubocop' '_rubocop'
|
| 1243 |
+
'ruby' '_ruby'
|
| 1244 |
+
'ruby-mri' '_ruby'
|
| 1245 |
+
'run0' '_run0'
|
| 1246 |
+
'run-help' '_run-help'
|
| 1247 |
+
'rup' '_hosts'
|
| 1248 |
+
'rusage' '_precommand'
|
| 1249 |
+
'rview' '_vim'
|
| 1250 |
+
'rvim' '_vim'
|
| 1251 |
+
'rwho' '_hosts'
|
| 1252 |
+
'rxvt' '_urxvt'
|
| 1253 |
+
's2p' '_sed'
|
| 1254 |
+
'sact' '_sccs'
|
| 1255 |
+
'sadf' '_sysstat'
|
| 1256 |
+
'sahara' '_openstack'
|
| 1257 |
+
'sar' '_sysstat'
|
| 1258 |
+
'sbt' '_sbt'
|
| 1259 |
+
'scala' '_scala'
|
| 1260 |
+
'scalac' '_scala'
|
| 1261 |
+
'scan' '_mh'
|
| 1262 |
+
'sccs' '_sccs'
|
| 1263 |
+
'sccsdiff' '_sccs'
|
| 1264 |
+
'sched' '_sched'
|
| 1265 |
+
'schedtool' '_schedtool'
|
| 1266 |
+
'scons' '_scons'
|
| 1267 |
+
'scp' '_ssh'
|
| 1268 |
+
'scrcpy' '_scrcpy'
|
| 1269 |
+
'scrcpy.exe' '_scrcpy'
|
| 1270 |
+
'screen' '_screen'
|
| 1271 |
+
'screencapture' '_screencapture'
|
| 1272 |
+
'script' '_script'
|
| 1273 |
+
'scriptreplay' '_script'
|
| 1274 |
+
'scrub' '_scrub'
|
| 1275 |
+
'sd' '_sd'
|
| 1276 |
+
'sdd' '_sdd'
|
| 1277 |
+
'sdkmanager' '_sdkmanager'
|
| 1278 |
+
'seaf-cli' '_seafile'
|
| 1279 |
+
'sed' '_sed'
|
| 1280 |
+
'senlin' '_openstack'
|
| 1281 |
+
'sensors' '_sensors'
|
| 1282 |
+
'sensors-detect' '_sensors-detect'
|
| 1283 |
+
'seq' '_seq'
|
| 1284 |
+
'serialver' '_java'
|
| 1285 |
+
'service' '_service'
|
| 1286 |
+
'set' '_set'
|
| 1287 |
+
'setcap' '_setcap'
|
| 1288 |
+
'setfacl' '_setfacl'
|
| 1289 |
+
'setfacl.exe' '_setfacl'
|
| 1290 |
+
'setfattr' '_attr'
|
| 1291 |
+
'setopt' '_setopt'
|
| 1292 |
+
'setpriv' '_setpriv'
|
| 1293 |
+
'setsid' '_setsid'
|
| 1294 |
+
'setup.py' '_setup.py'
|
| 1295 |
+
'setxkbmap' '_setxkbmap'
|
| 1296 |
+
'sfdx' '_sfdx'
|
| 1297 |
+
'sftp' '_ssh'
|
| 1298 |
+
'sh' '_sh'
|
| 1299 |
+
'sha1' '_cksum'
|
| 1300 |
+
'sha1sum' '_md5sum'
|
| 1301 |
+
'sha224sum' '_md5sum'
|
| 1302 |
+
'sha256' '_cksum'
|
| 1303 |
+
'sha256sum' '_md5sum'
|
| 1304 |
+
'sha384' '_cksum'
|
| 1305 |
+
'sha384sum' '_md5sum'
|
| 1306 |
+
'sha512' '_cksum'
|
| 1307 |
+
'sha512sum' '_md5sum'
|
| 1308 |
+
'sha512t256' '_cksum'
|
| 1309 |
+
'shasum' '_shasum'
|
| 1310 |
+
'shellcheck' '_shellcheck'
|
| 1311 |
+
'shift' '_arrays'
|
| 1312 |
+
'show' '_mh'
|
| 1313 |
+
'showchar' '_psutils'
|
| 1314 |
+
'showmount' '_showmount'
|
| 1315 |
+
'showoff' '_showoff'
|
| 1316 |
+
'shred' '_shred'
|
| 1317 |
+
'shuf' '_shuf'
|
| 1318 |
+
'shutdown' '_shutdown'
|
| 1319 |
+
'sisu' '_sisu'
|
| 1320 |
+
'skein1024' '_cksum'
|
| 1321 |
+
'skein256' '_cksum'
|
| 1322 |
+
'skein512' '_cksum'
|
| 1323 |
+
'skipstone' '_webbrowser'
|
| 1324 |
+
'slabtop' '_slabtop'
|
| 1325 |
+
'slitex' '_tex'
|
| 1326 |
+
'slocate' '_locate'
|
| 1327 |
+
'slogin' '_ssh'
|
| 1328 |
+
'slrn' '_slrn'
|
| 1329 |
+
'smartctl' '_smartmontools'
|
| 1330 |
+
'smbclient' '_samba'
|
| 1331 |
+
'smbcontrol' '_samba'
|
| 1332 |
+
'smbstatus' '_samba'
|
| 1333 |
+
'snapper' '_snapper'
|
| 1334 |
+
'soa' '_hosts'
|
| 1335 |
+
'socket' '_socket'
|
| 1336 |
+
'sort' '_sort'
|
| 1337 |
+
'sortm' '_mh'
|
| 1338 |
+
'source' '_source'
|
| 1339 |
+
'spamassassin' '_spamassassin'
|
| 1340 |
+
'split' '_split'
|
| 1341 |
+
'splitdiff' '_patchutils'
|
| 1342 |
+
'sqlite' '_sqlite'
|
| 1343 |
+
'sqlite3' '_sqlite'
|
| 1344 |
+
'sqsh' '_sqsh'
|
| 1345 |
+
'sqv' '_sqv'
|
| 1346 |
+
'sr' '_surfraw'
|
| 1347 |
+
'srm' '_srm'
|
| 1348 |
+
'srptool' '_gnutls'
|
| 1349 |
+
'ss' '_ss'
|
| 1350 |
+
'ssh' '_ssh'
|
| 1351 |
+
'ssh-add' '_ssh'
|
| 1352 |
+
'ssh-agent' '_ssh'
|
| 1353 |
+
'ssh-copy-id' '_ssh'
|
| 1354 |
+
'sshfs' '_sshfs'
|
| 1355 |
+
'ssh-keygen' '_ssh'
|
| 1356 |
+
'ssh-keyscan' '_ssh'
|
| 1357 |
+
'stack' '_stack'
|
| 1358 |
+
'star' '_tar'
|
| 1359 |
+
'start' '_initctl'
|
| 1360 |
+
'stat' '_stat'
|
| 1361 |
+
'status' '_initctl'
|
| 1362 |
+
'stdbuf' '_stdbuf'
|
| 1363 |
+
'stg' '_stgit'
|
| 1364 |
+
'stop' '_initctl'
|
| 1365 |
+
'stow' '_stow'
|
| 1366 |
+
'strace' '_strace'
|
| 1367 |
+
'strace64' '_strace'
|
| 1368 |
+
'strftime' '_strftime'
|
| 1369 |
+
'strings' '_strings'
|
| 1370 |
+
'strip' '_strip'
|
| 1371 |
+
'strongswan' '_ipsec'
|
| 1372 |
+
'stty' '_stty'
|
| 1373 |
+
'su' '_su'
|
| 1374 |
+
'subl' '_sublimetext'
|
| 1375 |
+
'subliminal' '_subliminal'
|
| 1376 |
+
'-subscript-' '_subscript'
|
| 1377 |
+
'sudo' '_sudo'
|
| 1378 |
+
'sudoedit' '_sudo'
|
| 1379 |
+
'sum' '_cksum'
|
| 1380 |
+
'supervisorctl' '_supervisorctl'
|
| 1381 |
+
'surfraw' '_surfraw'
|
| 1382 |
+
'sv' '_runit'
|
| 1383 |
+
'svm' '_svm'
|
| 1384 |
+
'svn' '_subversion'
|
| 1385 |
+
'svnadmin' '_subversion'
|
| 1386 |
+
'svnadmin-static' '_subversion'
|
| 1387 |
+
'svnlite' '_subversion'
|
| 1388 |
+
'svnliteadmin' '_subversion'
|
| 1389 |
+
'swaks' '_swaks'
|
| 1390 |
+
'swanctl' '_swanctl'
|
| 1391 |
+
'swift' '_swift'
|
| 1392 |
+
'swiftc' '_swift'
|
| 1393 |
+
'sync' '_nothing'
|
| 1394 |
+
'sysctl' '_sysctl'
|
| 1395 |
+
'systemctl' '_systemctl'
|
| 1396 |
+
'systemd-analyze' '_systemd-analyze'
|
| 1397 |
+
'systemd-ask-password' '_systemd'
|
| 1398 |
+
'systemd-cat' '_systemd'
|
| 1399 |
+
'systemd-cgls' '_systemd'
|
| 1400 |
+
'systemd-cgtop' '_systemd'
|
| 1401 |
+
'systemd-delta' '_systemd-delta'
|
| 1402 |
+
'systemd-detect-virt' '_systemd'
|
| 1403 |
+
'systemd-inhibit' '_systemd-inhibit'
|
| 1404 |
+
'systemd-machine-id-setup' '_systemd'
|
| 1405 |
+
'systemd-notify' '_systemd'
|
| 1406 |
+
'systemd-nspawn' '_systemd-nspawn'
|
| 1407 |
+
'systemd-path' '_systemd-path'
|
| 1408 |
+
'systemd-resolve' '_resolvectl'
|
| 1409 |
+
'systemd-run' '_systemd-run'
|
| 1410 |
+
'systemd-tmpfiles' '_systemd-tmpfiles'
|
| 1411 |
+
'systemd-tty-ask-password-agent' '_systemd'
|
| 1412 |
+
'systemsettings' '_systemsettings'
|
| 1413 |
+
'tac' '_tac'
|
| 1414 |
+
'tacker' '_openstack'
|
| 1415 |
+
'tail' '_tail'
|
| 1416 |
+
'talk' '_other_accounts'
|
| 1417 |
+
'tar' '_tar'
|
| 1418 |
+
'tardy' '_tardy'
|
| 1419 |
+
'tcpdump' '_tcpdump'
|
| 1420 |
+
'tcp_open' '_tcpsys'
|
| 1421 |
+
'tcptraceroute' '_tcptraceroute'
|
| 1422 |
+
'tcsh' '_sh'
|
| 1423 |
+
'tda' '_devtodo'
|
| 1424 |
+
'tdd' '_devtodo'
|
| 1425 |
+
'tde' '_devtodo'
|
| 1426 |
+
'tdr' '_devtodo'
|
| 1427 |
+
'teamocil' '_teamocil'
|
| 1428 |
+
'tee' '_tee'
|
| 1429 |
+
'telnet' '_telnet'
|
| 1430 |
+
'tex' '_tex'
|
| 1431 |
+
'texi2any' '_texinfo'
|
| 1432 |
+
'texi2dvi' '_texinfo'
|
| 1433 |
+
'texi2pdf' '_texinfo'
|
| 1434 |
+
'texindex' '_texinfo'
|
| 1435 |
+
'tg' '_topgit'
|
| 1436 |
+
'thor' '_thor'
|
| 1437 |
+
'tidy' '_tidy'
|
| 1438 |
+
'tig' '_git'
|
| 1439 |
+
'-tilde-' '_tilde'
|
| 1440 |
+
'time' '_precommand'
|
| 1441 |
+
'timedatectl' '_timedatectl'
|
| 1442 |
+
'timeout' '_timeout'
|
| 1443 |
+
'times' '_nothing'
|
| 1444 |
+
'tin' '_tin'
|
| 1445 |
+
'tkconch' '_twisted'
|
| 1446 |
+
'tkinfo' '_texinfo'
|
| 1447 |
+
'tla' '_tla'
|
| 1448 |
+
'tldr' '_tldr'
|
| 1449 |
+
'tload' '_tload'
|
| 1450 |
+
'tmux' '_tmux'
|
| 1451 |
+
'tmuxinator' '_tmuxinator'
|
| 1452 |
+
'todo' '_devtodo'
|
| 1453 |
+
'todo.sh' '_todo.sh'
|
| 1454 |
+
'toilet' '_toilet'
|
| 1455 |
+
'top' '_top'
|
| 1456 |
+
'totdconfig' '_totd'
|
| 1457 |
+
'touch' '_touch'
|
| 1458 |
+
'tox' '_tox'
|
| 1459 |
+
'tpb' '_tpb'
|
| 1460 |
+
'tput' '_tput'
|
| 1461 |
+
'tr' '_tr'
|
| 1462 |
+
'tracepath' '_tracepath'
|
| 1463 |
+
'tracepath6' '_tracepath'
|
| 1464 |
+
'traceroute' '_hosts'
|
| 1465 |
+
'transmission-remote' '_transmission'
|
| 1466 |
+
'trap' '_trap'
|
| 1467 |
+
'tree' '_tree'
|
| 1468 |
+
'trial' '_twisted'
|
| 1469 |
+
'trove' '_openstack'
|
| 1470 |
+
'true' '_nothing'
|
| 1471 |
+
'truncate' '_truncate'
|
| 1472 |
+
'truss' '_truss'
|
| 1473 |
+
'trust' '_trust'
|
| 1474 |
+
'tryaffix' '_ispell'
|
| 1475 |
+
'tsc' '_tsc'
|
| 1476 |
+
'ts-node' '_ts-node'
|
| 1477 |
+
'tty' '_tty'
|
| 1478 |
+
'ttyctl' '_ttyctl'
|
| 1479 |
+
'tunctl' '_uml'
|
| 1480 |
+
'tune2fs' '_tune2fs'
|
| 1481 |
+
'tunes2pod' '_gnupod'
|
| 1482 |
+
'tunes2pod.pl' '_gnupod'
|
| 1483 |
+
'twidge' '_twidge'
|
| 1484 |
+
'twist' '_twisted'
|
| 1485 |
+
'twistd' '_twisted'
|
| 1486 |
+
'txt' '_hosts'
|
| 1487 |
+
'type' '_which'
|
| 1488 |
+
'typeset' '_typeset'
|
| 1489 |
+
'udevadm' '_udevadm'
|
| 1490 |
+
'udisksctl' '_udisks2'
|
| 1491 |
+
'ufw' '_ufw'
|
| 1492 |
+
'ulimit' '_ulimit'
|
| 1493 |
+
'uml_mconsole' '_uml'
|
| 1494 |
+
'uml_moo' '_uml'
|
| 1495 |
+
'uml_switch' '_uml'
|
| 1496 |
+
'umount' '_mount'
|
| 1497 |
+
'unace' '_unace'
|
| 1498 |
+
'unalias' '_aliases'
|
| 1499 |
+
'uname' '_uname'
|
| 1500 |
+
'uncompress' '_compress'
|
| 1501 |
+
'unexpand' '_unexpand'
|
| 1502 |
+
'unfunction' '_functions'
|
| 1503 |
+
'unget' '_sccs'
|
| 1504 |
+
'unhash' '_unhash'
|
| 1505 |
+
'uniq' '_uniq'
|
| 1506 |
+
'unison' '_unison'
|
| 1507 |
+
'units' '_units'
|
| 1508 |
+
'unix2dos' '_dos2unix'
|
| 1509 |
+
'unix2mac' '_dos2unix'
|
| 1510 |
+
'unlimit' '_limits'
|
| 1511 |
+
'unlz4' '_lz4'
|
| 1512 |
+
'unlzma' '_xz'
|
| 1513 |
+
'unpack' '_pack'
|
| 1514 |
+
'unpigz' '_gzip'
|
| 1515 |
+
'unrar' '_rar'
|
| 1516 |
+
'unset' '_vars'
|
| 1517 |
+
'unsetopt' '_setopt'
|
| 1518 |
+
'unshare' '_unshare'
|
| 1519 |
+
'unwrapdiff' '_patchutils'
|
| 1520 |
+
'unxz' '_xz'
|
| 1521 |
+
'unzip' '_zip'
|
| 1522 |
+
'updpkgsums' '_updpkgsums'
|
| 1523 |
+
'upower' '_upower'
|
| 1524 |
+
'uptime' '_uptime'
|
| 1525 |
+
'urxvt' '_urxvt'
|
| 1526 |
+
'urxvt256c' '_urxvt'
|
| 1527 |
+
'urxvt256cc' '_urxvt'
|
| 1528 |
+
'urxvt256c-ml' '_urxvt'
|
| 1529 |
+
'urxvt256c-mlc' '_urxvt'
|
| 1530 |
+
'urxvtc' '_urxvt'
|
| 1531 |
+
'useradd' '_user_admin'
|
| 1532 |
+
'userdel' '_users'
|
| 1533 |
+
'usermod' '_user_admin'
|
| 1534 |
+
'vacuumdb' '_pgsql_utils'
|
| 1535 |
+
'val' '_sccs'
|
| 1536 |
+
'valgrind' '_valgrind'
|
| 1537 |
+
'-value-' '_value'
|
| 1538 |
+
'-value-,ADB_TRACE,-default-' '_adb'
|
| 1539 |
+
'-value-,ANDROID_LOG_TAGS,-default-' '_adb'
|
| 1540 |
+
'-value-,ANDROID_SERIAL,-default-' '_adb'
|
| 1541 |
+
'-value-,ANSIBLE_INVENTORY_ENABLED,-default-' '_ansible'
|
| 1542 |
+
'-value-,ANSIBLE_STDOUT_CALLBACK,-default-' '_ansible'
|
| 1543 |
+
'-value-,ANT_ARGS,-default-' '_ant'
|
| 1544 |
+
'-value-,CFLAGS,-default-' '_gcc'
|
| 1545 |
+
'-value-,CMAKE_GENERATOR,-default-' '_cmake'
|
| 1546 |
+
'-value-,CPPFLAGS,-default-' '_gcc'
|
| 1547 |
+
'-value-,CXXFLAGS,-default-' '_gcc'
|
| 1548 |
+
'-value-,-default-,-command-' '_zargs'
|
| 1549 |
+
'-value-,-default-,-default-' '_value'
|
| 1550 |
+
'-value-,DISPLAY,-default-' '_x_display'
|
| 1551 |
+
'-value-,GREP_OPTIONS,-default-' '_grep'
|
| 1552 |
+
'-value-,GZIP,-default-' '_gzip'
|
| 1553 |
+
'-value-,LANG,-default-' '_locales'
|
| 1554 |
+
'-value-,LANGUAGE,-default-' '_locales'
|
| 1555 |
+
'-value-,LD_DEBUG,-default-' '_ld_debug'
|
| 1556 |
+
'-value-,LDFLAGS,-default-' '_gcc'
|
| 1557 |
+
'-value-,LESSCHARSET,-default-' '_less'
|
| 1558 |
+
'-value-,LESS,-default-' '_less'
|
| 1559 |
+
'-value-,LOOPDEV_DEBUG,-default-' '_losetup'
|
| 1560 |
+
'-value-,LPDEST,-default-' '_printers'
|
| 1561 |
+
'-value-,MPD_HOST,-default' '_mpc'
|
| 1562 |
+
'-value-,P4CLIENT,-default-' '_perforce'
|
| 1563 |
+
'-value-,P4MERGE,-default-' '_perforce'
|
| 1564 |
+
'-value-,P4PORT,-default-' '_perforce'
|
| 1565 |
+
'-value-,P4USER,-default-' '_perforce'
|
| 1566 |
+
'-value-,PERLDOC,-default-' '_perldoc'
|
| 1567 |
+
'-value-,PRINTER,-default-' '_printers'
|
| 1568 |
+
'-value-,PROMPT2,-default-' '_ps1234'
|
| 1569 |
+
'-value-,PROMPT3,-default-' '_ps1234'
|
| 1570 |
+
'-value-,PROMPT4,-default-' '_ps1234'
|
| 1571 |
+
'-value-,PROMPT,-default-' '_ps1234'
|
| 1572 |
+
'-value-,PS1,-default-' '_ps1234'
|
| 1573 |
+
'-value-,PS2,-default-' '_ps1234'
|
| 1574 |
+
'-value-,PS3,-default-' '_ps1234'
|
| 1575 |
+
'-value-,PS4,-default-' '_ps1234'
|
| 1576 |
+
'-value-,RPROMPT2,-default-' '_ps1234'
|
| 1577 |
+
'-value-,RPROMPT,-default-' '_ps1234'
|
| 1578 |
+
'-value-,RPS1,-default-' '_ps1234'
|
| 1579 |
+
'-value-,RPS2,-default-' '_ps1234'
|
| 1580 |
+
'-value-,SPROMPT,-default-' '_ps1234'
|
| 1581 |
+
'-value-,TERM,-default-' '_terminals'
|
| 1582 |
+
'-value-,TERMINFO_DIRS,-default-' '_dir_list'
|
| 1583 |
+
'-value-,TZ,-default-' '_time_zone'
|
| 1584 |
+
'-value-,VALGRIND_OPTS,-default-' '_valgrind'
|
| 1585 |
+
'-value-,WWW_HOME,-default-' '_urls'
|
| 1586 |
+
'-value-,XML_CATALOG_FILES,-default-' '_xmlsoft'
|
| 1587 |
+
'-value-,XZ_DEFAULTS,-default-' '_xz'
|
| 1588 |
+
'-value-,XZ_OPT,-default-' '_xz'
|
| 1589 |
+
'-vared-' '_in_vared'
|
| 1590 |
+
'vared' '_vared'
|
| 1591 |
+
'varlinkctl' '_varlinkctl'
|
| 1592 |
+
'vboxheadless' '_virtualbox'
|
| 1593 |
+
'VBoxHeadless' '_virtualbox'
|
| 1594 |
+
'vboxmanage' '_virtualbox'
|
| 1595 |
+
'VBoxManage' '_virtualbox'
|
| 1596 |
+
'vcs_info_hookadd' '_vcs_info'
|
| 1597 |
+
'vcs_info_hookdel' '_vcs_info'
|
| 1598 |
+
'vi' '_vi'
|
| 1599 |
+
'view' '_vi'
|
| 1600 |
+
'vim' '_vim'
|
| 1601 |
+
'vimdiff' '_vim'
|
| 1602 |
+
'virsh' '_libvirt'
|
| 1603 |
+
'virt-admin' '_libvirt'
|
| 1604 |
+
'virt-host-validate' '_libvirt'
|
| 1605 |
+
'virt-pki-validate' '_libvirt'
|
| 1606 |
+
'virt-xml-validate' '_libvirt'
|
| 1607 |
+
'visudo' '_visudo'
|
| 1608 |
+
'vitrage' '_openstack'
|
| 1609 |
+
'vmstat' '_vmstat'
|
| 1610 |
+
'vncserver' '_vnc'
|
| 1611 |
+
'vncviewer' '_vnc'
|
| 1612 |
+
'vnstat' '_vnstat'
|
| 1613 |
+
'vorbiscomment' '_vorbis'
|
| 1614 |
+
'vpnc' '_vpnc'
|
| 1615 |
+
'vpnc-connect' '_vpnc'
|
| 1616 |
+
'vserver' '_vserver'
|
| 1617 |
+
'w' '_w'
|
| 1618 |
+
'w3m' '_w3m'
|
| 1619 |
+
'wait' '_wait'
|
| 1620 |
+
'watch' '_watch'
|
| 1621 |
+
'watcher' '_openstack'
|
| 1622 |
+
'wc' '_wc'
|
| 1623 |
+
'wemux' '_wemux'
|
| 1624 |
+
'wget' '_wget'
|
| 1625 |
+
'wg-quick' '_wg-quick'
|
| 1626 |
+
'what' '_sccs'
|
| 1627 |
+
'whatis' '_man'
|
| 1628 |
+
'whence' '_which'
|
| 1629 |
+
'where' '_which'
|
| 1630 |
+
'whereis' '_whereis'
|
| 1631 |
+
'which' '_which'
|
| 1632 |
+
'who' '_who'
|
| 1633 |
+
'whoami' '_nothing'
|
| 1634 |
+
'whois' '_whois'
|
| 1635 |
+
'whom' '_mh'
|
| 1636 |
+
'wifi-menu' '_netctl'
|
| 1637 |
+
'wiggle' '_wiggle'
|
| 1638 |
+
'wipefs' '_wipefs'
|
| 1639 |
+
'wodim' '_cdrecord'
|
| 1640 |
+
'wpa_cli' '_wpa_cli'
|
| 1641 |
+
'wpctl' '_wpctl'
|
| 1642 |
+
'write' '_users_on'
|
| 1643 |
+
'www' '_webbrowser'
|
| 1644 |
+
'xargs' '_xargs'
|
| 1645 |
+
'xattr' '_attr'
|
| 1646 |
+
'xauth' '_xauth'
|
| 1647 |
+
'xautolock' '_xautolock'
|
| 1648 |
+
'xclip' '_xclip'
|
| 1649 |
+
'xdpyinfo' '_x_utils'
|
| 1650 |
+
'xdvi' '_xdvi'
|
| 1651 |
+
'xelatex' '_tex'
|
| 1652 |
+
'xetex' '_tex'
|
| 1653 |
+
'xev' '_x_utils'
|
| 1654 |
+
'xfd' '_x_utils'
|
| 1655 |
+
'xfig' '_xfig'
|
| 1656 |
+
'xfontsel' '_x_utils'
|
| 1657 |
+
'xfreerdp' '_rdesktop'
|
| 1658 |
+
'xhost' '_x_utils'
|
| 1659 |
+
'xinput' '_xinput'
|
| 1660 |
+
'xkill' '_x_utils'
|
| 1661 |
+
'xli' '_xloadimage'
|
| 1662 |
+
'xloadimage' '_xloadimage'
|
| 1663 |
+
'xlsatoms' '_x_utils'
|
| 1664 |
+
'xlsclients' '_x_utils'
|
| 1665 |
+
'xml' '_xmlstarlet'
|
| 1666 |
+
'xmllint' '_xmlsoft'
|
| 1667 |
+
'xmlstarlet' '_xmlstarlet'
|
| 1668 |
+
'xmms2' '_xmms2'
|
| 1669 |
+
'xmodmap' '_xmodmap'
|
| 1670 |
+
'xmosaic' '_webbrowser'
|
| 1671 |
+
'xon' '_x_utils'
|
| 1672 |
+
'xournal' '_xournal'
|
| 1673 |
+
'xpdf' '_xpdf'
|
| 1674 |
+
'xping' '_hosts'
|
| 1675 |
+
'xprop' '_x_utils'
|
| 1676 |
+
'xrandr' '_xrandr'
|
| 1677 |
+
'xrdb' '_x_utils'
|
| 1678 |
+
'xscreensaver-command' '_xscreensaver'
|
| 1679 |
+
'xsel' '_xsel'
|
| 1680 |
+
'xset' '_xset'
|
| 1681 |
+
'xsetbg' '_xloadimage'
|
| 1682 |
+
'xsetroot' '_x_utils'
|
| 1683 |
+
'xsltproc' '_xmlsoft'
|
| 1684 |
+
'xterm' '_xterm'
|
| 1685 |
+
'xtightvncviewer' '_vnc'
|
| 1686 |
+
'xtp' '_imagemagick'
|
| 1687 |
+
'xv' '_xv'
|
| 1688 |
+
'xview' '_xloadimage'
|
| 1689 |
+
'xvnc4viewer' '_vnc'
|
| 1690 |
+
'xvncviewer' '_vnc'
|
| 1691 |
+
'xwd' '_x_utils'
|
| 1692 |
+
'xwininfo' '_x_utils'
|
| 1693 |
+
'xwit' '_xwit'
|
| 1694 |
+
'xwud' '_x_utils'
|
| 1695 |
+
'xxd' '_xxd'
|
| 1696 |
+
'xz' '_xz'
|
| 1697 |
+
'xzcat' '_xz'
|
| 1698 |
+
'yafc' '_yafc'
|
| 1699 |
+
'yarn' '_yarn'
|
| 1700 |
+
'yash' '_sh'
|
| 1701 |
+
'ypbind' '_yp'
|
| 1702 |
+
'ypcat' '_yp'
|
| 1703 |
+
'ypmatch' '_yp'
|
| 1704 |
+
'yppasswd' '_yp'
|
| 1705 |
+
'yppoll' '_yp'
|
| 1706 |
+
'yppush' '_yp'
|
| 1707 |
+
'ypserv' '_yp'
|
| 1708 |
+
'ypset' '_yp'
|
| 1709 |
+
'ypwhich' '_yp'
|
| 1710 |
+
'ypxfr' '_yp'
|
| 1711 |
+
'ytalk' '_other_accounts'
|
| 1712 |
+
'zargs' '_zargs'
|
| 1713 |
+
'zcalc' '_zcalc'
|
| 1714 |
+
'-zcalc-line-' '_zcalc_line'
|
| 1715 |
+
'zcash-cli' '_zcash-cli'
|
| 1716 |
+
'zcat' '_zcat'
|
| 1717 |
+
'zcompile' '_zcompile'
|
| 1718 |
+
'zcp' '_zmv'
|
| 1719 |
+
'zdb' '_zfs'
|
| 1720 |
+
'zdelattr' '_zattr'
|
| 1721 |
+
'zdump' '_zdump'
|
| 1722 |
+
'zeal' '_zeal'
|
| 1723 |
+
'zed' '_zed'
|
| 1724 |
+
'zegrep' '_grep'
|
| 1725 |
+
'zen' '_webbrowser'
|
| 1726 |
+
'zf_chgrp' '_chown'
|
| 1727 |
+
'zf_chmod' '_chmod'
|
| 1728 |
+
'zf_chown' '_chown'
|
| 1729 |
+
'zfgrep' '_grep'
|
| 1730 |
+
'zf_ln' '_ln'
|
| 1731 |
+
'zf_mkdir' '_mkdir'
|
| 1732 |
+
'zf_mv' '_mv'
|
| 1733 |
+
'zf_rm' '_rm'
|
| 1734 |
+
'zf_rmdir' '_rmdir'
|
| 1735 |
+
'zfs' '_zfs'
|
| 1736 |
+
'zgetattr' '_zattr'
|
| 1737 |
+
'zgrep' '_grep'
|
| 1738 |
+
'zip' '_zip'
|
| 1739 |
+
'zipinfo' '_zip'
|
| 1740 |
+
'zle' '_zle'
|
| 1741 |
+
'zlistattr' '_zattr'
|
| 1742 |
+
'zln' '_zmv'
|
| 1743 |
+
'zmail' '_mail'
|
| 1744 |
+
'zmodload' '_zmodload'
|
| 1745 |
+
'zmv' '_zmv'
|
| 1746 |
+
'zone' '_hosts'
|
| 1747 |
+
'zparseopts' '_zparseopts'
|
| 1748 |
+
'zpool' '_zfs'
|
| 1749 |
+
'zpty' '_zpty'
|
| 1750 |
+
'zsetattr' '_zattr'
|
| 1751 |
+
'zsh' '_zsh'
|
| 1752 |
+
'zsh-mime-handler' '_zsh-mime-handler'
|
| 1753 |
+
'zsocket' '_zsocket'
|
| 1754 |
+
'zstat' '_stat'
|
| 1755 |
+
'zstyle' '_zstyle'
|
| 1756 |
+
'ztodo' '_ztodo'
|
| 1757 |
+
'zun' '_openstack'
|
| 1758 |
+
'zxpdf' '_xpdf'
|
| 1759 |
+
)
|
| 1760 |
+
|
| 1761 |
+
_services=(
|
| 1762 |
+
'bzcat' 'bunzip2'
|
| 1763 |
+
'gchgrp' 'chgrp'
|
| 1764 |
+
'gchown' 'chown'
|
| 1765 |
+
'gnupod_addsong.pl' 'gnupod_addsong'
|
| 1766 |
+
'gnupod_check.pl' 'gnupod_check'
|
| 1767 |
+
'gnupod_INIT.pl' 'gnupod_INIT'
|
| 1768 |
+
'gnupod_search.pl' 'gnupod_search'
|
| 1769 |
+
'gpg2' 'gpg'
|
| 1770 |
+
'gzcat' 'gunzip'
|
| 1771 |
+
'https' 'http'
|
| 1772 |
+
'iceweasel' 'firefox'
|
| 1773 |
+
'lzcat' 'unxz'
|
| 1774 |
+
'lzma' 'xz'
|
| 1775 |
+
'Mail' 'mail'
|
| 1776 |
+
'mailx' 'mail'
|
| 1777 |
+
'mktunes.pl' 'mktunes'
|
| 1778 |
+
'nail' 'mail'
|
| 1779 |
+
'ncl' 'nc'
|
| 1780 |
+
'nedit-nc' 'nc'
|
| 1781 |
+
'pacman.static' 'pacman'
|
| 1782 |
+
'pcat' 'unpack'
|
| 1783 |
+
'-redirect-,<,bunzip2' 'bunzip2'
|
| 1784 |
+
'-redirect-,<,bzip2' 'bzip2'
|
| 1785 |
+
'-redirect-,>,bzip2' 'bunzip2'
|
| 1786 |
+
'-redirect-,<,compress' 'compress'
|
| 1787 |
+
'-redirect-,>,compress' 'uncompress'
|
| 1788 |
+
'-redirect-,<,gunzip' 'gunzip'
|
| 1789 |
+
'-redirect-,<,gzip' 'gzip'
|
| 1790 |
+
'-redirect-,>,gzip' 'gunzip'
|
| 1791 |
+
'-redirect-,<,uncompress' 'uncompress'
|
| 1792 |
+
'-redirect-,<,unxz' 'unxz'
|
| 1793 |
+
'-redirect-,<,xz' 'xz'
|
| 1794 |
+
'-redirect-,>,xz' 'unxz'
|
| 1795 |
+
'remsh' 'rsh'
|
| 1796 |
+
'slogin' 'ssh'
|
| 1797 |
+
'svnadmin-static' 'svnadmin'
|
| 1798 |
+
'svnlite' 'svn'
|
| 1799 |
+
'svnliteadmin' 'svnadmin'
|
| 1800 |
+
'tunes2pod.pl' 'tunes2pod'
|
| 1801 |
+
'unlzma' 'unxz'
|
| 1802 |
+
'vboxheadless' 'vboxheadless'
|
| 1803 |
+
'VBoxHeadless' 'vboxheadless'
|
| 1804 |
+
'vboxmanage' 'vboxmanage'
|
| 1805 |
+
'VBoxManage' 'vboxmanage'
|
| 1806 |
+
'xelatex' 'latex'
|
| 1807 |
+
'xetex' 'tex'
|
| 1808 |
+
'xzcat' 'unxz'
|
| 1809 |
+
'zf_chgrp' 'chgrp'
|
| 1810 |
+
'zf_chown' 'chown'
|
| 1811 |
+
)
|
| 1812 |
+
|
| 1813 |
+
_patcomps=(
|
| 1814 |
+
'*/(init|rc[0-9S]#).d/*' '_init_d'
|
| 1815 |
+
)
|
| 1816 |
+
|
| 1817 |
+
_postpatcomps=(
|
| 1818 |
+
'_*' '_compadd'
|
| 1819 |
+
'c++-*' '_gcc'
|
| 1820 |
+
'g++-*' '_gcc'
|
| 1821 |
+
'gcc-*' '_gcc'
|
| 1822 |
+
'gem[0-9.]#' '_gem'
|
| 1823 |
+
'lua[0-9.-]##' '_lua'
|
| 1824 |
+
'(p[bgpn]m*|*top[bgpn]m)' '_pbm'
|
| 1825 |
+
'php[0-9.-]' '_php'
|
| 1826 |
+
'pip[0-9.]#' '_pip'
|
| 1827 |
+
'pydoc[0-9.]#' '_pydoc'
|
| 1828 |
+
'python[0-9.]#' '_python'
|
| 1829 |
+
'qemu(|-system-*)' '_qemu'
|
| 1830 |
+
'rmlint.*.sh' '_rmlint'
|
| 1831 |
+
'(ruby|[ei]rb)[0-9.]#' '_ruby'
|
| 1832 |
+
'shasum(|5).*' '_shasum'
|
| 1833 |
+
'(texi(2*|ndex))' '_texi'
|
| 1834 |
+
'(tiff*|*2tiff|pal2rgb)' '_tiff'
|
| 1835 |
+
'-value-,CCACHE_*,-default-' '_ccache'
|
| 1836 |
+
'-value-,CGO*,-default-' '_golang'
|
| 1837 |
+
'-value-,(ftp|http(|s))_proxy,-default-' '_urls'
|
| 1838 |
+
'-value-,GO*,-default-' '_golang'
|
| 1839 |
+
'-value-,LC_*,-default-' '_locales'
|
| 1840 |
+
'-value-,*path,-default-' '_directories'
|
| 1841 |
+
'-value-,*PATH,-default-' '_dir_list'
|
| 1842 |
+
'-value-,RUBY(LIB|OPT|PATH),-default-' '_ruby'
|
| 1843 |
+
'*/X11(|R<4->)/*' '_x_arguments'
|
| 1844 |
+
'yodl(|2*)' '_yodl'
|
| 1845 |
+
'zf*' '_zftp'
|
| 1846 |
+
)
|
| 1847 |
+
|
| 1848 |
+
_compautos=(
|
| 1849 |
+
'_call_program' '+X'
|
| 1850 |
+
)
|
| 1851 |
+
|
| 1852 |
+
zle -C _bash_complete-word .complete-word _bash_completions
|
| 1853 |
+
zle -C _bash_list-choices .list-choices _bash_completions
|
| 1854 |
+
zle -C _complete_debug .complete-word _complete_debug
|
| 1855 |
+
zle -C _complete_help .complete-word _complete_help
|
| 1856 |
+
zle -C _complete_tag .complete-word _complete_tag
|
| 1857 |
+
zle -C _correct_filename .complete-word _correct_filename
|
| 1858 |
+
zle -C _correct_word .complete-word _correct_word
|
| 1859 |
+
zle -C _expand_alias .complete-word _expand_alias
|
| 1860 |
+
zle -C _expand_word .complete-word _expand_word
|
| 1861 |
+
zle -C _history-complete-newer .complete-word _history_complete_word
|
| 1862 |
+
zle -C _history-complete-older .complete-word _history_complete_word
|
| 1863 |
+
zle -C _list_expansions .list-choices _expand_word
|
| 1864 |
+
zle -C _most_recent_file .complete-word _most_recent_file
|
| 1865 |
+
zle -C _next_tags .list-choices _next_tags
|
| 1866 |
+
zle -C _read_comp .complete-word _read_comp
|
| 1867 |
+
bindkey '^X^R' _read_comp
|
| 1868 |
+
bindkey '^X?' _complete_debug
|
| 1869 |
+
bindkey '^XC' _correct_filename
|
| 1870 |
+
bindkey '^Xa' _expand_alias
|
| 1871 |
+
bindkey '^Xc' _correct_word
|
| 1872 |
+
bindkey '^Xd' _list_expansions
|
| 1873 |
+
bindkey '^Xe' _expand_word
|
| 1874 |
+
bindkey '^Xh' _complete_help
|
| 1875 |
+
bindkey '^Xm' _most_recent_file
|
| 1876 |
+
bindkey '^Xn' _next_tags
|
| 1877 |
+
bindkey '^Xt' _complete_tag
|
| 1878 |
+
bindkey '^X~' _bash_list-choices
|
| 1879 |
+
bindkey '^[,' _history-complete-newer
|
| 1880 |
+
bindkey '^[/' _history-complete-older
|
| 1881 |
+
bindkey '^[~' _bash_complete-word
|
| 1882 |
+
|
| 1883 |
+
autoload -Uz _extract _afew _alacritty _android _arch-chroot \
|
| 1884 |
+
_archlinux-java _artisan _atach _avdmanager _bat \
|
| 1885 |
+
_bitcoin-cli _bluetoothctl _bootctl _bower _bundle \
|
| 1886 |
+
_busctl _bwrap _cap _cargo _cask \
|
| 1887 |
+
_ccache _cf _checkupdates _choc _chromium \
|
| 1888 |
+
_chwd _clang-check _clang-format _clang-tidy _cmake \
|
| 1889 |
+
_code _code-oss _coffee _conan _concourse \
|
| 1890 |
+
_console _coredumpctl _cppcheck _ctr _curl \
|
| 1891 |
+
_dad _dart _dget _dhcpcd _diana \
|
| 1892 |
+
_direnv _docker _docpad _dolphin _drush \
|
| 1893 |
+
_ecdsautil _emacs _emacsclient _emulator _envdir \
|
| 1894 |
+
_exportfs _eza _fab _fail2ban-client _fastfetch \
|
| 1895 |
+
_fd _ffind _fleetctl _flutter _fvm \
|
| 1896 |
+
_fwupdmgr _gas _genfstab _ghc _gist \
|
| 1897 |
+
_git-flow _git-pulls _git-revise _git-wtf _glances \
|
| 1898 |
+
_golang _google _gpgconf _grpcurl _gtk-launch \
|
| 1899 |
+
_hello _hledger _homestead _hostnamectl _httpie \
|
| 1900 |
+
_ibus _img2sixel _include-what-you-use _insmod _inxi \
|
| 1901 |
+
_jmeter _jmeter-plugins _jonas _journalctl _jrnl \
|
| 1902 |
+
_kak _kdeconnect _kde-inhibit _kernel-install _kitchen \
|
| 1903 |
+
_knife _konsole _krunner _kscreen-doctor _language_codes \
|
| 1904 |
+
_libinput _lilypond _localectl _loginctl _lsmod \
|
| 1905 |
+
_lunchy _machinectl _mc _meson _middleman \
|
| 1906 |
+
_mina _mix _mkcert _mkinitcpio _mpv \
|
| 1907 |
+
_mssh _mullvad _mussh _mvn _nano \
|
| 1908 |
+
_nanoc _neofetch _netctl _networkctl _networkQuality \
|
| 1909 |
+
_nftables _ninja _node _nvm _oomctl \
|
| 1910 |
+
_openssl _openvpn3 _optirun _p11-kit _paccache \
|
| 1911 |
+
_pacdiff _paclist _paclog-pkglist _pacman _pacscripts \
|
| 1912 |
+
_pacsearch _pacsort _pacstrap _pactree _parallel \
|
| 1913 |
+
_paru _patchelf _patool _periscope _pgsql_utils \
|
| 1914 |
+
_phing _pip _pixz _pkcon _pkgfile \
|
| 1915 |
+
_plasmashell _play _pm2 _port _powerprofilesctl \
|
| 1916 |
+
_protoc _pulseaudio _pygmentize _qmk _qpdf \
|
| 1917 |
+
_rails _ralio _rankmirrors _redis-cli _resolvectl \
|
| 1918 |
+
_rfkill _rg _rkt _rmlint _rmmod \
|
| 1919 |
+
_rslsync _rspec _rsvm _rubocop _run0 \
|
| 1920 |
+
_sbt _scala _scrcpy _screencapture _scrub \
|
| 1921 |
+
_sd _sdd _sd_hosts_or_user_at_host _sdkmanager _sd_machines \
|
| 1922 |
+
_sd_outputmodes _sd_unit_files _sensors _sensors-detect _setcap \
|
| 1923 |
+
_setup.py _sfdx _shellcheck _showoff _snapper \
|
| 1924 |
+
_sqv _srm _stack _subliminal _supervisorctl \
|
| 1925 |
+
_svm _systemctl _systemd _systemd-analyze _systemd-delta \
|
| 1926 |
+
_systemd-inhibit _systemd-nspawn _systemd-path _systemd-run _systemd-tmpfiles \
|
| 1927 |
+
_systemsettings _teamocil _thor _timedatectl _tldr \
|
| 1928 |
+
_tmuxinator _tox _trust _tsc _ts-node \
|
| 1929 |
+
_udevadm _udisks2 _udisksctl _ufw _updpkgsums \
|
| 1930 |
+
_upower _varlinkctl _virtualbox _vnstat _wemux \
|
| 1931 |
+
_wg-quick _wpctl _xsel _yarn _zcash-cli \
|
| 1932 |
+
_cdr _all_labels _all_matches _alternative _approximate \
|
| 1933 |
+
_arg_compile _arguments _bash_completions _cache_invalid _call_function \
|
| 1934 |
+
_combination _complete _complete_debug _complete_help _complete_help_generic \
|
| 1935 |
+
_complete_tag _comp_locale _correct _correct_filename _correct_word \
|
| 1936 |
+
_describe _description _dispatch _expand _expand_alias \
|
| 1937 |
+
_expand_word _extensions _external_pwds _generic _guard \
|
| 1938 |
+
_history _history_complete_word _ignored _list _main_complete \
|
| 1939 |
+
_match _menu _message _most_recent_file _multi_parts \
|
| 1940 |
+
_next_label _next_tags _normal _nothing _numbers \
|
| 1941 |
+
_oldlist _pick_variant _prefix _read_comp _regex_arguments \
|
| 1942 |
+
_regex_words _requested _retrieve_cache _sep_parts _sequence \
|
| 1943 |
+
_set_command _setup _store_cache _sub_commands _tags \
|
| 1944 |
+
_user_expand _values _wanted _acpi _acpitool \
|
| 1945 |
+
_alsa-utils _analyseplugin _basenc _brctl _btrfs \
|
| 1946 |
+
_capabilities _chattr _chcon _choom _chrt \
|
| 1947 |
+
_cpupower _cryptsetup _dkms _e2label _ethtool \
|
| 1948 |
+
_findmnt _free _fuse_arguments _fusermount _fuse_values \
|
| 1949 |
+
_gpasswd _htop _iconvconfig _ionice _ipset \
|
| 1950 |
+
_iptables _iwconfig _kpartx _losetup _lsattr \
|
| 1951 |
+
_lsblk _lsns _lsusb _ltrace _mat \
|
| 1952 |
+
_mat2 _mdadm _mii-tool _modutils _mondo \
|
| 1953 |
+
_networkmanager _nsenter _opkg _perf _pidof \
|
| 1954 |
+
_pmap _qdbus _schedtool _selinux_contexts _selinux_roles \
|
| 1955 |
+
_selinux_types _selinux_users _setpriv _setsid _slabtop \
|
| 1956 |
+
_ss _sshfs _strace _sysstat _tload \
|
| 1957 |
+
_tpb _tracepath _tune2fs _uml _unshare \
|
| 1958 |
+
_valgrind _vserver _wakeup_capable_devices _wipefs _wpa_cli \
|
| 1959 |
+
_a2ps _aap _abcde _absolute_command_paths _ack \
|
| 1960 |
+
_adb _ansible _ant _antiword _apachectl \
|
| 1961 |
+
_apm _arch_archives _arch_namespace _arp _arping \
|
| 1962 |
+
_asciidoctor _asciinema _at _attr _augeas \
|
| 1963 |
+
_avahi _awk _base64 _basename _bash \
|
| 1964 |
+
_baudrates _baz _beep _bibtex _bind_addresses \
|
| 1965 |
+
_bison _bittorrent _bogofilter _bpf_filters _bpython \
|
| 1966 |
+
_bzip2 _bzr _cabal _cal _calendar \
|
| 1967 |
+
_canonical_paths _cat _ccal _cdcd _cdrdao \
|
| 1968 |
+
_cdrecord _chkconfig _chmod _chown _chroot \
|
| 1969 |
+
_chsh _cksum _clay _cmdambivalent _cmdstring \
|
| 1970 |
+
_cmp _column _comm _composer _compress \
|
| 1971 |
+
_configure _cowsay _cp _cpio _cplay \
|
| 1972 |
+
_crontab _cscope _csplit _cssh _ctags \
|
| 1973 |
+
_ctags_tags _curl _cut _cvs _darcs \
|
| 1974 |
+
_date _date_formats _dates _dbus _dconf \
|
| 1975 |
+
_dd _devtodo _df _dhclient _dict \
|
| 1976 |
+
_dict_words _diff _diff3 _diff_options _diffstat \
|
| 1977 |
+
_dig _directories _dir_list _django _dmesg \
|
| 1978 |
+
_dmidecode _dns_types _doas _domains _dos2unix \
|
| 1979 |
+
_drill _dropbox _dsh _dtruss _du \
|
| 1980 |
+
_dvi _ecasound _ed _elfdump _elinks \
|
| 1981 |
+
_email_addresses _enscript _entr _env _espeak \
|
| 1982 |
+
_etags _fakeroot _feh _fetchmail _ffmpeg \
|
| 1983 |
+
_figlet _file_modes _files _file_systems _find \
|
| 1984 |
+
_find_net_interfaces _finger _flac _flex _fmt \
|
| 1985 |
+
_fold _fortune _fsh _fuser _gcc \
|
| 1986 |
+
_gcore _gdb _gem _genisoimage _getconf \
|
| 1987 |
+
_getent _getfacl _getmail _getopt _ghostscript \
|
| 1988 |
+
_git _global _global_tags _gnu_generic _gnupod \
|
| 1989 |
+
_gnutls _go _gpg _gphoto2 _gprof \
|
| 1990 |
+
_gradle _graphicsmagick _grep _groff _groups \
|
| 1991 |
+
_growisofs _gsettings _guilt _gzip _have_glob_qual \
|
| 1992 |
+
_head _hexdump _host _hostname _hosts \
|
| 1993 |
+
_iconv _id _ifconfig _iftop _imagemagick \
|
| 1994 |
+
_initctl _init_d _install _iostat _ip \
|
| 1995 |
+
_ipsec _irssi _ispell _java _java_class \
|
| 1996 |
+
_joe _join _jq _killall _knock \
|
| 1997 |
+
_kvno _last _ldconfig _ldd _ld_debug \
|
| 1998 |
+
_less _lha _libvirt _links _list_files \
|
| 1999 |
+
_lldb _ln _loadkeys _locale _localedef \
|
| 2000 |
+
_locales _locate _logger _look _lp \
|
| 2001 |
+
_ls _lsof _lua _luarocks _lynx \
|
| 2002 |
+
_lz4 _lzop _mail _mailboxes _make \
|
| 2003 |
+
_man _md5sum _mencal _mh _mime_types \
|
| 2004 |
+
_mkdir _mkfifo _mknod _mktemp _module \
|
| 2005 |
+
_monotone _moosic _mosh _mount _mpc \
|
| 2006 |
+
_mt _mtools _mtr _mutt _mv \
|
| 2007 |
+
_my_accounts _myrepos _mysqldiff _mysql_utils _ncftp \
|
| 2008 |
+
_netcat _net_interfaces _netstat _newsgroups _nginx \
|
| 2009 |
+
_ngrep _nice _nkf _nl _nm \
|
| 2010 |
+
_nmap _npm _nslookup _numfmt _objdump \
|
| 2011 |
+
_object_files _od _openstack _opustools _other_accounts \
|
| 2012 |
+
_pack _pandoc _paste _patch _patchutils \
|
| 2013 |
+
_path_commands _path_files _pax _pbm _pdf \
|
| 2014 |
+
_perforce _perl _perl_basepods _perldoc _perl_modules \
|
| 2015 |
+
_pgids _pgrep _php _picocom _pids \
|
| 2016 |
+
_pine _ping _pip _pkgadd _pkg-config \
|
| 2017 |
+
_pkginfo _pkg_instance _pkgrm _pon _ports \
|
| 2018 |
+
_postfix _postgresql _postscript _pr _printenv \
|
| 2019 |
+
_printers _process_names _prove _ps _pspdf \
|
| 2020 |
+
_psutils _ptx _pump _pv _pwgen \
|
| 2021 |
+
_pydoc _python _python_modules _qemu _quilt \
|
| 2022 |
+
_rake _ranlib _rar _rclone _rcs \
|
| 2023 |
+
_readelf _readlink _remote_files _renice _ri \
|
| 2024 |
+
_rlogin _rm _rmdir _route _rrdtool \
|
| 2025 |
+
_rsync _rubber _ruby _runit _samba \
|
| 2026 |
+
_sccs _scons _screen _script _seafile \
|
| 2027 |
+
_sed _seq _service _services _setfacl \
|
| 2028 |
+
_sh _shasum _showmount _shred _shuf \
|
| 2029 |
+
_shutdown _signals _sisu _slrn _smartmontools \
|
| 2030 |
+
_socket _sort _spamassassin _split _sqlite \
|
| 2031 |
+
_sqsh _ssh _ssh_hosts _stat _stdbuf \
|
| 2032 |
+
_stgit _stow _strings _strip _stty \
|
| 2033 |
+
_su _subversion _sudo _surfraw _swaks \
|
| 2034 |
+
_swanctl _swift _sys_calls _sysctl _tac \
|
| 2035 |
+
_tail _tar _tar_archive _tardy _tcpdump \
|
| 2036 |
+
_tcptraceroute _tee _telnet _terminals _tex \
|
| 2037 |
+
_texi _texinfo _tidy _tiff _tilde_files \
|
| 2038 |
+
_timeout _time_zone _tin _tla _tmux \
|
| 2039 |
+
_todo.sh _toilet _top _topgit _totd \
|
| 2040 |
+
_touch _tput _tr _transmission _tree \
|
| 2041 |
+
_truncate _truss _tty _ttys _twidge \
|
| 2042 |
+
_twisted _umountable _unace _uname _unexpand \
|
| 2043 |
+
_uniq _unison _units _uptime _urls \
|
| 2044 |
+
_user_admin _user_at_host _users _users_on _vi \
|
| 2045 |
+
_vim _visudo _vmstat _vorbis _vpnc \
|
| 2046 |
+
_w _w3m _watch _wc _webbrowser \
|
| 2047 |
+
_wget _whereis _who _whois _wiggle \
|
| 2048 |
+
_xargs _xmlsoft _xmlstarlet _xmms2 _xxd \
|
| 2049 |
+
_xz _yafc _yodl _yp _zcat \
|
| 2050 |
+
_zdump _zfs _zfs_dataset _zfs_pool _zip \
|
| 2051 |
+
_zsh _acroread _code _dcop _eog \
|
| 2052 |
+
_evince _geany _gnome-gv _gqview _gv \
|
| 2053 |
+
_kdeconnect _kfmclient _matlab _mozilla _mplayer \
|
| 2054 |
+
_mupdf _nautilus _nedit _netscape _okular \
|
| 2055 |
+
_pdftk _qiv _rdesktop _setxkbmap _sublimetext \
|
| 2056 |
+
_urxvt _vnc _x_arguments _xauth _xautolock \
|
| 2057 |
+
_x_borderwidth _xclip _x_color _x_colormapid _x_cursor \
|
| 2058 |
+
_x_display _xdvi _x_extension _xfig _x_font \
|
| 2059 |
+
_xft_fonts _x_geometry _xinput _x_keysym _xloadimage \
|
| 2060 |
+
_x_locale _x_modifier _xmodmap _x_name _xournal \
|
| 2061 |
+
_xpdf _xrandr _x_resource _xscreensaver _x_selection_timeout \
|
| 2062 |
+
_xset _xt_arguments _xterm _x_title _xt_session_id \
|
| 2063 |
+
_x_utils _xv _x_visual _x_window _xwit \
|
| 2064 |
+
_zeal _add-zle-hook-widget _add-zsh-hook _alias _aliases \
|
| 2065 |
+
__arguments _arrays _assign _autocd _bindkey \
|
| 2066 |
+
_brace_parameter _builtin _cd _command _command_names \
|
| 2067 |
+
_compadd _compdef _completers _condition _default \
|
| 2068 |
+
_delimiters _directory_stack _dirs _disable _dynamic_directory_name \
|
| 2069 |
+
_echotc _echoti _emulate _enable _equal \
|
| 2070 |
+
_exec _fc _file_descriptors _first _functions \
|
| 2071 |
+
_globflags _globqual_delims _globquals _hash _history_modifiers \
|
| 2072 |
+
_in_vared _jobs _jobs_bg _jobs_builtin _jobs_fg \
|
| 2073 |
+
_kill _limit _limits _math _math_params \
|
| 2074 |
+
_mere _module_math_func _options _options_set _options_unset \
|
| 2075 |
+
_parameter _parameters _precommand _print _prompt \
|
| 2076 |
+
_ps1234 _read _redirect _run-help _sched \
|
| 2077 |
+
_set _setopt _source _strftime _subscript \
|
| 2078 |
+
_suffix_alias_files _tcpsys _tilde _trap _ttyctl \
|
| 2079 |
+
_typeset _ulimit _unhash _user_math_func _value \
|
| 2080 |
+
_vared _vars _vcs_info _vcs_info_hooks _wait \
|
| 2081 |
+
_which _widgets _zargs _zattr _zcalc \
|
| 2082 |
+
_zcalc_line _zcompile _zed _zftp _zle \
|
| 2083 |
+
_zmodload _zmv _zparseopts _zpty _zsh-mime-handler \
|
| 2084 |
+
_zsocket _zstyle _ztodo
|
| 2085 |
+
autoload -Uz +X _call_program
|
| 2086 |
+
|
| 2087 |
+
typeset -gUa _comp_assocs
|
| 2088 |
+
_comp_assocs=( '' )
|
| 2089 |
+
|
| 2090 |
+
#omz revision:
|
| 2091 |
+
#omz fpath: /usr/share/oh-my-zsh/plugins/extract /usr/share/oh-my-zsh/plugins/fzf /usr/share/oh-my-zsh/plugins/git /usr/share/oh-my-zsh/functions /usr/share/oh-my-zsh/completions /usr/share/oh-my-zsh/custom/functions /usr/share/oh-my-zsh/custom/completions /home/kill/.cache/oh-my-zsh/completions /usr/local/share/zsh/site-functions /usr/share/zsh/site-functions /usr/share/zsh/functions/Calendar /usr/share/zsh/functions/Chpwd /usr/share/zsh/functions/Completion /usr/share/zsh/functions/Completion/Base /usr/share/zsh/functions/Completion/Linux /usr/share/zsh/functions/Completion/Unix /usr/share/zsh/functions/Completion/X /usr/share/zsh/functions/Completion/Zsh /usr/share/zsh/functions/Exceptions /usr/share/zsh/functions/MIME /usr/share/zsh/functions/Math /usr/share/zsh/functions/Misc /usr/share/zsh/functions/Newuser /usr/share/zsh/functions/Prompts /usr/share/zsh/functions/TCP /usr/share/zsh/functions/VCS_Info /usr/share/zsh/functions/VCS_Info/Backends /usr/share/zsh/functions/Zftp /usr/share/zsh/functions/Zle
|
.zcompdump-11XlAmdaX-5.9.zwc
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:33b124c75ec66ecbd0008276ecfdfdddebc73c25848c743833bb521c069639d6
|
| 3 |
+
size 121064
|
.zsh_history
ADDED
|
File without changes
|
.zshrc
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
source /usr/share/cachyos-zsh-config/cachyos-config.zsh
|
| 2 |
+
|
| 3 |
+
# >>> juliaup initialize >>>
|
| 4 |
+
|
| 5 |
+
# !! Contents within this block are managed by juliaup !!
|
| 6 |
+
|
| 7 |
+
path=('/home/kill/.juliaup/bin' $path)
|
| 8 |
+
export PATH
|
| 9 |
+
|
| 10 |
+
# <<< juliaup initialize <<<
|
9x25dillon_LiMp_ luck
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
App.tsx
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
|
| 2 |
+
import Dashboard from "./routes/Dashboard";
|
| 3 |
+
import PrimerPreview from "./routes/PrimerPreview";
|
| 4 |
+
import OnboardingStart from "./routes/Onboarding/Start";
|
| 5 |
+
import PersonaBasics from "./routes/Onboarding/PersonaBasics";
|
| 6 |
+
import ConsentPrivacy from "./routes/Onboarding/ConsentPrivacy";
|
| 7 |
+
import ImportSources from "./routes/Onboarding/ImportSources";
|
| 8 |
+
import ReviewPin from "./routes/Onboarding/ReviewPin";
|
| 9 |
+
import Timeline from "./routes/Memories/Timeline";
|
| 10 |
+
import Studio from "./routes/Persona/Studio";
|
| 11 |
+
import AdaptersList from "./routes/Adapters/List";
|
| 12 |
+
import AdapterDetail from "./routes/Adapters/Detail";
|
| 13 |
+
import Backup from "./routes/Settings/Backup";
|
| 14 |
+
|
| 15 |
+
function App() {
|
| 16 |
+
return (
|
| 17 |
+
<Router>
|
| 18 |
+
<Routes>
|
| 19 |
+
<Route path="/" element={<OnboardingStart />} />
|
| 20 |
+
<Route path="/onboarding/persona" element={<PersonaBasics />} />
|
| 21 |
+
<Route path="/onboarding/consent" element={<ConsentPrivacy />} />
|
| 22 |
+
<Route path="/onboarding/import" element={<ImportSources />} />
|
| 23 |
+
<Route path="/onboarding/review" element={<ReviewPin />} />
|
| 24 |
+
<Route path="/dashboard" element={<Dashboard />} />
|
| 25 |
+
<Route path="/primer" element={<PrimerPreview />} />
|
| 26 |
+
<Route path="/memories" element={<Timeline />} />
|
| 27 |
+
<Route path="/persona" element={<Studio />} />
|
| 28 |
+
<Route path="/adapters" element={<AdaptersList />} />
|
| 29 |
+
<Route path="/adapters/:id" element={<AdapterDetail />} />
|
| 30 |
+
<Route path="/settings/backup" element={<Backup />} />
|
| 31 |
+
</Routes>
|
| 32 |
+
</Router>
|
| 33 |
+
);
|
| 34 |
+
}
|
| 35 |
+
export default App;
|
Backup.tsx
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export default function Backup() {
|
| 2 |
+
return (
|
| 3 |
+
<main className="p-8">
|
| 4 |
+
<h2 className="text-xl font-bold mb-4">Backup & Keys</h2>
|
| 5 |
+
<div>
|
| 6 |
+
<button className="btn btn-primary">Export Soulpack</button>
|
| 7 |
+
<button className="btn btn-secondary ml-4">Rotate Keys</button>
|
| 8 |
+
</div>
|
| 9 |
+
</main>
|
| 10 |
+
);
|
| 11 |
+
}
|
CHAOS_RAG_JULIA.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Chaos RAG Julia (single-file)
|
| 2 |
+
|
| 3 |
+
- Server: `server.jl`
|
| 4 |
+
- Run locally: `START_SERVER=1 bash run.sh`
|
| 5 |
+
- Docker build: `docker build -t chaos-rag-julia .`
|
| 6 |
+
- Docker run: `docker run -p 8081:8081 -e DATABASE_URL=... -e OPENAI_API_KEY=... chaos-rag-julia`
|
| 7 |
+
- GHCR publish workflow: `.github/workflows/publish.yml`
|
| 8 |
+
|
| 9 |
+
Endpoints:
|
| 10 |
+
- POST `/chaos/rag/index`
|
| 11 |
+
- POST `/chaos/rag/query`
|
| 12 |
+
- POST `/chaos/telemetry`
|
| 13 |
+
- POST `/chaos/hht/ingest`
|
| 14 |
+
- GET `/chaos/graph/:id`
|
CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,367 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Contributing to Numbskull
|
| 2 |
+
|
| 3 |
+
Thank you for your interest in contributing to Numbskull! This document provides guidelines and information for contributors.
|
| 4 |
+
|
| 5 |
+
## 🚀 Getting Started
|
| 6 |
+
|
| 7 |
+
### Prerequisites
|
| 8 |
+
|
| 9 |
+
- Python 3.8 or higher
|
| 10 |
+
- Git
|
| 11 |
+
- Basic understanding of embedding systems and machine learning
|
| 12 |
+
|
| 13 |
+
### Development Setup
|
| 14 |
+
|
| 15 |
+
1. **Fork the repository**
|
| 16 |
+
```bash
|
| 17 |
+
git clone https://github.com/your-username/numbskull.git
|
| 18 |
+
cd numbskull
|
| 19 |
+
```
|
| 20 |
+
|
| 21 |
+
2. **Create a virtual environment**
|
| 22 |
+
```bash
|
| 23 |
+
python -m venv venv
|
| 24 |
+
source venv/bin/activate # On Windows: venv\Scripts\activate
|
| 25 |
+
```
|
| 26 |
+
|
| 27 |
+
3. **Install dependencies**
|
| 28 |
+
```bash
|
| 29 |
+
pip install -r requirements.txt
|
| 30 |
+
pip install -e . # Install in development mode
|
| 31 |
+
```
|
| 32 |
+
|
| 33 |
+
4. **Install development dependencies**
|
| 34 |
+
```bash
|
| 35 |
+
pip install pytest black flake8 mypy
|
| 36 |
+
```
|
| 37 |
+
|
| 38 |
+
5. **Run tests**
|
| 39 |
+
```bash
|
| 40 |
+
cd advanced_embedding_pipeline
|
| 41 |
+
python simple_test.py
|
| 42 |
+
```
|
| 43 |
+
|
| 44 |
+
## 🎯 How to Contribute
|
| 45 |
+
|
| 46 |
+
### Types of Contributions
|
| 47 |
+
|
| 48 |
+
1. **Bug Reports**: Report issues you find
|
| 49 |
+
2. **Feature Requests**: Suggest new features
|
| 50 |
+
3. **Code Contributions**: Fix bugs or add features
|
| 51 |
+
4. **Documentation**: Improve documentation
|
| 52 |
+
5. **Testing**: Add tests or improve test coverage
|
| 53 |
+
|
| 54 |
+
### Contribution Workflow
|
| 55 |
+
|
| 56 |
+
1. **Create an Issue**
|
| 57 |
+
- Describe the problem or feature request
|
| 58 |
+
- Provide context and examples
|
| 59 |
+
- Assign appropriate labels
|
| 60 |
+
|
| 61 |
+
2. **Fork and Branch**
|
| 62 |
+
```bash
|
| 63 |
+
git checkout -b feature/your-feature-name
|
| 64 |
+
# or
|
| 65 |
+
git checkout -b bugfix/your-bug-fix
|
| 66 |
+
```
|
| 67 |
+
|
| 68 |
+
3. **Make Changes**
|
| 69 |
+
- Write clean, documented code
|
| 70 |
+
- Add tests for new functionality
|
| 71 |
+
- Update documentation as needed
|
| 72 |
+
|
| 73 |
+
4. **Test Your Changes**
|
| 74 |
+
```bash
|
| 75 |
+
# Run basic tests
|
| 76 |
+
python simple_test.py
|
| 77 |
+
|
| 78 |
+
# Run full integration tests (if applicable)
|
| 79 |
+
python integration_test.py
|
| 80 |
+
|
| 81 |
+
# Run linting
|
| 82 |
+
flake8 .
|
| 83 |
+
black --check .
|
| 84 |
+
```
|
| 85 |
+
|
| 86 |
+
5. **Commit and Push**
|
| 87 |
+
```bash
|
| 88 |
+
git add .
|
| 89 |
+
git commit -m "Add: brief description of changes"
|
| 90 |
+
git push origin feature/your-feature-name
|
| 91 |
+
```
|
| 92 |
+
|
| 93 |
+
6. **Create Pull Request**
|
| 94 |
+
- Provide clear description
|
| 95 |
+
- Link to related issues
|
| 96 |
+
- Request reviews from maintainers
|
| 97 |
+
|
| 98 |
+
## 📝 Coding Standards
|
| 99 |
+
|
| 100 |
+
### Python Code Style
|
| 101 |
+
|
| 102 |
+
- Follow PEP 8 guidelines
|
| 103 |
+
- Use type hints where possible
|
| 104 |
+
- Write docstrings for all functions and classes
|
| 105 |
+
- Keep functions small and focused
|
| 106 |
+
|
| 107 |
+
### Example Code Style
|
| 108 |
+
|
| 109 |
+
```python
|
| 110 |
+
from typing import List, Dict, Any, Optional
|
| 111 |
+
import logging
|
| 112 |
+
|
| 113 |
+
logger = logging.getLogger(__name__)
|
| 114 |
+
|
| 115 |
+
|
| 116 |
+
class ExampleEmbedder:
|
| 117 |
+
"""
|
| 118 |
+
Example embedder following coding standards.
|
| 119 |
+
|
| 120 |
+
Args:
|
| 121 |
+
config: Configuration for the embedder
|
| 122 |
+
"""
|
| 123 |
+
|
| 124 |
+
def __init__(self, config: Dict[str, Any]):
|
| 125 |
+
self.config = config
|
| 126 |
+
self.logger = logger
|
| 127 |
+
|
| 128 |
+
async def embed_text(self, text: str) -> List[float]:
|
| 129 |
+
"""
|
| 130 |
+
Embed a single text.
|
| 131 |
+
|
| 132 |
+
Args:
|
| 133 |
+
text: Input text to embed
|
| 134 |
+
|
| 135 |
+
Returns:
|
| 136 |
+
Embedding vector
|
| 137 |
+
|
| 138 |
+
Raises:
|
| 139 |
+
ValueError: If text is empty
|
| 140 |
+
"""
|
| 141 |
+
if not text:
|
| 142 |
+
raise ValueError("Text cannot be empty")
|
| 143 |
+
|
| 144 |
+
# Implementation here
|
| 145 |
+
return [0.1, 0.2, 0.3] # Example return
|
| 146 |
+
```
|
| 147 |
+
|
| 148 |
+
### Documentation Standards
|
| 149 |
+
|
| 150 |
+
- Use clear, concise language
|
| 151 |
+
- Provide examples for complex features
|
| 152 |
+
- Update README.md for user-facing changes
|
| 153 |
+
- Add docstrings for all public APIs
|
| 154 |
+
|
| 155 |
+
### Testing Standards
|
| 156 |
+
|
| 157 |
+
- Write tests for new functionality
|
| 158 |
+
- Aim for >80% test coverage
|
| 159 |
+
- Test both success and failure cases
|
| 160 |
+
- Use descriptive test names
|
| 161 |
+
|
| 162 |
+
```python
|
| 163 |
+
import pytest
|
| 164 |
+
from advanced_embedding_pipeline import ExampleEmbedder
|
| 165 |
+
|
| 166 |
+
|
| 167 |
+
class TestExampleEmbedder:
|
| 168 |
+
"""Test suite for ExampleEmbedder."""
|
| 169 |
+
|
| 170 |
+
def test_embed_text_success(self):
|
| 171 |
+
"""Test successful text embedding."""
|
| 172 |
+
embedder = ExampleEmbedder({})
|
| 173 |
+
result = embedder.embed_text("test text")
|
| 174 |
+
assert len(result) > 0
|
| 175 |
+
assert all(isinstance(x, (int, float)) for x in result)
|
| 176 |
+
|
| 177 |
+
def test_embed_text_empty_input(self):
|
| 178 |
+
"""Test embedding with empty input."""
|
| 179 |
+
embedder = ExampleEmbedder({})
|
| 180 |
+
with pytest.raises(ValueError):
|
| 181 |
+
embedder.embed_text("")
|
| 182 |
+
```
|
| 183 |
+
|
| 184 |
+
## 🧪 Testing
|
| 185 |
+
|
| 186 |
+
### Running Tests
|
| 187 |
+
|
| 188 |
+
```bash
|
| 189 |
+
# Basic functionality test
|
| 190 |
+
python simple_test.py
|
| 191 |
+
|
| 192 |
+
# Full integration test (requires external services)
|
| 193 |
+
python integration_test.py
|
| 194 |
+
|
| 195 |
+
# Comprehensive demo
|
| 196 |
+
python demo.py
|
| 197 |
+
|
| 198 |
+
# Unit tests (when available)
|
| 199 |
+
pytest tests/
|
| 200 |
+
```
|
| 201 |
+
|
| 202 |
+
### Adding New Tests
|
| 203 |
+
|
| 204 |
+
1. Create test files in the `tests/` directory
|
| 205 |
+
2. Use descriptive test names
|
| 206 |
+
3. Test both positive and negative cases
|
| 207 |
+
4. Mock external dependencies when possible
|
| 208 |
+
|
| 209 |
+
## 📚 Documentation
|
| 210 |
+
|
| 211 |
+
### Types of Documentation
|
| 212 |
+
|
| 213 |
+
1. **README.md**: Main project documentation
|
| 214 |
+
2. **Code Comments**: Inline code documentation
|
| 215 |
+
3. **Docstrings**: Function and class documentation
|
| 216 |
+
4. **Examples**: Usage examples and tutorials
|
| 217 |
+
|
| 218 |
+
### Writing Documentation
|
| 219 |
+
|
| 220 |
+
- Use clear, simple language
|
| 221 |
+
- Provide practical examples
|
| 222 |
+
- Keep documentation up-to-date
|
| 223 |
+
- Use consistent formatting
|
| 224 |
+
|
| 225 |
+
## 🐛 Bug Reports
|
| 226 |
+
|
| 227 |
+
### Before Reporting
|
| 228 |
+
|
| 229 |
+
1. Check existing issues
|
| 230 |
+
2. Try the latest version
|
| 231 |
+
3. Reproduce the issue
|
| 232 |
+
4. Gather relevant information
|
| 233 |
+
|
| 234 |
+
### Bug Report Template
|
| 235 |
+
|
| 236 |
+
```markdown
|
| 237 |
+
**Bug Description**
|
| 238 |
+
A clear description of the bug.
|
| 239 |
+
|
| 240 |
+
**Steps to Reproduce**
|
| 241 |
+
1. Go to '...'
|
| 242 |
+
2. Click on '....'
|
| 243 |
+
3. Scroll down to '....'
|
| 244 |
+
4. See error
|
| 245 |
+
|
| 246 |
+
**Expected Behavior**
|
| 247 |
+
What you expected to happen.
|
| 248 |
+
|
| 249 |
+
**Actual Behavior**
|
| 250 |
+
What actually happened.
|
| 251 |
+
|
| 252 |
+
**Environment**
|
| 253 |
+
- OS: [e.g., Ubuntu 20.04]
|
| 254 |
+
- Python Version: [e.g., 3.9]
|
| 255 |
+
- Numbskull Version: [e.g., 1.0.0]
|
| 256 |
+
|
| 257 |
+
**Additional Context**
|
| 258 |
+
Any other relevant information.
|
| 259 |
+
```
|
| 260 |
+
|
| 261 |
+
## 💡 Feature Requests
|
| 262 |
+
|
| 263 |
+
### Feature Request Template
|
| 264 |
+
|
| 265 |
+
```markdown
|
| 266 |
+
**Feature Description**
|
| 267 |
+
A clear description of the feature.
|
| 268 |
+
|
| 269 |
+
**Use Case**
|
| 270 |
+
Why is this feature needed?
|
| 271 |
+
|
| 272 |
+
**Proposed Solution**
|
| 273 |
+
How should this feature work?
|
| 274 |
+
|
| 275 |
+
**Alternatives Considered**
|
| 276 |
+
Other solutions you've considered.
|
| 277 |
+
|
| 278 |
+
**Additional Context**
|
| 279 |
+
Any other relevant information.
|
| 280 |
+
```
|
| 281 |
+
|
| 282 |
+
## 🔍 Code Review Process
|
| 283 |
+
|
| 284 |
+
### For Contributors
|
| 285 |
+
|
| 286 |
+
- Respond to review feedback promptly
|
| 287 |
+
- Make requested changes
|
| 288 |
+
- Ask questions if feedback is unclear
|
| 289 |
+
- Test changes after addressing feedback
|
| 290 |
+
|
| 291 |
+
### For Reviewers
|
| 292 |
+
|
| 293 |
+
- Be constructive and respectful
|
| 294 |
+
- Focus on code quality and correctness
|
| 295 |
+
- Provide specific, actionable feedback
|
| 296 |
+
- Approve when changes meet standards
|
| 297 |
+
|
| 298 |
+
## 📋 Pull Request Guidelines
|
| 299 |
+
|
| 300 |
+
### PR Description Template
|
| 301 |
+
|
| 302 |
+
```markdown
|
| 303 |
+
## Description
|
| 304 |
+
Brief description of changes.
|
| 305 |
+
|
| 306 |
+
## Type of Change
|
| 307 |
+
- [ ] Bug fix
|
| 308 |
+
- [ ] New feature
|
| 309 |
+
- [ ] Breaking change
|
| 310 |
+
- [ ] Documentation update
|
| 311 |
+
|
| 312 |
+
## Testing
|
| 313 |
+
- [ ] Tests pass locally
|
| 314 |
+
- [ ] New tests added (if applicable)
|
| 315 |
+
- [ ] Documentation updated
|
| 316 |
+
|
| 317 |
+
## Checklist
|
| 318 |
+
- [ ] Code follows style guidelines
|
| 319 |
+
- [ ] Self-review completed
|
| 320 |
+
- [ ] Comments added for complex code
|
| 321 |
+
- [ ] No unnecessary debug code
|
| 322 |
+
```
|
| 323 |
+
|
| 324 |
+
## 🏷️ Labels and Milestones
|
| 325 |
+
|
| 326 |
+
### Issue Labels
|
| 327 |
+
|
| 328 |
+
- `bug`: Something isn't working
|
| 329 |
+
- `enhancement`: New feature or request
|
| 330 |
+
- `documentation`: Improvements to documentation
|
| 331 |
+
- `good first issue`: Good for newcomers
|
| 332 |
+
- `help wanted`: Extra attention needed
|
| 333 |
+
- `question`: Further information is requested
|
| 334 |
+
|
| 335 |
+
### PR Labels
|
| 336 |
+
|
| 337 |
+
- `ready for review`: Ready for code review
|
| 338 |
+
- `work in progress`: Still being worked on
|
| 339 |
+
- `needs testing`: Requires additional testing
|
| 340 |
+
- `breaking change`: Changes existing behavior
|
| 341 |
+
|
| 342 |
+
## 🚀 Release Process
|
| 343 |
+
|
| 344 |
+
1. **Version Bumping**: Update version in `setup.py` and `__init__.py`
|
| 345 |
+
2. **Changelog**: Update CHANGELOG.md with new features/fixes
|
| 346 |
+
3. **Testing**: Ensure all tests pass
|
| 347 |
+
4. **Tagging**: Create git tag for release
|
| 348 |
+
5. **Documentation**: Update documentation if needed
|
| 349 |
+
|
| 350 |
+
## 📞 Getting Help
|
| 351 |
+
|
| 352 |
+
- **Issues**: [GitHub Issues](https://github.com/9x25dillon/numbskull/issues)
|
| 353 |
+
- **Discussions**: [GitHub Discussions](https://github.com/9x25dillon/numbskull/discussions)
|
| 354 |
+
- **Email**: [Your contact information]
|
| 355 |
+
|
| 356 |
+
## 📄 License
|
| 357 |
+
|
| 358 |
+
By contributing to Numbskull, you agree that your contributions will be licensed under the MIT License.
|
| 359 |
+
|
| 360 |
+
## 🙏 Recognition
|
| 361 |
+
|
| 362 |
+
Contributors will be recognized in:
|
| 363 |
+
- CONTRIBUTORS.md file
|
| 364 |
+
- Release notes
|
| 365 |
+
- Project documentation
|
| 366 |
+
|
| 367 |
+
Thank you for contributing to Numbskull! 🎉
|
ConsentPrivacy.tsx
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export default function ConsentPrivacy() {
|
| 2 |
+
return (
|
| 3 |
+
<main className="p-8">
|
| 4 |
+
<h2 className="text-xl font-bold mb-4">Consent & Privacy</h2>
|
| 5 |
+
<div>
|
| 6 |
+
<label>
|
| 7 |
+
<input type="checkbox" /> Enable cloud sync (encrypted)
|
| 8 |
+
</label>
|
| 9 |
+
</div>
|
| 10 |
+
<div>
|
| 11 |
+
<label>
|
| 12 |
+
<input type="checkbox" /> Retain sensitive memories
|
| 13 |
+
</label>
|
| 14 |
+
</div>
|
| 15 |
+
<div className="mt-4">
|
| 16 |
+
<button className="btn btn-primary">Next</button>
|
| 17 |
+
</div>
|
| 18 |
+
</main>
|
| 19 |
+
);
|
| 20 |
+
}
|
DEPLOYMENT_INSTRUCTIONS.md
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# GitHub Deployment Instructions
|
| 2 |
+
|
| 3 |
+
## 🚀 Ready to Deploy!
|
| 4 |
+
|
| 5 |
+
Your **Numbskull - Advanced AI Embedding Pipeline** is now ready to be pushed to GitHub! Here's what we've accomplished and how to complete the deployment.
|
| 6 |
+
|
| 7 |
+
## ✅ What's Been Created
|
| 8 |
+
|
| 9 |
+
### 📁 Repository Structure
|
| 10 |
+
```
|
| 11 |
+
numbskull/
|
| 12 |
+
├── .github/workflows/ci.yml # CI/CD pipeline
|
| 13 |
+
├── .gitignore # Git ignore rules
|
| 14 |
+
├── advanced_embedding_pipeline/ # Main package
|
| 15 |
+
│ ├── __init__.py # Package initialization
|
| 16 |
+
│ ├── semantic_embedder.py # Eopiez integration
|
| 17 |
+
│ ├── mathematical_embedder.py # LIMPS + SymPy integration
|
| 18 |
+
│ ├── fractal_cascade_embedder.py # Fractal mathematics
|
| 19 |
+
│ ├── hybrid_pipeline.py # Unified orchestration
|
| 20 |
+
│ ├── optimizer.py # Performance optimization
|
| 21 |
+
│ ├── demo.py # Comprehensive demo
|
| 22 |
+
│ ├── integration_test.py # Full system testing
|
| 23 |
+
│ ├── simple_test.py # Basic functionality test
|
| 24 |
+
│ ├── setup.py # Installation script
|
| 25 |
+
│ ├── requirements.txt # Dependencies
|
| 26 |
+
│ └── README.md # Detailed documentation
|
| 27 |
+
├── CONTRIBUTING.md # Contribution guidelines
|
| 28 |
+
├── README.md # Main project documentation
|
| 29 |
+
├── requirements.txt # Root dependencies
|
| 30 |
+
├── setup.py # Package setup
|
| 31 |
+
└── LICENSE # MIT License
|
| 32 |
+
```
|
| 33 |
+
|
| 34 |
+
### 🎯 Key Features Implemented
|
| 35 |
+
|
| 36 |
+
1. **Multi-Modal Embedding Pipeline**
|
| 37 |
+
- Semantic vectorization with Eopiez integration
|
| 38 |
+
- Mathematical expression processing with LIMPS optimization
|
| 39 |
+
- Fractal-based embedding generation
|
| 40 |
+
- Hybrid fusion with multiple strategies
|
| 41 |
+
|
| 42 |
+
2. **Advanced Optimization**
|
| 43 |
+
- Intelligent caching (memory + disk)
|
| 44 |
+
- Vector indexing (FAISS, Annoy, HNSWlib)
|
| 45 |
+
- Adaptive batch sizing
|
| 46 |
+
- Performance monitoring
|
| 47 |
+
|
| 48 |
+
3. **Comprehensive Testing**
|
| 49 |
+
- Basic functionality tests
|
| 50 |
+
- Integration tests
|
| 51 |
+
- Performance benchmarks
|
| 52 |
+
- CI/CD pipeline
|
| 53 |
+
|
| 54 |
+
4. **Production Ready**
|
| 55 |
+
- Proper package structure
|
| 56 |
+
- Documentation
|
| 57 |
+
- Contributing guidelines
|
| 58 |
+
- GitHub Actions workflow
|
| 59 |
+
|
| 60 |
+
## 🚀 Final Deployment Steps
|
| 61 |
+
|
| 62 |
+
### 1. **Push to GitHub** (You need to do this)
|
| 63 |
+
|
| 64 |
+
Since we need authentication to push to GitHub, you'll need to:
|
| 65 |
+
|
| 66 |
+
```bash
|
| 67 |
+
cd /home/kill/numbskull
|
| 68 |
+
|
| 69 |
+
# Set up authentication (choose one method):
|
| 70 |
+
|
| 71 |
+
# Method 1: Personal Access Token
|
| 72 |
+
git remote set-url origin https://your-token@github.com/9x25dillon/numbskull.git
|
| 73 |
+
|
| 74 |
+
# Method 2: SSH (if you have SSH keys set up)
|
| 75 |
+
git remote set-url origin git@github.com:9x25dillon/numbskull.git
|
| 76 |
+
|
| 77 |
+
# Then push
|
| 78 |
+
git push origin main
|
| 79 |
+
```
|
| 80 |
+
|
| 81 |
+
### 2. **Verify Deployment**
|
| 82 |
+
|
| 83 |
+
After pushing, check:
|
| 84 |
+
- [ ] Repository is updated at https://github.com/9x25dillon/numbskull
|
| 85 |
+
- [ ] All files are present
|
| 86 |
+
- [ ] README displays correctly
|
| 87 |
+
- [ ] GitHub Actions workflow is active
|
| 88 |
+
|
| 89 |
+
### 3. **Test Installation**
|
| 90 |
+
|
| 91 |
+
Others can now install your package:
|
| 92 |
+
|
| 93 |
+
```bash
|
| 94 |
+
git clone https://github.com/9x25dillon/numbskull.git
|
| 95 |
+
cd numbskull
|
| 96 |
+
pip install -e .
|
| 97 |
+
```
|
| 98 |
+
|
| 99 |
+
## 🎉 What You've Built
|
| 100 |
+
|
| 101 |
+
### **Sophisticated Embedding System**
|
| 102 |
+
- **Semantic Understanding**: Eopiez integration for semantic vectorization
|
| 103 |
+
- **Mathematical Precision**: SymPy + LIMPS for mathematical optimization
|
| 104 |
+
- **Fractal Beauty**: Hierarchical fractal structures for embeddings
|
| 105 |
+
- **Hybrid Intelligence**: Multi-modal fusion with configurable strategies
|
| 106 |
+
|
| 107 |
+
### **Production-Ready Features**
|
| 108 |
+
- **Performance Optimization**: Caching, indexing, adaptive batching
|
| 109 |
+
- **Comprehensive Testing**: Unit tests, integration tests, benchmarks
|
| 110 |
+
- **Documentation**: Complete API docs, examples, tutorials
|
| 111 |
+
- **CI/CD Pipeline**: Automated testing and deployment
|
| 112 |
+
|
| 113 |
+
### **Developer Experience**
|
| 114 |
+
- **Easy Installation**: `pip install -e .`
|
| 115 |
+
- **Clear Documentation**: README, API docs, examples
|
| 116 |
+
- **Contributing Guidelines**: How others can contribute
|
| 117 |
+
- **Professional Structure**: Proper Python packaging
|
| 118 |
+
|
| 119 |
+
## 🧪 Testing Your Deployment
|
| 120 |
+
|
| 121 |
+
Once pushed to GitHub, you can test the installation:
|
| 122 |
+
|
| 123 |
+
```bash
|
| 124 |
+
# Clone from GitHub
|
| 125 |
+
git clone https://github.com/9x25dillon/numbskull.git
|
| 126 |
+
cd numbskull
|
| 127 |
+
|
| 128 |
+
# Install
|
| 129 |
+
pip install -e .
|
| 130 |
+
|
| 131 |
+
# Test
|
| 132 |
+
cd advanced_embedding_pipeline
|
| 133 |
+
python simple_test.py
|
| 134 |
+
```
|
| 135 |
+
|
| 136 |
+
## 📊 Expected Test Results
|
| 137 |
+
|
| 138 |
+
```
|
| 139 |
+
🧪 SIMPLE EMBEDDING PIPELINE TEST SUMMARY
|
| 140 |
+
✅ Fractal Cascade Embedder: WORKING
|
| 141 |
+
✅ Semantic Embedder (fallback): WORKING
|
| 142 |
+
✅ Mathematical Embedder (local): WORKING
|
| 143 |
+
✅ All core components functional
|
| 144 |
+
```
|
| 145 |
+
|
| 146 |
+
## 🌟 Repository Highlights
|
| 147 |
+
|
| 148 |
+
### **Professional Documentation**
|
| 149 |
+
- Comprehensive README with examples
|
| 150 |
+
- API documentation
|
| 151 |
+
- Contributing guidelines
|
| 152 |
+
- Installation instructions
|
| 153 |
+
|
| 154 |
+
### **Advanced Features**
|
| 155 |
+
- Multi-modal embedding fusion
|
| 156 |
+
- Fractal mathematics integration
|
| 157 |
+
- Mathematical expression processing
|
| 158 |
+
- Intelligent caching and optimization
|
| 159 |
+
|
| 160 |
+
### **Production Quality**
|
| 161 |
+
- Proper error handling
|
| 162 |
+
- Logging and monitoring
|
| 163 |
+
- Performance optimization
|
| 164 |
+
- CI/CD pipeline
|
| 165 |
+
|
| 166 |
+
## 🎯 Next Steps After Deployment
|
| 167 |
+
|
| 168 |
+
1. **Share Your Repository**
|
| 169 |
+
- Share the GitHub link with others
|
| 170 |
+
- Add collaborators if needed
|
| 171 |
+
- Consider adding topics/tags
|
| 172 |
+
|
| 173 |
+
2. **Monitor Usage**
|
| 174 |
+
- Watch for issues and pull requests
|
| 175 |
+
- Monitor GitHub Actions runs
|
| 176 |
+
- Track downloads and usage
|
| 177 |
+
|
| 178 |
+
3. **Continue Development**
|
| 179 |
+
- Add new features based on feedback
|
| 180 |
+
- Improve performance
|
| 181 |
+
- Expand documentation
|
| 182 |
+
|
| 183 |
+
4. **Community Building**
|
| 184 |
+
- Respond to issues and PRs
|
| 185 |
+
- Help users get started
|
| 186 |
+
- Consider creating tutorials or blog posts
|
| 187 |
+
|
| 188 |
+
## 🏆 Congratulations!
|
| 189 |
+
|
| 190 |
+
You've successfully created a **sophisticated, production-ready embedding pipeline** that combines:
|
| 191 |
+
|
| 192 |
+
- ✅ **Semantic Understanding** (Eopiez integration)
|
| 193 |
+
- ✅ **Mathematical Precision** (LIMPS + SymPy)
|
| 194 |
+
- ✅ **Fractal Beauty** (Hierarchical structures)
|
| 195 |
+
- ✅ **Hybrid Intelligence** (Multi-modal fusion)
|
| 196 |
+
- ✅ **Production Quality** (Testing, documentation, CI/CD)
|
| 197 |
+
|
| 198 |
+
Your **Numbskull** repository is now ready to make an impact in the AI/ML community! 🚀
|
| 199 |
+
|
| 200 |
+
---
|
| 201 |
+
|
| 202 |
+
**Repository URL**: https://github.com/9x25dillon/numbskull
|
| 203 |
+
**Status**: Ready for deployment
|
| 204 |
+
**Next Action**: Push to GitHub with authentication
|
Dashboard.tsx
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export default function Dashboard() {
|
| 2 |
+
return (
|
| 3 |
+
<main className="p-8">
|
| 4 |
+
<h2 className="text-2xl font-bold mb-4">CarryOn Dashboard</h2>
|
| 5 |
+
<button className="btn btn-primary">Build Primer</button>
|
| 6 |
+
<div className="mt-6">
|
| 7 |
+
<p>Recent Memories and Persona quick actions will show here.</p>
|
| 8 |
+
</div>
|
| 9 |
+
</main>
|
| 10 |
+
);
|
| 11 |
+
}
|
Detail.tsx
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export default function AdapterDetail() {
|
| 2 |
+
return (
|
| 3 |
+
<main className="p-8">
|
| 4 |
+
<h2 className="text-xl font-bold mb-4">Adapter Details</h2>
|
| 5 |
+
<div>
|
| 6 |
+
<p>Provider details, tone check, roundtrip test here.</p>
|
| 7 |
+
</div>
|
| 8 |
+
</main>
|
| 9 |
+
);
|
| 10 |
+
}
|
Dockerfile
CHANGED
|
@@ -1,20 +1,18 @@
|
|
| 1 |
-
cursor/bc-f408c7bd-bc2a-48a4-bc8d-0989f628ad52-ef2e
|
| 2 |
FROM julia:1.10-bullseye
|
| 3 |
|
|
|
|
| 4 |
WORKDIR /app
|
| 5 |
-
COPY julia_server/Project.toml /app/Project.toml
|
| 6 |
-
COPY julia_server/src /app/src
|
| 7 |
|
| 8 |
-
|
|
|
|
|
|
|
|
|
|
| 9 |
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
EXPOSE 8088 8089
|
| 19 |
-
CMD ["julia", "-e", "include(\"src/Server.jl\"); using .ChaosServer; ChaosServer.start()"]
|
| 20 |
-
main
|
|
|
|
|
|
|
| 1 |
FROM julia:1.10-bullseye
|
| 2 |
|
| 3 |
+
ENV JULIA_PROJECT=/app
|
| 4 |
WORKDIR /app
|
|
|
|
|
|
|
| 5 |
|
| 6 |
+
# System deps for LibPQ and SSL
|
| 7 |
+
RUN apt-get update -y && apt-get install -y --no-install-recommends \
|
| 8 |
+
libpq5 ca-certificates curl \
|
| 9 |
+
&& rm -rf /var/lib/apt/lists/*
|
| 10 |
|
| 11 |
+
# Copy code
|
| 12 |
+
COPY server.jl /app/server.jl
|
| 13 |
+
|
| 14 |
+
# Pre-install Julia deps to cache layers
|
| 15 |
+
RUN julia -e 'using Pkg; Pkg.activate("."); Pkg.add(["HTTP","JSON3","LibPQ","DSP","UUIDs","Dates","Statistics","Random","Interpolations"]); Pkg.precompile()'
|
| 16 |
+
|
| 17 |
+
EXPOSE 8081
|
| 18 |
+
CMD ["julia", "/app/server.jl"]
|
|
|
|
|
|
|
|
|
ImportSources.tsx
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export default function ImportSources() {
|
| 2 |
+
return (
|
| 3 |
+
<main className="p-8">
|
| 4 |
+
<h2 className="text-xl font-bold mb-4">Import Memories</h2>
|
| 5 |
+
<div>
|
| 6 |
+
<label>Drop JSON/CSV export here:</label>
|
| 7 |
+
{/* FileDrop component placeholder */}
|
| 8 |
+
<input type="file" accept=".json,.csv" multiple />
|
| 9 |
+
</div>
|
| 10 |
+
<div className="mt-4">
|
| 11 |
+
<button className="btn btn-primary">Next</button>
|
| 12 |
+
</div>
|
| 13 |
+
</main>
|
| 14 |
+
);
|
| 15 |
+
}
|
LICENSE
CHANGED
|
@@ -1,21 +1,201 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Apache License
|
| 2 |
+
Version 2.0, January 2004
|
| 3 |
+
http://www.apache.org/licenses/
|
| 4 |
+
|
| 5 |
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
| 6 |
+
|
| 7 |
+
1. Definitions.
|
| 8 |
+
|
| 9 |
+
"License" shall mean the terms and conditions for use, reproduction,
|
| 10 |
+
and distribution as defined by Sections 1 through 9 of this document.
|
| 11 |
+
|
| 12 |
+
"Licensor" shall mean the copyright owner or entity authorized by
|
| 13 |
+
the copyright owner that is granting the License.
|
| 14 |
+
|
| 15 |
+
"Legal Entity" shall mean the union of the acting entity and all
|
| 16 |
+
other entities that control, are controlled by, or are under common
|
| 17 |
+
control with that entity. For the purposes of this definition,
|
| 18 |
+
"control" means (i) the power, direct or indirect, to cause the
|
| 19 |
+
direction or management of such entity, whether by contract or
|
| 20 |
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
| 21 |
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
| 22 |
+
|
| 23 |
+
"You" (or "Your") shall mean an individual or Legal Entity
|
| 24 |
+
exercising permissions granted by this License.
|
| 25 |
+
|
| 26 |
+
"Source" form shall mean the preferred form for making modifications,
|
| 27 |
+
including but not limited to software source code, documentation
|
| 28 |
+
source, and configuration files.
|
| 29 |
+
|
| 30 |
+
"Object" form shall mean any form resulting from mechanical
|
| 31 |
+
transformation or translation of a Source form, including but
|
| 32 |
+
not limited to compiled object code, generated documentation,
|
| 33 |
+
and conversions to other media types.
|
| 34 |
+
|
| 35 |
+
"Work" shall mean the work of authorship, whether in Source or
|
| 36 |
+
Object form, made available under the License, as indicated by a
|
| 37 |
+
copyright notice that is included in or attached to the work
|
| 38 |
+
(an example is provided in the Appendix below).
|
| 39 |
+
|
| 40 |
+
"Derivative Works" shall mean any work, whether in Source or Object
|
| 41 |
+
form, that is based on (or derived from) the Work and for which the
|
| 42 |
+
editorial revisions, annotations, elaborations, or other modifications
|
| 43 |
+
represent, as a whole, an original work of authorship. For the purposes
|
| 44 |
+
of this License, Derivative Works shall not include works that remain
|
| 45 |
+
separable from, or merely link (or bind by name) to the interfaces of,
|
| 46 |
+
the Work and Derivative Works thereof.
|
| 47 |
+
|
| 48 |
+
"Contribution" shall mean any work of authorship, including
|
| 49 |
+
the original version of the Work and any modifications or additions
|
| 50 |
+
to that Work or Derivative Works thereof, that is intentionally
|
| 51 |
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
| 52 |
+
or by an individual or Legal Entity authorized to submit on behalf of
|
| 53 |
+
the copyright owner. For the purposes of this definition, "submitted"
|
| 54 |
+
means any form of electronic, verbal, or written communication sent
|
| 55 |
+
to the Licensor or its representatives, including but not limited to
|
| 56 |
+
communication on electronic mailing lists, source code control systems,
|
| 57 |
+
and issue tracking systems that are managed by, or on behalf of, the
|
| 58 |
+
Licensor for the purpose of discussing and improving the Work, but
|
| 59 |
+
excluding communication that is conspicuously marked or otherwise
|
| 60 |
+
designated in writing by the copyright owner as "Not a Contribution."
|
| 61 |
+
|
| 62 |
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
| 63 |
+
on behalf of whom a Contribution has been received by Licensor and
|
| 64 |
+
subsequently incorporated within the Work.
|
| 65 |
+
|
| 66 |
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
| 67 |
+
this License, each Contributor hereby grants to You a perpetual,
|
| 68 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
| 69 |
+
copyright license to reproduce, prepare Derivative Works of,
|
| 70 |
+
publicly display, publicly perform, sublicense, and distribute the
|
| 71 |
+
Work and such Derivative Works in Source or Object form.
|
| 72 |
+
|
| 73 |
+
3. Grant of Patent License. Subject to the terms and conditions of
|
| 74 |
+
this License, each Contributor hereby grants to You a perpetual,
|
| 75 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
| 76 |
+
(except as stated in this section) patent license to make, have made,
|
| 77 |
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
| 78 |
+
where such license applies only to those patent claims licensable
|
| 79 |
+
by such Contributor that are necessarily infringed by their
|
| 80 |
+
Contribution(s) alone or by combination of their Contribution(s)
|
| 81 |
+
with the Work to which such Contribution(s) was submitted. If You
|
| 82 |
+
institute patent litigation against any entity (including a
|
| 83 |
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
| 84 |
+
or a Contribution incorporated within the Work constitutes direct
|
| 85 |
+
or contributory patent infringement, then any patent licenses
|
| 86 |
+
granted to You under this License for that Work shall terminate
|
| 87 |
+
as of the date such litigation is filed.
|
| 88 |
+
|
| 89 |
+
4. Redistribution. You may reproduce and distribute copies of the
|
| 90 |
+
Work or Derivative Works thereof in any medium, with or without
|
| 91 |
+
modifications, and in Source or Object form, provided that You
|
| 92 |
+
meet the following conditions:
|
| 93 |
+
|
| 94 |
+
(a) You must give any other recipients of the Work or
|
| 95 |
+
Derivative Works a copy of this License; and
|
| 96 |
+
|
| 97 |
+
(b) You must cause any modified files to carry prominent notices
|
| 98 |
+
stating that You changed the files; and
|
| 99 |
+
|
| 100 |
+
(c) You must retain, in the Source form of any Derivative Works
|
| 101 |
+
that You distribute, all copyright, patent, trademark, and
|
| 102 |
+
attribution notices from the Source form of the Work,
|
| 103 |
+
excluding those notices that do not pertain to any part of
|
| 104 |
+
the Derivative Works; and
|
| 105 |
+
|
| 106 |
+
(d) If the Work includes a "NOTICE" text file as part of its
|
| 107 |
+
distribution, then any Derivative Works that You distribute must
|
| 108 |
+
include a readable copy of the attribution notices contained
|
| 109 |
+
within such NOTICE file, excluding those notices that do not
|
| 110 |
+
pertain to any part of the Derivative Works, in at least one
|
| 111 |
+
of the following places: within a NOTICE text file distributed
|
| 112 |
+
as part of the Derivative Works; within the Source form or
|
| 113 |
+
documentation, if provided along with the Derivative Works; or,
|
| 114 |
+
within a display generated by the Derivative Works, if and
|
| 115 |
+
wherever such third-party notices normally appear. The contents
|
| 116 |
+
of the NOTICE file are for informational purposes only and
|
| 117 |
+
do not modify the License. You may add Your own attribution
|
| 118 |
+
notices within Derivative Works that You distribute, alongside
|
| 119 |
+
or as an addendum to the NOTICE text from the Work, provided
|
| 120 |
+
that such additional attribution notices cannot be construed
|
| 121 |
+
as modifying the License.
|
| 122 |
+
|
| 123 |
+
You may add Your own copyright statement to Your modifications and
|
| 124 |
+
may provide additional or different license terms and conditions
|
| 125 |
+
for use, reproduction, or distribution of Your modifications, or
|
| 126 |
+
for any such Derivative Works as a whole, provided Your use,
|
| 127 |
+
reproduction, and distribution of the Work otherwise complies with
|
| 128 |
+
the conditions stated in this License.
|
| 129 |
+
|
| 130 |
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
| 131 |
+
any Contribution intentionally submitted for inclusion in the Work
|
| 132 |
+
by You to the Licensor shall be under the terms and conditions of
|
| 133 |
+
this License, without any additional terms or conditions.
|
| 134 |
+
Notwithstanding the above, nothing herein shall supersede or modify
|
| 135 |
+
the terms of any separate license agreement you may have executed
|
| 136 |
+
with Licensor regarding such Contributions.
|
| 137 |
+
|
| 138 |
+
6. Trademarks. This License does not grant permission to use the trade
|
| 139 |
+
names, trademarks, service marks, or product names of the Licensor,
|
| 140 |
+
except as required for reasonable and customary use in describing the
|
| 141 |
+
origin of the Work and reproducing the content of the NOTICE file.
|
| 142 |
+
|
| 143 |
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
| 144 |
+
agreed to in writing, Licensor provides the Work (and each
|
| 145 |
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
| 146 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
| 147 |
+
implied, including, without limitation, any warranties or conditions
|
| 148 |
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
| 149 |
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
| 150 |
+
appropriateness of using or redistributing the Work and assume any
|
| 151 |
+
risks associated with Your exercise of permissions under this License.
|
| 152 |
+
|
| 153 |
+
8. Limitation of Liability. In no event and under no legal theory,
|
| 154 |
+
whether in tort (including negligence), contract, or otherwise,
|
| 155 |
+
unless required by applicable law (such as deliberate and grossly
|
| 156 |
+
negligent acts) or agreed to in writing, shall any Contributor be
|
| 157 |
+
liable to You for damages, including any direct, indirect, special,
|
| 158 |
+
incidental, or consequential damages of any character arising as a
|
| 159 |
+
result of this License or out of the use or inability to use the
|
| 160 |
+
Work (including but not limited to damages for loss of goodwill,
|
| 161 |
+
work stoppage, computer failure or malfunction, or any and all
|
| 162 |
+
other commercial damages or losses), even if such Contributor
|
| 163 |
+
has been advised of the possibility of such damages.
|
| 164 |
+
|
| 165 |
+
9. Accepting Warranty or Additional Liability. While redistributing
|
| 166 |
+
the Work or Derivative Works thereof, You may choose to offer,
|
| 167 |
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
| 168 |
+
or other liability obligations and/or rights consistent with this
|
| 169 |
+
License. However, in accepting such obligations, You may act only
|
| 170 |
+
on Your own behalf and on Your sole responsibility, not on behalf
|
| 171 |
+
of any other Contributor, and only if You agree to indemnify,
|
| 172 |
+
defend, and hold each Contributor harmless for any liability
|
| 173 |
+
incurred by, or claims asserted against, such Contributor by reason
|
| 174 |
+
of your accepting any such warranty or additional liability.
|
| 175 |
+
|
| 176 |
+
END OF TERMS AND CONDITIONS
|
| 177 |
+
|
| 178 |
+
APPENDIX: How to apply the Apache License to your work.
|
| 179 |
+
|
| 180 |
+
To apply the Apache License to your work, attach the following
|
| 181 |
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
| 182 |
+
replaced with your own identifying information. (Don't include
|
| 183 |
+
the brackets!) The text should be enclosed in the appropriate
|
| 184 |
+
comment syntax for the file format. We also recommend that a
|
| 185 |
+
file or class name and description of purpose be included on the
|
| 186 |
+
same "printed page" as the copyright notice for easier
|
| 187 |
+
identification within third-party archives.
|
| 188 |
+
|
| 189 |
+
Copyright [yyyy] [name of copyright owner]
|
| 190 |
+
|
| 191 |
+
Licensed under the Apache License, Version 2.0 (the "License");
|
| 192 |
+
you may not use this file except in compliance with the License.
|
| 193 |
+
You may obtain a copy of the License at
|
| 194 |
+
|
| 195 |
+
http://www.apache.org/licenses/LICENSE-2.0
|
| 196 |
+
|
| 197 |
+
Unless required by applicable law or agreed to in writing, software
|
| 198 |
+
distributed under the License is distributed on an "AS IS" BASIS,
|
| 199 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| 200 |
+
See the License for the specific language governing permissions and
|
| 201 |
+
limitations under the License.
|
LICENSE-CODE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) 2023 DeepSeek
|
| 4 |
+
|
| 5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
+
in the Software without restriction, including without limitation the rights
|
| 8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
+
furnished to do so, subject to the following conditions:
|
| 11 |
+
|
| 12 |
+
The above copyright notice and this permission notice shall be included in all
|
| 13 |
+
copies or substantial portions of the Software.
|
| 14 |
+
|
| 15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
+
SOFTWARE.
|
List.tsx
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export default function AdaptersList() {
|
| 2 |
+
return (
|
| 3 |
+
<main className="p-8">
|
| 4 |
+
<h2 className="text-xl font-bold mb-4">Adapters</h2>
|
| 5 |
+
<div>
|
| 6 |
+
<p>Connect providers and test integrations.</p>
|
| 7 |
+
</div>
|
| 8 |
+
</main>
|
| 9 |
+
);
|
| 10 |
+
}
|
Makefile
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.ONESHELL:
|
| 2 |
+
VENV?=.venv
|
| 3 |
+
PY?=$(VENV)/bin/python
|
| 4 |
+
PIP?=$(VENV)/bin/pip
|
| 5 |
+
|
| 6 |
+
install:
|
| 7 |
+
python -m venv $(VENV)
|
| 8 |
+
$(PIP) install -U pip
|
| 9 |
+
cd server && $(PIP) install -e .
|
| 10 |
+
|
| 11 |
+
dev:
|
| 12 |
+
cd server && $(VENV)/bin/uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
|
| 13 |
+
|
| 14 |
+
test:
|
| 15 |
+
cd server && $(VENV)/bin/pytest -q
|
| 16 |
+
|
| 17 |
+
fmt:
|
| 18 |
+
cd server && $(VENV)/bin/black app
|
| 19 |
+
|
| 20 |
+
lint:
|
| 21 |
+
cd server && $(VENV)/bin/ruff check app
|
PersonaBasics.tsx
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export default function PersonaBasics() {
|
| 2 |
+
return (
|
| 3 |
+
<main className="p-8">
|
| 4 |
+
<h2 className="text-xl font-bold mb-4">Set Your Persona</h2>
|
| 5 |
+
<div>
|
| 6 |
+
<label>Tone</label>
|
| 7 |
+
{/* ToneSlider component */}
|
| 8 |
+
<input type="range" min={0} max={100} />
|
| 9 |
+
</div>
|
| 10 |
+
<div className="mt-4">
|
| 11 |
+
<label>Name</label>
|
| 12 |
+
<input type="text" className="input" />
|
| 13 |
+
</div>
|
| 14 |
+
<div className="mt-4">
|
| 15 |
+
<button className="btn btn-primary">Next</button>
|
| 16 |
+
</div>
|
| 17 |
+
</main>
|
| 18 |
+
);
|
| 19 |
+
}
|
PrimerPreview.tsx
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export default function PrimerPreview() {
|
| 2 |
+
return (
|
| 3 |
+
<main className="p-8">
|
| 4 |
+
<h2 className="text-xl font-bold mb-4">Session Primer Preview</h2>
|
| 5 |
+
<pre className="bg-gray-100 p-4 rounded">Persona, memories, and tooling manifest will show here.</pre>
|
| 6 |
+
<button className="btn btn-primary mt-4">Copy / Inject</button>
|
| 7 |
+
</main>
|
| 8 |
+
);
|
| 9 |
+
}
|
README.md
CHANGED
|
@@ -1,320 +1,43 @@
|
|
| 1 |
-
#
|
| 2 |
|
| 3 |
-
A
|
| 4 |
|
| 5 |
-
|
| 6 |
|
| 7 |
-
##
|
| 8 |
-
|
| 9 |
-
1. **TA ULS Transformer Architecture** (`tauls_transformer.py`)
|
| 10 |
-
- Kinetic Force Principle (KFP) layers for gradient-based optimization
|
| 11 |
-
- Two-level control system (meta-control + automatic control)
|
| 12 |
-
- Entropy regulation based on environmental stress
|
| 13 |
-
- Enhanced transformer blocks with stability monitoring
|
| 14 |
-
|
| 15 |
-
2. **Dual LLM Orchestration** (`dual_llm_orchestrator.py`)
|
| 16 |
-
- Local LLM for final inference and decision making
|
| 17 |
-
- Remote LLM for resource-only summarization
|
| 18 |
-
- Intelligent coordination between systems
|
| 19 |
-
- Multiple backend support (OpenAI, llama.cpp, TextGen WebUI)
|
| 20 |
-
|
| 21 |
-
3. **Neuro-Symbolic Adaptive Engine** (`neuro_symbolic_engine.py`)
|
| 22 |
-
- Multiple analytical modules (entropy, reflection, matrix transformation)
|
| 23 |
-
- Feature extraction and neural-symbolic fusion
|
| 24 |
-
- Reinforcement learning for adaptive decision making
|
| 25 |
-
- Reflective database for self-tuning and memory
|
| 26 |
-
|
| 27 |
-
4. **Advanced Signal Processing** (`signal_processing.py`)
|
| 28 |
-
- Multiple modulation schemes (BFSK, BPSK, QPSK, QAM16, OFDM, DSSS)
|
| 29 |
-
- Forward Error Correction (Hamming, Reed-Solomon, LDPC, Turbo)
|
| 30 |
-
- Framing, security (AES-GCM), and watermarking
|
| 31 |
-
- Audio and IQ signal generation with visualization
|
| 32 |
-
|
| 33 |
-
5. **Integrated System** (`enhanced_wavecaster.py`)
|
| 34 |
-
- Comprehensive CLI interface
|
| 35 |
-
- Configuration management
|
| 36 |
-
- Component integration and orchestration
|
| 37 |
-
|
| 38 |
-
## 📦 Installation
|
| 39 |
-
|
| 40 |
-
### Requirements
|
| 41 |
-
|
| 42 |
-
```bash
|
| 43 |
-
# Core dependencies (required)
|
| 44 |
-
pip install numpy scipy torch
|
| 45 |
-
|
| 46 |
-
# Optional dependencies for full functionality
|
| 47 |
-
pip install matplotlib sounddevice soundfile requests pycryptodome
|
| 48 |
-
|
| 49 |
-
# Or install all at once
|
| 50 |
-
pip install -r requirements.txt
|
| 51 |
-
```
|
| 52 |
-
|
| 53 |
-
### Quick Setup
|
| 54 |
-
|
| 55 |
-
```bash
|
| 56 |
-
git clone <repository>
|
| 57 |
-
cd enhanced-wavecaster
|
| 58 |
-
pip install -r requirements.txt
|
| 59 |
-
```
|
| 60 |
-
|
| 61 |
-
## 🎯 Quick Start
|
| 62 |
-
|
| 63 |
-
### 1. Direct Text Modulation
|
| 64 |
-
|
| 65 |
-
```bash
|
| 66 |
-
# Basic QPSK modulation
|
| 67 |
-
python enhanced_wavecaster.py modulate --text "Hello, World!" --scheme qpsk --wav
|
| 68 |
-
|
| 69 |
-
# With security features
|
| 70 |
-
python enhanced_wavecaster.py modulate \
|
| 71 |
-
--text "Secure message" \
|
| 72 |
-
--scheme ofdm \
|
| 73 |
-
--password "secret123" \
|
| 74 |
-
--watermark "my_watermark" \
|
| 75 |
-
--fec hamming74 \
|
| 76 |
-
--wav --iq
|
| 77 |
-
```
|
| 78 |
-
|
| 79 |
-
### 2. LLM-Orchestrated Casting
|
| 80 |
-
|
| 81 |
-
```bash
|
| 82 |
-
# Using local LLM (llama.cpp server)
|
| 83 |
-
python enhanced_wavecaster.py cast \
|
| 84 |
-
--prompt "Summarize the key technical points" \
|
| 85 |
-
--resource-file document.txt \
|
| 86 |
-
--scheme qpsk \
|
| 87 |
-
--local-url http://localhost:8080 \
|
| 88 |
-
--adaptive \
|
| 89 |
-
--wav
|
| 90 |
-
|
| 91 |
-
# Using remote LLM with local fallback
|
| 92 |
-
python enhanced_wavecaster.py cast \
|
| 93 |
-
--prompt "Create a technical brief" \
|
| 94 |
-
--resource-file specs.pdf \
|
| 95 |
-
--resource-text "Additional context here" \
|
| 96 |
-
--remote-url https://api.openai.com \
|
| 97 |
-
--remote-key $OPENAI_API_KEY \
|
| 98 |
-
--scheme ofdm \
|
| 99 |
-
--adaptive
|
| 100 |
-
```
|
| 101 |
-
|
| 102 |
-
### 3. Adaptive Learning
|
| 103 |
-
|
| 104 |
-
```bash
|
| 105 |
-
# Train the adaptive system
|
| 106 |
-
python enhanced_wavecaster.py learn \
|
| 107 |
-
--texts "Message 1" "Message 2" "Message 3" \
|
| 108 |
-
--episodes 20 \
|
| 109 |
-
--db-path learning_db.json
|
| 110 |
-
```
|
| 111 |
-
|
| 112 |
-
### 4. Component Demonstrations
|
| 113 |
|
| 114 |
```bash
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
# Demo specific components
|
| 119 |
-
python enhanced_wavecaster.py demo --component tauls
|
| 120 |
-
python enhanced_wavecaster.py demo --component neuro-symbolic
|
| 121 |
-
python enhanced_wavecaster.py demo --component signal-processing
|
| 122 |
-
```
|
| 123 |
-
|
| 124 |
-
### 5. Text Analysis
|
| 125 |
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
python enhanced_wavecaster.py analyze \
|
| 129 |
-
--text "Complex technical document content..." \
|
| 130 |
-
--plot
|
| 131 |
```
|
| 132 |
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
### Configuration File
|
| 136 |
-
|
| 137 |
-
Create a JSON configuration file:
|
| 138 |
-
|
| 139 |
-
```json
|
| 140 |
-
{
|
| 141 |
-
"db_path": "reflective_db.json",
|
| 142 |
-
"llm": {
|
| 143 |
-
"local": [
|
| 144 |
-
{
|
| 145 |
-
"base_url": "http://127.0.0.1:8080",
|
| 146 |
-
"mode": "llama-cpp",
|
| 147 |
-
"model": "local-model"
|
| 148 |
-
}
|
| 149 |
-
],
|
| 150 |
-
"remote": {
|
| 151 |
-
"base_url": "https://api.openai.com",
|
| 152 |
-
"api_key": "your-api-key",
|
| 153 |
-
"model": "gpt-4o-mini"
|
| 154 |
-
},
|
| 155 |
-
"settings": {
|
| 156 |
-
"temperature": 0.7,
|
| 157 |
-
"max_tokens": 512,
|
| 158 |
-
"style": "concise"
|
| 159 |
-
}
|
| 160 |
-
},
|
| 161 |
-
"modulation": {
|
| 162 |
-
"sample_rate": 48000,
|
| 163 |
-
"symbol_rate": 1200,
|
| 164 |
-
"amplitude": 0.7
|
| 165 |
-
},
|
| 166 |
-
"security": {
|
| 167 |
-
"password": null,
|
| 168 |
-
"watermark": null,
|
| 169 |
-
"hmac_key": null
|
| 170 |
-
}
|
| 171 |
-
}
|
| 172 |
-
```
|
| 173 |
-
|
| 174 |
-
Use with: `--config config.json`
|
| 175 |
-
|
| 176 |
-
## 🧪 Testing
|
| 177 |
-
|
| 178 |
-
Run the comprehensive test suite:
|
| 179 |
-
|
| 180 |
-
```bash
|
| 181 |
-
python test_system.py
|
| 182 |
-
```
|
| 183 |
-
|
| 184 |
-
Or use pytest:
|
| 185 |
-
|
| 186 |
-
```bash
|
| 187 |
-
pytest test_system.py -v
|
| 188 |
-
```
|
| 189 |
-
|
| 190 |
-
## 📊 Architecture Overview
|
| 191 |
-
|
| 192 |
-
```
|
| 193 |
-
┌─────────────────────────────────────────────────────────────────┐
|
| 194 |
-
│ Enhanced WaveCaster System │
|
| 195 |
-
├─────────────────────────────────────────────────────────────────┤
|
| 196 |
-
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
|
| 197 |
-
│ │ TA ULS │ │ Dual LLM │ │ Neuro-Symbolic │ │
|
| 198 |
-
│ │ Transformer │ │ Orchestrator │ │ Engine │ │
|
| 199 |
-
│ │ │ │ │ │ │ │
|
| 200 |
-
│ │ • KFP Layers │ │ • Local LLM │ │ • Analytics │ │
|
| 201 |
-
│ │ • Control Unit │ │ • Remote LLM │ │ • Feature Ext. │ │
|
| 202 |
-
│ │ • Entropy Reg. │ │ • Coordination │ │ • RL Agent │ │
|
| 203 |
-
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
|
| 204 |
-
│ │ │
|
| 205 |
-
│ ┌─────────────────────────────┼─────────────────────────────┐ │
|
| 206 |
-
│ │ Signal Processing & Modulation │ │
|
| 207 |
-
│ │ │ │
|
| 208 |
-
│ │ • BFSK/BPSK/QPSK/QAM16/OFDM/DSSS │ │
|
| 209 |
-
│ │ • FEC (Hamming/Reed-Solomon/LDPC/Turbo) │ │
|
| 210 |
-
│ │ • Security (AES-GCM/HMAC/Watermarking) │ │
|
| 211 |
-
│ │ • Audio/IQ Generation & Visualization │ │
|
| 212 |
-
│ └───────────────────────────────────────────────────────────┘ │
|
| 213 |
-
└─────────────────────────────────────────────────────────────────┘
|
| 214 |
-
```
|
| 215 |
-
|
| 216 |
-
## 🔬 Technical Details
|
| 217 |
-
|
| 218 |
-
### TA ULS Architecture
|
| 219 |
-
|
| 220 |
-
The Two-level Trans-Algorithmic Universal Learning System implements:
|
| 221 |
-
|
| 222 |
-
- **Higher Level**: Meta-control for learning and adaptation
|
| 223 |
-
- **Lower Level**: Automatic control for real-time processing
|
| 224 |
-
- **KFP Layers**: Gradient-based optimization toward minimal fluctuation
|
| 225 |
-
- **Entropy Regulation**: Environmental stress-based parameter modulation
|
| 226 |
-
|
| 227 |
-
### Neuro-Symbolic Fusion
|
| 228 |
-
|
| 229 |
-
Combines neural features with symbolic metrics:
|
| 230 |
-
|
| 231 |
-
- **Neural Features**: N-gram hashing, embedding extraction
|
| 232 |
-
- **Symbolic Metrics**: Entropy, complexity, semantic density, harmony
|
| 233 |
-
- **RL Agent**: Contextual bandit for adaptive decision making
|
| 234 |
-
- **Reflective DB**: Self-tuning memory system
|
| 235 |
-
|
| 236 |
-
### Signal Processing Pipeline
|
| 237 |
-
|
| 238 |
-
```
|
| 239 |
-
Text → Encoding → FEC → Framing → Security → Modulation → Audio/IQ
|
| 240 |
-
↑ ↓
|
| 241 |
-
Analysis ← Adaptive Planning ← Neuro-Symbolic Engine ← Feedback
|
| 242 |
-
```
|
| 243 |
-
|
| 244 |
-
## 📈 Performance Characteristics
|
| 245 |
-
|
| 246 |
-
### Modulation Schemes
|
| 247 |
-
|
| 248 |
-
| Scheme | Spectral Efficiency | Complexity | Robustness |
|
| 249 |
-
|-----------|-------------------|------------|------------|
|
| 250 |
-
| BFSK | Low | Low | High |
|
| 251 |
-
| BPSK | Medium | Low | High |
|
| 252 |
-
| QPSK | Medium | Medium | Medium |
|
| 253 |
-
| QAM16 | High | High | Low |
|
| 254 |
-
| OFDM | High | High | Medium |
|
| 255 |
-
| DSSS-BPSK | Low | Medium | Very High |
|
| 256 |
-
|
| 257 |
-
### FEC Performance
|
| 258 |
-
|
| 259 |
-
| Scheme | Code Rate | Error Correction | Complexity |
|
| 260 |
-
|------------|-----------|------------------|------------|
|
| 261 |
-
| None | 1.0 | None | Minimal |
|
| 262 |
-
| Hamming74 | 4/7 | Single bit | Low |
|
| 263 |
-
| Reed-Solomon| Variable | Burst errors | Medium |
|
| 264 |
-
| LDPC | Variable | Near capacity | High |
|
| 265 |
-
| Turbo | Variable | Near capacity | Very High |
|
| 266 |
-
|
| 267 |
-
## 🛠️ Development
|
| 268 |
-
|
| 269 |
-
### Project Structure
|
| 270 |
-
|
| 271 |
-
```
|
| 272 |
-
enhanced-wavecaster/
|
| 273 |
-
├── tauls_transformer.py # TA ULS architecture
|
| 274 |
-
├── dual_llm_orchestrator.py # LLM coordination
|
| 275 |
-
├── neuro_symbolic_engine.py # Adaptive analytics
|
| 276 |
-
├── signal_processing.py # Modulation & DSP
|
| 277 |
-
├── enhanced_wavecaster.py # Main integration
|
| 278 |
-
├── test_system.py # Comprehensive tests
|
| 279 |
-
├── requirements.txt # Dependencies
|
| 280 |
-
└── README.md # This file
|
| 281 |
-
```
|
| 282 |
-
|
| 283 |
-
### Adding New Components
|
| 284 |
-
|
| 285 |
-
1. **Modulation Schemes**: Extend `Modulators` class in `signal_processing.py`
|
| 286 |
-
2. **FEC Codes**: Add to `fec_encode`/`fec_decode` functions
|
| 287 |
-
3. **Analytics**: Add modules to `neuro_symbolic_engine.py`
|
| 288 |
-
4. **LLM Backends**: Extend `LocalLLM` class in `dual_llm_orchestrator.py`
|
| 289 |
-
|
| 290 |
-
### Contributing
|
| 291 |
-
|
| 292 |
-
1. Fork the repository
|
| 293 |
-
2. Create a feature branch
|
| 294 |
-
3. Add tests for new functionality
|
| 295 |
-
4. Ensure all tests pass
|
| 296 |
-
5. Submit a pull request
|
| 297 |
|
| 298 |
-
##
|
| 299 |
|
| 300 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 301 |
|
| 302 |
-
##
|
|
|
|
|
|
|
| 303 |
|
| 304 |
-
|
| 305 |
-
-
|
| 306 |
-
- Neuro-symbolic AI and hybrid reasoning systems
|
| 307 |
-
- Digital signal processing and communication theory
|
| 308 |
-
- Reinforcement learning and adaptive systems
|
| 309 |
-
- Information theory and error correction coding
|
| 310 |
|
| 311 |
-
##
|
|
|
|
| 312 |
|
| 313 |
-
|
| 314 |
-
- Create an issue on GitHub
|
| 315 |
-
- Check the test suite for usage examples
|
| 316 |
-
- Review the comprehensive docstrings in each module
|
| 317 |
|
| 318 |
-
-
|
| 319 |
|
| 320 |
-
|
|
|
|
| 1 |
+
# ChaosRAGJulia (Single-File)
|
| 2 |
|
| 3 |
+
A compact Julia service that unifies a **KFP chaos router**, **HHT/EEMD** time–frequency analytics, and **OpenAI-based RAG** for crypto research.
|
| 4 |
|
| 5 |
+
**License: Apache 2.0** (full text below).
|
| 6 |
|
| 7 |
+
## Install & Run
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
|
| 9 |
```bash
|
| 10 |
+
export DATABASE_URL=postgres://user:pass@localhost:5432/chaos
|
| 11 |
+
# optional
|
| 12 |
+
export OPENAI_API_KEY=sk-...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
|
| 14 |
+
julia --project -e 'using Pkg; Pkg.add.(["HTTP","JSON3","LibPQ","DSP","UUIDs","Interpolations"])'
|
| 15 |
+
julia server.jl
|
|
|
|
|
|
|
|
|
|
| 16 |
```
|
| 17 |
|
| 18 |
+
The server bootstraps the schema and tries to enable `pgvector`. If extensions can’t be installed by your DB role, pre-install them or ignore the warning; tables still create.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
|
| 20 |
+
## Endpoints
|
| 21 |
|
| 22 |
+
- `POST /chaos/rag/index` — index docs `{docs:[{source,kind,content,meta}]}`
|
| 23 |
+
- `POST /chaos/telemetry` — push `asset, realized_vol, entropy, mod_intensity_grad`
|
| 24 |
+
- `POST /chaos/hht/ingest` — EEMD + Hilbert on window `{asset, ts[], x[], fs}`
|
| 25 |
+
- `POST /chaos/graph/entangle` — upsert edges `{pairs:[[src,dst],...], weight?, nesting_level?, attrs?}`
|
| 26 |
+
- `GET /chaos/graph/:uuid` — fetch node + edges
|
| 27 |
+
- `POST /chaos/rag/query` — chaos-routed mixed retrieval + LLM answer `{q, k?}`
|
| 28 |
|
| 29 |
+
## Router (KFP-inspired)
|
| 30 |
+
`stress = σ(1.8·vol + 1.5·entropy + 0.8·|grad|)`
|
| 31 |
+
`mix = { vector, graph, hht }` increase HHT/graph under stress, shift back to vector when calm. `top_k` shrinks as stress rises.
|
| 32 |
|
| 33 |
+
## HHT/EEMD
|
| 34 |
+
CPU-only minimalist EEMD (ensemble, noise_std, max_imfs). Hilbert features: instantaneous frequency & amplitude with burst flag by amplitude percentile threshold.
|
|
|
|
|
|
|
|
|
|
|
|
|
| 35 |
|
| 36 |
+
## Apache License 2.0
|
| 37 |
+
Copyright 2025 Your Name
|
| 38 |
|
| 39 |
+
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
|
|
|
|
|
|
|
|
|
|
| 40 |
|
| 41 |
+
http://www.apache.org/licenses/LICENSE-2.0
|
| 42 |
|
| 43 |
+
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
ReviewPin.tsx
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export default function ReviewPin() {
|
| 2 |
+
return (
|
| 3 |
+
<main className="p-8">
|
| 4 |
+
<h2 className="text-xl font-bold mb-4">Review & Pin Memories</h2>
|
| 5 |
+
<div>
|
| 6 |
+
<p>Pin your top 10 memories or style rules for best results.</p>
|
| 7 |
+
{/* MemoryCard component placeholder */}
|
| 8 |
+
<div className="mt-2">[Memory cards here]</div>
|
| 9 |
+
</div>
|
| 10 |
+
<div className="mt-4">
|
| 11 |
+
<button className="btn btn-primary">Finish</button>
|
| 12 |
+
</div>
|
| 13 |
+
</main>
|
| 14 |
+
);
|
| 15 |
+
}
|
SECURITY.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Security Policy
|
| 2 |
+
|
| 3 |
+
## Supported Versions
|
| 4 |
+
|
| 5 |
+
The following table outlines which versions of **TEmp-oral_vectraxice** are actively supported with security updates.
|
| 6 |
+
Please ensure you are using a supported version to receive timely patches.
|
| 7 |
+
|
| 8 |
+
| Version | Supported |
|
| 9 |
+
| ------- | ------------------ |
|
| 10 |
+
| 5.1.x | ✅ |
|
| 11 |
+
| 5.0.x | ❌ |
|
| 12 |
+
| 4.0.x | ✅ |
|
| 13 |
+
| < 4.0 | ❌ |
|
| 14 |
+
|
| 15 |
+
---
|
| 16 |
+
|
| 17 |
+
## Reporting a Vulnerability
|
| 18 |
+
|
| 19 |
+
If you discover a security vulnerability in this repository, **please do not create a public GitHub issue**.
|
| 20 |
+
Instead, follow the secure reporting process below:
|
| 21 |
+
|
| 22 |
+
1. **Email the Maintainer**
|
| 23 |
+
Send a detailed report to: **security@vectraxice.dev**
|
| 24 |
+
*(If email is unavailable, open a "Security" discussion marked as PRIVATE on GitHub.)*
|
| 25 |
+
|
| 26 |
+
2. **Include the Following in Your Report**
|
| 27 |
+
- A clear description of the vulnerability.
|
| 28 |
+
- Steps to reproduce the issue.
|
| 29 |
+
- Potential impact and affected versions.
|
| 30 |
+
- Any suggested fixes or mitigations.
|
| 31 |
+
|
| 32 |
+
3. **Response Timeline**
|
| 33 |
+
- **Acknowledgment:** Within **48 hours** of receiving your report.
|
| 34 |
+
- **Initial Assessment:** Within **5 business days**, we will confirm whether the vulnerability is valid.
|
| 35 |
+
- **Resolution Plan:** If confirmed, a patch and release timeline will be communicated.
|
| 36 |
+
- **Public Disclosure:** We will coordinate with you before making the issue public.
|
| 37 |
+
|
| 38 |
+
4. **If the Vulnerability is Declined**
|
| 39 |
+
- You will receive an explanation outlining why the issue does not meet our security criteria.
|
| 40 |
+
|
| 41 |
+
---
|
| 42 |
+
|
| 43 |
+
## Security Best Practices for Contributors
|
| 44 |
+
|
| 45 |
+
- Never commit credentials, API keys, or secrets.
|
| 46 |
+
- Always run tests locally before submitting pull requests.
|
| 47 |
+
- Keep dependencies up to date and avoid introducing unmaintained packages.
|
| 48 |
+
- Follow the repository’s [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) and [CONTRIBUTING.md](CONTRIBUTING.md) guidelines.
|
| 49 |
+
|
| 50 |
+
---
|
| 51 |
+
|
| 52 |
+
**Note:** All security advisories and resolved vulnerabilities will be documented under the repository's **"Security" tab** on GitHub.
|
Sfpud.py
ADDED
|
@@ -0,0 +1,1004 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
# dual_llm_wavecaster_enhanced.py
|
| 3 |
+
# SPDX-License-Identifier: MIT
|
| 4 |
+
"""
|
| 5 |
+
Enhanced Dual LLM WaveCaster
|
| 6 |
+
---------------------------
|
| 7 |
+
Two-LLM orchestration (local final inference + remote resource-only summaries) → framed bits
|
| 8 |
+
→ modulated waveform (BFSK/BPSK/QPSK/16QAM/AFSK/OFDM) → WAV/IQ files (+ optional audio out)
|
| 9 |
+
with visualization, simple FEC, encryption, watermarking, and metadata.
|
| 10 |
+
|
| 11 |
+
Deps (minimum):
|
| 12 |
+
pip install numpy scipy requests
|
| 13 |
+
|
| 14 |
+
Optional:
|
| 15 |
+
pip install matplotlib sounddevice pycryptodome
|
| 16 |
+
|
| 17 |
+
Quick start:
|
| 18 |
+
python dual_llm_wavecaster_enhanced.py modulate --text "hello airwaves" --scheme qpsk --wav --iq
|
| 19 |
+
python dual_llm_wavecaster_enhanced.py cast --prompt "2-paragraph plan" \
|
| 20 |
+
--resource-file notes.txt --local-url http://127.0.0.1:8080 --local-mode llama-cpp \
|
| 21 |
+
--remote-url https://api.openai.com --remote-key $OPENAI_API_KEY --scheme bfsk --wav
|
| 22 |
+
"""
|
| 23 |
+
|
| 24 |
+
from __future__ import annotations
|
| 25 |
+
import argparse, base64, binascii, hashlib, json, logging, math, os, struct, sys, time, warnings
|
| 26 |
+
from dataclasses import dataclass, field
|
| 27 |
+
from pathlib import Path
|
| 28 |
+
from typing import Any, Dict, List, Optional, Sequence, Tuple, Union, Callable
|
| 29 |
+
from enum import Enum, auto
|
| 30 |
+
from datetime import datetime
|
| 31 |
+
|
| 32 |
+
# ---------- Hard requirements ----------
|
| 33 |
+
try:
|
| 34 |
+
import numpy as np
|
| 35 |
+
from scipy import signal as sp_signal
|
| 36 |
+
from scipy.fft import rfft, rfftfreq
|
| 37 |
+
except Exception as e:
|
| 38 |
+
raise SystemExit("numpy and scipy are required: pip install numpy scipy") from e
|
| 39 |
+
|
| 40 |
+
# ---------- Optional dependencies ----------
|
| 41 |
+
try:
|
| 42 |
+
import requests
|
| 43 |
+
except Exception:
|
| 44 |
+
requests = None # HTTP backends disabled if missing
|
| 45 |
+
|
| 46 |
+
try:
|
| 47 |
+
import matplotlib
|
| 48 |
+
matplotlib.use("Agg")
|
| 49 |
+
import matplotlib.pyplot as plt
|
| 50 |
+
HAS_MPL = True
|
| 51 |
+
except Exception:
|
| 52 |
+
HAS_MPL = False
|
| 53 |
+
|
| 54 |
+
try:
|
| 55 |
+
import sounddevice as sd
|
| 56 |
+
HAS_AUDIO = True
|
| 57 |
+
except Exception:
|
| 58 |
+
HAS_AUDIO = False
|
| 59 |
+
|
| 60 |
+
try:
|
| 61 |
+
from Crypto.Cipher import AES
|
| 62 |
+
from Crypto.Random import get_random_bytes
|
| 63 |
+
from Crypto.Protocol.KDF import PBKDF2
|
| 64 |
+
HAS_CRYPTO = True
|
| 65 |
+
except Exception:
|
| 66 |
+
HAS_CRYPTO = False
|
| 67 |
+
|
| 68 |
+
logging.basicConfig(level=logging.INFO, format="%(asctime)s | %(levelname)s | %(message)s")
|
| 69 |
+
log = logging.getLogger("wavecaster")
|
| 70 |
+
|
| 71 |
+
# =========================================================
|
| 72 |
+
# Enums / Config
|
| 73 |
+
# =========================================================
|
| 74 |
+
|
| 75 |
+
class ModulationScheme(Enum):
|
| 76 |
+
BFSK = auto()
|
| 77 |
+
BPSK = auto()
|
| 78 |
+
QPSK = auto()
|
| 79 |
+
QAM16 = auto()
|
| 80 |
+
AFSK = auto()
|
| 81 |
+
OFDM = auto()
|
| 82 |
+
DSSS_BPSK = auto()
|
| 83 |
+
|
| 84 |
+
class FEC(Enum):
|
| 85 |
+
NONE = auto()
|
| 86 |
+
HAMMING74 = auto()
|
| 87 |
+
REED_SOLOMON = auto() # stub
|
| 88 |
+
LDPC = auto() # stub
|
| 89 |
+
TURBO = auto() # stub
|
| 90 |
+
|
| 91 |
+
@dataclass
|
| 92 |
+
class HTTPConfig:
|
| 93 |
+
base_url: str
|
| 94 |
+
api_key: Optional[str] = None
|
| 95 |
+
model: Optional[str] = None
|
| 96 |
+
timeout: int = 60
|
| 97 |
+
mode: str = "openai-chat" # ["openai-chat","openai-completions","llama-cpp","textgen-webui"]
|
| 98 |
+
verify_ssl: bool = True
|
| 99 |
+
max_retries: int = 2
|
| 100 |
+
retry_delay: float = 0.8
|
| 101 |
+
|
| 102 |
+
@dataclass
|
| 103 |
+
class OrchestratorSettings:
|
| 104 |
+
temperature: float = 0.7
|
| 105 |
+
max_tokens: int = 512
|
| 106 |
+
style: str = "concise"
|
| 107 |
+
max_context_chars: int = 8000
|
| 108 |
+
|
| 109 |
+
@dataclass
|
| 110 |
+
class ModConfig:
|
| 111 |
+
sample_rate: int = 48000
|
| 112 |
+
symbol_rate: int = 1200
|
| 113 |
+
amplitude: float = 0.7
|
| 114 |
+
f0: float = 1200.0 # BFSK 0
|
| 115 |
+
f1: float = 2200.0 # BFSK 1
|
| 116 |
+
fc: float = 1800.0 # PSK/QAM audio carrier (for WAV)
|
| 117 |
+
clip: bool = True
|
| 118 |
+
# OFDM (toy)
|
| 119 |
+
ofdm_subc: int = 64
|
| 120 |
+
cp_len: int = 16
|
| 121 |
+
# DSSS
|
| 122 |
+
dsss_chip_rate: int = 4800
|
| 123 |
+
|
| 124 |
+
@dataclass
|
| 125 |
+
class FrameConfig:
|
| 126 |
+
use_crc32: bool = True
|
| 127 |
+
use_crc16: bool = False
|
| 128 |
+
preamble: bytes = b"\x55" * 8 # 01010101 * 8
|
| 129 |
+
version: int = 1
|
| 130 |
+
|
| 131 |
+
# =========================================================
|
| 132 |
+
# Utilities
|
| 133 |
+
# =========================================================
|
| 134 |
+
|
| 135 |
+
def now_ms() -> int:
|
| 136 |
+
return int(time.time() * 1000)
|
| 137 |
+
|
| 138 |
+
def crc32_bytes(data: bytes) -> bytes:
|
| 139 |
+
return binascii.crc32(data).to_bytes(4, "big")
|
| 140 |
+
|
| 141 |
+
def crc16_ccitt(data: bytes) -> bytes:
|
| 142 |
+
poly, crc = 0x1021, 0xFFFF
|
| 143 |
+
for b in data:
|
| 144 |
+
crc ^= b << 8
|
| 145 |
+
for _ in range(8):
|
| 146 |
+
crc = ((crc << 1) ^ poly) & 0xFFFF if (crc & 0x8000) else ((crc << 1) & 0xFFFF)
|
| 147 |
+
return crc.to_bytes(2, "big")
|
| 148 |
+
|
| 149 |
+
def to_bits(data: bytes) -> List[int]:
|
| 150 |
+
return [(byte >> i) & 1 for byte in data for i in range(7, -1, -1)]
|
| 151 |
+
|
| 152 |
+
def from_bits(bits: Sequence[int]) -> bytes:
|
| 153 |
+
if len(bits) % 8 != 0:
|
| 154 |
+
bits = list(bits) + [0] * (8 - len(bits) % 8)
|
| 155 |
+
out = bytearray()
|
| 156 |
+
for i in range(0, len(bits), 8):
|
| 157 |
+
byte = 0
|
| 158 |
+
for b in bits[i:i+8]:
|
| 159 |
+
byte = (byte << 1) | (1 if b else 0)
|
| 160 |
+
out.append(byte)
|
| 161 |
+
return bytes(out)
|
| 162 |
+
|
| 163 |
+
def chunk_bits(bits: Sequence[int], n: int) -> List[List[int]]:
|
| 164 |
+
return [list(bits[i:i+n]) for i in range(0, len(bits), n)]
|
| 165 |
+
|
| 166 |
+
def safe_json(obj: Any) -> str:
|
| 167 |
+
def enc(x):
|
| 168 |
+
if isinstance(x, (np.floating,)):
|
| 169 |
+
return float(x)
|
| 170 |
+
if isinstance(x, (np.integer,)):
|
| 171 |
+
return int(x)
|
| 172 |
+
if isinstance(x, (np.ndarray,)):
|
| 173 |
+
return x.tolist()
|
| 174 |
+
if isinstance(x, complex):
|
| 175 |
+
return {"real": float(x.real), "imag": float(x.imag)}
|
| 176 |
+
if isinstance(x, datetime):
|
| 177 |
+
return x.isoformat()
|
| 178 |
+
return str(x)
|
| 179 |
+
return json.dumps(obj, ensure_ascii=False, indent=2, default=enc)
|
| 180 |
+
|
| 181 |
+
def write_wav_mono(path: Path, signal: np.ndarray, sample_rate: int):
|
| 182 |
+
import wave
|
| 183 |
+
sig = np.clip(signal, -1.0, 1.0)
|
| 184 |
+
pcm = (sig * 32767.0).astype(np.int16)
|
| 185 |
+
with wave.open(str(path), "wb") as w:
|
| 186 |
+
w.setnchannels(1); w.setsampwidth(2); w.setframerate(sample_rate)
|
| 187 |
+
w.writeframes(pcm.tobytes())
|
| 188 |
+
|
| 189 |
+
def write_iq_f32(path: Path, iq: np.ndarray):
|
| 190 |
+
if iq.ndim != 1 or not np.iscomplexobj(iq):
|
| 191 |
+
raise ValueError("iq must be 1-D complex array")
|
| 192 |
+
interleaved = np.empty(iq.size * 2, dtype=np.float32)
|
| 193 |
+
interleaved[0::2] = iq.real.astype(np.float32)
|
| 194 |
+
interleaved[1::2] = iq.imag.astype(np.float32)
|
| 195 |
+
path.write_bytes(interleaved.tobytes())
|
| 196 |
+
|
| 197 |
+
def plot_wave_and_spectrum(path_png: Path, x: np.ndarray, sr: int, title: str):
|
| 198 |
+
if not HAS_MPL:
|
| 199 |
+
return
|
| 200 |
+
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10,5))
|
| 201 |
+
t = np.arange(len(x))/sr
|
| 202 |
+
ax1.plot(t[:min(len(t), 0.05*sr)], x[:min(len(x), int(0.05*sr))])
|
| 203 |
+
ax1.set_title(f"{title} (first 50ms)")
|
| 204 |
+
ax1.set_xlabel("s"); ax1.set_ylabel("amplitude")
|
| 205 |
+
spec = np.abs(rfft(x)) + 1e-12
|
| 206 |
+
freqs = rfftfreq(len(x), 1.0/sr)
|
| 207 |
+
ax2.semilogy(freqs, spec/spec.max())
|
| 208 |
+
ax2.set_xlim(0, min(8000, sr//2)); ax2.set_xlabel("Hz"); ax2.set_ylabel("norm |X(f)|")
|
| 209 |
+
plt.tight_layout(); fig.savefig(path_png); plt.close(fig)
|
| 210 |
+
|
| 211 |
+
def play_audio(x: np.ndarray, sr: int):
|
| 212 |
+
if not HAS_AUDIO:
|
| 213 |
+
log.warning("sounddevice not installed; cannot play audio")
|
| 214 |
+
return
|
| 215 |
+
sd.play(x, sr); sd.wait()
|
| 216 |
+
|
| 217 |
+
# =========================================================
|
| 218 |
+
# FEC (simple Hamming 7,4; heavy codes are stubs)
|
| 219 |
+
# =========================================================
|
| 220 |
+
|
| 221 |
+
def hamming74_encode(data_bits: List[int]) -> List[int]:
|
| 222 |
+
if len(data_bits) % 4 != 0:
|
| 223 |
+
data_bits = data_bits + [0] * (4 - len(data_bits) % 4)
|
| 224 |
+
out = []
|
| 225 |
+
for i in range(0, len(data_bits), 4):
|
| 226 |
+
d0, d1, d2, d3 = data_bits[i:i+4]
|
| 227 |
+
p1 = d0 ^ d1 ^ d3
|
| 228 |
+
p2 = d0 ^ d2 ^ d3
|
| 229 |
+
p3 = d1 ^ d2 ^ d3
|
| 230 |
+
out += [p1, p2, d0, p3, d1, d2, d3]
|
| 231 |
+
return out
|
| 232 |
+
|
| 233 |
+
def fec_encode(bits: List[int], scheme: FEC) -> List[int]:
|
| 234 |
+
if scheme == FEC.NONE:
|
| 235 |
+
return list(bits)
|
| 236 |
+
if scheme == FEC.HAMMING74:
|
| 237 |
+
return hamming74_encode(bits)
|
| 238 |
+
if scheme in (FEC.REED_SOLOMON, FEC.LDPC, FEC.TURBO):
|
| 239 |
+
raise NotImplementedError(f"{scheme.name} encoding not implemented in this minimal build")
|
| 240 |
+
raise ValueError("Unknown FEC")
|
| 241 |
+
|
| 242 |
+
# =========================================================
|
| 243 |
+
# Framing / Security / Watermark
|
| 244 |
+
# =========================================================
|
| 245 |
+
|
| 246 |
+
@dataclass
|
| 247 |
+
class SecurityConfig:
|
| 248 |
+
password: Optional[str] = None # AES-GCM if provided
|
| 249 |
+
watermark: Optional[str] = None # prepended SHA256[0:8]
|
| 250 |
+
hmac_key: Optional[str] = None # HMAC-SHA256 appended
|
| 251 |
+
|
| 252 |
+
def aes_gcm_encrypt(plaintext: bytes, password: str) -> bytes:
|
| 253 |
+
if not HAS_CRYPTO:
|
| 254 |
+
raise RuntimeError("pycryptodome required for encryption")
|
| 255 |
+
salt = get_random_bytes(16)
|
| 256 |
+
key = PBKDF2(password, salt, dkLen=32, count=200_000)
|
| 257 |
+
nonce = get_random_bytes(12)
|
| 258 |
+
cipher = AES.new(key, AES.MODE_GCM, nonce=nonce)
|
| 259 |
+
ct, tag = cipher.encrypt_and_digest(plaintext)
|
| 260 |
+
return b"AGCM" + salt + nonce + tag + ct
|
| 261 |
+
|
| 262 |
+
def apply_hmac(data: bytes, hkey: str) -> bytes:
|
| 263 |
+
import hmac
|
| 264 |
+
key = hashlib.sha256(hkey.encode("utf-8")).digest()
|
| 265 |
+
mac = hmac.new(key, data, hashlib.sha256).digest()
|
| 266 |
+
return data + b"HMAC" + mac
|
| 267 |
+
|
| 268 |
+
def add_watermark(data: bytes, wm: str) -> bytes:
|
| 269 |
+
return hashlib.sha256(wm.encode("utf-8")).digest()[:8] + data
|
| 270 |
+
|
| 271 |
+
def frame_payload(payload: bytes, fcfg: FrameConfig) -> bytes:
|
| 272 |
+
header = struct.pack(">BBI", 0xA5, fcfg.version, now_ms() & 0xFFFFFFFF)
|
| 273 |
+
core = header + payload
|
| 274 |
+
tail = b""
|
| 275 |
+
if fcfg.use_crc32:
|
| 276 |
+
tail += crc32_bytes(core)
|
| 277 |
+
if fcfg.use_crc16:
|
| 278 |
+
tail += crc16_ccitt(core)
|
| 279 |
+
return fcfg.preamble + core + tail
|
| 280 |
+
|
| 281 |
+
def encode_text(
|
| 282 |
+
text: str,
|
| 283 |
+
fcfg: FrameConfig,
|
| 284 |
+
sec: SecurityConfig,
|
| 285 |
+
fec_scheme: FEC,
|
| 286 |
+
) -> List[int]:
|
| 287 |
+
data = text.encode("utf-8")
|
| 288 |
+
if sec.watermark:
|
| 289 |
+
data = add_watermark(data, sec.watermark)
|
| 290 |
+
if sec.password:
|
| 291 |
+
data = aes_gcm_encrypt(data, sec.password)
|
| 292 |
+
framed = frame_payload(data, fcfg)
|
| 293 |
+
if sec.hmac_key:
|
| 294 |
+
framed = apply_hmac(framed, sec.hmac_key)
|
| 295 |
+
bits = to_bits(framed)
|
| 296 |
+
bits = fec_encode(bits, fec_scheme)
|
| 297 |
+
return bits
|
| 298 |
+
|
| 299 |
+
# =========================================================
|
| 300 |
+
# Modulators (audio & IQ)
|
| 301 |
+
# =========================================================
|
| 302 |
+
|
| 303 |
+
class Modulators:
|
| 304 |
+
@staticmethod
|
| 305 |
+
def bfsK(bits: Sequence[int], cfg: ModConfig) -> np.ndarray:
|
| 306 |
+
sr, rb = cfg.sample_rate, cfg.symbol_rate
|
| 307 |
+
spb = int(sr / rb)
|
| 308 |
+
t = np.arange(spb) / sr
|
| 309 |
+
s = []
|
| 310 |
+
a = cfg.amplitude
|
| 311 |
+
for b in bits:
|
| 312 |
+
f = cfg.f1 if b else cfg.f0
|
| 313 |
+
s.append(a * np.sin(2*np.pi*f*t))
|
| 314 |
+
y = np.concatenate(s) if s else np.zeros(0, dtype=np.float64)
|
| 315 |
+
return np.clip(y, -1, 1).astype(np.float32) if cfg.clip else y.astype(np.float32)
|
| 316 |
+
|
| 317 |
+
@staticmethod
|
| 318 |
+
def bpsK(bits: Sequence[int], cfg: ModConfig) -> Tuple[np.ndarray, np.ndarray]:
|
| 319 |
+
sr, rb, fc = cfg.sample_rate, cfg.symbol_rate, cfg.fc
|
| 320 |
+
spb = int(sr / rb)
|
| 321 |
+
t = np.arange(spb) / sr
|
| 322 |
+
a = cfg.amplitude
|
| 323 |
+
audio_blocks, iq_blocks = [], []
|
| 324 |
+
for b in bits:
|
| 325 |
+
phase = 0.0 if b else np.pi
|
| 326 |
+
audio_blocks.append(a * np.sin(2*np.pi*fc*t + phase))
|
| 327 |
+
iq_blocks.append(a * (np.cos(phase) + 1j*np.sin(phase)) * np.ones_like(t, dtype=np.complex64))
|
| 328 |
+
audio = np.concatenate(audio_blocks) if audio_blocks else np.zeros(0, dtype=np.float64)
|
| 329 |
+
iq = np.concatenate(iq_blocks) if iq_blocks else np.zeros(0, dtype=np.complex64)
|
| 330 |
+
if cfg.clip: audio = np.clip(audio, -1, 1)
|
| 331 |
+
return audio.astype(np.float32), iq
|
| 332 |
+
|
| 333 |
+
@staticmethod
|
| 334 |
+
def qpsK(bits: Sequence[int], cfg: ModConfig) -> Tuple[np.ndarray, np.ndarray]:
|
| 335 |
+
# Gray map: 00->(1+1j), 01->(-1+1j), 11->(-1-1j), 10->(1-1j)
|
| 336 |
+
pairs = chunk_bits(bits, 2)
|
| 337 |
+
syms = []
|
| 338 |
+
for p in pairs:
|
| 339 |
+
b0, b1 = (p + [0,0])[:2]
|
| 340 |
+
if (b0, b1) == (0,0): s = 1 + 1j
|
| 341 |
+
elif (b0, b1) == (0,1): s = -1 + 1j
|
| 342 |
+
elif (b0, b1) == (1,1): s = -1 - 1j
|
| 343 |
+
else: s = 1 - 1j
|
| 344 |
+
syms.append(s / math.sqrt(2)) # unit energy
|
| 345 |
+
return Modulators._psk_qam_to_audio_iq(np.array(syms, dtype=np.complex64), cfg)
|
| 346 |
+
|
| 347 |
+
@staticmethod
|
| 348 |
+
def qam16(bits: Sequence[int], cfg: ModConfig) -> Tuple[np.ndarray, np.ndarray]:
|
| 349 |
+
quads = chunk_bits(bits, 4)
|
| 350 |
+
def map2(b0,b1):
|
| 351 |
+
# Gray 2-bit to {-3,-1,1,3}
|
| 352 |
+
val = (b0<<1) | b1
|
| 353 |
+
return [-3,-1,1,3][val]
|
| 354 |
+
syms = []
|
| 355 |
+
for q in quads:
|
| 356 |
+
b0,b1,b2,b3 = (q+[0,0,0,0])[:4]
|
| 357 |
+
I = map2(b0,b1); Q = map2(b2,b3)
|
| 358 |
+
syms.append((I + 1j*Q)/math.sqrt(10)) # unit average power
|
| 359 |
+
return Modulators._psk_qam_to_audio_iq(np.array(syms, dtype=np.complex64), cfg)
|
| 360 |
+
|
| 361 |
+
@staticmethod
|
| 362 |
+
def _psk_qam_to_audio_iq(syms: np.ndarray, cfg: ModConfig) -> Tuple[np.ndarray, np.ndarray]:
|
| 363 |
+
sr, rb, fc = cfg.sample_rate, cfg.symbol_rate, cfg.fc
|
| 364 |
+
spb = int(sr / rb)
|
| 365 |
+
a = cfg.amplitude
|
| 366 |
+
# Upsample each symbol to 'spb' samples (rectangular pulse)
|
| 367 |
+
i = np.repeat(syms.real.astype(np.float32), spb)
|
| 368 |
+
q = np.repeat(syms.imag.astype(np.float32), spb)
|
| 369 |
+
t = np.arange(len(i)) / sr
|
| 370 |
+
audio = a * (i*np.cos(2*np.pi*fc*t) - q*np.sin(2*np.pi*fc*t))
|
| 371 |
+
iq = (a * i) + 1j*(a * q)
|
| 372 |
+
if cfg.clip: audio = np.clip(audio, -1, 1)
|
| 373 |
+
return audio.astype(np.float32), iq.astype(np.complex64)
|
| 374 |
+
|
| 375 |
+
@staticmethod
|
| 376 |
+
def afsK(bits: Sequence[int], cfg: ModConfig) -> np.ndarray:
|
| 377 |
+
return Modulators.bfsK(bits, cfg)
|
| 378 |
+
|
| 379 |
+
@staticmethod
|
| 380 |
+
def dsss_bpsK(bits: Sequence[int], cfg: ModConfig) -> np.ndarray:
|
| 381 |
+
# Very simple DSSS: chip with PN sequence at cfg.dsss_chip_rate
|
| 382 |
+
pn = np.array([1, -1, 1, 1, -1, 1, -1, -1], dtype=np.float32) # toy PN8
|
| 383 |
+
sr = cfg.sample_rate
|
| 384 |
+
chips_per_symbol = max(1, int(cfg.dsss_chip_rate / cfg.symbol_rate))
|
| 385 |
+
spb = int(sr / (cfg.dsss_chip_rate))
|
| 386 |
+
base = []
|
| 387 |
+
for b in bits:
|
| 388 |
+
bit_val = 1.0 if b else -1.0
|
| 389 |
+
ch = bit_val * pn
|
| 390 |
+
ch = np.repeat(ch, spb)
|
| 391 |
+
base.append(ch)
|
| 392 |
+
baseband = np.concatenate(base) if base else np.zeros(0, dtype=np.float32)
|
| 393 |
+
# Upconvert to audio carrier
|
| 394 |
+
t = np.arange(len(baseband))/sr
|
| 395 |
+
audio = cfg.amplitude * baseband * np.sin(2*np.pi*cfg.fc*t)
|
| 396 |
+
if cfg.clip: audio = np.clip(audio, -1, 1)
|
| 397 |
+
return audio.astype(np.float32)
|
| 398 |
+
|
| 399 |
+
@staticmethod
|
| 400 |
+
def ofdm(bits: Sequence[int], cfg: ModConfig) -> Tuple[np.ndarray, np.ndarray]:
|
| 401 |
+
# Toy OFDM: QPSK mapping across N subcarriers, IFFT, add cyclic prefix
|
| 402 |
+
N = cfg.ofdm_subc
|
| 403 |
+
spb_sym = int(cfg.sample_rate / cfg.symbol_rate) # samples per OFDM symbol (approx shaping)
|
| 404 |
+
chunks = chunk_bits(bits, 2*N)
|
| 405 |
+
a = cfg.amplitude
|
| 406 |
+
wave = []
|
| 407 |
+
iq = []
|
| 408 |
+
for ch in chunks:
|
| 409 |
+
# map 2 bits -> QPSK symbol
|
| 410 |
+
qsyms = []
|
| 411 |
+
pairs = chunk_bits(ch, 2)
|
| 412 |
+
for p in pairs:
|
| 413 |
+
b0,b1 = (p+[0,0])[:2]
|
| 414 |
+
if (b0,b1)==(0,0): s = 1+1j
|
| 415 |
+
elif (b0,b1)==(0,1): s = -1+1j
|
| 416 |
+
elif (b0,b1)==(1,1): s = -1-1j
|
| 417 |
+
else: s = 1-1j
|
| 418 |
+
qsyms.append(s/math.sqrt(2))
|
| 419 |
+
# pad to N
|
| 420 |
+
if len(qsyms) < N:
|
| 421 |
+
qsyms += [0j]*(N-len(qsyms))
|
| 422 |
+
Xk = np.array(qsyms, dtype=np.complex64)
|
| 423 |
+
xt = np.fft.ifft(Xk) # time domain symbol (complex)
|
| 424 |
+
# cyclic prefix
|
| 425 |
+
cp = xt[-cfg.cp_len:]
|
| 426 |
+
sym = np.concatenate([cp, xt])
|
| 427 |
+
# stretch to samples-per-symbol for audio mixing
|
| 428 |
+
reps = max(1, int(spb_sym/len(sym)))
|
| 429 |
+
sym_up = np.repeat(sym, reps)
|
| 430 |
+
# audio upconvert
|
| 431 |
+
t = np.arange(len(sym_up))/cfg.sample_rate
|
| 432 |
+
audio = a*(sym_up.real*np.cos(2*np.pi*cfg.fc*t) - sym_up.imag*np.sin(2*np.pi*cfg.fc*t))
|
| 433 |
+
wave.append(audio.astype(np.float32))
|
| 434 |
+
iq.append((a*sym_up).astype(np.complex64))
|
| 435 |
+
audio = np.concatenate(wave) if wave else np.zeros(0, dtype=np.float32)
|
| 436 |
+
iqc = np.concatenate(iq) if iq else np.zeros(0, dtype=np.complex64)
|
| 437 |
+
if cfg.clip: audio = np.clip(audio, -1, 1)
|
| 438 |
+
return audio, iqc
|
| 439 |
+
|
| 440 |
+
# =========================================================
|
| 441 |
+
# LLM backends (Local final inference; Remote resource-only)
|
| 442 |
+
# =========================================================
|
| 443 |
+
|
| 444 |
+
class BaseLLM:
|
| 445 |
+
def generate(self, prompt: str, **kwargs) -> str: raise NotImplementedError
|
| 446 |
+
|
| 447 |
+
class LocalLLM(BaseLLM):
|
| 448 |
+
def __init__(self, configs: List[HTTPConfig]):
|
| 449 |
+
if requests is None:
|
| 450 |
+
raise RuntimeError("LocalLLM requires 'requests' (pip install requests)")
|
| 451 |
+
self.configs = configs
|
| 452 |
+
self.idx = 0
|
| 453 |
+
|
| 454 |
+
def generate(self, prompt: str, **kwargs) -> str:
|
| 455 |
+
last = None
|
| 456 |
+
for _ in range(len(self.configs)):
|
| 457 |
+
cfg = self.configs[self.idx]
|
| 458 |
+
try:
|
| 459 |
+
out = self._call(cfg, prompt, **kwargs)
|
| 460 |
+
return out
|
| 461 |
+
except Exception as e:
|
| 462 |
+
last = e
|
| 463 |
+
self.idx = (self.idx + 1) % len(self.configs)
|
| 464 |
+
raise last or RuntimeError("All local LLM configs failed")
|
| 465 |
+
|
| 466 |
+
def _post(self, cfg: HTTPConfig, url: str, headers: dict, body: dict) -> dict:
|
| 467 |
+
s = requests.Session()
|
| 468 |
+
for attempt in range(cfg.max_retries):
|
| 469 |
+
try:
|
| 470 |
+
r = s.post(url, headers=headers, json=body, timeout=cfg.timeout, verify=cfg.verify_ssl)
|
| 471 |
+
r.raise_for_status()
|
| 472 |
+
return r.json()
|
| 473 |
+
except Exception as e:
|
| 474 |
+
if attempt < cfg.max_retries-1:
|
| 475 |
+
time.sleep(cfg.retry_delay*(2**attempt))
|
| 476 |
+
else:
|
| 477 |
+
raise
|
| 478 |
+
|
| 479 |
+
def _call(self, cfg: HTTPConfig, prompt: str, **kwargs) -> str:
|
| 480 |
+
mode = cfg.mode
|
| 481 |
+
if mode == "openai-chat":
|
| 482 |
+
url = f"{cfg.base_url.rstrip('/')}/v1/chat/completions"
|
| 483 |
+
headers = {"Content-Type": "application/json"}
|
| 484 |
+
if cfg.api_key: headers["Authorization"] = f"Bearer {cfg.api_key}"
|
| 485 |
+
body = {
|
| 486 |
+
"model": cfg.model or "gpt-4o-mini",
|
| 487 |
+
"messages": [{"role":"user","content":prompt}],
|
| 488 |
+
"temperature": kwargs.get("temperature", 0.7),
|
| 489 |
+
"max_tokens": kwargs.get("max_tokens", 512),
|
| 490 |
+
}
|
| 491 |
+
data = self._post(cfg, url, headers, body)
|
| 492 |
+
return data["choices"][0]["message"]["content"]
|
| 493 |
+
if mode == "openai-completions":
|
| 494 |
+
url = f"{cfg.base_url.rstrip('/')}/v1/completions"
|
| 495 |
+
headers = {"Content-Type": "application/json"}
|
| 496 |
+
if cfg.api_key: headers["Authorization"] = f"Bearer {cfg.api_key}"
|
| 497 |
+
body = {
|
| 498 |
+
"model": cfg.model or "gpt-3.5-turbo-instruct",
|
| 499 |
+
"prompt": prompt,
|
| 500 |
+
"temperature": kwargs.get("temperature", 0.7),
|
| 501 |
+
"max_tokens": kwargs.get("max_tokens", 512),
|
| 502 |
+
}
|
| 503 |
+
data = self._post(cfg, url, headers, body)
|
| 504 |
+
return data["choices"][0]["text"]
|
| 505 |
+
if mode == "llama-cpp":
|
| 506 |
+
url = f"{cfg.base_url.rstrip('/')}/completion"
|
| 507 |
+
body = {"prompt": prompt, "temperature": kwargs.get("temperature",0.7), "n_predict": kwargs.get("max_tokens",512)}
|
| 508 |
+
data = self._post(cfg, url, {}, body)
|
| 509 |
+
if "content" in data: return data["content"]
|
| 510 |
+
if "choices" in data and data["choices"]: return data["choices"][0].get("text","")
|
| 511 |
+
return data.get("text","")
|
| 512 |
+
if mode == "textgen-webui":
|
| 513 |
+
url = f"{cfg.base_url.rstrip('/')}/api/v1/generate"
|
| 514 |
+
body = {"prompt": prompt, "max_new_tokens": kwargs.get("max_tokens",512), "temperature": kwargs.get("temperature",0.7)}
|
| 515 |
+
data = self._post(cfg, url, {}, body)
|
| 516 |
+
return data.get("results",[{}])[0].get("text","")
|
| 517 |
+
raise ValueError(f"Unsupported mode: {mode}")
|
| 518 |
+
|
| 519 |
+
class ResourceLLM(BaseLLM):
|
| 520 |
+
def __init__(self, cfg: Optional[HTTPConfig] = None):
|
| 521 |
+
self.cfg = cfg
|
| 522 |
+
|
| 523 |
+
def generate(self, prompt: str, **kwargs) -> str:
|
| 524 |
+
# Constrained to resources-only summarization
|
| 525 |
+
if self.cfg is None or requests is None:
|
| 526 |
+
return LocalSummarizer().summarize(prompt)
|
| 527 |
+
url = f"{self.cfg.base_url.rstrip('/')}/v1/chat/completions"
|
| 528 |
+
headers = {"Content-Type":"application/json"}
|
| 529 |
+
if self.cfg.api_key: headers["Authorization"] = f"Bearer {self.cfg.api_key}"
|
| 530 |
+
system = ("You are a constrained assistant. ONLY summarize/structure the provided INPUT RESOURCES. "
|
| 531 |
+
"Do not add external knowledge.")
|
| 532 |
+
body = {
|
| 533 |
+
"model": self.cfg.model or "gpt-4o-mini",
|
| 534 |
+
"messages":[{"role":"system","content":system},{"role":"user","content":prompt}],
|
| 535 |
+
"temperature": kwargs.get("temperature",0.2),
|
| 536 |
+
"max_tokens": kwargs.get("max_tokens",512),
|
| 537 |
+
}
|
| 538 |
+
s = requests.Session()
|
| 539 |
+
r = s.post(url, headers=headers, json=body, timeout=self.cfg.timeout, verify=self.cfg.verify_ssl)
|
| 540 |
+
r.raise_for_status()
|
| 541 |
+
return r.json()["choices"][0]["message"]["content"]
|
| 542 |
+
|
| 543 |
+
class LocalSummarizer:
|
| 544 |
+
def __init__(self):
|
| 545 |
+
self.stop = {
|
| 546 |
+
"the","a","an","and","or","but","in","on","at","to","for","of","with","by","is","are",
|
| 547 |
+
"was","were","be","been","being","have","has","had","do","does","did","will","would",
|
| 548 |
+
"could","should","from","that","this","it","as"
|
| 549 |
+
}
|
| 550 |
+
def summarize(self, text: str) -> str:
|
| 551 |
+
txt = " ".join(text.split())
|
| 552 |
+
if not txt: return "No content to summarize."
|
| 553 |
+
sents = [s.strip() for s in txt.replace("?",".").replace("!",".").split(".") if s.strip()]
|
| 554 |
+
if not sents: return txt[:300] + ("..." if len(txt)>300 else "")
|
| 555 |
+
# score sentences by length + term frequency (very light heuristic)
|
| 556 |
+
words = [w.lower().strip(",;:()[]") for w in txt.split()]
|
| 557 |
+
freq: Dict[str,int] = {}
|
| 558 |
+
for w in words:
|
| 559 |
+
if w and w not in self.stop: freq[w] = freq.get(w,0)+1
|
| 560 |
+
scored = []
|
| 561 |
+
for s in sents:
|
| 562 |
+
sw = [w.lower().strip(",;:()[]") for w in s.split()]
|
| 563 |
+
score = len(s) * 0.1 + sum(freq.get(w,0) for w in sw)
|
| 564 |
+
scored.append((s, score))
|
| 565 |
+
scored.sort(key=lambda x: x[1], reverse=True)
|
| 566 |
+
keep = [s for s,_ in scored[: min(6,len(scored))]]
|
| 567 |
+
keep.sort(key=lambda k: sents.index(k))
|
| 568 |
+
out = " ".join(keep)
|
| 569 |
+
return out[:800] + ("..." if len(out)>800 else "")
|
| 570 |
+
|
| 571 |
+
# =========================================================
|
| 572 |
+
# Orchestrator
|
| 573 |
+
# =========================================================
|
| 574 |
+
|
| 575 |
+
class DualLLMOrchestrator:
|
| 576 |
+
def __init__(self, local: LocalLLM, resource: ResourceLLM, settings: OrchestratorSettings):
|
| 577 |
+
self.local, self.resource, self.set = local, resource, settings
|
| 578 |
+
|
| 579 |
+
def _load_resources(self, paths: List[str], inline: List[str]) -> str:
|
| 580 |
+
parts = []
|
| 581 |
+
for p in paths:
|
| 582 |
+
pa = Path(p)
|
| 583 |
+
if pa.exists() and pa.is_file():
|
| 584 |
+
try:
|
| 585 |
+
parts.append(pa.read_text(encoding="utf-8", errors="ignore"))
|
| 586 |
+
except Exception:
|
| 587 |
+
parts.append(f"[[UNREADABLE_FILE:{pa.name}]]")
|
| 588 |
+
else:
|
| 589 |
+
parts.append(f"[[MISSING_FILE:{pa}]]")
|
| 590 |
+
parts += [str(x) for x in inline]
|
| 591 |
+
blob = "\n\n".join(parts)
|
| 592 |
+
return blob[: self.set.max_context_chars]
|
| 593 |
+
|
| 594 |
+
def compose(self, user_prompt: str, resource_paths: List[str], inline_resources: List[str]) -> Tuple[str,str]:
|
| 595 |
+
res_text = self._load_resources(resource_paths, inline_resources)
|
| 596 |
+
res_summary = self.resource.generate(
|
| 597 |
+
f"INPUT RESOURCES:\n{res_text}\n\nTASK: Summarize/structure ONLY the content above.",
|
| 598 |
+
temperature=0.2, max_tokens=self.set.max_tokens
|
| 599 |
+
)
|
| 600 |
+
final_prompt = (
|
| 601 |
+
"You are a LOCAL expert system. Use ONLY the structured summary below; do not invent facts.\n\n"
|
| 602 |
+
f"=== STRUCTURED SUMMARY ===\n{res_summary}\n\n"
|
| 603 |
+
f"=== USER PROMPT ===\n{user_prompt}\n\n"
|
| 604 |
+
f"STYLE: {self.set.style}. Be clear and directly actionable."
|
| 605 |
+
)
|
| 606 |
+
return final_prompt, res_summary
|
| 607 |
+
|
| 608 |
+
def run(self, user_prompt: str, resource_paths: List[str], inline_resources: List[str]) -> Dict[str,str]:
|
| 609 |
+
fp, summary = self.compose(user_prompt, resource_paths, inline_resources)
|
| 610 |
+
ans = self.local.generate(fp, temperature=self.set.temperature, max_tokens=self.set.max_tokens)
|
| 611 |
+
return {"summary": summary, "final": ans, "prompt": fp}
|
| 612 |
+
|
| 613 |
+
# =========================================================
|
| 614 |
+
# End-to-end casting
|
| 615 |
+
# =========================================================
|
| 616 |
+
|
| 617 |
+
@dataclass
|
| 618 |
+
class OutputPaths:
|
| 619 |
+
wav: Optional[Path] = None
|
| 620 |
+
iq: Optional[Path] = None
|
| 621 |
+
meta: Optional[Path] = None
|
| 622 |
+
png: Optional[Path] = None
|
| 623 |
+
|
| 624 |
+
def bits_to_signals(bits: List[int], scheme: ModulationScheme, mcfg: ModConfig) -> Tuple[Optional[np.ndarray], Optional[np.ndarray]]:
|
| 625 |
+
if scheme == ModulationScheme.BFSK:
|
| 626 |
+
return Modulators.bfsK(bits, mcfg), None
|
| 627 |
+
if scheme == ModulationScheme.AFSK:
|
| 628 |
+
return Modulators.afsK(bits, mcfg), None
|
| 629 |
+
if scheme == ModulationScheme.BPSK:
|
| 630 |
+
return Modulators.bpsK(bits, mcfg)
|
| 631 |
+
if scheme == ModulationScheme.QPSK:
|
| 632 |
+
return Modulators.qpsK(bits, mcfg)
|
| 633 |
+
if scheme == ModulationScheme.QAM16:
|
| 634 |
+
return Modulators.qam16(bits, mcfg)
|
| 635 |
+
if scheme == ModulationScheme.OFDM:
|
| 636 |
+
return Modulators.ofdm(bits, mcfg)
|
| 637 |
+
if scheme == ModulationScheme.DSSS_BPSK:
|
| 638 |
+
return Modulators.dsss_bpsK(bits, mcfg), None
|
| 639 |
+
raise ValueError("Unknown modulation scheme")
|
| 640 |
+
|
| 641 |
+
def cast_to_files(
|
| 642 |
+
text: str,
|
| 643 |
+
outdir: Path,
|
| 644 |
+
scheme: ModulationScheme,
|
| 645 |
+
mcfg: ModConfig,
|
| 646 |
+
want_wav: bool,
|
| 647 |
+
want_iq: bool,
|
| 648 |
+
title: str = "WaveCaster"
|
| 649 |
+
) -> OutputPaths:
|
| 650 |
+
outdir.mkdir(parents=True, exist_ok=True)
|
| 651 |
+
ts = int(time.time())
|
| 652 |
+
base = outdir / f"cast_{scheme.name.lower()}_{ts}"
|
| 653 |
+
# Minimal frame (no FEC/security here; caller handles)
|
| 654 |
+
fcfg = FrameConfig()
|
| 655 |
+
bits = to_bits(frame_payload(text.encode("utf-8"), fcfg))
|
| 656 |
+
audio, iq = bits_to_signals(bits, scheme, mcfg)
|
| 657 |
+
paths = OutputPaths()
|
| 658 |
+
if want_wav and audio is not None and len(audio)>0:
|
| 659 |
+
paths.wav = base.with_suffix(".wav"); write_wav_mono(paths.wav, audio, mcfg.sample_rate)
|
| 660 |
+
if want_iq:
|
| 661 |
+
if iq is None and audio is not None:
|
| 662 |
+
# make a naive hilbert to IQ for convenience
|
| 663 |
+
try:
|
| 664 |
+
q = np.imag(sp_signal.hilbert(audio))
|
| 665 |
+
iq = audio.astype(np.float32) + 1j*q.astype(np.float32)
|
| 666 |
+
except Exception:
|
| 667 |
+
iq = (audio.astype(np.float32) + 1j*np.zeros_like(audio, dtype=np.float32))
|
| 668 |
+
if iq is not None:
|
| 669 |
+
paths.iq = base.with_suffix(".iqf32"); write_iq_f32(paths.iq, iq)
|
| 670 |
+
# Visualization
|
| 671 |
+
if audio is not None and len(audio)>0 and HAS_MPL:
|
| 672 |
+
paths.png = base.with_suffix(".png"); plot_wave_and_spectrum(paths.png, audio, mcfg.sample_rate, title)
|
| 673 |
+
# Meta
|
| 674 |
+
meta = {
|
| 675 |
+
"timestamp": ts, "scheme": scheme.name, "sample_rate": mcfg.sample_rate,
|
| 676 |
+
"symbol_rate": mcfg.symbol_rate, "framesec": len(audio)/mcfg.sample_rate if audio is not None else 0,
|
| 677 |
+
}
|
| 678 |
+
paths.meta = base.with_suffix(".json")
|
| 679 |
+
paths.meta.write_text(safe_json(meta), encoding="utf-8")
|
| 680 |
+
return paths
|
| 681 |
+
|
| 682 |
+
def full_cast_and_save(
|
| 683 |
+
text: str,
|
| 684 |
+
outdir: Path,
|
| 685 |
+
scheme: ModulationScheme,
|
| 686 |
+
mcfg: ModConfig,
|
| 687 |
+
fcfg: FrameConfig,
|
| 688 |
+
sec: SecurityConfig,
|
| 689 |
+
fec_scheme: FEC,
|
| 690 |
+
want_wav: bool,
|
| 691 |
+
want_iq: bool,
|
| 692 |
+
title: str = "WaveCaster"
|
| 693 |
+
) -> OutputPaths:
|
| 694 |
+
outdir.mkdir(parents=True, exist_ok=True)
|
| 695 |
+
ts = int(time.time())
|
| 696 |
+
base = outdir / f"cast_{scheme.name.lower()}_{ts}"
|
| 697 |
+
bits = encode_text(text, fcfg, sec, fec_scheme)
|
| 698 |
+
audio, iq = bits_to_signals(bits, scheme, mcfg)
|
| 699 |
+
paths = OutputPaths()
|
| 700 |
+
if want_wav and audio is not None and len(audio)>0:
|
| 701 |
+
paths.wav = base.with_suffix(".wav"); write_wav_mono(paths.wav, audio, mcfg.sample_rate)
|
| 702 |
+
if want_iq:
|
| 703 |
+
if iq is None and audio is not None:
|
| 704 |
+
try:
|
| 705 |
+
q = np.imag(sp_signal.hilbert(audio))
|
| 706 |
+
iq = audio.astype(np.float32) + 1j*q.astype(np.float32)
|
| 707 |
+
except Exception:
|
| 708 |
+
iq = (audio.astype(np.float32) + 1j*np.zeros_like(audio, dtype=np.float32))
|
| 709 |
+
if iq is not None:
|
| 710 |
+
paths.iq = base.with_suffix(".iqf32"); write_iq_f32(paths.iq, iq)
|
| 711 |
+
if audio is not None and len(audio)>0 and HAS_MPL:
|
| 712 |
+
paths.png = base.with_suffix(".png"); plot_wave_and_spectrum(paths.png, audio, mcfg.sample_rate, title)
|
| 713 |
+
meta = {
|
| 714 |
+
"timestamp": ts, "scheme": scheme.name, "sample_rate": mcfg.sample_rate,
|
| 715 |
+
"symbol_rate": mcfg.symbol_rate, "framesec": len(audio)/mcfg.sample_rate if audio is not None else 0,
|
| 716 |
+
"fec": fec_scheme.name, "encrypted": bool(sec.password), "watermark": bool(sec.watermark),
|
| 717 |
+
"hmac": bool(sec.hmac_key),
|
| 718 |
+
}
|
| 719 |
+
paths.meta = base.with_suffix(".json"); paths.meta.write_text(safe_json(meta), encoding="utf-8")
|
| 720 |
+
return paths
|
| 721 |
+
|
| 722 |
+
# =========================================================
|
| 723 |
+
# CLI
|
| 724 |
+
# =========================================================
|
| 725 |
+
|
| 726 |
+
def build_parser() -> argparse.ArgumentParser:
|
| 727 |
+
p = argparse.ArgumentParser(prog="dual_llm_wavecaster_enhanced", description="Two-LLM orchestration → modulated waveform")
|
| 728 |
+
sub = p.add_subparsers(dest="cmd", required=True)
|
| 729 |
+
|
| 730 |
+
def add_mod_args(sp):
|
| 731 |
+
sp.add_argument("--scheme", choices=[s.name.lower() for s in ModulationScheme], default="bfsk")
|
| 732 |
+
sp.add_argument("--sample-rate", type=int, default=48000)
|
| 733 |
+
sp.add_argument("--symbol-rate", type=int, default=1200)
|
| 734 |
+
sp.add_argument("--amplitude", type=float, default=0.7)
|
| 735 |
+
sp.add_argument("--f0", type=float, default=1200.0)
|
| 736 |
+
sp.add_argument("--f1", type=float, default=2200.0)
|
| 737 |
+
sp.add_argument("--fc", type=float, default=1800.0)
|
| 738 |
+
sp.add_argument("--no-clip", action="store_true")
|
| 739 |
+
sp.add_argument("--outdir", type=str, default="casts")
|
| 740 |
+
sp.add_argument("--wav", action="store_true")
|
| 741 |
+
sp.add_argument("--iq", action="store_true")
|
| 742 |
+
sp.add_argument("--play", action="store_true", help="Play audio to soundcard (if available)")
|
| 743 |
+
|
| 744 |
+
# OFDM / DSSS
|
| 745 |
+
sp.add_argument("--ofdm-subc", type=int, default=64)
|
| 746 |
+
sp.add_argument("--cp-len", type=int, default=16)
|
| 747 |
+
sp.add_argument("--dsss-chip-rate", type=int, default=4800)
|
| 748 |
+
|
| 749 |
+
# cast: 2-LLM orchestration then modulate
|
| 750 |
+
sp_cast = sub.add_parser("cast", help="Compose via dual LLMs then modulate")
|
| 751 |
+
sp_cast.add_argument("--prompt", type=str, required=True)
|
| 752 |
+
sp_cast.add_argument("--resource-file", nargs="*", default=[])
|
| 753 |
+
sp_cast.add_argument("--resource-text", nargs="*", default=[])
|
| 754 |
+
# Local LLM
|
| 755 |
+
sp_cast.add_argument("--local-url", type=str, default="http://127.0.0.1:8080")
|
| 756 |
+
sp_cast.add_argument("--local-mode", choices=["openai-chat","openai-completions","llama-cpp","textgen-webui"], default="llama-cpp")
|
| 757 |
+
sp_cast.add_argument("--local-model", type=str, default="local-gguf")
|
| 758 |
+
sp_cast.add_argument("--local-key", type=str, default=None)
|
| 759 |
+
# Remote Resource LLM
|
| 760 |
+
sp_cast.add_argument("--remote-url", type=str, default=None)
|
| 761 |
+
sp_cast.add_argument("--remote-model", type=str, default="gpt-4o-mini")
|
| 762 |
+
sp_cast.add_argument("--remote-key", type=str, default=None)
|
| 763 |
+
# Orchestration params
|
| 764 |
+
sp_cast.add_argument("--style", type=str, default="concise")
|
| 765 |
+
sp_cast.add_argument("--max-tokens", type=int, default=512)
|
| 766 |
+
sp_cast.add_argument("--temperature", type=float, default=0.7)
|
| 767 |
+
# Security / FEC
|
| 768 |
+
sp_cast.add_argument("--password", type=str, default=None)
|
| 769 |
+
sp_cast.add_argument("--watermark", type=str, default=None)
|
| 770 |
+
sp_cast.add_argument("--hmac-key", type=str, default=None)
|
| 771 |
+
sp_cast.add_argument("--fec", choices=[f.name.lower() for f in FEC], default="hamming74")
|
| 772 |
+
add_mod_args(sp_cast)
|
| 773 |
+
|
| 774 |
+
# modulate: direct text to waveform
|
| 775 |
+
sp_mod = sub.add_parser("modulate", help="Modulate provided text directly")
|
| 776 |
+
sp_mod.add_argument("--text", type=str, required=True)
|
| 777 |
+
sp_mod.add_argument("--password", type=str, default=None)
|
| 778 |
+
sp_mod.add_argument("--watermark", type=str, default=None)
|
| 779 |
+
sp_mod.add_argument("--hmac-key", type=str, default=None)
|
| 780 |
+
sp_mod.add_argument("--fec", choices=[f.name.lower() for f in FEC], default="none")
|
| 781 |
+
add_mod_args(sp_mod)
|
| 782 |
+
|
| 783 |
+
# visualize existing WAV
|
| 784 |
+
sp_vis = sub.add_parser("visualize", help="Plot waveform + spectrum from WAV")
|
| 785 |
+
sp_vis.add_argument("--wav", type=str, required=True)
|
| 786 |
+
sp_vis.add_argument("--out", type=str, default=None)
|
| 787 |
+
|
| 788 |
+
# analyze: print basic metrics
|
| 789 |
+
sp_an = sub.add_parser("analyze", help="Basic audio metrics of WAV")
|
| 790 |
+
sp_an.add_argument("--wav", type=str, required=True)
|
| 791 |
+
|
| 792 |
+
return p
|
| 793 |
+
|
| 794 |
+
def make_modcfg(args: argparse.Namespace) -> ModConfig:
|
| 795 |
+
return ModConfig(
|
| 796 |
+
sample_rate=args.sample_rate, symbol_rate=args.symbol_rate, amplitude=args.amplitude,
|
| 797 |
+
f0=args.f0, f1=args.f1, fc=args.fc, clip=not args.no_clip,
|
| 798 |
+
ofdm_subc=getattr(args, "ofdm_subc", 64), cp_len=getattr(args,"cp_len",16),
|
| 799 |
+
dsss_chip_rate=getattr(args,"dsss_chip_rate",4800),
|
| 800 |
+
)
|
| 801 |
+
|
| 802 |
+
def parse_scheme(s: str) -> ModulationScheme:
|
| 803 |
+
return ModulationScheme[s.upper()]
|
| 804 |
+
|
| 805 |
+
def parse_fec(s: str) -> FEC:
|
| 806 |
+
return FEC[s.upper()]
|
| 807 |
+
|
| 808 |
+
def cmd_cast(args: argparse.Namespace) -> int:
|
| 809 |
+
# Build LLMs
|
| 810 |
+
local = LocalLLM([HTTPConfig(
|
| 811 |
+
base_url=args.local_url, model=args.local_model, mode=args.local_mode, api_key=args.local_key
|
| 812 |
+
)])
|
| 813 |
+
rcfg = HTTPConfig(base_url=args.remote_url, model=args.remote_model, api_key=args.remote_key) if args.remote_url else None
|
| 814 |
+
resource = ResourceLLM(rcfg)
|
| 815 |
+
orch = DualLLMOrchestrator(local, resource, OrchestratorSettings(
|
| 816 |
+
temperature=args.temperature, max_tokens=args.max_tokens, style=args.style
|
| 817 |
+
))
|
| 818 |
+
result = orch.run(args.prompt, args.resource_file, args.resource_text)
|
| 819 |
+
# Build pipeline
|
| 820 |
+
mcfg = make_modcfg(args)
|
| 821 |
+
fcfg = FrameConfig()
|
| 822 |
+
sec = SecurityConfig(password=args.password, watermark=args.watermark, hmac_key=args.hmac_key)
|
| 823 |
+
scheme = parse_scheme(args.scheme)
|
| 824 |
+
fec_s = parse_fec(args.fec)
|
| 825 |
+
paths = full_cast_and_save(
|
| 826 |
+
text=result["final"], outdir=Path(args.outdir), scheme=scheme, mcfg=mcfg, fcfg=fcfg,
|
| 827 |
+
sec=sec, fec_scheme=fec_s, want_wav=args.wav or (not args.iq), want_iq=args.iq,
|
| 828 |
+
title=f"{scheme.name} | DualLLM Wave"
|
| 829 |
+
)
|
| 830 |
+
if args.play and paths.wav and HAS_AUDIO:
|
| 831 |
+
import soundfile as sf
|
| 832 |
+
try:
|
| 833 |
+
data, sr = sf.read(str(paths.wav), dtype="float32")
|
| 834 |
+
play_audio(data, sr)
|
| 835 |
+
except Exception:
|
| 836 |
+
# Fallback: play from generated buffer (we already have audio only inside full_cast if we changed it to return)
|
| 837 |
+
log.warning("Install soundfile for playback of saved WAV, or use --play with 'modulate'")
|
| 838 |
+
print(safe_json({
|
| 839 |
+
"files": {"wav": str(paths.wav) if paths.wav else None,
|
| 840 |
+
"iq": str(paths.iq) if paths.iq else None,
|
| 841 |
+
"meta": str(paths.meta) if paths.meta else None,
|
| 842 |
+
"png": str(paths.png) if paths.png else None},
|
| 843 |
+
"preview": result["final"][:400],
|
| 844 |
+
"summary": result["summary"][:400],
|
| 845 |
+
}))
|
| 846 |
+
return 0
|
| 847 |
+
|
| 848 |
+
def cmd_modulate(args: argparse.Namespace) -> int:
|
| 849 |
+
mcfg = make_modcfg(args)
|
| 850 |
+
fcfg = FrameConfig()
|
| 851 |
+
sec = SecurityConfig(password=args.password, watermark=args.watermark, hmac_key=args.hmac_key)
|
| 852 |
+
scheme = parse_scheme(args.scheme)
|
| 853 |
+
fec_s = parse_fec(args.fec)
|
| 854 |
+
paths = full_cast_and_save(
|
| 855 |
+
text=args.text, outdir=Path(args.outdir), scheme=scheme, mcfg=mcfg, fcfg=fcfg,
|
| 856 |
+
sec=sec, fec_scheme=fec_s, want_wav=args.wav or (not args.iq), want_iq=args.iq,
|
| 857 |
+
title=f"{scheme.name} | Direct Mod"
|
| 858 |
+
)
|
| 859 |
+
if args.play and paths.wav:
|
| 860 |
+
try:
|
| 861 |
+
import soundfile as sf
|
| 862 |
+
data, sr = sf.read(str(paths.wav), dtype="float32"); play_audio(data, sr)
|
| 863 |
+
except Exception:
|
| 864 |
+
log.warning("Install soundfile for playback of saved WAV")
|
| 865 |
+
print(safe_json({"files": {"wav": str(paths.wav) if paths.wav else None,
|
| 866 |
+
"iq": str(paths.iq) if paths.iq else None,
|
| 867 |
+
"meta": str(paths.meta) if paths.meta else None,
|
| 868 |
+
"png": str(paths.png) if paths.png else None}}))
|
| 869 |
+
return 0
|
| 870 |
+
|
| 871 |
+
def cmd_visualize(args: argparse.Namespace) -> int:
|
| 872 |
+
if not HAS_MPL:
|
| 873 |
+
print("matplotlib is not installed.")
|
| 874 |
+
return 1
|
| 875 |
+
import wave
|
| 876 |
+
with wave.open(args.wav, "rb") as w:
|
| 877 |
+
sr = w.getframerate()
|
| 878 |
+
n = w.getnframes()
|
| 879 |
+
s = np.frombuffer(w.readframes(n), dtype=np.int16).astype(np.float32)/32767.0
|
| 880 |
+
out = Path(args.out or (Path(args.wav).with_suffix(".png")))
|
| 881 |
+
plot_wave_and_spectrum(out, s, sr, f"Visualize: {Path(args.wav).name}")
|
| 882 |
+
print(safe_json({"png": str(out), "sample_rate": sr, "seconds": len(s)/sr}))
|
| 883 |
+
return 0
|
| 884 |
+
|
| 885 |
+
def cmd_analyze(args: argparse.Namespace) -> int:
|
| 886 |
+
import wave
|
| 887 |
+
with wave.open(args.wav, "rb") as w:
|
| 888 |
+
sr = w.getframerate(); n = w.getnframes()
|
| 889 |
+
s = np.frombuffer(w.readframes(n), dtype=np.int16).astype(np.float32)/32767.0
|
| 890 |
+
dur = len(s)/sr
|
| 891 |
+
rms = float(np.sqrt(np.mean(s**2)))
|
| 892 |
+
peak = float(np.max(np.abs(s)))
|
| 893 |
+
spec = np.abs(rfft(s)); spec /= (spec.max()+1e-12)
|
| 894 |
+
# simple SNR estimate
|
| 895 |
+
snr = 10*np.log10(np.mean(s**2) / (np.var(s - np.mean(s)) + 1e-12))
|
| 896 |
+
print(safe_json({"sample_rate": sr, "seconds": dur, "rms": rms, "peak": peak, "snr_db": float(snr)}))
|
| 897 |
+
return 0
|
| 898 |
+
|
| 899 |
+
def main(argv: Optional[List[str]] = None) -> int:
|
| 900 |
+
p = build_parser()
|
| 901 |
+
args = p.parse_args(argv)
|
| 902 |
+
if args.cmd == "cast": return cmd_cast(args)
|
| 903 |
+
if args.cmd == "modulate": return cmd_modulate(args)
|
| 904 |
+
if args.cmd == "visualize": return cmd_visualize(args)
|
| 905 |
+
if args.cmd == "analyze": return cmd_analyze(args)
|
| 906 |
+
p.print_help(); return 2
|
| 907 |
+
|
| 908 |
+
if __name__ == "__main__":
|
| 909 |
+
raise SystemExit(main())
|
| 910 |
+
#!/usr/bin/env python3
|
| 911 |
+
|
| 912 |
+
mirror_cast_enhanced.py — Neuro-Symbolic Adaptive Reflective Engine + Digital Link
|
| 913 |
+
|
| 914 |
+
SPDX-License-Identifier: MIT
|
| 915 |
+
|
| 916 |
+
import argparse import json import math import time import uuid import hashlib import zlib import os from dataclasses import dataclass from typing import Any,Dict, List, Optional, Tuple
|
| 917 |
+
|
| 918 |
+
import numpy as np
|
| 919 |
+
|
| 920 |
+
Optional plotting
|
| 921 |
+
|
| 922 |
+
try: import matplotlib.pyplot as plt HAVE_MPL = True except Exception: HAVE_MPL = False
|
| 923 |
+
|
| 924 |
+
========================= Core Analytics Modules ============================
|
| 925 |
+
|
| 926 |
+
class EntropyAnalyzer: def measure(self, data: Any) -> float: s = str(data) if not s: return 0.0 counts: Dict[str, int] = {} for c in s: counts[c] = counts.get(c, 0) + 1 n = len(s) ent = 0.0 for cnt in counts.values(): p = cnt / n if p > 0: ent -= p * math.log2(p) return ent
|
| 927 |
+
|
| 928 |
+
class DianneReflector: def reflect(self, data: Any) -> Dict[str, Any]: patterns = self._detect_patterns(data) head = str(data)[:40].replace("\n", " ") if "high_repetition" in patterns: insight = f"Cyclical resonance detected in Reflecting essence of: {head}..." elif "hierarchical_structure" in patterns: insight = f"Nested reality layers within Reflecting essence of: {head}..." else: insight = f"Linear transformation potential in Reflecting essence of: {head}..." return {"insight": insight, "patterns": patterns, "symbolic_depth": self._depth(data)}
|
| 929 |
+
|
| 930 |
+
class MatrixTransformer: def project(self, data: Any) -> Dict[str, Any]: dims = self._analyze(data) h = hash(str(data)) & 0xFFFFFFFF rank = int(dims["rank"]) eivals = [math.sin(h * 0.001 * i) for i in range(max(1, min(3, rank)))] return { "projected_rank": dims["rank"], "structure": dims["structure"], "eigenvalues": eivals, "determinant": math.cos(h * 0.0001), "trace": (math.tan(h * 0.00001) if (h % 100) else 0.0), }
|
| 931 |
+
|
| 932 |
+
class JuliaSymbolEngine: def analyze(self, data: Any) -> Dict[str, Any]: coeffs = self._coeffs(data) return { "chebyshev_polynomial": self._poly(coeffs), "coefficients": coeffs, "derivatives": self._derivs(coeffs), "critical_points": self._crit(coeffs), }
|
| 933 |
+
|
| 934 |
+
class ChoppyProcessor: def chunk(self, data: Any, chunk_size: int = 64, overlap: int = 16) -> Dict[str, Any]: s = str(data) step = max(1, chunk_size - overlap) std = [s[i:i + chunk_size] for i in range(0, len(s), step)] words = s.split(); wsize = max(1, chunk_size // 5) wchunks = [" ".join(words[i:i + wsize]) for i in range(0, len(words), wsize)] return { "standard": std, "semantic": wchunks, "fibonacci": self._fib(s), "statistics": {"total_length": len(s), "chunk_count": len(std), "average_chunk_size": len(s) / max(1, len(std))}, }
|
| 935 |
+
|
| 936 |
+
class EndpointCaster: def generate(self, data: Any) -> Dict[str, Any]: sig = hashlib.sha256(json.dumps(data, default=str, sort_keys=True).encode()).hexdigest()[:12] base = uuid.uuid4().hex[:6] return { "primary_endpoint": f"/api/v1/cast/{base}", "versioned_endpoints": [
|
| 937 |
+
f"/api/v1/cast/{base}/reflect",
|
| 938 |
+
f"/api/v1/cast/{base}/transform",
|
| 939 |
+
f"/api/v1/cast/{base}/metadata",
|
| 940 |
+
f"/api/v2/mirror/{sig}",
|
| 941 |
+
], "artifact_id": f"art-{uuid.uuid4().hex[:8]}", "metadata": {"content_type": self._ctype(data), "estimated_size": len(str(data)), "complexity": self._cpx(data)}, }
|
| 942 |
+
|
| 943 |
+
class CarryOnManager: def init(self, max_history: int = 200): self.memory: Dict[str, Any] = {} self.history: List[Dict[str, Any]] = [] self.max_history = max_history self.access: Dict[str, int] = {}
|
| 944 |
+
|
| 945 |
+
class SemanticMapper: def init(self): self.semantic_networks = { "reflection": ["mirror", "echo", "reverberation", "contemplation", "introspection"], "transformation": ["metamorphosis", "mutation", "evolution", "adaptation", "transmutation"], "analysis": ["examination", "scrutiny", "dissection", "investigation", "exploration"], "synthesis": ["combination", "fusion", "amalgamation", "integration", "unification"], }
|
| 946 |
+
|
| 947 |
+
class LoveReflector: def infuse(self, data: Any) -> Dict[str, Any]: text = str(data) return {"poetic": self._poem(text), "emotional_resonance": self._emo(text), "love_quotient": self._lq(text), "harmony_index": self._hi(text)}
|
| 948 |
+
|
| 949 |
+
class FractalResonator: def init(self, max_depth: int = 8): self.max_depth = max_depth
|
| 950 |
+
|
| 951 |
+
===================== Neuro-Symbolic Control & Memory =======================
|
| 952 |
+
|
| 953 |
+
class FeatureExtractor: """ Lightweight local features + optional imported embedding. - text n-gram hashing → fixed-width vector - optional external embedding (pass via CLI JSON file or string) """ def init(self, dim: int = 64, ngram: int = 3): self.dim = dim self.ngram = ngram
|
| 954 |
+
|
| 955 |
+
class NeuroSymbolicFusion: """ Fuse neural features + symbolic metrics (fractal, entropy, reflector tags) Produce a decision suggestion and scores. """ def init(self): # Learned (static) weights for demo; could be trained via RL self.w_neuro = 0.55 self.w_symbol = 0.45
|
| 956 |
+
|
| 957 |
+
class DecisionLogger: def init(self): self.events: List[Dict[str, Any]] = []
|
| 958 |
+
|
| 959 |
+
class ReflectiveDB: """JSON file for self-tuning memory of configs & outcomes.""" def init(self, path: str = "reflective_db.json"): self.path = path self._data: List[Dict[str, Any]] = [] self._load()
|
| 960 |
+
|
| 961 |
+
class RLAgent: """ Tiny contextual bandit: state = bins(peak_entropy_depth, ssi, snr) actions = {'bpsk', 'qpsk', 'ofdm'} update via incremental mean reward. """ def init(self, actions: List[str] = None, eps: float = 0.1): self.actions = actions or ["bpsk", "qpsk", "ofdm"] self.eps = eps self.q: Dict[Tuple[int, int, int], Dict[str, Dict[str, float]]] = {} # state -> action -> {q, n}
|
| 962 |
+
|
| 963 |
+
=========================== Digital Link (SC + OFDM) ========================
|
| 964 |
+
|
| 965 |
+
@dataclass class LinkConfig: mod: str = "qpsk" # 'bpsk' | 'qpsk' | 'ofdm' sps: int = 8 # samples per symbol (SC) symbol_rate: int = 2000 snr_db: float = 30.0 rrc_alpha: float = 0.35 rrc_taps: int = 121 # OFDM params nfft: int = 256 cp_len: int = 32 subcarrier_mask: Optional[List[int]] = None # indices to use (None -> all data carriers)
|
| 966 |
+
|
| 967 |
+
class Modem: """SC BPSK/QPSK + minimal OFDM with QPSK mapping."""
|
| 968 |
+
|
| 969 |
+
======================= Mirror Cast + Adaptive Planner =======================
|
| 970 |
+
|
| 971 |
+
class MirrorCastEngine: def init(self): self.entropy = EntropyAnalyzer() self.reflector = DianneReflector() self.matrix = MatrixTransformer() self.symbols = JuliaSymbolEngine() self.choppy = ChoppyProcessor() self.endpoints = EndpointCaster() self.memory = CarryOnManager() self.semantic = SemanticMapper() self.love = LoveReflector() self.fractal = FractalResonator()
|
| 972 |
+
|
| 973 |
+
class AdaptiveLinkPlanner: """ Neuro-Symbolic + RL planner: 1) Extract features, fuse with symbolic metrics 2) RL agent selects action (mod) 3) Map ssi -> rolloff, peak -> sps, action->mod/OFDM mask 4) Produce decision log & explanation """ def init(self, db_path: str = "reflective_db.json"): self.extractor = FeatureExtractor() self.fusion = NeuroSymbolicFusion() self.agent = RLAgent(actions=["bpsk", "qpsk", "ofdm"], eps=0.1) self.db = ReflectiveDB(db_path) self.log = DecisionLogger()
|
| 974 |
+
|
| 975 |
+
=============================== Visualization ===============================
|
| 976 |
+
|
| 977 |
+
def maybe_plot_constellation(syms: np.ndarray, title: str = "Constellation"): if not HAVE_MPL: return plt.figure() plt.scatter(np.real(syms), np.imag(syms), s=8) plt.title(title); plt.xlabel("I"); plt.ylabel("Q"); plt.grid(True)
|
| 978 |
+
|
| 979 |
+
def maybe_plot_fractal_layers(fractal: Dict[str, Any]): if not HAVE_MPL: return xs = [L["depth"] for L in fractal["layers"]] ys = [L["entropy"] for L in fractal["layers"]] plt.figure(); plt.plot(xs, ys, marker="o") plt.title("Fractal Entropy vs Depth"); plt.xlabel("Depth"); plt.ylabel("Entropy"); plt.grid(True)
|
| 980 |
+
|
| 981 |
+
def maybe_plot_decisions(decisions: List[Dict[str, Any]]): if not HAVE_MPL: return # simple timeline of events plt.figure() ys = list(range(len(decisions))) labels = [f"{d['step']}:{d['reason']}" for d in decisions] plt.plot(ys, ys, marker="o") for i, txt in enumerate(labels): plt.text(i, i, txt, fontsize=8) plt.title("Decision Pathway"); plt.xlabel("event idx"); plt.ylabel("event idx"); plt.grid(True)
|
| 982 |
+
|
| 983 |
+
================================== CLI ======================================
|
| 984 |
+
|
| 985 |
+
def cmd_report(args: argparse.Namespace) -> None: eng = MirrorCastEngine() data = json.loads(args.input) if args.json else args.input report = eng.cast(data) print(json.dumps(report, indent=2)) if args.plot and HAVE_MPL: maybe_plot_fractal_layers(report["fractal"]) plt.show()
|
| 986 |
+
|
| 987 |
+
def cmd_txrx(args: argparse.Namespace) -> None: cfg = LinkConfig( mod=args.mod.lower(), sps=args.sps, symbol_rate=args.symbol_rate, snr_db=args.snr, rrc_alpha=args.alpha, rrc_taps=args.taps, nfft=args.nfft, cp_len=args.cp, ) modem = Modem(cfg) payload = args.input.encode("utf-8") tx = modem.transmit(payload) ch = modem.channel_awgn(tx) rx_bytes, info = modem.receive(ch) out = {"config": cfg.dict, "status": info, "transmitted_len": len(payload), "received_len": len(rx_bytes), "received_text": (rx_bytes.decode("utf-8", errors="replace") if info.get("ok") else "")} print(json.dumps(out, indent=2)) if args.plot and HAVE_MPL and cfg.mod in ("qpsk", "bpsk"): # reconstruct baseband symbols for visualization (approx using downsampled MF output if SC) pass
|
| 988 |
+
|
| 989 |
+
def cmd_fractal(args: argparse.Namespace) -> None: fr = FractalResonator(max_depth=args.max_depth) result = fr.cascade(args.input) print(json.dumps(result, indent=2)) if args.plot and HAVE_MPL: maybe_plot_fractal_layers(result); plt.show()
|
| 990 |
+
|
| 991 |
+
def cmd_txrx_adapt(args: argparse.Namespace) -> None: engine = MirrorCastEngine() analysis = engine.cast(args.input) # includes fractal, entropy, reflection planner = AdaptiveLinkPlanner(db_path=args.db) cfg, explanation = planner.plan(args.input, LinkConfig( mod="qpsk", sps=args.sps, symbol_rate=args.symbol_rate, snr_db=args.snr, rrc_alpha=args.alpha, rrc_taps=args.taps, nfft=args.nfft, cp_len=args.cp ), analysis, snr_db=args.snr)
|
| 992 |
+
|
| 993 |
+
def cmd_learn(args: argparse.Namespace) -> None: """ Run multiple episodes on the same input (or a seed list) to let the RL agent adapt. """ engine = MirrorCastEngine() planner = AdaptiveLinkPlanner(db_path=args.db) texts = [args.input] if args.input else [
|
| 994 |
+
"industrial IoT telemetry window 42 pressure spike",
|
| 995 |
+
"AR/VR immersive stream scene: waterfall shimmer",
|
| 996 |
+
"assistive comms: phrasebook quick intent",
|
| 997 |
+
"healthcare vitals batch 28dB link margin"
|
| 998 |
+
] for ep in range(args.episodes): t = texts[ep % len(texts)] analysis = engine.cast(t) cfg, explanation = planner.plan(t, LinkConfig(snr_db=args.snr, nfft=args.nfft, cp_len=args.cp), analysis, snr_db=args.snr) modem = Modem(cfg) payload = t.encode("utf-8") tx = modem.transmit(payload) ch = modem.channel_awgn(tx) rx_bytes, info = modem.receive(ch) decode_ok = bool(info.get("ok")) harmony = engine.love.infuse(t)["harmony_index"] planner.reward_and_record(t, cfg, explanation, decode_ok, args.snr, harmony, len(payload), len(rx_bytes)) print(json.dumps({ "episode": ep+1, "text_sig": hashlib.sha256(t.encode()).hexdigest()[:12], "config": cfg.dict, "decode_ok": decode_ok }, indent=2)) print(f"Learning complete. DB at {args.db}")
|
| 999 |
+
|
| 1000 |
+
def build_parser() -> argparse.ArgumentParser: p = argparse.ArgumentParser(description="Mirror Cast Enhanced — Neuro-Symbolic Adaptive Link") sub = p.add_subparsers(dest="cmd", required=True)
|
| 1001 |
+
|
| 1002 |
+
def main(): parser = build_parser() args = parser.parse_args() args.func(args)
|
| 1003 |
+
|
| 1004 |
+
if name == "main": main()
|
Start.tsx
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export default function OnboardingStart() {
|
| 2 |
+
return (
|
| 3 |
+
<main className="p-8">
|
| 4 |
+
<h1 className="text-3xl font-bold mb-4">Welcome to CarryOn</h1>
|
| 5 |
+
<p className="mb-6">Keep your AI you across updates & devices.</p>
|
| 6 |
+
<div className="flex gap-4">
|
| 7 |
+
<button className="btn btn-primary">Create Soulpack</button>
|
| 8 |
+
<button className="btn btn-secondary">Import Soulpack</button>
|
| 9 |
+
</div>
|
| 10 |
+
</main>
|
| 11 |
+
);
|
| 12 |
+
}
|
Studio.tsx
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export default function Studio() {
|
| 2 |
+
return (
|
| 3 |
+
<main className="p-8">
|
| 4 |
+
<h2 className="text-xl font-bold mb-4">Persona Studio</h2>
|
| 5 |
+
<div>
|
| 6 |
+
<p>Live preview, tone/style rules editing goes here.</p>
|
| 7 |
+
</div>
|
| 8 |
+
</main>
|
| 9 |
+
);
|
| 10 |
+
}
|
Timeline.tsx
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export default function Timeline() {
|
| 2 |
+
return (
|
| 3 |
+
<main className="p-8">
|
| 4 |
+
<h2 className="text-xl font-bold mb-4">Memory Timeline</h2>
|
| 5 |
+
<div>
|
| 6 |
+
<p>Timeline and search/filter UI will be built here.</p>
|
| 7 |
+
</div>
|
| 8 |
+
</main>
|
| 9 |
+
);
|
| 10 |
+
}
|
__init__.py
CHANGED
|
@@ -1,2 +0,0 @@
|
|
| 1 |
-
# Service package exports
|
| 2 |
-
from . import al_uls, al_uls_client, al_uls_ws_client
|
|
|
|
|
|
|
|
|
carryon.zip
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:eddaa381c09cf29cf358d3af707d4f7091e04af63745d9a9dd0f3ab4475121f6
|
| 3 |
+
size 16647
|
chaos_rag_single2.zip
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:fde08bfad37f92d15902a33de8cf6ea8716ba4b680c0ac83e5b4c09f0fe06726
|
| 3 |
+
size 6485
|
config.py
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from pydantic_settings import BaseSettings
|
| 2 |
+
from typing import List
|
| 3 |
+
|
| 4 |
+
class Settings(BaseSettings):
|
| 5 |
+
db_url: str = "sqlite:///data/carryon.db"
|
| 6 |
+
embeddings_model: str = "sentence-transformers/all-MiniLM-L6-v2"
|
| 7 |
+
faiss_index_path: str = "data/faiss.index"
|
| 8 |
+
cors_allow_origins: List[str] = ["*"]
|
| 9 |
+
entropy_weight: float = 0.35
|
| 10 |
+
alpha: float = 0.50 # semantic
|
| 11 |
+
beta: float = 0.25 # recency
|
| 12 |
+
gamma: float = 0.15 # graph degree
|
| 13 |
+
delta: float = 0.10 # entropy
|
| 14 |
+
|
| 15 |
+
class Config:
|
| 16 |
+
env_prefix = "CARRYON_"
|
| 17 |
+
|
| 18 |
+
settings = Settings()
|
config_16B.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"vocab_size": 102400,
|
| 3 |
+
"dim": 2048,
|
| 4 |
+
"inter_dim": 10944,
|
| 5 |
+
"moe_inter_dim": 1408,
|
| 6 |
+
"n_layers": 27,
|
| 7 |
+
"n_dense_layers": 1,
|
| 8 |
+
"n_heads": 16,
|
| 9 |
+
"n_routed_experts": 64,
|
| 10 |
+
"n_shared_experts": 2,
|
| 11 |
+
"n_activated_experts": 6,
|
| 12 |
+
"route_scale": 1.0,
|
| 13 |
+
"q_lora_rank": 0,
|
| 14 |
+
"kv_lora_rank": 512,
|
| 15 |
+
"qk_nope_head_dim": 128,
|
| 16 |
+
"qk_rope_head_dim": 64,
|
| 17 |
+
"v_head_dim": 128,
|
| 18 |
+
"mscale": 0.707
|
| 19 |
+
}
|