Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6fbfd8e229 |
@@ -8,25 +8,6 @@ export const zoneID = "430ba34c138cfb5360826c4909f99be8"
|
||||
export const awsStage = $app.stage === "production" ? "production" : "dev"
|
||||
export const deployAws = $app.stage === awsStage
|
||||
|
||||
if ($app.stage === "production") {
|
||||
new cloudflare.DnsRecord("TrustCenter", {
|
||||
zoneId: zoneID,
|
||||
name: "trust.opencode.ai",
|
||||
type: "CNAME",
|
||||
content: "3a69a5bb27875189.vercel-dns-016.com",
|
||||
proxied: false,
|
||||
ttl: 60,
|
||||
})
|
||||
|
||||
new cloudflare.DnsRecord("TrustCenterVerification", {
|
||||
zoneId: zoneID,
|
||||
name: "opencode.ai",
|
||||
type: "TXT",
|
||||
content: "compai-domain-verification=org_6993a99c6200a2d642bb115d",
|
||||
ttl: 60,
|
||||
})
|
||||
}
|
||||
|
||||
new cloudflare.RegionalHostname("RegionalHostname", {
|
||||
hostname: domain,
|
||||
regionKey: "us",
|
||||
|
||||
+33
-66
@@ -8,8 +8,6 @@
|
||||
makeWrapper,
|
||||
writableTmpDirAsHomeHook,
|
||||
autoPatchelfHook,
|
||||
copyDesktopItems,
|
||||
makeDesktopItem,
|
||||
opencode,
|
||||
}:
|
||||
let
|
||||
@@ -29,12 +27,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
nodejs
|
||||
makeWrapper
|
||||
writableTmpDirAsHomeHook
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
] ++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
autoPatchelfHook
|
||||
copyDesktopItems
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
# Ad-hoc sign the .app: --config.mac.identity=null below skips signing.
|
||||
darwin.autoSignDarwinBinariesHook
|
||||
];
|
||||
@@ -43,37 +38,20 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
(lib.getLib stdenv.cc.cc)
|
||||
];
|
||||
|
||||
desktopItems = lib.optional stdenv.hostPlatform.isLinux (makeDesktopItem {
|
||||
name = "ai.opencode.desktop";
|
||||
desktopName = "OpenCode";
|
||||
exec = "opencode-desktop %U";
|
||||
icon = "ai.opencode.desktop";
|
||||
# Electron 41 derives X11 WM_CLASS from app.name.
|
||||
startupWMClass = "OpenCode";
|
||||
categories = [ "Development" ];
|
||||
});
|
||||
|
||||
env = opencode.env // {
|
||||
ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
|
||||
};
|
||||
|
||||
postPatch =
|
||||
# NOTE: Relax Bun version check to be a warning instead of an error
|
||||
''
|
||||
substituteInPlace packages/script/src/index.ts \
|
||||
--replace-fail 'throw new Error(`This script requires bun@''${expectedBunVersionRange}' \
|
||||
'console.warn(`Warning: This script requires bun@''${expectedBunVersionRange}'
|
||||
''
|
||||
# https://github.com/electron/electron/issues/31121
|
||||
# mac builds use a .app bundle which doesnt have this issue
|
||||
+ lib.optionalString stdenv.isLinux ''
|
||||
BASE_PATH=packages/desktop
|
||||
FILES=(src/main/windows.ts)
|
||||
for file in "''${FILES[@]}"; do
|
||||
substituteInPlace $BASE_PATH/$file \
|
||||
--replace-fail "process.resourcesPath" "'$out/opt/opencode-desktop/resources'"
|
||||
done
|
||||
'';
|
||||
# https://github.com/electron/electron/issues/31121
|
||||
# mac builds use a .app bundle which doesnt have this issue
|
||||
postPatch = lib.optionalString stdenv.isLinux ''
|
||||
BASE_PATH=packages/desktop
|
||||
FILES=(src/main/windows.ts)
|
||||
for file in "''${FILES[@]}"; do
|
||||
substituteInPlace $BASE_PATH/$file \
|
||||
--replace-fail "process.resourcesPath" "'$out/opt/opencode-desktop/resources'"
|
||||
done
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
cp -r "${electron.dist}" $HOME/.electron-dist
|
||||
@@ -98,38 +76,27 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
mkdir -p $out/Applications
|
||||
mv dist/mac*/*.app $out/Applications
|
||||
makeWrapper "$out/Applications/OpenCode.app/Contents/MacOS/OpenCode" $out/bin/opencode-desktop
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
mkdir -p $out/opt/opencode-desktop
|
||||
cp -r dist/linux*-unpacked/{resources,LICENSE*} $out/opt/opencode-desktop
|
||||
install -Dm644 resources/icons/32x32.png \
|
||||
"$out/share/icons/hicolor/32x32/apps/ai.opencode.desktop.png"
|
||||
install -Dm644 resources/icons/64x64.png \
|
||||
"$out/share/icons/hicolor/64x64/apps/ai.opencode.desktop.png"
|
||||
install -Dm644 resources/icons/128x128.png \
|
||||
"$out/share/icons/hicolor/128x128/apps/ai.opencode.desktop.png"
|
||||
install -Dm644 resources/icons/128x128@2x.png \
|
||||
"$out/share/icons/hicolor/256x256/apps/ai.opencode.desktop.png"
|
||||
install -Dm644 resources/icons/icon.png \
|
||||
"$out/share/icons/hicolor/512x512/apps/ai.opencode.desktop.png"
|
||||
install -Dm644 resources/ai.opencode.desktop.metainfo.xml \
|
||||
"$out/share/metainfo/ai.opencode.desktop.metainfo.xml"
|
||||
makeWrapper ${lib.getExe electron} $out/bin/opencode-desktop \
|
||||
--inherit-argv0 \
|
||||
--set ELECTRON_FORCE_IS_PACKAGED 1 \
|
||||
--add-flags $out/opt/opencode-desktop/resources/app.asar \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
|
||||
''
|
||||
+ ''
|
||||
runHook postInstall
|
||||
'';
|
||||
installPhase =
|
||||
''
|
||||
runHook preInstall
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
mkdir -p $out/Applications
|
||||
mv dist/mac*/*.app $out/Applications
|
||||
makeWrapper "$out/Applications/OpenCode.app/Contents/MacOS/OpenCode" $out/bin/opencode-desktop
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
mkdir -p $out/opt/opencode-desktop
|
||||
cp -r dist/linux*-unpacked/{resources,LICENSE*} $out/opt/opencode-desktop
|
||||
makeWrapper ${lib.getExe electron} $out/bin/opencode-desktop \
|
||||
--inherit-argv0 \
|
||||
--set ELECTRON_FORCE_IS_PACKAGED 1 \
|
||||
--add-flags $out/opt/opencode-desktop/resources/app.asar \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
|
||||
''
|
||||
+ ''
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
autoPatchelfIgnoreMissingDeps = [
|
||||
"libc.musl-x86_64.so.1"
|
||||
|
||||
+4
-4
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"nodeModules": {
|
||||
"x86_64-linux": "sha256-zAftZieWR0hWQQVkhEa826iueHaRnKxtyRodhNb+Apc=",
|
||||
"aarch64-linux": "sha256-cTG+gB7CuiFgaYHSFbzXaXUI1C2kiugV3B9rUDRUwlg=",
|
||||
"aarch64-darwin": "sha256-ap4Xv5ZliourkI4mcD0ktbzSI88jb4oVBv5mMK3WdUs=",
|
||||
"x86_64-darwin": "sha256-NGRJMMnaMNrf3FkcYwr5PcfVm5thhlNLGIeMmAK0MeE="
|
||||
"x86_64-linux": "sha256-XWoSYsV18a5uvjM3KuyGQWiFAtcCV0ij8brOLuFOW+g=",
|
||||
"aarch64-linux": "sha256-50cI0CuzzMRO8vznPxTHRhgHirE7siOg6AmyKLhZ2oo=",
|
||||
"aarch64-darwin": "sha256-5JpSBNyKqiB+gOrkxMNWyWGWLdNlbEiirA56GDhAS4E=",
|
||||
"x86_64-darwin": "sha256-X1r9aOSEdMUqWtqa4a/tBK2nRSwIWfKOwqJfpFknhII="
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +36,6 @@ import {
|
||||
export type PromptInputV2ComposerProps = {
|
||||
class?: string
|
||||
controller: PromptInputV2ComposerController
|
||||
borderUnderlay?: boolean
|
||||
edit?: PromptInputProps["edit"]
|
||||
onEditLoaded?: PromptInputProps["onEditLoaded"]
|
||||
}
|
||||
@@ -58,7 +57,6 @@ export function PromptInputV2Composer(props: PromptInputV2ComposerProps) {
|
||||
<div class="flex flex-col gap-3">
|
||||
<PromptInputV2
|
||||
controller={props.controller}
|
||||
borderUnderlay={props.borderUnderlay}
|
||||
class={props.class}
|
||||
modelControl={
|
||||
<PromptInputV2ModelControl
|
||||
|
||||
@@ -1460,10 +1460,10 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
|
||||
t={(key) => language.t(key as Parameters<typeof language.t>[0])}
|
||||
/>
|
||||
<DockShellForm
|
||||
data-dock-border-underlay="legacy"
|
||||
onSubmit={handleSubmit}
|
||||
classList={{
|
||||
"group/prompt-input": true,
|
||||
"focus-within:shadow-xs-border": true,
|
||||
"border-icon-info-active border-dashed": store.draggingType !== null,
|
||||
[props.class ?? ""]: !!props.class,
|
||||
}}
|
||||
|
||||
@@ -93,36 +93,24 @@ export function PromptWorkspaceSelector(props: {
|
||||
</MenuV2.Content>
|
||||
</MenuV2.Portal>
|
||||
</MenuV2>
|
||||
<PromptGitStatus branch={props.branch} />
|
||||
<Show when={props.branch}>
|
||||
{(branch) => (
|
||||
<>
|
||||
<span class="hidden select-none opacity-50 sm:inline mx-1">/</span>
|
||||
<TooltipV2
|
||||
placement="top"
|
||||
value={branch()}
|
||||
class="min-w-0 max-w-[220px]"
|
||||
contentClass="max-w-[calc(100vw-32px)] break-all"
|
||||
>
|
||||
<div class="flex h-7 min-w-0 max-w-[220px] items-center gap-1.5 px-2 text-[13px] font-[440] leading-5 tracking-[-0.04px]">
|
||||
<Icon name="branch" size="small" class="shrink-0 text-v2-icon-icon-muted" />
|
||||
<span class="min-w-0 truncate">{branch()}</span>
|
||||
</div>
|
||||
</TooltipV2>
|
||||
</>
|
||||
)}
|
||||
</Show>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
export function PromptGitStatus(props: { branch?: string; noGit?: boolean }) {
|
||||
const language = useLanguage()
|
||||
const label = () => {
|
||||
if (props.noGit) return language.t("session.new.git.none")
|
||||
return props.branch
|
||||
}
|
||||
|
||||
return (
|
||||
<Show when={label()}>
|
||||
{(value) => (
|
||||
<>
|
||||
<span class="hidden select-none opacity-50 sm:inline mx-1">/</span>
|
||||
<TooltipV2
|
||||
placement="top"
|
||||
value={value()}
|
||||
class="min-w-0 max-w-[220px]"
|
||||
contentClass="max-w-[calc(100vw-32px)] break-all"
|
||||
>
|
||||
<div class="flex h-7 min-w-0 max-w-[220px] items-center gap-1.5 px-2 text-[13px] font-[440] leading-5 tracking-[-0.04px]">
|
||||
<Icon name="branch" size="small" class="shrink-0 text-v2-icon-icon-muted" />
|
||||
<span class="min-w-0 truncate">{value()}</span>
|
||||
</div>
|
||||
</TooltipV2>
|
||||
</>
|
||||
)}
|
||||
</Show>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ export function useTitlebarRightMount() {
|
||||
return mount
|
||||
}
|
||||
|
||||
export function Titlebar(props: { update?: TitlebarUpdate; debugTools?: { visible: boolean; toggle: () => void } }) {
|
||||
export function Titlebar(props: { update?: TitlebarUpdate }) {
|
||||
const layout = useLayout()
|
||||
const platform = usePlatform()
|
||||
const command = useCommand()
|
||||
@@ -462,7 +462,7 @@ export function Titlebar(props: { update?: TitlebarUpdate; debugTools?: { visibl
|
||||
"md:pl-4": !mac(),
|
||||
}}
|
||||
>
|
||||
<ChannelIndicator debugTools={props.debugTools} />
|
||||
<ChannelIndicator />
|
||||
<Show when={windows() || linux()}>
|
||||
<WindowsAppMenu command={command} platform={platform} variant="v2" />
|
||||
</Show>
|
||||
@@ -660,9 +660,9 @@ export function Titlebar(props: { update?: TitlebarUpdate; debugTools?: { visibl
|
||||
</div>
|
||||
</Show>
|
||||
<div id="opencode-titlebar-left" class="flex items-center gap-3 min-w-0 px-2" />
|
||||
<ChannelIndicator />
|
||||
</div>
|
||||
</div>
|
||||
<ChannelIndicator debugTools={props.debugTools} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -747,27 +747,12 @@ function TitlebarUpdateIconButton(props: { state: TitlebarUpdatePillState }) {
|
||||
)
|
||||
}
|
||||
|
||||
function ChannelIndicator(props: { debugTools?: { visible: boolean; toggle: () => void } }) {
|
||||
const channel = import.meta.env.VITE_OPENCODE_CHANNEL
|
||||
if (channel === "dev" && props.debugTools) {
|
||||
return (
|
||||
<button
|
||||
type="button"
|
||||
class="bg-icon-interactive-base text-[#FFF] font-medium px-2 rounded-sm uppercase font-mono cursor-pointer"
|
||||
onClick={props.debugTools.toggle}
|
||||
aria-label="Toggle debug tools"
|
||||
aria-pressed={props.debugTools.visible}
|
||||
>
|
||||
DEV
|
||||
</button>
|
||||
)
|
||||
}
|
||||
|
||||
function ChannelIndicator() {
|
||||
return (
|
||||
<>
|
||||
{["beta", "dev"].includes(channel) && (
|
||||
{["beta", "dev"].includes(import.meta.env.VITE_OPENCODE_CHANNEL) && (
|
||||
<div class="bg-icon-interactive-base text-[#FFF] font-medium px-2 rounded-sm uppercase font-mono">
|
||||
{channel.toUpperCase()}
|
||||
{import.meta.env.VITE_OPENCODE_CHANNEL.toUpperCase()}
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
|
||||
@@ -613,7 +613,6 @@ export const dict = {
|
||||
"session.new.workspace.triggerLocal": "محلي",
|
||||
"session.new.workspace.local": "المستودع المحلي",
|
||||
"session.new.workspace.existing": "مساحة عمل…",
|
||||
"session.new.git.none": "لا يوجد Git",
|
||||
"session.new.lastModified": "آخر تعديل",
|
||||
"session.header.search.placeholder": "بحث {{project}}",
|
||||
"session.header.searchFiles": "بحث عن الملفات",
|
||||
|
||||
@@ -619,7 +619,6 @@ export const dict = {
|
||||
"session.new.workspace.triggerLocal": "Local",
|
||||
"session.new.workspace.local": "Repositório local",
|
||||
"session.new.workspace.existing": "Espaço de trabalho…",
|
||||
"session.new.git.none": "Sem Git",
|
||||
"session.new.lastModified": "Última modificação",
|
||||
"session.header.search.placeholder": "Buscar {{project}}",
|
||||
"session.header.searchFiles": "Buscar arquivos",
|
||||
|
||||
@@ -675,7 +675,6 @@ export const dict = {
|
||||
"session.new.workspace.triggerLocal": "Lokalno",
|
||||
"session.new.workspace.local": "Lokalni repozitorij",
|
||||
"session.new.workspace.existing": "Radni prostor…",
|
||||
"session.new.git.none": "Nema Gita",
|
||||
"session.new.lastModified": "Posljednja izmjena",
|
||||
|
||||
"session.header.search.placeholder": "Pretraži {{project}}",
|
||||
|
||||
@@ -670,7 +670,6 @@ export const dict = {
|
||||
"session.new.workspace.triggerLocal": "Lokal",
|
||||
"session.new.workspace.local": "Lokalt repository",
|
||||
"session.new.workspace.existing": "Arbejdsområde…",
|
||||
"session.new.git.none": "Ingen Git",
|
||||
"session.new.lastModified": "Sidst ændret",
|
||||
|
||||
"session.header.search.placeholder": "Søg {{project}}",
|
||||
|
||||
@@ -628,7 +628,6 @@ export const dict = {
|
||||
"session.new.workspace.triggerLocal": "Lokal",
|
||||
"session.new.workspace.local": "Lokales Repository",
|
||||
"session.new.workspace.existing": "Arbeitsbereich…",
|
||||
"session.new.git.none": "Kein Git",
|
||||
"session.new.lastModified": "Zuletzt geändert",
|
||||
"session.header.search.placeholder": "{{project}} durchsuchen",
|
||||
"session.header.searchFiles": "Dateien suchen",
|
||||
|
||||
@@ -700,7 +700,6 @@ export const dict = {
|
||||
"session.new.workspace.triggerLocal": "Local",
|
||||
"session.new.workspace.local": "Local repository",
|
||||
"session.new.workspace.existing": "Workspace…",
|
||||
"session.new.git.none": "No Git",
|
||||
"session.new.lastModified": "Last modified",
|
||||
|
||||
"session.header.search.placeholder": "Search {{project}}",
|
||||
|
||||
@@ -676,7 +676,6 @@ export const dict = {
|
||||
"session.new.workspace.triggerLocal": "Local",
|
||||
"session.new.workspace.local": "Repositorio local",
|
||||
"session.new.workspace.existing": "Espacio de trabajo…",
|
||||
"session.new.git.none": "Sin Git",
|
||||
"session.new.lastModified": "Última modificación",
|
||||
|
||||
"session.header.search.placeholder": "Buscar {{project}}",
|
||||
|
||||
@@ -624,7 +624,6 @@ export const dict = {
|
||||
"session.new.workspace.triggerLocal": "Local",
|
||||
"session.new.workspace.local": "Dépôt local",
|
||||
"session.new.workspace.existing": "Espace de travail…",
|
||||
"session.new.git.none": "Pas de Git",
|
||||
"session.new.lastModified": "Dernière modification",
|
||||
"session.header.search.placeholder": "Rechercher {{project}}",
|
||||
"session.header.searchFiles": "Rechercher des fichiers",
|
||||
|
||||
@@ -615,7 +615,6 @@ export const dict = {
|
||||
"session.new.workspace.triggerLocal": "ローカル",
|
||||
"session.new.workspace.local": "ローカルリポジトリ",
|
||||
"session.new.workspace.existing": "ワークスペース…",
|
||||
"session.new.git.none": "Git なし",
|
||||
"session.new.lastModified": "最終更新",
|
||||
"session.header.search.placeholder": "{{project}}を検索",
|
||||
"session.header.searchFiles": "ファイルを検索",
|
||||
|
||||
@@ -976,7 +976,6 @@ export const dict = {
|
||||
"session.new.workspace.triggerLocal": "로컬",
|
||||
"session.new.workspace.local": "로컬 저장소",
|
||||
"session.new.workspace.existing": "작업 공간…",
|
||||
"session.new.git.none": "Git 없음",
|
||||
|
||||
"sidebar.empty.title": "열린 프로젝트 없음",
|
||||
"sidebar.empty.description": "프로젝트를 열어 시작하세요",
|
||||
|
||||
@@ -1070,7 +1070,6 @@ export const dict = {
|
||||
"session.new.workspace.triggerLocal": "Lokalt",
|
||||
"session.new.workspace.local": "Lokalt depot",
|
||||
"session.new.workspace.existing": "Arbeidsområde…",
|
||||
"session.new.git.none": "Ingen Git",
|
||||
|
||||
"sidebar.empty.title": "Ingen åpne prosjekter",
|
||||
"sidebar.empty.description": "Åpne et prosjekt for å komme i gang",
|
||||
|
||||
@@ -619,7 +619,6 @@ export const dict = {
|
||||
"session.new.workspace.triggerLocal": "Lokalnie",
|
||||
"session.new.workspace.local": "Lokalne repozytorium",
|
||||
"session.new.workspace.existing": "Przestrzeń robocza…",
|
||||
"session.new.git.none": "Brak Git",
|
||||
"session.new.lastModified": "Ostatnio zmodyfikowano",
|
||||
"session.header.search.placeholder": "Szukaj {{project}}",
|
||||
"session.header.searchFiles": "Szukaj plików",
|
||||
|
||||
@@ -673,7 +673,6 @@ export const dict = {
|
||||
"session.new.workspace.triggerLocal": "Локально",
|
||||
"session.new.workspace.local": "Локальный репозиторий",
|
||||
"session.new.workspace.existing": "Рабочее пространство…",
|
||||
"session.new.git.none": "Нет Git",
|
||||
"session.new.lastModified": "Последнее изменение",
|
||||
|
||||
"session.header.search.placeholder": "Поиск {{project}}",
|
||||
|
||||
@@ -669,7 +669,6 @@ export const dict = {
|
||||
"session.new.workspace.triggerLocal": "ในเครื่อง",
|
||||
"session.new.workspace.local": "รีโพซิทอรีในเครื่อง",
|
||||
"session.new.workspace.existing": "พื้นที่ทำงาน…",
|
||||
"session.new.git.none": "ไม่มี Git",
|
||||
"session.new.lastModified": "แก้ไขล่าสุด",
|
||||
|
||||
"session.header.search.placeholder": "ค้นหา {{project}}",
|
||||
|
||||
@@ -679,7 +679,6 @@ export const dict = {
|
||||
"session.new.workspace.triggerLocal": "Yerel",
|
||||
"session.new.workspace.local": "Yerel depo",
|
||||
"session.new.workspace.existing": "Çalışma alanı…",
|
||||
"session.new.git.none": "Git yok",
|
||||
"session.new.lastModified": "Son değişiklik",
|
||||
|
||||
"session.header.search.placeholder": "{{project}} ara",
|
||||
|
||||
@@ -703,7 +703,6 @@ export const dict = {
|
||||
"session.new.workspace.triggerLocal": "Локально",
|
||||
"session.new.workspace.local": "Локальний репозиторій",
|
||||
"session.new.workspace.existing": "Робоча область…",
|
||||
"session.new.git.none": "Немає Git",
|
||||
"session.new.lastModified": "Востаннє змінено",
|
||||
|
||||
"session.header.search.placeholder": "Пошук {{project}}",
|
||||
|
||||
@@ -666,7 +666,6 @@ export const dict = {
|
||||
"session.new.workspace.triggerLocal": "本地",
|
||||
"session.new.workspace.local": "本地仓库",
|
||||
"session.new.workspace.existing": "工作区…",
|
||||
"session.new.git.none": "无 Git",
|
||||
"session.new.lastModified": "最后修改",
|
||||
"session.header.search.placeholder": "搜索 {{project}}",
|
||||
"session.header.searchFiles": "搜索文件",
|
||||
|
||||
@@ -663,7 +663,6 @@ export const dict = {
|
||||
"session.new.workspace.triggerLocal": "本機",
|
||||
"session.new.workspace.local": "本機儲存庫",
|
||||
"session.new.workspace.existing": "工作區…",
|
||||
"session.new.git.none": "無 Git",
|
||||
"session.new.lastModified": "最後修改",
|
||||
|
||||
"session.header.search.placeholder": "搜尋 {{project}}",
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { createEffect, Suspense, type ParentProps } from "solid-js"
|
||||
import { createStore } from "solid-js/store"
|
||||
import { useNavigate } from "@solidjs/router"
|
||||
import { DebugBar } from "@/components/debug-bar"
|
||||
import { TabsInfoPopup } from "@/components/help-button"
|
||||
@@ -12,7 +11,6 @@ export default function NewLayout(props: ParentProps) {
|
||||
const platform = usePlatform()
|
||||
const navigate = useNavigate()
|
||||
setNavigate(navigate)
|
||||
const [state, setState] = createStore({ debugTools: true })
|
||||
|
||||
createEffect(() => setV2Toast(true))
|
||||
|
||||
@@ -34,18 +32,11 @@ export default function NewLayout(props: ParentProps) {
|
||||
"padding-bottom": "env(safe-area-inset-bottom, 0px)",
|
||||
}}
|
||||
>
|
||||
<Titlebar
|
||||
update={update}
|
||||
debugTools={
|
||||
import.meta.env.DEV
|
||||
? { visible: state.debugTools, toggle: () => setState("debugTools", (value) => !value) }
|
||||
: undefined
|
||||
}
|
||||
/>
|
||||
<Titlebar update={update} />
|
||||
<main class="flex-1 min-h-0 min-w-0 overflow-x-hidden flex flex-col items-start contain-strict">
|
||||
<Suspense>{props.children}</Suspense>
|
||||
</main>
|
||||
{import.meta.env.DEV && state.debugTools && <DebugBar inline />}
|
||||
{import.meta.env.DEV && <DebugBar inline />}
|
||||
<TabsInfoPopup />
|
||||
<ToastRegion v2 />
|
||||
</div>
|
||||
|
||||
@@ -156,7 +156,6 @@ export default function LegacyLayout(props: ParentProps) {
|
||||
sizing: false,
|
||||
peek: undefined as string | undefined,
|
||||
peeked: false,
|
||||
debugTools: true,
|
||||
})
|
||||
|
||||
const updateVersion = () => {
|
||||
@@ -2249,14 +2248,7 @@ export default function LegacyLayout(props: ParentProps) {
|
||||
return (
|
||||
<div class="relative bg-background-base flex-1 min-h-0 min-w-0 flex flex-col select-none [&_input]:select-text [&_textarea]:select-text [&_[contenteditable]]:select-text">
|
||||
{autoselecting() ?? ""}
|
||||
<Titlebar
|
||||
update={titlebarUpdate}
|
||||
debugTools={
|
||||
import.meta.env.DEV && import.meta.env.VITE_DISABLE_DEBUG_BAR !== "1"
|
||||
? { visible: state.debugTools, toggle: () => setState("debugTools", (value) => !value) }
|
||||
: undefined
|
||||
}
|
||||
/>
|
||||
<Titlebar update={titlebarUpdate} />
|
||||
<Show when={updateVersion() !== undefined}>
|
||||
<UpdateAvailableToast version={updateVersion() ?? ""} install={installUpdate} language={language} />
|
||||
</Show>
|
||||
@@ -2401,7 +2393,7 @@ export default function LegacyLayout(props: ParentProps) {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{import.meta.env.DEV && import.meta.env.VITE_DISABLE_DEBUG_BAR !== "1" && state.debugTools && <DebugBar />}
|
||||
{import.meta.env.DEV && import.meta.env.VITE_DISABLE_DEBUG_BAR !== "1" && <DebugBar />}
|
||||
</div>
|
||||
<TabsInfoPopup />
|
||||
<ToastRegion v2={false} />
|
||||
|
||||
@@ -25,7 +25,7 @@ import { createPromptInputController, createPromptProjectControls } from "@/page
|
||||
import { useSessionKey } from "@/pages/session/session-layout"
|
||||
import { useComposerCommands } from "@/pages/session/use-composer-commands"
|
||||
import { NEW_SESSION_CONTENT_WIDTH } from "@/pages/session/new-session-layout"
|
||||
import { PromptGitStatus, PromptWorkspaceSelector } from "@/components/prompt-workspace-selector"
|
||||
import { PromptWorkspaceSelector } from "@/components/prompt-workspace-selector"
|
||||
import { useTitlebarRightMount } from "@/components/titlebar"
|
||||
import { useCommand } from "@/context/command"
|
||||
import { useProviders } from "@/hooks/use-providers"
|
||||
@@ -168,18 +168,24 @@ export default function NewSessionPage() {
|
||||
<div class="flex-1 min-h-0 overflow-hidden rounded-[10px]">
|
||||
<NewSessionDesignView>
|
||||
<div class={NEW_SESSION_CONTENT_WIDTH}>
|
||||
<div class="flex flex-col gap-8">
|
||||
<div class="flex flex-col" classList={{ "gap-8": showWorkspaceBar(), "gap-3": !showWorkspaceBar() }}>
|
||||
<PromptInputV2Composer controller={promptInputV2Controller} />
|
||||
<Show when={projectController.empty()}>
|
||||
<PromptProjectAddButton controller={projectController} />
|
||||
</Show>
|
||||
<Show when={projectController.selected()}>
|
||||
<div class="flex min-h-7 min-w-0 flex-col items-center justify-center gap-0 text-v2-text-text-faint sm:flex-row">
|
||||
<PromptProjectSelector controller={projectController} placement="bottom" />
|
||||
<Show
|
||||
when={showWorkspaceBar()}
|
||||
fallback={<PromptGitStatus branch={selectedBranch()} noGit={sync().project?.vcs !== "git"} />}
|
||||
>
|
||||
<div
|
||||
class="flex min-h-7 min-w-0 items-center gap-0 text-v2-text-text-faint"
|
||||
classList={{
|
||||
"flex-col justify-center sm:flex-row": showWorkspaceBar(),
|
||||
"justify-start": !showWorkspaceBar(),
|
||||
}}
|
||||
>
|
||||
<PromptProjectSelector
|
||||
controller={projectController}
|
||||
placement={showWorkspaceBar() ? "bottom" : "bottom-start"}
|
||||
/>
|
||||
<Show when={showWorkspaceBar()}>
|
||||
<PromptWorkspaceSelector
|
||||
value={newSessionWorktree()}
|
||||
projectRoot={projectRoot()}
|
||||
|
||||
@@ -2265,7 +2265,6 @@ export default function Page() {
|
||||
return (
|
||||
<PromptInputV2Composer
|
||||
controller={controller}
|
||||
borderUnderlay
|
||||
edit={editingFollowup()}
|
||||
onEditLoaded={clearFollowupEdit}
|
||||
/>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { For } from "solid-js"
|
||||
import { createStore } from "solid-js/store"
|
||||
import { DockShell } from "@opencode-ai/ui/dock-surface"
|
||||
import { SessionRevertDock } from "@/pages/session/composer/session-revert-dock"
|
||||
import { SettingsProvider, useSettings } from "@/context/settings"
|
||||
|
||||
@@ -79,17 +78,12 @@ function Stage(props: { count: number }) {
|
||||
{/* Reproduce the real composer stack: dock + card overlapping the dock's bottom by lift() = 18px */}
|
||||
<div style={{ display: "flex", "flex-direction": "column" }}>
|
||||
<SessionRevertDock items={store.items} onRestore={restore} />
|
||||
<DockShell
|
||||
data-dock-border-underlay={v2() ? "v2" : "legacy"}
|
||||
<div
|
||||
style={{ position: "relative", "z-index": 70, "margin-top": "-18px" }}
|
||||
classList={{
|
||||
"min-h-24 w-full rounded-[12px] px-4 py-3 text-[13px]": true,
|
||||
"bg-v2-background-bg-base text-v2-text-text-faint": v2(),
|
||||
"text-text-weak": !v2(),
|
||||
}}
|
||||
class="min-h-24 w-full rounded-[12px] border border-v2-border-border-base bg-v2-background-bg-base px-4 py-3 text-[13px] text-v2-text-text-faint"
|
||||
>
|
||||
Ask anything...
|
||||
</DockShell>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-[12px] text-v2-text-text-faint">
|
||||
|
||||
@@ -8,10 +8,8 @@ import { TextReveal } from "@opencode-ai/ui/text-reveal"
|
||||
import { TextStrikethrough } from "@opencode-ai/ui/text-strikethrough"
|
||||
import { createResizeObserver } from "@solid-primitives/resize-observer"
|
||||
import { Index, createEffect, createMemo } from "solid-js"
|
||||
import { Dynamic } from "solid-js/web"
|
||||
import { createStore } from "solid-js/store"
|
||||
import { useLanguage } from "@/context/language"
|
||||
import { useSettings } from "@/context/settings"
|
||||
|
||||
const doneToken = "\u0000done\u0000"
|
||||
const totalToken = "\u0000total\u0000"
|
||||
@@ -50,7 +48,6 @@ export function SessionTodoDock(props: {
|
||||
dockProgress: number
|
||||
}) {
|
||||
const language = useLanguage()
|
||||
const settings = useSettings()
|
||||
const [store, setStore] = createStore({
|
||||
height: 78,
|
||||
})
|
||||
@@ -94,13 +91,8 @@ export function SessionTodoDock(props: {
|
||||
})
|
||||
|
||||
return (
|
||||
<Dynamic
|
||||
component={settings.general.newLayoutDesigns() ? "div" : DockTray}
|
||||
<DockTray
|
||||
data-component="session-todo-dock"
|
||||
classList={{
|
||||
"w-full overflow-hidden rounded-xl border-[0.5px] border-v2-border-border-base bg-v2-background-bg-layer-01":
|
||||
settings.general.newLayoutDesigns(),
|
||||
}}
|
||||
style={{
|
||||
"overflow-x": "visible",
|
||||
"overflow-y": "hidden",
|
||||
@@ -110,11 +102,7 @@ export function SessionTodoDock(props: {
|
||||
<div ref={contentRef}>
|
||||
<div
|
||||
data-action="session-todo-toggle"
|
||||
classList={{
|
||||
"flex items-center gap-2 overflow-visible": true,
|
||||
"h-[42px] pl-4 pr-2": settings.general.newLayoutDesigns(),
|
||||
"pl-3 pr-2 py-2": !settings.general.newLayoutDesigns(),
|
||||
}}
|
||||
class="pl-3 pr-2 py-2 flex items-center gap-2 overflow-visible"
|
||||
role="button"
|
||||
tabIndex={0}
|
||||
onClick={props.onToggle}
|
||||
@@ -125,12 +113,7 @@ export function SessionTodoDock(props: {
|
||||
}}
|
||||
>
|
||||
<span
|
||||
classList={{
|
||||
"cursor-default inline-flex items-baseline shrink-0 overflow-visible": true,
|
||||
"font-[440] text-[13px] leading-5 tracking-[-0.04px] text-v2-text-text-muted":
|
||||
settings.general.newLayoutDesigns(),
|
||||
"text-14-regular text-text-strong": !settings.general.newLayoutDesigns(),
|
||||
}}
|
||||
class="text-14-regular text-text-strong cursor-default inline-flex items-baseline shrink-0 overflow-visible"
|
||||
aria-label={label()}
|
||||
style={{
|
||||
"--tool-motion-odometer-ms": "600ms",
|
||||
@@ -162,11 +145,7 @@ export function SessionTodoDock(props: {
|
||||
}}
|
||||
>
|
||||
<TextReveal
|
||||
class={
|
||||
settings.general.newLayoutDesigns()
|
||||
? "cursor-default text-[13px] font-[440] leading-5 tracking-[-0.04px] text-v2-text-text-faint"
|
||||
: "text-14-regular text-text-base cursor-default"
|
||||
}
|
||||
class="text-14-regular text-text-base cursor-default"
|
||||
text={props.collapsed ? preview() : undefined}
|
||||
duration={600}
|
||||
travel={25}
|
||||
@@ -212,7 +191,7 @@ export function SessionTodoDock(props: {
|
||||
<TodoList todos={props.todos} />
|
||||
</div>
|
||||
</div>
|
||||
</Dynamic>
|
||||
</DockTray>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -777,10 +777,6 @@ export const dict = {
|
||||
"enterprise.faq.q4": "Is my data secure with OpenCode Enterprise?",
|
||||
"enterprise.faq.a4":
|
||||
"Yes. OpenCode does not store your code or context data. All processing happens locally or through direct API calls to your AI provider. With central config and SSO integration, your data remains secure within your organization's infrastructure.",
|
||||
"enterprise.faq.q5": "Where can I find your security and compliance documentation?",
|
||||
"enterprise.faq.a5.before":
|
||||
"Our Trust Center has everything: SOC 2 Type 2 report, security policies, subprocessor list, and answers to common security questions. Visit",
|
||||
"enterprise.faq.a5.after": "to review or request documents under NDA.",
|
||||
|
||||
"brand.title": "OpenCode | Brand",
|
||||
"brand.meta.description": "OpenCode brand guidelines",
|
||||
|
||||
@@ -273,12 +273,6 @@ export default function Enterprise() {
|
||||
<li>
|
||||
<Faq question={i18n.t("enterprise.faq.q4")}>{i18n.t("enterprise.faq.a4")}</Faq>
|
||||
</li>
|
||||
<li>
|
||||
<Faq question={i18n.t("enterprise.faq.q5")}>
|
||||
{i18n.t("enterprise.faq.a5.before")} <a href="https://trust.opencode.ai">trust.opencode.ai</a>{" "}
|
||||
{i18n.t("enterprise.faq.a5.after")}
|
||||
</Faq>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
@@ -63,7 +63,7 @@ function LimitsGraph(props: { href: string }) {
|
||||
|
||||
const baseline = 100
|
||||
const graph = [
|
||||
{ id: "grok-4.5", name: "Grok 4.5", req: 120, d: "50ms" },
|
||||
{ id: "grok-4.5", name: "Grok 4.5", req: 80, d: "50ms" },
|
||||
{ id: "kimi-k3", name: "Kimi K3 (2x usage)", req: 280, baseReq: 140, d: "75ms" },
|
||||
{ id: "glm-5.2", name: "GLM-5.2", req: 880, d: "100ms" },
|
||||
{ id: "qwen3.7-max", name: "Qwen3.7 Max", req: 950, d: "110ms" },
|
||||
|
||||
@@ -36,7 +36,6 @@ export type PromptInputV2Props = {
|
||||
controller: PromptInputV2Interaction
|
||||
disabled?: boolean
|
||||
readOnly?: boolean
|
||||
borderUnderlay?: boolean
|
||||
class?: string
|
||||
modelControl?: JSX.Element
|
||||
}
|
||||
@@ -103,12 +102,8 @@ export function PromptInputV2(props: PromptInputV2Props) {
|
||||
</Show>
|
||||
<form
|
||||
data-component="prompt-input-v2"
|
||||
data-dock-border-underlay={props.borderUnderlay ? "v2" : undefined}
|
||||
class="group/prompt-input relative min-h-[96px] w-full rounded-xl bg-v2-background-bg-base"
|
||||
classList={{
|
||||
"shadow-[var(--v2-elevation-raised)]": !props.borderUnderlay,
|
||||
"border border-v2-icon-icon-info border-dashed": state.drag === "active",
|
||||
}}
|
||||
class="group/prompt-input relative min-h-[96px] w-full rounded-xl bg-v2-background-bg-base shadow-[var(--v2-elevation-raised)]"
|
||||
classList={{ "border border-v2-icon-icon-info border-dashed": state.drag === "active" }}
|
||||
onSubmit={(event) => {
|
||||
event.preventDefault()
|
||||
if (!props.disabled) props.controller.submit()
|
||||
|
||||
@@ -7,20 +7,6 @@
|
||||
overflow: clip;
|
||||
}
|
||||
|
||||
[data-dock-border-underlay] {
|
||||
/* Later shadows paint underneath, so this solid ring masks overlapping surfaces without changing border geometry. */
|
||||
box-shadow:
|
||||
var(--dock-shell-visual-shadow, var(--shadow-xs-border)),
|
||||
0 0 0 var(--dock-shell-border-underlay-width, 1px)
|
||||
var(--dock-shell-border-underlay-background, var(--surface-raised-stronger-non-alpha));
|
||||
}
|
||||
|
||||
[data-dock-border-underlay="v2"] {
|
||||
--dock-shell-visual-shadow: var(--v2-elevation-raised);
|
||||
--dock-shell-border-underlay-width: 0.5px;
|
||||
--dock-shell-border-underlay-background: var(--v2-background-bg-base);
|
||||
}
|
||||
|
||||
[data-dock-surface="tray"] {
|
||||
background-color: var(--background-base);
|
||||
border: 1px solid var(--border-weak-base);
|
||||
|
||||
@@ -83,7 +83,7 @@ OpenCode Go هو اشتراك منخفض التكلفة — **$5 للشهر ال
|
||||
|
||||
| Model | الطلبات لكل 5 ساعات | الطلبات في الأسبوع | الطلبات في الشهر |
|
||||
| ----------------- | ------------------- | ------------------ | ---------------- |
|
||||
| Grok 4.5 | 120 | 300 | 600 |
|
||||
| Grok 4.5 | 80 | 190 | 380 |
|
||||
| GLM-5.2 | 880 | 2,150 | 4,300 |
|
||||
| GLM-5.1 | 880 | 2,150 | 4,300 |
|
||||
| Kimi K3 | 140 | 340 | 680 |
|
||||
@@ -118,7 +118,7 @@ OpenCode Go هو اشتراك منخفض التكلفة — **$5 للشهر ال
|
||||
|
||||
| النموذج | الإدخال | الإخراج | القراءة المخزنة | الكتابة المخزنة | الاستخدام |
|
||||
| ---------------------------- | ------- | ------- | --------------- | --------------- | --------- |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.30 | - | $15 |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.50 | - | $15 |
|
||||
| GLM-5.2 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| GLM-5.1 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| Kimi K3 | $3.00 | $15.00 | $0.30 | - | $15 |
|
||||
|
||||
@@ -164,8 +164,8 @@ https://opencode.ai/zen/v1/models
|
||||
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
||||
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
||||
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - |
|
||||
| Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - |
|
||||
| GPT 5.6 Sol (≤ 272K tokens) | $5.00 | $30.00 | $0.50 | $6.25 |
|
||||
| GPT 5.6 Sol (> 272K tokens) | $10.00 | $45.00 | $1.00 | $12.50 |
|
||||
|
||||
@@ -93,7 +93,7 @@ Tabela ispod pruža procijenjeni broj zahtjeva na osnovu tipičnih obrazaca kori
|
||||
|
||||
| Model | zahtjeva na 5 sati | zahtjeva sedmično | zahtjeva mjesečno |
|
||||
| ----------------- | ------------------ | ----------------- | ----------------- |
|
||||
| Grok 4.5 | 120 | 300 | 600 |
|
||||
| Grok 4.5 | 80 | 190 | 380 |
|
||||
| GLM-5.2 | 880 | 2,150 | 4,300 |
|
||||
| GLM-5.1 | 880 | 2,150 | 4,300 |
|
||||
| Kimi K3 | 140 | 340 | 680 |
|
||||
@@ -128,7 +128,7 @@ Procjene se također zasnivaju na sljedećim cijenama po 1M tokena i mjesečnoj
|
||||
|
||||
| Model | Input | Output | Cached Read | Cached Write | Potrošnja |
|
||||
| ---------------------------- | ------ | ------ | ----------- | ------------ | --------- |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.30 | - | $15 |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.50 | - | $15 |
|
||||
| GLM-5.2 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| GLM-5.1 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| Kimi K3 | $3.00 | $15.00 | $0.30 | - | $15 |
|
||||
|
||||
@@ -171,8 +171,8 @@ Podržavamo pay-as-you-go model. Ispod su cijene **po 1M tokena**.
|
||||
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
||||
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
||||
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - |
|
||||
| Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - |
|
||||
| GPT 5.6 Sol (≤ 272K tokens) | $5.00 | $30.00 | $0.50 | $6.25 |
|
||||
| GPT 5.6 Sol (> 272K tokens) | $10.00 | $45.00 | $1.00 | $12.50 |
|
||||
|
||||
@@ -93,7 +93,7 @@ Tabellen nedenfor giver et estimeret antal anmodninger baseret på typiske Go-fo
|
||||
|
||||
| Model | anmodninger pr. 5 timer | anmodninger pr. uge | anmodninger pr. måned |
|
||||
| ----------------- | ----------------------- | ------------------- | --------------------- |
|
||||
| Grok 4.5 | 120 | 300 | 600 |
|
||||
| Grok 4.5 | 80 | 190 | 380 |
|
||||
| GLM-5.2 | 880 | 2,150 | 4,300 |
|
||||
| GLM-5.1 | 880 | 2,150 | 4,300 |
|
||||
| Kimi K3 | 140 | 340 | 680 |
|
||||
@@ -128,7 +128,7 @@ Estimaterne er også baseret på følgende priser pr. 1M tokens og det månedlig
|
||||
|
||||
| Model | Input | Output | Cached Read | Cached Write | Forbrug |
|
||||
| ---------------------------- | ------ | ------ | ----------- | ------------ | ------- |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.30 | - | $15 |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.50 | - | $15 |
|
||||
| GLM-5.2 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| GLM-5.1 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| Kimi K3 | $3.00 | $15.00 | $0.30 | - | $15 |
|
||||
|
||||
@@ -171,8 +171,8 @@ Vi understøtter en pay-as-you-go-model. Nedenfor er priserne **pr. 1M tokens**.
|
||||
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
||||
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
||||
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - |
|
||||
| Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - |
|
||||
| GPT 5.6 Sol (≤ 272K tokens) | $5.00 | $30.00 | $0.50 | $6.25 |
|
||||
| GPT 5.6 Sol (> 272K tokens) | $10.00 | $45.00 | $1.00 | $12.50 |
|
||||
|
||||
@@ -85,7 +85,7 @@ Die folgende Tabelle zeigt eine geschätzte Anzahl von Anfragen basierend auf ty
|
||||
|
||||
| Model | Anfragen pro 5 Stunden | Anfragen pro Woche | Anfragen pro Monat |
|
||||
| ----------------- | ---------------------- | ------------------ | ------------------ |
|
||||
| Grok 4.5 | 120 | 300 | 600 |
|
||||
| Grok 4.5 | 80 | 190 | 380 |
|
||||
| GLM-5.2 | 880 | 2,150 | 4,300 |
|
||||
| GLM-5.1 | 880 | 2,150 | 4,300 |
|
||||
| Kimi K3 | 140 | 340 | 680 |
|
||||
@@ -120,7 +120,7 @@ Die Schätzungen basieren außerdem auf den folgenden Preisen pro 1M Tokens und
|
||||
|
||||
| Model | Input | Output | Cached Read | Cached Write | Nutzung |
|
||||
| ---------------------------- | ------ | ------ | ----------- | ------------ | ------- |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.30 | - | $15 |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.50 | - | $15 |
|
||||
| GLM-5.2 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| GLM-5.1 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| Kimi K3 | $3.00 | $15.00 | $0.30 | - | $15 |
|
||||
|
||||
@@ -160,8 +160,8 @@ Wir unterstützen ein Pay-as-you-go-Modell. Unten findest du die Preise **pro 1M
|
||||
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
||||
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
||||
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - |
|
||||
| Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - |
|
||||
| GPT 5.6 Sol (≤ 272K tokens) | $5.00 | $30.00 | $0.50 | $6.25 |
|
||||
| GPT 5.6 Sol (> 272K tokens) | $10.00 | $45.00 | $1.00 | $12.50 |
|
||||
|
||||
@@ -93,7 +93,7 @@ La siguiente tabla proporciona una cantidad estimada de peticiones basada en los
|
||||
|
||||
| Model | peticiones por 5 horas | peticiones por semana | peticiones por mes |
|
||||
| ----------------- | ---------------------- | --------------------- | ------------------ |
|
||||
| Grok 4.5 | 120 | 300 | 600 |
|
||||
| Grok 4.5 | 80 | 190 | 380 |
|
||||
| GLM-5.2 | 880 | 2,150 | 4,300 |
|
||||
| GLM-5.1 | 880 | 2,150 | 4,300 |
|
||||
| Kimi K3 | 140 | 340 | 680 |
|
||||
@@ -128,7 +128,7 @@ Las estimaciones también se basan en los siguientes precios por 1M tokens y en
|
||||
|
||||
| Modelo | Entrada | Salida | Lectura en caché | Escritura en caché | Uso |
|
||||
| ---------------------------- | ------- | ------ | ---------------- | ------------------ | --- |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.30 | - | $15 |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.50 | - | $15 |
|
||||
| GLM-5.2 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| GLM-5.1 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| Kimi K3 | $3.00 | $15.00 | $0.30 | - | $15 |
|
||||
|
||||
@@ -171,8 +171,8 @@ Admitimos un modelo de pago por uso. A continuación se muestran los precios **p
|
||||
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
||||
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
||||
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - |
|
||||
| Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - |
|
||||
| GPT 5.6 Sol (≤ 272K tokens) | $5.00 | $30.00 | $0.50 | $6.25 |
|
||||
| GPT 5.6 Sol (> 272K tokens) | $10.00 | $45.00 | $1.00 | $12.50 |
|
||||
|
||||
@@ -83,7 +83,7 @@ Le tableau ci-dessous fournit une estimation du nombre de requêtes basée sur d
|
||||
|
||||
| Model | requêtes par 5 heures | requêtes par semaine | requêtes par mois |
|
||||
| ----------------- | --------------------- | -------------------- | ----------------- |
|
||||
| Grok 4.5 | 120 | 300 | 600 |
|
||||
| Grok 4.5 | 80 | 190 | 380 |
|
||||
| GLM-5.2 | 880 | 2,150 | 4,300 |
|
||||
| GLM-5.1 | 880 | 2,150 | 4,300 |
|
||||
| Kimi K3 | 140 | 340 | 680 |
|
||||
@@ -118,7 +118,7 @@ Les estimations sont également basées sur les prix suivants par 1M tokens et s
|
||||
|
||||
| Modèle | Input | Output | Cached Read | Cached Write | Utilisation |
|
||||
| ---------------------------- | ------ | ------ | ----------- | ------------ | ----------- |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.30 | - | $15 |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.50 | - | $15 |
|
||||
| GLM-5.2 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| GLM-5.1 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| Kimi K3 | $3.00 | $15.00 | $0.30 | - | $15 |
|
||||
|
||||
@@ -160,8 +160,8 @@ Nous prenons en charge un modèle de paiement à l'utilisation. Vous trouverez c
|
||||
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
||||
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
||||
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - |
|
||||
| Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - |
|
||||
| GPT 5.6 Sol (≤ 272K tokens) | $5.00 | $30.00 | $0.50 | $6.25 |
|
||||
| GPT 5.6 Sol (> 272K tokens) | $10.00 | $45.00 | $1.00 | $12.50 |
|
||||
|
||||
@@ -93,7 +93,7 @@ The table below provides an estimated request count based on typical Go usage pa
|
||||
|
||||
| Model | requests per 5 hour | requests per week | requests per month |
|
||||
| ----------------- | ------------------- | ----------------- | ------------------ |
|
||||
| Grok 4.5 | 120 | 300 | 600 |
|
||||
| Grok 4.5 | 80 | 190 | 380 |
|
||||
| GLM-5.2 | 880 | 2,150 | 4,300 |
|
||||
| GLM-5.1 | 880 | 2,150 | 4,300 |
|
||||
| Kimi K3 | 140 | 340 | 680 |
|
||||
@@ -128,7 +128,7 @@ The estimates are also based on the following prices per 1M tokens and the month
|
||||
|
||||
| Model | Input | Output | Cached Read | Cached Write | Usage |
|
||||
| ---------------------------- | ------ | ------ | ----------- | ------------ | ----- |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.30 | - | $15 |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.50 | - | $15 |
|
||||
| GLM-5.2 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| GLM-5.1 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| Kimi K3 | $3.00 | $15.00 | $0.30 | - | $15 |
|
||||
|
||||
@@ -91,7 +91,7 @@ La tabella seguente fornisce una stima del conteggio delle richieste in base a p
|
||||
|
||||
| Model | richieste ogni 5 ore | richieste a settimana | richieste al mese |
|
||||
| ----------------- | -------------------- | --------------------- | ----------------- |
|
||||
| Grok 4.5 | 120 | 300 | 600 |
|
||||
| Grok 4.5 | 80 | 190 | 380 |
|
||||
| GLM-5.2 | 880 | 2,150 | 4,300 |
|
||||
| GLM-5.1 | 880 | 2,150 | 4,300 |
|
||||
| Kimi K3 | 140 | 340 | 680 |
|
||||
@@ -126,7 +126,7 @@ Le stime si basano anche sui seguenti prezzi per 1M token e sull'utilizzo mensil
|
||||
|
||||
| Modello | Input | Output | Cached Read | Cached Write | Utilizzo |
|
||||
| ---------------------------- | ------ | ------ | ----------- | ------------ | -------- |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.30 | - | $15 |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.50 | - | $15 |
|
||||
| GLM-5.2 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| GLM-5.1 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| Kimi K3 | $3.00 | $15.00 | $0.30 | - | $15 |
|
||||
|
||||
@@ -171,8 +171,8 @@ Supportiamo un modello pay-as-you-go. Qui sotto trovi i prezzi **per 1M token**.
|
||||
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
||||
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
||||
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - |
|
||||
| Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - |
|
||||
| GPT 5.6 Sol (≤ 272K tokens) | $5.00 | $30.00 | $0.50 | $6.25 |
|
||||
| GPT 5.6 Sol (> 272K tokens) | $10.00 | $45.00 | $1.00 | $12.50 |
|
||||
|
||||
@@ -83,7 +83,7 @@ OpenCode Goには以下の制限が含まれています:
|
||||
|
||||
| Model | 5時間あたりのリクエスト数 | 週間リクエスト数 | 月間リクエスト数 |
|
||||
| ----------------- | ------------------------- | ---------------- | ---------------- |
|
||||
| Grok 4.5 | 120 | 300 | 600 |
|
||||
| Grok 4.5 | 80 | 190 | 380 |
|
||||
| GLM-5.2 | 880 | 2,150 | 4,300 |
|
||||
| GLM-5.1 | 880 | 2,150 | 4,300 |
|
||||
| Kimi K3 | 140 | 340 | 680 |
|
||||
@@ -118,7 +118,7 @@ OpenCode Goには以下の制限が含まれています:
|
||||
|
||||
| Model | Input | Output | Cached Read | Cached Write | Usage |
|
||||
| ---------------------------- | ------ | ------ | ----------- | ------------ | ----- |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.30 | - | $15 |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.50 | - | $15 |
|
||||
| GLM-5.2 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| GLM-5.1 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| Kimi K3 | $3.00 | $15.00 | $0.30 | - | $15 |
|
||||
|
||||
@@ -160,8 +160,8 @@ https://opencode.ai/zen/v1/models
|
||||
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
||||
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
||||
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - |
|
||||
| Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - |
|
||||
| GPT 5.6 Sol (≤ 272K tokens) | $5.00 | $30.00 | $0.50 | $6.25 |
|
||||
| GPT 5.6 Sol (> 272K tokens) | $10.00 | $45.00 | $1.00 | $12.50 |
|
||||
|
||||
@@ -83,7 +83,7 @@ OpenCode Go에는 다음과 같은 한도가 포함됩니다.
|
||||
|
||||
| Model | 5시간당 요청 횟수 | 주간 요청 횟수 | 월간 요청 횟수 |
|
||||
| ----------------- | ----------------- | -------------- | -------------- |
|
||||
| Grok 4.5 | 120 | 300 | 600 |
|
||||
| Grok 4.5 | 80 | 190 | 380 |
|
||||
| GLM-5.2 | 880 | 2,150 | 4,300 |
|
||||
| GLM-5.1 | 880 | 2,150 | 4,300 |
|
||||
| Kimi K3 | 140 | 340 | 680 |
|
||||
@@ -118,7 +118,7 @@ OpenCode Go에는 다음과 같은 한도가 포함됩니다.
|
||||
|
||||
| Model | Input | Output | Cached Read | Cached Write | Usage |
|
||||
| ---------------------------- | ------ | ------ | ----------- | ------------ | ----- |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.30 | - | $15 |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.50 | - | $15 |
|
||||
| GLM-5.2 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| GLM-5.1 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| Kimi K3 | $3.00 | $15.00 | $0.30 | - | $15 |
|
||||
|
||||
@@ -160,8 +160,8 @@ https://opencode.ai/zen/v1/models
|
||||
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
||||
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
||||
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - |
|
||||
| Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - |
|
||||
| GPT 5.6 Sol (≤ 272K tokens) | $5.00 | $30.00 | $0.50 | $6.25 |
|
||||
| GPT 5.6 Sol (> 272K tokens) | $10.00 | $45.00 | $1.00 | $12.50 |
|
||||
|
||||
@@ -93,7 +93,7 @@ Tabellen nedenfor gir et estimert antall forespørsler basert på typiske bruksm
|
||||
|
||||
| Model | forespørsler per 5 timer | forespørsler per uke | forespørsler per måned |
|
||||
| ----------------- | ------------------------ | -------------------- | ---------------------- |
|
||||
| Grok 4.5 | 120 | 300 | 600 |
|
||||
| Grok 4.5 | 80 | 190 | 380 |
|
||||
| GLM-5.2 | 880 | 2,150 | 4,300 |
|
||||
| GLM-5.1 | 880 | 2,150 | 4,300 |
|
||||
| Kimi K3 | 140 | 340 | 680 |
|
||||
@@ -128,7 +128,7 @@ Estimatene er også basert på følgende priser per 1M tokens og den månedlige
|
||||
|
||||
| Model | Input | Output | Cached Read | Cached Write | Bruk |
|
||||
| ---------------------------- | ------ | ------ | ----------- | ------------ | ---- |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.30 | - | $15 |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.50 | - | $15 |
|
||||
| GLM-5.2 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| GLM-5.1 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| Kimi K3 | $3.00 | $15.00 | $0.30 | - | $15 |
|
||||
|
||||
@@ -171,8 +171,8 @@ Vi støtter en pay-as-you-go-modell. Nedenfor er prisene **per 1M tokens**.
|
||||
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
||||
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
||||
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - |
|
||||
| Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - |
|
||||
| GPT 5.6 Sol (≤ 272K tokens) | $5.00 | $30.00 | $0.50 | $6.25 |
|
||||
| GPT 5.6 Sol (> 272K tokens) | $10.00 | $45.00 | $1.00 | $12.50 |
|
||||
|
||||
@@ -87,7 +87,7 @@ Poniższa tabela przedstawia szacunkową liczbę żądań na podstawie typowych
|
||||
|
||||
| Model | żądania na 5 godzin | żądania na tydzień | żądania na miesiąc |
|
||||
| ----------------- | ------------------- | ------------------ | ------------------ |
|
||||
| Grok 4.5 | 120 | 300 | 600 |
|
||||
| Grok 4.5 | 80 | 190 | 380 |
|
||||
| GLM-5.2 | 880 | 2,150 | 4,300 |
|
||||
| GLM-5.1 | 880 | 2,150 | 4,300 |
|
||||
| Kimi K3 | 140 | 340 | 680 |
|
||||
@@ -122,7 +122,7 @@ Szacunki opierają się również na następujących cenach za 1M tokenów oraz
|
||||
|
||||
| Model | Wejście | Wyjście | Odczyt z cache | Zapis do cache | Użycie |
|
||||
| ---------------------------- | ------- | ------- | -------------- | -------------- | ------ |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.30 | - | $15 |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.50 | - | $15 |
|
||||
| GLM-5.2 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| GLM-5.1 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| Kimi K3 | $3.00 | $15.00 | $0.30 | - | $15 |
|
||||
|
||||
@@ -171,8 +171,8 @@ Obsługujemy model pay-as-you-go. Poniżej znajdują się ceny **za 1M tokenów*
|
||||
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
||||
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
||||
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - |
|
||||
| Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - |
|
||||
| GPT 5.6 Sol (≤ 272K tokens) | $5.00 | $30.00 | $0.50 | $6.25 |
|
||||
| GPT 5.6 Sol (> 272K tokens) | $10.00 | $45.00 | $1.00 | $12.50 |
|
||||
|
||||
@@ -93,7 +93,7 @@ A tabela abaixo fornece uma contagem estimada de requisições com base nos padr
|
||||
|
||||
| Model | requisições por 5 horas | requisições por semana | requisições por mês |
|
||||
| ----------------- | ----------------------- | ---------------------- | ------------------- |
|
||||
| Grok 4.5 | 120 | 300 | 600 |
|
||||
| Grok 4.5 | 80 | 190 | 380 |
|
||||
| GLM-5.2 | 880 | 2,150 | 4,300 |
|
||||
| GLM-5.1 | 880 | 2,150 | 4,300 |
|
||||
| Kimi K3 | 140 | 340 | 680 |
|
||||
@@ -128,7 +128,7 @@ As estimativas também se baseiam nos seguintes preços por 1M tokens e no uso m
|
||||
|
||||
| Modelo | Entrada | Saída | Leitura em cache | Escrita em cache | Uso |
|
||||
| ---------------------------- | ------- | ------ | ---------------- | ---------------- | --- |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.30 | - | $15 |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.50 | - | $15 |
|
||||
| GLM-5.2 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| GLM-5.1 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| Kimi K3 | $3.00 | $15.00 | $0.30 | - | $15 |
|
||||
|
||||
@@ -160,8 +160,8 @@ Oferecemos um modelo pay-as-you-go. Abaixo estão os preços **por 1M tokens**.
|
||||
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
||||
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
||||
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - |
|
||||
| Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - |
|
||||
| GPT 5.6 Sol (≤ 272K tokens) | $5.00 | $30.00 | $0.50 | $6.25 |
|
||||
| GPT 5.6 Sol (> 272K tokens) | $10.00 | $45.00 | $1.00 | $12.50 |
|
||||
|
||||
@@ -93,7 +93,7 @@ OpenCode Go включает следующие лимиты:
|
||||
|
||||
| Model | запросов за 5 часов | запросов в неделю | запросов в месяц |
|
||||
| ----------------- | ------------------- | ----------------- | ---------------- |
|
||||
| Grok 4.5 | 120 | 300 | 600 |
|
||||
| Grok 4.5 | 80 | 190 | 380 |
|
||||
| GLM-5.2 | 880 | 2,150 | 4,300 |
|
||||
| GLM-5.1 | 880 | 2,150 | 4,300 |
|
||||
| Kimi K3 | 140 | 340 | 680 |
|
||||
@@ -128,7 +128,7 @@ OpenCode Go включает следующие лимиты:
|
||||
|
||||
| Model | Input | Output | Cached Read | Cached Write | Использование |
|
||||
| ---------------------------- | ------ | ------ | ----------- | ------------ | ------------- |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.30 | - | $15 |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.50 | - | $15 |
|
||||
| GLM-5.2 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| GLM-5.1 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| Kimi K3 | $3.00 | $15.00 | $0.30 | - | $15 |
|
||||
|
||||
@@ -171,8 +171,8 @@ https://opencode.ai/zen/v1/models
|
||||
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
||||
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
||||
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - |
|
||||
| Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - |
|
||||
| GPT 5.6 Sol (≤ 272K tokens) | $5.00 | $30.00 | $0.50 | $6.25 |
|
||||
| GPT 5.6 Sol (> 272K tokens) | $10.00 | $45.00 | $1.00 | $12.50 |
|
||||
|
||||
@@ -83,7 +83,7 @@ OpenCode Go มีขีดจำกัดดังต่อไปนี้:
|
||||
|
||||
| Model | requests ต่อ 5 ชั่วโมง | requests ต่อสัปดาห์ | requests ต่อเดือน |
|
||||
| ----------------- | ---------------------- | ------------------- | ----------------- |
|
||||
| Grok 4.5 | 120 | 300 | 600 |
|
||||
| Grok 4.5 | 80 | 190 | 380 |
|
||||
| GLM-5.2 | 880 | 2,150 | 4,300 |
|
||||
| GLM-5.1 | 880 | 2,150 | 4,300 |
|
||||
| Kimi K3 | 140 | 340 | 680 |
|
||||
@@ -118,7 +118,7 @@ OpenCode Go มีขีดจำกัดดังต่อไปนี้:
|
||||
|
||||
| Model | Input | Output | Cached Read | Cached Write | Usage |
|
||||
| ---------------------------- | ------ | ------ | ----------- | ------------ | ----- |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.30 | - | $15 |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.50 | - | $15 |
|
||||
| GLM-5.2 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| GLM-5.1 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| Kimi K3 | $3.00 | $15.00 | $0.30 | - | $15 |
|
||||
|
||||
@@ -162,8 +162,8 @@ https://opencode.ai/zen/v1/models
|
||||
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
||||
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
||||
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - |
|
||||
| Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - |
|
||||
| GPT 5.6 Sol (≤ 272K tokens) | $5.00 | $30.00 | $0.50 | $6.25 |
|
||||
| GPT 5.6 Sol (> 272K tokens) | $10.00 | $45.00 | $1.00 | $12.50 |
|
||||
|
||||
@@ -83,7 +83,7 @@ Aşağıdaki tablo, tipik Go kullanım modellerine dayalı tahmini bir istek say
|
||||
|
||||
| Model | 5 saatte bir istek | haftalık istek | aylık istek |
|
||||
| ----------------- | ------------------ | -------------- | ----------- |
|
||||
| Grok 4.5 | 120 | 300 | 600 |
|
||||
| Grok 4.5 | 80 | 190 | 380 |
|
||||
| GLM-5.2 | 880 | 2,150 | 4,300 |
|
||||
| GLM-5.1 | 880 | 2,150 | 4,300 |
|
||||
| Kimi K3 | 140 | 340 | 680 |
|
||||
@@ -118,7 +118,7 @@ Tahminler ayrıca 1M token başına aşağıdaki fiyatlara ve her modelle birlik
|
||||
|
||||
| Model | Input | Output | Cached Read | Cached Write | Kullanım |
|
||||
| ---------------------------- | ------ | ------ | ----------- | ------------ | -------- |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.30 | - | $15 |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.50 | - | $15 |
|
||||
| GLM-5.2 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| GLM-5.1 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| Kimi K3 | $3.00 | $15.00 | $0.30 | - | $15 |
|
||||
|
||||
@@ -160,8 +160,8 @@ Kullandıkça öde modelini destekliyoruz. Aşağıda **1M token başına** fiya
|
||||
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
||||
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
||||
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - |
|
||||
| Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - |
|
||||
| GPT 5.6 Sol (≤ 272K tokens) | $5.00 | $30.00 | $0.50 | $6.25 |
|
||||
| GPT 5.6 Sol (> 272K tokens) | $10.00 | $45.00 | $1.00 | $12.50 |
|
||||
|
||||
@@ -171,8 +171,8 @@ We support a pay-as-you-go model. Below are the prices **per 1M tokens**.
|
||||
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
||||
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
||||
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - |
|
||||
| Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - |
|
||||
| GPT 5.6 Sol (≤ 272K tokens) | $5.00 | $30.00 | $0.50 | $6.25 |
|
||||
| GPT 5.6 Sol (> 272K tokens) | $10.00 | $45.00 | $1.00 | $12.50 |
|
||||
|
||||
@@ -83,7 +83,7 @@ OpenCode Go 包含以下限制:
|
||||
|
||||
| Model | 每 5 小时请求数 | 每周请求数 | 每月请求数 |
|
||||
| ----------------- | --------------- | ---------- | ---------- |
|
||||
| Grok 4.5 | 120 | 300 | 600 |
|
||||
| Grok 4.5 | 80 | 190 | 380 |
|
||||
| GLM-5.2 | 880 | 2,150 | 4,300 |
|
||||
| GLM-5.1 | 880 | 2,150 | 4,300 |
|
||||
| Kimi K3 | 140 | 340 | 680 |
|
||||
@@ -118,7 +118,7 @@ OpenCode Go 包含以下限制:
|
||||
|
||||
| 模型 | 输入 | 输出 | 缓存读取 | 缓存写入 | 使用额度 |
|
||||
| ---------------------------- | ------ | ------ | --------- | -------- | -------- |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.30 | - | $15 |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.50 | - | $15 |
|
||||
| GLM-5.2 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| GLM-5.1 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| Kimi K3 | $3.00 | $15.00 | $0.30 | - | $15 |
|
||||
|
||||
@@ -160,8 +160,8 @@ https://opencode.ai/zen/v1/models
|
||||
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
||||
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
||||
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - |
|
||||
| Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - |
|
||||
| GPT 5.6 Sol (≤ 272K tokens) | $5.00 | $30.00 | $0.50 | $6.25 |
|
||||
| GPT 5.6 Sol (> 272K tokens) | $10.00 | $45.00 | $1.00 | $12.50 |
|
||||
|
||||
@@ -83,7 +83,7 @@ OpenCode Go 包含以下限制:
|
||||
|
||||
| Model | 每 5 小時請求數 | 每週請求數 | 每月請求數 |
|
||||
| ----------------- | --------------- | ---------- | ---------- |
|
||||
| Grok 4.5 | 120 | 300 | 600 |
|
||||
| Grok 4.5 | 80 | 190 | 380 |
|
||||
| GLM-5.2 | 880 | 2,150 | 4,300 |
|
||||
| GLM-5.1 | 880 | 2,150 | 4,300 |
|
||||
| Kimi K3 | 140 | 340 | 680 |
|
||||
@@ -118,7 +118,7 @@ OpenCode Go 包含以下限制:
|
||||
|
||||
| 模型 | 輸入 | 輸出 | 快取讀取 | 快取寫入 | 使用量 |
|
||||
| ---------------------------- | ------ | ------ | --------- | -------- | ------ |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.30 | - | $15 |
|
||||
| Grok 4.5 | $2.00 | $6.00 | $0.50 | - | $15 |
|
||||
| GLM-5.2 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| GLM-5.1 | $1.40 | $4.40 | $0.26 | - | $60 |
|
||||
| Kimi K3 | $3.00 | $15.00 | $0.30 | - | $15 |
|
||||
|
||||
@@ -165,8 +165,8 @@ https://opencode.ai/zen/v1/models
|
||||
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
||||
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
||||
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - |
|
||||
| Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - |
|
||||
| Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - |
|
||||
| Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - |
|
||||
| GPT 5.6 Sol (≤ 272K tokens) | $5.00 | $30.00 | $0.50 | $6.25 |
|
||||
| GPT 5.6 Sol (> 272K tokens) | $10.00 | $45.00 | $1.00 | $12.50 |
|
||||
|
||||
Reference in New Issue
Block a user