[Init] Initial commit - NetMesh terminal manager
Some checks failed
build-packages / resolve bundled mosh-client (push) Has been cancelled
build-packages / resolve bundled et-client (push) Has been cancelled
build-packages / build-macos (push) Has been cancelled
build-packages / build-windows (push) Has been cancelled
build-packages / build-linux-x64 (push) Has been cancelled
build-packages / build-linux-arm64 (push) Has been cancelled
build-packages / release (push) Has been cancelled
build-packages / update Nix release metadata (push) Has been cancelled
build-packages / bump homebrew tap (push) Has been cancelled
test / lint-and-test (push) Has been cancelled
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
build-et-binaries / build-linux-x64 (push) Has been cancelled
build-et-binaries / build-linux-arm64 (push) Has been cancelled
build-et-binaries / build-macos-universal (push) Has been cancelled
build-et-binaries / build-windows-x64 (push) Has been cancelled
build-et-binaries / release (push) Has been cancelled

This commit is contained in:
2026-09-13 18:24:01 +08:00
commit 3c72efcb7f
3255 changed files with 907009 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
import assert from "node:assert/strict";
import test from "node:test";
import { PROVIDER_PRESETS, resolveOpenAIApi, resolveProviderStyle } from "./types";
test("resolveProviderStyle prefers an explicit style override", () => {
assert.equal(resolveProviderStyle({ providerId: "custom", style: "anthropic" }), "anthropic");
assert.equal(resolveProviderStyle({ providerId: "openai", style: "google" }), "google");
});
test("resolveProviderStyle falls back to providerId for anthropic", () => {
assert.equal(resolveProviderStyle({ providerId: "anthropic" }), "anthropic");
});
test("resolveProviderStyle falls back to providerId for google", () => {
assert.equal(resolveProviderStyle({ providerId: "google" }), "google");
});
test("resolveProviderStyle treats every other providerId as the OpenAI-compatible family", () => {
for (const providerId of ["openai", "ollama", "openrouter", "qwen", "deepseek", "kimi", "zhipu", "doubao", "mimo", "custom"] as const) {
assert.equal(resolveProviderStyle({ providerId }), "openai", `expected openai for ${providerId}`);
}
});
test("resolveOpenAIApi defaults missing and unknown values to Chat Completions", () => {
assert.equal(resolveOpenAIApi({}), "chat");
assert.equal(resolveOpenAIApi({ openaiApi: "chat" }), "chat");
assert.equal(resolveOpenAIApi({ openaiApi: "responses" }), "responses");
assert.equal(resolveOpenAIApi({ openaiApi: "weird" as "chat" }), "chat");
});
test("domestic provider presets include editable OpenAI-compatible base URLs", () => {
assert.equal(PROVIDER_PRESETS.qwen.defaultBaseURL, "https://dashscope.aliyuncs.com/compatible-mode/v1");
assert.equal(PROVIDER_PRESETS.deepseek.defaultBaseURL, "https://api.deepseek.com/v1");
assert.equal(PROVIDER_PRESETS.kimi.defaultBaseURL, "https://api.moonshot.ai/v1");
assert.equal(PROVIDER_PRESETS.zhipu.defaultBaseURL, "https://open.bigmodel.cn/api/paas/v4");
assert.equal(PROVIDER_PRESETS.doubao.defaultBaseURL, "https://ark.cn-beijing.volces.com/api/v3");
assert.equal(PROVIDER_PRESETS.mimo.defaultBaseURL, "https://api.xiaomimimo.com/v1");
});
test("openrouter keeps dynamic model discovery instead of a static preset list", () => {
assert.equal(PROVIDER_PRESETS.openrouter.defaultBaseURL, "https://openrouter.ai/api/v1");
assert.equal(PROVIDER_PRESETS.openrouter.modelsEndpoint, "/models");
assert.equal(PROVIDER_PRESETS.openrouter.defaultModels, undefined);
});
test("domestic provider presets expose provider-specific model suggestions", () => {
assert.equal(PROVIDER_PRESETS.qwen.defaultModels?.[0], "qwen3.7-plus");
assert.ok(PROVIDER_PRESETS.qwen.defaultModels?.includes("qwen3.7-max"));
assert.equal(PROVIDER_PRESETS.deepseek.defaultModels?.[0], "deepseek-v4-flash");
assert.ok(PROVIDER_PRESETS.kimi.defaultModels?.includes("kimi-k2.6"));
assert.ok(PROVIDER_PRESETS.zhipu.defaultModels?.includes("glm-5.1"));
assert.ok(PROVIDER_PRESETS.doubao.defaultModels?.includes("doubao-seed-2-0-pro-260215"));
assert.ok(!PROVIDER_PRESETS.doubao.defaultModels?.some((model) => model.startsWith("ep-")));
assert.ok(PROVIDER_PRESETS.mimo.defaultModels?.includes("mimo-v2.5-pro"));
assert.equal(PROVIDER_PRESETS.custom.defaultModels, undefined);
});