klaus-ai 0.1.13 → 0.1.14
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/dist/{chunk-UF5RURQG.js → chunk-L2GX3LVO.js} +12 -3
- package/dist/chunk-L2GX3LVO.js.map +1 -0
- package/dist/{chunk-ZGVKVCVT.js → chunk-LDUQDPLU.js} +2 -2
- package/dist/{doctor-JPDQZHYJ.js → doctor-FDGRZF6Q.js} +3 -3
- package/dist/index.js +1041 -161
- package/dist/index.js.map +1 -1
- package/dist/session-store-UAM7N2VU.js +180 -0
- package/dist/session-store-UAM7N2VU.js.map +1 -0
- package/dist/{setup-wizard-DZQ4FJPK.js → setup-wizard-AP5TONCO.js} +2 -2
- package/package.json +6 -2
- package/dist/chunk-UF5RURQG.js.map +0 -1
- package/dist/session-store-J34NB2BP.js +0 -138
- package/dist/session-store-J34NB2BP.js.map +0 -1
- /package/dist/{chunk-ZGVKVCVT.js.map → chunk-LDUQDPLU.js.map} +0 -0
- /package/dist/{doctor-JPDQZHYJ.js.map → doctor-FDGRZF6Q.js.map} +0 -0
- /package/dist/{setup-wizard-DZQ4FJPK.js.map → setup-wizard-AP5TONCO.js.map} +0 -0
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { readFileSync, writeFileSync, mkdirSync, existsSync } from "fs";
|
|
5
5
|
import { join } from "path";
|
|
6
6
|
import { homedir } from "os";
|
|
7
|
+
import { randomBytes } from "crypto";
|
|
7
8
|
import yaml from "js-yaml";
|
|
8
9
|
var CONFIG_DIR = join(homedir(), ".klaus");
|
|
9
10
|
var CONFIG_FILE = join(CONFIG_DIR, "config.yaml");
|
|
@@ -40,10 +41,18 @@ function loadWeComConfig() {
|
|
|
40
41
|
}
|
|
41
42
|
function loadWebConfig() {
|
|
42
43
|
const cfg = loadConfig().web ?? {};
|
|
44
|
+
let token = cfg.token ?? process.env.KLAUS_WEB_TOKEN ?? "";
|
|
45
|
+
if (!token || token === "(auto-generate)") {
|
|
46
|
+
token = randomBytes(24).toString("hex");
|
|
47
|
+
console.log(`[Web] Auto-generated token: ${token}`);
|
|
48
|
+
}
|
|
43
49
|
return {
|
|
44
|
-
token
|
|
50
|
+
token,
|
|
45
51
|
port: Number(cfg.port ?? process.env.KLAUS_WEB_PORT ?? 3e3),
|
|
46
|
-
tunnel: Boolean(cfg.tunnel ?? process.env.KLAUS_WEB_TUNNEL === "true")
|
|
52
|
+
tunnel: Boolean(cfg.tunnel ?? process.env.KLAUS_WEB_TUNNEL === "true"),
|
|
53
|
+
permissions: Boolean(
|
|
54
|
+
cfg.permissions ?? process.env.KLAUS_WEB_PERMISSIONS === "true"
|
|
55
|
+
)
|
|
47
56
|
};
|
|
48
57
|
}
|
|
49
58
|
function positiveNumber(raw, fallback) {
|
|
@@ -70,4 +79,4 @@ export {
|
|
|
70
79
|
loadWebConfig,
|
|
71
80
|
loadSessionConfig
|
|
72
81
|
};
|
|
73
|
-
//# sourceMappingURL=chunk-
|
|
82
|
+
//# sourceMappingURL=chunk-L2GX3LVO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/config.ts"],"sourcesContent":["import { readFileSync, writeFileSync, mkdirSync, existsSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { homedir } from \"node:os\";\nimport { randomBytes } from \"node:crypto\";\nimport yaml from \"js-yaml\";\nimport type {\n QQBotConfig,\n WeComConfig,\n WebConfig,\n SessionConfig,\n} from \"./types.js\";\n\nexport const CONFIG_DIR = join(homedir(), \".klaus\");\nexport const CONFIG_FILE = join(CONFIG_DIR, \"config.yaml\");\n\nexport function loadConfig(): Record<string, unknown> {\n if (!existsSync(CONFIG_FILE)) return {};\n const content = readFileSync(CONFIG_FILE, \"utf-8\");\n return (yaml.load(content) as Record<string, unknown>) ?? {};\n}\n\nexport function saveConfig(data: Record<string, unknown>): void {\n mkdirSync(CONFIG_DIR, { recursive: true });\n writeFileSync(CONFIG_FILE, yaml.dump(data, { flowLevel: -1 }), \"utf-8\");\n}\n\nexport function getChannelName(): string {\n const cfg = loadConfig();\n return (cfg.channel as string) ?? \"qq\";\n}\n\nexport function loadQQBotConfig(): QQBotConfig {\n const cfg = (loadConfig().qq as Record<string, string>) ?? {};\n return {\n appid: cfg.appid ?? process.env.QQ_BOT_APPID ?? \"\",\n secret: cfg.secret ?? process.env.QQ_BOT_SECRET ?? \"\",\n };\n}\n\nexport function loadWeComConfig(): WeComConfig {\n const cfg = (loadConfig().wecom as Record<string, unknown>) ?? {};\n return {\n corpId: (cfg.corp_id as string) ?? process.env.WECOM_CORP_ID ?? \"\",\n corpSecret:\n (cfg.corp_secret as string) ?? process.env.WECOM_CORP_SECRET ?? \"\",\n agentId: Number(cfg.agent_id ?? process.env.WECOM_AGENT_ID ?? 0),\n token: (cfg.token as string) ?? process.env.WECOM_TOKEN ?? \"\",\n encodingAesKey:\n (cfg.encoding_aes_key as string) ??\n process.env.WECOM_ENCODING_AES_KEY ??\n \"\",\n port: Number(cfg.port ?? process.env.WECOM_PORT ?? 8080),\n };\n}\n\nexport function loadWebConfig(): WebConfig {\n const cfg = (loadConfig().web as Record<string, unknown>) ?? {};\n let token = (cfg.token as string) ?? process.env.KLAUS_WEB_TOKEN ?? \"\";\n // Guard: auto-generate if token is empty or a placeholder value\n if (!token || token === \"(auto-generate)\") {\n token = randomBytes(24).toString(\"hex\");\n console.log(`[Web] Auto-generated token: ${token}`);\n }\n return {\n token,\n port: Number(cfg.port ?? process.env.KLAUS_WEB_PORT ?? 3000),\n tunnel: Boolean(cfg.tunnel ?? process.env.KLAUS_WEB_TUNNEL === \"true\"),\n permissions: Boolean(\n cfg.permissions ?? process.env.KLAUS_WEB_PERMISSIONS === \"true\",\n ),\n };\n}\n\nfunction positiveNumber(raw: unknown, fallback: number): number {\n const n = Number(raw ?? fallback);\n return Number.isFinite(n) && n > 0 ? n : fallback;\n}\n\nexport function loadSessionConfig(): SessionConfig {\n const cfg = (loadConfig().session as Record<string, unknown>) ?? {};\n return {\n idleMs: positiveNumber(cfg.idle_minutes, 240) * 60 * 1000,\n maxEntries: Math.floor(positiveNumber(cfg.max_entries, 100)),\n maxAgeMs: positiveNumber(cfg.max_age_days, 7) * 24 * 60 * 60 * 1000,\n };\n}\n"],"mappings":";;;AAAA,SAAS,cAAc,eAAe,WAAW,kBAAkB;AACnE,SAAS,YAAY;AACrB,SAAS,eAAe;AACxB,SAAS,mBAAmB;AAC5B,OAAO,UAAU;AAQV,IAAM,aAAa,KAAK,QAAQ,GAAG,QAAQ;AAC3C,IAAM,cAAc,KAAK,YAAY,aAAa;AAElD,SAAS,aAAsC;AACpD,MAAI,CAAC,WAAW,WAAW,EAAG,QAAO,CAAC;AACtC,QAAM,UAAU,aAAa,aAAa,OAAO;AACjD,SAAQ,KAAK,KAAK,OAAO,KAAiC,CAAC;AAC7D;AAEO,SAAS,WAAW,MAAqC;AAC9D,YAAU,YAAY,EAAE,WAAW,KAAK,CAAC;AACzC,gBAAc,aAAa,KAAK,KAAK,MAAM,EAAE,WAAW,GAAG,CAAC,GAAG,OAAO;AACxE;AAEO,SAAS,iBAAyB;AACvC,QAAM,MAAM,WAAW;AACvB,SAAQ,IAAI,WAAsB;AACpC;AAEO,SAAS,kBAA+B;AAC7C,QAAM,MAAO,WAAW,EAAE,MAAiC,CAAC;AAC5D,SAAO;AAAA,IACL,OAAO,IAAI,SAAS,QAAQ,IAAI,gBAAgB;AAAA,IAChD,QAAQ,IAAI,UAAU,QAAQ,IAAI,iBAAiB;AAAA,EACrD;AACF;AAEO,SAAS,kBAA+B;AAC7C,QAAM,MAAO,WAAW,EAAE,SAAqC,CAAC;AAChE,SAAO;AAAA,IACL,QAAS,IAAI,WAAsB,QAAQ,IAAI,iBAAiB;AAAA,IAChE,YACG,IAAI,eAA0B,QAAQ,IAAI,qBAAqB;AAAA,IAClE,SAAS,OAAO,IAAI,YAAY,QAAQ,IAAI,kBAAkB,CAAC;AAAA,IAC/D,OAAQ,IAAI,SAAoB,QAAQ,IAAI,eAAe;AAAA,IAC3D,gBACG,IAAI,oBACL,QAAQ,IAAI,0BACZ;AAAA,IACF,MAAM,OAAO,IAAI,QAAQ,QAAQ,IAAI,cAAc,IAAI;AAAA,EACzD;AACF;AAEO,SAAS,gBAA2B;AACzC,QAAM,MAAO,WAAW,EAAE,OAAmC,CAAC;AAC9D,MAAI,QAAS,IAAI,SAAoB,QAAQ,IAAI,mBAAmB;AAEpE,MAAI,CAAC,SAAS,UAAU,mBAAmB;AACzC,YAAQ,YAAY,EAAE,EAAE,SAAS,KAAK;AACtC,YAAQ,IAAI,+BAA+B,KAAK,EAAE;AAAA,EACpD;AACA,SAAO;AAAA,IACL;AAAA,IACA,MAAM,OAAO,IAAI,QAAQ,QAAQ,IAAI,kBAAkB,GAAI;AAAA,IAC3D,QAAQ,QAAQ,IAAI,UAAU,QAAQ,IAAI,qBAAqB,MAAM;AAAA,IACrE,aAAa;AAAA,MACX,IAAI,eAAe,QAAQ,IAAI,0BAA0B;AAAA,IAC3D;AAAA,EACF;AACF;AAEA,SAAS,eAAe,KAAc,UAA0B;AAC9D,QAAM,IAAI,OAAO,OAAO,QAAQ;AAChC,SAAO,OAAO,SAAS,CAAC,KAAK,IAAI,IAAI,IAAI;AAC3C;AAEO,SAAS,oBAAmC;AACjD,QAAM,MAAO,WAAW,EAAE,WAAuC,CAAC;AAClE,SAAO;AAAA,IACL,QAAQ,eAAe,IAAI,cAAc,GAAG,IAAI,KAAK;AAAA,IACrD,YAAY,KAAK,MAAM,eAAe,IAAI,aAAa,GAAG,CAAC;AAAA,IAC3D,UAAU,eAAe,IAAI,cAAc,CAAC,IAAI,KAAK,KAAK,KAAK;AAAA,EACjE;AACF;","names":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
CONFIG_FILE
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-L2GX3LVO.js";
|
|
5
5
|
|
|
6
6
|
// src/channels/types.ts
|
|
7
7
|
var registry = /* @__PURE__ */ new Map();
|
|
@@ -211,4 +211,4 @@ export {
|
|
|
211
211
|
formatValidationIssues,
|
|
212
212
|
ensureConfigValid
|
|
213
213
|
};
|
|
214
|
-
//# sourceMappingURL=chunk-
|
|
214
|
+
//# sourceMappingURL=chunk-LDUQDPLU.js.map
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
formatValidationIssues,
|
|
4
4
|
validateConfig
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-LDUQDPLU.js";
|
|
6
6
|
import {
|
|
7
7
|
CONFIG_FILE
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-L2GX3LVO.js";
|
|
9
9
|
|
|
10
10
|
// src/doctor.ts
|
|
11
11
|
import { execSync } from "child_process";
|
|
@@ -69,4 +69,4 @@ function runDoctor() {
|
|
|
69
69
|
export {
|
|
70
70
|
runDoctor
|
|
71
71
|
};
|
|
72
|
-
//# sourceMappingURL=doctor-
|
|
72
|
+
//# sourceMappingURL=doctor-FDGRZF6Q.js.map
|