@pasko70/pibo 1.16.0 → 1.16.2
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/apps/chat/model-catalog.js +2 -0
- package/dist/apps/{context-files-ui/assets/dist-CZOCrCg8.js → chat-ui/assets/dist-BISHtc7t.js} +1 -1
- package/dist/apps/{context-files-ui/assets/dist-BZscbUy_.js → chat-ui/assets/dist-CGlkj4C3.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-D4pAJPG3.js → dist-CNZT1Z0L.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-DCr1bDLp.js → dist-CsgWBaSD.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-ClTBuMxL.js → dist-DDJJ8GK-.js} +1 -1
- package/dist/apps/{context-files-ui/assets/dist-B8GCRy-W.js → chat-ui/assets/dist-DXkRuRed.js} +1 -1
- package/dist/apps/{context-files-ui/assets/dist-CFbqQ7A8.js → chat-ui/assets/dist-DltoBBze.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-4-l8R83g.js → dist-DoMBxyQP.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-DbW63bQx.js → dist-I7cqk1W9.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-DyeQntkx.js → dist-gWAQGdkD.js} +1 -1
- package/dist/apps/chat-ui/assets/index-CiKRTg5a.js +237 -0
- package/dist/apps/chat-ui/index.html +1 -1
- package/dist/apps/chat-vscode-web/assets/index-JHIrxu8c.js +41 -0
- package/dist/apps/chat-vscode-web/index.html +1 -1
- package/dist/apps/{chat-ui/assets/dist-D_inCXoq.js → context-files-ui/assets/dist-B7gXtTZC.js} +1 -1
- package/dist/apps/{chat-ui/assets/dist-BKc5qFOn.js → context-files-ui/assets/dist-BD262Ouw.js} +1 -1
- package/dist/apps/context-files-ui/assets/{dist-C3bTw5ib.js → dist-BKuGdcnX.js} +1 -1
- package/dist/apps/context-files-ui/assets/{dist-D_65A0Jm.js → dist-C-Jm45P4.js} +1 -1
- package/dist/apps/{chat-ui/assets/dist-B9-pH_ss.js → context-files-ui/assets/dist-CHdx1Jri.js} +1 -1
- package/dist/apps/context-files-ui/assets/{dist-dXgL1mFo.js → dist-CULMH-fB.js} +1 -1
- package/dist/apps/context-files-ui/assets/{dist-DsVkw0QH.js → dist-Cjq6RWEt.js} +1 -1
- package/dist/apps/{chat-ui/assets/dist-CfT2OdUN.js → context-files-ui/assets/dist-CntqFySz.js} +1 -1
- package/dist/apps/context-files-ui/assets/{dist-4oHMVqMd.js → dist-DxEGebCR.js} +1 -1
- package/dist/apps/context-files-ui/assets/{dist-D9wOh84K.js → dist-kPuQud7t.js} +1 -1
- package/dist/apps/context-files-ui/assets/index-DZWsbuvg.js +202 -0
- package/dist/apps/context-files-ui/index.html +1 -1
- package/dist/core/runtime.js +2 -0
- package/dist/plugins/builtin.js +1 -0
- package/dist/providers/openai-compat.js +6 -1
- package/dist/providers/qwen-token-plan.js +102 -0
- package/package.json +1 -1
- package/dist/apps/chat-ui/assets/index-CMTOlTY9.js +0 -473
- package/dist/apps/chat-vscode-web/assets/index-BeTXIfmQ.js +0 -275
- package/dist/apps/context-files-ui/assets/index-DiJwk6ni.js +0 -438
- package/dist/apps/vscode-artifacts/latest.vsix +0 -0
- package/dist/apps/vscode-artifacts/pibo-vscode-ext-1.16.0.vsix +0 -0
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Pibo Context Files</title>
|
|
7
|
-
<script type="module" crossorigin src="/apps/context-files/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/apps/context-files/assets/index-DZWsbuvg.js"></script>
|
|
8
8
|
<link rel="modulepreload" crossorigin href="/apps/context-files/assets/dist-D1KyNDg5.js">
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/apps/context-files/assets/index-Cs4XQITe.css">
|
|
10
10
|
</head>
|
package/dist/core/runtime.js
CHANGED
|
@@ -22,6 +22,7 @@ import { DEFAULT_USER_TIMEZONE } from "./user-settings.js";
|
|
|
22
22
|
import { registerMiniMaxProvider } from "../providers/minimax.js";
|
|
23
23
|
import { registerGlmProvider } from "../providers/glm.js";
|
|
24
24
|
import { registerOpenAiGpt56Models } from "../providers/openai-gpt56.js";
|
|
25
|
+
import { registerQwenTokenPlanProvider } from "../providers/qwen-token-plan.js";
|
|
25
26
|
import { PIBO_APP_CONTEXT } from "../app-context.js";
|
|
26
27
|
import { createRuntimeToolDefinition } from "../tools/runtime/tool.js";
|
|
27
28
|
import { RuntimeSessionRegistry } from "../tools/runtime/registry.js";
|
|
@@ -291,6 +292,7 @@ export async function createPiboRuntime(options = {}) {
|
|
|
291
292
|
registerOpenAiGpt56Models(services.modelRegistry);
|
|
292
293
|
registerMiniMaxProvider(services.modelRegistry);
|
|
293
294
|
registerGlmProvider(services.modelRegistry);
|
|
295
|
+
registerQwenTokenPlanProvider(services.modelRegistry);
|
|
294
296
|
const ownsLocalRuntimeRegistry = options.runtimeToolController === undefined && profile.tools.some(isEnabledRuntimeTool);
|
|
295
297
|
const localRuntimeRegistry = ownsLocalRuntimeRegistry ? new RuntimeSessionRegistry({ cwd: runtimeCwd }) : undefined;
|
|
296
298
|
const runtimeToolController = options.runtimeToolController
|
package/dist/plugins/builtin.js
CHANGED
|
@@ -22,6 +22,7 @@ const LOGIN_PROVIDERS = [
|
|
|
22
22
|
{ id: "openai-codex", name: "OpenAI (ChatGPT Plus/Pro)", authMethods: ["device_code"] },
|
|
23
23
|
{ id: "openai", name: "OpenAI API", authMethods: ["api_key"] },
|
|
24
24
|
{ id: "anthropic", name: "Anthropic", authMethods: ["api_key"] },
|
|
25
|
+
{ id: "qwen-token-plan", name: "Qwen Token Plan", authMethods: ["api_key"] },
|
|
25
26
|
{ id: "kimi-coding", name: "Kimi for Coding", authMethods: ["api_key"] },
|
|
26
27
|
{ id: "google", name: "Google Gemini", authMethods: ["api_key"] },
|
|
27
28
|
{ id: "groq", name: "Groq", authMethods: ["api_key"] },
|
|
@@ -8,6 +8,8 @@ export function buildOpenAiCompatConfig(spec, baseModels = []) {
|
|
|
8
8
|
api: OPENAI_COMPLETIONS_API,
|
|
9
9
|
baseUrl: spec.baseUrl,
|
|
10
10
|
reasoning: Boolean(model.reasoning),
|
|
11
|
+
thinkingLevelMap: model.thinkingLevelMap ? { ...model.thinkingLevelMap } : undefined,
|
|
12
|
+
compat: model.compat ? { ...model.compat } : undefined,
|
|
11
13
|
input: [...model.input],
|
|
12
14
|
cost: { ...model.cost },
|
|
13
15
|
contextWindow: model.contextWindow,
|
|
@@ -19,6 +21,8 @@ export function buildOpenAiCompatConfig(spec, baseModels = []) {
|
|
|
19
21
|
api: OPENAI_COMPLETIONS_API,
|
|
20
22
|
baseUrl: spec.baseUrl,
|
|
21
23
|
reasoning: model.reasoning ?? false,
|
|
24
|
+
thinkingLevelMap: model.thinkingLevelMap ? { ...model.thinkingLevelMap } : undefined,
|
|
25
|
+
compat: model.compat ? { ...model.compat } : undefined,
|
|
22
26
|
input: [...model.input],
|
|
23
27
|
cost: { ...model.cost },
|
|
24
28
|
contextWindow: model.contextWindow,
|
|
@@ -30,9 +34,10 @@ export function buildOpenAiCompatConfig(spec, baseModels = []) {
|
|
|
30
34
|
for (const entry of customEntries)
|
|
31
35
|
byId.set(entry.id, entry);
|
|
32
36
|
return {
|
|
37
|
+
name: spec.name,
|
|
33
38
|
baseUrl: spec.baseUrl,
|
|
34
39
|
api: OPENAI_COMPLETIONS_API,
|
|
35
|
-
apiKey: spec.apiKeyEnv
|
|
40
|
+
apiKey: `$${spec.apiKeyEnv}`,
|
|
36
41
|
models: [...byId.values()],
|
|
37
42
|
};
|
|
38
43
|
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { OPENAI_COMPLETIONS_API, registerOpenAiCompatProvider, resetOpenAiCompatProviderRegistration, unregisterOpenAiCompatProvider, } from "./openai-compat.js";
|
|
2
|
+
export const QWEN_TOKEN_PLAN_PROVIDER_ID = "qwen-token-plan";
|
|
3
|
+
export const QWEN_TOKEN_PLAN_PROVIDER_NAME = "Qwen Token Plan";
|
|
4
|
+
export const QWEN_TOKEN_PLAN_DEFAULT_BASE_URL = "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1";
|
|
5
|
+
export const QWEN_TOKEN_PLAN_API_KEY_ENV = "QWEN_TOKEN_PLAN_API_KEY";
|
|
6
|
+
const QWEN_COMPAT = {
|
|
7
|
+
supportsStore: false,
|
|
8
|
+
supportsDeveloperRole: false,
|
|
9
|
+
thinkingFormat: "qwen",
|
|
10
|
+
maxTokensField: "max_tokens",
|
|
11
|
+
};
|
|
12
|
+
const DEEPSEEK_COMPAT = {
|
|
13
|
+
supportsStore: false,
|
|
14
|
+
supportsDeveloperRole: false,
|
|
15
|
+
thinkingFormat: "deepseek",
|
|
16
|
+
maxTokensField: "max_tokens",
|
|
17
|
+
};
|
|
18
|
+
const DASHSCOPE_COMPAT = {
|
|
19
|
+
supportsStore: false,
|
|
20
|
+
supportsDeveloperRole: false,
|
|
21
|
+
maxTokensField: "max_tokens",
|
|
22
|
+
};
|
|
23
|
+
const ZERO_COST = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 };
|
|
24
|
+
function model(id, name, compat, contextWindow, maxTokens, input, reasoning = true) {
|
|
25
|
+
return { id, name, reasoning, compat, contextWindow, maxTokens, cost: ZERO_COST, input };
|
|
26
|
+
}
|
|
27
|
+
function qwenModel(id, name, input, contextWindow = 1_000_000, maxTokens = 65_536) {
|
|
28
|
+
return model(id, name, QWEN_COMPAT, contextWindow, maxTokens, input);
|
|
29
|
+
}
|
|
30
|
+
function deepseekModel(id, name, contextWindow, maxTokens) {
|
|
31
|
+
return model(id, name, DEEPSEEK_COMPAT, contextWindow, maxTokens, ["text"]);
|
|
32
|
+
}
|
|
33
|
+
function thirdPartyModel(id, name, contextWindow, maxTokens, input, reasoning = true) {
|
|
34
|
+
return model(id, name, DASHSCOPE_COMPAT, contextWindow, maxTokens, input, reasoning);
|
|
35
|
+
}
|
|
36
|
+
export const QWEN_TOKEN_PLAN_MODELS = [
|
|
37
|
+
// Qwen Max family
|
|
38
|
+
qwenModel("qwen-max", "Qwen Max", ["text", "image"]),
|
|
39
|
+
qwenModel("qwen3.7-max", "Qwen3.7 Max", ["text"]),
|
|
40
|
+
qwenModel("qwen3-max", "Qwen3 Max", ["text"]),
|
|
41
|
+
qwenModel("qwen3.6-max-preview", "Qwen3.6 Max Preview", ["text", "image"]),
|
|
42
|
+
// Qwen Plus family
|
|
43
|
+
qwenModel("qwen3.7-plus", "Qwen3.7 Plus", ["text", "image"]),
|
|
44
|
+
qwenModel("qwen3.6-plus", "Qwen3.6 Plus", ["text", "image"]),
|
|
45
|
+
qwenModel("qwen3.5-plus", "Qwen3.5 Plus", ["text", "image"]),
|
|
46
|
+
qwenModel("qwen-plus", "Qwen Plus", ["text", "image"]),
|
|
47
|
+
// Qwen Flash family
|
|
48
|
+
qwenModel("qwen3.6-flash", "Qwen3.6 Flash", ["text", "image"]),
|
|
49
|
+
qwenModel("qwen3.5-flash", "Qwen3.5 Flash", ["text", "image"]),
|
|
50
|
+
qwenModel("qwen-flash", "Qwen Flash", ["text", "image"]),
|
|
51
|
+
// Qwen Coder family
|
|
52
|
+
qwenModel("qwen-coder-plus", "Qwen Coder Plus", ["text"], 131_072, 65_536),
|
|
53
|
+
qwenModel("qwen-coder-turbo", "Qwen Coder Turbo", ["text"], 131_072, 65_536),
|
|
54
|
+
// DeepSeek
|
|
55
|
+
deepseekModel("deepseek-v4-flash", "DeepSeek V4 Flash", 1_000_000, 384_000),
|
|
56
|
+
deepseekModel("deepseek-v4-pro", "DeepSeek V4 Pro", 1_000_000, 384_000),
|
|
57
|
+
deepseekModel("deepseek-v3.2", "DeepSeek V3.2", 163_840, 65_536),
|
|
58
|
+
deepseekModel("deepseek-r1", "DeepSeek R1", 128_000, 32_768),
|
|
59
|
+
// Kimi (Moonshot AI)
|
|
60
|
+
thirdPartyModel("kimi-k2.7-code", "Kimi K2.7 Code", 262_144, 65_536, ["text", "image"]),
|
|
61
|
+
thirdPartyModel("kimi-k2.6", "Kimi K2.6", 262_144, 65_536, ["text", "image"]),
|
|
62
|
+
// GLM (Z.ai)
|
|
63
|
+
thirdPartyModel("glm-5.2", "GLM 5.2", 1_000_000, 131_072, ["text"]),
|
|
64
|
+
];
|
|
65
|
+
function resolveBaseUrl() {
|
|
66
|
+
const envOverride = process.env.PIBO_QWEN_TOKEN_PLAN_BASE_URL;
|
|
67
|
+
return envOverride && envOverride.length > 0
|
|
68
|
+
? envOverride
|
|
69
|
+
: QWEN_TOKEN_PLAN_DEFAULT_BASE_URL;
|
|
70
|
+
}
|
|
71
|
+
function buildQwenTokenPlanSpec() {
|
|
72
|
+
return {
|
|
73
|
+
id: QWEN_TOKEN_PLAN_PROVIDER_ID,
|
|
74
|
+
name: QWEN_TOKEN_PLAN_PROVIDER_NAME,
|
|
75
|
+
baseUrl: resolveBaseUrl(),
|
|
76
|
+
apiKeyEnv: QWEN_TOKEN_PLAN_API_KEY_ENV,
|
|
77
|
+
models: QWEN_TOKEN_PLAN_MODELS,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export function isQwenTokenPlanProvider(provider) {
|
|
81
|
+
return provider === QWEN_TOKEN_PLAN_PROVIDER_ID;
|
|
82
|
+
}
|
|
83
|
+
export function findQwenTokenPlanModel(modelRegistry, model) {
|
|
84
|
+
if (!model?.provider || !model.id)
|
|
85
|
+
return undefined;
|
|
86
|
+
if (!isQwenTokenPlanProvider(model.provider))
|
|
87
|
+
return undefined;
|
|
88
|
+
return modelRegistry.find(model.provider, model.id);
|
|
89
|
+
}
|
|
90
|
+
export function registerQwenTokenPlanProvider(modelRegistry) {
|
|
91
|
+
return registerOpenAiCompatProvider(modelRegistry, buildQwenTokenPlanSpec(), { baseModels: [] });
|
|
92
|
+
}
|
|
93
|
+
export function unregisterQwenTokenPlanProvider(modelRegistry) {
|
|
94
|
+
unregisterOpenAiCompatProvider(modelRegistry, QWEN_TOKEN_PLAN_PROVIDER_ID);
|
|
95
|
+
}
|
|
96
|
+
export function resetQwenTokenPlanProviderRegistration() {
|
|
97
|
+
resetOpenAiCompatProviderRegistration();
|
|
98
|
+
}
|
|
99
|
+
export function getDefaultQwenTokenPlanModels() {
|
|
100
|
+
return QWEN_TOKEN_PLAN_MODELS;
|
|
101
|
+
}
|
|
102
|
+
export { OPENAI_COMPLETIONS_API };
|