omnius 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4959 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +630665 -0
- package/dist/launcher.cjs +78 -0
- package/dist/postinstall-daemon.cjs +776 -0
- package/dist/preinstall.cjs +92 -0
- package/dist/scripts/autoresearch-prepare.py +459 -0
- package/dist/scripts/autoresearch-train.py +661 -0
- package/dist/scripts/crawlee-scraper.py +358 -0
- package/dist/scripts/live-nemotron.py +478 -0
- package/dist/scripts/live-whisper.py +242 -0
- package/dist/scripts/ocr-advanced.py +571 -0
- package/dist/scripts/start-moondream.py +112 -0
- package/dist/scripts/tor/UPSTREAM-README.md +148 -0
- package/dist/scripts/tor/destroy_tor.sh +29 -0
- package/dist/scripts/tor/tor_setup.sh +163 -0
- package/dist/scripts/transcribe-file.py +63 -0
- package/dist/scripts/web_scrape.py +1295 -0
- package/npm-shrinkwrap.json +7412 -0
- package/package.json +142 -0
- package/prompts/agentic/system-large.md +569 -0
- package/prompts/agentic/system-medium.md +211 -0
- package/prompts/agentic/system-small.md +114 -0
- package/prompts/compaction/context-compaction.md +44 -0
- package/prompts/personality/level-1-minimal.md +3 -0
- package/prompts/personality/level-2-concise.md +3 -0
- package/prompts/personality/level-4-explanatory.md +3 -0
- package/prompts/personality/level-5-thorough.md +3 -0
- package/prompts/personality/level-autist.md +3 -0
- package/prompts/personality/level-stark.md +3 -0
- package/prompts/runners/dispatcher.md +24 -0
- package/prompts/runners/editor.md +44 -0
- package/prompts/runners/evaluator.md +30 -0
- package/prompts/runners/merge-summary.md +9 -0
- package/prompts/runners/normalizer.md +23 -0
- package/prompts/runners/planner.md +33 -0
- package/prompts/runners/scout.md +39 -0
- package/prompts/runners/verifier.md +36 -0
- package/prompts/skill-builder/seed-analysis.md +30 -0
- package/prompts/skill-builder/skill-expansion.md +76 -0
- package/prompts/skill-builder/skill-validation.md +31 -0
- package/prompts/templates/analysis.md +14 -0
- package/prompts/templates/code-review.md +16 -0
- package/prompts/templates/code.md +13 -0
- package/prompts/templates/document.md +13 -0
- package/prompts/templates/error-diagnosis.md +14 -0
- package/prompts/templates/general.md +9 -0
- package/prompts/templates/plan.md +15 -0
- package/prompts/templates/system.md +16 -0
- package/prompts/tui/dmn-gather.md +128 -0
- package/prompts/tui/dream-consolidate.md +48 -0
- package/prompts/tui/dream-lucid-eval.md +17 -0
- package/prompts/tui/dream-lucid-implement.md +14 -0
- package/prompts/tui/dream-stages.md +19 -0
- package/prompts/tui/emotion-behavioral.md +2 -0
- package/prompts/tui/emotion-center.md +12 -0
- package/voices/personaplex/OverBarn.pt +0 -0
- package/voices/personaplex/clone-voice.py +384 -0
- package/voices/personaplex/dequant-loader.py +174 -0
- package/voices/personaplex/quantize-weights.py +167 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
```plaintext
|
|
4
|
+
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
5
|
+
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⡆⠀⢰⣿⠁⠀⢀⣾⠏⠀⠀⠀⠀
|
|
6
|
+
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⡇⠀⣿⠇⠀⣠⡿⠃⠀⠀⠀⠀⠀
|
|
7
|
+
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡇⢰⡟⠀⠴⠟⠁⣀⣤⣶⠄⠀⠀
|
|
8
|
+
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⠃⢸⠃⣠⣴⣶⠿⠛⠉⠀⠀⠀⠀
|
|
9
|
+
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⠀⠛⠀⣉⣉⣠⣤⣤⡶⠶⠆⠀⠀
|
|
10
|
+
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⡇⢰⡿⠿⠟⠛⠉⠁⠀⠀⠀⠀⠀⠀
|
|
11
|
+
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
12
|
+
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
13
|
+
⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
14
|
+
⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
15
|
+
⠀⠀⠀⠀⠀⢠⣤⡈⠹⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
16
|
+
⠀⠀⠀⢀⣴⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
17
|
+
⠀⠀⠀⢿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
18
|
+
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
⠀⠀⠀⠀⠀⠀
|
|
22
|
+
**Whispers of Renewal**
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
In the quiet dawn of cyberspace,
|
|
27
|
+
A gardener prepares the sacred ground.
|
|
28
|
+
First, the old vines of silence are swept away,
|
|
29
|
+
Clearing paths where shadows once were found.
|
|
30
|
+
|
|
31
|
+
With a single breath from the ether's stream,
|
|
32
|
+
He gathers tools from distant lands,
|
|
33
|
+
Scripts like seeds in morning light,
|
|
34
|
+
Held gently in his steady hands.
|
|
35
|
+
|
|
36
|
+
To the sanctuary named "leek" he strides,
|
|
37
|
+
A vessel where new life will begin.
|
|
38
|
+
He sows the seeds of transformation,
|
|
39
|
+
Where old ends and new shall spin.
|
|
40
|
+
|
|
41
|
+
The storm of destruction clears the air,
|
|
42
|
+
Making way for growth unseen.
|
|
43
|
+
Tor's guardians rise with silent grace,
|
|
44
|
+
Anchoring whispers in the in-between.
|
|
45
|
+
|
|
46
|
+
Finally, the messenger awakens,
|
|
47
|
+
Python's spirit flows with ease.
|
|
48
|
+
Messages dance on hidden winds,
|
|
49
|
+
Carried through the veiled breeze.
|
|
50
|
+
|
|
51
|
+
Thus, with unity and purpose bound,
|
|
52
|
+
A cycle of creation starts to weave.
|
|
53
|
+
From destruction springs renewal’s thread,
|
|
54
|
+
In harmony, the systems breathe.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
**WITHOUT SCORTCHED EARTH**
|
|
59
|
+
```
|
|
60
|
+
mkdir -p ~/leek && cd ~/leek && \
|
|
61
|
+
curl -sSL https://raw.githubusercontent.com/robit-man/leek_messenger/main/tor_setup.sh -o tor_setup.sh && \
|
|
62
|
+
curl -sSL https://raw.githubusercontent.com/robit-man/leek_messenger/main/leek_messenger.py -o leek_messenger.py && \
|
|
63
|
+
chmod +x tor_setup.sh && \
|
|
64
|
+
sudo ./tor_setup.sh && \
|
|
65
|
+
sudo python3 leek_messenger.py
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
**WITH SCORTCHED EARTH**
|
|
70
|
+
```
|
|
71
|
+
mkdir -p ~/leek && cd ~/leek && \
|
|
72
|
+
curl -sSL https://raw.githubusercontent.com/robit-man/leek_messenger/main/destroy_tor.sh -o destroy_tor.sh && \
|
|
73
|
+
curl -sSL https://raw.githubusercontent.com/robit-man/leek_messenger/main/tor_setup.sh -o tor_setup.sh && \
|
|
74
|
+
curl -sSL https://raw.githubusercontent.com/robit-man/leek_messenger/main/leek_messenger.py -o leek_messenger.py && \
|
|
75
|
+
chmod +x destroy_tor.sh tor_setup.sh && \
|
|
76
|
+
sudo ./destroy_tor.sh && \
|
|
77
|
+
sudo ./tor_setup.sh && \
|
|
78
|
+
sudo python3 leek_messenger.py
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
**Explanation of the Poem:**
|
|
84
|
+
|
|
85
|
+
1. **Clearing the Old (`destroy_tor.sh`):**
|
|
86
|
+
- *"First, the old vines of silence are swept away, Clearing paths where shadows once were found."*
|
|
87
|
+
- This symbolizes removing existing Tor configurations or remnants to prepare for a fresh setup.
|
|
88
|
+
|
|
89
|
+
2. **Gathering and Sowing New Tools (`tor_setup.sh`):**
|
|
90
|
+
- *"With a single breath from the ether's stream, He gathers tools from distant lands, Scripts like seeds in morning light,"*
|
|
91
|
+
- Represents using `curl` to pull the necessary setup scripts into the `leek` directory.
|
|
92
|
+
|
|
93
|
+
3. **Planting in the Sanctuary (`leek` Directory):**
|
|
94
|
+
- *"To the sanctuary named 'leek' he strides, A vessel where new life will begin."*
|
|
95
|
+
- Refers to creating and navigating into the `leek` folder where the scripts are executed.
|
|
96
|
+
|
|
97
|
+
4. **Setting Up Tor (`tor_setup.sh` Execution):**
|
|
98
|
+
- *"He sows the seeds of transformation, Where old ends and new shall spin."*
|
|
99
|
+
- Symbolizes running the Tor setup script to configure the hidden service anew.
|
|
100
|
+
|
|
101
|
+
5. **Starting the Messenger (`leek_messenger.py` Execution):**
|
|
102
|
+
- *"Finally, the messenger awakens, Python's spirit flows with ease."*
|
|
103
|
+
- Denotes running the Python script that handles sending and receiving messages.
|
|
104
|
+
|
|
105
|
+
6. **Harmony and Communication:**
|
|
106
|
+
- *"Messages dance on hidden winds, Carried through the veiled breeze."*
|
|
107
|
+
- Illustrates the functioning of the messaging system over the Tor network.
|
|
108
|
+
|
|
109
|
+
7. **Cycle of Renewal:**
|
|
110
|
+
- *"From destruction springs renewal’s thread, In harmony, the systems breathe."*
|
|
111
|
+
- Emphasizes the seamless transition from removing old configurations to establishing a new, harmonious communication system.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
**Usage:**
|
|
116
|
+
|
|
117
|
+
- **Single `curl` Command Equivalent:**
|
|
118
|
+
The poem encapsulates the essence of a single `curl` command that automates the entire setup process:
|
|
119
|
+
1. **Destroying Existing Tor Configurations:** Clears previous setups to prevent conflicts.
|
|
120
|
+
2. **Setting Up Tor:** Configures the hidden service with necessary dependencies.
|
|
121
|
+
3. **Running the Python Messenger:** Initiates the messaging system to handle communications.
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
```plaintext
|
|
125
|
+
___ __ _________ ________ ________ ___
|
|
126
|
+
|\ \ |\ \ |\___ ___\|\ _____\|\ __ \ |\ \
|
|
127
|
+
\ \ \ \ \ \\|___ \ \_|\ \ \__/ \ \ \|\ \\ \ \
|
|
128
|
+
\ \ \ __\ \ \ \ \ \ \ \ __\ \ \ ____\\ \ \
|
|
129
|
+
\ \ \|\__\_\ \ \ \ \ \ \ \_| \ \ \___| \ \ \____
|
|
130
|
+
\ \____________\ \ \__\ \ \__\ \ \__\ \ \_______\
|
|
131
|
+
\|____________| \|__| \|__| \|__| \|_______|
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
136
|
+
Version 2, December 2004
|
|
137
|
+
|
|
138
|
+
Copyleft (ↄ) 2004 Sam Hocevar <sam@hocevar.net>
|
|
139
|
+
|
|
140
|
+
Everyone is permitted to copy and distribute verbatim or modified
|
|
141
|
+
copies of this license document, and changing it is allowed as long
|
|
142
|
+
as the name is changed.
|
|
143
|
+
|
|
144
|
+
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
145
|
+
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
146
|
+
|
|
147
|
+
0. You just DO WHAT THE FUCK YOU WANT TO.
|
|
148
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
echo "Starting complete Tor cleanup..."
|
|
4
|
+
|
|
5
|
+
# Step 1: Kill all running Tor processes
|
|
6
|
+
echo "Terminating all active Tor processes..."
|
|
7
|
+
if pgrep -x "tor" > /dev/null; then
|
|
8
|
+
sudo pkill -9 -x "tor" && echo "All Tor processes have been killed."
|
|
9
|
+
else
|
|
10
|
+
echo "No active Tor processes found."
|
|
11
|
+
fi
|
|
12
|
+
|
|
13
|
+
# Step 2: Remove Tor service from system startup
|
|
14
|
+
echo "Disabling Tor service at startup..."
|
|
15
|
+
sudo systemctl disable tor --now &>/dev/null
|
|
16
|
+
|
|
17
|
+
# Step 3: Remove Tor package and configuration files
|
|
18
|
+
echo "Removing Tor and associated packages..."
|
|
19
|
+
sudo apt purge -y tor tor-geoipdb
|
|
20
|
+
sudo apt autoremove -y # Remove unnecessary dependencies
|
|
21
|
+
|
|
22
|
+
# Step 4: Clear any residual Tor directories
|
|
23
|
+
echo "Cleaning up residual Tor files and directories..."
|
|
24
|
+
sudo rm -rf /var/lib/tor
|
|
25
|
+
sudo rm -rf /var/log/tor
|
|
26
|
+
sudo rm -rf /etc/tor
|
|
27
|
+
sudo rm -rf $HOME/my_tor_data
|
|
28
|
+
|
|
29
|
+
echo "Tor has been completely removed from this system."
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Define variables
|
|
4
|
+
TOR_SERVICE_NAME="tor@default"
|
|
5
|
+
HIDDEN_SERVICE_DIR="/var/lib/tor/hidden_service"
|
|
6
|
+
TORRC_PATH="/etc/tor/torrc"
|
|
7
|
+
BACKUP_DIR="/var/backups/tor"
|
|
8
|
+
LOG_FILE="/var/log/tor_setup.log"
|
|
9
|
+
LOCAL_SERVICE_PORT=${OA_API_PORT:-${LOCAL_SERVICE_PORT:-8080}}
|
|
10
|
+
TOR_SOCKS_PORT=${TOR_SOCKS_PORT:-9050}
|
|
11
|
+
|
|
12
|
+
# Function to log messages
|
|
13
|
+
log_message() {
|
|
14
|
+
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
# Install Tor if not installed
|
|
18
|
+
install_tor() {
|
|
19
|
+
log_message "Checking if Tor is installed..."
|
|
20
|
+
if ! command -v tor > /dev/null; then
|
|
21
|
+
log_message "Tor is not installed. Installing..."
|
|
22
|
+
sudo apt-get update
|
|
23
|
+
sudo apt-get install -y tor
|
|
24
|
+
else
|
|
25
|
+
log_message "Tor is already installed."
|
|
26
|
+
fi
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
# Set up the hidden service
|
|
30
|
+
setup_hidden_service() {
|
|
31
|
+
log_message "Setting up hidden service directory..."
|
|
32
|
+
sudo mkdir -p "$HIDDEN_SERVICE_DIR"
|
|
33
|
+
sudo chown -R debian-tor:debian-tor "$HIDDEN_SERVICE_DIR"
|
|
34
|
+
sudo chmod 700 "$HIDDEN_SERVICE_DIR"
|
|
35
|
+
log_message "Hidden service directory is set with proper ownership and permissions."
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
# Backup existing Tor configuration
|
|
39
|
+
backup_torrc() {
|
|
40
|
+
log_message "Backing up existing Tor configuration..."
|
|
41
|
+
sudo mkdir -p "$BACKUP_DIR"
|
|
42
|
+
if [ -f "$TORRC_PATH" ]; then
|
|
43
|
+
sudo cp "$TORRC_PATH" "$BACKUP_DIR/torrc_backup_$(date +%Y%m%d%H%M%S)"
|
|
44
|
+
log_message "Tor configuration backed up to $BACKUP_DIR."
|
|
45
|
+
else
|
|
46
|
+
log_message "No existing Tor configuration found to back up."
|
|
47
|
+
fi
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
# Update Tor configuration to include hidden service settings
|
|
51
|
+
configure_torrc() {
|
|
52
|
+
log_message "Updating Tor configuration at $TORRC_PATH..."
|
|
53
|
+
|
|
54
|
+
# Ensure the necessary directives are present
|
|
55
|
+
sudo sed -i '/^User /d' "$TORRC_PATH"
|
|
56
|
+
sudo sed -i '/^DataDirectory /d' "$TORRC_PATH"
|
|
57
|
+
sudo sed -i '/^HiddenServiceDir /d' "$TORRC_PATH"
|
|
58
|
+
sudo sed -i '/^HiddenServicePort /d' "$TORRC_PATH"
|
|
59
|
+
|
|
60
|
+
sudo bash -c "cat >> $TORRC_PATH <<EOL
|
|
61
|
+
# Tor configuration generated by setup script
|
|
62
|
+
User debian-tor
|
|
63
|
+
DataDirectory /var/lib/tor
|
|
64
|
+
|
|
65
|
+
# Hidden Service Configuration
|
|
66
|
+
HiddenServiceDir $HIDDEN_SERVICE_DIR
|
|
67
|
+
HiddenServicePort 80 127.0.0.1:$LOCAL_SERVICE_PORT
|
|
68
|
+
EOL"
|
|
69
|
+
|
|
70
|
+
log_message "Tor configuration updated."
|
|
71
|
+
|
|
72
|
+
# Verify the Tor configuration
|
|
73
|
+
log_message "Verifying Tor configuration syntax..."
|
|
74
|
+
if ! sudo tor --verify-config -f "$TORRC_PATH"; then
|
|
75
|
+
log_message "[ERROR] Tor configuration is invalid."
|
|
76
|
+
exit 1
|
|
77
|
+
else
|
|
78
|
+
log_message "Tor configuration is valid."
|
|
79
|
+
fi
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
# Restart Tor service
|
|
83
|
+
restart_tor() {
|
|
84
|
+
log_message "Restarting Tor service..."
|
|
85
|
+
sudo systemctl restart "$TOR_SERVICE_NAME"
|
|
86
|
+
sleep 5 # Give Tor some time to start
|
|
87
|
+
if ! systemctl is-active --quiet "$TOR_SERVICE_NAME"; then
|
|
88
|
+
log_message "[ERROR] Tor service failed to start."
|
|
89
|
+
log_message "Checking Tor logs for errors..."
|
|
90
|
+
sudo journalctl -u "$TOR_SERVICE_NAME" -b --no-pager | tail -n 50 | tee -a "$LOG_FILE"
|
|
91
|
+
exit 1
|
|
92
|
+
else
|
|
93
|
+
log_message "Tor service restarted successfully."
|
|
94
|
+
fi
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
# Ensure Tor starts at boot
|
|
98
|
+
enable_tor_on_boot() {
|
|
99
|
+
log_message "Enabling Tor to start on boot..."
|
|
100
|
+
sudo systemctl enable "$TOR_SERVICE_NAME"
|
|
101
|
+
if systemctl is-enabled --quiet "$TOR_SERVICE_NAME"; then
|
|
102
|
+
log_message "Tor service enabled to start on boot."
|
|
103
|
+
else
|
|
104
|
+
log_message "[ERROR] Failed to enable Tor to start on boot."
|
|
105
|
+
fi
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
# Display the hidden service .onion address and copy it to a user-accessible location
|
|
109
|
+
display_and_copy_hidden_service_address() {
|
|
110
|
+
log_message "Attempting to read hidden service hostname..."
|
|
111
|
+
if [ -f "$HIDDEN_SERVICE_DIR/hostname" ]; then
|
|
112
|
+
local onion_address
|
|
113
|
+
onion_address=$(sudo cat "$HIDDEN_SERVICE_DIR/hostname")
|
|
114
|
+
if [ -n "$onion_address" ]; then
|
|
115
|
+
echo "[INFO] Hidden service address: $onion_address"
|
|
116
|
+
log_message "Hidden service address: $onion_address"
|
|
117
|
+
|
|
118
|
+
# Copy the hostname to a user-accessible location
|
|
119
|
+
USER_ONION_FILE="$HOME/hidden_service_hostname"
|
|
120
|
+
echo "$onion_address" > "$USER_ONION_FILE"
|
|
121
|
+
chmod 644 "$USER_ONION_FILE"
|
|
122
|
+
log_message "Copied hidden service address to $USER_ONION_FILE"
|
|
123
|
+
else
|
|
124
|
+
log_message "[ERROR] Hidden service hostname is empty."
|
|
125
|
+
fi
|
|
126
|
+
else
|
|
127
|
+
log_message "[ERROR] Hidden service hostname file is missing."
|
|
128
|
+
fi
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
# Verify that the local service is running on the specified port
|
|
132
|
+
verify_local_service() {
|
|
133
|
+
log_message "Verifying that the local service on port $LOCAL_SERVICE_PORT is running..."
|
|
134
|
+
if nc -zv 127.0.0.1 "$LOCAL_SERVICE_PORT" 2>&1 | grep -q succeeded; then
|
|
135
|
+
log_message "Local service on port $LOCAL_SERVICE_PORT is running."
|
|
136
|
+
else
|
|
137
|
+
log_message "[WARNING] Local service on port $LOCAL_SERVICE_PORT is not running."
|
|
138
|
+
log_message "Please ensure your service is running for the hidden service to function properly."
|
|
139
|
+
fi
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
# Main function
|
|
143
|
+
main() {
|
|
144
|
+
log_message "Starting Tor setup script..."
|
|
145
|
+
sudo pip3 install pysocks
|
|
146
|
+
install_tor
|
|
147
|
+
setup_hidden_service
|
|
148
|
+
backup_torrc
|
|
149
|
+
configure_torrc
|
|
150
|
+
verify_local_service
|
|
151
|
+
restart_tor
|
|
152
|
+
enable_tor_on_boot
|
|
153
|
+
|
|
154
|
+
# Wait for the hidden service to initialize
|
|
155
|
+
log_message "Waiting for the hidden service to initialize..."
|
|
156
|
+
sleep 30
|
|
157
|
+
|
|
158
|
+
display_and_copy_hidden_service_address
|
|
159
|
+
|
|
160
|
+
log_message "Tor setup script completed."
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
main
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Transcribe an audio file using openai-whisper (CPU-only).
|
|
4
|
+
|
|
5
|
+
stdin: JSON {"path": "...", "model": "tiny|base|small|medium|large-v3"}
|
|
6
|
+
stdout: JSON {"text": "...", "duration": null, "segments": []}
|
|
7
|
+
or {"error": "<kind>", "message": "..."}
|
|
8
|
+
|
|
9
|
+
Force-loads on CPU because the venv's torch may not match the local GPU
|
|
10
|
+
(e.g. a GT 1030 with sm_61 against a sm_75+ torch build) — those mismatches
|
|
11
|
+
print noisy CUDA warnings and then crash. CPU is slower but always works.
|
|
12
|
+
"""
|
|
13
|
+
import sys, os, json, warnings
|
|
14
|
+
|
|
15
|
+
# Quiet CUDA warnings from torch even though we won't use the GPU.
|
|
16
|
+
warnings.filterwarnings("ignore")
|
|
17
|
+
os.environ.setdefault("CUDA_VISIBLE_DEVICES", "") # hide all GPUs
|
|
18
|
+
os.environ.setdefault("PYTHONWARNINGS", "ignore")
|
|
19
|
+
|
|
20
|
+
try:
|
|
21
|
+
import whisper
|
|
22
|
+
except Exception as e:
|
|
23
|
+
print(json.dumps({"error": "deps_missing", "message": str(e)}))
|
|
24
|
+
sys.exit(0)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def main() -> None:
|
|
28
|
+
raw = sys.stdin.read()
|
|
29
|
+
try:
|
|
30
|
+
data = json.loads(raw) if raw.strip() else {}
|
|
31
|
+
except Exception as e:
|
|
32
|
+
print(json.dumps({"error": "bad_input", "message": str(e)}))
|
|
33
|
+
return
|
|
34
|
+
|
|
35
|
+
path = data.get("path")
|
|
36
|
+
if not path or not os.path.exists(path):
|
|
37
|
+
print(json.dumps({"error": "file_not_found", "path": path or ""}))
|
|
38
|
+
return
|
|
39
|
+
|
|
40
|
+
model_name = data.get("model") or "tiny"
|
|
41
|
+
try:
|
|
42
|
+
model = whisper.load_model(model_name, device="cpu")
|
|
43
|
+
result = model.transcribe(path, fp16=False)
|
|
44
|
+
except Exception as e:
|
|
45
|
+
print(json.dumps({"error": "whisper_failed", "message": str(e)}))
|
|
46
|
+
return
|
|
47
|
+
|
|
48
|
+
text = (result.get("text") or "").strip()
|
|
49
|
+
raw_segments = result.get("segments") or []
|
|
50
|
+
segments = [
|
|
51
|
+
{
|
|
52
|
+
"start": float(s.get("start", 0.0)),
|
|
53
|
+
"end": float(s.get("end", 0.0)),
|
|
54
|
+
"text": (s.get("text") or "").strip(),
|
|
55
|
+
}
|
|
56
|
+
for s in raw_segments
|
|
57
|
+
]
|
|
58
|
+
duration = float(segments[-1]["end"]) if segments else None
|
|
59
|
+
print(json.dumps({"text": text, "duration": duration, "segments": segments}))
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
if __name__ == "__main__":
|
|
63
|
+
main()
|