@gedatou/cadenza-ai 0.7.1
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/README.md +71 -0
- package/dist/anthropic-DdrANeO1.mjs +236 -0
- package/dist/bedrock-534H9yfk.mjs +75 -0
- package/dist/catalog-CvvS2JaW.mjs +32 -0
- package/dist/deepseek-C1b74T2F.mjs +55 -0
- package/dist/gemini-DcJ5Kr3h.mjs +229 -0
- package/dist/grok-CffQuBd6.mjs +77 -0
- package/dist/groq-Ba6TTYLp.mjs +98 -0
- package/dist/index.d.mts +1056 -0
- package/dist/index.mjs +2809 -0
- package/dist/llmgateway-Pt5CS6aQ.mjs +211 -0
- package/dist/mistral-BGMwwbU9.mjs +107 -0
- package/dist/mock/index.d.mts +168 -0
- package/dist/mock/index.mjs +467 -0
- package/dist/ollama-BBJs-3mK.mjs +80 -0
- package/dist/openai--FIeahIH.mjs +153 -0
- package/dist/openrouter-q-lx-2Cb.mjs +167 -0
- package/dist/preset-CEyIPxfS.mjs +157 -0
- package/dist/preset-DRT0T14q.d.mts +19 -0
- package/dist/providers/anthropic.d.mts +6 -0
- package/dist/providers/anthropic.mjs +11 -0
- package/dist/providers/bedrock.d.mts +6 -0
- package/dist/providers/bedrock.mjs +11 -0
- package/dist/providers/byteplus.d.mts +6 -0
- package/dist/providers/byteplus.mjs +21 -0
- package/dist/providers/deepseek.d.mts +35 -0
- package/dist/providers/deepseek.mjs +283 -0
- package/dist/providers/gemini.d.mts +6 -0
- package/dist/providers/gemini.mjs +11 -0
- package/dist/providers/grok.d.mts +6 -0
- package/dist/providers/grok.mjs +11 -0
- package/dist/providers/groq.d.mts +6 -0
- package/dist/providers/groq.mjs +11 -0
- package/dist/providers/llmgateway.d.mts +6 -0
- package/dist/providers/llmgateway.mjs +11 -0
- package/dist/providers/mistral.d.mts +6 -0
- package/dist/providers/mistral.mjs +11 -0
- package/dist/providers/ollama.d.mts +9 -0
- package/dist/providers/ollama.mjs +28 -0
- package/dist/providers/openai-compatible.d.mts +32 -0
- package/dist/providers/openai-compatible.mjs +45 -0
- package/dist/providers/openai.d.mts +6 -0
- package/dist/providers/openai.mjs +11 -0
- package/dist/providers/openrouter.d.mts +6 -0
- package/dist/providers/openrouter.mjs +11 -0
- package/dist/providers/vercel-gateway.d.mts +6 -0
- package/dist/providers/vercel-gateway.mjs +11 -0
- package/dist/providers/vertex.d.mts +6 -0
- package/dist/providers/vertex.mjs +11 -0
- package/dist/server/index.d.mts +173 -0
- package/dist/server/index.mjs +440 -0
- package/dist/thinking-CH2uL1dr.mjs +26 -0
- package/dist/types-56Hn7Qq2.d.mts +46 -0
- package/dist/vercel-gateway-DW3Z0Os1.mjs +109 -0
- package/dist/vertex-hg4Dt54O.mjs +20 -0
- package/package.json +114 -0
- package/styles.css +3 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ByokProvider } from "@tanstack/ai/byok";
|
|
2
|
+
import { Modality, TokenUsage as TokenUsage$1 } from "@tanstack/ai";
|
|
3
|
+
//#region src/catalog/types.d.ts
|
|
4
|
+
/** 七级思考强度,顺序即强度;与 pi 的 `ModelThinkingLevel` 对齐(`'xhigh'` 是 Anthropic 4.7+ / OpenRouter / LLM Gateway 的真实档位)。 */
|
|
5
|
+
type ThinkingLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';
|
|
6
|
+
/** USD per 1M tokens. */
|
|
7
|
+
interface ModelCost {
|
|
8
|
+
input: number;
|
|
9
|
+
output: number;
|
|
10
|
+
cacheRead?: number;
|
|
11
|
+
cacheWrite?: number;
|
|
12
|
+
}
|
|
13
|
+
interface Model {
|
|
14
|
+
id: string;
|
|
15
|
+
name: string;
|
|
16
|
+
provider: string;
|
|
17
|
+
input: readonly Modality[];
|
|
18
|
+
reasoning: boolean;
|
|
19
|
+
contextWindow?: number;
|
|
20
|
+
maxOutputTokens?: number;
|
|
21
|
+
cost?: ModelCost;
|
|
22
|
+
/** 缺省 = `reasoning ? THINKING_LEVELS : ['off']`。 */
|
|
23
|
+
thinkingLevels?: readonly ThinkingLevel[];
|
|
24
|
+
/** 模型有厂商侧联网搜索(服务端执行,不占我们的工具通道)。缺省 false。 */
|
|
25
|
+
search?: boolean;
|
|
26
|
+
}
|
|
27
|
+
interface Provider {
|
|
28
|
+
/** BYOK slug(`x-byok-<id>` 头),必须匹配 `/^[a-z][a-z0-9-]{0,63}$/`。 */
|
|
29
|
+
id: string;
|
|
30
|
+
label: string;
|
|
31
|
+
byok: ByokProvider | null;
|
|
32
|
+
/** false = 无 key 也能跑(vertex 走 ADC,ollama 走 env host)。 */
|
|
33
|
+
keyRequired: boolean;
|
|
34
|
+
runtime: 'node' | 'local';
|
|
35
|
+
models: readonly Model[];
|
|
36
|
+
}
|
|
37
|
+
interface Catalog {
|
|
38
|
+
readonly providers: readonly Provider[];
|
|
39
|
+
readonly models: readonly Model[];
|
|
40
|
+
getProvider: (id: string) => Provider | undefined;
|
|
41
|
+
getModel: (ref: string) => Model | undefined;
|
|
42
|
+
withProvider: (provider: Provider) => Catalog;
|
|
43
|
+
withoutProvider: (id: string) => Catalog;
|
|
44
|
+
}
|
|
45
|
+
//#endregion
|
|
46
|
+
export { Provider as a, ModelCost as i, Modality as n, ThinkingLevel as o, Model as r, TokenUsage$1 as s, Catalog as t };
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { defineByokProvider } from "@tanstack/ai/byok";
|
|
2
|
+
//#region src/catalog/providers/vercel-gateway.ts
|
|
3
|
+
const vercelGateway = {
|
|
4
|
+
id: "vercel-gateway",
|
|
5
|
+
label: "Vercel AI Gateway",
|
|
6
|
+
byok: defineByokProvider({
|
|
7
|
+
id: "vercel-gateway",
|
|
8
|
+
label: "Vercel AI Gateway",
|
|
9
|
+
env: ["AI_GATEWAY_API_KEY", "VERCEL_OIDC_TOKEN"]
|
|
10
|
+
}),
|
|
11
|
+
keyRequired: true,
|
|
12
|
+
runtime: "node",
|
|
13
|
+
models: [
|
|
14
|
+
{
|
|
15
|
+
id: "openai/gpt-5.2",
|
|
16
|
+
name: "OpenAI: GPT-5.2",
|
|
17
|
+
provider: "vercel-gateway",
|
|
18
|
+
input: [
|
|
19
|
+
"text",
|
|
20
|
+
"image",
|
|
21
|
+
"document"
|
|
22
|
+
],
|
|
23
|
+
reasoning: true
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: "anthropic/claude-sonnet-5",
|
|
27
|
+
name: "Anthropic: Claude Sonnet 5",
|
|
28
|
+
provider: "vercel-gateway",
|
|
29
|
+
input: [
|
|
30
|
+
"text",
|
|
31
|
+
"image",
|
|
32
|
+
"document"
|
|
33
|
+
],
|
|
34
|
+
reasoning: true
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: "google/gemini-3.5-flash",
|
|
38
|
+
name: "Google: Gemini 3.5 Flash",
|
|
39
|
+
provider: "vercel-gateway",
|
|
40
|
+
input: [
|
|
41
|
+
"text",
|
|
42
|
+
"image",
|
|
43
|
+
"document",
|
|
44
|
+
"video"
|
|
45
|
+
],
|
|
46
|
+
reasoning: true
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: "spacexai/grok-4.5",
|
|
50
|
+
name: "xAI: Grok 4.5",
|
|
51
|
+
provider: "vercel-gateway",
|
|
52
|
+
input: [
|
|
53
|
+
"text",
|
|
54
|
+
"image",
|
|
55
|
+
"document"
|
|
56
|
+
],
|
|
57
|
+
reasoning: true
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
id: "deepseek/deepseek-v4-pro",
|
|
61
|
+
name: "DeepSeek: DeepSeek V4 Pro",
|
|
62
|
+
provider: "vercel-gateway",
|
|
63
|
+
input: ["text"],
|
|
64
|
+
reasoning: true
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
id: "alibaba/qwen3-max",
|
|
68
|
+
name: "Alibaba: Qwen3 Max",
|
|
69
|
+
provider: "vercel-gateway",
|
|
70
|
+
input: ["text"],
|
|
71
|
+
reasoning: false
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
id: "meta/llama-4-maverick",
|
|
75
|
+
name: "Meta: Llama 4 Maverick",
|
|
76
|
+
provider: "vercel-gateway",
|
|
77
|
+
input: ["text", "image"],
|
|
78
|
+
reasoning: false
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
id: "mistral/mistral-large-3",
|
|
82
|
+
name: "Mistral: Mistral Large 3",
|
|
83
|
+
provider: "vercel-gateway",
|
|
84
|
+
input: ["text", "image"],
|
|
85
|
+
reasoning: false
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
id: "moonshotai/kimi-k3",
|
|
89
|
+
name: "MoonshotAI: Kimi K3",
|
|
90
|
+
provider: "vercel-gateway",
|
|
91
|
+
input: [
|
|
92
|
+
"text",
|
|
93
|
+
"image",
|
|
94
|
+
"document",
|
|
95
|
+
"video"
|
|
96
|
+
],
|
|
97
|
+
reasoning: true
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
id: "zai/glm-5.2",
|
|
101
|
+
name: "Z.ai: GLM 5.2",
|
|
102
|
+
provider: "vercel-gateway",
|
|
103
|
+
input: ["text"],
|
|
104
|
+
reasoning: true
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
};
|
|
108
|
+
//#endregion
|
|
109
|
+
export { vercelGateway as t };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { t as gemini } from "./gemini-DcJ5Kr3h.mjs";
|
|
2
|
+
import { defineByokProvider } from "@tanstack/ai/byok";
|
|
3
|
+
//#region src/catalog/providers/vertex.ts
|
|
4
|
+
const vertex = {
|
|
5
|
+
id: "vertex",
|
|
6
|
+
label: "Vertex AI",
|
|
7
|
+
byok: defineByokProvider({
|
|
8
|
+
id: "vertex",
|
|
9
|
+
label: "Vertex AI",
|
|
10
|
+
env: ["GOOGLE_VERTEX_API_KEY"]
|
|
11
|
+
}),
|
|
12
|
+
keyRequired: false,
|
|
13
|
+
runtime: "node",
|
|
14
|
+
models: gemini.models.map((m) => ({
|
|
15
|
+
...m,
|
|
16
|
+
provider: "vertex"
|
|
17
|
+
}))
|
|
18
|
+
};
|
|
19
|
+
//#endregion
|
|
20
|
+
export { vertex as t };
|
package/package.json
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@gedatou/cadenza-ai",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "0.7.1",
|
|
5
|
+
"description": "Thin TanStack AI facade — provider-agnostic chat runtime, conventions and conversation views built on cadenza-ui",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"homepage": "https://cadenza-ui-docs.vercel.app",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/GGGLHHH/cadenza.git",
|
|
11
|
+
"directory": "packages/ai"
|
|
12
|
+
},
|
|
13
|
+
"bugs": "https://github.com/GGGLHHH/cadenza/issues",
|
|
14
|
+
"keywords": [
|
|
15
|
+
"react",
|
|
16
|
+
"tanstack-ai",
|
|
17
|
+
"chat",
|
|
18
|
+
"llm",
|
|
19
|
+
"byok"
|
|
20
|
+
],
|
|
21
|
+
"sideEffects": false,
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"access": "public"
|
|
24
|
+
},
|
|
25
|
+
"exports": {
|
|
26
|
+
".": "./dist/index.mjs",
|
|
27
|
+
"./server": "./dist/server/index.mjs",
|
|
28
|
+
"./mock": "./dist/mock/index.mjs",
|
|
29
|
+
"./providers/*": "./dist/providers/*.mjs",
|
|
30
|
+
"./styles.css": "./styles.css",
|
|
31
|
+
"./package.json": "./package.json"
|
|
32
|
+
},
|
|
33
|
+
"types": "./dist/index.d.mts",
|
|
34
|
+
"files": [
|
|
35
|
+
"README.md",
|
|
36
|
+
"dist",
|
|
37
|
+
"styles.css"
|
|
38
|
+
],
|
|
39
|
+
"scripts": {
|
|
40
|
+
"build": "tsdown",
|
|
41
|
+
"dev": "tsdown --watch",
|
|
42
|
+
"typecheck": "tsc",
|
|
43
|
+
"prepack": "pnpm run build"
|
|
44
|
+
},
|
|
45
|
+
"peerDependencies": {
|
|
46
|
+
"@gedatou/cadenza-ui": "workspace:^",
|
|
47
|
+
"@tanstack/ai-anthropic": "*",
|
|
48
|
+
"@tanstack/ai-bedrock": "*",
|
|
49
|
+
"@tanstack/ai-gemini": "*",
|
|
50
|
+
"@tanstack/ai-grok": "*",
|
|
51
|
+
"@tanstack/ai-groq": "*",
|
|
52
|
+
"@tanstack/ai-llmgateway": "*",
|
|
53
|
+
"@tanstack/ai-mistral": "*",
|
|
54
|
+
"@tanstack/ai-ollama": "*",
|
|
55
|
+
"@tanstack/ai-openai": "*",
|
|
56
|
+
"@tanstack/ai-openrouter": "*",
|
|
57
|
+
"@tanstack/ai-persistence": "*",
|
|
58
|
+
"@tanstack/ai-vercel-gateway": "*",
|
|
59
|
+
"@tanstack/ai-vertex": "*",
|
|
60
|
+
"react": ">=19",
|
|
61
|
+
"react-dom": ">=19",
|
|
62
|
+
"tailwindcss": ">=4"
|
|
63
|
+
},
|
|
64
|
+
"peerDependenciesMeta": {
|
|
65
|
+
"@tanstack/ai-anthropic": { "optional": true },
|
|
66
|
+
"@tanstack/ai-bedrock": { "optional": true },
|
|
67
|
+
"@tanstack/ai-gemini": { "optional": true },
|
|
68
|
+
"@tanstack/ai-grok": { "optional": true },
|
|
69
|
+
"@tanstack/ai-groq": { "optional": true },
|
|
70
|
+
"@tanstack/ai-llmgateway": { "optional": true },
|
|
71
|
+
"@tanstack/ai-mistral": { "optional": true },
|
|
72
|
+
"@tanstack/ai-ollama": { "optional": true },
|
|
73
|
+
"@tanstack/ai-openai": { "optional": true },
|
|
74
|
+
"@tanstack/ai-openrouter": { "optional": true },
|
|
75
|
+
"@tanstack/ai-persistence": { "optional": true },
|
|
76
|
+
"@tanstack/ai-vercel-gateway": { "optional": true },
|
|
77
|
+
"@tanstack/ai-vertex": { "optional": true }
|
|
78
|
+
},
|
|
79
|
+
"dependencies": {
|
|
80
|
+
"@gedatou/cadenza-utils": "workspace:*",
|
|
81
|
+
"@streamdown/cjk": "catalog:ui",
|
|
82
|
+
"@streamdown/code": "catalog:ui",
|
|
83
|
+
"@streamdown/math": "catalog:ui",
|
|
84
|
+
"@tabler/icons-react": "catalog:ui",
|
|
85
|
+
"@tanstack/ai": "catalog:ui",
|
|
86
|
+
"@tanstack/ai-client": "catalog:ui",
|
|
87
|
+
"@tanstack/ai-react": "catalog:ui",
|
|
88
|
+
"katex": "catalog:ui",
|
|
89
|
+
"streamdown": "catalog:ui"
|
|
90
|
+
},
|
|
91
|
+
"devDependencies": {
|
|
92
|
+
"@gedatou/cadenza-ui": "workspace:*",
|
|
93
|
+
"@tanstack/ai-anthropic": "catalog:ui",
|
|
94
|
+
"@tanstack/ai-bedrock": "catalog:ui",
|
|
95
|
+
"@tanstack/ai-gemini": "catalog:ui",
|
|
96
|
+
"@tanstack/ai-grok": "catalog:ui",
|
|
97
|
+
"@tanstack/ai-groq": "catalog:ui",
|
|
98
|
+
"@tanstack/ai-llmgateway": "catalog:ui",
|
|
99
|
+
"@tanstack/ai-mistral": "catalog:ui",
|
|
100
|
+
"@tanstack/ai-ollama": "catalog:ui",
|
|
101
|
+
"@tanstack/ai-openai": "catalog:ui",
|
|
102
|
+
"@tanstack/ai-openrouter": "catalog:ui",
|
|
103
|
+
"@tanstack/ai-persistence": "catalog:ui",
|
|
104
|
+
"@tanstack/ai-vercel-gateway": "catalog:ui",
|
|
105
|
+
"@tanstack/ai-vertex": "catalog:ui",
|
|
106
|
+
"@testing-library/react": "catalog:testing",
|
|
107
|
+
"@testing-library/user-event": "catalog:testing",
|
|
108
|
+
"@types/node": "catalog:types",
|
|
109
|
+
"react": "catalog:react",
|
|
110
|
+
"react-dom": "catalog:react",
|
|
111
|
+
"tsdown": "catalog:cli",
|
|
112
|
+
"typescript": "catalog:cli"
|
|
113
|
+
}
|
|
114
|
+
}
|
package/styles.css
ADDED