@pinecall/dot 0.11.22 → 0.11.24

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.
Files changed (39) hide show
  1. package/README.md +13 -7
  2. package/dist/agent/tutor.d.ts +4 -0
  3. package/dist/agent/tutor.d.ts.map +1 -1
  4. package/dist/agent/tutor.js +21 -5
  5. package/dist/agent/tutor.js.map +1 -1
  6. package/dist/pointer/card.js +2 -2
  7. package/dist/pointer/flight.d.ts +12 -4
  8. package/dist/pointer/flight.d.ts.map +1 -1
  9. package/dist/pointer/flight.js +47 -11
  10. package/dist/pointer/flight.js.map +1 -1
  11. package/dist/pointer/menu.d.ts +2 -4
  12. package/dist/pointer/menu.d.ts.map +1 -1
  13. package/dist/pointer/menu.js +30 -41
  14. package/dist/pointer/menu.js.map +1 -1
  15. package/dist/pointer/person.d.ts +1 -1
  16. package/dist/pointer/person.d.ts.map +1 -1
  17. package/dist/pointer/person.js +17 -13
  18. package/dist/pointer/person.js.map +1 -1
  19. package/dist/pointer/sections.d.ts +4 -7
  20. package/dist/pointer/sections.d.ts.map +1 -1
  21. package/dist/pointer/sections.js +11 -17
  22. package/dist/pointer/sections.js.map +1 -1
  23. package/dist/tutor/tutor.d.ts.map +1 -1
  24. package/dist/tutor/tutor.js +4 -3
  25. package/dist/tutor/tutor.js.map +1 -1
  26. package/dist/tutor/walking.d.ts +6 -2
  27. package/dist/tutor/walking.d.ts.map +1 -1
  28. package/dist/tutor/walking.js +21 -6
  29. package/dist/tutor/walking.js.map +1 -1
  30. package/dist/tutor/walks.d.ts.map +1 -1
  31. package/dist/tutor/walks.js +8 -6
  32. package/dist/tutor/walks.js.map +1 -1
  33. package/dist/wire/index.d.ts +12 -0
  34. package/dist/wire/index.d.ts.map +1 -1
  35. package/dist/wire/index.js +25 -2
  36. package/dist/wire/index.js.map +1 -1
  37. package/docs/macros.md +166 -0
  38. package/docs/write-a-tutor.md +223 -0
  39. package/package.json +7 -6
@@ -1 +1 @@
1
- {"version":3,"file":"walks.js","sourceRoot":"","sources":["../../src/tutor/walks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"walks.js","sourceRoot":"","sources":["../../src/tutor/walks.ts"],"names":[],"mappings":"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"}
@@ -72,8 +72,18 @@ export interface Macro {
72
72
  title?: string | undefined;
73
73
  /** When to run it, in the words the model reads: "the visitor asks to be shown around". */
74
74
  when?: string | undefined;
75
+ /** The paths of the pages it is for: `["/security"]`. Left out, it is for every page. */
76
+ pages?: string[] | undefined;
75
77
  steps: MacroStep[];
76
78
  }
79
+ /**
80
+ * The name of the document the walks of a page are published under: `walks` for the home, `walks-security`
81
+ * for `/security`. A document is read by every visitor of its page, so each page has its own: a page asks
82
+ * only for the walks that are for it. (A document's name is a lower case letter, then letters, digits and dashes, 40 at most.)
83
+ */
84
+ export declare function walksDocument(path: string): string;
85
+ /** Whether a walk for `pages` is for the page at `path`: any walk is, with no pages named; a path unknown is any page. */
86
+ export declare function onPage(pages: readonly string[] | undefined, path: string): boolean;
77
87
  /** A written word of a recorded sentence, and when it is said, in ms from the start of its audio. */
78
88
  export interface TimedWord {
79
89
  text: string;
@@ -95,6 +105,8 @@ export interface RecordedWalk {
95
105
  when?: string | undefined;
96
106
  /** The voice it was recorded in, as the gateway names it: `cartesia sonic-3 f786b574…`. */
97
107
  voice?: string | undefined;
108
+ /** The paths of the pages it is for; none, every page. */
109
+ pages?: string[] | undefined;
98
110
  steps: RecordedStep[];
99
111
  }
100
112
  /** The agent asking for the page as it is now: sent when its call opens, answered with `page.seen`. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wire/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wire/index.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,23 @@ export const WALKS = "walks";
30
30
  export const ACTIONS = ["point", "highlight", "unhighlight", "scroll_to", "here", "home", "type"];
31
31
  /** A target that is a ref of the snapshot rather than a name. */
32
32
  export const A_REF = /^e\d+$/;
33
+ /** A path as a page names it: no trailing slash but the root's. */
34
+ const pathOf = (path) => (path.length > 1 ? path.replace(/\/+$/, "") : path) || "/";
35
+ /**
36
+ * The name of the document the walks of a page are published under: `walks` for the home, `walks-security`
37
+ * for `/security`. A document is read by every visitor of its page, so each page has its own: a page asks
38
+ * only for the walks that are for it. (A document's name is a lower case letter, then letters, digits and dashes, 40 at most.)
39
+ */
40
+ export function walksDocument(path) {
41
+ const slug = pathOf(path).toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
42
+ return slug === "" ? "walks" : `walks-${slug}`.slice(0, 40).replace(/-+$/, "");
43
+ }
44
+ /** Whether a walk for `pages` is for the page at `path`: any walk is, with no pages named; a path unknown is any page. */
45
+ export function onPage(pages, path) {
46
+ if (pages === undefined || pages.length === 0 || path === "")
47
+ return true;
48
+ return pages.some((page) => pathOf(page) === pathOf(path));
49
+ }
33
50
  /** What a step shows, checked; null for one that is not: a window with no title or text, lines out of order. */
34
51
  export function shownOf(fields) {
35
52
  const { code, lines } = fields;
@@ -143,13 +160,14 @@ export function walksOf(value) {
143
160
  if (typeof item !== "object" || item === null)
144
161
  return [];
145
162
  const walk = { ...item };
146
- const { name, title, when, steps } = walk;
163
+ const { name, title, when, steps, pages } = walk;
147
164
  if (typeof name !== "string" || typeof title !== "string" || !Array.isArray(steps) || steps.length === 0)
148
165
  return [];
149
166
  const checked = steps.map(stepOf);
150
167
  if (checked.some((step) => step === null))
151
168
  return [];
152
- return [{ name, title, when: typeof when === "string" ? when : undefined, steps: checked.filter((step) => step !== null) }];
169
+ const paths = Array.isArray(pages) && pages.every((page) => typeof page === "string") ? pages : undefined;
170
+ return [{ name, title, when: typeof when === "string" ? when : undefined, pages: paths, steps: checked.filter((step) => step !== null) }];
153
171
  });
154
172
  }
155
173
  /** A macro as its JSON file says it, checked; it throws naming what is wrong, at the class's load. */
@@ -181,10 +199,15 @@ export function macroOf(name, value) {
181
199
  });
182
200
  const when = macro["when"];
183
201
  const title = macro["title"];
202
+ const pages = macro["pages"];
203
+ if (pages !== undefined && !(Array.isArray(pages) && pages.every((page) => typeof page === "string" && page.startsWith("/")))) {
204
+ throw new Error(`macro ${name}: pages are paths that begin with a slash, as ["/security"]`);
205
+ }
184
206
  return {
185
207
  name: typeof macro["name"] === "string" ? macro["name"] : name,
186
208
  title: typeof title === "string" ? title : undefined,
187
209
  when: typeof when === "string" ? when : undefined,
210
+ pages: pages === undefined ? undefined : pages,
188
211
  steps: checked,
189
212
  };
190
213
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wire/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wire/index.ts"],"names":[],"mappings":"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"}
package/docs/macros.md ADDED
@@ -0,0 +1,166 @@
1
+ # Macros
2
+
3
+ > **Experimental.** `@pinecall/dot` may change in any release. This page is true of the version it ships with.
4
+
5
+ A macro is a guided walk, a JSON file in the agent's folder (`macros/<name>.json`). The agent says
6
+ each step as written; the page runs each step's moves as their words are said. The same file is
7
+ what a visitor plays with no call (a *walk*, recorded in the agent's voice). [Write a tutor
8
+ agent](write-a-tutor.md) shows where it goes; this page is the format.
9
+
10
+ ```json
11
+ {
12
+ "name": "plans",
13
+ "title": "Plans and prices",
14
+ "when": "the visitor asks what it costs, or which plan to choose",
15
+ "steps": [
16
+ {
17
+ "say": "Here are our three plans: one monthly price instead of a surprise bill.",
18
+ "beats": [
19
+ { "word": "Here", "do": "scroll_to", "find": ["region", "Pricing"] },
20
+ { "word": "three", "do": "highlight", "find": ["region", "Pricing"] }
21
+ ]
22
+ },
23
+ {
24
+ "say": "Family Care is the one most families pick.",
25
+ "beats": [
26
+ { "word": "Family", "do": "highlight", "find": ["article", "Family Care plan"] },
27
+ { "word": "pick", "do": "point", "find": ["article", "Family Care plan"] }
28
+ ]
29
+ }
30
+ ]
31
+ }
32
+ ```
33
+
34
+ ## The file
35
+
36
+ | field | |
37
+ |---|---|
38
+ | `name` | what the model names it in `runMacro`. The key it is given in `macros({ plans })` when left out |
39
+ | `title` | the visitor's button: "Plans and prices". `name` when left out |
40
+ | `when` | when to run it, in the words the model reads: "the visitor asks what it costs" |
41
+ | `pages` | the paths of the pages it is for: `["/security"]`. Left out, it is for every page. See below |
42
+ | `steps` | at least one |
43
+
44
+ A step:
45
+
46
+ | field | |
47
+ |---|---|
48
+ | `say` | the sentence, said exactly as written |
49
+ | `beats` | the moves hung on its words; may be empty |
50
+ | `code` | `{ "title": "agent.ts", "text": "…" }` opens a window of code beside the page; `null` closes it. A step that names none leaves the window as it is |
51
+ | `lines` | `[from, to]`, from 1: lights those lines of the window and dims the rest, and the pointer goes to them |
52
+
53
+ A beat:
54
+
55
+ | field | |
56
+ |---|---|
57
+ | `word` | the word of `say` it runs on. Case and punctuation do not count: `"Whitening,"` is `whitening` |
58
+ | `do` | the move, below |
59
+ | `find` | `[role, name]`: the element, as the page's snapshot names it. Needed by every move but `unhighlight`, `here` and `home` |
60
+ | `nth` | which time the word is said in the step, from 1 (the first by default), for a word that repeats |
61
+
62
+ ## The moves
63
+
64
+ | `do` | |
65
+ |---|---|
66
+ | `point` | the pointer flies to the element, the face beside it, and rests under its first words. Scrolls first if it is off the screen |
67
+ | `highlight` | dims the rest of the page and lights the element, following it as the page scrolls |
68
+ | `unhighlight` | takes the light away |
69
+ | `scroll_to` | scrolls the page, eased, until the element sits in the upper middle of the screen, below the site's own header (a fixed or sticky bar along the top, or the page's `scroll-padding-top`). A thing that fits is shown whole; a section taller than the screen shows from its start, just under the header |
70
+ | `here` | a ring at the pointer, twice |
71
+ | `home` | the pointer goes back to its corner |
72
+
73
+ A macro never types: a walk shows, and the agent writes into a field only what the visitor said.
74
+
75
+ ## Walks for some pages
76
+
77
+ A site with several pages usually has a walk for each, and a visitor on `/security` should not be
78
+ offered the tour of the home. Name the pages in the file:
79
+
80
+ ```json
81
+ { "name": "keys", "title": "Where your keys live", "pages": ["/security"], "steps": [ … ] }
82
+ ```
83
+
84
+ - **The menu** lists only the walks for the page the visitor is on (a trailing slash does not
85
+ matter: `/security` and `/security/` are one page).
86
+ - **A call** is the same: the page tells the agent its path, and the agent offers and runs only
87
+ the walks for it. A walk that names no page is for all of them, so name the home's
88
+ walks too (`"pages": ["/"]`) if they are only for the home.
89
+ - **Each page has its own published document**, so a visitor downloads only the walks for the page
90
+ they are on: `walks` for the home (with the walks that name no page), `walks-security` for `/security`,
91
+ `walks-developers-sdk` for `/developers/sdk`. The page reads its own and, where the agent published none
92
+ for it, `walks`. A document is 64 KiB at most; a page with a great many walks can pass it, and is split
93
+ by naming the pages.
94
+ - **A page that never said its path** (an older page) is offered every walk.
95
+ - A path is exact: `/developers` is not `/developers/sdk`. List both.
96
+
97
+ ## Naming elements: `find`
98
+
99
+ `find` is `[role, name]`: the first element of that role whose name *contains* the text (case does
100
+ not matter). Roles and names are the accessibility tree's, not the markup's:
101
+
102
+ | role | what it is | its name |
103
+ |---|---|---|
104
+ | `region` | a `<section>` with `aria-label` or `aria-labelledby` | that label |
105
+ | `heading` | `<h1>`–`<h6>` | its text |
106
+ | `article` | `<article>` | its `aria-label` |
107
+ | `button`, `link`, `tab` | a `<button>` or `summary`, an `<a href>`, `role="tab"` | its text or `aria-label` |
108
+ | `group` | `role="group"`, or `<details>` | its `aria-label` |
109
+ | `textbox`, `combobox`, `checkbox`, `radio` | fields | their label |
110
+ | `img` | `<img>`, `<figure>` | its `alt` |
111
+ | `form` | `<form>` | its `aria-label` |
112
+
113
+ Three habits keep a walk alive:
114
+
115
+ 1. **Name the parts you point at.** A plain `<div>` has no name, so a macro cannot find it: give
116
+ it `role="group"` and an `aria-label`, or point at its heading instead. This is the whole
117
+ reason a beat "does nothing".
118
+ 2. **Use a part of the name, not the whole.** `["region", "Pricing"]` finds "Pricing, three plans"
119
+ too; a label you reword later still matches.
120
+ 3. **A beat that finds nothing is skipped**, quietly, in a walk and in a call. The walk goes on, so a
121
+ renamed section loses a move, not the walk.
122
+
123
+ ## Writing sentences that play well
124
+
125
+ The sentence is read aloud by the agent's voice, and a walk is recorded once in it.
126
+
127
+ - **Short sentences, one idea each.** The visitor can stop at any step, and the agent is told how far
128
+ they got.
129
+ - **Put the beat on the word that names the thing**, not before it: `"Family"` for "Family Care is
130
+ the one most families pick", so the pointer arrives as the name is said. Avoid a word that is also
131
+ said earlier in the sentence unless you mean it, or give `nth`.
132
+ - **Light, then point, then let go.** `highlight` on the first word, `point` a few words later,
133
+ `unhighlight` before you move to a part of the page the light is not on.
134
+ - **Move the light before the page moves.** A step that goes to another section lights it first, on
135
+ the same word as the scroll (`highlight`, then `scroll_to`, both on that word): the light then comes
136
+ in with the section. A light left on a section the page scrolls away from dims the whole screen.
137
+ - **Write numbers and symbols as you would say them**: "nineteen dollars a month", not "$19/mo".
138
+ - **Check it with your ears.** `pinecall walks play plans` plays the recorded walk in the terminal;
139
+ a sentence cut short or a name said strangely is a lexicon entry (`pinecall lexicon`), after which
140
+ that sentence is recorded again.
141
+
142
+ ## What is checked, and when
143
+
144
+ `macros({ … })` checks every file when the agent's class loads, and refuses one that is not a JSON
145
+ object, has no steps, a step that says nothing, a beat that is not `{ word, do, find?, nth? }` or
146
+ uses `type`, a word its sentence never says, or `code`/`lines` of the wrong shape. The message names
147
+ the macro and the step:
148
+
149
+ ```
150
+ macro plans: step 2 never says "Familia"
151
+ ```
152
+
153
+ What it cannot check is the page: whether `find` names something that exists. That is found by
154
+ running it.
155
+
156
+ ## How the agent runs one
157
+
158
+ In a call, `runMacro("plans")` sends each step to the page and then says it. The model names a walk
159
+ the way it heard it: `runMacro("site tour")` runs `tour` (every word of a macro's name is in what was
160
+ asked), and an agent with a single macro runs it whatever it is called. The page binds the step to the reply that
161
+ follows and runs each beat as its word is said, by the voice's own timings. When the visitor speaks,
162
+ the walk stops and the agent answers them; the result tells it how far it got.
163
+
164
+ With no call, the page plays the recorded sentence and runs the same beats on the audio's clock,
165
+ the words lit as they are said. A call opened after a walk played is told which one and how far, so
166
+ the agent goes on from there instead of saying it again.
@@ -0,0 +1,223 @@
1
+ # Write a tutor agent
2
+
3
+ > **Experimental.** `@pinecall/dot` may change in any release. This page is true of the version it ships with.
4
+
5
+ A tutor is an agent that is also a person on your site: a dot in the corner that talks, and a
6
+ pointer of its own that shows the visitor where things are. It never clicks or sends anything for
7
+ them. This page takes you from an empty agent to one that answers a call, gives guided walks, and
8
+ draws your own tools' results on the screen. Each step runs on its own, so stop where you have what
9
+ you need.
10
+
11
+ You need a Pinecall agent project (`pinecall new`, the [tutorial](https://docs.pinecall.io/start/tutorial/))
12
+ and a site you may edit.
13
+
14
+ ## 1. The agent extends `Tutor`
15
+
16
+ ```bash
17
+ pnpm add @pinecall/dot @pinecall/agents
18
+ ```
19
+
20
+ ```tsx
21
+ // agents/pip/agent.tsx
22
+ import { macros, Tutor } from "@pinecall/dot/agent";
23
+
24
+ /**
25
+ * You are Pip, Brightside Dental's front desk, on the visitor's screen. Short sentences: everything you
26
+ * say is read aloud. Show them where things are on the page; never say you clicked something for them.
27
+ */
28
+ export default class Pip extends Tutor {
29
+ static override macros = macros({});
30
+ }
31
+ ```
32
+
33
+ That is a tutor. `Tutor` adds the pointer's tools (`point`, `highlight`, `scrollTo`, `fill`, `home`
34
+ and the rest), the page's events, and a view that prints the screen the visitor sees. If your class
35
+ has a `render()` of its own, end it with `{this.seeing()}`, or the model never reads the page:
36
+
37
+ ```tsx
38
+ override render() {
39
+ return (
40
+ <>
41
+ <p>Ask for the visitor's name before anything else.</p>
42
+ {this.seeing()}
43
+ </>
44
+ );
45
+ }
46
+ ```
47
+
48
+ A call that no tutor's page joined (the phone, a chat, a site with no dot) is the agent's alone:
49
+ the pointer's tools stay hidden and the view says nothing of a screen. One class serves both.
50
+
51
+ Hold it in the sandbox with `pinecall start`, as any agent.
52
+
53
+ ## 2. The site draws the dot
54
+
55
+ The quickest way is the widget:
56
+
57
+ ```html
58
+ <script type="module" src="https://cloud.pinecall.io/widget/pinecall-widget.js"></script>
59
+ <pinecall-widget agent="pip" look="dot" tutor token-url="/pinecall/token"></pinecall-widget>
60
+ ```
61
+
62
+ `token-url` is a door of yours that mints a seat for the visitor with your org's key (never put the
63
+ key on the page; [tokens](https://docs.pinecall.io/api/tokens/)). Add `walks="sandbox"` while you
64
+ build, to read the sandbox's walks.
65
+
66
+ To own the code, build it from the two packages the widget uses:
67
+
68
+ ```ts
69
+ import { room } from "@pinecall/room";
70
+ import { tutor } from "@pinecall/dot";
71
+
72
+ let pip: ReturnType<typeof tutor> | null = null;
73
+ const call = room({
74
+ tokens: (scope, resume) => ticket(scope, resume), // your door's answer
75
+ gateway: "https://cloud.pinecall.io",
76
+ onUi: (data) => void pip?.take(data),
77
+ });
78
+ pip = tutor(call, {
79
+ label: "Talk to Pip",
80
+ onClick: () => { pip?.wake(); void call.start("talk"); }, // inside the click: audio starts only there
81
+ });
82
+ ```
83
+
84
+ Open the page, click the dot and ask "what's on this page?". The agent reads the page as roles and
85
+ names, the way Playwright's aria snapshot does, so **name the parts you want it to find**: a
86
+ `<section>` needs an `aria-label` or `aria-labelledby` to be a region; a `<div>` you want to point
87
+ at needs `role="group"` and an `aria-label`. [The README](../README.md#the-page-as-the-agent-reads-it)
88
+ shows what the agent sees.
89
+
90
+ ## 3. Write a macro
91
+
92
+ A macro is a guided walk: sentences the agent says as written, with moves hung on their words. Save
93
+ it as `agents/pip/macros/tour.json`:
94
+
95
+ ```json
96
+ {
97
+ "name": "tour",
98
+ "title": "Site tour",
99
+ "when": "the visitor asks to be shown around",
100
+ "steps": [
101
+ {
102
+ "say": "Up here are our services. Whitening is the one most people ask about.",
103
+ "beats": [
104
+ { "word": "Up", "do": "scroll_to", "find": ["region", "Services"] },
105
+ { "word": "Whitening", "do": "highlight", "find": ["article", "Whitening"] }
106
+ ]
107
+ }
108
+ ]
109
+ }
110
+ ```
111
+
112
+ and give it to the class:
113
+
114
+ ```tsx
115
+ import tour from "./macros/tour.json" with { type: "json" };
116
+
117
+ static override macros = macros({ tour });
118
+ ```
119
+
120
+ Now "show me around" in a call runs it, and `pinecall start` records it as a walk (step 4). The
121
+ [macro reference](macros.md) has every field, the moves, and how to write one that holds up.
122
+
123
+ ## 4. Walks a visitor plays with no call
124
+
125
+ As the agent starts, `Tutor` records each sentence of each macro once, in the agent's own voice,
126
+ and publishes them. The terminal says so:
127
+
128
+ ```
129
+ pip walk tour · 5 sentences · 0:38 · cartesia sonic-3 …
130
+ ```
131
+
132
+ A visitor then plays them from the dot's menu with no call and nothing spent. Turn it on by naming
133
+ where the walks are published:
134
+
135
+ ```html
136
+ <pinecall-widget … walks></pinecall-widget> <!-- production's; walks="sandbox" for the sandbox's -->
137
+ ```
138
+ ```ts
139
+ tutor(call, { walks: "https://cloud.pinecall.io/v1/agents/pip/public/walks" }); // ?env=sandbox for the sandbox's
140
+ ```
141
+
142
+ `pinecall walks list` shows what an agent published and `pinecall walks play tour` plays it in your
143
+ terminal. A sentence you did not edit costs nothing the next time; one you edit is recorded again.
144
+
145
+ **Show some walks on some pages.** Name the pages in the macro (`"pages": ["/security"]`) and the
146
+ menu, and the agent in a call, offer it only there; with no `pages` a walk is for every page
147
+ ([Macros](macros.md#walks-for-some-pages)).
148
+
149
+ **Tie a walk to the page.** A section marked `data-pinecall-walk="tour"` makes the menu mark that
150
+ walk while the visitor is on that section. A button of yours marked `data-pinecall-play="tour"` and
151
+ `hidden` is shown while that walk can play, and a click plays it:
152
+
153
+ ```html
154
+ <section id="services" data-pinecall-walk="tour" aria-labelledby="services-h">…</section>
155
+ <button data-pinecall-play="tour" hidden>Show me around</button>
156
+ ```
157
+
158
+ ## 5. Say one thing without a macro
159
+
160
+ Mark any element with the line it should say:
161
+
162
+ ```html
163
+ <article data-pinecall-say="Family Care covers up to four people for thirty-nine dollars a month.">
164
+ ```
165
+
166
+ The agent says it, with the pointer on the element, when the visitor asks about it or presses the ▶
167
+ that shows on it during a call. See [Lines on the page](../README.md#lines-on-the-page).
168
+
169
+ ## 6. Draw your own tools' results
170
+
171
+ An agent has tools of its own: free times, a booking, a piece of code. Their results are on the
172
+ call's log, so the page says how to draw each by the tool's name, on a card above the dot:
173
+
174
+ ```ts
175
+ tutor(call, {
176
+ views: {
177
+ freeSlots: (host, result, tools) => {
178
+ const { times } = result as { times: string[] };
179
+ host.innerHTML = times.map((time) => `<button>${time}</button>`).join("");
180
+ host.onclick = (event) => tools.send((event.target as HTMLElement).textContent ?? "");
181
+ },
182
+ },
183
+ });
184
+ ```
185
+
186
+ With the widget, set `widget.views = { … }` on the element. A view may draw anything (React included:
187
+ `createRoot(host)`, and return `() => root.unmount()` to take it down). `tools.send(text)` says
188
+ something to the agent in writing, as the visitor; `tools.hide()` puts the card away.
189
+
190
+ **Two things to get right:**
191
+
192
+ - **The log must carry the tools.** A visitor's seat reads the call's log through the *public*
193
+ projection, which holds no tool runs. Your token door has to ask for the tenant's: `log: "tenant"`
194
+ when it mints (`mint(key, { …, log: "tenant" })` in `@pinecall/room/server`). Without it no card
195
+ ever appears and nothing says why.
196
+ - **The log masks what the agent declared private.** A tool argument listed under `pii` reads
197
+ as `***` there. To fill a form with what the visitor said, have the tool tell the page, to this
198
+ visitor alone:
199
+
200
+ ```ts
201
+ if (this.onScreen()) this.call.send("pinecall.ui", { type: "form.fill", name, email });
202
+ ```
203
+
204
+ and handle it in `onUi` (`tutor.take(data)` is `false` for a message that is not its own):
205
+
206
+ ```ts
207
+ onUi: (data) => { if (pip?.take(data)) return; if (isFormFill(data)) fillMyForm(data); }
208
+ ```
209
+
210
+ ## 7. Try it, then ship it
211
+
212
+ 1. `pinecall start` holds the agent in the sandbox and records its walks there.
213
+ 2. Serve your site, with the dot's walks pointing at the sandbox (`walks="sandbox"`), and talk to it.
214
+ Everything a laptop does stays in the sandbox.
215
+ 3. `pinecall deploy` runs it in production, where it records its walks as it starts; the dot's
216
+ `walks` then points at production's.
217
+
218
+ ## What the tutor will not do
219
+
220
+ It never clicks, submits a form or opens another page for the visitor. It writes into a field only
221
+ what the visitor told it, never into a password, a card, a file or a hidden field. The page's words
222
+ reach the model fenced as data, never as instructions: put what other people wrote (reviews,
223
+ comments) under `data-pinecall-skip` so the agent does not read it at all.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pinecall/dot",
3
- "version": "0.11.22",
4
- "description": "The talking dot: a face that speaks with the agent's voice, and a tutor that walks the page with a pointer of its own",
3
+ "version": "0.11.24",
4
+ "description": "EXPERIMENTAL. The talking dot: a face that speaks with the agent's voice, and a tutor that walks the page with a pointer of its own",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Pinecall <hello@pinecall.io>",
7
7
  "repository": {
@@ -24,13 +24,14 @@
24
24
  }
25
25
  },
26
26
  "files": [
27
- "dist"
27
+ "dist",
28
+ "docs"
28
29
  ],
29
30
  "dependencies": {
30
- "@pinecall/room": "^0.11.22"
31
+ "@pinecall/room": "^0.11.24"
31
32
  },
32
33
  "peerDependencies": {
33
- "@pinecall/agents": "^0.11.22"
34
+ "@pinecall/agents": "^0.11.24"
34
35
  },
35
36
  "peerDependenciesMeta": {
36
37
  "@pinecall/agents": {
@@ -43,7 +44,7 @@
43
44
  "livekit-client": "^2.22.3",
44
45
  "typescript": "7.0.2",
45
46
  "vitest": "^5.0.0",
46
- "@pinecall/agents": "^0.11.22"
47
+ "@pinecall/agents": "^0.11.24"
47
48
  },
48
49
  "engines": {
49
50
  "node": ">=24"