No description
  • JavaScript 91.4%
  • Shell 8.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
joe 1508c4a5dc fix: baseURL が /v1 終端でも /v1/models へフォールバック(Ollama の OFFLINE 化を解消)
Ollama は /props を持たず /v1/models のみ応答する。baseURL が /v1 で終わる
プロバイダーではフォールバック URL に baseURL をそのまま使っていたため /v1 を
叩いて 404 となり、モデルが OFFLINE 化していた。

- /v1 終端時は /v1/models を構築するよう修正(末尾スラッシュも正規化)
- else 分岐の到達不能な /v1 判定デッドコードを除去
- Ollama 回帰テスト(テスト13)を追加
2026-09-17 20:37:30 +09:00
.issue-specs fix: DNS解決によるホスト名不一致バグ修正(localhost≡127.0.0.1) 2026-08-07 17:05:11 +09:00
.planning refactor: Phase 1 クリーンアップ — テスト追加 + インデント統一 2026-08-07 18:12:23 +09:00
docs docs: プロジェクトドキュメント整備 2026-08-10 03:16:13 +09:00
plugins fix: baseURL が /v1 終端でも /v1/models へフォールバック(Ollama の OFFLINE 化を解消) 2026-09-17 20:37:30 +09:00
install.sh docs: opencode.jsonc 対応を明記 2026-09-01 10:22:23 +09:00
README.md docs: opencode.jsonc 対応を明記 2026-09-01 10:22:23 +09:00

universal-llm-ctx-auto-update

opencode のプラグイン。各 LLM サーバー(llama.cpp / litellm / llamafile / LM Studio)の /props または /v1/models エンドポイントから n_ctx を自動取得し、opencode.json(c) の models セクションを更新します。

注: このプラグインは opencode 本体がパースした in-memory の設定オブジェクトを config(cfg) フックで受け取って書き換えるため、設定ファイルが opencode.json でも opencode.jsonc でも動作します。ファイル形式のパースは opencode 本体が処理します。

対応プロバイダー

プロバイダー 第1候補 第2候補(フォールバック) デフォルト値
llama.cpp /props → n_ctx + model_alias — —
litellm /props → 同上 /v1/models → モデルID + デフォルトctx 32768
llamafile /props → 同上 /v1/models → モデルID + デフォルトctx 32768
LM Studio /props → 同上 /v1/models → モデルID + デフォルトctx 32768

インストール

方法1: インストールスクリプト(推奨)

git clone ssh://git.cyberius.biz/joe/ctx /tmp/ctx
cd /tmp/ctx && bash install.sh

方法2: 手動インストール

  1. plugins/universal-llm-ctx-auto-update.mjs を ~/.config/opencode/plugins/ にコピー
  2. opencode.json または opencode.jsonc の plugin セクションに以下を追記:
    "./plugins/universal-llm-ctx-auto-update.mjs"
    

動作フロー

  1. opencode 起動時 → プラグインが config(cfg) で全 provider を走査
  2. /props エンドポイント(llama.cpp 系)→ n_ctx + model_alias を直接取得
  3. /v1/models フォールバック(litellm, LM Studio 等)→ モデルID + デフォルト n_ctx(32768)
  4. どちらも応答しなければ → 既存設定を保持(フォールバック安全)

テスト

node --test plugins/universal-llm-ctx-auto-update.test.mjs

依存

  • なし(fetch API のみ使用、Bun ランタイムでネイティブ対応)