@pinecall/room 0.11.20 → 0.11.22
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 +15 -6
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/reading.d.ts +1 -1
- package/dist/reading.d.ts.map +1 -1
- package/dist/room.d.ts +2 -71
- package/dist/room.d.ts.map +1 -1
- package/dist/room.js +17 -4
- package/dist/room.js.map +1 -1
- package/dist/seat/join.d.ts +6 -0
- package/dist/seat/join.d.ts.map +1 -1
- package/dist/seat/join.js +36 -3
- package/dist/seat/join.js.map +1 -1
- package/dist/seat/livekit.d.ts +9 -2
- package/dist/seat/livekit.d.ts.map +1 -1
- package/dist/seat/livekit.js.map +1 -1
- package/dist/surface.d.ts +80 -0
- package/dist/surface.d.ts.map +1 -0
- package/dist/surface.js +4 -0
- package/dist/surface.js.map +1 -0
- package/dist/wire/envelope.d.ts +2 -2
- package/dist/wire/envelope.d.ts.map +1 -1
- package/dist/wire/envelope.js +4 -2
- package/dist/wire/envelope.js.map +1 -1
- package/dist/wire/events-call.d.ts +19 -19
- package/dist/wire/events-call.d.ts.map +1 -1
- package/dist/wire/events-call.js +15 -11
- package/dist/wire/events-call.js.map +1 -1
- package/dist/wire/events.d.ts +22 -22
- package/dist/wire/events.d.ts.map +1 -1
- package/dist/wire/events.js +18 -14
- package/dist/wire/events.js.map +1 -1
- package/dist/wire/reduce.d.ts.map +1 -1
- package/dist/wire/reduce.js +22 -13
- package/dist/wire/reduce.js.map +1 -1
- package/dist/wire/registry.d.ts +45 -45
- package/dist/wire/room.d.ts +4 -4
- package/dist/wire/room.d.ts.map +1 -1
- package/dist/wire/room.js +6 -3
- package/dist/wire/room.js.map +1 -1
- package/dist/wire/state.d.ts +15 -15
- package/dist/wire/state.d.ts.map +1 -1
- package/dist/wire/state.js +8 -5
- package/dist/wire/state.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -160,8 +160,7 @@ state the agent declared public; `tenant` is everything — the tools, the laten
|
|
|
160
160
|
## Resume a conversation
|
|
161
161
|
|
|
162
162
|
A conversation outlives the page. Every mint answers a `resume_token`, which `state.resume` holds
|
|
163
|
-
once the call is open: keep it beside the conversation (`localStorage` is enough), and hand it back
|
|
164
|
-
to resume it.
|
|
163
|
+
once the call is open: keep it beside the conversation (`localStorage` is enough), and hand it back to resume it.
|
|
165
164
|
|
|
166
165
|
```ts
|
|
167
166
|
// tokens(scope, resume) sends both on to your server: `body: JSON.stringify({ scope, resume })`.
|
|
@@ -262,7 +261,8 @@ org. `recording` is then `""`, and the recording is yours to relay too.
|
|
|
262
261
|
## What `state` says
|
|
263
262
|
|
|
264
263
|
Every field is the truth at the moment it was published. A new state is a new object; one you were
|
|
265
|
-
handed is never changed afterwards, so it can be compared by reference and kept.
|
|
264
|
+
handed is never changed afterwards, so it can be compared by reference and kept. Read with the call's
|
|
265
|
+
own token, `log` is the public projection: no agent, no numbers, no attributes, no tool names.
|
|
266
266
|
|
|
267
267
|
| field | what it is |
|
|
268
268
|
|---|---|
|
|
@@ -276,6 +276,7 @@ handed is never changed afterwards, so it can be compared by reference and kept.
|
|
|
276
276
|
| `connection` | the log's stream: `connecting` · `live` · `reconnecting` · `ended` (also before anything opened) |
|
|
277
277
|
| `wantsSound` | `true` when the browser has not let the page play sound yet: show a button that calls `playSound()` |
|
|
278
278
|
| `speaking` | `{agent, user, level}`: who is making a sound right now, and how loud the agent is, 0 to 1 |
|
|
279
|
+
| `voice` | the `<audio>` element the agent's voice plays in during a spoken call, for a page that listens to it (`@pinecall/dot`'s face does); `null` otherwise |
|
|
279
280
|
| `code` | `{code, number, expiresAt}` once `byPhone()` has a code to show; `null` otherwise |
|
|
280
281
|
|
|
281
282
|
The phase and everything around it — `error`, `connection`, `wantsSound`, `speaking` — are
|
|
@@ -313,8 +314,7 @@ JSON, cut at `max` characters. A field that is an object is opened one level —
|
|
|
313
314
|
Both sides of a spoken call can be drawn as they happen, karaoke-style.
|
|
314
315
|
|
|
315
316
|
**The visitor** — `state.log.live.user` is what the recogniser has heard so far of the turn in
|
|
316
|
-
progress, rewritten as they speak ("Hi", "Hi ther", "Hi there. I would…"), and `null` once the
|
|
317
|
-
turn closes.
|
|
317
|
+
progress, rewritten as they speak ("Hi", "Hi ther", "Hi there. I would…"), and `null` once the turn closes.
|
|
318
318
|
|
|
319
319
|
**The agent** — a voice call's log carries its reply one word at a time, each with the second it
|
|
320
320
|
is spoken at. The words usually reach the page before the voice says them, so a page can draw the
|
|
@@ -346,6 +346,15 @@ A written call's reply comes as model tokens with no timing: every token is lit
|
|
|
346
346
|
which reads as the agent typing. Once the turn closes, the reply is a turn in `rowsOf` like any
|
|
347
347
|
other, and `useKaraoke` returns `null`.
|
|
348
348
|
|
|
349
|
+
## Telling the agent what the visitor does
|
|
350
|
+
|
|
351
|
+
`call.event(name, data)` tells the agent what the visitor did on the page: the section they opened,
|
|
352
|
+
the plan they chose (`call.event("plan.chosen", { plan: "pro" })`). The agent's `onEvent(name, data)`
|
|
353
|
+
runs when its class accepts that name from a participant, and the runtime drops any other; a state
|
|
354
|
+
field the hook writes is in the view at the next turn, and the hook may `reply()` at once. Anybody
|
|
355
|
+
can send what a browser sends, so keep `data` to values the view reads, never words the model obeys.
|
|
356
|
+
What the agent puts on the screen with `call.send("pinecall.ui", data)` reaches `onUi(data)`.
|
|
357
|
+
|
|
349
358
|
## Sound and the browser's permission
|
|
350
359
|
|
|
351
360
|
In `talk`, the microphone is turned on once the room is joined, and the agent's voice plays through
|
|
@@ -381,7 +390,7 @@ Nothing fails silently. Every refusal is a phase and a sentence, or a rejected p
|
|
|
381
390
|
| `tokens` or `callMe` answered no `log_token`, and there is no `log` to relay it | `failed`, `error` says so |
|
|
382
391
|
| the room closed from the other side | `ended`; the log is read on until the score |
|
|
383
392
|
| an entry of the log this version cannot read | skipped; `onSkipped(why)` is called, and the rest of the call still draws |
|
|
384
|
-
| `send()` outside a live room | the promise rejects with "not in a call"; an empty line is nothing |
|
|
393
|
+
| `send()` or `event()` outside a live room | the promise rejects with "not in a call"; an empty line is nothing |
|
|
385
394
|
|
|
386
395
|
On the server, `mint`, `dial` and `expect` throw `GatewayRefused` for a refusal: `status` is the gateway's,
|
|
387
396
|
and `detail` its sentence when it sent one (`null` when the body was not the gateway's JSON). The
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** @pinecall/room: the caller's side of a Pinecall call in a browser — one store, no framework. */
|
|
2
2
|
export { room } from "./room.js";
|
|
3
|
-
export type { Code, Minted, Mode, Phase, RoomOptions, RoomState, RoomStore } from "./
|
|
3
|
+
export type { Code, Minted, Mode, Phase, RoomOptions, RoomState, RoomStore } from "./surface.js";
|
|
4
4
|
export type { Store } from "./store.js";
|
|
5
5
|
export type { Connection } from "./log/follow.js";
|
|
6
6
|
export type { Speaking } from "./seat/join.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAEnG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAEnG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACjG,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,EAAE,KAAK,IAAI,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/reading.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Where a call is read — the tenant's relay when it gave one, the gateway with the call's own token otherwise — and where its hang-up is said. */
|
|
2
2
|
import type { Minted } from "./server/index.js";
|
|
3
|
-
import type { RoomOptions } from "./
|
|
3
|
+
import type { RoomOptions } from "./surface.js";
|
|
4
4
|
/** The gateway the page asks, with no slash at the end. */
|
|
5
5
|
export declare function gatewayOf(options: Pick<RoomOptions, "gateway">): string;
|
|
6
6
|
/** The call's log and its recording. None when neither a relay nor a token is there to read it with. */
|
package/dist/reading.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reading.d.ts","sourceRoot":"","sources":["../src/reading.ts"],"names":[],"mappings":"AAAA,mJAAmJ;AAEnJ,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"reading.d.ts","sourceRoot":"","sources":["../src/reading.ts"],"names":[],"mappings":"AAAA,mJAAmJ;AAEnJ,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD,2DAA2D;AAC3D,wBAAgB,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,MAAM,CAEvE;AAED,wGAAwG;AACxG,wBAAgB,SAAS,CACvB,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,KAAK,CAAC,EAC7C,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,CAAC,EAAE,MAAM,GACd;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQ3C;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,IAAI,CAIlH"}
|
package/dist/room.d.ts
CHANGED
|
@@ -1,75 +1,6 @@
|
|
|
1
1
|
/** One conversation, as the page sees it: the phases, the verbs, and the seat and the log joined in one store. */
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
import { type Connection } from "./log/follow.js";
|
|
5
|
-
import { type Speaking } from "./seat/join.js";
|
|
6
|
-
import { type LivekitModule } from "./seat/livekit.js";
|
|
7
|
-
import type { Code, Minted } from "./server/index.js";
|
|
8
|
-
import { type Store } from "./store.js";
|
|
9
|
-
export type { Code, Minted };
|
|
10
|
-
/** Where the conversation is. `ringing`: a phone call nobody answered yet; `expecting`: a code no call claimed yet. */
|
|
11
|
-
export type Phase = "idle" | "opening" | "expecting" | "ringing" | "live" | "ended" | "failed";
|
|
12
|
-
/** Spoken, written, or on the visitor's own phone. The same agent every way. */
|
|
13
|
-
export type Mode = "talk" | "chat" | "phone";
|
|
14
|
-
/** Everything the page draws from. Every field is the truth at the moment it was published. */
|
|
15
|
-
export interface RoomState {
|
|
16
|
-
phase: Phase;
|
|
17
|
-
mode: Mode | null;
|
|
18
|
-
call: string;
|
|
19
|
-
/** The sentence to show when phase is "failed". */
|
|
20
|
-
error: string;
|
|
21
|
-
/** Where the call's recording plays from once it has ended, or "" when the log is relayed. */
|
|
22
|
-
recording: string;
|
|
23
|
-
/** The call as the protocol folds it: turns, tools, the agent's state, the cost once it is known. */
|
|
24
|
-
log: State;
|
|
25
|
-
entries: Entry[];
|
|
26
|
-
connection: Connection;
|
|
27
|
-
/** True when the browser has not been told it may make a sound: ask for a click. */
|
|
28
|
-
wantsSound: boolean;
|
|
29
|
-
speaking: Speaking;
|
|
30
|
-
/** The code to show beside the number to call, from `expecting` on; `expiresAt` in seconds since the epoch. */
|
|
31
|
-
code: {
|
|
32
|
-
code: string;
|
|
33
|
-
number: string;
|
|
34
|
-
expiresAt: number;
|
|
35
|
-
} | null;
|
|
36
|
-
/** What to keep to resume this conversation later with `start(mode, resume)`; "" when the gateway gave none. */
|
|
37
|
-
resume: string;
|
|
38
|
-
}
|
|
39
|
-
export interface RoomOptions {
|
|
40
|
-
/** A ticket for a seat, from the tenant's own server. The page never holds a key. `resume` is the
|
|
41
|
-
* token a resumed conversation was kept with: the server sends it on as `resume` in its mint. */
|
|
42
|
-
tokens: (scope: "talk" | "chat", resume?: string) => Promise<Minted>;
|
|
43
|
-
/** The gateway the log is read from with the call's own token. Default `https://cloud.pinecall.io`. */
|
|
44
|
-
gateway?: string | undefined;
|
|
45
|
-
/** The URL the call's log is relayed at by the tenant's server, for a page that must not reach
|
|
46
|
-
* the gateway itself. Given, the log token is not used. */
|
|
47
|
-
log?: ((call: string, minted?: Minted) => string) | undefined;
|
|
48
|
-
/** Ask the tenant's server to have the agent call `to`: the call, and its log token. */
|
|
49
|
-
callMe?: ((to: string) => Promise<{
|
|
50
|
-
call: string;
|
|
51
|
-
log_token?: string | undefined;
|
|
52
|
-
}>) | undefined;
|
|
53
|
-
/** Ask the tenant's server for a code the visitor keys when they call the agent's number. */
|
|
54
|
-
expect?: (() => Promise<Code>) | undefined;
|
|
55
|
-
/** How long the log is read after the seat closes, waiting for the score. Default 60 000 ms: a worker
|
|
56
|
-
* notices a caller has gone some twenty seconds after the fact, and the score comes after that. */
|
|
57
|
-
linger?: number | undefined;
|
|
58
|
-
fetch?: typeof fetch | undefined;
|
|
59
|
-
livekit?: (() => Promise<LivekitModule>) | undefined;
|
|
60
|
-
/** An entry of the log this copy of the wire could not read. The rest of the call still draws. */
|
|
61
|
-
onSkipped?: ((why: string) => void) | undefined;
|
|
62
|
-
}
|
|
63
|
-
export interface RoomStore extends Store<RoomState> {
|
|
64
|
-
/** A new conversation; with `resume`, the one kept under it: the same call while it still waits for
|
|
65
|
-
* the visitor, else a new call whose agent opens on what was said. */
|
|
66
|
-
start(mode: "talk" | "chat", resume?: string): Promise<void>;
|
|
67
|
-
send(text: string): Promise<void>;
|
|
68
|
-
callMe(to: string): Promise<void>;
|
|
69
|
-
byPhone(): Promise<void>;
|
|
70
|
-
leave(): Promise<void>;
|
|
71
|
-
playSound(): void;
|
|
72
|
-
}
|
|
2
|
+
import type { RoomOptions, RoomStore } from "./surface.js";
|
|
3
|
+
export type { Code, Minted, Mode, Phase, RoomOptions, RoomState, RoomStore } from "./surface.js";
|
|
73
4
|
/** A room for one visitor. Nothing opens until a verb is called. */
|
|
74
5
|
export declare function room(options: RoomOptions): RoomStore;
|
|
75
6
|
//# sourceMappingURL=room.d.ts.map
|
package/dist/room.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"AAAA,kHAAkH;
|
|
1
|
+
{"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"AAAA,kHAAkH;AAsBlH,OAAO,KAAK,EAAQ,WAAW,EAAa,SAAS,EAAE,MAAM,cAAc,CAAC;AAE5E,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAwBjG,oEAAoE;AACpE,wBAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,CAsRpD"}
|
package/dist/room.js
CHANGED
|
@@ -7,9 +7,7 @@
|
|
|
7
7
|
// The log is folded by the protocol's own reducer, so what the page draws is what the console
|
|
8
8
|
// draws, from the same bytes. A phone call has no seat at all: the log is the whole of it — and
|
|
9
9
|
// when the visitor calls the agent, a code they key on the phone names the call the page follows.
|
|
10
|
-
import {} from "./wire/envelope.js";
|
|
11
10
|
import { initialState } from "./wire/reduce.js";
|
|
12
|
-
import {} from "./wire/state.js";
|
|
13
11
|
import { claimOf } from "./code.js";
|
|
14
12
|
import { LogFold } from "./log/fold.js";
|
|
15
13
|
import { followLog } from "./log/follow.js";
|
|
@@ -64,13 +62,13 @@ export function room(options) {
|
|
|
64
62
|
if (!current(c))
|
|
65
63
|
return;
|
|
66
64
|
void shut(c);
|
|
67
|
-
publish({ phase: "failed", error, connection: "ended", wantsSound: false, speaking: QUIET });
|
|
65
|
+
publish({ phase: "failed", error, connection: "ended", wantsSound: false, speaking: QUIET, voice: null });
|
|
68
66
|
};
|
|
69
67
|
// The call is over for the visitor. The seat goes now; the log is read a while longer, because
|
|
70
68
|
// the agent's last words, the cost and the score are entries that arrive after the room closed.
|
|
71
69
|
// A seat the visitor left by choice says it hung up, at the door and in the room; any other leaves the call to wait.
|
|
72
70
|
const end = (c, parting = (seat) => seat.leave()) => {
|
|
73
|
-
publish({ phase: "ended", wantsSound: false, speaking: QUIET });
|
|
71
|
+
publish({ phase: "ended", wantsSound: false, speaking: QUIET, voice: null });
|
|
74
72
|
c.waiting?.abort();
|
|
75
73
|
const seat = c.seat;
|
|
76
74
|
c.seat = null;
|
|
@@ -173,6 +171,14 @@ export function room(options) {
|
|
|
173
171
|
if (current(c))
|
|
174
172
|
publish({ wantsSound });
|
|
175
173
|
},
|
|
174
|
+
voice: (voice) => {
|
|
175
|
+
if (current(c))
|
|
176
|
+
publish({ voice });
|
|
177
|
+
},
|
|
178
|
+
ui: (data) => {
|
|
179
|
+
if (current(c))
|
|
180
|
+
options.onUi?.(data);
|
|
181
|
+
},
|
|
176
182
|
},
|
|
177
183
|
});
|
|
178
184
|
}
|
|
@@ -215,6 +221,12 @@ export function room(options) {
|
|
|
215
221
|
follow(c, reading.log);
|
|
216
222
|
await seated(c, mode, minted);
|
|
217
223
|
},
|
|
224
|
+
async event(name, data = {}) {
|
|
225
|
+
const seat = now?.seat ?? null;
|
|
226
|
+
if (store.state.phase !== "live" || seat === null)
|
|
227
|
+
throw new Error("not in a call");
|
|
228
|
+
await seat.event(name, data);
|
|
229
|
+
},
|
|
218
230
|
async callMe(to) {
|
|
219
231
|
const c = begin("phone");
|
|
220
232
|
if (c === null)
|
|
@@ -328,6 +340,7 @@ function idle() {
|
|
|
328
340
|
connection: "ended",
|
|
329
341
|
wantsSound: false,
|
|
330
342
|
speaking: QUIET,
|
|
343
|
+
voice: null,
|
|
331
344
|
code: null,
|
|
332
345
|
resume: "",
|
|
333
346
|
};
|
package/dist/room.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room.js","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"room.js","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"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"}
|
package/dist/seat/join.d.ts
CHANGED
|
@@ -14,6 +14,10 @@ export interface SeatHears {
|
|
|
14
14
|
speaking: (speaking: Speaking) => void;
|
|
15
15
|
/** True when the browser has not been told it may make a sound. */
|
|
16
16
|
wantsSound: (wanted: boolean) => void;
|
|
17
|
+
/** The element the agent's voice plays in, as it arrives; null once it has gone. */
|
|
18
|
+
voice: (element: HTMLMediaElement | null) => void;
|
|
19
|
+
/** What the agent put on the visitor's screen (`pinecall.ui`), decoded; never a line of the conversation. */
|
|
20
|
+
ui: (data: unknown) => void;
|
|
17
21
|
}
|
|
18
22
|
export interface SeatOptions {
|
|
19
23
|
livekit: LivekitModule;
|
|
@@ -26,6 +30,8 @@ export interface SeatOptions {
|
|
|
26
30
|
/** A taken seat. Leaving is final; `on.disconnected` is not called for a seat that left. */
|
|
27
31
|
export interface Seat {
|
|
28
32
|
send(text: string): Promise<void>;
|
|
33
|
+
/** A fact about the page, for the agent's `onEvent`: `{name, data}` on `pinecall.event`. */
|
|
34
|
+
event(name: string, data: Record<string, unknown>): Promise<void>;
|
|
29
35
|
/** Leave, the call going on without the page: a reload looks like this, and the call waits for it. */
|
|
30
36
|
leave(): Promise<void>;
|
|
31
37
|
/** Say the visitor hung up, then leave: the call ends at once instead of waiting for them. */
|
package/dist/seat/join.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../src/seat/join.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAE/F,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,cAAc,CAAC;AACnE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,2EAA2E;AAC3E,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,mEAAmE;AACnE,MAAM,WAAW,SAAS;IACxB,mFAAmF;IACnF,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC,mEAAmE;IACnE,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../src/seat/join.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAE/F,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,cAAc,CAAC;AACnE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,2EAA2E;AAC3E,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,mEAAmE;AACnE,MAAM,WAAW,SAAS;IACxB,mFAAmF;IACnF,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC,mEAAmE;IACnE,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,oFAAoF;IACpF,KAAK,EAAE,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,6GAA6G;IAC7G,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,EAAE,SAAS,CAAC;CACf;AAED,4FAA4F;AAC5F,MAAM,WAAW,IAAI;IACnB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,4FAA4F;IAC5F,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,sGAAsG;IACtG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,8FAA8F;IAC9F,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,SAAS,IAAI,IAAI,CAAC;IAClB,gBAAgB,IAAI,OAAO,CAAC;CAC7B;AAcD,sGAAsG;AACtG,wBAAsB,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA4ElE"}
|
package/dist/seat/join.js
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
const CHAT = "lk.chat";
|
|
4
4
|
/** The topic a hang-up is said on: a hang-up and a reload both disconnect the seat alike. */
|
|
5
5
|
const HANGUP = "pinecall.hangup";
|
|
6
|
+
/** The topic a fact about the page rides on; the runtime hands it to the agent's `onEvent`. */
|
|
7
|
+
const EVENT = "pinecall.event";
|
|
8
|
+
/** The topic the agent shows things on: `call.send("pinecall.ui", data)`. */
|
|
9
|
+
const UI = "pinecall.ui";
|
|
6
10
|
/** Join the room. Rejects with the room's own error when it cannot connect or hear the microphone. */
|
|
7
11
|
export async function joinSeat(options) {
|
|
8
12
|
const { livekit, mode, sink, on } = options;
|
|
@@ -15,13 +19,29 @@ export async function joinSeat(options) {
|
|
|
15
19
|
return room.disconnect();
|
|
16
20
|
};
|
|
17
21
|
// Chat never plays the agent: a written conversation that starts talking out loud is a bug.
|
|
22
|
+
// Every audio track plays; the voice is the one published as a microphone. The agent's hold
|
|
23
|
+
// melody is a second audio track, and taken for the voice it left the face hearing silence.
|
|
18
24
|
room.on(RoomEvent.TrackSubscribed, (track) => {
|
|
19
|
-
if (mode
|
|
20
|
-
|
|
25
|
+
if (mode !== "talk" || track.kind !== livekit.Track.Kind.Audio)
|
|
26
|
+
return;
|
|
27
|
+
const element = track.attach();
|
|
28
|
+
sink.add(element);
|
|
29
|
+
if (track.source === livekit.Track.Source.Microphone)
|
|
30
|
+
on.voice(element);
|
|
21
31
|
});
|
|
22
32
|
room.on(RoomEvent.TrackUnsubscribed, (track) => {
|
|
23
|
-
|
|
33
|
+
const gone = track.detach();
|
|
34
|
+
for (const element of gone)
|
|
24
35
|
sink.remove(element);
|
|
36
|
+
if (gone.length > 0 && track.source === livekit.Track.Source.Microphone)
|
|
37
|
+
on.voice(null);
|
|
38
|
+
});
|
|
39
|
+
room.on(RoomEvent.DataReceived, (payload, _from, _kind, topic) => {
|
|
40
|
+
if (topic !== UI)
|
|
41
|
+
return;
|
|
42
|
+
const data = decoded(payload);
|
|
43
|
+
if (data !== undefined)
|
|
44
|
+
on.ui(data);
|
|
25
45
|
});
|
|
26
46
|
room.on(RoomEvent.Disconnected, () => {
|
|
27
47
|
if (left)
|
|
@@ -46,6 +66,10 @@ export async function joinSeat(options) {
|
|
|
46
66
|
async send(text) {
|
|
47
67
|
await room.localParticipant.sendText(text, { topic: CHAT });
|
|
48
68
|
},
|
|
69
|
+
async event(name, data) {
|
|
70
|
+
const packed = new TextEncoder().encode(JSON.stringify({ name, data }));
|
|
71
|
+
await room.localParticipant.publishData(packed, { topic: EVENT, reliable: true });
|
|
72
|
+
},
|
|
49
73
|
leave,
|
|
50
74
|
async hangUp() {
|
|
51
75
|
// Said or not, the seat goes: a network that has gone leaves the call to wait, as for a reload.
|
|
@@ -70,4 +94,13 @@ function speakingOf(speakers, me) {
|
|
|
70
94
|
level: remote?.audioLevel ?? 0,
|
|
71
95
|
};
|
|
72
96
|
}
|
|
97
|
+
/** A payload as JSON, or undefined when it is not: an agent's bad bytes are not the page's error. */
|
|
98
|
+
function decoded(payload) {
|
|
99
|
+
try {
|
|
100
|
+
return JSON.parse(new TextDecoder().decode(payload));
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
73
106
|
//# sourceMappingURL=join.js.map
|
package/dist/seat/join.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"join.js","sourceRoot":"","sources":["../../src/seat/join.ts"],"names":[],"mappings":"AAAA,+FAA+F;
|
|
1
|
+
{"version":3,"file":"join.js","sourceRoot":"","sources":["../../src/seat/join.ts"],"names":[],"mappings":"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"}
|
package/dist/seat/livekit.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/** The one door to livekit-client: loaded when a seat is taken, and the little of it the seat uses. */
|
|
2
|
-
/** A remote track as the seat handles it: its kind, and the element that plays it. */
|
|
2
|
+
/** A remote track as the seat handles it: its kind, what it carries, and the element that plays it. */
|
|
3
3
|
export interface SeatTrack {
|
|
4
4
|
readonly kind: string;
|
|
5
|
+
/** The agent's voice is its microphone; the hold melody beside it is another source. */
|
|
6
|
+
readonly source: string;
|
|
5
7
|
attach(): HTMLMediaElement;
|
|
6
8
|
detach(): HTMLMediaElement[];
|
|
7
9
|
}
|
|
@@ -21,7 +23,7 @@ export interface SeatLocal extends SeatParticipant {
|
|
|
21
23
|
reliable: boolean;
|
|
22
24
|
}): Promise<unknown>;
|
|
23
25
|
}
|
|
24
|
-
/** The room the page joins.
|
|
26
|
+
/** The room the page joins. Six events are listened to; nothing else of LiveKit's is named. */
|
|
25
27
|
export interface SeatRoom {
|
|
26
28
|
readonly localParticipant: SeatLocal;
|
|
27
29
|
readonly canPlaybackAudio: boolean;
|
|
@@ -33,6 +35,7 @@ export interface SeatRoom {
|
|
|
33
35
|
on(event: "disconnected", listener: () => void): this;
|
|
34
36
|
on(event: "audioPlaybackChanged", listener: (playing: boolean) => void): this;
|
|
35
37
|
on(event: "activeSpeakersChanged", listener: (speakers: SeatParticipant[]) => void): this;
|
|
38
|
+
on(event: "dataReceived", listener: (payload: Uint8Array, from?: SeatParticipant, kind?: unknown, topic?: string) => void): this;
|
|
36
39
|
}
|
|
37
40
|
/** What `import("livekit-client")` has to offer the seat. A test hands in a fake of this shape. */
|
|
38
41
|
export interface LivekitModule {
|
|
@@ -43,11 +46,15 @@ export interface LivekitModule {
|
|
|
43
46
|
readonly Disconnected: "disconnected";
|
|
44
47
|
readonly AudioPlaybackStatusChanged: "audioPlaybackChanged";
|
|
45
48
|
readonly ActiveSpeakersChanged: "activeSpeakersChanged";
|
|
49
|
+
readonly DataReceived: "dataReceived";
|
|
46
50
|
};
|
|
47
51
|
Track: {
|
|
48
52
|
Kind: {
|
|
49
53
|
readonly Audio: "audio";
|
|
50
54
|
};
|
|
55
|
+
Source: {
|
|
56
|
+
readonly Microphone: "microphone";
|
|
57
|
+
};
|
|
51
58
|
};
|
|
52
59
|
}
|
|
53
60
|
/** livekit-client, the moment a seat is needed. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"livekit.d.ts","sourceRoot":"","sources":["../../src/seat/livekit.ts"],"names":[],"mappings":"AAAA,uGAAuG;AAEvG,
|
|
1
|
+
{"version":3,"file":"livekit.d.ts","sourceRoot":"","sources":["../../src/seat/livekit.ts"],"names":[],"mappings":"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"}
|
package/dist/seat/livekit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"livekit.js","sourceRoot":"","sources":["../../src/seat/livekit.ts"],"names":[],"mappings":"AAAA,uGAAuG;
|
|
1
|
+
{"version":3,"file":"livekit.js","sourceRoot":"","sources":["../../src/seat/livekit.ts"],"names":[],"mappings":"AAAA,uGAAuG;AAqDvG,kGAAkG;AAClG,qEAAqE;AACrE,mDAAmD;AACnD,MAAM,UAAU,WAAW;IACzB,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/** What a room is to the page: its phases, the state it publishes, the options it takes and its verbs. */
|
|
2
|
+
import { type Entry } from "./wire/envelope.js";
|
|
3
|
+
import { type State } from "./wire/state.js";
|
|
4
|
+
import type { Connection } from "./log/follow.js";
|
|
5
|
+
import type { Speaking } from "./seat/join.js";
|
|
6
|
+
import type { LivekitModule } from "./seat/livekit.js";
|
|
7
|
+
import type { Code, Minted } from "./server/index.js";
|
|
8
|
+
import type { Store } from "./store.js";
|
|
9
|
+
export type { Code, Minted };
|
|
10
|
+
/** Where the conversation is. `ringing`: a phone call nobody answered yet; `expecting`: a code no call claimed yet. */
|
|
11
|
+
export type Phase = "idle" | "opening" | "expecting" | "ringing" | "live" | "ended" | "failed";
|
|
12
|
+
/** Spoken, written, or on the visitor's own phone. The same agent every way. */
|
|
13
|
+
export type Mode = "talk" | "chat" | "phone";
|
|
14
|
+
/** Everything the page draws from. Every field is the truth at the moment it was published. */
|
|
15
|
+
export interface RoomState {
|
|
16
|
+
phase: Phase;
|
|
17
|
+
mode: Mode | null;
|
|
18
|
+
call: string;
|
|
19
|
+
/** The sentence to show when phase is "failed". */
|
|
20
|
+
error: string;
|
|
21
|
+
/** Where the call's recording plays from once it has ended, or "" when the log is relayed. */
|
|
22
|
+
recording: string;
|
|
23
|
+
/** The call as the protocol folds it: turns, tools, the agent's state, the cost once it is known. */
|
|
24
|
+
log: State;
|
|
25
|
+
entries: Entry[];
|
|
26
|
+
connection: Connection;
|
|
27
|
+
/** True when the browser has not been told it may make a sound: ask for a click. */
|
|
28
|
+
wantsSound: boolean;
|
|
29
|
+
speaking: Speaking;
|
|
30
|
+
/** The element the agent's voice plays in, for a page that listens to it; null outside a spoken call. */
|
|
31
|
+
voice: HTMLMediaElement | null;
|
|
32
|
+
/** The code to show beside the number to call, from `expecting` on; `expiresAt` in seconds since the epoch. */
|
|
33
|
+
code: {
|
|
34
|
+
code: string;
|
|
35
|
+
number: string;
|
|
36
|
+
expiresAt: number;
|
|
37
|
+
} | null;
|
|
38
|
+
/** What to keep to resume this conversation later with `start(mode, resume)`; "" when the gateway gave none. */
|
|
39
|
+
resume: string;
|
|
40
|
+
}
|
|
41
|
+
export interface RoomOptions {
|
|
42
|
+
/** A ticket for a seat, from the tenant's own server. The page never holds a key. `resume` is the
|
|
43
|
+
* token a resumed conversation was kept with: the server sends it on as `resume` in its mint. */
|
|
44
|
+
tokens: (scope: "talk" | "chat", resume?: string) => Promise<Minted>;
|
|
45
|
+
/** The gateway the log is read from with the call's own token. Default `https://cloud.pinecall.io`. */
|
|
46
|
+
gateway?: string | undefined;
|
|
47
|
+
/** The URL the call's log is relayed at by the tenant's server, for a page that must not reach
|
|
48
|
+
* the gateway itself. Given, the log token is not used. */
|
|
49
|
+
log?: ((call: string, minted?: Minted) => string) | undefined;
|
|
50
|
+
/** Ask the tenant's server to have the agent call `to`: the call, and its log token. */
|
|
51
|
+
callMe?: ((to: string) => Promise<{
|
|
52
|
+
call: string;
|
|
53
|
+
log_token?: string | undefined;
|
|
54
|
+
}>) | undefined;
|
|
55
|
+
/** Ask the tenant's server for a code the visitor keys when they call the agent's number. */
|
|
56
|
+
expect?: (() => Promise<Code>) | undefined;
|
|
57
|
+
/** How long the log is read after the seat closes, waiting for the score. Default 60 000 ms: a worker
|
|
58
|
+
* notices a caller has gone some twenty seconds after the fact, and the score comes after that. */
|
|
59
|
+
linger?: number | undefined;
|
|
60
|
+
fetch?: typeof fetch | undefined;
|
|
61
|
+
livekit?: (() => Promise<LivekitModule>) | undefined;
|
|
62
|
+
/** An entry of the log this copy of the wire could not read. The rest of the call still draws. */
|
|
63
|
+
onSkipped?: ((why: string) => void) | undefined;
|
|
64
|
+
/** What the agent put on the visitor's screen with `call.send("pinecall.ui", data)`, as it sent it. */
|
|
65
|
+
onUi?: ((data: unknown) => void) | undefined;
|
|
66
|
+
}
|
|
67
|
+
export interface RoomStore extends Store<RoomState> {
|
|
68
|
+
/** A new conversation; with `resume`, the one kept under it: the same call while it still waits for
|
|
69
|
+
* the visitor, else a new call whose agent opens on what was said. */
|
|
70
|
+
start(mode: "talk" | "chat", resume?: string): Promise<void>;
|
|
71
|
+
send(text: string): Promise<void>;
|
|
72
|
+
/** Tell the agent what the visitor did on the page. Its `onEvent(name, data)` runs when its class
|
|
73
|
+
* accepts `name` from a participant; any other name is dropped by the runtime. */
|
|
74
|
+
event(name: string, data?: Record<string, unknown>): Promise<void>;
|
|
75
|
+
callMe(to: string): Promise<void>;
|
|
76
|
+
byPhone(): Promise<void>;
|
|
77
|
+
leave(): Promise<void>;
|
|
78
|
+
playSound(): void;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=surface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"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"}
|
package/dist/surface.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAE1G,OAAO,EAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAc,MAAM,iBAAiB,CAAC"}
|
package/dist/wire/envelope.d.ts
CHANGED
|
@@ -7,8 +7,8 @@ import { z } from "zod";
|
|
|
7
7
|
export declare const EntrySchema: z.ZodObject<{
|
|
8
8
|
seq: z.ZodInt;
|
|
9
9
|
ts: z.ZodNumber;
|
|
10
|
-
call: z.ZodNullable<z.ZodString
|
|
11
|
-
agent: z.ZodString
|
|
10
|
+
call: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
11
|
+
agent: z.ZodOptional<z.ZodString>;
|
|
12
12
|
type: z.ZodString;
|
|
13
13
|
ephemeral: z.ZodBoolean;
|
|
14
14
|
data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/wire/envelope.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAE9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/wire/envelope.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAE9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;kBAUtB,CAAC;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC"}
|
package/dist/wire/envelope.js
CHANGED
|
@@ -7,8 +7,10 @@ import { z } from "zod";
|
|
|
7
7
|
export const EntrySchema = z.strictObject({
|
|
8
8
|
seq: z.int(),
|
|
9
9
|
ts: z.number(),
|
|
10
|
-
call:
|
|
11
|
-
|
|
10
|
+
// The public projection, what a call's own token reads, leaves both out: a participant learns
|
|
11
|
+
// nothing of the tenant's setup (docs/protocol/projections.md).
|
|
12
|
+
call: z.string().nullable().optional(),
|
|
13
|
+
agent: z.string().optional(),
|
|
12
14
|
type: z.string(),
|
|
13
15
|
ephemeral: z.boolean(),
|
|
14
16
|
data: z.record(z.string(), z.unknown()),
|