pi-lilac-provider 1.9.2 → 1.9.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/deprecated-models.json +49 -1
- package/index.ts +5 -2
- package/package.json +3 -3
- package/patch.json +64 -41
- package/scripts/test-preserved-thinking.ts +12 -1
package/deprecated-models.json
CHANGED
|
@@ -1 +1,49 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"zai-org/glm-5.1": {
|
|
3
|
+
"id": "zai-org/glm-5.1",
|
|
4
|
+
"name": "GLM 5.1",
|
|
5
|
+
"reasoning": true,
|
|
6
|
+
"input": [
|
|
7
|
+
"text"
|
|
8
|
+
],
|
|
9
|
+
"cost": {
|
|
10
|
+
"input": 0.9,
|
|
11
|
+
"output": 3,
|
|
12
|
+
"cacheRead": 0.27,
|
|
13
|
+
"cacheWrite": 0
|
|
14
|
+
},
|
|
15
|
+
"contextWindow": 202752,
|
|
16
|
+
"maxTokens": 131072,
|
|
17
|
+
"compat": {
|
|
18
|
+
"supportsDeveloperRole": false,
|
|
19
|
+
"supportsStore": false,
|
|
20
|
+
"maxTokensField": "max_completion_tokens",
|
|
21
|
+
"thinkingFormat": "qwen-chat-template",
|
|
22
|
+
"zaiToolStream": true
|
|
23
|
+
},
|
|
24
|
+
"deprecatedAt": "2026-08-02T19:34:35.890Z"
|
|
25
|
+
},
|
|
26
|
+
"minimaxai/minimax-m2.7": {
|
|
27
|
+
"id": "minimaxai/minimax-m2.7",
|
|
28
|
+
"name": "MiniMax M2.7",
|
|
29
|
+
"reasoning": true,
|
|
30
|
+
"input": [
|
|
31
|
+
"text"
|
|
32
|
+
],
|
|
33
|
+
"cost": {
|
|
34
|
+
"input": 0.3,
|
|
35
|
+
"output": 1.2,
|
|
36
|
+
"cacheRead": 0.055,
|
|
37
|
+
"cacheWrite": 0
|
|
38
|
+
},
|
|
39
|
+
"contextWindow": 204800,
|
|
40
|
+
"maxTokens": 204800,
|
|
41
|
+
"compat": {
|
|
42
|
+
"supportsDeveloperRole": true,
|
|
43
|
+
"supportsStore": false,
|
|
44
|
+
"maxTokensField": "max_completion_tokens",
|
|
45
|
+
"thinkingFormat": "qwen-chat-template"
|
|
46
|
+
},
|
|
47
|
+
"deprecatedAt": "2026-08-02T19:34:35.890Z"
|
|
48
|
+
}
|
|
49
|
+
}
|
package/index.ts
CHANGED
|
@@ -417,7 +417,10 @@ function buildModels(
|
|
|
417
417
|
): JsonModel[] {
|
|
418
418
|
const modelMap = new Map<string, JsonModel>();
|
|
419
419
|
|
|
420
|
-
|
|
420
|
+
// Seed with the base list plus grace-period deprecated models so patch.json
|
|
421
|
+
// entries apply to deprecated models exactly as while the model was live
|
|
422
|
+
// (withDeprecated keeps live data on id conflicts).
|
|
423
|
+
for (const model of withDeprecated(base)) {
|
|
421
424
|
modelMap.set(model.id, model);
|
|
422
425
|
}
|
|
423
426
|
|
|
@@ -454,7 +457,7 @@ function buildModels(
|
|
|
454
457
|
}
|
|
455
458
|
}
|
|
456
459
|
|
|
457
|
-
return
|
|
460
|
+
return Array.from(modelMap.values());
|
|
458
461
|
}
|
|
459
462
|
|
|
460
463
|
// ─── Stale-While-Revalidate Model Sync ────────────────────────────────────────
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-lilac-provider",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.4",
|
|
4
4
|
"description": "Lilac provider extension for pi - Access Kimi K2.6, GLM 5.1, and Gemma 4 models through Lilac's OpenAI-compatible API on idle GPUs",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.ts",
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@earendil-works/pi-coding-agent": "0.83.0",
|
|
34
|
-
"typescript": "6.0.3",
|
|
35
34
|
"@types/node": "25.9.1",
|
|
36
|
-
"knip": "6.14.1"
|
|
35
|
+
"knip": "6.14.1",
|
|
36
|
+
"typescript": "6.0.3"
|
|
37
37
|
},
|
|
38
38
|
"pi": {
|
|
39
39
|
"extensions": [
|
package/patch.json
CHANGED
|
@@ -2,15 +2,19 @@
|
|
|
2
2
|
"moonshotai/kimi-k2.6": {
|
|
3
3
|
"reasoning": true,
|
|
4
4
|
"cost": {
|
|
5
|
-
"input": 0.
|
|
6
|
-
"output": 3.
|
|
7
|
-
"cacheRead": 0.
|
|
5
|
+
"input": 0.7,
|
|
6
|
+
"output": 3.5,
|
|
7
|
+
"cacheRead": 0.2
|
|
8
8
|
},
|
|
9
9
|
"compat": {
|
|
10
10
|
"thinkingFormat": "chat-template",
|
|
11
11
|
"chatTemplateKwargs": {
|
|
12
|
-
"thinking": {
|
|
13
|
-
|
|
12
|
+
"thinking": {
|
|
13
|
+
"$var": "thinking.enabled"
|
|
14
|
+
},
|
|
15
|
+
"enable_thinking": {
|
|
16
|
+
"$var": "thinking.enabled"
|
|
17
|
+
},
|
|
14
18
|
"preserve_thinking": true
|
|
15
19
|
},
|
|
16
20
|
"maxTokensField": "max_completion_tokens",
|
|
@@ -18,33 +22,17 @@
|
|
|
18
22
|
"supportsStore": false
|
|
19
23
|
}
|
|
20
24
|
},
|
|
21
|
-
"zai-org/glm-5.1": {
|
|
22
|
-
"reasoning": true,
|
|
23
|
-
"maxTokens": 131072,
|
|
24
|
-
"cost": {
|
|
25
|
-
"input": 0.90,
|
|
26
|
-
"output": 3.00,
|
|
27
|
-
"cacheRead": 0.27
|
|
28
|
-
},
|
|
29
|
-
"compat": {
|
|
30
|
-
"thinkingFormat": "chat-template",
|
|
31
|
-
"chatTemplateKwargs": {
|
|
32
|
-
"thinking": { "$var": "thinking.enabled" },
|
|
33
|
-
"enable_thinking": { "$var": "thinking.enabled" },
|
|
34
|
-
"clear_thinking": false
|
|
35
|
-
},
|
|
36
|
-
"maxTokensField": "max_completion_tokens",
|
|
37
|
-
"supportsDeveloperRole": false,
|
|
38
|
-
"supportsStore": false,
|
|
39
|
-
"zaiToolStream": true
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
25
|
"zai-org/glm-5.2": {
|
|
43
26
|
"compat": {
|
|
44
27
|
"thinkingFormat": "chat-template",
|
|
45
28
|
"chatTemplateKwargs": {
|
|
46
|
-
"enable_thinking": {
|
|
47
|
-
|
|
29
|
+
"enable_thinking": {
|
|
30
|
+
"$var": "thinking.enabled"
|
|
31
|
+
},
|
|
32
|
+
"reasoning_effort": {
|
|
33
|
+
"$var": "thinking.effort",
|
|
34
|
+
"omitWhenOff": true
|
|
35
|
+
},
|
|
48
36
|
"clear_thinking": false
|
|
49
37
|
}
|
|
50
38
|
},
|
|
@@ -66,29 +54,25 @@
|
|
|
66
54
|
"compat": {
|
|
67
55
|
"thinkingFormat": "chat-template",
|
|
68
56
|
"chatTemplateKwargs": {
|
|
69
|
-
"thinking": {
|
|
70
|
-
|
|
57
|
+
"thinking": {
|
|
58
|
+
"$var": "thinking.enabled"
|
|
59
|
+
},
|
|
60
|
+
"enable_thinking": {
|
|
61
|
+
"$var": "thinking.enabled"
|
|
62
|
+
}
|
|
71
63
|
},
|
|
72
64
|
"maxTokensField": "max_completion_tokens",
|
|
73
65
|
"supportsDeveloperRole": true,
|
|
74
66
|
"supportsStore": false
|
|
75
67
|
}
|
|
76
68
|
},
|
|
77
|
-
"minimaxai/minimax-m2.7": {
|
|
78
|
-
"compat": {
|
|
79
|
-
"thinkingFormat": "chat-template",
|
|
80
|
-
"chatTemplateKwargs": {
|
|
81
|
-
"thinking": { "$var": "thinking.enabled" },
|
|
82
|
-
"enable_thinking": { "$var": "thinking.enabled" }
|
|
83
|
-
},
|
|
84
|
-
"supportsDeveloperRole": false
|
|
85
|
-
}
|
|
86
|
-
},
|
|
87
69
|
"minimaxai/minimax-m3": {
|
|
88
70
|
"compat": {
|
|
89
71
|
"thinkingFormat": "chat-template",
|
|
90
72
|
"chatTemplateKwargs": {
|
|
91
|
-
"thinking_mode": {
|
|
73
|
+
"thinking_mode": {
|
|
74
|
+
"$var": "thinking.effort"
|
|
75
|
+
}
|
|
92
76
|
}
|
|
93
77
|
},
|
|
94
78
|
"thinkingLevelMap": {
|
|
@@ -99,5 +83,44 @@
|
|
|
99
83
|
"high": "enabled",
|
|
100
84
|
"xhigh": null
|
|
101
85
|
}
|
|
86
|
+
},
|
|
87
|
+
"zai-org/glm-5.1": {
|
|
88
|
+
"reasoning": true,
|
|
89
|
+
"maxTokens": 131072,
|
|
90
|
+
"cost": {
|
|
91
|
+
"input": 0.9,
|
|
92
|
+
"output": 3,
|
|
93
|
+
"cacheRead": 0.27
|
|
94
|
+
},
|
|
95
|
+
"compat": {
|
|
96
|
+
"thinkingFormat": "chat-template",
|
|
97
|
+
"chatTemplateKwargs": {
|
|
98
|
+
"thinking": {
|
|
99
|
+
"$var": "thinking.enabled"
|
|
100
|
+
},
|
|
101
|
+
"enable_thinking": {
|
|
102
|
+
"$var": "thinking.enabled"
|
|
103
|
+
},
|
|
104
|
+
"clear_thinking": false
|
|
105
|
+
},
|
|
106
|
+
"maxTokensField": "max_completion_tokens",
|
|
107
|
+
"supportsDeveloperRole": false,
|
|
108
|
+
"supportsStore": false,
|
|
109
|
+
"zaiToolStream": true
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"minimaxai/minimax-m2.7": {
|
|
113
|
+
"compat": {
|
|
114
|
+
"thinkingFormat": "chat-template",
|
|
115
|
+
"chatTemplateKwargs": {
|
|
116
|
+
"thinking": {
|
|
117
|
+
"$var": "thinking.enabled"
|
|
118
|
+
},
|
|
119
|
+
"enable_thinking": {
|
|
120
|
+
"$var": "thinking.enabled"
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"supportsDeveloperRole": false
|
|
124
|
+
}
|
|
102
125
|
}
|
|
103
126
|
}
|
|
@@ -92,9 +92,20 @@ const PI_AI_API = path.join(
|
|
|
92
92
|
);
|
|
93
93
|
function os_home_pi_ai() {
|
|
94
94
|
// Resolve the pi-ai package shipped inside the globally-installed pi agent.
|
|
95
|
+
let piAgentSibling = "";
|
|
96
|
+
try {
|
|
97
|
+
const agentPackage = path.join(HERE, "..", "node_modules", "@earendil-works", "pi-coding-agent", "package.json");
|
|
98
|
+
piAgentSibling = path.join(path.dirname(fs.realpathSync(agentPackage)), "..", "pi-ai");
|
|
99
|
+
} catch {
|
|
100
|
+
// The fallback candidates below cover direct pi-ai installs and global pi.
|
|
101
|
+
}
|
|
95
102
|
const candidates = [
|
|
103
|
+
process.env.PI_AI_PATH,
|
|
104
|
+
piAgentSibling,
|
|
105
|
+
path.join(HERE, "..", "node_modules", "@earendil-works", "pi-ai"),
|
|
106
|
+
path.join(HERE, "..", "node_modules", "@earendil-works", "pi-coding-agent", "node_modules", "@earendil-works", "pi-ai"),
|
|
96
107
|
"/Users/monotykamary/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/node_modules/@earendil-works/pi-ai",
|
|
97
|
-
];
|
|
108
|
+
].filter((candidate): candidate is string => typeof candidate === "string" && candidate.length > 0);
|
|
98
109
|
for (const c of candidates) if (fs.existsSync(c)) return c;
|
|
99
110
|
throw new Error("Could not locate pi-ai package in the global pi install.");
|
|
100
111
|
}
|