summaryrefslogtreecommitdiff
path: root/makima/frontend/src/hooks/useDirectiveMemories.ts
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-02-13 02:00:32 +0000
committersoryu <soryu@soryu.co>2026-02-13 02:00:32 +0000
commit5edaf1228b4e48a441b98c49f58de312b7924ed6 (patch)
treea26d7d69344788ac1ec5e7216cbc57921f483fa4 /makima/frontend/src/hooks/useDirectiveMemories.ts
parent639b4c6bc3b3964c00cdfc64c4f262c61ee22fc7 (diff)
downloadsoryu-5edaf1228b4e48a441b98c49f58de312b7924ed6.tar.gz
soryu-5edaf1228b4e48a441b98c49f58de312b7924ed6.zip
Fix frontend build
Diffstat (limited to 'makima/frontend/src/hooks/useDirectiveMemories.ts')
-rw-r--r--makima/frontend/src/hooks/useDirectiveMemories.ts59
1 files changed, 13 insertions, 46 deletions
diff --git a/makima/frontend/src/hooks/useDirectiveMemories.ts b/makima/frontend/src/hooks/useDirectiveMemories.ts
index 3844c44..b2a87d0 100644
--- a/makima/frontend/src/hooks/useDirectiveMemories.ts
+++ b/makima/frontend/src/hooks/useDirectiveMemories.ts
@@ -1,41 +1,25 @@
import { useState, useEffect, useCallback } from "react";
import {
- type DirectiveMemoryEntry,
- type DirectiveMemoryConfig,
+ type DirectiveMemory,
type MemoryCategory,
type CreateDirectiveMemoryRequest,
- getDirectiveMemoryConfig,
- setDirectiveMemoryEnabled,
listDirectiveMemories,
- addDirectiveMemory,
+ createDirectiveMemory,
deleteDirectiveMemory,
- clearDirectiveMemories,
} from "../lib/api";
export function useDirectiveMemories(directiveId: string | undefined) {
- const [memories, setMemories] = useState<DirectiveMemoryEntry[]>([]);
- const [config, setConfig] = useState<DirectiveMemoryConfig | null>(null);
+ const [memories, setMemories] = useState<DirectiveMemory[]>([]);
const [loading, setLoading] = useState(false);
const [error, setError] = useState<string | null>(null);
- const refreshConfig = useCallback(async () => {
- if (!directiveId) return;
- try {
- const c = await getDirectiveMemoryConfig(directiveId);
- setConfig(c);
- } catch (e) {
- // Config may not exist yet — treat as disabled
- setConfig({ directiveId, enabled: false, updatedAt: new Date().toISOString() });
- }
- }, [directiveId]);
-
const refreshMemories = useCallback(async () => {
if (!directiveId) return;
try {
setLoading(true);
setError(null);
- const entries = await listDirectiveMemories(directiveId);
- setMemories(entries);
+ const response = await listDirectiveMemories(directiveId);
+ setMemories(response.memories);
} catch (e) {
setError(e instanceof Error ? e.message : "Failed to load memories");
} finally {
@@ -43,30 +27,15 @@ export function useDirectiveMemories(directiveId: string | undefined) {
}
}, [directiveId]);
- const refresh = useCallback(async () => {
- await Promise.all([refreshConfig(), refreshMemories()]);
- }, [refreshConfig, refreshMemories]);
-
useEffect(() => {
- refresh();
- }, [refresh]);
-
- const toggleEnabled = useCallback(async (enabled: boolean) => {
- if (!directiveId) return;
- try {
- setError(null);
- const c = await setDirectiveMemoryEnabled(directiveId, enabled);
- setConfig(c);
- } catch (e) {
- setError(e instanceof Error ? e.message : "Failed to toggle memory");
- }
- }, [directiveId]);
+ refreshMemories();
+ }, [refreshMemories]);
const add = useCallback(async (req: CreateDirectiveMemoryRequest) => {
if (!directiveId) return;
try {
setError(null);
- await addDirectiveMemory(directiveId, req);
+ await createDirectiveMemory(directiveId, req);
await refreshMemories();
} catch (e) {
setError(e instanceof Error ? e.message : "Failed to add memory");
@@ -88,30 +57,28 @@ export function useDirectiveMemories(directiveId: string | undefined) {
if (!directiveId) return;
try {
setError(null);
- await clearDirectiveMemories(directiveId);
+ await Promise.all(memories.map((m) => deleteDirectiveMemory(directiveId, m.id)));
setMemories([]);
} catch (e) {
setError(e instanceof Error ? e.message : "Failed to clear memories");
}
- }, [directiveId]);
+ }, [directiveId, memories]);
/** Group entries by category */
- const grouped = memories.reduce<Record<MemoryCategory, DirectiveMemoryEntry[]>>(
+ const grouped = memories.reduce<Record<MemoryCategory, DirectiveMemory[]>>(
(acc, entry) => {
acc[entry.category].push(entry);
return acc;
},
- { decision: [], context: [], preference: [], learning: [], other: [] },
+ { decision: [], context: [], preference: [], learning: [], issue: [], progress: [], other: [] },
);
return {
memories,
grouped,
- config,
loading,
error,
- refresh,
- toggleEnabled,
+ refresh: refreshMemories,
add,
remove,
clearAll,