mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
Implements the LSP capability seam RFC as three packages: dsh-lsp (the ctx.lsp interface — provider registry by branded id + exclusive extension mapping, per-query order-independent selection, closed request/result vocabulary, LspError taxonomy), dsh-lsp-local (a generic stdio language-server provider — Content-Length JSON-RPC framing, per-(provider, workspace) process single-flight, transient didOpen/query/didClose, an abortable per-instance queue, UTF-16 negotiation, host-namespace source reads outside ctx.fs, and bounded shutdown/kill teardown), and dsh-tool-lsp (the model-facing lsp tool — four operations, one-based UTF-16 cursor conversion, workspace-grouped location rendering, hover capping, a required session workspace, and a timeout budget). Why: an agent had text search and file reads but no way to identify a program symbol — follow an alias, connect an interface to implementations, or read an inferred type — before changing code. Splitting model contract, seam, and local subprocess behavior keeps the four semantic queries stable across future remote or sandbox-native providers without leaking a JSON-RPC escape hatch.
71 lines
2.6 KiB
JSON
71 lines
2.6 KiB
JSON
{
|
|
"compilerOptions": {
|
|
"target": "es2024",
|
|
"module": "esnext",
|
|
"moduleResolution": "bundler",
|
|
"declaration": true,
|
|
"sourceMap": true,
|
|
"declarationMap": true,
|
|
"composite": true,
|
|
"incremental": true,
|
|
"skipLibCheck": true,
|
|
"esModuleInterop": true,
|
|
"allowImportingTsExtensions": true,
|
|
"rewriteRelativeImportExtensions": true,
|
|
"verbatimModuleSyntax": false,
|
|
"strict": true,
|
|
"noUncheckedIndexedAccess": true,
|
|
"exactOptionalPropertyTypes": true,
|
|
"noImplicitOverride": true,
|
|
"noFallthroughCasesInSwitch": true,
|
|
"noUnusedLocals": true,
|
|
"noUnusedParameters": true,
|
|
"types": ["node"],
|
|
// Source-level resolution for every repo-local graph. Project references,
|
|
// not declaration path aliases, keep each package/vendor source compiled
|
|
// under its own tsconfig boundary.
|
|
"paths": {
|
|
"cordis": ["./vendor/cordis/src"],
|
|
"cosmokit": ["./vendor/cosmokit/src"],
|
|
"schemastery": ["./vendor/schemastery/src"],
|
|
"@cordisjs/plugin-loader": ["./vendor/loader/src"],
|
|
"@cordisjs/plugin-include": ["./vendor/include/src"],
|
|
"@cordisjs/plugin-group": ["./vendor/group/src"],
|
|
"@cordisjs/plugin-timer": ["./vendor/timer/src"],
|
|
"@cordisjs/plugin-hmr": ["./vendor/hmr/src"],
|
|
"@cordisjs/plugin-logger-console": ["./vendor/logger-console/src"],
|
|
// One wildcard maps every @deepseek-ai/dsh-<name> to its source. Package
|
|
// dir names are unique across groups, so first-on-disk-wins resolution is
|
|
// unambiguous; adding a package under an existing group needs no edit
|
|
// here. The build graph's project references (tsconfig.build.json) stay
|
|
// explicit — TS project references have no wildcard form.
|
|
"@deepseek-ai/dsh-*": [
|
|
"./packages/core/*/src",
|
|
"./packages/llm/*/src",
|
|
"./packages/bash/*/src",
|
|
"./packages/code-runtime/*/src",
|
|
"./packages/fs/*/src",
|
|
"./packages/lsp/*/src",
|
|
"./packages/skill/*/src",
|
|
"./packages/compact/*/src",
|
|
"./packages/context/*/src",
|
|
"./packages/guard/*/src",
|
|
"./packages/subagent/*/src",
|
|
"./packages/workflow/*/src",
|
|
"./packages/web/*/src",
|
|
"./packages/timeout/*/src",
|
|
"./packages/todo/*/src",
|
|
"./packages/cordis/*/src",
|
|
"./packages/sandbox/*/src",
|
|
"./packages/hooks/*/src",
|
|
"./packages/session-persistence/*/src",
|
|
"./packages/session-query/*/src",
|
|
"./packages/ui/*/src",
|
|
"./packages/util/*/src",
|
|
"./packages/mcp/*/src",
|
|
"./packages/support/*/src"
|
|
]
|
|
}
|
|
}
|
|
}
|