dskcode 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +121 -17
- package/dist/index.js +640 -15
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/dist/chunk-GMSRSNWA.js +0 -61
- package/dist/chunk-GMSRSNWA.js.map +0 -1
- package/dist/config-42MSCTVE.js +0 -9
- package/dist/config-42MSCTVE.js.map +0 -1
package/dist/chunk-GMSRSNWA.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
// src/config/loader.ts
|
|
2
|
-
import { readFile } from "fs/promises";
|
|
3
|
-
import { join } from "path";
|
|
4
|
-
import { parse } from "smol-toml";
|
|
5
|
-
var defaultConfig = {
|
|
6
|
-
defaultProvider: "deepseek",
|
|
7
|
-
providers: [
|
|
8
|
-
{
|
|
9
|
-
name: "deepseek",
|
|
10
|
-
baseUrl: "https://api.deepseek.com",
|
|
11
|
-
model: "deepseek-chat"
|
|
12
|
-
}
|
|
13
|
-
],
|
|
14
|
-
tools: [
|
|
15
|
-
{ name: "read_file", enabled: true },
|
|
16
|
-
{ name: "write_file", enabled: true },
|
|
17
|
-
{ name: "edit_file", enabled: true },
|
|
18
|
-
{ name: "bash", enabled: true },
|
|
19
|
-
{ name: "glob", enabled: true },
|
|
20
|
-
{ name: "grep", enabled: true },
|
|
21
|
-
{ name: "ls", enabled: true },
|
|
22
|
-
{ name: "fetch", enabled: true }
|
|
23
|
-
],
|
|
24
|
-
plugins: []
|
|
25
|
-
};
|
|
26
|
-
async function loadConfig(configPath) {
|
|
27
|
-
const candidates = [];
|
|
28
|
-
if (configPath) {
|
|
29
|
-
candidates.push(configPath);
|
|
30
|
-
} else {
|
|
31
|
-
candidates.push(
|
|
32
|
-
join(process.env.HOME ?? process.env.USERPROFILE ?? "~", ".config", "dskcode.toml"),
|
|
33
|
-
join(process.cwd(), ".dskcode.toml")
|
|
34
|
-
);
|
|
35
|
-
}
|
|
36
|
-
let config = structuredClone(defaultConfig);
|
|
37
|
-
for (const candidate of candidates) {
|
|
38
|
-
try {
|
|
39
|
-
const raw = await readFile(candidate, "utf-8");
|
|
40
|
-
const parsed = parse(raw);
|
|
41
|
-
config = mergeConfig(config, parsed);
|
|
42
|
-
} catch {
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return config;
|
|
46
|
-
}
|
|
47
|
-
function mergeConfig(base, overlay) {
|
|
48
|
-
return {
|
|
49
|
-
...base,
|
|
50
|
-
...overlay.defaultProvider !== void 0 && { defaultProvider: overlay.defaultProvider },
|
|
51
|
-
...overlay.providers !== void 0 && { providers: overlay.providers },
|
|
52
|
-
...overlay.tools !== void 0 && { tools: overlay.tools },
|
|
53
|
-
...overlay.plugins !== void 0 && { plugins: overlay.plugins }
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export {
|
|
58
|
-
defaultConfig,
|
|
59
|
-
loadConfig
|
|
60
|
-
};
|
|
61
|
-
//# sourceMappingURL=chunk-GMSRSNWA.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/config/loader.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\r\nimport { join } from \"node:path\";\r\nimport { parse } from \"smol-toml\";\r\nimport type { Config } from \"./types.js\";\r\n\r\n/** 出厂默认配置 — 在找不到配置文件时使用。 */\r\nexport const defaultConfig: Config = {\r\n defaultProvider: \"deepseek\",\r\n providers: [\r\n {\r\n name: \"deepseek\",\r\n baseUrl: \"https://api.deepseek.com\",\r\n model: \"deepseek-chat\",\r\n },\r\n ],\r\n tools: [\r\n { name: \"read_file\", enabled: true },\r\n { name: \"write_file\", enabled: true },\r\n { name: \"edit_file\", enabled: true },\r\n { name: \"bash\", enabled: true },\r\n { name: \"glob\", enabled: true },\r\n { name: \"grep\", enabled: true },\r\n { name: \"ls\", enabled: true },\r\n { name: \"fetch\", enabled: true },\r\n ],\r\n plugins: [],\r\n};\r\n\r\n/**\r\n * 从 TOML 文件加载配置,未找到时回退到默认值。\r\n *\r\n * 解析顺序(后加载的优先级更高):\r\n * 1. 内置默认值\r\n * 2. 用户全局 ~/.config/dskcode.toml\r\n * 3. 项目本地 .dskcode.toml(或通过 --config 指定的路径)\r\n */\r\nexport async function loadConfig(configPath?: string): Promise<Config> {\r\n const candidates: string[] = [];\r\n\r\n if (configPath) {\r\n candidates.push(configPath);\r\n } else {\r\n candidates.push(\r\n join(process.env.HOME ?? process.env.USERPROFILE ?? \"~\", \".config\", \"dskcode.toml\"),\r\n join(process.cwd(), \".dskcode.toml\"),\r\n );\r\n }\r\n\r\n let config: Config = structuredClone(defaultConfig);\r\n\r\n for (const candidate of candidates) {\r\n try {\r\n const raw = await readFile(candidate, \"utf-8\");\r\n const parsed = parse(raw) as unknown as Partial<Config>;\r\n config = mergeConfig(config, parsed);\r\n } catch {\r\n // file doesn't exist or can't be read — skip\r\n }\r\n }\r\n\r\n return config;\r\n}\r\n\r\n/** 将部分配置深度合并到已有配置之上。 */\r\nfunction mergeConfig(base: Config, overlay: Partial<Config>): Config {\r\n return {\r\n ...base,\r\n ...(overlay.defaultProvider !== undefined && { defaultProvider: overlay.defaultProvider }),\r\n ...(overlay.providers !== undefined && { providers: overlay.providers }),\r\n ...(overlay.tools !== undefined && { tools: overlay.tools }),\r\n ...(overlay.plugins !== undefined && { plugins: overlay.plugins }),\r\n };\r\n}\r\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,YAAY;AACrB,SAAS,aAAa;AAIf,IAAM,gBAAwB;AAAA,EACnC,iBAAiB;AAAA,EACjB,WAAW;AAAA,IACT;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,EAAE,MAAM,aAAa,SAAS,KAAK;AAAA,IACnC,EAAE,MAAM,cAAc,SAAS,KAAK;AAAA,IACpC,EAAE,MAAM,aAAa,SAAS,KAAK;AAAA,IACnC,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IAC9B,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IAC9B,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IAC9B,EAAE,MAAM,MAAM,SAAS,KAAK;AAAA,IAC5B,EAAE,MAAM,SAAS,SAAS,KAAK;AAAA,EACjC;AAAA,EACA,SAAS,CAAC;AACZ;AAUA,eAAsB,WAAW,YAAsC;AACrE,QAAM,aAAuB,CAAC;AAE9B,MAAI,YAAY;AACd,eAAW,KAAK,UAAU;AAAA,EAC5B,OAAO;AACL,eAAW;AAAA,MACT,KAAK,QAAQ,IAAI,QAAQ,QAAQ,IAAI,eAAe,KAAK,WAAW,cAAc;AAAA,MAClF,KAAK,QAAQ,IAAI,GAAG,eAAe;AAAA,IACrC;AAAA,EACF;AAEA,MAAI,SAAiB,gBAAgB,aAAa;AAElD,aAAW,aAAa,YAAY;AAClC,QAAI;AACF,YAAM,MAAM,MAAM,SAAS,WAAW,OAAO;AAC7C,YAAM,SAAS,MAAM,GAAG;AACxB,eAAS,YAAY,QAAQ,MAAM;AAAA,IACrC,QAAQ;AAAA,IAER;AAAA,EACF;AAEA,SAAO;AACT;AAGA,SAAS,YAAY,MAAc,SAAkC;AACnE,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAI,QAAQ,oBAAoB,UAAa,EAAE,iBAAiB,QAAQ,gBAAgB;AAAA,IACxF,GAAI,QAAQ,cAAc,UAAa,EAAE,WAAW,QAAQ,UAAU;AAAA,IACtE,GAAI,QAAQ,UAAU,UAAa,EAAE,OAAO,QAAQ,MAAM;AAAA,IAC1D,GAAI,QAAQ,YAAY,UAAa,EAAE,SAAS,QAAQ,QAAQ;AAAA,EAClE;AACF;","names":[]}
|
package/dist/config-42MSCTVE.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|