@flame0510/project-aether 1.1.9

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 (290) hide show
  1. package/README.md +150 -0
  2. package/agent-templates/README.md +37 -0
  3. package/agent-templates/argus/AGENTS.md +52 -0
  4. package/agent-templates/argus/IDENTITY.md +7 -0
  5. package/agent-templates/argus/MEMORY.md +9 -0
  6. package/agent-templates/argus/SOUL.md +24 -0
  7. package/agent-templates/argus/TOOLS.md +8 -0
  8. package/agent-templates/atlas/AGENTS.md +47 -0
  9. package/agent-templates/atlas/HEARTBEAT.md +10 -0
  10. package/agent-templates/atlas/IDENTITY.md +6 -0
  11. package/agent-templates/atlas/MEMORY.md +9 -0
  12. package/agent-templates/atlas/SOUL.md +21 -0
  13. package/agent-templates/atlas/TOOLS.md +4 -0
  14. package/agent-templates/base-image/.trigger +0 -0
  15. package/agent-templates/base-image/Dockerfile +90 -0
  16. package/agent-templates/base-image/entrypoint.sh +37 -0
  17. package/agent-templates/custom/AGENTS.md +29 -0
  18. package/agent-templates/custom/BOOTSTRAP.md +56 -0
  19. package/agent-templates/custom/MEMORY.md +8 -0
  20. package/agent-templates/prometheus/AGENTS.md +37 -0
  21. package/agent-templates/prometheus/IDENTITY.md +6 -0
  22. package/agent-templates/prometheus/MEMORY.md +9 -0
  23. package/agent-templates/prometheus/SOUL.md +21 -0
  24. package/agent-templates/prometheus/TOOLS.md +4 -0
  25. package/app/agents/ChannelManager.tsx +465 -0
  26. package/app/agents/ImageDownloadBanner.tsx +159 -0
  27. package/app/agents/PageClient.tsx +1285 -0
  28. package/app/agents/create/PageClient.tsx +437 -0
  29. package/app/agents/create/page.tsx +126 -0
  30. package/app/agents/loading.tsx +14 -0
  31. package/app/agents/page.tsx +5 -0
  32. package/app/api/agents/[id]/backup/route.ts +169 -0
  33. package/app/api/agents/[id]/channels/pairing/route.ts +69 -0
  34. package/app/api/agents/[id]/channels/route.ts +14 -0
  35. package/app/api/agents/[id]/channels/telegram/route.ts +50 -0
  36. package/app/api/agents/[id]/lifecycle/route.ts +94 -0
  37. package/app/api/agents/[id]/recreate/route.ts +199 -0
  38. package/app/api/agents/[id]/restart/route.ts +33 -0
  39. package/app/api/agents/[id]/restore/route.ts +81 -0
  40. package/app/api/agents/[id]/route.ts +280 -0
  41. package/app/api/agents/channels-summary/route.ts +39 -0
  42. package/app/api/agents/config-json/route.ts +58 -0
  43. package/app/api/agents/create/route.ts +488 -0
  44. package/app/api/agents/download-image/route.ts +32 -0
  45. package/app/api/agents/image-status/route.ts +126 -0
  46. package/app/api/agents/route.ts +213 -0
  47. package/app/api/agents/token/route.ts +94 -0
  48. package/app/api/agents-active/route.ts +190 -0
  49. package/app/api/agents-config/route.ts +629 -0
  50. package/app/api/alerts/smoke/route.ts +26 -0
  51. package/app/api/aliases/add/route.ts +28 -0
  52. package/app/api/aliases/remove/route.ts +27 -0
  53. package/app/api/assistant/route.ts +204 -0
  54. package/app/api/auth/check/route.ts +38 -0
  55. package/app/api/auth/login/route.ts +85 -0
  56. package/app/api/auth/logout/route.ts +7 -0
  57. package/app/api/auth/status/route.ts +33 -0
  58. package/app/api/config/env/route.ts +132 -0
  59. package/app/api/config/restart/route.ts +26 -0
  60. package/app/api/containers/route.ts +75 -0
  61. package/app/api/cost-override/route.ts +46 -0
  62. package/app/api/costs/route.ts +84 -0
  63. package/app/api/credentials/[id]/reveal/route.ts +21 -0
  64. package/app/api/credentials/[id]/route.ts +52 -0
  65. package/app/api/credentials/[id]/sync/route.ts +58 -0
  66. package/app/api/credentials/detect/route.ts +246 -0
  67. package/app/api/credentials/route.ts +33 -0
  68. package/app/api/crons/[id]/route.ts +69 -0
  69. package/app/api/crons/route.ts +12 -0
  70. package/app/api/crons/runs/route.ts +31 -0
  71. package/app/api/debug/route.ts +11 -0
  72. package/app/api/envcheck/route.ts +18 -0
  73. package/app/api/events/route.ts +24 -0
  74. package/app/api/gateway/agent/route.ts +154 -0
  75. package/app/api/gateway/provider/balance/route.ts +38 -0
  76. package/app/api/gateway/provider/keys.ts +38 -0
  77. package/app/api/gateway/provider/oauth/route.ts +304 -0
  78. package/app/api/gateway/provider/route.ts +209 -0
  79. package/app/api/gateway/route.ts +223 -0
  80. package/app/api/gateway/sync.ts +189 -0
  81. package/app/api/lineage/route.ts +54 -0
  82. package/app/api/memory-context/route.ts +15 -0
  83. package/app/api/metrics/route.ts +35 -0
  84. package/app/api/models/route.ts +77 -0
  85. package/app/api/plugins/route.js +37 -0
  86. package/app/api/provider/upstream.ts +142 -0
  87. package/app/api/provider/v1/chat/completions/route.ts +146 -0
  88. package/app/api/provider/v1/models/route.ts +167 -0
  89. package/app/api/provider-usage/route.ts +629 -0
  90. package/app/api/session/route.ts +39 -0
  91. package/app/api/sessions/[id]/route.ts +38 -0
  92. package/app/api/sessions/route.ts +23 -0
  93. package/app/api/setup/agent-image/route.ts +102 -0
  94. package/app/api/setup/password/route.ts +111 -0
  95. package/app/api/setup/restart/route.ts +76 -0
  96. package/app/api/skills/delete/route.js +105 -0
  97. package/app/api/skills/promote/route.js +129 -0
  98. package/app/api/skills/route.js +203 -0
  99. package/app/api/skills/save/route.js +142 -0
  100. package/app/api/stats/route.ts +34 -0
  101. package/app/api/stats-since/route.ts +20 -0
  102. package/app/api/stream/route.ts +70 -0
  103. package/app/api/system-health/route.ts +233 -0
  104. package/app/api/tool-calls/route.ts +24 -0
  105. package/app/api/tools-config/route.ts +163 -0
  106. package/app/api/update-check/route.ts +127 -0
  107. package/app/api/version/route.ts +25 -0
  108. package/app/api/wizard/complete/route.ts +32 -0
  109. package/app/api/wizard/reset/route.ts +28 -0
  110. package/app/api/wizard/status/route.ts +28 -0
  111. package/app/api/workspace/route.ts +392 -0
  112. package/app/api/workspace/stream/route.ts +136 -0
  113. package/app/components/AppShell.tsx +33 -0
  114. package/app/components/AuthGuard.tsx +91 -0
  115. package/app/components/CostBreakdown.tsx +37 -0
  116. package/app/components/DashboardHeader.tsx +73 -0
  117. package/app/components/DashboardLayout.tsx +76 -0
  118. package/app/components/DashboardToolbar.tsx +61 -0
  119. package/app/components/FloatingActions.tsx +33 -0
  120. package/app/components/Icons.tsx +78 -0
  121. package/app/components/LineageGraphPage.tsx +142 -0
  122. package/app/components/LiveFeed.tsx +48 -0
  123. package/app/components/MobileBottomNav.tsx +84 -0
  124. package/app/components/ModelPickerModal.tsx +94 -0
  125. package/app/components/PasswordInput.tsx +86 -0
  126. package/app/components/PulseChat.tsx +362 -0
  127. package/app/components/Rev4aLoader.tsx +48 -0
  128. package/app/components/SessionDrawer.tsx +263 -0
  129. package/app/components/SessionTopology.tsx +289 -0
  130. package/app/components/Sidebar.tsx +294 -0
  131. package/app/components/Skeleton.tsx +133 -0
  132. package/app/components/SystemCockpit.tsx +169 -0
  133. package/app/components/VersionBanner.tsx +105 -0
  134. package/app/components/WizardButton.tsx +30 -0
  135. package/app/components/ui/Badge.tsx +30 -0
  136. package/app/components/ui/Button.tsx +59 -0
  137. package/app/components/ui/ConfirmModal.tsx +46 -0
  138. package/app/components/ui/FilterBar.tsx +33 -0
  139. package/app/components/ui/Input.tsx +25 -0
  140. package/app/components/ui/ItemList.tsx +83 -0
  141. package/app/components/ui/LoadingSpinner.tsx +30 -0
  142. package/app/components/ui/Metric.tsx +22 -0
  143. package/app/components/ui/Modal.tsx +42 -0
  144. package/app/components/ui/Page.tsx +18 -0
  145. package/app/components/ui/Pill.tsx +6 -0
  146. package/app/components/ui/PropertyList.tsx +24 -0
  147. package/app/components/ui/Select.tsx +26 -0
  148. package/app/components/ui/StatusCard.tsx +32 -0
  149. package/app/components/ui/Surface.tsx +14 -0
  150. package/app/components/ui/Tabs.tsx +55 -0
  151. package/app/components/ui/TemplateOption.tsx +59 -0
  152. package/app/components/ui/Toast.tsx +44 -0
  153. package/app/components/ui/index.ts +19 -0
  154. package/app/components/ui/tokens.ts +18 -0
  155. package/app/config/PageClient.tsx +293 -0
  156. package/app/config/loading.tsx +10 -0
  157. package/app/config/page.tsx +7 -0
  158. package/app/containers/ContainersClient.tsx +129 -0
  159. package/app/containers/loading.tsx +21 -0
  160. package/app/containers/page.tsx +5 -0
  161. package/app/containers/terminal/[id]/TerminalClient.tsx +313 -0
  162. package/app/containers/terminal/[id]/page.tsx +6 -0
  163. package/app/credentials/PageClient.tsx +598 -0
  164. package/app/credentials/loading.tsx +10 -0
  165. package/app/credentials/page.tsx +7 -0
  166. package/app/crons/PageClient.tsx +538 -0
  167. package/app/crons/loading.tsx +10 -0
  168. package/app/crons/page.tsx +5 -0
  169. package/app/design-system.ts +57 -0
  170. package/app/gateway/PageClient.tsx +1048 -0
  171. package/app/gateway/loading.tsx +24 -0
  172. package/app/gateway/page.tsx +5 -0
  173. package/app/globals.css +1474 -0
  174. package/app/layout.tsx +45 -0
  175. package/app/lib/models-context.tsx +41 -0
  176. package/app/lineage/loading.tsx +10 -0
  177. package/app/lineage/page.tsx +13 -0
  178. package/app/loading.tsx +16 -0
  179. package/app/login/page.tsx +160 -0
  180. package/app/memory/MemoryContextPageClient.tsx +196 -0
  181. package/app/memory/loading.tsx +10 -0
  182. package/app/memory/page.tsx +8 -0
  183. package/app/page.tsx +31 -0
  184. package/app/plugins/PageClient.tsx +296 -0
  185. package/app/plugins/loading.tsx +10 -0
  186. package/app/plugins/page.tsx +5 -0
  187. package/app/setup/PageClient.tsx +227 -0
  188. package/app/setup/loading.tsx +21 -0
  189. package/app/setup/page.tsx +7 -0
  190. package/app/skills/PageClient.tsx +499 -0
  191. package/app/skills/loading.tsx +10 -0
  192. package/app/skills/page.tsx +5 -0
  193. package/app/tools/ToolsPageClient.tsx +308 -0
  194. package/app/tools/loading.tsx +10 -0
  195. package/app/tools/page.tsx +62 -0
  196. package/app/tools/tools-catalog.ts +141 -0
  197. package/app/wizard/PageClient.tsx +485 -0
  198. package/app/wizard/icons.tsx +89 -0
  199. package/app/wizard/loading.tsx +24 -0
  200. package/app/wizard/page.tsx +7 -0
  201. package/app/wizard/storage.ts +33 -0
  202. package/app/wizard/useWizard.ts +101 -0
  203. package/app/workspace/WorkspaceClient.tsx +633 -0
  204. package/app/workspace/loading.tsx +36 -0
  205. package/app/workspace/page.tsx +8 -0
  206. package/bin/docker-entrypoint.sh +21 -0
  207. package/bin/postinstall.js +20 -0
  208. package/bin/rev4a.js +696 -0
  209. package/daemon.js +783 -0
  210. package/docs/ARCHITECTURE.md +557 -0
  211. package/docs/CONTAINER-TERMINAL.md +280 -0
  212. package/docs/DESIGN-SYSTEM.md +99 -0
  213. package/docs/FRONTEND-ARCHITECTURE.md +119 -0
  214. package/docs/REV4A.md +504 -0
  215. package/docs/dev/API-REFERENCE.md +1835 -0
  216. package/docs/dev/DATABASE.md +224 -0
  217. package/docs/dev/GATEWAY.md +300 -0
  218. package/docs/dev/PROVIDERS.md +229 -0
  219. package/docs/dev/SESSION-MAINTENANCE-PLAN.md +607 -0
  220. package/docs/dev/WORKSPACE.md +199 -0
  221. package/docs/rag/DATA-FRESHNESS.md +109 -0
  222. package/docs/rag/GLOSSARY.md +125 -0
  223. package/docs/rag/REV4A-OVERVIEW.md +135 -0
  224. package/docs/rag/WHAT-I-CAN-ANSWER.md +124 -0
  225. package/lib/agent-setup.ts +130 -0
  226. package/lib/alerts.ts +115 -0
  227. package/lib/apiFetch.ts +7 -0
  228. package/lib/auth.ts +28 -0
  229. package/lib/billing.ts +100 -0
  230. package/lib/buildAgentImage.ts +346 -0
  231. package/lib/channelManager.ts +386 -0
  232. package/lib/container.ts +60 -0
  233. package/lib/credentials/db.ts +86 -0
  234. package/lib/credentials/delivery.ts +448 -0
  235. package/lib/credentials/detect.ts +149 -0
  236. package/lib/credentials/hash.ts +9 -0
  237. package/lib/credentials/providers.ts +110 -0
  238. package/lib/credentials/vault.ts +195 -0
  239. package/lib/db-bootstrap.d.ts +3 -0
  240. package/lib/db-bootstrap.mjs +144 -0
  241. package/lib/db.ts +25 -0
  242. package/lib/docker-utils.ts +60 -0
  243. package/lib/hooks/useDashboard.ts +264 -0
  244. package/lib/hooks/useRev4aTimezone.ts +28 -0
  245. package/lib/hooks/useScreenshot.ts +30 -0
  246. package/lib/memory-context.ts +385 -0
  247. package/lib/model-catalogue.ts +131 -0
  248. package/lib/model-pricing.ts +63 -0
  249. package/lib/openclaw-cron.ts +350 -0
  250. package/lib/patterns/ApiAdapter.ts +73 -0
  251. package/lib/patterns/ApiClient.ts +65 -0
  252. package/lib/patterns/EventBus.ts +113 -0
  253. package/lib/patterns/FilterStrategy.ts +79 -0
  254. package/lib/patterns/SessionFactory.ts +117 -0
  255. package/lib/patterns/sessionPresentation.ts +117 -0
  256. package/lib/provider-balance.ts +163 -0
  257. package/lib/requireAuth.tsx +38 -0
  258. package/lib/rev4a-auth.d.ts +3 -0
  259. package/lib/rev4a-auth.js +36 -0
  260. package/lib/rev4a-paths.ts +145 -0
  261. package/lib/timezone.ts +46 -0
  262. package/lib/types/index.ts +96 -0
  263. package/lib/utils/format.ts +82 -0
  264. package/lineage.js +56 -0
  265. package/model-pricing.json +482 -0
  266. package/models.config.json +844 -0
  267. package/next-env.d.ts +6 -0
  268. package/next.config.mjs +7 -0
  269. package/package.json +82 -0
  270. package/public/apple-touch-icon.png +0 -0
  271. package/public/favicon-64.png +0 -0
  272. package/public/favicon.svg +58 -0
  273. package/public/icon-192-maskable.png +0 -0
  274. package/public/icon-192.png +0 -0
  275. package/public/icon-512-maskable.png +0 -0
  276. package/public/icon-512.png +0 -0
  277. package/public/manifest.json +38 -0
  278. package/public/rev4a-logo.png +0 -0
  279. package/public/rev4a-logo.svg +58 -0
  280. package/rev4a-rules/AGENTS.md +37 -0
  281. package/scripts/add-auth.cjs +185 -0
  282. package/scripts/backup.sh +66 -0
  283. package/scripts/check-providers.mjs +143 -0
  284. package/scripts/docker/traefik/docker-compose.yml +32 -0
  285. package/scripts/docker/traefik/dynamic/.gitkeep +18 -0
  286. package/scripts/docker/traefik/traefik.yml +37 -0
  287. package/scripts/remove-auth-profile.js +56 -0
  288. package/scripts/restore.sh +82 -0
  289. package/terminal-ws-server.js +139 -0
  290. package/tsconfig.json +42 -0
@@ -0,0 +1,844 @@
1
+ {
2
+ "models": [
3
+ {
4
+ "id": "google/gemini-3.1-pro-preview",
5
+ "name": "Gemini 3.1 Pro Preview",
6
+ "provider": "google",
7
+ "enabled": false,
8
+ "modality": "text+image+file+audio+video->text"
9
+ },
10
+ {
11
+ "id": "google/gemini-3-flash-preview",
12
+ "name": "Gemini 3 Flash Preview",
13
+ "provider": "google",
14
+ "enabled": false,
15
+ "modality": "text+image+file+audio+video->text"
16
+ },
17
+ {
18
+ "id": "google/gemini-2.5-pro",
19
+ "name": "Gemini 2.5 Pro",
20
+ "provider": "google",
21
+ "enabled": false,
22
+ "modality": "text+image+file+audio+video->text"
23
+ },
24
+ {
25
+ "id": "google/gemini-2.5-flash",
26
+ "name": "Gemini 2.5 Flash",
27
+ "provider": "google",
28
+ "enabled": false,
29
+ "modality": "text+image+file+audio+video->text"
30
+ },
31
+ {
32
+ "id": "openai/gpt-5.6-sol",
33
+ "name": "GPT-5.6 Sol",
34
+ "provider": "openai",
35
+ "enabled": true,
36
+ "modality": "text+image+file->text"
37
+ },
38
+ {
39
+ "id": "openai/gpt-5.6-terra",
40
+ "name": "GPT-5.6 Terra",
41
+ "provider": "openai",
42
+ "enabled": true,
43
+ "modality": "text+image+file->text"
44
+ },
45
+ {
46
+ "id": "openai/gpt-5.6-luna",
47
+ "name": "GPT-5.6 Luna",
48
+ "provider": "openai",
49
+ "enabled": true,
50
+ "modality": "text+image+file->text"
51
+ },
52
+ {
53
+ "id": "openai/gpt-5.5",
54
+ "name": "GPT-5.5",
55
+ "provider": "openai",
56
+ "enabled": true,
57
+ "modality": "text+image+file->text"
58
+ },
59
+ {
60
+ "id": "openai/gpt-5.4",
61
+ "name": "GPT-5.4",
62
+ "provider": "openai",
63
+ "enabled": true,
64
+ "modality": "text+image+file->text"
65
+ },
66
+ {
67
+ "id": "openai/gpt-5.4-mini",
68
+ "name": "GPT-5.4 Mini",
69
+ "provider": "openai",
70
+ "enabled": true,
71
+ "modality": "text+image+file->text"
72
+ },
73
+ {
74
+ "id": "openai/gpt-5.5-pro",
75
+ "name": "GPT-5.5 Pro",
76
+ "provider": "openai",
77
+ "enabled": false,
78
+ "modality": "text+image+file->text"
79
+ },
80
+ {
81
+ "id": "openai/gpt-5.4-pro",
82
+ "name": "GPT-5.4 Pro",
83
+ "provider": "openai",
84
+ "enabled": false,
85
+ "modality": "text+image+file->text"
86
+ },
87
+ {
88
+ "id": "openai/gpt-5.3-codex",
89
+ "name": "GPT-5.3 Codex",
90
+ "provider": "openai",
91
+ "enabled": false,
92
+ "modality": "text+image+file->text"
93
+ },
94
+ {
95
+ "id": "openai/o3",
96
+ "name": "O3",
97
+ "provider": "openai",
98
+ "enabled": false,
99
+ "modality": "text+image+file->text"
100
+ },
101
+ {
102
+ "id": "anthropic/claude-fable-5",
103
+ "name": "Claude Fable 5",
104
+ "provider": "anthropic",
105
+ "enabled": false,
106
+ "modality": "text+image+file->text"
107
+ },
108
+ {
109
+ "id": "anthropic/claude-opus-5",
110
+ "name": "Claude Opus 5",
111
+ "provider": "anthropic",
112
+ "enabled": false,
113
+ "modality": "text+image+file->text"
114
+ },
115
+ {
116
+ "id": "anthropic/claude-sonnet-5",
117
+ "name": "Claude Sonnet 5",
118
+ "provider": "anthropic",
119
+ "enabled": false,
120
+ "modality": "text+image+file->text"
121
+ },
122
+ {
123
+ "id": "anthropic/claude-haiku-4-5",
124
+ "name": "Claude Haiku 4.5",
125
+ "provider": "anthropic",
126
+ "enabled": false,
127
+ "modality": "text+image+file->text"
128
+ },
129
+ {
130
+ "id": "anthropic/claude-opus-4.7",
131
+ "name": "Claude Opus 4.7",
132
+ "provider": "anthropic",
133
+ "enabled": false,
134
+ "modality": "text+image+file->text"
135
+ },
136
+ {
137
+ "id": "anthropic/claude-sonnet-4.6",
138
+ "name": "Claude Sonnet 4.6",
139
+ "provider": "anthropic",
140
+ "enabled": false,
141
+ "modality": "text+image+file->text"
142
+ },
143
+ {
144
+ "id": "deepseek/deepseek-v4-pro",
145
+ "name": "DeepSeek V4 Pro",
146
+ "provider": "deepseek",
147
+ "enabled": true,
148
+ "modality": "text->text"
149
+ },
150
+ {
151
+ "id": "deepseek/deepseek-v4-flash",
152
+ "name": "DeepSeek V4 Flash",
153
+ "provider": "deepseek",
154
+ "enabled": true,
155
+ "modality": "text->text"
156
+ },
157
+ {
158
+ "id": "groq/llama-3.1-8b-instant",
159
+ "name": "Llama 3.1 8B (Groq)",
160
+ "provider": "groq",
161
+ "enabled": false,
162
+ "modality": "text->text"
163
+ },
164
+ {
165
+ "id": "groq/llama-3.3-70b-versatile",
166
+ "name": "Llama 3.3 70B (Groq)",
167
+ "provider": "groq",
168
+ "enabled": false,
169
+ "modality": "text->text"
170
+ },
171
+ {
172
+ "id": "kimi/kimi-k3",
173
+ "name": "Kimi K3",
174
+ "provider": "kimi",
175
+ "enabled": true,
176
+ "modality": "text+image->text"
177
+ },
178
+ {
179
+ "id": "kimi/kimi-k2.7-code",
180
+ "name": "Kimi K2.7 Code",
181
+ "provider": "kimi",
182
+ "enabled": false,
183
+ "modality": "text+image->text"
184
+ },
185
+ {
186
+ "id": "kimi/kimi-k2.7-code-highspeed",
187
+ "name": "Kimi K2.7 Code HighSpeed",
188
+ "provider": "kimi",
189
+ "enabled": false,
190
+ "modality": "text+image->text"
191
+ },
192
+ {
193
+ "id": "kimi/kimi-k2.6",
194
+ "name": "Kimi K2.6",
195
+ "provider": "kimi",
196
+ "enabled": false,
197
+ "modality": "text+image->text"
198
+ },
199
+ {
200
+ "id": "glm/glm-5.2",
201
+ "name": "GLM-5.2",
202
+ "provider": "glm",
203
+ "enabled": false,
204
+ "modality": "text->text"
205
+ },
206
+ {
207
+ "id": "glm/glm-5.1",
208
+ "name": "GLM-5.1",
209
+ "provider": "glm",
210
+ "enabled": false,
211
+ "modality": "text->text"
212
+ },
213
+ {
214
+ "id": "glm/glm-5",
215
+ "name": "GLM-5",
216
+ "provider": "glm",
217
+ "enabled": false,
218
+ "modality": "text->text"
219
+ },
220
+ {
221
+ "id": "glm/glm-4.7",
222
+ "name": "GLM-4.7",
223
+ "provider": "glm",
224
+ "enabled": false,
225
+ "modality": "text->text"
226
+ },
227
+ {
228
+ "id": "glm/glm-4.7-flash",
229
+ "name": "GLM-4.7 Flash",
230
+ "provider": "glm",
231
+ "enabled": false,
232
+ "modality": "text->text"
233
+ },
234
+ {
235
+ "id": "glm/glm-4.7-flashx",
236
+ "name": "GLM-4.7 FlashX",
237
+ "provider": "glm",
238
+ "enabled": false,
239
+ "modality": "text->text"
240
+ },
241
+ {
242
+ "id": "glm/glm-5v-turbo",
243
+ "name": "GLM-5V Turbo",
244
+ "provider": "glm",
245
+ "enabled": false,
246
+ "modality": "text+image+video->text"
247
+ },
248
+ {
249
+ "id": "glm/glm-4.6v-flash",
250
+ "name": "GLM-4.6V Flash",
251
+ "provider": "glm",
252
+ "enabled": false,
253
+ "modality": "text+image+video->text"
254
+ },
255
+ {
256
+ "id": "qwen/qwen3.7-max",
257
+ "name": "Qwen 3.7 Max",
258
+ "provider": "qwen",
259
+ "enabled": false,
260
+ "modality": "text->text"
261
+ },
262
+ {
263
+ "id": "qwen/qwen3.7-plus",
264
+ "name": "Qwen 3.7 Plus",
265
+ "provider": "qwen",
266
+ "enabled": true,
267
+ "modality": "text+image->text"
268
+ },
269
+ {
270
+ "id": "qwen/qwen3.7-flash",
271
+ "name": "Qwen 3.7 Flash",
272
+ "provider": "qwen",
273
+ "enabled": false,
274
+ "modality": "text+image+video->text"
275
+ },
276
+ {
277
+ "id": "qwen/qwen3-coder-plus",
278
+ "name": "Qwen 3 Coder Plus",
279
+ "provider": "qwen",
280
+ "enabled": false,
281
+ "modality": "text->text"
282
+ },
283
+ {
284
+ "id": "qwen/qwen-long",
285
+ "name": "Qwen Long",
286
+ "provider": "qwen",
287
+ "enabled": false,
288
+ "modality": "text->text"
289
+ },
290
+ {
291
+ "id": "openrouter/auto",
292
+ "name": "OpenRouter Auto",
293
+ "provider": "openrouter",
294
+ "enabled": false,
295
+ "modality": "text+image+file+audio+video->text+image"
296
+ },
297
+ {
298
+ "id": "openrouter/deepseek/deepseek-v4-flash",
299
+ "name": "DeepSeek V4 Flash (OR)",
300
+ "provider": "openrouter",
301
+ "enabled": true,
302
+ "modality": "text->text"
303
+ },
304
+ {
305
+ "id": "openrouter/deepseek/deepseek-v4-pro",
306
+ "name": "DeepSeek V4 Pro (OR)",
307
+ "provider": "openrouter",
308
+ "enabled": true,
309
+ "modality": "text->text"
310
+ },
311
+ {
312
+ "id": "openrouter/google/gemini-2.5-flash",
313
+ "name": "Gemini 2.5 Flash (OR)",
314
+ "provider": "openrouter",
315
+ "enabled": true,
316
+ "modality": "text+image+file+audio+video->text"
317
+ },
318
+ {
319
+ "id": "openrouter/google/gemini-3-flash-preview",
320
+ "name": "Gemini 3 Flash Preview (OR)",
321
+ "provider": "openrouter",
322
+ "enabled": true,
323
+ "modality": "text+image+file+audio+video->text"
324
+ },
325
+ {
326
+ "id": "openrouter/meta-llama/llama-4-maverick",
327
+ "name": "Llama 4 Maverick (OR)",
328
+ "provider": "openrouter",
329
+ "enabled": true,
330
+ "modality": "text+image->text"
331
+ },
332
+ {
333
+ "id": "openrouter/qwen/qwen3-coder-plus",
334
+ "name": "Qwen 3 Coder Plus (OR)",
335
+ "provider": "openrouter",
336
+ "enabled": true,
337
+ "modality": "text->text"
338
+ },
339
+ {
340
+ "id": "openrouter/qwen/qwen3.7-max",
341
+ "name": "Qwen 3.7 Max (OR)",
342
+ "provider": "openrouter",
343
+ "enabled": true,
344
+ "modality": "text->text"
345
+ },
346
+ {
347
+ "id": "openrouter/qwen/qwen3.7-plus",
348
+ "name": "Qwen 3.7 Plus (OR)",
349
+ "provider": "openrouter",
350
+ "enabled": true,
351
+ "modality": "text+image->text"
352
+ },
353
+ {
354
+ "id": "openrouter/qwen/qwen3.7-flash",
355
+ "name": "Qwen 3.7 Flash (OR)",
356
+ "provider": "openrouter",
357
+ "enabled": true,
358
+ "modality": "text+image+video->text"
359
+ },
360
+ {
361
+ "id": "openrouter/qwen/qwen3.6-plus",
362
+ "name": "Qwen 3.6 Plus (OR)",
363
+ "provider": "openrouter",
364
+ "enabled": true,
365
+ "modality": "text+image+video->text"
366
+ },
367
+ {
368
+ "id": "openrouter/qwen/qwen3.6-flash",
369
+ "name": "Qwen 3.6 Flash (OR)",
370
+ "provider": "openrouter",
371
+ "enabled": true,
372
+ "modality": "text+image+video->text"
373
+ },
374
+ {
375
+ "id": "openrouter/qwen/qwen3.6-27b",
376
+ "name": "Qwen 3.6 27B (OR)",
377
+ "provider": "openrouter",
378
+ "enabled": true,
379
+ "modality": "text+image+video->text"
380
+ },
381
+ {
382
+ "id": "openrouter/qwen/qwen3.6-35b-a3b",
383
+ "name": "Qwen 3.6 35B-A3B (OR)",
384
+ "provider": "openrouter",
385
+ "enabled": true,
386
+ "modality": "text+image+video->text"
387
+ },
388
+ {
389
+ "id": "openrouter/qwen/qwen3-coder",
390
+ "name": "Qwen 3 Coder (OR)",
391
+ "provider": "openrouter",
392
+ "enabled": true,
393
+ "modality": "text->text"
394
+ },
395
+ {
396
+ "id": "openrouter/qwen/qwen3-max",
397
+ "name": "Qwen 3 Max (OR)",
398
+ "provider": "openrouter",
399
+ "enabled": true,
400
+ "modality": "text->text"
401
+ },
402
+ {
403
+ "id": "openrouter/qwen/qwen3-max-thinking",
404
+ "name": "Qwen 3 Max Thinking (OR)",
405
+ "provider": "openrouter",
406
+ "enabled": true,
407
+ "modality": "text->text"
408
+ },
409
+ {
410
+ "id": "openrouter/qwen/qwen3-next-80b-a3b-instruct",
411
+ "name": "Qwen 3 Next 80B Instruct (OR)",
412
+ "provider": "openrouter",
413
+ "enabled": true,
414
+ "modality": "text->text"
415
+ },
416
+ {
417
+ "id": "openrouter/qwen/qwen3-next-80b-a3b-thinking",
418
+ "name": "Qwen 3 Next 80B Thinking (OR)",
419
+ "provider": "openrouter",
420
+ "enabled": true,
421
+ "modality": "text->text"
422
+ },
423
+ {
424
+ "id": "openrouter/minimax/minimax-m3",
425
+ "name": "Minimax M3 (OR)",
426
+ "provider": "openrouter",
427
+ "enabled": true,
428
+ "modality": "text+image+video->text"
429
+ },
430
+ {
431
+ "id": "openrouter/moonshotai/kimi-k2.7-code",
432
+ "name": "Kimi K2.7 Code (OR)",
433
+ "provider": "openrouter",
434
+ "enabled": true,
435
+ "modality": "text+image->text"
436
+ },
437
+ {
438
+ "id": "openrouter/moonshotai/kimi-k2.6",
439
+ "name": "Kimi K2.6 (OR)",
440
+ "provider": "openrouter",
441
+ "enabled": true,
442
+ "modality": "text+image->text"
443
+ },
444
+ {
445
+ "id": "openrouter/moonshotai/kimi-k2",
446
+ "name": "Kimi K2 (OR)",
447
+ "provider": "openrouter",
448
+ "enabled": true,
449
+ "modality": "text->text"
450
+ },
451
+ {
452
+ "id": "openrouter/moonshotai/kimi-k2-thinking",
453
+ "name": "Kimi K2 Thinking (OR)",
454
+ "provider": "openrouter",
455
+ "enabled": true,
456
+ "modality": "text->text"
457
+ },
458
+ {
459
+ "id": "openrouter/z-ai/glm-5.2",
460
+ "name": "GLM 5.2 (OR)",
461
+ "provider": "openrouter",
462
+ "enabled": true,
463
+ "modality": "text->text"
464
+ },
465
+ {
466
+ "id": "openrouter/z-ai/glm-5.1",
467
+ "name": "GLM 5.1 (OR)",
468
+ "provider": "openrouter",
469
+ "enabled": true,
470
+ "modality": "text->text"
471
+ },
472
+ {
473
+ "id": "openrouter/z-ai/glm-5",
474
+ "name": "GLM 5 (OR)",
475
+ "provider": "openrouter",
476
+ "enabled": true,
477
+ "modality": "text->text"
478
+ },
479
+ {
480
+ "id": "openrouter/z-ai/glm-5v-turbo",
481
+ "name": "GLM 5V Turbo (OR)",
482
+ "provider": "openrouter",
483
+ "enabled": true,
484
+ "modality": "text+image+video->text"
485
+ },
486
+ {
487
+ "id": "openrouter/z-ai/glm-5-turbo",
488
+ "name": "GLM 5 Turbo (OR)",
489
+ "provider": "openrouter",
490
+ "enabled": true,
491
+ "modality": "text->text"
492
+ },
493
+ {
494
+ "id": "openrouter/bytedance-seed/seed-2.0-mini",
495
+ "name": "ByteDance Seed 2.0 Mini (OR)",
496
+ "provider": "openrouter",
497
+ "enabled": true,
498
+ "modality": "text+image+video->text"
499
+ },
500
+ {
501
+ "id": "openrouter/bytedance-seed/seed-2.0-lite",
502
+ "name": "ByteDance Seed 2.0 Lite (OR)",
503
+ "provider": "openrouter",
504
+ "enabled": true,
505
+ "modality": "text+image+video->text"
506
+ },
507
+ {
508
+ "id": "openrouter/stepfun/step-3.7-flash",
509
+ "name": "StepFun 3.7 Flash (OR)",
510
+ "provider": "openrouter",
511
+ "enabled": true,
512
+ "modality": "text+image+video->text"
513
+ },
514
+ {
515
+ "id": "openrouter/stepfun/step-3.5-flash",
516
+ "name": "StepFun 3.5 Flash (OR)",
517
+ "provider": "openrouter",
518
+ "enabled": true,
519
+ "modality": "text->text"
520
+ },
521
+ {
522
+ "id": "openrouter/tencent/hy3",
523
+ "name": "Tencent HY3 (OR)",
524
+ "provider": "openrouter",
525
+ "enabled": true,
526
+ "modality": "text->text"
527
+ },
528
+ {
529
+ "id": "openrouter/tencent/hy3-preview",
530
+ "name": "Tencent HY3 Preview (OR)",
531
+ "provider": "openrouter",
532
+ "enabled": true,
533
+ "modality": "text->text"
534
+ },
535
+ {
536
+ "id": "openrouter/xiaomi/mimo-v2.5-pro",
537
+ "name": "Xiaomi MiMo V2.5 Pro (OR)",
538
+ "provider": "openrouter",
539
+ "enabled": true,
540
+ "modality": "text->text"
541
+ },
542
+ {
543
+ "id": "openrouter/xiaomi/mimo-v2.5",
544
+ "name": "Xiaomi MiMo V2.5 (OR)",
545
+ "provider": "openrouter",
546
+ "enabled": true,
547
+ "modality": "text+image+audio+video->text"
548
+ },
549
+ {
550
+ "id": "openrouter/meituan/longcat-2.0",
551
+ "name": "Meituan LongCat 2.0 (OR)",
552
+ "provider": "openrouter",
553
+ "enabled": true,
554
+ "modality": "text->text"
555
+ },
556
+ {
557
+ "id": "openrouter/kwaipilot/kat-coder-pro-v2.5",
558
+ "name": "KwaiPilot Kat Coder Pro V2.5 (OR)",
559
+ "provider": "openrouter",
560
+ "enabled": true,
561
+ "modality": "text->text"
562
+ },
563
+ {
564
+ "id": "openrouter/nex-agi/nex-n2-pro",
565
+ "name": "Nex AGI N2 Pro (OR)",
566
+ "provider": "openrouter",
567
+ "enabled": true,
568
+ "modality": "text+image->text"
569
+ },
570
+ {
571
+ "id": "openrouter/arcee-ai/virtuoso-large",
572
+ "name": "Arcee Virtuoso Large (OR)",
573
+ "provider": "openrouter",
574
+ "enabled": true,
575
+ "modality": "text->text"
576
+ },
577
+ {
578
+ "id": "openrouter/deepcogito/cogito-v2.1-671b",
579
+ "name": "DeepCogito V2.1 671B (OR)",
580
+ "provider": "openrouter",
581
+ "enabled": true,
582
+ "modality": "text->text"
583
+ },
584
+ {
585
+ "id": "openrouter/morph/morph-v3-large",
586
+ "name": "Morph V3 Large (OR)",
587
+ "provider": "openrouter",
588
+ "enabled": true,
589
+ "modality": "text->text"
590
+ },
591
+ {
592
+ "id": "openrouter/meta-llama/llama-4-scout",
593
+ "name": "Llama 4 Scout (OR)",
594
+ "provider": "openrouter",
595
+ "enabled": true,
596
+ "modality": "text+image->text"
597
+ },
598
+ {
599
+ "id": "openrouter/mistralai/mistral-large-2512",
600
+ "name": "Mistral Large 2512 (OR)",
601
+ "provider": "openrouter",
602
+ "enabled": true,
603
+ "modality": "text+image+file->text"
604
+ },
605
+ {
606
+ "id": "openrouter/mistralai/mistral-medium-3.1",
607
+ "name": "Mistral Medium 3.1 (OR)",
608
+ "provider": "openrouter",
609
+ "enabled": true,
610
+ "modality": "text+image+file->text"
611
+ },
612
+ {
613
+ "id": "openrouter/mistralai/mistral-medium-3",
614
+ "name": "Mistral Medium 3 (OR)",
615
+ "provider": "openrouter",
616
+ "enabled": true,
617
+ "modality": "text+image+file->text"
618
+ },
619
+ {
620
+ "id": "openrouter/mistralai/codestral-2508",
621
+ "name": "Codestral 2508 (OR)",
622
+ "provider": "openrouter",
623
+ "enabled": true,
624
+ "modality": "text+file->text"
625
+ },
626
+ {
627
+ "id": "openrouter/x-ai/grok-4.20",
628
+ "name": "Grok 4.20 (OR)",
629
+ "provider": "openrouter",
630
+ "enabled": true,
631
+ "modality": "text+image+file->text"
632
+ },
633
+ {
634
+ "id": "openrouter/x-ai/grok-4.3",
635
+ "name": "Grok 4.3 (OR)",
636
+ "provider": "openrouter",
637
+ "enabled": true,
638
+ "modality": "text+image+file->text"
639
+ },
640
+ {
641
+ "id": "openrouter/amazon/nova-pro-v1",
642
+ "name": "Amazon Nova Pro V1 (OR)",
643
+ "provider": "openrouter",
644
+ "enabled": true,
645
+ "modality": "text+image->text"
646
+ },
647
+ {
648
+ "id": "openrouter/nvidia/nemotron-3-super-120b-a12b",
649
+ "name": "NVIDIA Nemotron 3 Super 120B (OR)",
650
+ "provider": "openrouter",
651
+ "enabled": true,
652
+ "modality": "text->text"
653
+ },
654
+ {
655
+ "id": "openrouter/nvidia/nemotron-3-ultra-550b-a55b",
656
+ "name": "NVIDIA Nemotron 3 Ultra 550B (OR)",
657
+ "provider": "openrouter",
658
+ "enabled": true,
659
+ "modality": "text->text"
660
+ },
661
+ {
662
+ "id": "openrouter/nousresearch/hermes-4-405b",
663
+ "name": "Nous Hermes 4 405B (OR)",
664
+ "provider": "openrouter",
665
+ "enabled": true,
666
+ "modality": "text->text"
667
+ },
668
+ {
669
+ "id": "openrouter/thinkingmachines/inkling",
670
+ "name": "Thinking Machines Inkling (OR)",
671
+ "provider": "openrouter",
672
+ "enabled": true,
673
+ "modality": "text+image+audio->text"
674
+ },
675
+ {
676
+ "id": "openrouter/relace/relace-apply-3",
677
+ "name": "Relace Apply 3 (OR)",
678
+ "provider": "openrouter",
679
+ "enabled": true,
680
+ "modality": "text->text"
681
+ },
682
+ {
683
+ "id": "openrouter/relace/relace-search",
684
+ "name": "Relace Search (OR)",
685
+ "provider": "openrouter",
686
+ "enabled": true,
687
+ "modality": "text->text"
688
+ },
689
+ {
690
+ "id": "openrouter/anthropic/claude-opus-5",
691
+ "name": "Claude Opus 5 (OR)",
692
+ "provider": "openrouter",
693
+ "enabled": false,
694
+ "modality": "text+image+file->text"
695
+ },
696
+ {
697
+ "id": "openrouter/anthropic/claude-sonnet-5",
698
+ "name": "Claude Sonnet 5 (OR)",
699
+ "provider": "openrouter",
700
+ "enabled": false,
701
+ "modality": "text+image+file->text"
702
+ },
703
+ {
704
+ "id": "openrouter/anthropic/claude-haiku-4.5",
705
+ "name": "Claude Haiku 4.5 (OR)",
706
+ "provider": "openrouter",
707
+ "enabled": false,
708
+ "modality": "text+image+file->text"
709
+ },
710
+ {
711
+ "id": "openrouter/anthropic/claude-opus-4.7",
712
+ "name": "Claude Opus 4.7 (OR)",
713
+ "provider": "openrouter",
714
+ "enabled": false,
715
+ "modality": "text+image+file->text"
716
+ },
717
+ {
718
+ "id": "openrouter/anthropic/claude-sonnet-4.6",
719
+ "name": "Claude Sonnet 4.6 (OR)",
720
+ "provider": "openrouter",
721
+ "enabled": false,
722
+ "modality": "text+image+file->text"
723
+ },
724
+ {
725
+ "id": "openrouter/openai/gpt-5.6-sol",
726
+ "name": "GPT-5.6 Sol (OR)",
727
+ "provider": "openrouter",
728
+ "enabled": false,
729
+ "modality": "text+image+file->text"
730
+ },
731
+ {
732
+ "id": "openrouter/openai/gpt-5.6-luna",
733
+ "name": "GPT-5.6 Luna (OR)",
734
+ "provider": "openrouter",
735
+ "enabled": false,
736
+ "modality": "text+image+file->text"
737
+ },
738
+ {
739
+ "id": "openrouter/openai/gpt-5.4-mini",
740
+ "name": "GPT-5.4 Mini (OR)",
741
+ "provider": "openrouter",
742
+ "enabled": false,
743
+ "modality": "text+image+file->text"
744
+ },
745
+ {
746
+ "id": "openrouter/openai/o3",
747
+ "name": "O3 (OR)",
748
+ "provider": "openrouter",
749
+ "enabled": false,
750
+ "modality": "text+image+file->text"
751
+ },
752
+ {
753
+ "id": "openrouter/google/gemini-2.5-pro",
754
+ "name": "Gemini 2.5 Pro (OR)",
755
+ "provider": "openrouter",
756
+ "enabled": false,
757
+ "modality": "text+image+file+audio+video->text"
758
+ },
759
+ {
760
+ "id": "openrouter/google/gemini-3.1-pro-preview",
761
+ "name": "Gemini 3.1 Pro Preview (OR)",
762
+ "provider": "openrouter",
763
+ "enabled": false,
764
+ "modality": "text+image+file+audio+video->text"
765
+ },
766
+ {
767
+ "id": "openrouter/google/gemini-3.6-flash",
768
+ "name": "Gemini 3.6 Flash (OR)",
769
+ "provider": "openrouter",
770
+ "enabled": false,
771
+ "modality": "text+image+file+audio+video->text"
772
+ },
773
+ {
774
+ "id": "openrouter/x-ai/grok-4.5",
775
+ "name": "Grok 4.5 (OR)",
776
+ "provider": "openrouter",
777
+ "enabled": false,
778
+ "modality": "text+image+file->text"
779
+ },
780
+ {
781
+ "id": "openrouter/qwen/qwen3.8-max",
782
+ "name": "Qwen 3.8 Max (OR)",
783
+ "provider": "openrouter",
784
+ "enabled": false,
785
+ "modality": "text+image+video->text"
786
+ },
787
+ {
788
+ "id": "openrouter/qwen/qwen3.6-max-preview",
789
+ "name": "Qwen 3.6 Max Preview (OR)",
790
+ "provider": "openrouter",
791
+ "enabled": false,
792
+ "modality": "text->text"
793
+ },
794
+ {
795
+ "id": "openrouter/moonshotai/kimi-k3",
796
+ "name": "Kimi K3 (OR)",
797
+ "provider": "openrouter",
798
+ "enabled": false,
799
+ "modality": "text+image->text"
800
+ },
801
+ {
802
+ "id": "openrouter/amazon/nova-premier-v1",
803
+ "name": "Amazon Nova Premier V1 (OR)",
804
+ "provider": "openrouter",
805
+ "enabled": false,
806
+ "modality": "text+image->text"
807
+ },
808
+ {
809
+ "id": "openrouter/mistralai/mistral-medium-3-5",
810
+ "name": "Mistral Medium 3.5 (OR)",
811
+ "provider": "openrouter",
812
+ "enabled": false,
813
+ "modality": "text+image+file->text"
814
+ },
815
+ {
816
+ "id": "openrouter/mistralai/mistral-large-2407",
817
+ "name": "Mistral Large 2407 (OR)",
818
+ "provider": "openrouter",
819
+ "enabled": false,
820
+ "modality": "text+file->text"
821
+ },
822
+ {
823
+ "id": "openrouter/cohere/command-a",
824
+ "name": "Cohere Command A (OR)",
825
+ "provider": "openrouter",
826
+ "enabled": false,
827
+ "modality": "text->text"
828
+ },
829
+ {
830
+ "id": "openrouter/aion-labs/aion-3.0",
831
+ "name": "Aion Labs 3.0 (OR)",
832
+ "provider": "openrouter",
833
+ "enabled": false,
834
+ "modality": "text->text"
835
+ },
836
+ {
837
+ "id": "openrouter/sakana/fugu-ultra",
838
+ "name": "Sakana Fugu Ultra (OR)",
839
+ "provider": "openrouter",
840
+ "enabled": false,
841
+ "modality": "text+image->text"
842
+ }
843
+ ]
844
+ }