Compare commits

...

27 Commits

Author SHA1 Message Date
Dave Horton
4ea9cda0f8 0.0.113 2025-08-11 20:44:53 -04:00
Dave Horton
a0b9f963c2 new deepgram option entity_prompt (#105) 2025-08-11 20:44:23 -04:00
Dave Horton
841a471faa 0.0.112 2025-08-05 10:18:46 -04:00
Dave Horton
44112f67b3 Wip (#104)
* wip

* wip
2025-08-05 10:18:14 -04:00
Dave Horton
1f7c98c0ce 0.0.111 2025-07-14 09:29:48 -04:00
Hoan Luu Huu
276a55e672 support Deepgram river options (#102) 2025-07-14 09:29:21 -04:00
Dave Horton
840db61042 0.0.110 2025-07-11 12:50:08 -04:00
Sam Machin
85e1b64ee4 add forwardPAI to dial (#103) 2025-07-11 12:49:37 -04:00
Dave Horton
8ed54e2d51 0.0.109 2025-07-11 10:20:35 -04:00
Hoan Luu Huu
c24fb7996c support enable stt latency calculation (#99)
* support enable stt latency calculation

* fixed review comment
2025-07-11 09:57:03 -04:00
Dave Horton
6c24ad1145 0.0.108 2025-07-09 10:23:15 -04:00
Sam Machin
af3955cb35 add alert (#101) 2025-07-09 10:22:54 -04:00
Hoan Luu Huu
1ee29749c3 support mod_vad_silero (#100)
* support mod_vad_silero

* wip

* wip
2025-07-06 16:02:17 -04:00
Dave Horton
dea57e0910 0.0.107 2025-07-02 20:36:01 -04:00
Hoan Luu Huu
f444a57bcd consistent assemblyAiOptions name (#98) 2025-07-02 20:35:08 -04:00
Dave Horton
a9a2339821 0.0.106 2025-06-29 08:04:27 -04:00
Hoan Luu Huu
95f3a06625 support assembly ai v3 (#97)
* support assembly ai v3

* wip
2025-06-29 08:02:46 -04:00
Dave Horton
985476e8b1 0.0.105 2025-06-10 15:25:01 +02:00
Hoan Luu Huu
1782db362e support autoStreamTts for enabling say.stream = true globaly (#96) 2025-06-10 15:24:14 +02:00
Dave Horton
e654ee9e10 0.0.104 2025-05-13 07:49:29 -04:00
Hoan Luu Huu
38d1d04c4a support whisper say verb instructions (#95) 2025-05-13 07:49:16 -04:00
Dave Horton
5cbd3886d1 0.0.103 2025-04-20 09:34:50 -04:00
Dave Horton
de8dfc9202 add mcpServers to llm (#89)
* add mcpServers to llm

* add testcase

---------

Co-authored-by: Quan HL <quan.luuhoang8@gmail.com>
2025-04-20 09:34:20 -04:00
Dave Horton
637431468d 0.0.102 2025-04-11 07:37:31 -04:00
Sam Machin
4a817c97b2 Update specs.json (#93)
model is not required for ALL llm providers
2025-04-11 07:19:02 -04:00
Dave Horton
ce44bf41d4 0.0.101 2025-03-26 16:16:48 -04:00
Dave Horton
ab84583eff add semantic_vad for openai stt (#92) 2025-03-26 16:16:20 -04:00
4 changed files with 126 additions and 14 deletions

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "@jambonz/verb-specifications",
"version": "0.0.100",
"version": "0.0.113",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@jambonz/verb-specifications",
"version": "0.0.100",
"version": "0.0.113",
"license": "MIT",
"dependencies": {
"debug": "^4.3.4",

View File

@@ -1,6 +1,6 @@
{
"name": "@jambonz/verb-specifications",
"version": "0.0.100",
"version": "0.0.113",
"description": "Jambonz Verb Specification Utilities",
"main": "index.js",
"scripts": {

View File

@@ -1,4 +1,28 @@
{
"pipeline": {
"properties": {
"id": "string",
"stt": "#recognizer",
"tts": "#synthesizer",
"vad": "#vad",
"llm": "#llm",
"preflightLlm": "boolean",
"actionHook": "object|string"
},
"required": [
"stt",
"tts"
]
},
"alert" : {
"properties": {
"id": "string",
"message": "string"
},
"required": [
"message"
]
},
"answer": {
"properties": {
"id": "string"
@@ -57,6 +81,7 @@
"amd": "#amd",
"fillerNoise": "#fillerNoise",
"notifyEvents": "boolean",
"notifySttLatency": "boolean",
"reset": "string|array",
"onHoldMusic": "string",
"actionHookDelayAction": "#actionHookDelayAction",
@@ -64,7 +89,8 @@
"boostAudioSignal": "number|string",
"vad":"#vad",
"referHook": "object|string",
"earlyMedia": "boolean"
"earlyMedia": "boolean",
"autoStreamTts": "boolean"
},
"required": []
},
@@ -213,6 +239,7 @@
"properties": {
"id": "string",
"text": "string|array",
"instructions": "string",
"stream": "boolean",
"loop": "number|string",
"synthesizer": "#synthesizer",
@@ -298,7 +325,8 @@
"transcribe": "#transcribe",
"amd": "#amd",
"dub": ["#dub"],
"tag": "object"
"tag": "object",
"forwardPAI": "boolean"
},
"required": [
"target"
@@ -443,6 +471,7 @@
"model": "string",
"auth": "object",
"connectOptions": "object",
"mcpServers": ["#mcpServer"],
"actionHook": "object|string",
"eventHook": "object|string",
"toolHook": "object|string",
@@ -451,11 +480,20 @@
},
"required": [
"vendor",
"model",
"auth",
"llmOptions"
]
},
"mcpServer": {
"properties": {
"url": "string",
"auth": "object",
"roots": ["#root"]
},
"required": [
"url"
]
},
"message": {
"properties": {
"id": "string",
@@ -577,7 +615,6 @@
"channel": "number"
},
"required": [
"transcriptionHook"
]
},
"target": {
@@ -891,7 +928,12 @@
"shortUtterance": "boolean",
"vadTurnoff": "number",
"tag": "string",
"fillerWords" : "boolean"
"fillerWords" : "boolean",
"preflightThreshold": "number",
"eotThreshold": "number",
"eotTimeoutMs": "number",
"mipOptOut": "boolean",
"entityPrompt": "string"
}
},
"sonioxOptions": {
@@ -955,7 +997,17 @@
"type": "string",
"enum": [
"none",
"server_vad"
"server_vad",
"semantic_vad"
]
},
"eagerness": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"auto"
]
},
"threshold": "number",
@@ -1115,7 +1167,18 @@
},
"assemblyAiOptions": {
"properties": {
"apiKey": "string"
"apiKey": "string",
"serviceVersion": {
"type": "string",
"enum": [
"v2",
"v3"
]
},
"formatTurns": "boolean",
"endOfTurnConfidenceThreshold": "number",
"minEndOfTurnSilenceWhenConfident": "number",
"maxTurnSilence": "number"
}
},
"resource": {
@@ -1196,10 +1259,18 @@
"voiceMs": "number",
"silenceMs": "number",
"strategy": "string",
"mode": "number"
"mode": "number",
"vendor": {
"type": "string",
"enum": [
"webrtc",
"silero"
]
},
"threshold": "number",
"speechPadMs": "number"
},
"required": [
"enable"
]
},
"amd": {

View File

@@ -72,12 +72,18 @@ test("validate correct verbs", async (t) => {
},
{
"verb": "config",
"notifySttLatency": true,
"recognizer": {
"vendor": "google",
"language": "de-DE",
"label": "label1",
"assemblyAiOptions": {
"apiKey": "apikey"
"apiKey": "apikey",
"serviceVersion": "v3",
"formatTurns": true,
"endOfTurnConfidenceThreshold": 0.5,
"minEndOfTurnSilenceWhenConfident": 500,
"maxTurnSilence": 2000
}
}
},
@@ -207,6 +213,10 @@ test("validate correct verbs", async (t) => {
"deepgramOptions": {
"endpointing": 500,
"noDelay": true,
preflightThreshold: 1000,
eotThreshold: 500,
eotTimeoutMs: 5000,
mipOptOut: true
}
},
"say": {
@@ -221,6 +231,10 @@ test("validate correct verbs", async (t) => {
"fallbackVoice": "voice"
}
},
"say": {
"text": "To speak to Sales press 1 or say Sales. To speak to customer support press 2 or say Support",
"instructions": "Voice: High-energy, upbeat, and encouraging, projecting enthusiasm and motivation."
},
"say": {
"text": "To speak to Sales press 1 or say Sales. To speak to customer support press 2 or say Support",
"synthesizer": {
@@ -374,6 +388,10 @@ test("validate correct verbs", async (t) => {
}
}
},
{
"verb": "config",
"autoStreamTts": true
},
{
"verb": "config",
"vad": {
@@ -381,7 +399,10 @@ test("validate correct verbs", async (t) => {
"voiceMs": 250,
"silenceMs": 150,
"strategy": "one-shot",
"mode": 2
"mode": 2,
"vendor": "webrtc",
"threshold": 0.5,
"speechPadMs": 1000
}
},
{
@@ -522,6 +543,26 @@ test("validate correct verbs", async (t) => {
},
"dual_streams": true,
"timeLimit" : 10
},
{
"verb": "llm",
"vendor": 'ultravox',
"model": 'fixie-ai/ultravox',
"auth": {
"apiKey": "sk-1234567890abcdefg"
},
"llmOptions": {
"firstSpeaker": 'FIRST_SPEAKER_AGENT',
},
"mcpServers": [
{
"url": 'https://mcp.example.com',
"auth": {
"username": 'username',
"password": 'password'
}
}
]
}
];
try {