Preserve context across conversation intents (V-542)
Owner explicitly requested direct commits to master; bypass the branch-only hook.
This commit is contained in:
@@ -66,6 +66,7 @@ func mustLoad() lexiconFile {
|
||||
"not_place_after_v", "parts_of_day", "reminder_verbs", "half_hour",
|
||||
"filler_particles", "task_done_words", "task_drop_words",
|
||||
"confirm_yes", "confirm_no", "hour_units", "minute_units",
|
||||
"conversation_verbs",
|
||||
} {
|
||||
s, ok := f.Sets[name]
|
||||
if !ok || (len(s.Words) == 0 && len(s.Values) == 0) {
|
||||
@@ -212,6 +213,12 @@ func inSet(set, word string) bool {
|
||||
// Distinct from TaskDropWords, which abandons an item that already exists.
|
||||
func DialogueCancel() []string { return words("dialogue_cancel") }
|
||||
|
||||
// ConversationVerbs returns Maven's vocabulary for explicitly opening a
|
||||
// conversation after a cooperative marker ("давай поговорим", "let's talk").
|
||||
// The caller matches Russian members by lemma and English members exactly.
|
||||
// Keeping the verbs here prevents session state from growing its own stem list.
|
||||
func ConversationVerbs() []string { return words("conversation_verbs") }
|
||||
|
||||
// IsFillerParticle reports whether a word can never be the subject of a
|
||||
// request: a particle, a politeness word, or the first-person object. See the
|
||||
// set's own note for why this is not a stopword list.
|
||||
|
||||
@@ -262,6 +262,13 @@
|
||||
"cancel", "nevermind", "forget"
|
||||
]
|
||||
},
|
||||
"conversation_verbs": {
|
||||
"note": "The verbs Maven accepts after a cooperative marker as an explicit request to converse: «давай поговорим», «давай поболтаем», «let's talk». This is her control vocabulary, like capture_verbs, not a claim to list every way humans can converse. Russian forms are matched by lemma, so one infinitive covers tense and number; English is exact because the Russian dictionary leaves it unchanged.",
|
||||
"words": [
|
||||
"говорить", "поговорить", "болтать", "поболтать", "общаться", "пообщаться",
|
||||
"talk", "chat"
|
||||
]
|
||||
},
|
||||
"confirm_yes": {
|
||||
"note": "The whole vocabulary of saying yes to a parked confirm, Russian and English. Closed because it is her question that is being answered: she asked \"да или нет\", and the answers to that question can be listed. Matched as whole tokens and never as substrings — \"погода\", \"давление\" and \"дальше\" all contain \"да\", and a substring test executed a destructive act when he asked about the weather (V-567). Words that merely sound agreeable — \"хорошо\", \"ладно\", \"точно\" — are deliberately absent: they open a sentence about something else as often as they answer, and an unclear answer must route rather than execute.",
|
||||
"words": [
|
||||
|
||||
Reference in New Issue
Block a user