agent-Specialization/static/src/stores/focus.ts

37 lines
862 B
TypeScript

import { defineStore } from 'pinia';
interface FocusedFile {
size: number;
content: string;
}
interface FocusState {
focusedFiles: Record<string, FocusedFile>;
}
export const useFocusStore = defineStore('focus', {
state: (): FocusState => ({
focusedFiles: {}
}),
actions: {
async fetchFocusedFiles() {
try {
const response = await fetch('/api/focused');
if (!response.ok) {
throw new Error(response.statusText || '请求失败');
}
const data = await response.json();
this.focusedFiles = data || {};
} catch (error) {
console.error('获取聚焦文件失败:', error);
}
},
setFocusedFiles(payload: Record<string, FocusedFile> | null) {
this.focusedFiles = payload || {};
},
clearFocusedFiles() {
this.focusedFiles = {};
}
}
});