Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions docs-site/src/content/docs/fr/guides/integrations.md
Original file line number Diff line number Diff line change
Expand Up @@ -316,3 +316,9 @@ ocx integration client enable --client kilo
## Factory Droid

Factory Droid utilise `~/.factory/settings.json` (`%USERPROFILE%\.factory\settings.json` sous Windows). Activez explicitement l’intégration avec `ocx integration client enable --client droid`, puis choisissez un modèle personnalisé dans `/model`. Les entrées gérées n’utilisent pas de clé et fonctionnent uniquement en boucle locale. La désactivation supprime ces entrées ; l’annulation restaure les octets sauvegardés. Si l’ancien `config.json` contient des entrées OpenCodex ou si `settings.local.json` remplace `customModels`, résolvez ce conflit avant l’activation. Consultez la [documentation Factory BYOK](https://docs.factory.ai/model-independence/byok).

## Effort de raisonnement des rôles omo (Codex / LazyCodex)

Lorsque LazyCodex est détecté, l’onglet omo permet de modifier le modèle et l’effort de chaque rôle dans `$CODEX_HOME/agents/*.toml`. Tous les sélecteurs d’effort proposent **Hériter**, même si un effort est déjà fixé. Choisissez cette option et enregistrez pour supprimer le `model_reasoning_effort` à la racine du TOML du rôle et effacer `[codex].agents.<role>.reasoning` dans `~/.omo/omo.jsonc` lorsque sa réécriture est sûre. Le modèle reste fixé ; l’effort est hérité de la configuration parente de Codex.

Un enregistrement qui ne change que le modèle omet `effort` et conserve l’effort existant. Hériter envoie `effort: null` pour l’effacer explicitement. Si l’écriture du miroir échoue, **Réessayer omo.jsonc** renvoie le même choix, y compris l’effacement, même si le rechargement des rôles est en attente ou échoue. Appliquer une proposition Auto-assign sans recommandation d’effort (par exemple pour un modèle dont la liste d’efforts est vide) conserve aussi l’effort du rôle. Si `omo.jsonc` est absent ou contient des commentaires, le miroir est ignoré ; l’enregistrement du TOML reste effectif.
22 changes: 16 additions & 6 deletions docs-site/src/content/docs/guides/integrations.md
Original file line number Diff line number Diff line change
Expand Up @@ -683,14 +683,15 @@ role's model is actually decided. LazyCodex counts as installed when the `omo@si
Codex plugin is enabled in `$CODEX_HOME/config.toml` and an installed copy under
`$CODEX_HOME/plugins/cache/sisyphuslabs/omo/` carries its `lazycodex-install.json`. A `~/.omo`
folder on its own does not count, because Pi-based omo creates it too. Without LazyCodex the
section is hidden and the command line reports it as not installed. Pick a model on a row and
press Save:
section is hidden and the command line reports it as not installed. Pick a model and a reasoning
effort on a row and press Save:
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Resolved

- opencodex rewrites only the root `model = "..."` line of that role's file. The role's
- opencodex rewrites only the root `model = "..."` and `model_reasoning_effort = "..."` lines of that role's file. The role's
instructions, comments, and other keys are left exactly as they were. A role with no pin gets
one added near the top of the file.
- The same value is written to `[codex].agents.<role>.model` in `~/.omo/omo.jsonc`, which
LazyCodex 5.1.1 and later reads. If that file does not exist it is not created. If it contains
- The model is written to `[codex].agents.<role>.model` in `~/.omo/omo.jsonc`, which
LazyCodex 5.1.1 and later reads, and a changed effort LazyCodex supports goes to
`[codex].agents.<role>.reasoning` in the same entry. If that file does not exist it is not created. If it contains
comments it is left untouched, because saving would remove them; the tab says so, and you can
set the value there by hand. Symlinks and non-regular files are rejected; on macOS and Linux,
a FIFO is rejected without waiting for a writer. A skipped mirror does not undo the role-file save.
Expand All @@ -708,6 +709,14 @@ rewrites the role file's `model_reasoning_effort` line and writes `[codex].agent
in omo.jsonc when LazyCodex has that level (`ultra` stays in the role file only, and an older
`reasoning` is removed). A Save that changes only the model leaves both effort values as they were.

Every role's reasoning-effort picker offers **Inherit**, including roles with an existing effort
pin. Select it and press Save to remove the root `model_reasoning_effort` setting from that
role's TOML and clear `[codex].agents.<role>.reasoning` in a safely writable omo.jsonc. The role
then inherits its reasoning effort from Codex's parent configuration; its model pin stays in place.
A model-only Save omits `effort` and preserves the existing effort; Inherit sends `effort: null`
to clear it. If the role save succeeds but the mirror fails, **Retry omo.jsonc** repeats that
same choice, including an explicit clear, even if reloading the roles is pending or fails.

### Auto-assign

Auto-assign is part of omo (Codex / LazyCodex): it sits above the role table in that section and
Expand All @@ -731,7 +740,8 @@ it up or down. A role the model could not size clearly is shown as not sized, wi
cannot be applied. Nothing is written until you press Apply on a row or Apply all. Applying uses the
same save as picking by hand, and also rewrites the role's `model_reasoning_effort` when the file already has
one. The effort is placed on the chosen model's own levels: its lowest, its default, one above the
default, or its highest.
default, or its highest. A proposal with no effort recommendation (for example, a model with an
empty effort ladder) changes only the model and preserves the role's existing effort.

```bash
ocx agent roles suggest
Expand Down
6 changes: 6 additions & 0 deletions docs-site/src/content/docs/ja/guides/integrations.md
Original file line number Diff line number Diff line change
Expand Up @@ -264,3 +264,9 @@ GitHub Copilot デスクトップアプリでは、opencodex を OpenAI 互換
## Factory Droid

Factory Droid は `~/.factory/settings.json`(Windows では `%USERPROFILE%\.factory\settings.json`)を使用します。`ocx integration client enable --client droid` で明示的に有効化し、`/model` でカスタムモデルを選択します。管理対象の行はキーを使わず、ループバックでのみ動作します。無効化すると管理対象の行が削除され、Undo で保存済みのバイト列が復元されます。従来の `config.json` に OpenCodex の行がある場合や、`settings.local.json` が `customModels` を上書きする場合は、有効化する前に競合を解消してください。[Factory BYOK のドキュメント](https://docs.factory.ai/model-independence/byok)も参照してください。

## omo (Codex / LazyCodex) のロール別推論強度

LazyCodex が検出されると、omo タブで `$CODEX_HOME/agents/*.toml` の各ロールのモデルと推論強度を編集できます。強度が固定されたロールを含め、すべての強度選択に **継承** が表示されます。継承を選んで保存すると、ロール TOML のルート `model_reasoning_effort` と、安全に書き換えられる `~/.omo/omo.jsonc` の `[codex].agents.<role>.reasoning` が削除されます。モデルの固定は維持され、推論強度は Codex の親設定を継承します。

モデルだけを変更する保存は `effort` を省略し、既存の強度を維持します。継承は `effort: null` を送り、明示的に解除します。ミラーの書き込みに失敗した場合、**omo.jsonc を再試行** は同じ選択を再送します。ロールの再読み込みが保留中や失敗でも解除を維持します。Auto-assign に強度の推奨がない提案(強度一覧が空のモデルなど)を適用しても、既存の強度は維持されます。`omo.jsonc` が存在しない場合やコメントがある場合はミラーをスキップし、ロール TOML の保存は維持します。
6 changes: 6 additions & 0 deletions docs-site/src/content/docs/ko/guides/integrations.md
Original file line number Diff line number Diff line change
Expand Up @@ -292,3 +292,9 @@ GitHub Copilot 데스크톱 앱에서 opencodex를 OpenAI 호환 모델 프로
행과 기본값이 함께 제거되며, 되돌리기는 저장된 행과 기본값을 함께 복원합니다.

Factory Droid는 `~/.factory/settings.json`(Windows에서는 `%USERPROFILE%\.factory\settings.json`)을 사용합니다. `ocx integration client enable --client droid`로 명시적으로 활성화한 다음 `/model`에서 사용자 지정 모델을 선택하세요. 관리되는 항목에는 키가 없으며 루프백에서만 동작합니다. 비활성화하면 관리되는 항목이 제거되고, Undo는 저장된 원본 바이트를 복원합니다. 기존 `config.json`에 OpenCodex 항목이 있거나 `settings.local.json`이 `customModels`를 덮어쓰면 활성화 전에 충돌을 해결하세요. [Factory BYOK 문서](https://docs.factory.ai/model-independence/byok)를 참고하세요.

## omo (Codex / LazyCodex) 역할별 추론 강도

LazyCodex가 감지되면 omo 탭에서 `$CODEX_HOME/agents/*.toml`의 역할별 모델과 추론 강도를 편집할 수 있습니다. 모든 역할의 강도 선택기에 **상속**이 표시되며, 이미 강도가 고정된 역할도 선택할 수 있습니다. 상속을 선택하고 저장하면 역할 TOML의 루트 `model_reasoning_effort`와 안전하게 쓸 수 있는 `~/.omo/omo.jsonc`의 `[codex].agents.<role>.reasoning`을 제거합니다. 모델 고정은 유지되고 추론 강도는 Codex의 상위 설정을 따릅니다.

모델만 바꿔 저장하면 `effort`를 생략해 기존 강도를 유지하고, 상속을 선택하면 `effort: null`로 명시적으로 해제합니다. 미러 쓰기가 실패하면 **omo.jsonc 재시도**가 같은 선택을 다시 보내며, 역할 목록을 불러오는 중이거나 불러오기에 실패해도 해제 요청을 유지합니다. Auto-assign에서 강도 추천이 없는 제안(예: 강도 목록이 비어 있는 모델)을 적용해도 기존 역할 강도는 유지됩니다. `omo.jsonc`가 없거나 주석이 있으면 미러 쓰기를 건너뛰며, 역할 TOML 저장은 유지됩니다.
6 changes: 6 additions & 0 deletions docs-site/src/content/docs/ru/guides/integrations.md
Original file line number Diff line number Diff line change
Expand Up @@ -598,3 +598,9 @@ ocx export --client kilo --out ./kilo.jsonc
## Factory Droid

Factory Droid использует `~/.factory/settings.json` (`%USERPROFILE%\.factory\settings.json` в Windows). Явно включите интеграцию командой `ocx integration client enable --client droid`, затем выберите пользовательскую модель через `/model`. Управляемые записи не содержат ключа и работают только через loopback. Отключение удаляет управляемые записи, а Undo восстанавливает сохранённые байты. Если в прежнем `config.json` есть записи OpenCodex или `settings.local.json` переопределяет `customModels`, устраните конфликт до включения. См. [документацию Factory BYOK](https://docs.factory.ai/model-independence/byok).

## Усилие рассуждения ролей omo (Codex / LazyCodex)

Когда обнаружен LazyCodex, на вкладке omo можно изменить модель и усилие рассуждения каждой роли из `$CODEX_HOME/agents/*.toml`. Список усилий каждой роли содержит **Наследовать**, даже если усилие уже закреплено. Выберите этот пункт и сохраните: корневой `model_reasoning_effort` удаляется из TOML роли, а `[codex].agents.<role>.reasoning` — из `~/.omo/omo.jsonc`, если файл можно безопасно перезаписать. Модель остаётся закреплённой, а усилие наследуется из родительской конфигурации Codex.

При изменении только модели поле `effort` не отправляется, поэтому существующее усилие сохраняется. Наследование отправляет `effort: null` для явного сброса. Если запись зеркала не удалась, **Повторить omo.jsonc** повторяет тот же выбор, включая сброс, даже если обновление списка ролей ещё ожидается или завершилось ошибкой. Применение предложения Auto-assign без рекомендации усилия (например, для модели с пустым списком усилий) также сохраняет существующее усилие роли. Если `omo.jsonc` отсутствует или содержит комментарии, запись зеркала пропускается, но сохранение TOML роли остаётся в силе.
6 changes: 6 additions & 0 deletions docs-site/src/content/docs/tr/guides/integrations.md
Original file line number Diff line number Diff line change
Expand Up @@ -354,3 +354,9 @@ ocx integration client enable --client kilo
## Factory Droid

Factory Droid, `~/.factory/settings.json` dosyasını (Windows'ta `%USERPROFILE%\.factory\settings.json`) kullanır. `ocx integration client enable --client droid` komutuyla açıkça etkinleştirin, ardından `/model` içinde özel bir model seçin. Yönetilen satırlar anahtarsızdır ve yalnızca geri döngü bağlantısında çalışır. Devre dışı bırakma yönetilen satırları kaldırır; Undo kaydedilen baytları geri yükler. Eski `config.json` dosyasında OpenCodex satırları varsa veya `settings.local.json`, `customModels` değerini geçersiz kılıyorsa etkinleştirmeden önce çakışmayı giderin. [Factory BYOK belgelerine](https://docs.factory.ai/model-independence/byok) bakın.

## omo (Codex / LazyCodex) rol akıl yürütme düzeyi

LazyCodex algılandığında omo sekmesinde `$CODEX_HOME/agents/*.toml` içindeki her rolün modeli ve akıl yürütme düzeyi düzenlenebilir. Düzeyi sabitlenmiş roller dahil her düzey seçicisi **Devral** seçeneğini sunar. Bu seçeneği seçip kaydettiğinizde rol TOML dosyasının kökündeki `model_reasoning_effort` kaldırılır ve güvenle yeniden yazılabilen `~/.omo/omo.jsonc` içindeki `[codex].agents.<role>.reasoning` temizlenir. Model sabitlemesi korunur; düzey Codex’in üst yapılandırmasından devralınır.

Yalnızca modeli değiştiren kayıt `effort` alanını göndermez ve mevcut düzeyi korur. Devral, açıkça temizlemek için `effort: null` gönderir. Yansıma yazımı başarısız olursa **omo.jsonc yeniden dene**, rollerin yeniden yüklenmesi beklemede olsa veya başarısız olsa bile temizleme dahil aynı seçimi tekrar gönderir. Düzey önerisi olmayan bir Auto-assign önerisini uygulamak da (örneğin düzey listesi boş bir model için) rolün mevcut düzeyini korur. `omo.jsonc` yoksa veya yorum içeriyorsa yansıma atlanır; rol TOML kaydı geçerli kalır.
6 changes: 6 additions & 0 deletions docs-site/src/content/docs/zh-cn/guides/integrations.md
Original file line number Diff line number Diff line change
Expand Up @@ -262,3 +262,9 @@ GitHub Copilot 桌面应用可以将 opencodex 用作兼容 OpenAI 的模型提
## Factory Droid

Factory Droid 使用 `~/.factory/settings.json`(Windows 上为 `%USERPROFILE%\.factory\settings.json`)。使用 `ocx integration client enable --client droid` 明确启用,然后在 `/model` 中选择自定义模型。托管条目不含密钥,且仅支持回环连接。禁用会移除托管条目;Undo 会恢复保存的原始字节。如果旧版 `config.json` 含有 OpenCodex 条目,或 `settings.local.json` 覆盖了 `customModels`,请先解决冲突再启用。参见 [Factory BYOK 文档](https://docs.factory.ai/model-independence/byok)。

## omo (Codex / LazyCodex) 角色推理强度

检测到 LazyCodex 后,可以在 omo 标签页编辑 `$CODEX_HOME/agents/*.toml` 中每个角色的模型和推理强度。所有角色的强度选择器都提供 **继承**,包括已固定强度的角色。选择继承并保存,会移除角色 TOML 的根级 `model_reasoning_effort`,并清除可安全重写的 `~/.omo/omo.jsonc` 中的 `[codex].agents.<role>.reasoning`。模型固定保持不变,推理强度继承 Codex 的父级配置。

只更改模型的保存会省略 `effort`,保留现有强度;继承会发送 `effort: null` 明确清除。镜像写入失败时,**重试 omo.jsonc** 会重新发送同一选择,即使角色列表重新加载尚未完成或失败,也会保留清除请求。应用 Auto-assign 中没有强度建议的提案(例如强度列表为空的模型)也会保留角色现有强度。`omo.jsonc` 不存在或包含注释时跳过镜像,角色 TOML 的保存仍然保留。
6 changes: 6 additions & 0 deletions docs-site/src/content/docs/zh-tw/guides/integrations.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,3 +222,9 @@ ocx integration client enable --client kilo
## Factory Droid

Factory Droid 使用 `~/.factory/settings.json`(Windows 上為 `%USERPROFILE%\.factory\settings.json`)。使用 `ocx integration client enable --client droid` 明確啟用,然後在 `/model` 中選擇自訂模型。受管理的項目不含金鑰,且僅支援迴環連線。停用會移除受管理的項目;Undo 會還原儲存的原始位元組。如果舊版 `config.json` 含有 OpenCodex 項目,或 `settings.local.json` 覆寫了 `customModels`,請先解決衝突再啟用。請參閱 [Factory BYOK 文件](https://docs.factory.ai/model-independence/byok)。

## omo (Codex / LazyCodex) 角色推理強度

偵測到 LazyCodex 後,可在 omo 分頁編輯 `$CODEX_HOME/agents/*.toml` 中每個角色的模型與推理強度。所有角色的強度選擇器都提供 **繼承**,包括已固定強度的角色。選擇繼承並儲存,會移除角色 TOML 的根層級 `model_reasoning_effort`,並清除可安全重寫的 `~/.omo/omo.jsonc` 中的 `[codex].agents.<role>.reasoning`。模型固定保持不變,推理強度繼承 Codex 的父層設定。

只變更模型的儲存會省略 `effort`,保留現有強度;繼承會傳送 `effort: null` 明確清除。鏡像寫入失敗時,**重試 omo.jsonc** 會重新傳送相同選擇,即使角色清單重新載入仍在等待或失敗,也會保留清除要求。套用 Auto-assign 中沒有強度建議的提案(例如強度清單為空的模型)也會保留角色現有強度。`omo.jsonc` 不存在或包含註解時會略過鏡像,角色 TOML 的儲存仍然保留。
5 changes: 4 additions & 1 deletion gui/src/i18n/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1761,11 +1761,14 @@ export const de: Record<TKey, string> = {
"integrations.semantics.raycast": "Fügt einen OpenCodex-Provider-Eintrag in die providers.yaml von Raycast ein, damit jedes geroutete Modell in der Modellauswahl von Raycast AI erscheint. Raycast Pro erforderlich.",
"integrations.semantics.omo": "Verwaltet ausschließlich providers.opencodex in der models.json von omo — ~/.omo/agent, sofern nicht OMO_CODING_AGENT_DIR, SENPI_CODING_AGENT_DIR oder PI_CODING_AGENT_DIR sie umleitet. Ihre übrigen Provider bleiben unverändert. Gilt ab neuen Sitzungen.",
"integrations.lazycodexRoles.title": "omo (Codex / LazyCodex) · Modelle der Codex-Agentenrollen",
"integrations.lazycodexRoles.hint": "Wählen Sie das Modell, mit dem Codex jede Agentenrolle ausführt. Beim Speichern ändert sich nur die model-Zeile in der Datei dieser Rolle unter $CODEX_HOME/agents. In omo.jsonc wird die Auswahl für LazyCodex nur übernommen, wenn sich die Datei sicher neu schreiben lässt.",
"integrations.lazycodexRoles.hint": "Wählen Sie Modell und Reasoning-Aufwand, mit denen Codex jede Agentenrolle ausführt. Beim Speichern ändern sich nur die model- und effort-Zeilen in der Datei dieser Rolle unter $CODEX_HOME/agents. In omo.jsonc wird die Auswahl für LazyCodex nur übernommen, wenn sich die Datei sicher neu schreiben lässt.",
"integrations.lazycodexRoles.role": "Rolle",
"integrations.lazycodexRoles.current": "Aktuelles Modell",
"integrations.lazycodexRoles.model": "Neues Modell",
"integrations.lazycodexRoles.modelFor": "Modell für {role}",
"integrations.lazycodexRoles.effort": "Reasoning-Aufwand",
"integrations.lazycodexRoles.effortFor": "Reasoning-Aufwand ({role})",
"integrations.lazycodexRoles.effortDefault": "Übernehmen",
"integrations.lazycodexRoles.none": "Kein Modell festgelegt",
"integrations.lazycodexRoles.choose": "Modell wählen",
"integrations.lazycodexRoles.empty": "Keine Codex-Agentenrollen gefunden.",
Expand Down
Loading
Loading