feat: add pwd handling to session and update related components

This commit is contained in:
Justin Lin committed 2025-04-25 11:33:16 +08:00
1 parent fba92dad46
commit 26e79690f8
7 files changed
+16 -4

No files matched your search

+1 -1
View File
@@ -23,7 +23,7 @@ function nodeClass() {
<a href="#" :class="nodeClass()">
<font-awesome-icon
v-if="node.type === 'directory'"
:icon="['far', 'directory']"
:icon="['far', 'folder']"
class="text-text-primary size-8"
/>
<font-awesome-icon
+1 -1
View File
@@ -12,7 +12,7 @@ const sessionStore = useSession()
<FileNode
v-if="sessionStore.session"
:node="sessionStore.session.graph"
pwd="/home/commander"
:pwd="sessionStore.session.pwd"
/>
</li>
</ul>
+4
View File
@@ -51,6 +51,7 @@ const useSession = defineStore('session', {
this.session = {
...session,
graph: new FileGraph(session.graph),
pwd: '/home/commander',
}
term.reset()
await socket.connect(this.session)
@@ -105,6 +106,9 @@ const useSession = defineStore('session', {
socket.on('graph', (event: FileGraphUpdateEvent) => {
if (!this.session) return
this.session.graph.handleEvent(event)
if (event.pwd) {
this.session.pwd = event.pwd
}
})
socket.on('update', (update: SessionUpdate) => {
this.newUpdate(update)
+1 -2
View File
@@ -18,8 +18,7 @@ export interface Session {
_id: string
status: string
graph: FileGraph
// pwd: string
// hints: string[][]
pwd: string
tasks: ITask[]
responses: IResponse[]
}
+7
View File
@@ -32,6 +32,13 @@ async function readOrNone(file) {
const commandListeners = {
ls: [discoverFiles],
cd: [changeDirectory],
}
function changeDirectory() {
return {
pwd: process.cwd(),
}
}
async function handleCommand(command) {
+1
View File
@@ -5,6 +5,7 @@ export interface FileGraphUpdateEvent {
add?: FileObject[]
remove?: FileObject[]
discover?: FileObject[]
pwd?: string
}
export default class FileGraph extends FileNode {
+1
View File
@@ -8,6 +8,7 @@ const fileSchema = z.object({
export const commandParamsSchema = z.object({
discover: fileSchema.array().optional(),
pwd: z.string().optional(),
})
export type ICommandParams = z.infer<typeof commandParamsSchema>