openclaw-pine-voice 0.2.0 → 0.3.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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "openclaw-pine-voice",
3
3
  "name": "Pine AI Voice Call",
4
- "version": "0.1.7",
4
+ "version": "0.3.0",
5
5
  "description": "Make phone calls via Pine AI voice agent. The AI agent calls the specified number and carries out the conversation based on your instructions. The voice agent can only speak English, so calls can only be delivered to English-speaking countries. Before calling, gather all information the callee may need for authentication and verification — the agent cannot ask a human for missing info mid-call. Returns the full transcript. Powered by Pine AI.",
6
6
  "configSchema": {
7
7
  "type": "object",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openclaw-pine-voice",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Make phone calls via Pine AI voice agent from OpenClaw",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -120,6 +120,67 @@ For calls involving negotiation (bill reduction, rate matching, fee waiver), pro
120
120
  **Restaurant reservation:**
121
121
  "Call the restaurant at +14155559876 and make a reservation for 4 people tonight at 7pm. If 7pm is not available, try 7:30 or 8pm. Name for the reservation: Jane Doe."
122
122
 
123
+ ## Troubleshooting
124
+
125
+ ### "Tool pine_voice_call_and_wait not found"
126
+
127
+ The voice tools (`pine_voice_call_and_wait`, `pine_voice_call`, `pine_voice_call_status`) are registered as **optional** tools. They are only available to the AI agent if they are explicitly listed in the `tools.allow` configuration.
128
+
129
+ **Cause:** The tool names are missing from `tools.allow` in `openclaw.json`.
130
+
131
+ **Fix:** Add the voice tools to `tools.allow` in `openclaw.json`. Any of these approaches work:
132
+
133
+ 1. **Re-run authentication** — the `pine_voice_auth_verify` tool automatically adds all voice tools to `tools.allow`. Use the `pine-voice-auth` skill to re-authenticate, then restart the gateway.
134
+
135
+ 2. **Add tools manually** — edit `openclaw.json` and add the tool names to `tools.allow`:
136
+ ```json
137
+ { "tools": { "allow": ["pine_voice_call_and_wait", "pine_voice_call", "pine_voice_call_status"] } }
138
+ ```
139
+
140
+ After editing the config, restart the gateway: `openclaw gateway restart`.
141
+
142
+ ### "Pine Voice is not authenticated"
143
+
144
+ The plugin has no saved credentials. Run the auth flow using the `pine-voice-auth` skill.
145
+
146
+ ### "Pine Voice authentication has expired"
147
+
148
+ The access token has expired. Re-run the auth flow using the `pine-voice-auth` skill to get a fresh token.
149
+
150
+ ### "TOKEN_EXPIRED" or 401 errors during a call
151
+
152
+ The token was valid at auth time but has since expired. Re-authenticate using the `pine-voice-auth` skill and restart the gateway.
153
+
154
+ ### "SUBSCRIPTION_REQUIRED: Pine AI Pro subscription required"
155
+
156
+ The user's Pine AI account does not have an active Pro subscription, or the subscription has expired/been cancelled. The user must subscribe or renew at https://19pine.ai.
157
+
158
+ ### "INSUFFICIENT_CREDITS: At least N credits required"
159
+
160
+ The user's credit balance is too low to initiate a call. Each call requires a minimum of 50 credits (base charge). The user must add credits at https://19pine.ai.
161
+
162
+ ### "RATE_LIMITED: You've already called this number N times today"
163
+
164
+ The voice gateway enforces a per-target daily call limit. The user has called the same phone number too many times in one day. Wait until the next day or call a different number.
165
+
166
+ ### "RATE_LIMITED: Maximum N concurrent calls exceeded"
167
+
168
+ The user has too many active calls running simultaneously (default limit: 5). Wait for an active call to finish before starting a new one.
169
+
170
+ ### "POLICY_VIOLATION" or safety review rejection
171
+
172
+ The gateway's safety review rejected the call request. Common reasons:
173
+ - Objective is too vague (e.g., "just call them")
174
+ - Target number is in an unsupported country
175
+ - Negotiator caller type used without a complete negotiation strategy
176
+ - Number is on the emergency or premium-rate blocklist
177
+
178
+ Read the error message for specifics and adjust the call parameters accordingly.
179
+
180
+ ### "PHONE_REQUIRED"
181
+
182
+ The user has not registered a phone number in their Pine AI account. They need to add one in their account settings at https://www.19pine.ai.
183
+
123
184
  ## HTTP API reference
124
185
 
125
186
  The plugin uses these REST endpoints on the Pine Voice gateway (for transparency — the tools handle this automatically):
@@ -99,6 +99,30 @@ Access tokens expire periodically. When a call fails with `TOKEN_EXPIRED` or a 4
99
99
  1. Inform the user their token has expired and needs to be refreshed
100
100
  2. Re-run this auth flow starting from step 1
101
101
 
102
+ ## Troubleshooting
103
+
104
+ ### "Tool pine_voice_call_and_wait not found" after successful auth
105
+
106
+ Authentication succeeded but the tools are still not visible. This means the tool names were not added to `tools.allow` during verification (e.g., the config was edited manually afterward).
107
+
108
+ **Fix:** Re-run `pine_voice_auth_verify` which automatically adds the voice tools to `tools.allow`, then restart the gateway. Alternatively, manually add `"pine_voice_call_and_wait"`, `"pine_voice_call"`, and `"pine_voice_call_status"` to the `tools.allow` array in `openclaw.json`.
109
+
110
+ ### Auth request fails with 400/422
111
+
112
+ The email is likely not registered with Pine AI. Ask the user to verify the email address or sign up at https://19pine.ai.
113
+
114
+ ### "No pending auth request found for this email"
115
+
116
+ The `pine_voice_auth_verify` tool was called without a prior `pine_voice_auth_request`, or the in-memory request token was lost (e.g., gateway restarted between steps). Go back to step 2 and send a new verification code.
117
+
118
+ ### Code expired
119
+
120
+ Verification codes expire after a few minutes. If the user took too long, go back to step 2 to send a fresh code.
121
+
122
+ ### Gateway restart required after auth
123
+
124
+ Credentials are saved to `openclaw.json` but the gateway loads config at startup. The gateway **must be restarted** (`openclaw gateway restart`) for new credentials to take effect. If voice tools fail immediately after auth, remind the user to restart.
125
+
102
126
  ## Security notes
103
127
 
104
128
  - Never log or echo the access token in plaintext beyond what is needed