9x25dillon commited on
Commit
3b9a175
·
verified ·
1 Parent(s): ee92ec9

Upload 91 files

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
.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
- # Created by venv; see https://docs.python.org/3/library/venv.html
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
- RUN julia -e 'using Pkg; Pkg.activate("."); Pkg.instantiate(); Pkg.precompile()'
 
 
 
9
 
10
- EXPOSE 8088 8089
11
- CMD ["julia", "-e", "using ChaosServer; ChaosServer.start()"]
12
- =======
13
- FROM julia:1.10
14
- WORKDIR /app
15
- COPY julia_server/Project.toml /app/Project.toml
16
- RUN julia -e 'using Pkg; Pkg.activate("."); Pkg.instantiate()'
17
- COPY julia_server/src /app/src
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
- MIT License
2
-
3
- Copyright (c) 2025 Kill
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.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
- # Enhanced Dual LLM WaveCaster with TA ULS Integration
2
 
3
- A sophisticated system combining Two-level Trans-Algorithmic Universal Learning System (TA ULS) architecture with dual LLM orchestration, neuro-symbolic adaptive reflection, and advanced signal processing for intelligent waveform generation.
4
 
5
- ## 🚀 Features
6
 
7
- ### Core Components
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
- # Demo all components
116
- python enhanced_wavecaster.py demo --component all
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
- ```bash
127
- # Analyze text with neuro-symbolic engine
128
- python enhanced_wavecaster.py analyze \
129
- --text "Complex technical document content..." \
130
- --plot
131
  ```
132
 
133
- ## 🔧 Configuration
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
- ## 📄 License
299
 
300
- MIT License - see LICENSE file for details.
 
 
 
 
 
301
 
302
- ## 🙏 Acknowledgments
 
 
303
 
304
- This system integrates concepts from:
305
- - Transformer architectures and attention mechanisms
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
- ## 📞 Support
 
312
 
313
- For questions, issues, or contributions:
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
- *Enhanced Dual LLM WaveCaster - Bridging AI and Signal Processing* 🚀
 
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
+ }