mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
Serve one file at a time out of a Session's workspace under /f on the web transport, and point the conversation's existing file-open affordance at it. Clicking a write/edit/read row's path now opens that file in a browser tab — including from a LAN client, where the Host's system opener is fenced to loopback and answered nothing. - /f/<sessionId>/<segments> in client-connection, behind the same browser-trust fence as /api; realpath confinement, streamed reads, GET/HEAD only, nosniff + no-store. - Script-capable documents carry CSP sandbox: model-authored markup must not be same-origin with /api, where events.mux is a readable GET stream. - ApiProxy.workspaceRootOf answers where a Session's files live without resuming an agent; the client program cannot reach the core services. - The /f URL shape lives in dsh-host-apiproxy/api so both ends share one encoding (client bundles may not value-import another plugin).
65 lines
1.8 KiB
JSON
65 lines
1.8 KiB
JSON
{
|
|
"extends": "../../tsconfig.base.json",
|
|
"compilerOptions": {
|
|
"rootDir": ".",
|
|
"outDir": "lib/types",
|
|
"jsx": "react-jsx",
|
|
"lib": [
|
|
"ES2024",
|
|
"DOM",
|
|
"DOM.Iterable"
|
|
],
|
|
"types": [
|
|
"node"
|
|
]
|
|
},
|
|
"include": [
|
|
"src",
|
|
"tests"
|
|
],
|
|
// The web e2e lane (scaffold + replay specs) boots the host spine and reads
|
|
// its Context merges — host-plane programs, checked in tsconfig.host.json;
|
|
// this client-registered project must not also hold them (one program
|
|
// cannot see both sides of the cordis Context merges).
|
|
"exclude": [
|
|
"tests/scaffold.ts",
|
|
"tests/scaffold-hermetic.e2e.ts",
|
|
"tests/core-web-profile.snapshot.ts",
|
|
"tests/live-interactions.e2e.ts",
|
|
"tests/question-composer.e2e.ts",
|
|
"tests/approval-composer.e2e.ts",
|
|
"tests/plan-review.e2e.ts",
|
|
"tests/steering.e2e.ts",
|
|
"tests/navigation-panes.e2e.ts",
|
|
"tests/lifecycle-chrome.e2e.ts",
|
|
"tests/details-session-lifecycle.e2e.ts",
|
|
"tests/settings-chrome.e2e.ts",
|
|
"tests/models-settings.e2e.ts",
|
|
"tests/onboarding-deepseek-config.e2e.ts",
|
|
"tests/workspace-management.e2e.ts",
|
|
"tests/replay-round-trip.e2e.ts",
|
|
"tests/seeded-history.e2e.ts",
|
|
"tests/sidebar-scrollbar.e2e.ts",
|
|
"tests/code-mode-round.e2e.ts",
|
|
"tests/composer-draft-scroll.e2e.ts",
|
|
"tests/cordis-tool-round.e2e.ts",
|
|
"tests/web-search-round.e2e.ts",
|
|
"tests/message-actions.e2e.ts",
|
|
"tests/queue-actions.e2e.ts",
|
|
"tests/skill-invocation-policy.e2e.ts",
|
|
"tests/permission-policy-context.e2e.ts",
|
|
"tests/access-confirmation.e2e.ts",
|
|
"tests/shipped-composition.e2e.ts",
|
|
"tests/startup-auto-selection.e2e.ts",
|
|
"tests/workspace-file-open.e2e.ts"
|
|
],
|
|
"references": [
|
|
{
|
|
"path": "../../packages/client/web"
|
|
},
|
|
{
|
|
"path": "../../packages/client/modules"
|
|
}
|
|
]
|
|
}
|