Files
dsh-facet/package.json
T
NotExpectedYet c49acfdb2c
Release / release (push) Successful in 6s
feat: list files in the extras picker, not just folders
The extras control accepts a file — the field and its label said so — and the
listing under it could not show one, because the Host primitive behind the picker
browses folders and nothing else. So a grant for a single file meant typing its
name exactly, which is the one thing a listing exists to avoid.

The Host has a second lister and it does return files: `remote.workspaceFiles.list`,
the same listing behind the sidebar's own file tree, confined to the session's
workspace. The extras picker now takes that one while the level is inside the
session folder — which is where an extra usually is — and falls back to the folder
lister above it, saying so in the dialog rather than letting file rows vanish. The
focus picker never offers files: a focus is a folder, so a file row there would
offer something that cannot be chosen.

The two listings normalise into one level shape, so the picker does not care which
answered, and a row now carries its type: a folder is a way down, a file is a
thing to take. Clicking a file fills the path field and marks the row, and the
footer adds it in declared form. Pressing Enter on a name the level already lists
is no longer reported as a failure — the path is exactly what the dialog is for.
Everything stays additive: with no workspace file service, or above the session
folder, the picker lists folders exactly as before.
2026-09-28 07:47:24 +01:00

70 lines
1.7 KiB
JSON

{
"name": "dsh-facet",
"version": "0.3.1",
"private": true,
"type": "module",
"description": "Scope an agent session to one facet of a multi-faceted system: the session's own folder, plus whatever files the user grants it.",
"main": "index.js",
"exports": {
".": {
"types": "./lib/types/index.d.ts",
"default": "./index.js"
},
"./guard": {
"types": "./lib/types/guard.d.ts",
"default": "./lib/guard.js"
},
"./client": {
"default": "./client/client.js"
},
"./cordis.patch.yml": "./cordis.patch.yml",
"./presets/facet.patch.yml": "./presets/facet.patch.yml",
"./package.json": "./package.json"
},
"files": [
"index.js",
"lib",
"client",
"presets",
"cordis.patch.yml",
"README.md"
],
"engines": {
"node": ">=22.5"
},
"scripts": {
"test": "node --test test/*.test.js",
"test:release": "bash .gitea/scripts/release.test.sh",
"release:plan": "bash .gitea/scripts/release.sh should-release \"$(bash .gitea/scripts/release.sh range)\"",
"release:notes": "bash .gitea/scripts/release.sh notes \"$(bash .gitea/scripts/release.sh range)\""
},
"dsh": {
"bundle": {
"patch": [
"./cordis.patch.yml",
"./presets/facet.patch.yml"
]
},
"client": {
"platform": "web",
"inject": [
"@deepseek-ai/dsh-client-ui-settings",
"@deepseek-ai/dsh-client-ui-plugin-manager",
"@deepseek-ai/dsh-client-ui-conversation",
"@deepseek-ai/dsh-client-ui-workspace",
"@deepseek-ai/dsh-api-workspace-files"
]
}
},
"keywords": [
"dsh-plugin",
"deepseek-harness",
"cordis",
"agent-preset",
"context",
"scope",
"tokens"
],
"license": "MIT"
}