mirror of
https://github.com/hansjone/netxops.git
synced 2026-10-10 12:13:17 +08:00
Fix knowledge-base browse feedback and accept MANIFEST.json paths.
Browse no longer fails silently, falls back to Host directoryPicker RPC, and resolve treats a MANIFEST.json file path as its parent package root. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
de7c6a0c4b
commit
f64f1279e7
9 changed files with 246 additions and 49 deletions
|
|
@ -79,14 +79,24 @@ export function apply(ctx: ClientContext): void {
|
|||
})
|
||||
|
||||
// Soft-inject Host directory picker for knowledge-base browse.
|
||||
// Prefer the dedicated remote namespace; also accept ctx.remote.directoryPicker.
|
||||
const bindDirectoryPicker = (picker: { pick?: (signal?: AbortSignal) => Promise<string | null> } | undefined): void => {
|
||||
if (!picker || typeof picker.pick !== 'function') return
|
||||
card.setDirectoryPicker(picker as { pick: (signal?: AbortSignal) => Promise<string | null> })
|
||||
}
|
||||
bindDirectoryPicker(
|
||||
(ctx as { remote?: { directoryPicker?: { pick?: (signal?: AbortSignal) => Promise<string | null> } } })
|
||||
.remote?.directoryPicker,
|
||||
)
|
||||
ctx.inject(['remote.directoryPicker'], (dpCtx) => {
|
||||
const picker = (dpCtx as { remote?: { directoryPicker?: { pick?: (signal?: AbortSignal) => Promise<string | null> } } })
|
||||
const viaGet = typeof (dpCtx as { get?: (name: string) => unknown }).get === 'function'
|
||||
? (dpCtx as { get: (name: string) => unknown }).get('remote.directoryPicker') as
|
||||
| { pick?: (signal?: AbortSignal) => Promise<string | null> }
|
||||
| undefined
|
||||
: undefined
|
||||
const viaNested = (dpCtx as { remote?: { directoryPicker?: { pick?: (signal?: AbortSignal) => Promise<string | null> } } })
|
||||
.remote?.directoryPicker
|
||||
if (!picker || typeof picker.pick !== 'function') {
|
||||
dpCtx.logger.warn('netxops: remote.directoryPicker.pick unavailable — browse button disabled')
|
||||
return
|
||||
}
|
||||
card.setDirectoryPicker(picker)
|
||||
bindDirectoryPicker(viaGet ?? viaNested)
|
||||
dpCtx.effect(() => () => {
|
||||
card.setDirectoryPicker(undefined)
|
||||
}, 'netxops: clear directory picker')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue