@mindstudio-ai/remy 0.1.267 → 0.1.269
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/dist/automatedActions/publish.md +2 -2
- package/dist/headless.js +67 -205
- package/dist/index.js +27 -165
- package/dist/prompt/skills/voiceInterfaces.md +15 -1
- package/package.json +1 -1
|
@@ -99,6 +99,12 @@ method itself can read `session.voiceSessionId` / `session.visitorId` from the a
|
|
|
99
99
|
(`import { session } from '@mindstudio-ai/agent'`) — the same id the browser holds as
|
|
100
100
|
`session.sessionId`, guaranteed by the platform rather than echoed by the model.
|
|
101
101
|
|
|
102
|
+
Voice sessions also carry `session.medium` (`'web' | 'phone-in' | 'phone-out'`) and, on phone
|
|
103
|
+
calls, `session.sip` (`{ to, fromNumber }`) — use `medium` in tool methods and the session-context
|
|
104
|
+
method to branch web vs phone behavior (what to prefetch, how to phrase context). Treat
|
|
105
|
+
`session.sip.fromNumber` as context only, never identity: caller ID is spoofable, so don't gate
|
|
106
|
+
data or roles on it — in-call verification is the auth rail.
|
|
107
|
+
|
|
102
108
|
### Client tools: actions that happen on screen (`target: "client"`)
|
|
103
109
|
|
|
104
110
|
A tool whose effect belongs in the browser — open the verification sheet, navigate to a page,
|
|
@@ -136,6 +142,11 @@ session.registerClientTool('showVerification', async ({ reason }) => {
|
|
|
136
142
|
becomes an error/ack the agent can speak around.
|
|
137
143
|
- The progressive-auth pattern above is the canonical use: make the verification sheet a client
|
|
138
144
|
tool and the agent opens it deliberately instead of the frontend inferring it from tool events.
|
|
145
|
+
- Phone sessions never see client tools — there is no browser on a call, so the platform drops
|
|
146
|
+
them from the toolset and tells the agent it's on a phone call with no screen. Verification
|
|
147
|
+
branches by itself: on a phone the agent gets the platform's in-call verify tools instead of
|
|
148
|
+
the app's sheet. Nothing to author; just don't make a client tool the only path to something
|
|
149
|
+
phone callers need.
|
|
139
150
|
|
|
140
151
|
### Tool descriptions say results out loud
|
|
141
152
|
|
|
@@ -338,7 +349,10 @@ export async function callMeAboutMyOrder(input: { phone: string }) {
|
|
|
338
349
|
who it's talking to (Current User block) and every tool call carries their roles — regardless
|
|
339
350
|
of which number was dialed (the user types any number into a field; identity comes from their
|
|
340
351
|
session, not the phone). Omitted/false → anonymous call; role-gated tools decline.
|
|
341
|
-
System/cron invocations have no human identity and always run anonymously.
|
|
352
|
+
System/cron invocations have no human identity and always run anonymously. Anonymous outbound
|
|
353
|
+
calls (deployed) get the same in-call verification flow as inbound — the callee proves
|
|
354
|
+
possession of the number that was dialed, or verifies by email — so an anonymous call can
|
|
355
|
+
still upgrade to a known user mid-conversation.
|
|
342
356
|
- **Production needs a dedicated phone number.** The app owner attaches one ($1/month) via the
|
|
343
357
|
dashboard or `mindstudio-prod voice numbers` (see "The voice CLI"
|
|
344
358
|
below) — it becomes the caller ID for every call, in dev sessions too, so users always see
|