@zhushanwen/pi-rename-session 0.5.3 → 0.5.4
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/package.json
CHANGED
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhushanwen/pi-rename-session",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "index.ts",
|
|
6
6
|
"xyz-agent": {
|
|
7
|
-
"role": "universal"
|
|
7
|
+
"role": "universal",
|
|
8
|
+
"startupConfig": [
|
|
9
|
+
{
|
|
10
|
+
"path": "config/rename-session-ext-config.json",
|
|
11
|
+
"content": {
|
|
12
|
+
"enabled": false,
|
|
13
|
+
"model": {
|
|
14
|
+
"type": "ref",
|
|
15
|
+
"ref": ""
|
|
16
|
+
},
|
|
17
|
+
"maxTitleLength": 50,
|
|
18
|
+
"thinkingLevel": "off"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
]
|
|
8
22
|
},
|
|
9
23
|
"pi": {
|
|
10
24
|
"extensions": [
|
|
@@ -18,8 +32,8 @@
|
|
|
18
32
|
"pi-package"
|
|
19
33
|
],
|
|
20
34
|
"dependencies": {
|
|
21
|
-
"@zhushanwen/pi-extension-logger": "0.3.
|
|
22
|
-
"@zhushanwen/pi-llm-shared": "0.4.
|
|
35
|
+
"@zhushanwen/pi-extension-logger": "0.3.1",
|
|
36
|
+
"@zhushanwen/pi-llm-shared": "0.4.2"
|
|
23
37
|
},
|
|
24
38
|
"devDependencies": {
|
|
25
39
|
"@vitest/coverage-v8": "^4.1.9",
|
|
@@ -32,8 +46,8 @@
|
|
|
32
46
|
"vitest.config.ts"
|
|
33
47
|
],
|
|
34
48
|
"peerDependencies": {
|
|
35
|
-
"@earendil-works/pi-coding-agent": "^0.84.
|
|
36
|
-
"@earendil-works/pi-ai": "^0.84.
|
|
49
|
+
"@earendil-works/pi-coding-agent": "^0.84.4",
|
|
50
|
+
"@earendil-works/pi-ai": "^0.84.4",
|
|
37
51
|
"typebox": "*"
|
|
38
52
|
},
|
|
39
53
|
"peerDependenciesMeta": {
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* startupConfig 声明守护测试:断言 package.json `xyz-agent.startupConfig` 声明的
|
|
3
|
+
* content 与代码 DEFAULT_RENAME_CONFIG 常量深相等,防止两侧任一改动未同步(漂移)。
|
|
4
|
+
* 机制:runtime 启动序列统一 ensure(extension-startup-config.ts),声明即首建内容。
|
|
5
|
+
*
|
|
6
|
+
* 运行:cd extensions/universal/rename-session && npx vitest run src/__tests__/startup-config-declaration.test.ts
|
|
7
|
+
*/
|
|
8
|
+
import { readFileSync } from "node:fs";
|
|
9
|
+
import { join } from "node:path";
|
|
10
|
+
import { fileURLToPath } from "node:url";
|
|
11
|
+
|
|
12
|
+
import { describe, expect, it } from "vitest";
|
|
13
|
+
|
|
14
|
+
import { DEFAULT_RENAME_CONFIG } from "../pure.js";
|
|
15
|
+
|
|
16
|
+
/** package.json `xyz-agent.startupConfig` 声明条目的最小形状(守护断言用)。 */
|
|
17
|
+
interface StartupConfigEntry {
|
|
18
|
+
path: string;
|
|
19
|
+
content: unknown;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const pkg = JSON.parse(
|
|
23
|
+
readFileSync(join(fileURLToPath(import.meta.url), "../../../package.json"), "utf-8"),
|
|
24
|
+
) as { "xyz-agent"?: { startupConfig?: StartupConfigEntry[] } };
|
|
25
|
+
|
|
26
|
+
describe("startupConfig 声明守护", () => {
|
|
27
|
+
it("声明 content 与代码 DEFAULT_RENAME_CONFIG 深相等", () => {
|
|
28
|
+
const entry = pkg["xyz-agent"]?.startupConfig?.find(
|
|
29
|
+
(e: StartupConfigEntry) => e.path === "config/rename-session-ext-config.json",
|
|
30
|
+
);
|
|
31
|
+
expect(entry).toBeDefined();
|
|
32
|
+
expect(entry?.content).toEqual(DEFAULT_RENAME_CONFIG);
|
|
33
|
+
});
|
|
34
|
+
});
|
package/src/pure.ts
CHANGED
|
@@ -53,6 +53,9 @@ const THINKING_LEVELS: ReadonlySet<string> = new Set([
|
|
|
53
53
|
/** 环境变量前缀(避免与其他配置冲突)。 */
|
|
54
54
|
const ENV_PREFIX = "PI_RENAME_";
|
|
55
55
|
|
|
56
|
+
/** "provider/model" 格式按 "/" 拆分后的合法段数(modelEnv 校验用)。 */
|
|
57
|
+
const MODEL_REF_PART_COUNT = 2;
|
|
58
|
+
|
|
56
59
|
/**
|
|
57
60
|
* 从环境变量读取配置覆盖值(live 读取,每次调用查 process.env)。
|
|
58
61
|
*
|
|
@@ -84,7 +87,7 @@ function getEnvOverrides(): Partial<RenameSessionConfig> {
|
|
|
84
87
|
if (modelEnv !== undefined && typeof modelEnv === "string") {
|
|
85
88
|
// 支持 "provider/model" 格式(最常用场景)
|
|
86
89
|
const parts = modelEnv.split("/");
|
|
87
|
-
if (parts.length ===
|
|
90
|
+
if (parts.length === MODEL_REF_PART_COUNT && parts[0] && parts[1]) {
|
|
88
91
|
overrides.model = { type: "ref", ref: modelEnv };
|
|
89
92
|
}
|
|
90
93
|
// 其他格式静默忽略(复杂 ModelSelector 请用配置文件)
|