@pinecall/dot 0.11.23 → 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 (124) hide show
  1. package/README.md +145 -63
  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 +12 -10
  7. package/dist/agent/tutor.d.ts.map +1 -1
  8. package/dist/agent/tutor.js +81 -68
  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 +40 -4
  27. package/dist/pointer/flight.d.ts.map +1 -1
  28. package/dist/pointer/flight.js +139 -17
  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 +5 -4
  39. package/dist/pointer/menu.d.ts.map +1 -1
  40. package/dist/pointer/menu.js +56 -47
  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/sections.d.ts +4 -7
  51. package/dist/pointer/sections.d.ts.map +1 -1
  52. package/dist/pointer/sections.js +11 -17
  53. package/dist/pointer/sections.js.map +1 -1
  54. package/dist/pointer/typing.d.ts +5 -3
  55. package/dist/pointer/typing.d.ts.map +1 -1
  56. package/dist/pointer/typing.js +46 -15
  57. package/dist/pointer/typing.js.map +1 -1
  58. package/dist/server/index.d.ts +34 -0
  59. package/dist/server/index.d.ts.map +1 -0
  60. package/dist/server/index.js +108 -0
  61. package/dist/server/index.js.map +1 -0
  62. package/dist/server/questions.d.ts +30 -0
  63. package/dist/server/questions.d.ts.map +1 -0
  64. package/dist/server/questions.js +136 -0
  65. package/dist/server/questions.js.map +1 -0
  66. package/dist/server/saying.d.ts +31 -0
  67. package/dist/server/saying.d.ts.map +1 -0
  68. package/dist/server/saying.js +124 -0
  69. package/dist/server/saying.js.map +1 -0
  70. package/dist/tutor/acting.d.ts +42 -0
  71. package/dist/tutor/acting.d.ts.map +1 -0
  72. package/dist/tutor/acting.js +180 -0
  73. package/dist/tutor/acting.js.map +1 -0
  74. package/dist/tutor/aloud.d.ts +50 -0
  75. package/dist/tutor/aloud.d.ts.map +1 -0
  76. package/dist/tutor/aloud.js +288 -0
  77. package/dist/tutor/aloud.js.map +1 -0
  78. package/dist/tutor/ask.d.ts +49 -0
  79. package/dist/tutor/ask.d.ts.map +1 -0
  80. package/dist/tutor/ask.js +47 -0
  81. package/dist/tutor/ask.js.map +1 -0
  82. package/dist/tutor/listening.d.ts +17 -0
  83. package/dist/tutor/listening.d.ts.map +1 -0
  84. package/dist/tutor/listening.js +66 -0
  85. package/dist/tutor/listening.js.map +1 -0
  86. package/dist/tutor/options.d.ts +37 -1
  87. package/dist/tutor/options.d.ts.map +1 -1
  88. package/dist/tutor/options.js +1 -1
  89. package/dist/tutor/options.js.map +1 -1
  90. package/dist/tutor/reading.d.ts +58 -0
  91. package/dist/tutor/reading.d.ts.map +1 -0
  92. package/dist/tutor/reading.js +193 -0
  93. package/dist/tutor/reading.js.map +1 -0
  94. package/dist/tutor/text.d.ts +16 -0
  95. package/dist/tutor/text.d.ts.map +1 -0
  96. package/dist/tutor/text.js +119 -0
  97. package/dist/tutor/text.js.map +1 -0
  98. package/dist/tutor/tutor.d.ts +2 -9
  99. package/dist/tutor/tutor.d.ts.map +1 -1
  100. package/dist/tutor/tutor.js +110 -87
  101. package/dist/tutor/tutor.js.map +1 -1
  102. package/dist/tutor/walking.d.ts +26 -8
  103. package/dist/tutor/walking.d.ts.map +1 -1
  104. package/dist/tutor/walking.js +145 -30
  105. package/dist/tutor/walking.js.map +1 -1
  106. package/dist/tutor/walks.d.ts +33 -0
  107. package/dist/tutor/walks.d.ts.map +1 -1
  108. package/dist/tutor/walks.js +121 -13
  109. package/dist/tutor/walks.js.map +1 -1
  110. package/dist/wire/acts.d.ts +60 -0
  111. package/dist/wire/acts.d.ts.map +1 -0
  112. package/dist/wire/acts.js +120 -0
  113. package/dist/wire/acts.js.map +1 -0
  114. package/dist/wire/ask.d.ts +132 -0
  115. package/dist/wire/ask.d.ts.map +1 -0
  116. package/dist/wire/ask.js +102 -0
  117. package/dist/wire/ask.js.map +1 -0
  118. package/dist/wire/index.d.ts +38 -8
  119. package/dist/wire/index.d.ts.map +1 -1
  120. package/dist/wire/index.js +86 -12
  121. package/dist/wire/index.js.map +1 -1
  122. package/docs/macros.md +216 -0
  123. package/docs/write-a-tutor.md +247 -0
  124. package/package.json +11 -6
@@ -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, 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;
@@ -91,7 +131,7 @@ export function tutor(call, options = {}) {
91
131
  if (!live() || seen.text === sent)
92
132
  return;
93
133
  sent = seen.text;
94
- send(SEEN, { text: seen.text, why, lines: page.lines() });
134
+ send(SEEN, { text: seen.text, why, lines: page.lines(), path: view.location.pathname });
95
135
  person.face.dataset["pcSeen"] = String(Number(person.face.dataset["pcSeen"] ?? "0") + 1);
96
136
  };
97
137
  const timers = new Map();
@@ -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,27 +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
- const box = element.getBoundingClientRect();
118
- return box.bottom > 0 && box.top < view.innerHeight;
119
- };
120
- 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) => {
121
160
  switch (action) {
122
161
  case "type":
123
- // Typing takes the visitor's words: typeInto, from a cursor move; a macro's beat never types.
124
- 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
125
165
  case "point": {
126
166
  if (element === null)
127
167
  return;
128
168
  person.tour(true);
129
169
  // Let go of what it pointed at before the page scrolls: held, the face rode off the screen with it.
130
170
  anchor = null;
131
- 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))
132
174
  await scrollOnto(element, 0.42, still);
133
- const aim = aimOf(element);
134
- await fly(aim, sideOf(aim, clearOf(element), view.innerWidth, view.innerHeight));
135
- const box = element.getBoundingClientRect();
136
- 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 };
137
181
  return;
138
182
  }
139
183
  case "scroll_to":
@@ -164,17 +208,17 @@ export function tutor(call, options = {}) {
164
208
  }
165
209
  };
166
210
  /** The pointer onto a field, then the visitor's words typed into it; why it could not, or null. */
167
- const typeInto = async (element, text) => {
211
+ const typeInto = async (element, text, ms) => {
168
212
  if (element === null)
169
213
  return null;
170
214
  await run("point", element);
171
- return fill(element, text, still);
215
+ return fill(element, text, still, ms);
172
216
  };
173
- const needsElement = (action) => action === "point" || action === "scroll_to" || action === "highlight" || action === "type";
174
- /** 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. */
175
- 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) => {
176
220
  look("step");
177
- const ref = A_REF.test(target) ? target : page.named(target);
221
+ const ref = A_REF.test(target) ? target : page.named(target, roles);
178
222
  if (ref === null || page.element(ref) === null) {
179
223
  send(MISSING, { target });
180
224
  sent = "";
@@ -184,13 +228,17 @@ export function tutor(call, options = {}) {
184
228
  return ref;
185
229
  };
186
230
  const elementOf = (ref) => (ref === null ? null : page.element(ref));
187
- /** 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. */
188
- const moveOnto = async (action, target, text) => {
189
- 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);
190
234
  const element = elementOf(ref);
191
235
  let refused = null;
192
236
  if (action === "type")
193
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);
194
242
  else
195
243
  await run(action, element);
196
244
  const seen = page.seen();
@@ -200,11 +248,18 @@ export function tutor(call, options = {}) {
200
248
  const queue = (move) => {
201
249
  moves = moves.then(move).catch(() => undefined);
202
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
+ };
203
257
  const beat = (one) => {
204
258
  if (one.find === undefined)
205
259
  return run(one.do, null);
206
260
  look("step");
207
- 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]]);
208
263
  return run(one.do, ref === null ? null : elementOf(resolve(ref)));
209
264
  };
210
265
  const tick = (now) => {
@@ -218,6 +273,10 @@ export function tutor(call, options = {}) {
218
273
  for (const one of walk.beats)
219
274
  queue(() => beat(one));
220
275
  }
276
+ else if (note !== null && now < note.until && !inCall()) {
277
+ person.say(note.text);
278
+ person.heard(null);
279
+ }
221
280
  else
222
281
  spoken(now);
223
282
  person.buttons(inCall(), walks.playing, captioned, walks.paused);
@@ -229,14 +288,14 @@ export function tutor(call, options = {}) {
229
288
  if (anchor !== null && (!anchor.element.isConnected || anchor.element.closest("[hidden]") !== null))
230
289
  anchor = null;
231
290
  if (!flying && anchor !== null) {
232
- const box = anchor.element.getBoundingClientRect();
233
- 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);
234
293
  person.kind(hover.on(anchor.element));
235
294
  }
236
295
  if (lit !== null && !lit.isConnected)
237
296
  lit = null;
238
297
  person.spot(lit);
239
- person.offer(live() && offered?.isConnected === true ? offered : null);
298
+ person.offer(live() ? listening.offered() : null);
240
299
  frame = requestAnimationFrame(tick);
241
300
  };
242
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. */
@@ -285,49 +344,13 @@ export function tutor(call, options = {}) {
285
344
  queue(() => run("home", null));
286
345
  }
287
346
  });
288
- const onScroll = () => soon("scroll");
289
- const onResize = () => soon("resize");
290
- const onToggle = () => soon("toggle");
291
- // What the visitor types reaches the agent as the page's next look, as their scroll does.
292
- const onInput = (event) => {
293
- if (event.target instanceof Element && event.target.closest("[data-pinecall-skip]") === null)
294
- soon("dom");
295
- };
296
- // Over the ▶ itself (the tutor's own layer) it stays; off an element with a line it goes a moment later.
297
- const onOver = (event) => {
298
- const target = event.target instanceof Element ? event.target : null;
299
- clearTimeout(leaving);
300
- if (target?.closest("[data-pinecall-skip]") != null)
301
- return;
302
- const marked = target?.closest("[data-pinecall-say]") ?? null;
303
- if (marked !== null)
304
- offered = marked;
305
- else
306
- leaving = setTimeout(() => (offered = null), 400);
307
- };
308
- const onClick = (event) => {
309
- const target = event.target instanceof Element ? event.target : null;
310
- if (target === null || target.closest("[data-pinecall-skip]") !== null)
311
- return;
312
- const clicked = target.closest("a, button, summary, input, select, textarea, [role=button], [role=link]");
313
- if (clicked === null)
314
- return;
315
- look("click");
316
- send(CLICKED, { role: clicked.getAttribute("role") ?? clicked.tagName.toLowerCase(), name: (clicked.textContent ?? "").replace(/\s+/g, " ").trim().slice(0, 80) });
317
- };
318
- const changes = new MutationObserver((records) => {
319
- const ours = (node) => (node instanceof Element ? node : node.parentElement)?.closest("[data-pinecall-skip]") != null;
320
- if (records.every((record) => ours(record.target)))
321
- return;
322
- 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
+ },
323
353
  });
324
- view.addEventListener("scroll", onScroll, { passive: true });
325
- view.addEventListener("resize", onResize);
326
- document.addEventListener("toggle", onToggle, true);
327
- document.addEventListener("click", onClick, true);
328
- document.addEventListener("input", onInput, true);
329
- document.addEventListener("pointerover", onOver, true);
330
- changes.observe(document.body, { subtree: true, childList: true, characterData: true, attributes: true, attributeFilter: ["open", "hidden", "aria-expanded", "aria-selected", "class"] });
331
354
  frame = requestAnimationFrame(tick);
332
355
  return {
333
356
  take(data) {
@@ -350,10 +373,10 @@ export function tutor(call, options = {}) {
350
373
  look("asked");
351
374
  return true;
352
375
  }
353
- const { action, target, text } = message;
376
+ const { action, target, text, ms } = message;
354
377
  queue(async () => {
355
378
  if (needsElement(action) && target !== undefined)
356
- await moveOnto(action, target, text ?? "");
379
+ await moveOnto(action, target, text ?? "", ms);
357
380
  else
358
381
  await run(action, null);
359
382
  });
@@ -362,6 +385,12 @@ export function tutor(call, options = {}) {
362
385
  wake() {
363
386
  drawn.wake();
364
387
  },
388
+ read() {
389
+ walks.read();
390
+ },
391
+ stop() {
392
+ walks.stop();
393
+ },
365
394
  close() {
366
395
  if (closed)
367
396
  return;
@@ -370,16 +399,10 @@ export function tutor(call, options = {}) {
370
399
  for (const timer of timers.values())
371
400
  clearTimeout(timer);
372
401
  walks.close();
402
+ acting.close();
373
403
  screen.close();
374
- clearTimeout(leaving);
375
404
  unsubscribe();
376
- changes.disconnect();
377
- view.removeEventListener("scroll", onScroll);
378
- view.removeEventListener("resize", onResize);
379
- document.removeEventListener("toggle", onToggle, true);
380
- document.removeEventListener("click", onClick, true);
381
- document.removeEventListener("input", onInput, true);
382
- document.removeEventListener("pointerover", onOver, true);
405
+ listening.close();
383
406
  drawn.close();
384
407
  hover.close();
385
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;
@@ -14,18 +14,29 @@ export interface WalkFrame {
14
14
  beats: Beat[];
15
15
  fraction: number;
16
16
  }
17
- /** The walks an agent published, read with no key; none where the page cannot read them. */
18
- export declare function publishedWalks(url: string): Promise<RecordedWalk[]>;
19
- /** A walk's length, in ms. */
17
+ /**
18
+ * The walks an agent published for the page at `path`, read with no key; none where the page cannot read them.
19
+ * `url` is the agent's `walks` document, the home's: a page of its own has `walks-<page>` beside it, and is
20
+ * read from there, or from `url` when the agent published none for it (the walks that name no page).
21
+ */
22
+ export declare function publishedWalks(url: string, path?: string): Promise<RecordedWalk[]>;
23
+ /** A walk's length, in ms: its recorded sentences'. */
20
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
+ }
21
32
  export declare class Walking {
22
33
  #private;
23
34
  readonly audio: HTMLAudioElement;
24
35
  /**
25
36
  * Play through `audio`; `ended` hears a walk that played to its end, or failed to play; `shows`
26
- * 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.
27
38
  */
28
- 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);
29
40
  /** The walk playing, or null. */
30
41
  get playing(): RecordedWalk | null;
31
42
  /** Whether the walk playing is paused. */
@@ -34,8 +45,15 @@ export declare class Walking {
34
45
  pause(): void;
35
46
  /** Go on from where it was held. Call it from the visitor's click, as `start`. */
36
47
  resume(): void;
37
- /** Play a walk from its first sentence. Call it from the visitor's click: a browser starts audio only inside one. */
38
- 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;
39
57
  /** Where the walk is now; null while none plays. */
40
58
  frame(): WalkFrame | null;
41
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,EAAW,KAAK,IAAI,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAa,MAAM,kBAAkB,CAAC;AAGvG,+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;AAED,4FAA4F;AAC5F,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAQzE;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"}