rememberMemoryFact stores a fact deterministically via /memory remember. Accepts an optional leading [category]: "/memory remember [gotcha] ...".
(rest string)
| 276 | // rememberMemoryFact stores a fact deterministically via /memory remember. |
| 277 | // Accepts an optional leading [category]: "/memory remember [gotcha] ...". |
| 278 | func (cli *ChatCLI) rememberMemoryFact(rest string) { |
| 279 | category := "" |
| 280 | if strings.HasPrefix(rest, "[") { |
| 281 | if end := strings.Index(rest, "]"); end > 1 { |
| 282 | category = strings.TrimSpace(rest[1:end]) |
| 283 | rest = strings.TrimSpace(rest[end+1:]) |
| 284 | } |
| 285 | } |
| 286 | if rest == "" { |
| 287 | fmt.Println(colorize(" "+i18n.T("mem.cmd.remember.usage"), ColorGray)) |
| 288 | return |
| 289 | } |
| 290 | |
| 291 | added := cli.memoryStore.RememberFact(rest, category) |
| 292 | if cli.contextBuilder != nil { |
| 293 | cli.contextBuilder.InvalidateCache() |
| 294 | } |
| 295 | if added { |
| 296 | fmt.Printf(" %s %s\n", colorize("OK", ColorGreen), i18n.T("mem.cmd.remember.ok")) |
| 297 | } else { |
| 298 | fmt.Printf(" %s %s\n", colorize("!", ColorYellow), i18n.T("mem.cmd.remember.dup")) |
| 299 | } |
| 300 | } |
| 301 | |
| 302 | // forgetMemoryFact removes facts matching a substring via /memory forget. |
| 303 | func (cli *ChatCLI) forgetMemoryFact(rest string) { |
no test coverage detected