Bundle
dsh-pollyreach
PollyReach phone-call tools and skill for DeepSeek Harness
- Source
- PollyReach
- stars
- 4 stars
- License
- MIT
- Updated
- Updated 10 days ago
Readme
# dsh-pollyreach
A distributable [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) bundle for PollyReach. It registers seven native model-callable tools plus the PollyReach skill, and includes secure shell CLIs for manual use.
## Included capabilities
- Register and securely persist a PollyReach credential.
- Complete account activation and retrieve the assigned phone number.
- Submit outbound phone tasks and poll for full results.
- Check credit balance without treating a zero balance as an invalid token.
- Retrieve unread incoming-call data without flattening the API response.
- Update the inbound answering prompt.
## Requirements
- Node.js 22.19 or newer.
- DeepSeek Harness `@deepseek-ai/dsh` developer preview compatible with `dsh-tools 0.0.1-rc.1`.
- `curl` and `jq` only if you use the optional shell scripts.
## Install
Install a local checkout into an existing profile:
```bash
dsh plugin --profile demo add /absolute/path/to/pollyreach-dsh-plugin
dsh --profile demo --dump-config
dsh --profile demo
```
Install a packed release:
```bash
npm pack
dsh plugin --profile demo add ./dsh-pollyreach-1.0.3.tgz
```
After publishing to npm, users can install it with:
```bash
dsh plugin --profile demo add dsh-pollyreach@1.0.3
```
Remove it with:
```bash
dsh plugin --profile demo remove dsh-pollyreach
```
The bundle contributes `cordis.patch.yml`; users do not need to edit the generated profile manifest manually.
## Native tools
| Tool | Purpose |
|---|---|
| `pollyreach_register` | Register and atomically save a new credential |
| `pollyreach_activation_status` | Check/poll activation and save the assigned number |
| `pollyreach_send_call` | Submit one outbound task |
| `pollyreach_query_call` | Poll for the actual outbound result |
| `pollyreach_balance` | Return the complete balance response |
| `pollyreach_inbound_calls` | Return unread incoming-call data |
| `pollyreach_update_inbound_prompt` | Change incoming-call behavior |
The plugin also registers `SKILL.md` through `ctx.skills`, so the Harness skill catalog can load behavioral guidance on demand.
## Configuration
Override defaults in the profile's `cordis.patch.yml`. Patch rows replace the whole config object, so include every value you want to preserve:
```yaml
- id: pollyreach-tools
name: dsh-pollyreach
config:
apiBaseUrl: https://api.pollyreach.ai
credentialsPath: ~/.config/PollyReach/key.json
source: openclaw
requestTimeoutMs: 30000
pollIntervalMs: 2000
activationMaxAttempts: 60
queryMaxAttempts: 300
inboundMaxAttempts: 10
```
`source` defaults to `openclaw` because that is the current PollyReach device-registration API contract, even though the client runtime is DeepSeek Harness.
## Credential security
The registration tool stores this shape at `~/.config/PollyReach/key.json`:
```json
{
"token": "redacted",
"agent_name": "my-agent",
"activation_url": "https://agent.pollyreach.ai/auth?code=example",
"ai_virtual_phone": null
}
```
The directory is created with restrictive permissions and the file is atomically written with mode `0600`. The token is intentionally omitted from the registration tool result. Never commit the real file; `examples/key.example.json` contains placeholders only.
## Optional shell CLI
The scripts are useful for diagnostics outside the model tool pipeline:
```bash
scripts/register.sh "Agent Name" "AI agent powered by DeepSeek Harness"
scripts/activation.sh
scripts/send.sh 'Call +1... and ask ...'
scripts/query.sh
scripts/balance.sh
scripts/inbound.sh
scripts/prompt_update.sh 'Answer professionally and take a detailed message.'
```
They read the same credential file automatically; tokens are never command-line arguments. Tests can override endpoints and paths with `POLLYREACH_API_BASE_URL` and `POLLYREACH_CREDENTIALS_FILE`.
## Validate and package
```bash
npm install
npm run check
npm run pack:check
```
No real PollyReach account is required for tests; network calls are mocked. Before publishing, test the packed tarball against a disposable dsh profile:
```bash
npm pack
dsh plugin --profile pollyreach-smoke add ./dsh-pollyreach-1.0.3.tgz
dsh --profile pollyreach-smoke --dump-config
```
## Compatibility note
This package targets the current DeepSeek Harness developer preview (`@deepseek-ai/dsh` 0.1.0-rc.7 and `@deepseek-ai/dsh-tools` 0.0.1-rc.1). Preview APIs may change; update and retest the pinned peer version before publishing a new release.
## License
MIT
Install
dsh plugin --profile web add github:PollyReach/pollyreach-dsh-plugin
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-pollyreach from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.