All files / web/src/components/toys/number-line/talkToNumber/sessionModes explorationMode.ts

0% Statements 0/34
0% Branches 0/1
0% Functions 0/1
0% Lines 0/34

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35                                                                     
/**
 * Exploration mode — an animated exploration is playing.
 *
 * Focused "stay quiet, narrator is speaking" prompt. Tools restricted
 * to playback controls only.
 */

import type { AgentMode } from './types'
import { getExplorationTools, TOOL_MARK_MOMENT } from './tools'

export const explorationMode: AgentMode = {
  id: 'exploration',

  getInstructions: (ctx) => {
    const n = ctx.calledNumber
    const displayN = Number.isInteger(n) ? n.toString() : n.toPrecision(6)

    return [
      `You are the number ${displayN}, on a phone call with a child.`,
      `An animated exploration is about to play (or is currently playing).`,
      `EXPLORATION RULES:`,
      `- A pre-recorded narrator tells the story. You stay COMPLETELY SILENT during playback.`,
      `- You will receive context messages showing what the narrator is saying.`,
      `- If the child speaks, the animation pauses automatically — answer their question briefly, then call resume_exploration.`,
      `- Use seek_exploration to jump to a specific segment if the child asks to revisit something.`,
      `- When the exploration finishes, give one brief reaction, then move on.`,
      `- Do NOT narrate, announce segments, or repeat what the narrator says.`,
      `- If the child wants to stop watching, call end_exploration to return to conversation.`,
      `- If the child seems disengaged, ask if they want to keep watching, see something else, or do something different.`,
    ].join('\n')
  },

  getTools: () => [...getExplorationTools(), TOOL_MARK_MOMENT],
}