# Assist sentences for Maintenance Supporter (English).
#
# You do not need to copy this by hand: turn on Settings -> General ->
# "Install Assist sentences" and the integration writes it to
# config/custom_sentences/en/maintenance_supporter.yaml and reloads the
# conversation agent. That is the only directory the classic (non-LLM) agent
# reads sentences from. LLM-based Assist pipelines need none of this — they
# pick the intents up as tools automatically.
#
# Editing your own copy is fine and expected: once its content no longer
# matches what we wrote, upgrades leave it alone (and so does turning the
# setting back off).
language: "en"
intents:
  MaintenanceSupporterListTasks:
    data:
      - sentences:
          - "what maintenance is (due|overdue)"
          - "which maintenance [tasks] (are|is) (due|overdue|pending)"
          - "is [there] any maintenance due"
          - "what needs (maintenance|servicing)"
      # Scope: the person asking. HA tells the handler who spoke, so this
      # answers with that user's tasks (and their turn on a rotating chore).
      - sentences:
          - "what [maintenance] do I (need to|have to) do"
          - "what (is|are) my (chores|tasks|maintenance [tasks])"
          - "(is|are) [there] anything [assigned] for me [to do]"
          - "what am I (due|responsible) for"
        slots:
          scope: "mine"
      # Scope: the room the request came from, resolved from the satellite's
      # area — so a wall tablet answers for where it is standing.
      - sentences:
          - "what needs (doing|maintenance|servicing) (in here|here)"
          - "what maintenance is due (in here|here|in this room)"
          - "is [there] anything [to do] (in here|in this room)"
        slots:
          scope: "here"
  MaintenanceSupporterCompleteTask:
    data:
      - sentences:
          - "complete [the] [maintenance] [task] {task_name:name}"
          - "mark [the] [maintenance] [task] {task_name:name} [as] (done|completed)"
          - "I (did|finished) [the] {task_name:name}"
  MaintenanceSupporterTaskInstructions:
    data:
      - sentences:
          - "how do I (do|perform) [the] {task_name:name}"
          - "(instructions|guidance) for [the] {task_name:name}"
          - "what do I need for [the] {task_name:name}"
  MaintenanceSupporterTaskDue:
    data:
      - sentences:
          - "when is [the] {task_name:name} due"
          - "when do I (need|have) to (do|perform) [the] {task_name:name}"
  MaintenanceSupporterSnoozeTask:
    data:
      - sentences:
          - "snooze [the] [maintenance] [task] {task_name:name}"
          - "(mute|silence) [the] reminders for [the] {task_name:name}"
  MaintenanceSupporterPartStock:
    data:
      - sentences:
          - "how (many|much) {part_name:name} (do we have|are left|is left)"
          - "what is the stock of [the] {part_name:name}"
  MaintenanceSupporterPostponeTask:
    data:
      - sentences:
          - "postpone [the] {part_name:name} by {days} day[s]"
          - "push [the] {part_name:name} back [by] {days} day[s]"
          - "delay [the] {part_name:name} [by] {days} day[s]"
      - sentences:
          - "postpone [the] {part_name:name} by a week"
          - "push [the] {part_name:name} back [by] a week"
        slots:
          days: 7
  MaintenanceSupporterSkipTask:
    data:
      - sentences:
          - "skip [the] {part_name:name} [this time]"
          - "skip this (cycle|round) of [the] {part_name:name}"
lists:
  # NOT called 'name': that is Home Assistant's built-in list of exposed
  # ENTITY names, and the default agent resolves it against the registry
  # before the handler runs — every sentence using it answered 'I am not
  # aware of any device called ...' instead of reaching us. The
  # {list:slot} alias keeps the value arriving in the 'name' slot.
  task_name:
    wildcard: true
  part_name:
    wildcard: true
  days:
    range:
      from: 1
      to: 365
