@pinecall/skills 0.1.0 → 0.1.1
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 +1 -0
- package/build.mjs +33 -5
- package/package.json +1 -1
- package/skills/pinecall-agent-skills/SKILL.md +41 -0
- package/skills/pinecall-agent-skills/references/skills.md +90 -0
- package/skills/pinecall-concepts/SKILL.md +4 -0
- package/skills/pinecall-examples/SKILL.md +4 -0
- package/skills/pinecall-guides/SKILL.md +4 -0
- package/skills/pinecall-quickstart/SKILL.md +4 -0
- package/skills/pinecall-reference/SKILL.md +4 -0
- package/skills/pinecall-reference/references/reference/tts-providers.md +22 -1
- package/skills/pinecall-sdk-api/SKILL.md +4 -0
- package/skills/pinecall-security/SKILL.md +4 -0
- package/skills/pinecall-web-chat/SKILL.md +6 -2
- package/skills/pinecall-web-components/SKILL.md +6 -2
- package/skills/pinecall-web-voice/SKILL.md +6 -2
- package/skills/pinecall-web-widget/SKILL.md +6 -2
package/README.md
CHANGED
|
@@ -45,6 +45,7 @@ cp -R skills/pinecall-guides ~/your-project/.claude/skills/
|
|
|
45
45
|
| `pinecall-web-components` | Framework-agnostic web components |
|
|
46
46
|
| `pinecall-reference` | CLI, STT/TTS/LLM providers, events, limits, REST |
|
|
47
47
|
| `pinecall-security` | Security model |
|
|
48
|
+
| `pinecall-agent-skills` | This package — installing the Pinecall skills into your agent |
|
|
48
49
|
|
|
49
50
|
Every skill carries the **house rules** so the agent never drifts:
|
|
50
51
|
`stt: "deepgram/flux"`, `llm: "openai/gpt-5-chat-latest"`, `voice: "elevenlabs/sarah"`,
|
package/build.mjs
CHANGED
|
@@ -30,6 +30,10 @@ const HOUSE_RULES = `## House rules — always apply
|
|
|
30
30
|
- **Turn detection & VAD are auto-derived from the STT provider — never set
|
|
31
31
|
\`turnDetection\` or \`vad\` manually.** Flux → native turns + native VAD;
|
|
32
32
|
every other STT → \`smart_turn\` + \`silero\`.
|
|
33
|
+
- **TTS model is auto-derived from \`language\`** — non-English agents (e.g.
|
|
34
|
+
\`language: "es"\`) default ElevenLabs to \`eleven_multilingual_v2\` so numbers,
|
|
35
|
+
dates and currency are pronounced correctly (flash/turbo don't normalize text).
|
|
36
|
+
English stays on \`eleven_flash_v2_5\`. Override with \`voice: { ..., model: "..." }\`.
|
|
33
37
|
- **Greeting**: inbound → \`greeting\` field in \`pc.agent()\`; outbound → \`greeting\`
|
|
34
38
|
field in \`agent.dial()\`. It is sugar for \`call.say()\` in \`call.started\`.
|
|
35
39
|
- **Auth**: \`new Pinecall()\` reads \`PINECALL_API_KEY\` from env and auto-connects.
|
|
@@ -78,26 +82,31 @@ const GROUP_MAP = {
|
|
|
78
82
|
blurb: "@pinecall/sdk API reference — Pinecall, Agent, Call, ReplyStream.",
|
|
79
83
|
keywords: "api, pc.agent, agent.dial, call object, reply stream, replyStream, server sdk surface",
|
|
80
84
|
},
|
|
81
|
-
"
|
|
85
|
+
"Voice — core": {
|
|
82
86
|
slug: "pinecall-web-voice",
|
|
83
87
|
blurb: "@pinecall/web/core — browser WebRTC voice (VoiceSession, state & phases, DataChannel protocol).",
|
|
84
88
|
keywords: "webrtc, voice session, browser voice, datachannel, @pinecall/web/core",
|
|
85
89
|
},
|
|
86
|
-
"
|
|
90
|
+
"React widget": {
|
|
87
91
|
slug: "pinecall-web-widget",
|
|
88
92
|
blurb: "@pinecall/web React widget — VoiceWidget props, theming, useVoiceSession hook, client tools.",
|
|
89
93
|
keywords: "react widget, voicewidget, useVoiceSession, theming, props, client tools, @pinecall/web",
|
|
90
94
|
},
|
|
91
|
-
"
|
|
95
|
+
"Text chat": {
|
|
92
96
|
slug: "pinecall-web-chat",
|
|
93
97
|
blurb: "@pinecall/web/chat — browser text chat (ChatSession, ChatView).",
|
|
94
98
|
keywords: "chat, chatsession, text chat, @pinecall/web/chat",
|
|
95
99
|
},
|
|
96
|
-
"
|
|
100
|
+
"Web components": {
|
|
97
101
|
slug: "pinecall-web-components",
|
|
98
102
|
blurb: "@pinecall/web web components — framework-agnostic custom elements.",
|
|
99
103
|
keywords: "web components, custom element, framework-agnostic widget",
|
|
100
104
|
},
|
|
105
|
+
"Agent Skills": {
|
|
106
|
+
slug: "pinecall-agent-skills",
|
|
107
|
+
blurb: "@pinecall/skills — install the Pinecall docs as Agent Skills into Claude Code, Cursor, Antigravity, Copilot.",
|
|
108
|
+
keywords: "agent skills, @pinecall/skills, claude code, cursor, antigravity, copilot, skills add, install skills",
|
|
109
|
+
},
|
|
101
110
|
Reference: {
|
|
102
111
|
slug: "pinecall-reference",
|
|
103
112
|
blurb: "Reference tables — CLI commands, STT/TTS/LLM providers, events, session limits, REST API.",
|
|
@@ -136,9 +145,28 @@ function loadPage(slug) {
|
|
|
136
145
|
};
|
|
137
146
|
}
|
|
138
147
|
|
|
148
|
+
// Flatten nested navigation groups into leaf groups (each with only page
|
|
149
|
+
// slugs). A parent group whose `pages` are sub-groups contributes its leaves,
|
|
150
|
+
// not itself — so one skill is still emitted per leaf section.
|
|
151
|
+
function leafGroups(groups) {
|
|
152
|
+
const out = [];
|
|
153
|
+
for (const g of groups) {
|
|
154
|
+
const pages = g.pages || [];
|
|
155
|
+
const subs = pages.filter((p) => p && typeof p === "object" && Array.isArray(p.pages));
|
|
156
|
+
const slugs = pages.filter((p) => typeof p === "string");
|
|
157
|
+
if (subs.length) {
|
|
158
|
+
out.push(...leafGroups(subs));
|
|
159
|
+
if (slugs.length) out.push({ group: g.group, pages: slugs });
|
|
160
|
+
} else {
|
|
161
|
+
out.push({ group: g.group, pages: slugs });
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return out;
|
|
165
|
+
}
|
|
166
|
+
|
|
139
167
|
// --- main
|
|
140
168
|
const docsJson = JSON.parse(readFileSync(join(DOCS_DIR, "..", "docs.json"), "utf8"));
|
|
141
|
-
const groups = docsJson.navigation.groups;
|
|
169
|
+
const groups = leafGroups(docsJson.navigation.groups);
|
|
142
170
|
|
|
143
171
|
if (existsSync(OUT_DIR)) rmSync(OUT_DIR, { recursive: true });
|
|
144
172
|
mkdirSync(OUT_DIR, { recursive: true });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pinecall/skills",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Agent Skills for the Pinecall SDK — installable into Claude Code, Antigravity, Cursor, Copilot and any agent that supports the open Skills format.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pinecall-agent-skills
|
|
3
|
+
description: >-
|
|
4
|
+
@pinecall/skills — install the Pinecall docs as Agent Skills into Claude Code, Cursor, Antigravity, Copilot. Use when the user is building, configuring, or debugging with @pinecall/sdk. Keywords: agent skills, @pinecall/skills, claude code, cursor, antigravity, copilot, skills add, install skills.
|
|
5
|
+
license: MIT
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Agent Skills
|
|
9
|
+
|
|
10
|
+
@pinecall/skills — install the Pinecall docs as Agent Skills into Claude Code, Cursor, Antigravity, Copilot.
|
|
11
|
+
|
|
12
|
+
This skill bundles the official Pinecall documentation for **Agent Skills**. The
|
|
13
|
+
table below indexes every page; open the `references/…` file for the full text
|
|
14
|
+
(loaded on demand). Source of truth: <https://docs.pinecall.io>.
|
|
15
|
+
|
|
16
|
+
| Page | What it covers | Open |
|
|
17
|
+
|------|----------------|------|
|
|
18
|
+
| **Agent Skills (@pinecall/skills)** | Drop the Pinecall docs into Claude Code, Cursor, Antigravity, Copilot or any agent that speaks the open Agent Skills format — so your coding agent builds voice & chat agents the right way, offline, with the correct defaults. | [`references/skills.md`](references/skills.md) · [docs](https://docs.pinecall.io/skills) |
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
## House rules — always apply
|
|
22
|
+
|
|
23
|
+
- **Example defaults** (use these exact strings unless the user asks otherwise):
|
|
24
|
+
`stt: "deepgram/flux"`, `llm: "openai/gpt-5-chat-latest"`, `voice: "elevenlabs/sarah"`.
|
|
25
|
+
**NEVER use `deepgram/nova-2`** — it is not supported. Use `deepgram/nova-3`
|
|
26
|
+
only for languages Flux doesn't support (e.g. Arabic).
|
|
27
|
+
- **Turn detection & VAD are auto-derived from the STT provider — never set
|
|
28
|
+
`turnDetection` or `vad` manually.** Flux → native turns + native VAD;
|
|
29
|
+
every other STT → `smart_turn` + `silero`.
|
|
30
|
+
- **TTS model is auto-derived from `language`** — non-English agents (e.g.
|
|
31
|
+
`language: "es"`) default ElevenLabs to `eleven_multilingual_v2` so numbers,
|
|
32
|
+
dates and currency are pronounced correctly (flash/turbo don't normalize text).
|
|
33
|
+
English stays on `eleven_flash_v2_5`. Override with `voice: { ..., model: "..." }`.
|
|
34
|
+
- **Greeting**: inbound → `greeting` field in `pc.agent()`; outbound → `greeting`
|
|
35
|
+
field in `agent.dial()`. It is sugar for `call.say()` in `call.started`.
|
|
36
|
+
- **Auth**: `new Pinecall()` reads `PINECALL_API_KEY` from env and auto-connects.
|
|
37
|
+
- Full documentation: <https://docs.pinecall.io>
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
*Generated from `sdk/docs/` by `@pinecall/skills` — do not edit by hand; edit the
|
|
41
|
+
docs and re-run `node build.mjs`.*
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Agent Skills (@pinecall/skills)"
|
|
3
|
+
description: "Drop the Pinecall docs into Claude Code, Cursor, Antigravity, Copilot or any agent that speaks the open Agent Skills format — so your coding agent builds voice & chat agents the right way, offline, with the correct defaults."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agent Skills
|
|
7
|
+
|
|
8
|
+
[`@pinecall/skills`](https://github.com/pinecall/skills) packages the entire
|
|
9
|
+
Pinecall documentation as **[Agent Skills](https://github.com/agentskills/agentskills)** —
|
|
10
|
+
installable into **Claude Code, Google Antigravity, Cursor, GitHub Copilot, Codex**,
|
|
11
|
+
or anything that speaks the open Skills format. Your coding agent then knows how
|
|
12
|
+
to build Pinecall voice & chat agents **with the right defaults**, offline, without
|
|
13
|
+
you pasting docs into the chat.
|
|
14
|
+
|
|
15
|
+
Each skill is a folder with a `SKILL.md` + a `references/` tree of the real docs
|
|
16
|
+
pages, loaded **on demand** (progressive disclosure). The whole package is
|
|
17
|
+
**generated from these same docs** (`sdk/docs/`) — one source of truth feeds the
|
|
18
|
+
docs site, the [`/ask` knowledge base](/guides/knowledge-bases), and these skills.
|
|
19
|
+
|
|
20
|
+
## Install
|
|
21
|
+
|
|
22
|
+
The open installer picks your agent's skills directory and symlinks the skills in:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npx skills add pinecall/skills
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Or copy just the skills you want into your agent's skills directory:
|
|
29
|
+
|
|
30
|
+
| Agent | Directory |
|
|
31
|
+
|-------|-----------|
|
|
32
|
+
| Claude Code | `.claude/skills/` |
|
|
33
|
+
| Google Antigravity | `.agents/skills/` (or the plugin's `skills/`) |
|
|
34
|
+
| Cursor / Copilot / others | per the agent's docs |
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
cp -R skills/pinecall-guides ~/your-project/.claude/skills/
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## What's inside
|
|
41
|
+
|
|
42
|
+
One skill per docs section — install all of them, or only the ones you need:
|
|
43
|
+
|
|
44
|
+
| Skill | Covers |
|
|
45
|
+
|-------|--------|
|
|
46
|
+
| `pinecall-quickstart` | Install + your first voice agent |
|
|
47
|
+
| `pinecall-concepts` | Agents/Channels/Calls, server vs client LLM, hot reload, topologies |
|
|
48
|
+
| `pinecall-guides` | Inbound/outbound, WhatsApp, tools, events, takeover, WebRTC, multi-tenant, testing… |
|
|
49
|
+
| `pinecall-examples` | Copy-paste full agents |
|
|
50
|
+
| `pinecall-sdk-api` | `@pinecall/sdk` API (Pinecall / Agent / Call / ReplyStream) |
|
|
51
|
+
| `pinecall-web-voice` | `@pinecall/web/core` — browser WebRTC voice |
|
|
52
|
+
| `pinecall-web-widget` | `@pinecall/web` React widget |
|
|
53
|
+
| `pinecall-web-chat` | `@pinecall/web/chat` — text chat |
|
|
54
|
+
| `pinecall-web-components` | Framework-agnostic web components |
|
|
55
|
+
| `pinecall-reference` | CLI, STT/TTS/LLM providers, events, limits, REST |
|
|
56
|
+
| `pinecall-security` | Security model |
|
|
57
|
+
|
|
58
|
+
## Built-in house rules
|
|
59
|
+
|
|
60
|
+
Every skill carries the Pinecall **house rules**, so the agent never drifts from
|
|
61
|
+
the supported configuration:
|
|
62
|
+
|
|
63
|
+
- Example defaults: `stt: "deepgram/flux"`, `llm: "openai/gpt-5-chat-latest"`,
|
|
64
|
+
`voice: "elevenlabs/sarah"`. Never `deepgram/nova-2`.
|
|
65
|
+
- **Turn detection & VAD are auto-derived from the STT provider — never set
|
|
66
|
+
`turnDetection` or `vad` by hand.** (Flux → native turns + native VAD; every
|
|
67
|
+
other STT → `smart_turn` + `silero`.)
|
|
68
|
+
- Greeting: inbound → `greeting` in `pc.agent()`; outbound → `greeting` in
|
|
69
|
+
`agent.dial()`.
|
|
70
|
+
- Auth: `new Pinecall()` reads `PINECALL_API_KEY` and auto-connects.
|
|
71
|
+
|
|
72
|
+
## Staying in sync
|
|
73
|
+
|
|
74
|
+
The `skills/` tree is **generated and committed**, so `npx skills add` works
|
|
75
|
+
offline. Whenever the docs change, the package is regenerated from `sdk/docs/`:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
node build.mjs # reads ../sdk/docs by default
|
|
79
|
+
DOCS_DIR=/path/to/sdk/docs node build.mjs
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
The generator maps each `docs.json` navigation group to one skill, copies that
|
|
83
|
+
group's pages into `references/`, and writes a `SKILL.md` index + the house
|
|
84
|
+
rules. No dependencies.
|
|
85
|
+
|
|
86
|
+
## Related
|
|
87
|
+
|
|
88
|
+
- [Quickstart](/quickstart) — build your first agent
|
|
89
|
+
- [Knowledge bases](/guides/knowledge-bases) — the same docs power the `/ask` agent
|
|
90
|
+
- [`@pinecall/sdk` API](/api/pinecall)
|
|
@@ -31,6 +31,10 @@ table below indexes every page; open the `references/…` file for the full text
|
|
|
31
31
|
- **Turn detection & VAD are auto-derived from the STT provider — never set
|
|
32
32
|
`turnDetection` or `vad` manually.** Flux → native turns + native VAD;
|
|
33
33
|
every other STT → `smart_turn` + `silero`.
|
|
34
|
+
- **TTS model is auto-derived from `language`** — non-English agents (e.g.
|
|
35
|
+
`language: "es"`) default ElevenLabs to `eleven_multilingual_v2` so numbers,
|
|
36
|
+
dates and currency are pronounced correctly (flash/turbo don't normalize text).
|
|
37
|
+
English stays on `eleven_flash_v2_5`. Override with `voice: { ..., model: "..." }`.
|
|
34
38
|
- **Greeting**: inbound → `greeting` field in `pc.agent()`; outbound → `greeting`
|
|
35
39
|
field in `agent.dial()`. It is sugar for `call.say()` in `call.started`.
|
|
36
40
|
- **Auth**: `new Pinecall()` reads `PINECALL_API_KEY` from env and auto-connects.
|
|
@@ -49,6 +49,10 @@ const agent = pc.agent("mara", {
|
|
|
49
49
|
- **Turn detection & VAD are auto-derived from the STT provider — never set
|
|
50
50
|
`turnDetection` or `vad` manually.** Flux → native turns + native VAD;
|
|
51
51
|
every other STT → `smart_turn` + `silero`.
|
|
52
|
+
- **TTS model is auto-derived from `language`** — non-English agents (e.g.
|
|
53
|
+
`language: "es"`) default ElevenLabs to `eleven_multilingual_v2` so numbers,
|
|
54
|
+
dates and currency are pronounced correctly (flash/turbo don't normalize text).
|
|
55
|
+
English stays on `eleven_flash_v2_5`. Override with `voice: { ..., model: "..." }`.
|
|
52
56
|
- **Greeting**: inbound → `greeting` field in `pc.agent()`; outbound → `greeting`
|
|
53
57
|
field in `agent.dial()`. It is sugar for `call.say()` in `call.started`.
|
|
54
58
|
- **Auth**: `new Pinecall()` reads `PINECALL_API_KEY` from env and auto-connects.
|
|
@@ -58,6 +58,10 @@ const agent = pc.agent("mara", {
|
|
|
58
58
|
- **Turn detection & VAD are auto-derived from the STT provider — never set
|
|
59
59
|
`turnDetection` or `vad` manually.** Flux → native turns + native VAD;
|
|
60
60
|
every other STT → `smart_turn` + `silero`.
|
|
61
|
+
- **TTS model is auto-derived from `language`** — non-English agents (e.g.
|
|
62
|
+
`language: "es"`) default ElevenLabs to `eleven_multilingual_v2` so numbers,
|
|
63
|
+
dates and currency are pronounced correctly (flash/turbo don't normalize text).
|
|
64
|
+
English stays on `eleven_flash_v2_5`. Override with `voice: { ..., model: "..." }`.
|
|
61
65
|
- **Greeting**: inbound → `greeting` field in `pc.agent()`; outbound → `greeting`
|
|
62
66
|
field in `agent.dial()`. It is sugar for `call.say()` in `call.started`.
|
|
63
67
|
- **Auth**: `new Pinecall()` reads `PINECALL_API_KEY` from env and auto-connects.
|
|
@@ -44,6 +44,10 @@ const agent = pc.agent("mara", {
|
|
|
44
44
|
- **Turn detection & VAD are auto-derived from the STT provider — never set
|
|
45
45
|
`turnDetection` or `vad` manually.** Flux → native turns + native VAD;
|
|
46
46
|
every other STT → `smart_turn` + `silero`.
|
|
47
|
+
- **TTS model is auto-derived from `language`** — non-English agents (e.g.
|
|
48
|
+
`language: "es"`) default ElevenLabs to `eleven_multilingual_v2` so numbers,
|
|
49
|
+
dates and currency are pronounced correctly (flash/turbo don't normalize text).
|
|
50
|
+
English stays on `eleven_flash_v2_5`. Override with `voice: { ..., model: "..." }`.
|
|
47
51
|
- **Greeting**: inbound → `greeting` field in `pc.agent()`; outbound → `greeting`
|
|
48
52
|
field in `agent.dial()`. It is sugar for `call.say()` in `call.started`.
|
|
49
53
|
- **Auth**: `new Pinecall()` reads `PINECALL_API_KEY` from env and auto-connects.
|
|
@@ -33,6 +33,10 @@ table below indexes every page; open the `references/…` file for the full text
|
|
|
33
33
|
- **Turn detection & VAD are auto-derived from the STT provider — never set
|
|
34
34
|
`turnDetection` or `vad` manually.** Flux → native turns + native VAD;
|
|
35
35
|
every other STT → `smart_turn` + `silero`.
|
|
36
|
+
- **TTS model is auto-derived from `language`** — non-English agents (e.g.
|
|
37
|
+
`language: "es"`) default ElevenLabs to `eleven_multilingual_v2` so numbers,
|
|
38
|
+
dates and currency are pronounced correctly (flash/turbo don't normalize text).
|
|
39
|
+
English stays on `eleven_flash_v2_5`. Override with `voice: { ..., model: "..." }`.
|
|
36
40
|
- **Greeting**: inbound → `greeting` field in `pc.agent()`; outbound → `greeting`
|
|
37
41
|
field in `agent.dial()`. It is sugar for `call.say()` in `call.started`.
|
|
38
42
|
- **Auth**: `new Pinecall()` reads `PINECALL_API_KEY` from env and auto-connects.
|
|
@@ -68,7 +68,28 @@ voice: {
|
|
|
68
68
|
|
|
69
69
|
Shortcut: `"elevenlabs/sarah"`
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
### Model selection (auto for non-English)
|
|
72
|
+
|
|
73
|
+
The server picks the ElevenLabs model from your `language`:
|
|
74
|
+
|
|
75
|
+
| Language | Default model | Why |
|
|
76
|
+
|---|---|---|
|
|
77
|
+
| `en` (or unset) | `eleven_flash_v2_5` | Fastest, optimized for real-time streaming |
|
|
78
|
+
| Any non-English (`es`, `fr`, `de`, …) | `eleven_multilingual_v2` | Flash/Turbo don't normalize text, so Spanish & other languages mispronounce numbers, dates, currency and abbreviations. The multilingual model reads them naturally. |
|
|
79
|
+
|
|
80
|
+
> `eleven_multilingual_v2` is billed at a higher rate than flash (it's a higher-quality model). If you'd rather keep the faster/cheaper flash model for a non-English agent, pin it explicitly (see below).
|
|
81
|
+
|
|
82
|
+
**Override the model** with the optional `model` field — it always wins over the auto-default:
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
voice: {
|
|
86
|
+
provider: "elevenlabs",
|
|
87
|
+
voice_id: "JBFqnCBsd6RMkjVDRZzb",
|
|
88
|
+
model: "eleven_multilingual_v2", // or "eleven_flash_v2_5" / "eleven_turbo_v2_5"
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
The model is part of the voice config, so it hot-reloads with it — `agent.update({ voice })` and a same-provider `call.update({ voice })` keep the model/language already in effect unless you pass a new one.
|
|
72
93
|
|
|
73
94
|
**Tuning notes:**
|
|
74
95
|
|
|
@@ -46,6 +46,10 @@ const agent = pc.agent("mara", {
|
|
|
46
46
|
- **Turn detection & VAD are auto-derived from the STT provider — never set
|
|
47
47
|
`turnDetection` or `vad` manually.** Flux → native turns + native VAD;
|
|
48
48
|
every other STT → `smart_turn` + `silero`.
|
|
49
|
+
- **TTS model is auto-derived from `language`** — non-English agents (e.g.
|
|
50
|
+
`language: "es"`) default ElevenLabs to `eleven_multilingual_v2` so numbers,
|
|
51
|
+
dates and currency are pronounced correctly (flash/turbo don't normalize text).
|
|
52
|
+
English stays on `eleven_flash_v2_5`. Override with `voice: { ..., model: "..." }`.
|
|
49
53
|
- **Greeting**: inbound → `greeting` field in `pc.agent()`; outbound → `greeting`
|
|
50
54
|
field in `agent.dial()`. It is sugar for `call.say()` in `call.started`.
|
|
51
55
|
- **Auth**: `new Pinecall()` reads `PINECALL_API_KEY` from env and auto-connects.
|
|
@@ -27,6 +27,10 @@ table below indexes every page; open the `references/…` file for the full text
|
|
|
27
27
|
- **Turn detection & VAD are auto-derived from the STT provider — never set
|
|
28
28
|
`turnDetection` or `vad` manually.** Flux → native turns + native VAD;
|
|
29
29
|
every other STT → `smart_turn` + `silero`.
|
|
30
|
+
- **TTS model is auto-derived from `language`** — non-English agents (e.g.
|
|
31
|
+
`language: "es"`) default ElevenLabs to `eleven_multilingual_v2` so numbers,
|
|
32
|
+
dates and currency are pronounced correctly (flash/turbo don't normalize text).
|
|
33
|
+
English stays on `eleven_flash_v2_5`. Override with `voice: { ..., model: "..." }`.
|
|
30
34
|
- **Greeting**: inbound → `greeting` field in `pc.agent()`; outbound → `greeting`
|
|
31
35
|
field in `agent.dial()`. It is sugar for `call.say()` in `call.started`.
|
|
32
36
|
- **Auth**: `new Pinecall()` reads `PINECALL_API_KEY` from env and auto-connects.
|
|
@@ -5,11 +5,11 @@ description: >-
|
|
|
5
5
|
license: MIT
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# Text chat
|
|
9
9
|
|
|
10
10
|
@pinecall/web/chat — browser text chat (ChatSession, ChatView).
|
|
11
11
|
|
|
12
|
-
This skill bundles the official Pinecall documentation for
|
|
12
|
+
This skill bundles the official Pinecall documentation for **Text chat**. The
|
|
13
13
|
table below indexes every page; open the `references/…` file for the full text
|
|
14
14
|
(loaded on demand). Source of truth: <https://docs.pinecall.io>.
|
|
15
15
|
|
|
@@ -28,6 +28,10 @@ table below indexes every page; open the `references/…` file for the full text
|
|
|
28
28
|
- **Turn detection & VAD are auto-derived from the STT provider — never set
|
|
29
29
|
`turnDetection` or `vad` manually.** Flux → native turns + native VAD;
|
|
30
30
|
every other STT → `smart_turn` + `silero`.
|
|
31
|
+
- **TTS model is auto-derived from `language`** — non-English agents (e.g.
|
|
32
|
+
`language: "es"`) default ElevenLabs to `eleven_multilingual_v2` so numbers,
|
|
33
|
+
dates and currency are pronounced correctly (flash/turbo don't normalize text).
|
|
34
|
+
English stays on `eleven_flash_v2_5`. Override with `voice: { ..., model: "..." }`.
|
|
31
35
|
- **Greeting**: inbound → `greeting` field in `pc.agent()`; outbound → `greeting`
|
|
32
36
|
field in `agent.dial()`. It is sugar for `call.say()` in `call.started`.
|
|
33
37
|
- **Auth**: `new Pinecall()` reads `PINECALL_API_KEY` from env and auto-connects.
|
|
@@ -5,11 +5,11 @@ description: >-
|
|
|
5
5
|
license: MIT
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# Web components
|
|
9
9
|
|
|
10
10
|
@pinecall/web web components — framework-agnostic custom elements.
|
|
11
11
|
|
|
12
|
-
This skill bundles the official Pinecall documentation for
|
|
12
|
+
This skill bundles the official Pinecall documentation for **Web components**. The
|
|
13
13
|
table below indexes every page; open the `references/…` file for the full text
|
|
14
14
|
(loaded on demand). Source of truth: <https://docs.pinecall.io>.
|
|
15
15
|
|
|
@@ -27,6 +27,10 @@ table below indexes every page; open the `references/…` file for the full text
|
|
|
27
27
|
- **Turn detection & VAD are auto-derived from the STT provider — never set
|
|
28
28
|
`turnDetection` or `vad` manually.** Flux → native turns + native VAD;
|
|
29
29
|
every other STT → `smart_turn` + `silero`.
|
|
30
|
+
- **TTS model is auto-derived from `language`** — non-English agents (e.g.
|
|
31
|
+
`language: "es"`) default ElevenLabs to `eleven_multilingual_v2` so numbers,
|
|
32
|
+
dates and currency are pronounced correctly (flash/turbo don't normalize text).
|
|
33
|
+
English stays on `eleven_flash_v2_5`. Override with `voice: { ..., model: "..." }`.
|
|
30
34
|
- **Greeting**: inbound → `greeting` field in `pc.agent()`; outbound → `greeting`
|
|
31
35
|
field in `agent.dial()`. It is sugar for `call.say()` in `call.started`.
|
|
32
36
|
- **Auth**: `new Pinecall()` reads `PINECALL_API_KEY` from env and auto-connects.
|
|
@@ -5,11 +5,11 @@ description: >-
|
|
|
5
5
|
license: MIT
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# Voice — core
|
|
9
9
|
|
|
10
10
|
@pinecall/web/core — browser WebRTC voice (VoiceSession, state & phases, DataChannel protocol).
|
|
11
11
|
|
|
12
|
-
This skill bundles the official Pinecall documentation for
|
|
12
|
+
This skill bundles the official Pinecall documentation for **Voice — core**. The
|
|
13
13
|
table below indexes every page; open the `references/…` file for the full text
|
|
14
14
|
(loaded on demand). Source of truth: <https://docs.pinecall.io>.
|
|
15
15
|
|
|
@@ -30,6 +30,10 @@ table below indexes every page; open the `references/…` file for the full text
|
|
|
30
30
|
- **Turn detection & VAD are auto-derived from the STT provider — never set
|
|
31
31
|
`turnDetection` or `vad` manually.** Flux → native turns + native VAD;
|
|
32
32
|
every other STT → `smart_turn` + `silero`.
|
|
33
|
+
- **TTS model is auto-derived from `language`** — non-English agents (e.g.
|
|
34
|
+
`language: "es"`) default ElevenLabs to `eleven_multilingual_v2` so numbers,
|
|
35
|
+
dates and currency are pronounced correctly (flash/turbo don't normalize text).
|
|
36
|
+
English stays on `eleven_flash_v2_5`. Override with `voice: { ..., model: "..." }`.
|
|
33
37
|
- **Greeting**: inbound → `greeting` field in `pc.agent()`; outbound → `greeting`
|
|
34
38
|
field in `agent.dial()`. It is sugar for `call.say()` in `call.started`.
|
|
35
39
|
- **Auth**: `new Pinecall()` reads `PINECALL_API_KEY` from env and auto-connects.
|
|
@@ -5,11 +5,11 @@ description: >-
|
|
|
5
5
|
license: MIT
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# React widget
|
|
9
9
|
|
|
10
10
|
@pinecall/web React widget — VoiceWidget props, theming, useVoiceSession hook, client tools.
|
|
11
11
|
|
|
12
|
-
This skill bundles the official Pinecall documentation for
|
|
12
|
+
This skill bundles the official Pinecall documentation for **React widget**. The
|
|
13
13
|
table below indexes every page; open the `references/…` file for the full text
|
|
14
14
|
(loaded on demand). Source of truth: <https://docs.pinecall.io>.
|
|
15
15
|
|
|
@@ -31,6 +31,10 @@ table below indexes every page; open the `references/…` file for the full text
|
|
|
31
31
|
- **Turn detection & VAD are auto-derived from the STT provider — never set
|
|
32
32
|
`turnDetection` or `vad` manually.** Flux → native turns + native VAD;
|
|
33
33
|
every other STT → `smart_turn` + `silero`.
|
|
34
|
+
- **TTS model is auto-derived from `language`** — non-English agents (e.g.
|
|
35
|
+
`language: "es"`) default ElevenLabs to `eleven_multilingual_v2` so numbers,
|
|
36
|
+
dates and currency are pronounced correctly (flash/turbo don't normalize text).
|
|
37
|
+
English stays on `eleven_flash_v2_5`. Override with `voice: { ..., model: "..." }`.
|
|
34
38
|
- **Greeting**: inbound → `greeting` field in `pc.agent()`; outbound → `greeting`
|
|
35
39
|
field in `agent.dial()`. It is sugar for `call.say()` in `call.started`.
|
|
36
40
|
- **Auth**: `new Pinecall()` reads `PINECALL_API_KEY` from env and auto-connects.
|