58 lines
1.4 KiB
TypeScript
58 lines
1.4 KiB
TypeScript
import { defineStore } from 'pinia';
|
|
import type { Socket } from 'socket.io-client';
|
|
|
|
interface ConnectionState {
|
|
isConnected: boolean;
|
|
socket: Socket | null;
|
|
stopRequested: boolean;
|
|
projectPath: string;
|
|
agentVersion: string;
|
|
thinkingMode: boolean;
|
|
runMode: 'fast' | 'thinking' | 'deep';
|
|
}
|
|
|
|
export const useConnectionStore = defineStore('connection', {
|
|
state: (): ConnectionState => ({
|
|
isConnected: false,
|
|
socket: null,
|
|
stopRequested: false,
|
|
projectPath: '',
|
|
agentVersion: '',
|
|
thinkingMode: true,
|
|
runMode: 'thinking'
|
|
}),
|
|
actions: {
|
|
setSocket(socket: Socket | null) {
|
|
this.socket = socket;
|
|
},
|
|
setConnected(value: boolean) {
|
|
this.isConnected = value;
|
|
},
|
|
setStopRequested(value: boolean) {
|
|
this.stopRequested = value;
|
|
},
|
|
requestStop() {
|
|
this.stopRequested = true;
|
|
},
|
|
clearStopRequest() {
|
|
this.stopRequested = false;
|
|
},
|
|
setProjectPath(path: string) {
|
|
this.projectPath = path;
|
|
},
|
|
setAgentVersion(version: string) {
|
|
this.agentVersion = version;
|
|
},
|
|
setThinkingMode(value: boolean) {
|
|
this.thinkingMode = !!value;
|
|
},
|
|
toggleThinkingMode() {
|
|
this.thinkingMode = !this.thinkingMode;
|
|
},
|
|
setRunMode(mode: 'fast' | 'thinking' | 'deep') {
|
|
this.runMode = mode;
|
|
this.thinkingMode = mode !== 'fast';
|
|
}
|
|
}
|
|
});
|