(ctx context.Context, engine *agent.QueryEngine, prompt string, state *agent.AgentState)
| 178 | case "flush": |
| 179 | if err := fabric.Flush(ctx); err != nil { |
| 180 | return err |
| 181 | } |
| 182 | return writeJSON(os.Stdout, map[string]any{"flushed": true}) |
| 183 | default: |
| 184 | return fmt.Errorf("unknown memory command: %s", args[0]) |
| 185 | } |
| 186 | } |
| 187 | |
| 188 | func parseMemoryCLITime(text string) time.Time { |
| 189 | text = strings.TrimSpace(text) |
| 190 | if text == "" { |
| 191 | return time.Time{} |
| 192 | } |
| 193 | for _, layout := range []string{time.RFC3339Nano, time.RFC3339, "2006-01-02"} { |
| 194 | if parsed, err := time.Parse(layout, text); err == nil { |
| 195 | return parsed |
| 196 | } |
| 197 | } |
| 198 | return time.Time{} |
| 199 | } |
| 200 | |
| 201 | func writeJSON(w io.Writer, value any) error { |
| 202 | enc := json.NewEncoder(w) |
| 203 | enc.SetIndent("", " ") |
| 204 | return enc.Encode(value) |
| 205 | } |
| 206 | |
| 207 | func run(args []string) error { |
| 208 | if len(args) > 0 && args[0] == "layout" { |
| 209 | return runLayoutCLI(args[1:]) |
| 210 | } |
no test coverage detected