@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.
Files changed (57) hide show
  1. package/README.md +71 -0
  2. package/dist/anthropic-DdrANeO1.mjs +236 -0
  3. package/dist/bedrock-534H9yfk.mjs +75 -0
  4. package/dist/catalog-CvvS2JaW.mjs +32 -0
  5. package/dist/deepseek-C1b74T2F.mjs +55 -0
  6. package/dist/gemini-DcJ5Kr3h.mjs +229 -0
  7. package/dist/grok-CffQuBd6.mjs +77 -0
  8. package/dist/groq-Ba6TTYLp.mjs +98 -0
  9. package/dist/index.d.mts +1056 -0
  10. package/dist/index.mjs +2809 -0
  11. package/dist/llmgateway-Pt5CS6aQ.mjs +211 -0
  12. package/dist/mistral-BGMwwbU9.mjs +107 -0
  13. package/dist/mock/index.d.mts +168 -0
  14. package/dist/mock/index.mjs +467 -0
  15. package/dist/ollama-BBJs-3mK.mjs +80 -0
  16. package/dist/openai--FIeahIH.mjs +153 -0
  17. package/dist/openrouter-q-lx-2Cb.mjs +167 -0
  18. package/dist/preset-CEyIPxfS.mjs +157 -0
  19. package/dist/preset-DRT0T14q.d.mts +19 -0
  20. package/dist/providers/anthropic.d.mts +6 -0
  21. package/dist/providers/anthropic.mjs +11 -0
  22. package/dist/providers/bedrock.d.mts +6 -0
  23. package/dist/providers/bedrock.mjs +11 -0
  24. package/dist/providers/byteplus.d.mts +6 -0
  25. package/dist/providers/byteplus.mjs +21 -0
  26. package/dist/providers/deepseek.d.mts +35 -0
  27. package/dist/providers/deepseek.mjs +283 -0
  28. package/dist/providers/gemini.d.mts +6 -0
  29. package/dist/providers/gemini.mjs +11 -0
  30. package/dist/providers/grok.d.mts +6 -0
  31. package/dist/providers/grok.mjs +11 -0
  32. package/dist/providers/groq.d.mts +6 -0
  33. package/dist/providers/groq.mjs +11 -0
  34. package/dist/providers/llmgateway.d.mts +6 -0
  35. package/dist/providers/llmgateway.mjs +11 -0
  36. package/dist/providers/mistral.d.mts +6 -0
  37. package/dist/providers/mistral.mjs +11 -0
  38. package/dist/providers/ollama.d.mts +9 -0
  39. package/dist/providers/ollama.mjs +28 -0
  40. package/dist/providers/openai-compatible.d.mts +32 -0
  41. package/dist/providers/openai-compatible.mjs +45 -0
  42. package/dist/providers/openai.d.mts +6 -0
  43. package/dist/providers/openai.mjs +11 -0
  44. package/dist/providers/openrouter.d.mts +6 -0
  45. package/dist/providers/openrouter.mjs +11 -0
  46. package/dist/providers/vercel-gateway.d.mts +6 -0
  47. package/dist/providers/vercel-gateway.mjs +11 -0
  48. package/dist/providers/vertex.d.mts +6 -0
  49. package/dist/providers/vertex.mjs +11 -0
  50. package/dist/server/index.d.mts +173 -0
  51. package/dist/server/index.mjs +440 -0
  52. package/dist/thinking-CH2uL1dr.mjs +26 -0
  53. package/dist/types-56Hn7Qq2.d.mts +46 -0
  54. package/dist/vercel-gateway-DW3Z0Os1.mjs +109 -0
  55. package/dist/vertex-hg4Dt54O.mjs +20 -0
  56. package/package.json +114 -0
  57. 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
@@ -0,0 +1,3 @@
1
+ @import 'streamdown/styles.css';
2
+ @import 'katex/dist/katex.min.css';
3
+ @source './dist';