Skip to content

Commit 009a9b4

Browse files
committed
Merge branch 'main' into feature/examples-code
2 parents 919b808 + 77e7af7 commit 009a9b4

File tree

75 files changed

+2713
-477
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+2713
-477
lines changed

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
## Description
2+
3+
<!-- describe the changes as bullet points -->
4+
-
5+
6+
## Testing Steps
7+
8+
- [ ] Run the app locally using `fern docs dev` or navigate to preview deployment
9+
- [ ] Ensure that the changed pages and code snippets work

.github/workflows/pr-review.yml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,18 @@ on:
44
pull_request:
55
types: [opened, synchronize, reopened]
66
paths:
7-
- 'fern/**/*.mdx'
8-
- 'fern/**/*.yml'
9-
- 'fern/**/*.yaml'
7+
- "fern/**/*.mdx"
8+
- "fern/**/*.yml"
9+
- "fern/**/*.yaml"
1010

1111
jobs:
1212
review:
1313
runs-on: ubuntu-latest
14+
if: false
1415
permissions:
1516
contents: read
1617
pull-requests: write
17-
18+
1819
steps:
1920
- uses: actions/checkout@v4
2021

@@ -30,7 +31,7 @@ jobs:
3031
- name: ⚙️ Setup Node.js
3132
uses: actions/setup-node@v4
3233
with:
33-
node-version: '18'
34+
node-version: "18"
3435

3536
- name: 🤖 Install Claude Code
3637
run: npm install -g @anthropic-ai/claude-code
@@ -44,7 +45,7 @@ jobs:
4445
echo "" >> review.md
4546
echo "Hey there! 👋 I've reviewed your documentation changes against our style guidelines. Here's what I found:" >> review.md
4647
echo "" >> review.md
47-
48+
4849
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
4950
echo "🔍 Reviewing $file..."
5051
@@ -137,7 +138,7 @@ jobs:
137138
echo "---" >> review.md
138139
echo "" >> review.md
139140
done
140-
141+
141142
echo "📖 [Style Guidelines](.cursorrules) | Thanks for contributing! 🙏✨" >> review.md
142143
143144
- name: 💬 Comment on PR
@@ -147,10 +148,10 @@ jobs:
147148
script: |
148149
const fs = require('fs');
149150
const review = fs.readFileSync('review.md', 'utf8');
150-
151+
151152
await github.rest.issues.createComment({
152153
owner: context.repo.owner,
153154
repo: context.repo.repo,
154155
issue_number: context.issue.number,
155156
body: review
156-
});
157+
});

fern/advanced/sip/sip-plivo.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,11 +150,11 @@ Indian phone numbers cannot be used with Plivo on Vapi due to TRAI regulations.
150150
```
151151
</Step>
152152
<Step title="Create a Vapi Assistant">
153-
1. [Follow this guide to create an assistant](https://docs.vapi.ai/quickstart/dashboard#create-an-assistant)
153+
1. [Follow this guide to create an assistant](/quickstart/phone#create-your-first-voice-assistant)
154154
2. Note your Assistant ID for making calls.
155155
</Step>
156156
<Step title="Make Outbound Calls">
157-
[**Using the API**](https://docs.vapi.ai/calls/outbound-calling)
157+
[**Using the API**](/calls/outbound-calling)
158158

159159
```bash
160160
curl --location 'https://api.vapi.ai/call/phone' \
@@ -170,7 +170,7 @@ Indian phone numbers cannot be used with Plivo on Vapi due to TRAI regulations.
170170
}'
171171
```
172172

173-
[**Using the Vapi Dashboard**](https://docs.vapi.ai/quickstart/phone/outbound)
173+
[**Using the Vapi Dashboard**](/quickstart/phone#try-outbound-calling)
174174

175175
1. Select your Assistant
176176
2. Enter the phone number of the user you want to call

fern/advanced/sip/sip-twilio.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ This guide walks you through setting up both outbound and inbound SIP trunking b
144144

145145
1. **Create and Configure a Vapi Assistant**
146146

147-
- Create an assistant following the steps at [https://docs.vapi.ai/quickstart/dashboard#create-an-assistant](https://docs.vapi.ai/quickstart/dashboard#create-an-assistant)
147+
- Create an assistant following the steps in our [Phone Quickstart](/quickstart/phone#create-your-first-voice-assistant)
148148
- In the assistant settings, link it to the phone number you created
149149

150150
Now when someone calls your Twilio number, the call will be routed to your Vapi assistant.

fern/apis/api/openapi.json

Lines changed: 103 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5470,6 +5470,26 @@
54705470
}
54715471
}
54725472
},
5473+
"NodeArtifact": {
5474+
"type": "object",
5475+
"properties": {
5476+
"nodeName": {
5477+
"type": "string",
5478+
"description": "This is the node id."
5479+
},
5480+
"messages": {
5481+
"description": "This is the messages that were spoken during the node.",
5482+
"type": "array",
5483+
"items": {
5484+
"type": "object"
5485+
}
5486+
},
5487+
"variables": {
5488+
"type": "object",
5489+
"description": "This is the object containing the variables extracted from the node."
5490+
}
5491+
}
5492+
},
54735493
"Artifact": {
54745494
"type": "object",
54755495
"properties": {
@@ -5543,6 +5563,17 @@
55435563
"pcapUrl": {
55445564
"type": "string",
55455565
"description": "This is the packet capture url for the call. This is only available for `phone` type calls where phone number's provider is `vapi` or `byo-phone-number`."
5566+
},
5567+
"nodes": {
5568+
"description": "This is the history of workflow nodes that were executed during the call.",
5569+
"type": "array",
5570+
"items": {
5571+
"$ref": "#/components/schemas/NodeArtifact"
5572+
}
5573+
},
5574+
"variables": {
5575+
"type": "object",
5576+
"description": "This is the state of variables at the end of the workflow execution."
55465577
}
55475578
}
55485579
},
@@ -8606,10 +8637,6 @@
86068637
"type": "string"
86078638
}
86088639
},
8609-
"regex": {
8610-
"type": "string",
8611-
"description": "This is a regex that will be used to validate data in question."
8612-
},
86138640
"value": {
86148641
"type": "string",
86158642
"description": "This the value that will be used in filling the property."
@@ -11923,6 +11950,14 @@
1192311950
]
1192411951
}
1192511952
},
11953+
"toolStrictCompatibilityMode": {
11954+
"type": "string",
11955+
"description": "Azure OpenAI doesn't support `maxLength` right now https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/structured-outputs?tabs=python-secure%2Cdotnet-entra-id&pivots=programming-language-csharp#unsupported-type-specific-keywords. Need to strip.\n\n- `strip-parameters-with-unsupported-validation` will strip parameters with unsupported validation.\n- `strip-unsupported-validation` will keep the parameters but strip unsupported validation.\n\n@default `strip-unsupported-validation`",
11956+
"enum": [
11957+
"strip-parameters-with-unsupported-validation",
11958+
"strip-unsupported-validation"
11959+
]
11960+
},
1192611961
"temperature": {
1192711962
"type": "number",
1192811963
"description": "This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.",
@@ -13026,7 +13061,6 @@
1302613061
}
1302713062
},
1302813063
"model": {
13029-
"description": "These are the options for the workflow's LLM.",
1303013064
"oneOf": [
1303113065
{
1303213066
"$ref": "#/components/schemas/WorkflowOpenAIModel",
@@ -13047,6 +13081,10 @@
1304713081
"items": {
1304813082
"$ref": "#/components/schemas/Edge"
1304913083
}
13084+
},
13085+
"globalPrompt": {
13086+
"type": "string",
13087+
"maxLength": 5000
1305013088
}
1305113089
},
1305213090
"required": [
@@ -20595,7 +20633,6 @@
2059520633
}
2059620634
},
2059720635
"model": {
20598-
"description": "These are the options for the workflow's LLM.",
2059920636
"oneOf": [
2060020637
{
2060120638
"$ref": "#/components/schemas/WorkflowOpenAIModel",
@@ -20616,6 +20653,10 @@
2061620653
"items": {
2061720654
"$ref": "#/components/schemas/Edge"
2061820655
}
20656+
},
20657+
"globalPrompt": {
20658+
"type": "string",
20659+
"maxLength": 5000
2061920660
}
2062020661
},
2062120662
"required": [
@@ -21056,6 +21097,7 @@
2105621097
"call.in-progress.error-vapifault-transport-never-connected",
2105721098
"call.in-progress.error-vapifault-transport-connected-but-call-not-active",
2105821099
"call.in-progress.error-vapifault-call-started-but-connection-to-transport-missing",
21100+
"call.in-progress.error-vapifault-worker-died",
2105921101
"call.in-progress.error-vapifault-openai-llm-failed",
2106021102
"call.in-progress.error-vapifault-azure-openai-llm-failed",
2106121103
"call.in-progress.error-vapifault-groq-llm-failed",
@@ -21443,7 +21485,12 @@
2144321485
"phone-call-provider-closed-websocket",
2144421486
"call.forwarding.operator-busy",
2144521487
"silence-timed-out",
21446-
"call.in-progress.error-sip-telephony-provider-failed-to-connect-call",
21488+
"call.in-progress.error-sip-inbound-call-failed-to-connect",
21489+
"call.in-progress.error-providerfault-outbound-sip-403-forbidden",
21490+
"call.in-progress.error-providerfault-outbound-sip-407-proxy-authentication-required",
21491+
"call.in-progress.error-providerfault-outbound-sip-503-service-unavailable",
21492+
"call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable",
21493+
"call.in-progress.error-sip-outbound-call-failed-to-connect",
2144721494
"call.ringing.hook-executed-say",
2144821495
"call.ringing.hook-executed-transfer",
2144921496
"twilio-failed-to-connect-call",
@@ -22923,12 +22970,19 @@
2292322970
"maxLength": 40
2292422971
},
2292522972
"status": {
22973+
"type": "string",
2292622974
"description": "This is the current status of the session. Can be either 'active' or 'completed'.",
2292722975
"enum": [
2292822976
"active",
2292922977
"completed"
22930-
],
22931-
"type": "string"
22978+
]
22979+
},
22980+
"expirationSeconds": {
22981+
"type": "number",
22982+
"description": "Session expiration time in seconds. Defaults to 24 hours (86400 seconds) if not set.",
22983+
"minimum": 60,
22984+
"maximum": 2592000,
22985+
"example": 86400
2293222986
},
2293322987
"assistantId": {
2293422988
"type": "string",
@@ -23007,12 +23061,19 @@
2300723061
"maxLength": 40
2300823062
},
2300923063
"status": {
23064+
"type": "string",
2301023065
"description": "This is the current status of the session. Can be either 'active' or 'completed'.",
2301123066
"enum": [
2301223067
"active",
2301323068
"completed"
23014-
],
23015-
"type": "string"
23069+
]
23070+
},
23071+
"expirationSeconds": {
23072+
"type": "number",
23073+
"description": "Session expiration time in seconds. Defaults to 24 hours (86400 seconds) if not set.",
23074+
"minimum": 60,
23075+
"maximum": 2592000,
23076+
"example": 86400
2301623077
},
2301723078
"assistantId": {
2301823079
"type": "string",
@@ -23085,12 +23146,19 @@
2308523146
"maxLength": 40
2308623147
},
2308723148
"status": {
23149+
"type": "string",
2308823150
"description": "This is the new status for the session.",
2308923151
"enum": [
2309023152
"active",
2309123153
"completed"
23092-
],
23093-
"type": "string"
23154+
]
23155+
},
23156+
"expirationSeconds": {
23157+
"type": "number",
23158+
"description": "Session expiration time in seconds. Defaults to 24 hours (86400 seconds) if not set.",
23159+
"minimum": 60,
23160+
"maximum": 2592000,
23161+
"example": 86400
2309423162
},
2309523163
"messages": {
2309623164
"type": "array",
@@ -29577,7 +29645,6 @@
2957729645
}
2957829646
},
2957929647
"model": {
29580-
"description": "These are the options for the workflow's LLM.",
2958129648
"oneOf": [
2958229649
{
2958329650
"$ref": "#/components/schemas/WorkflowOpenAIModel",
@@ -29612,6 +29679,10 @@
2961229679
"items": {
2961329680
"$ref": "#/components/schemas/Edge"
2961429681
}
29682+
},
29683+
"globalPrompt": {
29684+
"type": "string",
29685+
"maxLength": 5000
2961529686
}
2961629687
},
2961729688
"required": [
@@ -29643,7 +29714,6 @@
2964329714
}
2964429715
},
2964529716
"model": {
29646-
"description": "These are the options for the workflow's LLM.",
2964729717
"oneOf": [
2964829718
{
2964929719
"$ref": "#/components/schemas/WorkflowOpenAIModel",
@@ -29664,6 +29734,10 @@
2966429734
"items": {
2966529735
"$ref": "#/components/schemas/Edge"
2966629736
}
29737+
},
29738+
"globalPrompt": {
29739+
"type": "string",
29740+
"maxLength": 5000
2966729741
}
2966829742
}
2966929743
},
@@ -38088,6 +38162,7 @@
3808838162
"call.in-progress.error-vapifault-transport-never-connected",
3808938163
"call.in-progress.error-vapifault-transport-connected-but-call-not-active",
3809038164
"call.in-progress.error-vapifault-call-started-but-connection-to-transport-missing",
38165+
"call.in-progress.error-vapifault-worker-died",
3809138166
"call.in-progress.error-vapifault-openai-llm-failed",
3809238167
"call.in-progress.error-vapifault-azure-openai-llm-failed",
3809338168
"call.in-progress.error-vapifault-groq-llm-failed",
@@ -38475,7 +38550,12 @@
3847538550
"phone-call-provider-closed-websocket",
3847638551
"call.forwarding.operator-busy",
3847738552
"silence-timed-out",
38478-
"call.in-progress.error-sip-telephony-provider-failed-to-connect-call",
38553+
"call.in-progress.error-sip-inbound-call-failed-to-connect",
38554+
"call.in-progress.error-providerfault-outbound-sip-403-forbidden",
38555+
"call.in-progress.error-providerfault-outbound-sip-407-proxy-authentication-required",
38556+
"call.in-progress.error-providerfault-outbound-sip-503-service-unavailable",
38557+
"call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable",
38558+
"call.in-progress.error-sip-outbound-call-failed-to-connect",
3847938559
"call.ringing.hook-executed-say",
3848038560
"call.ringing.hook-executed-transfer",
3848138561
"twilio-failed-to-connect-call",
@@ -39199,6 +39279,7 @@
3919939279
"call.in-progress.error-vapifault-transport-never-connected",
3920039280
"call.in-progress.error-vapifault-transport-connected-but-call-not-active",
3920139281
"call.in-progress.error-vapifault-call-started-but-connection-to-transport-missing",
39282+
"call.in-progress.error-vapifault-worker-died",
3920239283
"call.in-progress.error-vapifault-openai-llm-failed",
3920339284
"call.in-progress.error-vapifault-azure-openai-llm-failed",
3920439285
"call.in-progress.error-vapifault-groq-llm-failed",
@@ -39586,7 +39667,12 @@
3958639667
"phone-call-provider-closed-websocket",
3958739668
"call.forwarding.operator-busy",
3958839669
"silence-timed-out",
39589-
"call.in-progress.error-sip-telephony-provider-failed-to-connect-call",
39670+
"call.in-progress.error-sip-inbound-call-failed-to-connect",
39671+
"call.in-progress.error-providerfault-outbound-sip-403-forbidden",
39672+
"call.in-progress.error-providerfault-outbound-sip-407-proxy-authentication-required",
39673+
"call.in-progress.error-providerfault-outbound-sip-503-service-unavailable",
39674+
"call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable",
39675+
"call.in-progress.error-sip-outbound-call-failed-to-connect",
3959039676
"call.ringing.hook-executed-say",
3959139677
"call.ringing.hook-executed-transfer",
3959239678
"twilio-failed-to-connect-call",

0 commit comments

Comments
 (0)