@guidify-ai/vapi-studio 0.1.0 → 0.1.2
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 +26 -4
- package/agent/CLAUDE.md +2 -0
- package/dist/supervisor/supervisor-route.d.ts.map +1 -1
- package/dist/supervisor/supervisor-route.js +12 -1
- package/dist/supervisor/supervisor-route.js.map +1 -1
- package/dist/supervisor/supervisor-special-turns.d.ts.map +1 -1
- package/dist/supervisor/supervisor-special-turns.js +6 -2
- package/dist/supervisor/supervisor-special-turns.js.map +1 -1
- package/dist/workflow/workflow-handoff.service.d.ts.map +1 -1
- package/dist/workflow/workflow-handoff.service.js +2 -0
- package/dist/workflow/workflow-handoff.service.js.map +1 -1
- package/docs/README.md +7 -1
- package/docs/ards/ARD-0001-host-scoped-vapi-ingress.md +45 -0
- package/docs/ards/README.md +37 -0
- package/docs/building-apps/creating-an-app.md +12 -9
- package/docs/building-apps/example-apps.md +1 -1
- package/docs/building-apps/overview.md +1 -1
- package/docs/getting-started/installation.md +2 -2
- package/docs/getting-started/introduction.md +1 -1
- package/docs/getting-started/quick-start.md +41 -6
- package/docs/getting-started/vapi-account.md +40 -0
- package/docs/guide/module-setup.md +1 -1
- package/docs/guides/agents.md +1 -1
- package/docs/guides/documentation.md +3 -0
- package/docs/guides/speckit.md +30 -14
- package/docs/reference/environment-variables.md +5 -1
- package/docs/reference/runtime-api.md +1 -1
- package/package.json +42 -24
package/README.md
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
**[@guidify-ai/vapi-studio](https://www.npmjs.com/package/@guidify-ai/vapi-studio)** — a **code-driven toolkit for [Vapi](https://vapi.ai)**.
|
|
4
4
|
|
|
5
|
-
**Website:** [vapi-studio.guidify.ca](https://vapi-studio.guidify.ca)
|
|
5
|
+
**Website:** [vapi-studio.guidify.ca](https://vapi-studio.guidify.ca) — *coming soon*
|
|
6
|
+
|
|
7
|
+
**Need help shipping?** The **official Guidify team** builds with Vapi Studio — we can forward engineers onto your project at competitive rates, and cover professional services of any kind you need (design, integration, production hardening). See [Need the official team?](#need-the-official-team) below.
|
|
6
8
|
|
|
7
9
|
This repo is the **framework** (npm package). Your bot is a separate NestJS app — start from the public starter below.
|
|
8
10
|
|
|
@@ -10,13 +12,18 @@ This repo is the **framework** (npm package). Your bot is a separate NestJS app
|
|
|
10
12
|
|
|
11
13
|
## Create a new project
|
|
12
14
|
|
|
15
|
+
`yarn start` alone is not a full setup — fill credentials for **your** path first.
|
|
16
|
+
Full checklist: [Quick start](./docs/getting-started/quick-start.md).
|
|
17
|
+
|
|
13
18
|
```bash
|
|
14
19
|
git clone git@github.com:guidify-ai/vapi-studio-project.git my-bot
|
|
15
20
|
cd my-bot
|
|
16
21
|
cp .env.example .env
|
|
17
|
-
#
|
|
22
|
+
# Required for live voice: VAPI_API_KEY, POC_ASSISTANT_ID, VAPI_PHONE_NUMBER_ID
|
|
23
|
+
# Optional: TWILIO_* (larger BYOK / live SMS — skip for Vapi-phone starters), OPENAI_API_KEY|… (leave MockBrain otherwise)
|
|
24
|
+
# Always: PROJECT_NAME=… (PROJECT_SLUG optional)
|
|
18
25
|
yarn install
|
|
19
|
-
yarn start # Docker + Postgres + ngrok
|
|
26
|
+
yarn start # Docker + Postgres + ngrok → prints URLs (fails closed without Vapi trio)
|
|
20
27
|
```
|
|
21
28
|
|
|
22
29
|
Wire Vapi to the printed URLs:
|
|
@@ -30,7 +37,7 @@ Wire Vapi to the printed URLs:
|
|
|
30
37
|
- Walkthrough: [Creating an app](./docs/building-apps/creating-an-app.md)
|
|
31
38
|
- Quick start: [docs/getting-started/quick-start.md](./docs/getting-started/quick-start.md)
|
|
32
39
|
|
|
33
|
-
**Requirements:** Node 22
|
|
40
|
+
**Requirements:** Node 22.23.4+ or 24.22.1+ (October 2026 security release), Yarn or npm, Docker Compose, [ngrok](https://ngrok.com/download), a **Vapi** account for live calls ([Core recommended](./docs/getting-started/vapi-account.md); free tier OK for a slow start). Twilio and an LLM key only when you leave dry-run SMS / MockBrain.
|
|
34
41
|
|
|
35
42
|
**Showcase (not a blank starter):** [vapi-studio-landing-page-sample-model](https://github.com/guidify-ai/vapi-studio-landing-page-sample-model) — Planner LLM demo.
|
|
36
43
|
|
|
@@ -111,6 +118,8 @@ cd vapi-studio
|
|
|
111
118
|
yarn install && yarn build && yarn test
|
|
112
119
|
```
|
|
113
120
|
|
|
121
|
+
See **[CONTRIBUTING.md](./CONTRIBUTING.md)** — architectural PRs require an **ARD** under `docs/ards/` (SpecKit under `.specify/`).
|
|
122
|
+
|
|
114
123
|
---
|
|
115
124
|
|
|
116
125
|
## Documentation
|
|
@@ -122,8 +131,21 @@ yarn install && yarn build && yarn test
|
|
|
122
131
|
| Doc site index | [`docs/README.md`](./docs/README.md) |
|
|
123
132
|
| Runtime handbook | [`docs/reference/runtime-api.md`](./docs/reference/runtime-api.md) |
|
|
124
133
|
| Best practices | [`docs/best-practices/`](./docs/best-practices/) |
|
|
134
|
+
| ARDs | [`docs/ards/`](./docs/ards/) |
|
|
135
|
+
| SpecKit | [`.specify/`](./.specify/) · [`docs/guides/speckit.md`](./docs/guides/speckit.md) |
|
|
125
136
|
| Env presets | [`.env.example`](./.env.example) |
|
|
126
137
|
|
|
138
|
+
## Need the official team?
|
|
139
|
+
|
|
140
|
+
Open source and self-hosted is the default. When you want a partner on the build:
|
|
141
|
+
|
|
142
|
+
- **Official Guidify engineers** — the team behind Vapi Studio, not a generic agency bench
|
|
143
|
+
- **Forwarded onto your solution** — dedicated help to design, implement, and ship your voice agent
|
|
144
|
+
- **Competitive rates** — strong value for production-grade delivery
|
|
145
|
+
- **Professional services of any kind** — conversation design, Nest/Vapi integration, Twilio/BYOK, CRM hooks, hardening, and more
|
|
146
|
+
|
|
147
|
+
Website (coming soon): [vapi-studio.guidify.ca](https://vapi-studio.guidify.ca) · contact via [Guidify](https://guidify.ca) / open a GitHub Discussion on this repo.
|
|
148
|
+
|
|
127
149
|
## License
|
|
128
150
|
|
|
129
151
|
MIT — see [LICENSE](./LICENSE).
|
package/agent/CLAUDE.md
CHANGED
|
@@ -13,3 +13,5 @@ Canonical agent handbook (shared with Cursor / other agents):
|
|
|
13
13
|
- Cursor rule templates (copied into **apps** on postinstall): `agent/cursor/`.
|
|
14
14
|
- Claude rule templates (copied into **apps** on postinstall): `agent/claude/rules/`.
|
|
15
15
|
- SpecKit config / templates: `.specify/` (see `docs/guides/speckit.md`).
|
|
16
|
+
- Architecture decisions: `docs/ards/` (required for architectural PRs — `CONTRIBUTING.md`).
|
|
17
|
+
- Constitution (framework only): `.specify/memory/constitution.md`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor-route.d.ts","sourceRoot":"","sources":["../../src/supervisor/supervisor-route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAG5E,OAAO,EAAE,0BAA0B,EAAE,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAC;AAKnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAI3D,wBAAsB,eAAe,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE;IACnE,OAAO,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,0BAA0B,CAAC;IACnC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC,SAAS,EAAE,IAAI,CAAC;CACjB,GAAG,OAAO,CAAC;IACV,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,GAAG,IAAI,CAAC,CAAC;AACV,wBAAsB,eAAe,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE;IACnE,OAAO,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,0BAA0B,CAAC;IACnC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,KAAK,CAAC;CACnB,GAAG,OAAO,CAAC;IACV,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"supervisor-route.d.ts","sourceRoot":"","sources":["../../src/supervisor/supervisor-route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAG5E,OAAO,EAAE,0BAA0B,EAAE,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAC;AAKnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAI3D,wBAAsB,eAAe,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE;IACnE,OAAO,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,0BAA0B,CAAC;IACnC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC,SAAS,EAAE,IAAI,CAAC;CACjB,GAAG,OAAO,CAAC;IACV,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,GAAG,IAAI,CAAC,CAAC;AACV,wBAAsB,eAAe,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE;IACnE,OAAO,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,0BAA0B,CAAC;IACnC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,KAAK,CAAC;CACnB,GAAG,OAAO,CAAC;IACV,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,CAAC,CAAC;AAyTH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,EACxD,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,MAAM,CAmBR;AAED,mEAAmE;AAInE,mEAAmE;AACnE,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE;IACrE,OAAO,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmChB"}
|
|
@@ -17,7 +17,18 @@ async function routeIntentions(input) {
|
|
|
17
17
|
for (const scored of ranked) {
|
|
18
18
|
const intentionName = scored.name;
|
|
19
19
|
const nodeCandidates = this.flowLoader.nodesForIntention(intentionName);
|
|
20
|
-
|
|
20
|
+
// Prefer the node we're already on when an intention is listed on multiple
|
|
21
|
+
// nodes (alphabetical id order otherwise steals the turn — e.g. contactMethod
|
|
22
|
+
// before salesConsent for sales_consent_yes).
|
|
23
|
+
const ordered = [...nodeCandidates].sort((a, b) => {
|
|
24
|
+
const cur = runtime.currentNodeId;
|
|
25
|
+
if (cur && a.id === cur && b.id !== cur)
|
|
26
|
+
return -1;
|
|
27
|
+
if (cur && b.id === cur && a.id !== cur)
|
|
28
|
+
return 1;
|
|
29
|
+
return 0;
|
|
30
|
+
});
|
|
31
|
+
for (const candidate of ordered) {
|
|
21
32
|
const node = this.nodes.get(candidate.class);
|
|
22
33
|
if (!node) {
|
|
23
34
|
rejected.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor-route.js","sourceRoot":"","sources":["../../src/supervisor/supervisor-route.ts"],"names":[],"mappings":";;AAoDA,
|
|
1
|
+
{"version":3,"file":"supervisor-route.js","sourceRoot":"","sources":["../../src/supervisor/supervisor-route.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor-special-turns.d.ts","sourceRoot":"","sources":["../../src/supervisor/supervisor-special-turns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAOtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE;IAC1E,OAAO,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,GAAG,OAAO,CAAC,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"supervisor-special-turns.d.ts","sourceRoot":"","sources":["../../src/supervisor/supervisor-special-turns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAOtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE;IAC1E,OAAO,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAkG/B;AAED;;;GAGG;AAIH;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE;IACtE,OAAO,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAwG/B;AAID;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE;IACzE,OAAO,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAqG/B"}
|
|
@@ -26,6 +26,10 @@ async function executeModuleEntryTurn(input) {
|
|
|
26
26
|
throw new Error(`Module entry class not registered: ${candidate.class}`);
|
|
27
27
|
}
|
|
28
28
|
const output = new conversation_output_1.BufferedConversationOutput(onSay);
|
|
29
|
+
// Never use intentions[0] here — that is often an *answer* intention
|
|
30
|
+
// (e.g. explorer_consent_yes, contact_phone). Same-flow continueTo would
|
|
31
|
+
// then auto-grant consent / fail phone parse. Entry speak is a fresh ask.
|
|
32
|
+
const entryIntention = 'studio.moduleEntry';
|
|
29
33
|
const ctx = (0, agent_node_1.nodeContextFromRuntime)({
|
|
30
34
|
runtime,
|
|
31
35
|
userText,
|
|
@@ -34,7 +38,7 @@ async function executeModuleEntryTurn(input) {
|
|
|
34
38
|
brain: this.brain,
|
|
35
39
|
integrations: this.integrations,
|
|
36
40
|
forms: this.forms,
|
|
37
|
-
intention:
|
|
41
|
+
intention: entryIntention,
|
|
38
42
|
});
|
|
39
43
|
this.events.log('info', 'MODULE_ENTRY_TURN', {
|
|
40
44
|
conversationId: runtime.conversationId,
|
|
@@ -63,7 +67,7 @@ async function executeModuleEntryTurn(input) {
|
|
|
63
67
|
output,
|
|
64
68
|
node,
|
|
65
69
|
candidate,
|
|
66
|
-
intentionName:
|
|
70
|
+
intentionName: entryIntention,
|
|
67
71
|
ctx,
|
|
68
72
|
restarts: 0,
|
|
69
73
|
forceHop: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor-special-turns.js","sourceRoot":"","sources":["../../src/supervisor/supervisor-special-turns.ts"],"names":[],"mappings":";;AAeA,
|
|
1
|
+
{"version":3,"file":"supervisor-special-turns.js","sourceRoot":"","sources":["../../src/supervisor/supervisor-special-turns.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-handoff.service.d.ts","sourceRoot":"","sources":["../../src/workflow/workflow-handoff.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAE9F;;;GAGG;AACH,qBACa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAHT,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,4BAA4B;IAGnD,SAAS,IAAI,MAAM;IAI1B;;;OAGG;IACU,aAAa,CACxB,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,YAAY,EAAE,CAAC;YAsEZ,eAAe;
|
|
1
|
+
{"version":3,"file":"workflow-handoff.service.d.ts","sourceRoot":"","sources":["../../src/workflow/workflow-handoff.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAE9F;;;GAGG;AACH,qBACa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAHT,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,4BAA4B;IAGnD,SAAS,IAAI,MAAM;IAI1B;;;OAGG;IACU,aAAa,CACxB,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,YAAY,EAAE,CAAC;YAsEZ,eAAe;IAoC7B,qDAAqD;IAC9C,mBAAmB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAWjE,iEAAiE;IAC1D,gBAAgB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;CAoB/D"}
|
|
@@ -107,6 +107,8 @@ let WorkflowHandoffService = class WorkflowHandoffService {
|
|
|
107
107
|
const fromNode = runtime.currentNodeId;
|
|
108
108
|
runtime.enterNormalNode(nodeId);
|
|
109
109
|
runtime.listenExpectation = null;
|
|
110
|
+
// Same-flow continueTo: destination is spoken via module entry turn, but
|
|
111
|
+
// that turn must NOT inherit answer intentions (see executeModuleEntryTurn).
|
|
110
112
|
runtime.metadata.moduleNeedsEntrySpeak = true;
|
|
111
113
|
runtime.metadata.lastContinueTo = {
|
|
112
114
|
from: fromNode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-handoff.service.js","sourceRoot":"","sources":["../../src/workflow/workflow-handoff.service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"workflow-handoff.service.js","sourceRoot":"","sources":["../../src/workflow/workflow-handoff.service.ts"],"names":[],"mappings":"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"}
|
package/docs/README.md
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
**New bot?** Clone **[vapi-studio-project](https://github.com/guidify-ai/vapi-studio-project)** — do not scaffold from this framework repo.
|
|
8
8
|
|
|
9
|
+
**Official team:** Guidify can forward engineers onto your solution (competitive rates; full professional services) — [README](../README.md#need-the-official-team).
|
|
10
|
+
|
|
9
11
|
---
|
|
10
12
|
|
|
11
13
|
## Getting started
|
|
@@ -14,7 +16,8 @@
|
|
|
14
16
|
| --- | --- |
|
|
15
17
|
| [Introduction](./getting-started/introduction.md) | What Vapi Studio is |
|
|
16
18
|
| [Installation](./getting-started/installation.md) | Clone starter → `yarn install` |
|
|
17
|
-
| [Quick start](./getting-started/quick-start.md) | Clone,
|
|
19
|
+
| [Quick start](./getting-started/quick-start.md) | Clone, credentials, `yarn start`, wire Vapi |
|
|
20
|
+
| [Vapi account & plans](./getting-started/vapi-account.md) | Free vs Core; Vapi phones vs Twilio BYOK |
|
|
18
21
|
|
|
19
22
|
## Guide
|
|
20
23
|
|
|
@@ -47,6 +50,8 @@
|
|
|
47
50
|
| --- | --- |
|
|
48
51
|
| [Documentation layers](./best-practices/documentation-layers.md) | What to update when |
|
|
49
52
|
| [Agents & Cursor](./guides/agents.md) | AGENTS.md, rules |
|
|
53
|
+
| [SpecKit](./guides/speckit.md) | Framework specify → plan → tasks |
|
|
54
|
+
| [ARDs](./ards/README.md) | Architecture decision records (PR requirement) |
|
|
50
55
|
| [Node conventions](./guides/node-conventions.md) | Naming, lifecycle, Brain SLOs |
|
|
51
56
|
| [Extending events](./guides/extending-events.md) | Attach logic to the event bus (Nest + Redis samples) |
|
|
52
57
|
| [Event samples](./samples/events/) | Copy-paste `onStudioEvent` / Nest listener examples |
|
|
@@ -63,6 +68,7 @@
|
|
|
63
68
|
| [Runtime API](./reference/runtime-api.md) | Shipped contracts |
|
|
64
69
|
| [Security](./reference/security.md) | Secrets policy |
|
|
65
70
|
| [Testing](./reference/testing.md) | `yarn test` |
|
|
71
|
+
| [Contributing](../CONTRIBUTING.md) | PR checklist + ARD rule |
|
|
66
72
|
|
|
67
73
|
## Handbook
|
|
68
74
|
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# ARD-0001: Host-scoped Vapi ingress
|
|
2
|
+
|
|
3
|
+
- **Status:** Accepted
|
|
4
|
+
- **Date:** 2026-09-25
|
|
5
|
+
- **Tags:** framework | adapter | docs
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
Apps need a stable way to wire Vapi Custom LLM + webhook URLs. A multi-tenant
|
|
10
|
+
path prefix (`/{projectUuid}/vapi/...`) is useful behind a shared reverse proxy,
|
|
11
|
+
but it is not the default contract of a single self-hosted Nest app.
|
|
12
|
+
|
|
13
|
+
## Decision
|
|
14
|
+
|
|
15
|
+
The framework and public starter document **host-scoped** routes only:
|
|
16
|
+
|
|
17
|
+
| Setting | URL |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| Webhook | `{PUBLIC_BASE_URL}/vapi/webhook` |
|
|
20
|
+
| Custom LLM | `{PUBLIC_BASE_URL}/vapi/chat/completions` |
|
|
21
|
+
|
|
22
|
+
Internal `projects.id` / UUID rows are for DB FKs and forensics — **not** required
|
|
23
|
+
in Vapi dashboard URLs. Optional UUID prefixes are an operator / proxy concern
|
|
24
|
+
outside the default starter.
|
|
25
|
+
|
|
26
|
+
## Consequences
|
|
27
|
+
|
|
28
|
+
- **Positive:** One app = one `PUBLIC_BASE_URL`; docs stay simple; matches npm README.
|
|
29
|
+
- **Negative:** Multi-app single-tunnel setups must add their own router (e.g. strip
|
|
30
|
+
or prefix paths) without changing Studio’s app-owned controllers.
|
|
31
|
+
- **Follow-ups:** Keep SMS form URL helpers able to honor `PROJECT_UUID` when set,
|
|
32
|
+
without making UUID paths mandatory in getting-started docs.
|
|
33
|
+
|
|
34
|
+
## Alternatives considered
|
|
35
|
+
|
|
36
|
+
| Option | Why not |
|
|
37
|
+
| --- | --- |
|
|
38
|
+
| Always require `/{uuid}/vapi/...` | Couples every consumer to Guidify-style multi-app tunneling |
|
|
39
|
+
| Route by Vapi `assistantId` inside Studio | Assistant IDs are forensics, not project selection |
|
|
40
|
+
|
|
41
|
+
## References
|
|
42
|
+
|
|
43
|
+
- `docs/guide/vapi-adapter.md`
|
|
44
|
+
- `docs/getting-started/quick-start.md`
|
|
45
|
+
- `README.md` (Wire Vapi table)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Architecture Decision Records (ARDs)
|
|
2
|
+
|
|
3
|
+
Framework-only decisions for `@guidify-ai/vapi-studio`.
|
|
4
|
+
|
|
5
|
+
Consumer bots do **not** put product strategy here — only changes that affect
|
|
6
|
+
the published package contract, runtime, adapters, or docs structure.
|
|
7
|
+
|
|
8
|
+
## When an ARD is required
|
|
9
|
+
|
|
10
|
+
Open or update an ARD for PRs that:
|
|
11
|
+
|
|
12
|
+
- Change public TypeScript exports / Nest module wiring
|
|
13
|
+
- Alter Supervisor / Brain / listen / portal behavior
|
|
14
|
+
- Change persistence schema or Conversation lifecycle
|
|
15
|
+
- Add or reshape provider adapters (Vapi, forms dispose, …)
|
|
16
|
+
- Change documented contracts in `docs/reference/`
|
|
17
|
+
|
|
18
|
+
**Not required** for typo fixes, test-only cleanups, or doc wording that does
|
|
19
|
+
not change behavior — unless reviewers ask for one.
|
|
20
|
+
|
|
21
|
+
## Process
|
|
22
|
+
|
|
23
|
+
1. Copy [`.specify/templates/ard-template.md`](../../.specify/templates/ard-template.md)
|
|
24
|
+
to `docs/ards/ARD-XXXX-<slug>.md` (next free number).
|
|
25
|
+
2. Fill **Context / Decision / Consequences** before or with the implementation PR.
|
|
26
|
+
3. Reference the ARD in the PR description.
|
|
27
|
+
4. Prefer SpecKit (`.specify/`) for larger greenfield work — still end with an ARD
|
|
28
|
+
when the outcome is architectural.
|
|
29
|
+
|
|
30
|
+
## Index
|
|
31
|
+
|
|
32
|
+
| ARD | Title | Status |
|
|
33
|
+
| --- | --- | --- |
|
|
34
|
+
| [ARD-0001](./ARD-0001-host-scoped-vapi-ingress.md) | Host-scoped Vapi ingress (no project UUID in path) | Accepted |
|
|
35
|
+
|
|
36
|
+
Constitution: [`.specify/memory/constitution.md`](../../.specify/memory/constitution.md)
|
|
37
|
+
Contributing: [CONTRIBUTING.md](../../CONTRIBUTING.md)
|
|
@@ -6,30 +6,33 @@ Do not put production secrets or customer flows in the framework repository.
|
|
|
6
6
|
|
|
7
7
|
## 1. Clone the starter
|
|
8
8
|
|
|
9
|
+
Follow the credential checklist in [Quick start](../getting-started/quick-start.md) — live voice needs Vapi; Twilio and an LLM key are mode-dependent.
|
|
10
|
+
|
|
9
11
|
```bash
|
|
10
12
|
git clone git@github.com:guidify-ai/vapi-studio-project.git my-bot
|
|
11
13
|
cd my-bot
|
|
12
14
|
cp .env.example .env
|
|
13
|
-
#
|
|
15
|
+
# PROJECT_NAME=…
|
|
16
|
+
# VAPI_API_KEY + POC_ASSISTANT_ID + VAPI_PHONE_NUMBER_ID # live voice
|
|
17
|
+
# TWILIO_* — skip for Vapi-phone starters; add for BYOK / live SMS
|
|
18
|
+
# OPENAI_API_KEY (or Claude/Gemini/Grok) only if leaving MockBrain
|
|
14
19
|
yarn install
|
|
15
20
|
yarn start # Docker Postgres + app + ngrok → prints Vapi URLs
|
|
16
21
|
```
|
|
17
22
|
|
|
18
|
-
`yarn install` pulls `@guidify-ai/vapi-studio@0.1.
|
|
23
|
+
`yarn install` pulls `@guidify-ai/vapi-studio@0.1.2` and stamps Cursor/Claude rules + `AGENTS.md`. Postinstall syncs `config/project.identity.json` from `PROJECT_NAME` / `PROJECT_SLUG`.
|
|
19
24
|
|
|
20
|
-
###
|
|
25
|
+
### Credentials at a glance
|
|
21
26
|
|
|
22
27
|
| Need | Detail |
|
|
23
28
|
| --- | --- |
|
|
24
|
-
| **Vapi**
|
|
25
|
-
| **Twilio
|
|
26
|
-
| **
|
|
27
|
-
| **Balance** | Recommend ~**$30** with auto-recharge to $30 when balance hits ~$10. |
|
|
28
|
-
| **Same account** | `VAPI_PHONE_NUMBER_ID` must be a number imported in Vapi from **that** Twilio account. |
|
|
29
|
+
| **Vapi** (required for live voice) | `VAPI_API_KEY`, `POC_ASSISTANT_ID`, `VAPI_PHONE_NUMBER_ID`. **Prefer a Vapi-managed phone** for starters; Twilio BYOK for larger projects. **Prefer Core** (~$29/mo, 10 concurrent) for a first project; free/usage-only (4 concurrent) for a quiet start — [details](../getting-started/vapi-account.md). |
|
|
30
|
+
| **Twilio** (optional) | Skip for simple Vapi-phone starters. Add for **BYOK** voice and/or **live SMS** forms (`TWILIO_*`). Keep `TWILIO_SMS_DRY_RUN=1` until ready. |
|
|
31
|
+
| **Brain / LLM** (optional) | Starter uses **MockBrain**. ChatGPT / Claude / Gemini / Grok need the matching API key + adapter switch. |
|
|
29
32
|
|
|
30
33
|
## 2. Wire Vapi
|
|
31
34
|
|
|
32
|
-
Paste the printed URLs into your Vapi assistant:
|
|
35
|
+
Paste the printed URLs into your Vapi assistant (or use the starter configure script):
|
|
33
36
|
|
|
34
37
|
| Setting | Endpoint |
|
|
35
38
|
| --- | --- |
|
|
@@ -20,4 +20,4 @@ Step-by-step: [Creating an app](./creating-an-app.md).
|
|
|
20
20
|
|
|
21
21
|
## Showcase (reference implementation)
|
|
22
22
|
|
|
23
|
-
**[vapi-studio-landing-page-sample-model](https://github.com/guidify-ai/vapi-studio-landing-page-sample-model)** — Planner LLM demo (not a blank starter). Depends on `@guidify-ai/vapi-studio@0.1.
|
|
23
|
+
**[vapi-studio-landing-page-sample-model](https://github.com/guidify-ai/vapi-studio-landing-page-sample-model)** — Planner LLM demo (not a blank starter). Depends on `@guidify-ai/vapi-studio@0.1.2` (or `file:../vapi-studio` while developing the next package version). Use it to see richer Vapi strategies, funnels, and multi-node flows.
|
|
@@ -8,7 +8,7 @@ You do **not** install the framework into an empty folder by hand. Clone the sta
|
|
|
8
8
|
git clone git@github.com:guidify-ai/vapi-studio-project.git my-bot
|
|
9
9
|
cd my-bot
|
|
10
10
|
cp .env.example .env
|
|
11
|
-
yarn install # installs @guidify-ai/vapi-studio@0.1.
|
|
11
|
+
yarn install # installs @guidify-ai/vapi-studio@0.1.2 + stamps agent rules
|
|
12
12
|
yarn start
|
|
13
13
|
```
|
|
14
14
|
|
|
@@ -19,7 +19,7 @@ Vapi Studio apps are **self-hosted** and **Dockerized**. There is no Guidify-hos
|
|
|
19
19
|
|
|
20
20
|
## Requirements
|
|
21
21
|
|
|
22
|
-
- **Node.js 22+**
|
|
22
|
+
- **Node.js 22.23.4+ or 24.22.1+** (October 2026 security release; older 22.x/24.x and Node 20 are vulnerable)
|
|
23
23
|
- **Yarn 1.x** or npm
|
|
24
24
|
- **Docker** + Compose
|
|
25
25
|
- **[ngrok](https://ngrok.com/download)** for local HTTPS to Vapi
|
|
@@ -12,7 +12,7 @@ Your bot is a **separate NestJS app**. Start from **[vapi-studio-project](https:
|
|
|
12
12
|
|
|
13
13
|
## What you build
|
|
14
14
|
|
|
15
|
-
A fork of [vapi-studio-project](https://github.com/guidify-ai/vapi-studio-project) that depends on `@guidify-ai/vapi-studio@0.1.
|
|
15
|
+
A fork of [vapi-studio-project](https://github.com/guidify-ai/vapi-studio-project) that depends on `@guidify-ai/vapi-studio@0.1.2`, with Vapi Custom LLM + webhook at `/vapi/...` on your host.
|
|
16
16
|
|
|
17
17
|
## What this is not
|
|
18
18
|
|
|
@@ -1,17 +1,52 @@
|
|
|
1
1
|
# Quick start
|
|
2
2
|
|
|
3
|
-
Clone the public starter,
|
|
3
|
+
Clone the public starter, fill credentials for **your** setup, run it.
|
|
4
|
+
|
|
5
|
+
## 1. Machine prerequisites
|
|
6
|
+
|
|
7
|
+
- Node **22+**, Yarn 1.x or npm
|
|
8
|
+
- **Docker** + Compose
|
|
9
|
+
- **[ngrok](https://ngrok.com/download)** (HTTPS tunnel for Vapi)
|
|
10
|
+
- Accounts as needed below
|
|
11
|
+
|
|
12
|
+
## 2. Credentials (pick your path)
|
|
13
|
+
|
|
14
|
+
You cannot place live calls with an empty `.env`. Fill what your mode needs:
|
|
15
|
+
|
|
16
|
+
| | Always for **live voice** | Optional / mode-dependent |
|
|
17
|
+
| --- | --- | --- |
|
|
18
|
+
| **[Vapi](https://vapi.ai)** | `VAPI_API_KEY`, `POC_ASSISTANT_ID`, `VAPI_PHONE_NUMBER_ID` | `VAPI_PHONE_NUMBER` (E.164), tool-name overrides. **Prefer [Core](./vapi-account.md)** (~$29/mo, 10 concurrent) for a first project; free/usage-only (4 concurrent) is OK for a slow start — upgrade later. See [Vapi account & plans](./vapi-account.md). |
|
|
19
|
+
| **Phone** | A number **in Vapi** linked to that assistant | **Prefer a Vapi-managed number** for starters (no Twilio signup). **Twilio-imported BYOK** when you scale / need your own carrier — [phones](./vapi-account.md#phones) |
|
|
20
|
+
| **Twilio** | — | Only for **larger** voice BYOK and/or **live SMS** forms (`TWILIO_*`). Starters: skip Twilio and keep `TWILIO_SMS_DRY_RUN=1`. |
|
|
21
|
+
| **Brain / LLM** | — | Starter defaults to **MockBrain** (no key). For ChatGPT / Claude / Gemini / Grok set the matching key and switch the adapter in code — see [`.env.example`](../../.env.example) (`OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `GOOGLE_API_KEY`, `XAI_API_KEY`). |
|
|
22
|
+
|
|
23
|
+
**Minimum to dial:** Vapi key + assistant id + phone number id.
|
|
24
|
+
**Minimum to text HTML forms for real:** Twilio (or keep dry-run).
|
|
25
|
+
**Minimum for local graph / health only:** `PROJECT_NAME` + Docker (mock brain, dry-run SMS).
|
|
26
|
+
|
|
27
|
+
## 3. Clone and configure
|
|
4
28
|
|
|
5
29
|
```bash
|
|
6
30
|
git clone git@github.com:guidify-ai/vapi-studio-project.git my-bot
|
|
7
31
|
cd my-bot
|
|
8
32
|
cp .env.example .env
|
|
9
|
-
# Edit PROJECT_NAME=… (PROJECT_SLUG optional)
|
|
10
|
-
yarn install
|
|
11
|
-
yarn start # Docker + Postgres + ngrok → prints Vapi URLs
|
|
12
33
|
```
|
|
13
34
|
|
|
14
|
-
|
|
35
|
+
Edit `.env`:
|
|
36
|
+
|
|
37
|
+
1. `PROJECT_NAME=…` (`PROJECT_SLUG` optional)
|
|
38
|
+
2. **Vapi** block — required for `yarn start` claim / configure
|
|
39
|
+
3. **Twilio** — skip for simple Vapi-phone projects; add later for BYOK voice and/or live SMS
|
|
40
|
+
4. **Brain key** — only if you leave MockBrain
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
yarn install # stamps agent rules; writes config/project.identity.json
|
|
44
|
+
yarn start # Docker Postgres + app + ngrok → prints URLs
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 4. Wire Vapi
|
|
48
|
+
|
|
49
|
+
Paste the printed URLs into the assistant (or let `scripts/configure-vapi.sh` PATCH them):
|
|
15
50
|
|
|
16
51
|
| Setting | URL |
|
|
17
52
|
| --- | --- |
|
|
@@ -20,4 +55,4 @@ Paste into your Vapi assistant:
|
|
|
20
55
|
|
|
21
56
|
Then extend `src/conversation/` and `config/flow.yaml`. Full walkthrough: [Creating an app](../building-apps/creating-an-app.md).
|
|
22
57
|
|
|
23
|
-
Framework contributors (
|
|
58
|
+
Framework contributors (library, not a bot): clone [vapi-studio](https://github.com/guidify-ai/vapi-studio), `yarn build`, `yarn test` — [Installation](./installation.md).
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Vapi account, plans & phones
|
|
2
|
+
|
|
3
|
+
Live voice requires a [Vapi](https://vapi.ai) organization and `VAPI_API_KEY`.
|
|
4
|
+
Studio does not bill you for Vapi — you pay Vapi (and any LLM / carrier you use)
|
|
5
|
+
directly. Plan and phone SKUs change; confirm on [vapi.ai/pricing](https://vapi.ai/pricing)
|
|
6
|
+
and the Vapi dashboard.
|
|
7
|
+
|
|
8
|
+
## Plans
|
|
9
|
+
|
|
10
|
+
| Path | When | Notes |
|
|
11
|
+
| --- | --- | --- |
|
|
12
|
+
| **Core** (recommended for a first real project) | Builders & early teams shipping a bot people will call | About **$29/mo** success package (confirm on pricing page): **10** concurrent calls, **5** included Vapi phone numbers, 30-day raw retention, ZDR, email support (2 business day SLA) |
|
|
13
|
+
| **No success package / free start** | Slow early phase, demos, learning the stack | Usage-based hosting + limited free credits; typically **4** concurrent calls and **1** included Vapi number — easy to outgrow under even light traffic |
|
|
14
|
+
| **Pro / Premier** | Scale, SLAs, more orgs / concurrency | See Vapi pricing |
|
|
15
|
+
|
|
16
|
+
**Guidance:** prefer **Core** for the first customer-facing project so concurrency and included numbers are not the bottleneck on day one. Starting on the free / usage-only tier is fine if you expect a quiet phase — you can **upgrade later** without changing Studio.
|
|
17
|
+
|
|
18
|
+
Per-minute model / voice / transport costs are separate from the success package.
|
|
19
|
+
|
|
20
|
+
## Phones
|
|
21
|
+
|
|
22
|
+
| Path | When | Why |
|
|
23
|
+
| --- | --- | --- |
|
|
24
|
+
| **Vapi-managed numbers** (recommended for starters / simple projects) | First bot, demos, early teams | One `VAPI_API_KEY` to buy/attach numbers in the dashboard — **no Twilio account, no Trust Hub, no separate carrier verification** for voice |
|
|
25
|
+
| **Twilio-imported (BYOK)** | Larger / production projects that need their own carrier, compliance, or SMS scale | Twilio is **paid** and typically needs **verification** (Trust Hub / geo). Use when you outgrow Vapi-included numbers or need Twilio-native SMS ops |
|
|
26
|
+
|
|
27
|
+
Studio only needs `VAPI_PHONE_NUMBER_ID` (plus assistant + API key). It does not care whether the number was purchased in Vapi or imported from Twilio.
|
|
28
|
+
|
|
29
|
+
**SMS HTML forms** in this stack still use the optional Twilio dispose adapter for **live** send (`TWILIO_*`, `TWILIO_SMS_DRY_RUN=0`). Starters can keep dry-run SMS while voice runs on a Vapi phone.
|
|
30
|
+
|
|
31
|
+
## What Studio needs from Vapi
|
|
32
|
+
|
|
33
|
+
1. Create / select an **assistant** → `POC_ASSISTANT_ID`
|
|
34
|
+
2. Attach a **phone number** → `VAPI_PHONE_NUMBER_ID`
|
|
35
|
+
- Starter path: **Vapi phone** from the dashboard (included on Core / free allotment)
|
|
36
|
+
- Scale path: import a **Twilio** number into Vapi when you need BYOK
|
|
37
|
+
3. Put the org **API key** in `.env` → `VAPI_API_KEY`
|
|
38
|
+
4. Point webhook + Custom LLM at your app URLs (see [Quick start](./quick-start.md))
|
|
39
|
+
|
|
40
|
+
Next: [Quick start](./quick-start.md) · [Creating an app](../building-apps/creating-an-app.md)
|
package/docs/guides/agents.md
CHANGED
|
@@ -78,7 +78,7 @@ Sources: `agent/cursor/` and `agent/claude/rules/` inside the package. Does not
|
|
|
78
78
|
|
|
79
79
|
## SpecKit
|
|
80
80
|
|
|
81
|
-
Greenfield features: [SpecKit guide](./speckit.md) (`.specify/` in this repo).
|
|
81
|
+
Greenfield features: [SpecKit guide](./speckit.md) (`.specify/` in this repo) + [ARDs](../ards/README.md) for architectural PRs.
|
|
82
82
|
|
|
83
83
|
## Related
|
|
84
84
|
|
|
@@ -3,11 +3,14 @@
|
|
|
3
3
|
| Layer | Location | Purpose |
|
|
4
4
|
| --- | --- | --- |
|
|
5
5
|
| **Package README** | `README.md` | Install + product framing |
|
|
6
|
+
| **Contributing** | `CONTRIBUTING.md` | PR rules, ARD requirement |
|
|
6
7
|
| **Doc site** | `docs/README.md` | Navigation |
|
|
8
|
+
| **ARDs** | `docs/ards/` | Architecture decisions (framework only) |
|
|
7
9
|
| **Runtime handbook** | `docs/reference/runtime-api.md` | Shipped contracts |
|
|
8
10
|
| **Best practices** | `docs/best-practices/` | Conversation doctrine |
|
|
9
11
|
| **Building apps** | `docs/building-apps/` | Scaffold apps that depend on the package |
|
|
10
12
|
| **Example apps** | `docs/building-apps/example-apps.md` | Links to external sample repos |
|
|
13
|
+
| **SpecKit** | `.specify/` + `docs/guides/speckit.md` | Framework feature workflow |
|
|
11
14
|
| **App northern stars** | *your app* `README.md` | Goals, triggers — no flow dumps |
|
|
12
15
|
|
|
13
16
|
See [documentation layers](../best-practices/documentation-layers.md).
|
package/docs/guides/speckit.md
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# SpecKit
|
|
2
2
|
|
|
3
|
-
Workspace tooling for specify → plan → tasks → implement
|
|
3
|
+
Workspace tooling for **specify → plan → tasks → implement** on **framework**
|
|
4
|
+
changes. Config lives under **`.specify/`**.
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
Consumer bots: do not dump product strategy into this repo’s SpecKit tree.
|
|
7
|
+
Architectural outcomes MUST land as **ARDs** under [`docs/ards/`](../ards/README.md).
|
|
6
8
|
|
|
7
9
|
## Workflows
|
|
8
10
|
|
|
@@ -16,10 +18,12 @@ Config, templates, and scripts live under **`.specify/`** (not under framework-l
|
|
|
16
18
|
| checklist | Custom checklist from requirements |
|
|
17
19
|
| implement | Execute tasks from `tasks.md` |
|
|
18
20
|
| converge | Find unbuilt work → append tasks |
|
|
19
|
-
| constitution | Update constitution |
|
|
21
|
+
| constitution | Update [constitution](../../.specify/memory/constitution.md) |
|
|
20
22
|
| taskstoissues | Convert tasks to GitHub issues |
|
|
21
23
|
|
|
22
|
-
Invoke via SpecKit / Specify CLI against `.specify
|
|
24
|
+
Invoke via SpecKit / Specify CLI against `.specify/`. IDE skills
|
|
25
|
+
(`.cursor/skills/speckit-*`, …) are **not** shipped in the npm package — reinstall
|
|
26
|
+
locally if you need IDE skill discovery.
|
|
23
27
|
|
|
24
28
|
## Artifact layout
|
|
25
29
|
|
|
@@ -34,23 +38,35 @@ specs/<feature-id>/
|
|
|
34
38
|
└── contracts/
|
|
35
39
|
```
|
|
36
40
|
|
|
37
|
-
Templates: `.specify/templates/`
|
|
41
|
+
Templates: `.specify/templates/` (includes **`ard-template.md`** for ARDs).
|
|
42
|
+
|
|
43
|
+
## ARDs (Architecture Decision Records)
|
|
44
|
+
|
|
45
|
+
| Rule | Detail |
|
|
46
|
+
| --- | --- |
|
|
47
|
+
| **Required** | PRs that change framework architecture / public contracts |
|
|
48
|
+
| **Location** | `docs/ards/ARD-XXXX-*.md` |
|
|
49
|
+
| **Template** | `.specify/templates/ard-template.md` |
|
|
50
|
+
| **Index** | [docs/ards/README.md](../ards/README.md) |
|
|
51
|
+
|
|
52
|
+
SpecKit produces working artifacts; the **ARD** is the durable, reviewable
|
|
53
|
+
decision for OSS history. Link SpecKit folders from the ARD when both exist.
|
|
38
54
|
|
|
39
55
|
## When to use SpecKit vs best practices
|
|
40
56
|
|
|
41
57
|
| Work | Start here |
|
|
42
58
|
| --- | --- |
|
|
43
|
-
| Day-to-day bot nodes
|
|
44
|
-
| Greenfield framework feature | SpecKit specify → plan → tasks |
|
|
45
|
-
| Compliance check | SpecKit analyze
|
|
46
|
-
|
|
47
|
-
## Historical artifacts
|
|
59
|
+
| Day-to-day bot nodes (in an **app** repo) | App best practices + package `docs/best-practices/` |
|
|
60
|
+
| Greenfield **framework** feature | SpecKit specify → plan → tasks → **ARD** |
|
|
61
|
+
| Compliance check | SpecKit analyze + constitution |
|
|
48
62
|
|
|
49
|
-
|
|
63
|
+
## Authority
|
|
50
64
|
|
|
51
|
-
|
|
65
|
+
1. [Constitution](../../.specify/memory/constitution.md)
|
|
66
|
+
2. Shipped [`docs/`](../README.md) + [`docs/reference/runtime-api.md`](../reference/runtime-api.md)
|
|
67
|
+
3. SpecKit feature folders (ephemeral relative to the above)
|
|
52
68
|
|
|
53
69
|
## Related
|
|
54
70
|
|
|
55
|
-
- [
|
|
56
|
-
- [Documentation
|
|
71
|
+
- [CONTRIBUTING.md](../../CONTRIBUTING.md)
|
|
72
|
+
- [Documentation map](./documentation.md)
|
|
@@ -41,6 +41,10 @@ App identity: **`config/project.identity.json`** (`slug` / `name`). App boot ups
|
|
|
41
41
|
| `VAPI_DASHBOARD_CALL_URL` | `https://dashboard.vapi.ai/call/{callId}` | Debug UI link to Vapi call (`{callId}` = `provider_call_id`) |
|
|
42
42
|
| `CONFIG_DIR` | app `config/` | Flow + `workflow.yaml` root |
|
|
43
43
|
|
|
44
|
+
Nest / TypeORM / RxJS peers (and optional Twilio) are **exact versions** on the
|
|
45
|
+
package — see `package.json` / [CONTRIBUTING.md](../../CONTRIBUTING.md). Do not
|
|
46
|
+
float them with `^` in apps that consume Studio.
|
|
47
|
+
|
|
44
48
|
### App-owned (documented in `.env.example`, not read by the framework core)
|
|
45
49
|
|
|
46
50
|
| Variable | Purpose |
|
|
@@ -48,7 +52,7 @@ App identity: **`config/project.identity.json`** (`slug` / `name`). App boot ups
|
|
|
48
52
|
| `DATABASE_URL` | App Postgres |
|
|
49
53
|
| `PUBLIC_BASE_URL` / `PORT` | Public host + listen port (ngrok) |
|
|
50
54
|
| `PROJECT_NAME` / `PROJECT_SLUG` | Human identity → `project.identity.json` |
|
|
51
|
-
| `VAPI_API_KEY` / `VAPI_PHONE_NUMBER_ID` / `POC_ASSISTANT_ID` |
|
|
55
|
+
| `VAPI_API_KEY` / `VAPI_PHONE_NUMBER_ID` / `POC_ASSISTANT_ID` | Live voice — fill in app `.env`. Prefer Vapi **Core** for first projects; free tier OK for slow start ([vapi-account.md](../getting-started/vapi-account.md)) |
|
|
52
56
|
| `TWILIO_ACCOUNT_SID` / `TWILIO_AUTH_TOKEN` / `TWILIO_FROM_NUMBER` | **Twilio only for now**; same account that owns the Vapi-imported FROM number. Trust Hub must allow +1; keep ~$30 balance (auto-recharge near $10 recommended). Other carriers later. |
|
|
53
57
|
| `STUDIO_EVENTS_REDIS_URL` / `STUDIO_EVENTS_REDIS_STREAM` | Optional event broker for `onStudioEvent` fan-out |
|
|
54
58
|
| `EVENT_STORE_DATABASE_URL` | Optional durable store for your event consumer |
|
package/package.json
CHANGED
|
@@ -1,8 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@guidify-ai/vapi-studio",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Vapi Studio — deterministic voice agents for Vapi (NestJS)",
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "Vapi Studio — deterministic voice agents for Vapi (NestJS). Official Guidify team available to build your solution with forwarded engineers and full professional services.",
|
|
5
5
|
"license": "MIT",
|
|
6
|
+
"engines": {
|
|
7
|
+
"node": "^22.23.4 || ^24.22.1 || >=26.12.1"
|
|
8
|
+
},
|
|
9
|
+
"keywords": [
|
|
10
|
+
"chat",
|
|
11
|
+
"chat-application",
|
|
12
|
+
"chatbot",
|
|
13
|
+
"chatbots",
|
|
14
|
+
"vapi",
|
|
15
|
+
"vapi-ai",
|
|
16
|
+
"vapi-alternative",
|
|
17
|
+
"vapi-tools",
|
|
18
|
+
"voice-agent",
|
|
19
|
+
"voice-ai",
|
|
20
|
+
"voice-assistant",
|
|
21
|
+
"voice-chat",
|
|
22
|
+
"voip"
|
|
23
|
+
],
|
|
6
24
|
"repository": {
|
|
7
25
|
"type": "git",
|
|
8
26
|
"url": "git+https://github.com/guidify-ai/vapi-studio.git"
|
|
@@ -46,17 +64,17 @@
|
|
|
46
64
|
"install-agent-refs": "node scripts/install-agent-refs.cjs"
|
|
47
65
|
},
|
|
48
66
|
"dependencies": {
|
|
49
|
-
"uuid": "
|
|
50
|
-
"yaml": "
|
|
67
|
+
"uuid": "11.1.1",
|
|
68
|
+
"yaml": "2.9.0"
|
|
51
69
|
},
|
|
52
70
|
"peerDependencies": {
|
|
53
|
-
"@nestjs/common": "
|
|
54
|
-
"@nestjs/core": "
|
|
55
|
-
"@nestjs/typeorm": "
|
|
56
|
-
"reflect-metadata": "
|
|
57
|
-
"rxjs": "
|
|
58
|
-
"typeorm": "
|
|
59
|
-
"twilio": "
|
|
71
|
+
"@nestjs/common": "11.1.29",
|
|
72
|
+
"@nestjs/core": "11.1.29",
|
|
73
|
+
"@nestjs/typeorm": "11.0.3",
|
|
74
|
+
"reflect-metadata": "0.2.2",
|
|
75
|
+
"rxjs": "7.8.2",
|
|
76
|
+
"typeorm": "0.3.31",
|
|
77
|
+
"twilio": "5.4.5"
|
|
60
78
|
},
|
|
61
79
|
"peerDependenciesMeta": {
|
|
62
80
|
"twilio": {
|
|
@@ -64,18 +82,18 @@
|
|
|
64
82
|
}
|
|
65
83
|
},
|
|
66
84
|
"devDependencies": {
|
|
67
|
-
"@eslint/js": "
|
|
68
|
-
"@nestjs/common": "
|
|
69
|
-
"@nestjs/core": "
|
|
70
|
-
"@nestjs/typeorm": "
|
|
71
|
-
"@types/node": "
|
|
72
|
-
"@types/uuid": "
|
|
73
|
-
"eslint": "
|
|
74
|
-
"reflect-metadata": "
|
|
75
|
-
"rxjs": "
|
|
76
|
-
"ts-morph": "
|
|
77
|
-
"typeorm": "
|
|
78
|
-
"typescript": "
|
|
79
|
-
"typescript-eslint": "
|
|
85
|
+
"@eslint/js": "10.0.1",
|
|
86
|
+
"@nestjs/common": "11.1.29",
|
|
87
|
+
"@nestjs/core": "11.1.29",
|
|
88
|
+
"@nestjs/typeorm": "11.0.3",
|
|
89
|
+
"@types/node": "22.13.10",
|
|
90
|
+
"@types/uuid": "10.0.0",
|
|
91
|
+
"eslint": "10.9.1",
|
|
92
|
+
"reflect-metadata": "0.2.2",
|
|
93
|
+
"rxjs": "7.8.2",
|
|
94
|
+
"ts-morph": "28.0.0",
|
|
95
|
+
"typeorm": "0.3.31",
|
|
96
|
+
"typescript": "5.8.2",
|
|
97
|
+
"typescript-eslint": "8.69.0"
|
|
80
98
|
}
|
|
81
99
|
}
|