@pinecall/dot 0.11.24 → 0.11.25

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 (120) hide show
  1. package/README.md +135 -59
  2. package/dist/agent/index.d.ts +3 -2
  3. package/dist/agent/index.d.ts.map +1 -1
  4. package/dist/agent/index.js +2 -1
  5. package/dist/agent/index.js.map +1 -1
  6. package/dist/agent/tutor.d.ts +8 -10
  7. package/dist/agent/tutor.d.ts.map +1 -1
  8. package/dist/agent/tutor.js +71 -74
  9. package/dist/agent/tutor.js.map +1 -1
  10. package/dist/agent/walks.d.ts +19 -0
  11. package/dist/agent/walks.d.ts.map +1 -0
  12. package/dist/agent/walks.js +89 -0
  13. package/dist/agent/walks.js.map +1 -0
  14. package/dist/page/page.d.ts +2 -2
  15. package/dist/page/page.d.ts.map +1 -1
  16. package/dist/page/page.js +5 -5
  17. package/dist/page/page.js.map +1 -1
  18. package/dist/page/roles.d.ts +2 -0
  19. package/dist/page/roles.d.ts.map +1 -1
  20. package/dist/page/roles.js +21 -2
  21. package/dist/page/roles.js.map +1 -1
  22. package/dist/pointer/asking.d.ts +25 -0
  23. package/dist/pointer/asking.d.ts.map +1 -0
  24. package/dist/pointer/asking.js +82 -0
  25. package/dist/pointer/asking.js.map +1 -0
  26. package/dist/pointer/flight.d.ts +28 -0
  27. package/dist/pointer/flight.d.ts.map +1 -1
  28. package/dist/pointer/flight.js +93 -7
  29. package/dist/pointer/flight.js.map +1 -1
  30. package/dist/pointer/frames.d.ts +28 -0
  31. package/dist/pointer/frames.d.ts.map +1 -0
  32. package/dist/pointer/frames.js +66 -0
  33. package/dist/pointer/frames.js.map +1 -0
  34. package/dist/pointer/icons.d.ts +8 -0
  35. package/dist/pointer/icons.d.ts.map +1 -0
  36. package/dist/pointer/icons.js +15 -0
  37. package/dist/pointer/icons.js.map +1 -0
  38. package/dist/pointer/menu.d.ts +3 -0
  39. package/dist/pointer/menu.d.ts.map +1 -1
  40. package/dist/pointer/menu.js +26 -6
  41. package/dist/pointer/menu.js.map +1 -1
  42. package/dist/pointer/person.d.ts +13 -2
  43. package/dist/pointer/person.d.ts.map +1 -1
  44. package/dist/pointer/person.js +47 -41
  45. package/dist/pointer/person.js.map +1 -1
  46. package/dist/pointer/pressing.d.ts +6 -0
  47. package/dist/pointer/pressing.d.ts.map +1 -0
  48. package/dist/pointer/pressing.js +32 -0
  49. package/dist/pointer/pressing.js.map +1 -0
  50. package/dist/pointer/typing.d.ts +5 -3
  51. package/dist/pointer/typing.d.ts.map +1 -1
  52. package/dist/pointer/typing.js +46 -15
  53. package/dist/pointer/typing.js.map +1 -1
  54. package/dist/server/index.d.ts +34 -0
  55. package/dist/server/index.d.ts.map +1 -0
  56. package/dist/server/index.js +108 -0
  57. package/dist/server/index.js.map +1 -0
  58. package/dist/server/questions.d.ts +30 -0
  59. package/dist/server/questions.d.ts.map +1 -0
  60. package/dist/server/questions.js +136 -0
  61. package/dist/server/questions.js.map +1 -0
  62. package/dist/server/saying.d.ts +31 -0
  63. package/dist/server/saying.d.ts.map +1 -0
  64. package/dist/server/saying.js +124 -0
  65. package/dist/server/saying.js.map +1 -0
  66. package/dist/tutor/acting.d.ts +42 -0
  67. package/dist/tutor/acting.d.ts.map +1 -0
  68. package/dist/tutor/acting.js +180 -0
  69. package/dist/tutor/acting.js.map +1 -0
  70. package/dist/tutor/aloud.d.ts +50 -0
  71. package/dist/tutor/aloud.d.ts.map +1 -0
  72. package/dist/tutor/aloud.js +288 -0
  73. package/dist/tutor/aloud.js.map +1 -0
  74. package/dist/tutor/ask.d.ts +49 -0
  75. package/dist/tutor/ask.d.ts.map +1 -0
  76. package/dist/tutor/ask.js +47 -0
  77. package/dist/tutor/ask.js.map +1 -0
  78. package/dist/tutor/listening.d.ts +17 -0
  79. package/dist/tutor/listening.d.ts.map +1 -0
  80. package/dist/tutor/listening.js +66 -0
  81. package/dist/tutor/listening.js.map +1 -0
  82. package/dist/tutor/options.d.ts +37 -1
  83. package/dist/tutor/options.d.ts.map +1 -1
  84. package/dist/tutor/options.js +1 -1
  85. package/dist/tutor/options.js.map +1 -1
  86. package/dist/tutor/reading.d.ts +58 -0
  87. package/dist/tutor/reading.d.ts.map +1 -0
  88. package/dist/tutor/reading.js +193 -0
  89. package/dist/tutor/reading.js.map +1 -0
  90. package/dist/tutor/text.d.ts +16 -0
  91. package/dist/tutor/text.d.ts.map +1 -0
  92. package/dist/tutor/text.js +119 -0
  93. package/dist/tutor/text.js.map +1 -0
  94. package/dist/tutor/tutor.d.ts +2 -9
  95. package/dist/tutor/tutor.d.ts.map +1 -1
  96. package/dist/tutor/tutor.js +109 -87
  97. package/dist/tutor/tutor.js.map +1 -1
  98. package/dist/tutor/walking.d.ts +20 -6
  99. package/dist/tutor/walking.d.ts.map +1 -1
  100. package/dist/tutor/walking.js +125 -25
  101. package/dist/tutor/walking.js.map +1 -1
  102. package/dist/tutor/walks.d.ts +33 -0
  103. package/dist/tutor/walks.d.ts.map +1 -1
  104. package/dist/tutor/walks.js +116 -10
  105. package/dist/tutor/walks.js.map +1 -1
  106. package/dist/wire/acts.d.ts +60 -0
  107. package/dist/wire/acts.d.ts.map +1 -0
  108. package/dist/wire/acts.js +120 -0
  109. package/dist/wire/acts.js.map +1 -0
  110. package/dist/wire/ask.d.ts +132 -0
  111. package/dist/wire/ask.d.ts.map +1 -0
  112. package/dist/wire/ask.js +102 -0
  113. package/dist/wire/ask.js.map +1 -0
  114. package/dist/wire/index.d.ts +26 -8
  115. package/dist/wire/index.d.ts.map +1 -1
  116. package/dist/wire/index.js +62 -11
  117. package/dist/wire/index.js.map +1 -1
  118. package/docs/macros.md +53 -3
  119. package/docs/write-a-tutor.md +26 -2
  120. package/package.json +8 -4
@@ -5,20 +5,28 @@
5
5
  // Down, from `pinecall.ui`: a cursor move, run at once, or a macro's step, whose moves run on their
6
6
  // words. Moves run one after another, so a scroll ends before the point that follows it. In words,
7
7
  // one side at a time: the visitor's as they say them, else the agent's as its voice says them.
8
- // With no call, the walks the agent published play from a button beside the face (`walks`).
8
+ // With no call, the walks the agent published play from a button beside the face (`walks`); a walk's
9
+ // acts (fill, press, wait, read) are done here, on the same queue as the moves (`acting.ts`).
9
10
  import { litAt, sayingOf } from "@pinecall/room";
10
11
  import { face } from "../face/index.js";
11
12
  import { Page } from "../page/page.js";
12
- import { aimOf, along, animate, coveredTop, flightMs, scrollOnto } from "../pointer/flight.js";
13
+ import { aimOf, along, animate, besideOf, flightMs, scrollOnto, shownWhole } from "../pointer/flight.js";
13
14
  import { Card } from "../pointer/card.js";
15
+ import { boxOf } from "../pointer/frames.js";
14
16
  import { Hover } from "../pointer/hover.js";
15
- import { Person, sideOf } from "../pointer/person.js";
17
+ import { fitsOn, sideOf, Person } from "../pointer/person.js";
16
18
  import { fill } from "../pointer/typing.js";
17
19
  import { A_REF, CLICKED, EXPLAIN, MISSING, MOVED, SEEN, WALKED, tutoring } from "../wire/index.js";
20
+ import { Acting, WAIT_MS } from "./acting.js";
18
21
  import { Hearing, captionsOf, keepVisitorChoice, shows, visitorWantsCaptions } from "./captions.js";
22
+ import { act, askWords } from "./ask.js";
23
+ import { listen } from "./listening.js";
24
+ import { readingWith } from "./aloud.js";
19
25
  import { Player } from "./macro.js";
20
26
  import { Screen } from "./views.js";
21
27
  import { Walks } from "./walks.js";
28
+ /** How long what the visitor asked for stays shown, its name beside the face, in ms. */
29
+ const NOTE_MS = 6000;
22
30
  /** What makes the page worth looking at again, and how long to wait for it to settle, in ms. */
23
31
  const SETTLE = { scroll: 250, resize: 250, dom: 400, toggle: 150 };
24
32
  /** Put the tutor on the page, moving with `call`. Nothing is sent until the call is live. */
@@ -39,6 +47,8 @@ export function tutor(call, options = {}) {
39
47
  hangUp: { label: options.words?.hangUp ?? "Hang up", onClick: () => void call.leave() },
40
48
  stop: { label: options.words?.stop ?? "Stop", onClick: () => walks.stop() },
41
49
  pause: { label: options.words?.pause ?? "Pause", onClick: () => walks.pause() },
50
+ back: { label: options.words?.back ?? "Back", onClick: () => walks.skip(-1) },
51
+ next: { label: options.words?.next ?? "Next", onClick: () => walks.skip(1) },
42
52
  captions: captions === "none"
43
53
  ? null
44
54
  : {
@@ -52,6 +62,10 @@ export function tutor(call, options = {}) {
52
62
  });
53
63
  const drawn = face(person.face, call, { shape: options.shape });
54
64
  const inCall = () => call.state.phase === "opening" || call.state.phase === "live";
65
+ const acting = new Acting({
66
+ document, page, door: options.ask, queued: (work) => queued(work), point: (element) => run("point", element),
67
+ ring: () => person.ring(), type: (element, text, ms) => typeInto(element, text, ms),
68
+ });
55
69
  const walks = new Walks(document, person, drawn, {
56
70
  dock: options.dock ?? "right",
57
71
  label: options.words?.walks ?? "Walks",
@@ -62,7 +76,36 @@ export function tutor(call, options = {}) {
62
76
  point: (element) => queue(() => run("point", element)),
63
77
  onWalk: options.onWalk,
64
78
  still,
79
+ ask: options.ask && options.typing !== false ? { placeholder: options.words?.ask ?? "Ask me to show you…", onAsk: (text) => asked && void act(text, asked) } : undefined,
80
+ act: (step, values, message) => acting.act(step, values, message),
81
+ voice: (walk, at, values) => acting.voice(view.location.pathname, walk, at, values),
82
+ reading: options.reading === undefined || options.ask === undefined ? undefined : readingWith(options.reading, acting, {
83
+ // The part read is lit (every frame spots `lit`) and pointed at; null puts the light out.
84
+ light: (element) => queue(async () => {
85
+ lit = element;
86
+ if (element !== null)
87
+ await run("point", element, true);
88
+ }),
89
+ queued: (work) => queued(work),
90
+ }),
65
91
  });
92
+ // What the visitor typed to the dot: a walk played, or a thing lit and pointed at with its name beside the face for a moment.
93
+ let note = null;
94
+ let showing = 0;
95
+ const asked = options.ask === undefined ? null : {
96
+ ask: options.ask, page, path: () => view.location.pathname, walks: () => walks.listed(), unlock: () => walks.unlock(),
97
+ play: (name, values, message) => walks.playNamed(name, values, message),
98
+ show: (element, role, name) => {
99
+ const mine = (showing += 1);
100
+ if (["region", "article", "group", "form"].includes(role))
101
+ queue(() => run("highlight", element));
102
+ queue(() => run("point", element));
103
+ note = { text: name, until: performance.now() + NOTE_MS };
104
+ setTimeout(() => mine === showing && queue(() => run("home", null)), NOTE_MS);
105
+ },
106
+ note: (text) => void (note = text === null ? null : { text, until: performance.now() + NOTE_MS }),
107
+ offer: (text, action) => walks.offer(text, action), talk: options.onTalk, words: askWords(options.words),
108
+ };
66
109
  const screen = new Screen(call, new Card(document, (part) => person.add(part), options.words?.close ?? "Close"), () => options.views);
67
110
  const player = new Player();
68
111
  const linger = options.linger ?? 2600;
@@ -73,9 +116,6 @@ export function tutor(call, options = {}) {
73
116
  let moves = Promise.resolve();
74
117
  let sent = "";
75
118
  let following = null;
76
- /** The element with a line under the visitor's mouse, its ▶ shown, while a call is on. */
77
- let offered = null;
78
- let leaving;
79
119
  let speech = null;
80
120
  let last = { text: "", at: 0 };
81
121
  let frame = 0;
@@ -99,13 +139,15 @@ export function tutor(call, options = {}) {
99
139
  clearTimeout(timers.get(why));
100
140
  timers.set(why, setTimeout(() => look(why), SETTLE[why]));
101
141
  };
102
- // The side the face stands on is the destination's, chosen before the flight: chosen on the way, it
103
- // covered the thing and then jumped clear of it on landing.
142
+ // The face's side is the destination's, chosen before the flight: chosen on the way, it covered the thing, then jumped
143
+ // clear. Where that side would put the words off the screen (a flight out of the corner), the side that fits there holds
144
+ // until the destination's does: the words never leave the screen.
104
145
  const fly = async (to, side) => {
105
146
  const from = person.at;
106
147
  flying = true;
107
148
  await animate(still ? 0 : flightMs(Math.hypot(to.x - from.x, to.y - from.y), view.innerWidth), (u) => {
108
- person.place(along(from, to, u), null, side);
149
+ const here = along(from, to, u);
150
+ person.place(here, null, side !== undefined && !fitsOn(here, side, view.innerWidth, view.innerHeight) ? sideOf(here, null, view.innerWidth, view.innerHeight) : side);
109
151
  if (person.touring)
110
152
  person.kind(hover.at(person.at.x, person.at.y));
111
153
  });
@@ -113,28 +155,29 @@ export function tutor(call, options = {}) {
113
155
  };
114
156
  /** What the face must not cover while the pointer is on `element`: on a window of code, the lines lit. */
115
157
  const clearOf = (element) => (element.closest(".pc-code") === null ? null : walks.code.litBox());
116
- const onScreen = (element) => {
117
- // Under the site's own header is not on the screen: the visitor cannot see it.
118
- const box = element.getBoundingClientRect();
119
- return box.bottom > coveredTop(document) && box.top < view.innerHeight;
120
- };
121
- const run = async (action, element) => {
158
+ /** A move; `beside`, a block being read pointed at from its left, the face in the margin, never on its words. */
159
+ const run = async (action, element, beside = false) => {
122
160
  switch (action) {
123
161
  case "type":
124
- // Typing takes the visitor's words: typeInto, from a cursor move; a macro's beat never types.
125
- return;
162
+ case "press":
163
+ case "wait":
164
+ return; // the visitor's words typed, a press, a wait: a step of their own (moveOnto, a walk's acts), never a beat's
126
165
  case "point": {
127
166
  if (element === null)
128
167
  return;
129
168
  person.tour(true);
130
169
  // Let go of what it pointed at before the page scrolls: held, the face rode off the screen with it.
131
170
  anchor = null;
132
- if (!onScreen(element))
171
+ // Shown whole where it scrolls (its box, the page, under the site's bars) or scrolled to: a button at the
172
+ // foot of a box, or under a sticky bar, is not on the screen the visitor sees.
173
+ if (!shownWhole(element))
133
174
  await scrollOnto(element, 0.42, still);
134
- const aim = aimOf(element);
135
- await fly(aim, sideOf(aim, clearOf(element), view.innerWidth, view.innerHeight));
136
- const box = element.getBoundingClientRect();
137
- anchor = { element, dx: aim.x - box.left, dy: aim.y - box.top };
175
+ if (beside && !shownWhole(element))
176
+ element.scrollIntoView({ block: "start" }); // a pane this did not find: the browser's own scroll
177
+ const { aim, side } = beside ? besideOf(element) : { aim: aimOf(element), side: undefined };
178
+ await fly(aim, side ?? sideOf(aim, clearOf(element), view.innerWidth, view.innerHeight));
179
+ const box = boxOf(element);
180
+ anchor = { element, dx: aim.x - box.left, dy: aim.y - box.top, side };
138
181
  return;
139
182
  }
140
183
  case "scroll_to":
@@ -165,17 +208,17 @@ export function tutor(call, options = {}) {
165
208
  }
166
209
  };
167
210
  /** The pointer onto a field, then the visitor's words typed into it; why it could not, or null. */
168
- const typeInto = async (element, text) => {
211
+ const typeInto = async (element, text, ms) => {
169
212
  if (element === null)
170
213
  return null;
171
214
  await run("point", element);
172
- return fill(element, text, still);
215
+ return fill(element, text, still, ms);
173
216
  };
174
- const needsElement = (action) => action === "point" || action === "scroll_to" || action === "highlight" || action === "type";
175
- /** The ref a target names, a ref or a name, looked at fresh; one not on the page is said, and a fresh look follows. */
176
- const resolve = (target) => {
217
+ const needsElement = (action) => action !== "unhighlight" && action !== "here" && action !== "home";
218
+ /** The ref a target names, a ref or a name (of one of `roles`), looked at fresh; one not on the page is said, and a fresh look follows. */
219
+ const resolve = (target, roles) => {
177
220
  look("step");
178
- const ref = A_REF.test(target) ? target : page.named(target);
221
+ const ref = A_REF.test(target) ? target : page.named(target, roles);
179
222
  if (ref === null || page.element(ref) === null) {
180
223
  send(MISSING, { target });
181
224
  sent = "";
@@ -185,13 +228,17 @@ export function tutor(call, options = {}) {
185
228
  return ref;
186
229
  };
187
230
  const elementOf = (ref) => (ref === null ? null : page.element(ref));
188
- /** A move onto an element, answered once it ends: the page as it is now, the ref it moved to, and why a field was not filled. */
189
- const moveOnto = async (action, target, text) => {
190
- const ref = resolve(target);
231
+ /** A move onto an element, answered once it ends: the page as it is now, the ref it moved to, and why a field was not filled or a button not pressed. */
232
+ const moveOnto = async (action, target, text, ms = WAIT_MS) => {
233
+ const ref = resolve(target, action === "press" ? ["button"] : undefined);
191
234
  const element = elementOf(ref);
192
235
  let refused = null;
193
236
  if (action === "type")
194
237
  refused = await typeInto(element, text);
238
+ else if (action === "press")
239
+ refused = element === null ? null : await acting.press(element);
240
+ else if (action === "wait")
241
+ await acting.wait(() => elementOf(ref), ms);
195
242
  else
196
243
  await run(action, element);
197
244
  const seen = page.seen();
@@ -201,11 +248,18 @@ export function tutor(call, options = {}) {
201
248
  const queue = (move) => {
202
249
  moves = moves.then(move).catch(() => undefined);
203
250
  };
251
+ /** Work after the moves already queued, its result handed back. */
252
+ const queued = (work) => {
253
+ const done = moves.then(work);
254
+ moves = done.then(() => undefined, () => undefined);
255
+ return done;
256
+ };
204
257
  const beat = (one) => {
205
258
  if (one.find === undefined)
206
259
  return run(one.do, null);
207
260
  look("step");
208
- const ref = page.find(...one.find);
261
+ // On the screen first; a row a walk read may be below it.
262
+ const ref = page.find(...one.find) ?? page.named(one.find[1], [one.find[0]]);
209
263
  return run(one.do, ref === null ? null : elementOf(resolve(ref)));
210
264
  };
211
265
  const tick = (now) => {
@@ -219,6 +273,10 @@ export function tutor(call, options = {}) {
219
273
  for (const one of walk.beats)
220
274
  queue(() => beat(one));
221
275
  }
276
+ else if (note !== null && now < note.until && !inCall()) {
277
+ person.say(note.text);
278
+ person.heard(null);
279
+ }
222
280
  else
223
281
  spoken(now);
224
282
  person.buttons(inCall(), walks.playing, captioned, walks.paused);
@@ -230,14 +288,14 @@ export function tutor(call, options = {}) {
230
288
  if (anchor !== null && (!anchor.element.isConnected || anchor.element.closest("[hidden]") !== null))
231
289
  anchor = null;
232
290
  if (!flying && anchor !== null) {
233
- const box = anchor.element.getBoundingClientRect();
234
- person.place({ x: box.left + anchor.dx, y: box.top + anchor.dy }, clearOf(anchor.element));
291
+ const box = boxOf(anchor.element);
292
+ person.place({ x: box.left + anchor.dx, y: box.top + anchor.dy }, clearOf(anchor.element), anchor.side);
235
293
  person.kind(hover.on(anchor.element));
236
294
  }
237
295
  if (lit !== null && !lit.isConnected)
238
296
  lit = null;
239
297
  person.spot(lit);
240
- person.offer(live() && offered?.isConnected === true ? offered : null);
298
+ person.offer(live() ? listening.offered() : null);
241
299
  frame = requestAnimationFrame(tick);
242
300
  };
243
301
  /** A call's words: the agent's as its voice says them, the visitor's as they say theirs, and the call's macro beats. */
@@ -286,49 +344,13 @@ export function tutor(call, options = {}) {
286
344
  queue(() => run("home", null));
287
345
  }
288
346
  });
289
- const onScroll = () => soon("scroll");
290
- const onResize = () => soon("resize");
291
- const onToggle = () => soon("toggle");
292
- // What the visitor types reaches the agent as the page's next look, as their scroll does.
293
- const onInput = (event) => {
294
- if (event.target instanceof Element && event.target.closest("[data-pinecall-skip]") === null)
295
- soon("dom");
296
- };
297
- // Over the ▶ itself (the tutor's own layer) it stays; off an element with a line it goes a moment later.
298
- const onOver = (event) => {
299
- const target = event.target instanceof Element ? event.target : null;
300
- clearTimeout(leaving);
301
- if (target?.closest("[data-pinecall-skip]") != null)
302
- return;
303
- const marked = target?.closest("[data-pinecall-say]") ?? null;
304
- if (marked !== null)
305
- offered = marked;
306
- else
307
- leaving = setTimeout(() => (offered = null), 400);
308
- };
309
- const onClick = (event) => {
310
- const target = event.target instanceof Element ? event.target : null;
311
- if (target === null || target.closest("[data-pinecall-skip]") !== null)
312
- return;
313
- const clicked = target.closest("a, button, summary, input, select, textarea, [role=button], [role=link]");
314
- if (clicked === null)
315
- return;
316
- look("click");
317
- send(CLICKED, { role: clicked.getAttribute("role") ?? clicked.tagName.toLowerCase(), name: (clicked.textContent ?? "").replace(/\s+/g, " ").trim().slice(0, 80) });
318
- };
319
- const changes = new MutationObserver((records) => {
320
- const ours = (node) => (node instanceof Element ? node : node.parentElement)?.closest("[data-pinecall-skip]") != null;
321
- if (records.every((record) => ours(record.target)))
322
- return;
323
- soon("dom");
347
+ const listening = listen(document, view, {
348
+ soon,
349
+ clicked: (clicked) => {
350
+ look("click");
351
+ send(CLICKED, { role: clicked.getAttribute("role") ?? clicked.tagName.toLowerCase(), name: (clicked.textContent ?? "").replace(/\s+/g, " ").trim().slice(0, 80) });
352
+ },
324
353
  });
325
- view.addEventListener("scroll", onScroll, { passive: true });
326
- view.addEventListener("resize", onResize);
327
- document.addEventListener("toggle", onToggle, true);
328
- document.addEventListener("click", onClick, true);
329
- document.addEventListener("input", onInput, true);
330
- document.addEventListener("pointerover", onOver, true);
331
- changes.observe(document.body, { subtree: true, childList: true, characterData: true, attributes: true, attributeFilter: ["open", "hidden", "aria-expanded", "aria-selected", "class"] });
332
354
  frame = requestAnimationFrame(tick);
333
355
  return {
334
356
  take(data) {
@@ -351,10 +373,10 @@ export function tutor(call, options = {}) {
351
373
  look("asked");
352
374
  return true;
353
375
  }
354
- const { action, target, text } = message;
376
+ const { action, target, text, ms } = message;
355
377
  queue(async () => {
356
378
  if (needsElement(action) && target !== undefined)
357
- await moveOnto(action, target, text ?? "");
379
+ await moveOnto(action, target, text ?? "", ms);
358
380
  else
359
381
  await run(action, null);
360
382
  });
@@ -363,6 +385,12 @@ export function tutor(call, options = {}) {
363
385
  wake() {
364
386
  drawn.wake();
365
387
  },
388
+ read() {
389
+ walks.read();
390
+ },
391
+ stop() {
392
+ walks.stop();
393
+ },
366
394
  close() {
367
395
  if (closed)
368
396
  return;
@@ -371,16 +399,10 @@ export function tutor(call, options = {}) {
371
399
  for (const timer of timers.values())
372
400
  clearTimeout(timer);
373
401
  walks.close();
402
+ acting.close();
374
403
  screen.close();
375
- clearTimeout(leaving);
376
404
  unsubscribe();
377
- changes.disconnect();
378
- view.removeEventListener("scroll", onScroll);
379
- view.removeEventListener("resize", onResize);
380
- document.removeEventListener("toggle", onToggle, true);
381
- document.removeEventListener("click", onClick, true);
382
- document.removeEventListener("input", onInput, true);
383
- document.removeEventListener("pointerover", onOver, true);
405
+ listening.close();
384
406
  drawn.close();
385
407
  hover.close();
386
408
  person.close();
@@ -1 +1 @@
1
- {"version":3,"file":"tutor.js","sourceRoot":"","sources":["../../src/tutor/tutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tutor.js","sourceRoot":"","sources":["../../src/tutor/tutor.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /** A recorded walk played on the page with no call: its sentences in the agent's voice, their words lit as said, the beats on their words. */
2
- import { type Beat, type RecordedStep, type RecordedWalk } from "../wire/index.js";
2
+ import { type ActStep, type Beat, type RecordedStep, type RecordedWalk, type Values } from "../wire/index.js";
3
3
  /** How far the visitor got: the walk, the sentence reached (from 1), how many it has, and whether it ended. */
4
4
  export interface Walked {
5
5
  walk: string;
@@ -20,16 +20,23 @@ export interface WalkFrame {
20
20
  * read from there, or from `url` when the agent published none for it (the walks that name no page).
21
21
  */
22
22
  export declare function publishedWalks(url: string, path?: string): Promise<RecordedWalk[]>;
23
- /** A walk's length, in ms. */
23
+ /** A walk's length, in ms: its recorded sentences'. */
24
24
  export declare function lengthOf(walk: RecordedWalk): number;
25
+ /** What a walk's steps that are not recorded take: the acts done, the sentences with slots recorded. */
26
+ export interface WalkHooks {
27
+ /** An act of the walk, done, the `at`th step: the values it read. */
28
+ act: (step: ActStep, values: Values, at: number) => Promise<Values>;
29
+ /** A sentence with slots, recorded now: null when it cannot be. */
30
+ voice: (walk: RecordedWalk, at: number, values: Values) => Promise<RecordedStep | null>;
31
+ }
25
32
  export declare class Walking {
26
33
  #private;
27
34
  readonly audio: HTMLAudioElement;
28
35
  /**
29
36
  * Play through `audio`; `ended` hears a walk that played to its end, or failed to play; `shows`
30
- * hears each sentence as it starts, for what it shows beside the page, and null as the walk stops.
37
+ * hears each sentence as it starts (and which step it is), for what it shows beside the page, and null as the walk stops.
31
38
  */
32
- constructor(audio: HTMLAudioElement, ended: (walked: Walked) => void, shows?: (step: RecordedStep | null) => void);
39
+ constructor(audio: HTMLAudioElement, ended: (walked: Walked) => void, shows?: (step: RecordedStep | null, at: number) => void, hooks?: WalkHooks);
33
40
  /** The walk playing, or null. */
34
41
  get playing(): RecordedWalk | null;
35
42
  /** Whether the walk playing is paused. */
@@ -38,8 +45,15 @@ export declare class Walking {
38
45
  pause(): void;
39
46
  /** Go on from where it was held. Call it from the visitor's click, as `start`. */
40
47
  resume(): void;
41
- /** Play a walk from its first sentence. Call it from the visitor's click: a browser starts audio only inside one. */
42
- start(walk: RecordedWalk): void;
48
+ /**
49
+ * The next sentence, or the one before (`delta` 1 or -1): going on, a step that acts is done on the way;
50
+ * going back, it is passed over, never done twice. Call it from the visitor's click.
51
+ */
52
+ skip(delta: 1 | -1): void;
53
+ /** Let this element play later, from the visitor's click: a walk that starts after a wait. */
54
+ unlock(): void;
55
+ /** Play a walk from its first sentence, its slots filled from `values`. Call it from the visitor's click, or after `unlock`. */
56
+ start(walk: RecordedWalk, values?: Values): void;
43
57
  /** Where the walk is now; null while none plays. */
44
58
  frame(): WalkFrame | null;
45
59
  /** Stop where it is: how far the visitor got, or null when nothing played. */
@@ -1 +1 @@
1
- {"version":3,"file":"walking.d.ts","sourceRoot":"","sources":["../../src/tutor/walking.ts"],"names":[],"mappings":"AAAA,8IAA8I;AAM9I,OAAO,EAA0B,KAAK,IAAI,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAa,MAAM,kBAAkB,CAAC;AAGtH,+GAA+G;AAC/G,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;CACf;AAED,4GAA4G;AAC5G,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAYD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CASpF;AAED,8BAA8B;AAC9B,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAEnD;AAED,qBAAa,OAAO;;IAClB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IAQjC;;;OAGG;IACH,YAAY,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EAAE,KAAK,GAAE,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,KAAK,IAAsB,EASjI;IAED,iCAAiC;IACjC,IAAI,OAAO,IAAI,YAAY,GAAG,IAAI,CAEjC;IAED,0CAA0C;IAC1C,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,oFAAoF;IACpF,KAAK,IAAI,IAAI,CAIZ;IAED,kFAAkF;IAClF,MAAM,IAAI,IAAI,CAIb;IAED,qHAAqH;IACrH,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAI9B;IAED,oDAAoD;IACpD,KAAK,IAAI,SAAS,GAAG,IAAI,CAcxB;IAED,8EAA8E;IAC9E,IAAI,IAAI,MAAM,GAAG,IAAI,CAMpB;CA4CF"}
1
+ {"version":3,"file":"walking.d.ts","sourceRoot":"","sources":["../../src/tutor/walking.ts"],"names":[],"mappings":"AAAA,8IAA8I;AAS9I,OAAO,EAAgD,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAa,KAAK,MAAM,EAAiB,MAAM,kBAAkB,CAAC;AAGtL,+GAA+G;AAC/G,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;CACf;AAED,4GAA4G;AAC5G,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAYD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CASpF;AAED,uDAAuD;AACvD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAEnD;AAED,wGAAwG;AACxG,MAAM,WAAW,SAAS;IACxB,qEAAqE;IACrE,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,mEAAmE;IACnE,KAAK,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;CACzF;AAiBD,qBAAa,OAAO;;IAClB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IAgBjC;;;OAGG;IACH,YAAY,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EAAE,KAAK,GAAE,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,IAAsB,EAAE,KAAK,GAAE,SAAoB,EAU1K;IAED,iCAAiC;IACjC,IAAI,OAAO,IAAI,YAAY,GAAG,IAAI,CAEjC;IAED,0CAA0C;IAC1C,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,oFAAoF;IACpF,KAAK,IAAI,IAAI,CAIZ;IAED,kFAAkF;IAClF,MAAM,IAAI,IAAI,CAOb;IAED;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAgBxB;IAED,8FAA8F;IAC9F,MAAM,IAAI,IAAI,CAIb;IAED,gIAAgI;IAChI,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,GAAE,MAAW,GAAG,IAAI,CAKnD;IAED,oDAAoD;IACpD,KAAK,IAAI,SAAS,GAAG,IAAI,CAiBxB;IAED,8EAA8E;IAC9E,IAAI,IAAI,MAAM,GAAG,IAAI,CAMpB;CA6EF"}