@nicfox77/parakeet-stt 0.2.3 → 0.2.5

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.
Files changed (2) hide show
  1. package/package.json +2 -2
  2. package/scripts/install.sh +41 -44
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@nicfox77/parakeet-stt",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "Parakeet TDT INT8 speech-to-text plugin for OpenClaw. Supports V2 (English) and V3 (Multilingual) models.",
5
5
  "type": "module",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "git+https://github.com/Nicfox77/openclaw-parakeet-stt.git"
8
+ "url": "git+https://github.com/Nicfox77/openclaw-parakeet-stt-plugin.git"
9
9
  },
10
10
  "author": "Nicfox77",
11
11
  "license": "MIT",
@@ -8,7 +8,6 @@ set -e
8
8
  # Configuration
9
9
  PARAKEET_DIR="${PARAKEET_DIR:-$HOME/.openclaw/tools/parakeet}"
10
10
  VENV_DIR="$PARAKEET_DIR/.venv"
11
- OPENCLAW_CONFIG="$HOME/.openclaw/openclaw.json"
12
11
 
13
12
  # Model URLs (GitHub release - mirrored from Handy project)
14
13
  # Fallback to Handy if GitHub is unavailable
@@ -146,56 +145,54 @@ done
146
145
 
147
146
  # Configure OpenClaw to use Parakeet for audio transcription
148
147
  configure_openclaw() {
149
- if [ ! -f "$OPENCLAW_CONFIG" ]; then
150
- echo "Warning: OpenClaw config not found at $OPENCLAW_CONFIG"
151
- return 1
152
- fi
153
-
154
- # Check if jq is available
155
- if ! command -v jq &> /dev/null; then
156
- echo "Warning: jq not found, skipping automatic config"
157
- echo "Please manually add to openclaw.json:"
158
- echo ' tools.media.audio.models: [{"type": "cli", "command": "'$PARAKEET_DIR'/parakeet-audio-client.py", "args": ["{{MediaPath}}", "{{OutputDir}}"]}]'
159
- return 1
160
- fi
161
-
162
- # Check if parakeet is already configured
163
- if jq -e '.tools.media.audio.models[]? | select(.command | contains("parakeet"))' "$OPENCLAW_CONFIG" > /dev/null 2>&1; then
164
- echo "Parakeet already configured in OpenClaw"
165
- return 0
166
- fi
167
-
168
148
  echo "Configuring OpenClaw to use Parakeet for audio transcription..."
169
149
 
170
- # Add parakeet to audio models
171
- local tmp_config=$(mktemp)
172
- jq '.tools.media.audio.models += [{
173
- "type": "cli",
174
- "command": "'$PARAKEET_DIR'/parakeet-audio-client.py",
175
- "args": ["{{MediaPath}}", "{{OutputDir}}"]
176
- }]' "$OPENCLAW_CONFIG" > "$tmp_config" && mv "$tmp_config" "$OPENCLAW_CONFIG"
177
-
178
- echo "Added Parakeet to tools.media.audio.models"
179
- }
180
-
181
- configure_openclaw || true
182
-
183
- # Apply config changes properly (requires config.apply, not just restart)
184
- apply_config() {
150
+ # Use config.patch RPC for partial update (no jq needed)
185
151
  if command -v openclaw &> /dev/null; then
186
- echo ""
187
- echo "Applying configuration to OpenClaw gateway..."
188
- openclaw gateway call config.apply --params '{"raw": "'$(cat "$OPENCLAW_CONFIG" | jq -c '.')'", "note": "Parakeet STT installation"}' 2>/dev/null || {
189
- echo "Note: Could not apply config automatically. Please run:"
190
- echo " openclaw gateway restart"
152
+ openclaw gateway call config.patch --params '{
153
+ "patch": {
154
+ "tools": {
155
+ "media": {
156
+ "audio": {
157
+ "models": [{
158
+ "type": "cli",
159
+ "command": "'$PARAKEET_DIR'/parakeet-audio-client.py",
160
+ "args": ["{{MediaPath}}", "{{OutputDir}}"]
161
+ }]
162
+ }
163
+ }
164
+ }
165
+ }
166
+ }' 2>/dev/null && {
167
+ echo "Applied config.patch - Parakeet configured and gateway reloaded"
168
+ return 0
169
+ } || {
170
+ echo "Warning: config.patch failed"
191
171
  }
172
+ else
173
+ echo "Warning: openclaw CLI not found"
192
174
  fi
175
+
176
+ # Fallback: manual instructions
177
+ echo ""
178
+ echo "Please manually add to your openclaw.json:"
179
+ echo ""
180
+ echo ' "tools": {'
181
+ echo ' "media": {'
182
+ echo ' "audio": {'
183
+ echo ' "models": [{'
184
+ echo ' "type": "cli",'
185
+ echo ' "command": "'$PARAKEET_DIR'/parakeet-audio-client.py",'
186
+ echo ' "args": ["{{MediaPath}}", "{{OutputDir}}"]'
187
+ echo ' }]'
188
+ echo ' }'
189
+ echo ' }'
190
+ echo ' }'
191
+ echo ""
192
+ echo "Then run: openclaw gateway restart"
193
193
  }
194
194
 
195
- # Only apply if we added new config
196
- if jq -e '.tools.media.audio.models[]? | select(.command | contains("parakeet"))' "$OPENCLAW_CONFIG" > /dev/null 2>&1; then
197
- apply_config
198
- fi
195
+ configure_openclaw || true
199
196
 
200
197
  echo ""
201
198
  echo "=== Installation Complete ==="