oh-my-opencode 2.8.3 → 2.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja.md +20 -5
- package/README.ko.md +17 -6
- package/README.md +20 -6
- package/README.zh-cn.md +20 -5
- package/dist/agents/document-writer.d.ts +2 -0
- package/dist/agents/explore.d.ts +2 -0
- package/dist/agents/frontend-ui-ux-engineer.d.ts +2 -0
- package/dist/agents/index.d.ts +1 -0
- package/dist/agents/librarian.d.ts +2 -0
- package/dist/agents/multimodal-looker.d.ts +2 -0
- package/dist/agents/oracle.d.ts +2 -0
- package/dist/agents/sisyphus-prompt-builder.d.ts +25 -0
- package/dist/agents/sisyphus.d.ts +2 -1
- package/dist/agents/types.d.ts +39 -0
- package/dist/cli/index.js +31 -65
- package/dist/config/schema.d.ts +9 -3
- package/dist/features/builtin-commands/templates/init-deep.d.ts +1 -1
- package/dist/hooks/anthropic-context-window-limit-recovery/index.d.ts +1 -1
- package/dist/hooks/anthropic-context-window-limit-recovery/types.d.ts +0 -9
- package/dist/index.js +724 -688
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/migration.d.ts +11 -0
- package/dist/shared/migration.test.d.ts +1 -0
- package/dist/tools/session-manager/constants.d.ts +1 -0
- package/dist/tools/session-manager/storage.d.ts +5 -1
- package/dist/tools/session-manager/types.d.ts +18 -0
- package/package.json +1 -1
package/README.ja.md
CHANGED
|
@@ -660,6 +660,10 @@ Oh My OpenCode は以下の場所からフックを読み込んで実行しま
|
|
|
660
660
|
- **Empty Message Sanitizer**: 空のチャットメッセージによるAPIエラーを防止します。送信前にメッセージ内容を自動的にサニタイズします。
|
|
661
661
|
- **Grep Output Truncator**: grep は山のようなテキストを返すことがあります。残りのコンテキストウィンドウに応じて動的に出力を切り詰めます—50% の余裕を維持し、最大 50k トークンに制限します。
|
|
662
662
|
- **Tool Output Truncator**: 同じ考え方をより広範囲に適用します。Grep、Glob、LSP ツール、AST-grep の出力を切り詰めます。一度の冗長な検索がコンテキスト全体を食いつぶすのを防ぎます。
|
|
663
|
+
- **Preemptive Compaction**: トークン制限に達する前にセッションを事前にコンパクションします。コンテキストウィンドウ使用率85%で実行されます。**デフォルトで有効。** `disabled_hooks: ["preemptive-compaction"]`で無効化できます。
|
|
664
|
+
- **Compaction Context Injector**: セッションコンパクション中に重要なコンテキスト(AGENTS.md、現在のディレクトリ情報)を保持し、重要な状態を失わないようにします。
|
|
665
|
+
- **Thinking Block Validator**: thinking ブロックを検証し、適切なフォーマットを確保し、不正な thinking コンテンツによる API エラーを防ぎます。
|
|
666
|
+
- **Claude Code Hooks**: Claude Code の settings.json からフックを実行します - これは PreToolUse/PostToolUse/UserPromptSubmit/Stop フックを実行する互換性レイヤーです。
|
|
663
667
|
|
|
664
668
|
## 設定
|
|
665
669
|
|
|
@@ -755,7 +759,19 @@ Oh My OpenCode は以下の場所からフックを読み込んで実行しま
|
|
|
755
759
|
}
|
|
756
760
|
```
|
|
757
761
|
|
|
758
|
-
各エージェントでサポートされるオプション:`model`, `temperature`, `top_p`, `prompt`, `tools`, `disable`, `description`, `mode`, `color`, `permission`。
|
|
762
|
+
各エージェントでサポートされるオプション:`model`, `temperature`, `top_p`, `prompt`, `prompt_append`, `tools`, `disable`, `description`, `mode`, `color`, `permission`。
|
|
763
|
+
|
|
764
|
+
`prompt_append` を使用すると、デフォルトのシステムプロンプトを置き換えずに追加の指示を付け加えられます:
|
|
765
|
+
|
|
766
|
+
```json
|
|
767
|
+
{
|
|
768
|
+
"agents": {
|
|
769
|
+
"librarian": {
|
|
770
|
+
"prompt_append": "Emacs Lisp のドキュメント検索には常に elisp-dev-mcp を使用してください。"
|
|
771
|
+
}
|
|
772
|
+
}
|
|
773
|
+
}
|
|
774
|
+
```
|
|
759
775
|
|
|
760
776
|
`Sisyphus` (メインオーケストレーター) と `build` (デフォルトエージェント) も同じオプションで設定をオーバーライドできます。
|
|
761
777
|
|
|
@@ -874,7 +890,7 @@ Oh My OpenCode は以下の場所からフックを読み込んで実行しま
|
|
|
874
890
|
}
|
|
875
891
|
```
|
|
876
892
|
|
|
877
|
-
利用可能なフック:`todo-continuation-enforcer`, `context-window-monitor`, `session-recovery`, `session-notification`, `comment-checker`, `grep-output-truncator`, `tool-output-truncator`, `directory-agents-injector`, `directory-readme-injector`, `empty-task-response-detector`, `think-mode`, `anthropic-context-window-limit-recovery`, `rules-injector`, `background-notification`, `auto-update-checker`, `startup-toast`, `keyword-detector`, `agent-usage-reminder`, `non-interactive-env`, `interactive-bash-session`, `empty-message-sanitizer`, `compaction-context-injector`, `thinking-block-validator`, `claude-code-hooks`, `ralph-loop`
|
|
893
|
+
利用可能なフック:`todo-continuation-enforcer`, `context-window-monitor`, `session-recovery`, `session-notification`, `comment-checker`, `grep-output-truncator`, `tool-output-truncator`, `directory-agents-injector`, `directory-readme-injector`, `empty-task-response-detector`, `think-mode`, `anthropic-context-window-limit-recovery`, `rules-injector`, `background-notification`, `auto-update-checker`, `startup-toast`, `keyword-detector`, `agent-usage-reminder`, `non-interactive-env`, `interactive-bash-session`, `empty-message-sanitizer`, `compaction-context-injector`, `thinking-block-validator`, `claude-code-hooks`, `ralph-loop`, `preemptive-compaction`
|
|
878
894
|
|
|
879
895
|
**`auto-update-checker`と`startup-toast`について**: `startup-toast` フックは `auto-update-checker` のサブ機能です。アップデートチェックは有効なまま起動トースト通知のみを無効化するには、`disabled_hooks` に `"startup-toast"` を追加してください。すべてのアップデートチェック機能(トーストを含む)を無効化するには、`"auto-update-checker"` を追加してください。
|
|
880
896
|
|
|
@@ -926,7 +942,7 @@ OpenCode でサポートされるすべての LSP 構成およびカスタム設
|
|
|
926
942
|
```json
|
|
927
943
|
{
|
|
928
944
|
"experimental": {
|
|
929
|
-
"
|
|
945
|
+
"preemptive_compaction_threshold": 0.85,
|
|
930
946
|
"truncate_all_tool_outputs": true,
|
|
931
947
|
"aggressive_truncation": true,
|
|
932
948
|
"auto_resume": true
|
|
@@ -936,8 +952,7 @@ OpenCode でサポートされるすべての LSP 構成およびカスタム設
|
|
|
936
952
|
|
|
937
953
|
| オプション | デフォルト | 説明 |
|
|
938
954
|
| --------------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
939
|
-
| `
|
|
940
|
-
| `preemptive_compaction_threshold` | `0.80` | プリエンプティブコンパクションをトリガーする閾値(0.5-0.95)。`preemptive_compaction`が有効な場合のみ適用されます。 |
|
|
955
|
+
| `preemptive_compaction_threshold` | `0.85` | プリエンプティブコンパクションをトリガーする閾値(0.5-0.95)。`preemptive-compaction` フックはデフォルトで有効です。このオプションで閾値をカスタマイズできます。 |
|
|
941
956
|
| `truncate_all_tool_outputs` | `false` | ホワイトリストのツール(Grep、Glob、LSP、AST-grep)だけでなく、すべてのツール出力を切り詰めます。Tool output truncator はデフォルトで有効です - `disabled_hooks`で無効化できます。 |
|
|
942
957
|
| `aggressive_truncation` | `false` | トークン制限を超えた場合、ツール出力を積極的に切り詰めて制限内に収めます。デフォルトの切り詰めより積極的です。不十分な場合は要約/復元にフォールバックします。 |
|
|
943
958
|
| `auto_resume` | `false` | thinking block エラーや thinking disabled violation からの回復成功後、自動的にセッションを再開します。最後のユーザーメッセージを抽出して続行します。 |
|
package/README.ko.md
CHANGED
|
@@ -653,7 +653,7 @@ Oh My OpenCode는 다음 위치의 훅을 읽고 실행합니다:
|
|
|
653
653
|
- **Empty Message Sanitizer**: 빈 채팅 메시지로 인한 API 오류를 방지합니다. 전송 전 메시지 내용을 자동으로 정리합니다.
|
|
654
654
|
- **Grep Output Truncator**: grep은 산더미 같은 텍스트를 반환할 수 있습니다. 남은 컨텍스트 윈도우에 따라 동적으로 출력을 축소합니다—50% 여유 공간 유지, 최대 50k 토큰.
|
|
655
655
|
- **Tool Output Truncator**: 같은 아이디어, 더 넓은 범위. Grep, Glob, LSP 도구, AST-grep의 출력을 축소합니다. 한 번의 장황한 검색이 전체 컨텍스트를 잡아먹는 것을 방지합니다.
|
|
656
|
-
- **선제적 압축 (Preemptive Compaction)**: 세션 토큰 한계에 도달하기 전에 선제적으로 세션을 압축합니다.
|
|
656
|
+
- **선제적 압축 (Preemptive Compaction)**: 세션 토큰 한계에 도달하기 전에 선제적으로 세션을 압축합니다. 컨텍스트 윈도우 사용량 85%에서 실행됩니다. **기본적으로 활성화됨.** `disabled_hooks: ["preemptive-compaction"]`으로 비활성화 가능.
|
|
657
657
|
- **압축 컨텍스트 주입기 (Compaction Context Injector)**: 세션 압축 중에 중요한 컨텍스트(AGENTS.md, 현재 디렉토리 정보 등)를 유지하여 중요한 상태를 잃지 않도록 합니다.
|
|
658
658
|
- **사고 블록 검증기 (Thinking Block Validator)**: 사고(thinking) 블록의 형식이 올바른지 검증하여 잘못된 형식으로 인한 API 오류를 방지합니다.
|
|
659
659
|
- **Claude Code 훅 (Claude Code Hooks)**: Claude Code의 settings.json에 설정된 훅을 실행합니다. PreToolUse/PostToolUse/UserPromptSubmit/Stop 이벤트를 지원하는 호환성 레이어입니다.
|
|
@@ -752,7 +752,19 @@ Schema 자동 완성이 지원됩니다:
|
|
|
752
752
|
}
|
|
753
753
|
```
|
|
754
754
|
|
|
755
|
-
각 에이전트에서 지원하는 옵션: `model`, `temperature`, `top_p`, `prompt`, `tools`, `disable`, `description`, `mode`, `color`, `permission`.
|
|
755
|
+
각 에이전트에서 지원하는 옵션: `model`, `temperature`, `top_p`, `prompt`, `prompt_append`, `tools`, `disable`, `description`, `mode`, `color`, `permission`.
|
|
756
|
+
|
|
757
|
+
`prompt_append`를 사용하면 기본 시스템 프롬프트를 대체하지 않고 추가 지시사항을 덧붙일 수 있습니다:
|
|
758
|
+
|
|
759
|
+
```json
|
|
760
|
+
{
|
|
761
|
+
"agents": {
|
|
762
|
+
"librarian": {
|
|
763
|
+
"prompt_append": "Emacs Lisp 문서 조회 시 항상 elisp-dev-mcp를 사용하세요."
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
```
|
|
756
768
|
|
|
757
769
|
`Sisyphus` (메인 오케스트레이터)와 `build` (기본 에이전트)도 동일한 옵션으로 설정을 오버라이드할 수 있습니다.
|
|
758
770
|
|
|
@@ -871,7 +883,7 @@ Schema 자동 완성이 지원됩니다:
|
|
|
871
883
|
}
|
|
872
884
|
```
|
|
873
885
|
|
|
874
|
-
사용 가능한 훅: `todo-continuation-enforcer`, `context-window-monitor`, `session-recovery`, `session-notification`, `comment-checker`, `grep-output-truncator`, `tool-output-truncator`, `directory-agents-injector`, `directory-readme-injector`, `empty-task-response-detector`, `think-mode`, `anthropic-context-window-limit-recovery`, `rules-injector`, `background-notification`, `auto-update-checker`, `startup-toast`, `keyword-detector`, `agent-usage-reminder`, `non-interactive-env`, `interactive-bash-session`, `empty-message-sanitizer`, `compaction-context-injector`, `thinking-block-validator`, `claude-code-hooks`, `ralph-loop`
|
|
886
|
+
사용 가능한 훅: `todo-continuation-enforcer`, `context-window-monitor`, `session-recovery`, `session-notification`, `comment-checker`, `grep-output-truncator`, `tool-output-truncator`, `directory-agents-injector`, `directory-readme-injector`, `empty-task-response-detector`, `think-mode`, `anthropic-context-window-limit-recovery`, `rules-injector`, `background-notification`, `auto-update-checker`, `startup-toast`, `keyword-detector`, `agent-usage-reminder`, `non-interactive-env`, `interactive-bash-session`, `empty-message-sanitizer`, `compaction-context-injector`, `thinking-block-validator`, `claude-code-hooks`, `ralph-loop`, `preemptive-compaction`
|
|
875
887
|
|
|
876
888
|
**`auto-update-checker`와 `startup-toast`에 대한 참고사항**: `startup-toast` 훅은 `auto-update-checker`의 하위 기능입니다. 업데이트 확인은 유지하면서 시작 토스트 알림만 비활성화하려면 `disabled_hooks`에 `"startup-toast"`를 추가하세요. 모든 업데이트 확인 기능(토스트 포함)을 비활성화하려면 `"auto-update-checker"`를 추가하세요.
|
|
877
889
|
|
|
@@ -923,7 +935,7 @@ OpenCode 에서 지원하는 모든 LSP 구성 및 커스텀 설정 (opencode.js
|
|
|
923
935
|
```json
|
|
924
936
|
{
|
|
925
937
|
"experimental": {
|
|
926
|
-
"
|
|
938
|
+
"preemptive_compaction_threshold": 0.85,
|
|
927
939
|
"truncate_all_tool_outputs": true,
|
|
928
940
|
"aggressive_truncation": true,
|
|
929
941
|
"auto_resume": true
|
|
@@ -933,8 +945,7 @@ OpenCode 에서 지원하는 모든 LSP 구성 및 커스텀 설정 (opencode.js
|
|
|
933
945
|
|
|
934
946
|
| 옵션 | 기본값 | 설명 |
|
|
935
947
|
| --------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
936
|
-
| `
|
|
937
|
-
| `preemptive_compaction_threshold` | `0.80` | 선제적 컴팩션을 트리거할 임계값 비율(0.5-0.95). `preemptive_compaction`이 활성화된 경우에만 적용됩니다. |
|
|
948
|
+
| `preemptive_compaction_threshold` | `0.85` | 선제적 컴팩션을 트리거할 임계값 비율(0.5-0.95). `preemptive-compaction` 훅은 기본적으로 활성화되어 있으며, 이 옵션으로 임계값을 커스터마이즈할 수 있습니다. |
|
|
938
949
|
| `truncate_all_tool_outputs` | `false` | 화이트리스트 도구(Grep, Glob, LSP, AST-grep)만이 아닌 모든 도구 출력을 잘라냅니다. Tool output truncator는 기본적으로 활성화됩니다 - `disabled_hooks`로 비활성화 가능합니다. |
|
|
939
950
|
| `aggressive_truncation` | `false` | 토큰 제한을 초과하면 도구 출력을 공격적으로 잘라내어 제한 내에 맞춥니다. 기본 truncation보다 더 공격적입니다. 부족하면 요약/복구로 fallback합니다. |
|
|
940
951
|
| `auto_resume` | `false` | thinking block 에러나 thinking disabled violation으로부터 성공적으로 복구한 후 자동으로 세션을 재개합니다. 마지막 사용자 메시지를 추출하여 계속합니다. |
|
package/README.md
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
>
|
|
3
3
|
> *"I aim to spark a software revolution by creating a world where agent-generated code is indistinguishable from human code, yet capable of achieving vastly more. I have poured my personal time, passion, and funds into this journey, and I will continue to do so."*
|
|
4
4
|
>
|
|
5
|
+
> [](https://x.com/justsisyphus/status/2006250634354548963)
|
|
6
|
+
> > **The Orchestrator is coming. This Week. [Get notified on X](https://x.com/justsisyphus/status/2006250634354548963)**
|
|
7
|
+
>
|
|
5
8
|
> Be with us!
|
|
6
9
|
>
|
|
7
10
|
> | [<img alt="Discord link" src="https://img.shields.io/discord/1452487457085063218?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=flat-square" width="156px" />](https://discord.gg/PWpXmbhF) | Join our [Discord community](https://discord.gg/PWpXmbhF) to connect with contributors and fellow `oh-my-opencode` users. |
|
|
@@ -692,7 +695,7 @@ When agents thrive, you thrive. But I want to help you directly too.
|
|
|
692
695
|
- **Empty Message Sanitizer**: Prevents API errors from empty chat messages by automatically sanitizing message content before sending.
|
|
693
696
|
- **Grep Output Truncator**: Grep can return mountains of text. This dynamically truncates output based on your remaining context window—keeps 50% headroom, caps at 50k tokens.
|
|
694
697
|
- **Tool Output Truncator**: Same idea, broader scope. Truncates output from Grep, Glob, LSP tools, and AST-grep. Prevents one verbose search from eating your entire context.
|
|
695
|
-
- **Preemptive Compaction**: Compacts session proactively before hitting hard token limits. Runs
|
|
698
|
+
- **Preemptive Compaction**: Compacts session proactively before hitting hard token limits. Runs at 85% context window usage. **Enabled by default.** Disable via `disabled_hooks: ["preemptive-compaction"]`.
|
|
696
699
|
- **Compaction Context Injector**: Preserves critical context (AGENTS.md, current directory info) during session compaction so you don't lose important state.
|
|
697
700
|
- **Thinking Block Validator**: Validates thinking blocks to ensure proper formatting and prevent API errors from malformed thinking content.
|
|
698
701
|
- **Claude Code Hooks**: Executes hooks from Claude Code's settings.json - this is the compatibility layer that runs PreToolUse/PostToolUse/UserPromptSubmit/Stop hooks.
|
|
@@ -791,7 +794,19 @@ Override built-in agent settings:
|
|
|
791
794
|
}
|
|
792
795
|
```
|
|
793
796
|
|
|
794
|
-
Each agent supports: `model`, `temperature`, `top_p`, `prompt`, `tools`, `disable`, `description`, `mode`, `color`, `permission`.
|
|
797
|
+
Each agent supports: `model`, `temperature`, `top_p`, `prompt`, `prompt_append`, `tools`, `disable`, `description`, `mode`, `color`, `permission`.
|
|
798
|
+
|
|
799
|
+
Use `prompt_append` to add extra instructions without replacing the default system prompt:
|
|
800
|
+
|
|
801
|
+
```json
|
|
802
|
+
{
|
|
803
|
+
"agents": {
|
|
804
|
+
"librarian": {
|
|
805
|
+
"prompt_append": "Always use the elisp-dev-mcp for Emacs Lisp documentation lookups."
|
|
806
|
+
}
|
|
807
|
+
}
|
|
808
|
+
}
|
|
809
|
+
```
|
|
795
810
|
|
|
796
811
|
You can also override settings for `Sisyphus` (the main orchestrator) and `build` (the default agent) using the same options.
|
|
797
812
|
|
|
@@ -910,7 +925,7 @@ Disable specific built-in hooks via `disabled_hooks` in `~/.config/opencode/oh-m
|
|
|
910
925
|
}
|
|
911
926
|
```
|
|
912
927
|
|
|
913
|
-
Available hooks: `todo-continuation-enforcer`, `context-window-monitor`, `session-recovery`, `session-notification`, `comment-checker`, `grep-output-truncator`, `tool-output-truncator`, `directory-agents-injector`, `directory-readme-injector`, `empty-task-response-detector`, `think-mode`, `anthropic-context-window-limit-recovery`, `rules-injector`, `background-notification`, `auto-update-checker`, `startup-toast`, `keyword-detector`, `agent-usage-reminder`, `non-interactive-env`, `interactive-bash-session`, `empty-message-sanitizer`, `compaction-context-injector`, `thinking-block-validator`, `claude-code-hooks`, `ralph-loop`
|
|
928
|
+
Available hooks: `todo-continuation-enforcer`, `context-window-monitor`, `session-recovery`, `session-notification`, `comment-checker`, `grep-output-truncator`, `tool-output-truncator`, `directory-agents-injector`, `directory-readme-injector`, `empty-task-response-detector`, `think-mode`, `anthropic-context-window-limit-recovery`, `rules-injector`, `background-notification`, `auto-update-checker`, `startup-toast`, `keyword-detector`, `agent-usage-reminder`, `non-interactive-env`, `interactive-bash-session`, `empty-message-sanitizer`, `compaction-context-injector`, `thinking-block-validator`, `claude-code-hooks`, `ralph-loop`, `preemptive-compaction`
|
|
914
929
|
|
|
915
930
|
**Note on `auto-update-checker` and `startup-toast`**: The `startup-toast` hook is a sub-feature of `auto-update-checker`. To disable only the startup toast notification while keeping update checking enabled, add `"startup-toast"` to `disabled_hooks`. To disable all update checking features (including the toast), add `"auto-update-checker"` to `disabled_hooks`.
|
|
916
931
|
|
|
@@ -962,7 +977,7 @@ Opt-in experimental features that may change or be removed in future versions. U
|
|
|
962
977
|
```json
|
|
963
978
|
{
|
|
964
979
|
"experimental": {
|
|
965
|
-
"
|
|
980
|
+
"preemptive_compaction_threshold": 0.85,
|
|
966
981
|
"truncate_all_tool_outputs": true,
|
|
967
982
|
"aggressive_truncation": true,
|
|
968
983
|
"auto_resume": true
|
|
@@ -972,8 +987,7 @@ Opt-in experimental features that may change or be removed in future versions. U
|
|
|
972
987
|
|
|
973
988
|
| Option | Default | Description |
|
|
974
989
|
| --------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
975
|
-
| `
|
|
976
|
-
| `preemptive_compaction_threshold` | `0.80` | Threshold percentage (0.5-0.95) to trigger preemptive compaction. Only applies when `preemptive_compaction` is enabled. |
|
|
990
|
+
| `preemptive_compaction_threshold` | `0.85` | Threshold percentage (0.5-0.95) to trigger preemptive compaction. The `preemptive-compaction` hook is enabled by default; this option customizes the threshold. |
|
|
977
991
|
| `truncate_all_tool_outputs` | `false` | Truncates ALL tool outputs instead of just whitelisted tools (Grep, Glob, LSP, AST-grep). Tool output truncator is enabled by default - disable via `disabled_hooks`. |
|
|
978
992
|
| `aggressive_truncation` | `false` | When token limit is exceeded, aggressively truncates tool outputs to fit within limits. More aggressive than the default truncation behavior. Falls back to summarize/revert if insufficient. |
|
|
979
993
|
| `auto_resume` | `false` | Automatically resumes session after successful recovery from thinking block errors or thinking disabled violations. Extracts the last user message and continues. |
|
package/README.zh-cn.md
CHANGED
|
@@ -664,6 +664,10 @@ Agent 爽了,你自然也爽。但我还想直接让你爽。
|
|
|
664
664
|
- **空消息清理器**:防止发空消息导致 API 报错。发出去之前自动打扫干净。
|
|
665
665
|
- **Grep 输出截断器**:grep 结果太多?根据剩余窗口动态截断——留 50% 空间,顶天 50k token。
|
|
666
666
|
- **工具输出截断器**:Grep、Glob、LSP、AST-grep 统统管上。防止一次无脑搜索把上下文撑爆。
|
|
667
|
+
- **预防性压缩 (Preemptive Compaction)**:在达到 token 限制之前主动压缩会话。在上下文窗口使用率 85% 时运行。**默认启用。** 通过 `disabled_hooks: ["preemptive-compaction"]` 禁用。
|
|
668
|
+
- **压缩上下文注入器**:会话压缩时保留关键上下文(AGENTS.md、当前目录信息),防止丢失重要状态。
|
|
669
|
+
- **思考块验证器**:验证 thinking block 以确保格式正确,防止因格式错误的 thinking 内容而导致 API 错误。
|
|
670
|
+
- **Claude Code Hooks**:执行 Claude Code settings.json 中的 hooks - 这是运行 PreToolUse/PostToolUse/UserPromptSubmit/Stop hooks 的兼容层。
|
|
667
671
|
|
|
668
672
|
## 配置
|
|
669
673
|
|
|
@@ -759,7 +763,19 @@ Agent 爽了,你自然也爽。但我还想直接让你爽。
|
|
|
759
763
|
}
|
|
760
764
|
```
|
|
761
765
|
|
|
762
|
-
每个 Agent 能改这些:`model`、`temperature`、`top_p`、`prompt`、`tools`、`disable`、`description`、`mode`、`color`、`permission`。
|
|
766
|
+
每个 Agent 能改这些:`model`、`temperature`、`top_p`、`prompt`、`prompt_append`、`tools`、`disable`、`description`、`mode`、`color`、`permission`。
|
|
767
|
+
|
|
768
|
+
用 `prompt_append` 可以在默认系统提示后面追加额外指令,不用替换整个提示:
|
|
769
|
+
|
|
770
|
+
```json
|
|
771
|
+
{
|
|
772
|
+
"agents": {
|
|
773
|
+
"librarian": {
|
|
774
|
+
"prompt_append": "查 Emacs Lisp 文档时用 elisp-dev-mcp。"
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
}
|
|
778
|
+
```
|
|
763
779
|
|
|
764
780
|
`Sisyphus`(主编排器)和 `build`(默认 Agent)也能改。
|
|
765
781
|
|
|
@@ -878,7 +894,7 @@ Sisyphus Agent 也能自定义:
|
|
|
878
894
|
}
|
|
879
895
|
```
|
|
880
896
|
|
|
881
|
-
可关的 hook:`todo-continuation-enforcer`、`context-window-monitor`、`session-recovery`、`session-notification`、`comment-checker`、`grep-output-truncator`、`tool-output-truncator`、`directory-agents-injector`、`directory-readme-injector`、`empty-task-response-detector`、`think-mode`、`anthropic-context-window-limit-recovery`、`rules-injector`、`background-notification`、`auto-update-checker`、`startup-toast`、`keyword-detector`、`agent-usage-reminder`、`non-interactive-env`、`interactive-bash-session`、`empty-message-sanitizer`、`compaction-context-injector`、`thinking-block-validator`、`claude-code-hooks`、`ralph-loop`
|
|
897
|
+
可关的 hook:`todo-continuation-enforcer`、`context-window-monitor`、`session-recovery`、`session-notification`、`comment-checker`、`grep-output-truncator`、`tool-output-truncator`、`directory-agents-injector`、`directory-readme-injector`、`empty-task-response-detector`、`think-mode`、`anthropic-context-window-limit-recovery`、`rules-injector`、`background-notification`、`auto-update-checker`、`startup-toast`、`keyword-detector`、`agent-usage-reminder`、`non-interactive-env`、`interactive-bash-session`、`empty-message-sanitizer`、`compaction-context-injector`、`thinking-block-validator`、`claude-code-hooks`、`ralph-loop`、`preemptive-compaction`
|
|
882
898
|
|
|
883
899
|
**关于 `auto-update-checker` 和 `startup-toast`**: `startup-toast` hook 是 `auto-update-checker` 的子功能。若想保持更新检查但只禁用启动提示通知,在 `disabled_hooks` 中添加 `"startup-toast"`。若要禁用所有更新检查功能(包括提示),添加 `"auto-update-checker"`。
|
|
884
900
|
|
|
@@ -930,7 +946,7 @@ Oh My OpenCode 送你重构工具(重命名、代码操作)。
|
|
|
930
946
|
```json
|
|
931
947
|
{
|
|
932
948
|
"experimental": {
|
|
933
|
-
"
|
|
949
|
+
"preemptive_compaction_threshold": 0.85,
|
|
934
950
|
"truncate_all_tool_outputs": true,
|
|
935
951
|
"aggressive_truncation": true,
|
|
936
952
|
"auto_resume": true
|
|
@@ -940,8 +956,7 @@ Oh My OpenCode 送你重构工具(重命名、代码操作)。
|
|
|
940
956
|
|
|
941
957
|
| 选项 | 默认值 | 说明 |
|
|
942
958
|
| --------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
943
|
-
| `
|
|
944
|
-
| `preemptive_compaction_threshold` | `0.80` | 触发预先压缩的阈值比例(0.5-0.95)。仅在 `preemptive_compaction` 启用时生效。 |
|
|
959
|
+
| `preemptive_compaction_threshold` | `0.85` | 触发预防性压缩的阈值比例(0.5-0.95)。`preemptive-compaction` 钩子默认启用;此选项用于自定义阈值。 |
|
|
945
960
|
| `truncate_all_tool_outputs` | `false` | 截断所有工具输出,而不仅仅是白名单工具(Grep、Glob、LSP、AST-grep)。Tool output truncator 默认启用 - 使用 `disabled_hooks` 禁用。 |
|
|
946
961
|
| `aggressive_truncation` | `false` | 超出 token 限制时,激进地截断工具输出以适应限制。比默认截断更激进。不够的话会回退到摘要/恢复。 |
|
|
947
962
|
| `auto_resume` | `false` | 从 thinking block 错误或 thinking disabled violation 成功恢复后,自动恢复会话。提取最后一条用户消息继续执行。 |
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { AgentConfig } from "@opencode-ai/sdk";
|
|
2
|
+
import type { AgentPromptMetadata } from "./types";
|
|
3
|
+
export declare const DOCUMENT_WRITER_PROMPT_METADATA: AgentPromptMetadata;
|
|
2
4
|
export declare function createDocumentWriterAgent(model?: string): AgentConfig;
|
|
3
5
|
export declare const documentWriterAgent: AgentConfig;
|
package/dist/agents/explore.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { AgentConfig } from "@opencode-ai/sdk";
|
|
2
|
+
import type { AgentPromptMetadata } from "./types";
|
|
3
|
+
export declare const EXPLORE_PROMPT_METADATA: AgentPromptMetadata;
|
|
2
4
|
export declare function createExploreAgent(model?: string): AgentConfig;
|
|
3
5
|
export declare const exploreAgent: AgentConfig;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { AgentConfig } from "@opencode-ai/sdk";
|
|
2
|
+
import type { AgentPromptMetadata } from "./types";
|
|
3
|
+
export declare const FRONTEND_PROMPT_METADATA: AgentPromptMetadata;
|
|
2
4
|
export declare function createFrontendUiUxEngineerAgent(model?: string): AgentConfig;
|
|
3
5
|
export declare const frontendUiUxEngineerAgent: AgentConfig;
|
package/dist/agents/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { AgentConfig } from "@opencode-ai/sdk";
|
|
2
|
+
import type { AgentPromptMetadata } from "./types";
|
|
3
|
+
export declare const LIBRARIAN_PROMPT_METADATA: AgentPromptMetadata;
|
|
2
4
|
export declare function createLibrarianAgent(model?: string): AgentConfig;
|
|
3
5
|
export declare const librarianAgent: AgentConfig;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { AgentConfig } from "@opencode-ai/sdk";
|
|
2
|
+
import type { AgentPromptMetadata } from "./types";
|
|
3
|
+
export declare const MULTIMODAL_LOOKER_PROMPT_METADATA: AgentPromptMetadata;
|
|
2
4
|
export declare function createMultimodalLookerAgent(model?: string): AgentConfig;
|
|
3
5
|
export declare const multimodalLookerAgent: AgentConfig;
|
package/dist/agents/oracle.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { AgentConfig } from "@opencode-ai/sdk";
|
|
2
|
+
import type { AgentPromptMetadata } from "./types";
|
|
3
|
+
export declare const ORACLE_PROMPT_METADATA: AgentPromptMetadata;
|
|
2
4
|
export declare function createOracleAgent(model?: string): AgentConfig;
|
|
3
5
|
export declare const oracleAgent: AgentConfig;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { AgentPromptMetadata, BuiltinAgentName } from "./types";
|
|
2
|
+
export interface AvailableAgent {
|
|
3
|
+
name: BuiltinAgentName;
|
|
4
|
+
description: string;
|
|
5
|
+
metadata: AgentPromptMetadata;
|
|
6
|
+
}
|
|
7
|
+
export interface AvailableTool {
|
|
8
|
+
name: string;
|
|
9
|
+
category: "lsp" | "ast" | "search" | "session" | "command" | "other";
|
|
10
|
+
}
|
|
11
|
+
export interface AvailableSkill {
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
location: "user" | "project" | "plugin";
|
|
15
|
+
}
|
|
16
|
+
export declare function categorizeTools(toolNames: string[]): AvailableTool[];
|
|
17
|
+
export declare function buildKeyTriggersSection(agents: AvailableAgent[], skills?: AvailableSkill[]): string;
|
|
18
|
+
export declare function buildToolSelectionTable(agents: AvailableAgent[], tools?: AvailableTool[], skills?: AvailableSkill[]): string;
|
|
19
|
+
export declare function buildExploreSection(agents: AvailableAgent[]): string;
|
|
20
|
+
export declare function buildLibrarianSection(agents: AvailableAgent[]): string;
|
|
21
|
+
export declare function buildDelegationTable(agents: AvailableAgent[]): string;
|
|
22
|
+
export declare function buildFrontendSection(agents: AvailableAgent[]): string;
|
|
23
|
+
export declare function buildOracleSection(agents: AvailableAgent[]): string;
|
|
24
|
+
export declare function buildHardBlocksSection(agents: AvailableAgent[]): string;
|
|
25
|
+
export declare function buildAntiPatternsSection(agents: AvailableAgent[]): string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { AgentConfig } from "@opencode-ai/sdk";
|
|
2
|
-
|
|
2
|
+
import type { AvailableAgent, AvailableSkill } from "./sisyphus-prompt-builder";
|
|
3
|
+
export declare function createSisyphusAgent(model?: string, availableAgents?: AvailableAgent[], availableToolNames?: string[], availableSkills?: AvailableSkill[]): AgentConfig;
|
|
3
4
|
export declare const sisyphusAgent: AgentConfig;
|
package/dist/agents/types.d.ts
CHANGED
|
@@ -1,5 +1,44 @@
|
|
|
1
1
|
import type { AgentConfig } from "@opencode-ai/sdk";
|
|
2
2
|
export type AgentFactory = (model?: string) => AgentConfig;
|
|
3
|
+
/**
|
|
4
|
+
* Agent category for grouping in Sisyphus prompt sections
|
|
5
|
+
*/
|
|
6
|
+
export type AgentCategory = "exploration" | "specialist" | "advisor" | "utility";
|
|
7
|
+
/**
|
|
8
|
+
* Cost classification for Tool Selection table
|
|
9
|
+
*/
|
|
10
|
+
export type AgentCost = "FREE" | "CHEAP" | "EXPENSIVE";
|
|
11
|
+
/**
|
|
12
|
+
* Delegation trigger for Sisyphus prompt's Delegation Table
|
|
13
|
+
*/
|
|
14
|
+
export interface DelegationTrigger {
|
|
15
|
+
/** Domain of work (e.g., "Frontend UI/UX") */
|
|
16
|
+
domain: string;
|
|
17
|
+
/** When to delegate (e.g., "Visual changes only...") */
|
|
18
|
+
trigger: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Metadata for generating Sisyphus prompt sections dynamically
|
|
22
|
+
* This allows adding/removing agents without manually updating the Sisyphus prompt
|
|
23
|
+
*/
|
|
24
|
+
export interface AgentPromptMetadata {
|
|
25
|
+
/** Category for grouping in prompt sections */
|
|
26
|
+
category: AgentCategory;
|
|
27
|
+
/** Cost classification for Tool Selection table */
|
|
28
|
+
cost: AgentCost;
|
|
29
|
+
/** Domain triggers for Delegation Table */
|
|
30
|
+
triggers: DelegationTrigger[];
|
|
31
|
+
/** When to use this agent (for detailed sections) */
|
|
32
|
+
useWhen?: string[];
|
|
33
|
+
/** When NOT to use this agent */
|
|
34
|
+
avoidWhen?: string[];
|
|
35
|
+
/** Optional dedicated prompt section (markdown) - for agents like Oracle that have special sections */
|
|
36
|
+
dedicatedSection?: string;
|
|
37
|
+
/** Nickname/alias used in prompt (e.g., "Oracle" instead of "oracle") */
|
|
38
|
+
promptAlias?: string;
|
|
39
|
+
/** Key triggers that should appear in Phase 0 (e.g., "External library mentioned → fire librarian") */
|
|
40
|
+
keyTrigger?: string;
|
|
41
|
+
}
|
|
3
42
|
export declare function isGptModel(model: string): boolean;
|
|
4
43
|
export type BuiltinAgentName = "Sisyphus" | "oracle" | "librarian" | "explore" | "frontend-ui-ux-engineer" | "document-writer" | "multimodal-looker";
|
|
5
44
|
export type OverridableAgentName = "build" | BuiltinAgentName;
|
package/dist/cli/index.js
CHANGED
|
@@ -2657,7 +2657,7 @@ var require_napi = __commonJS((exports, module) => {
|
|
|
2657
2657
|
var require_package = __commonJS((exports, module) => {
|
|
2658
2658
|
module.exports = {
|
|
2659
2659
|
name: "oh-my-opencode",
|
|
2660
|
-
version: "2.
|
|
2660
|
+
version: "2.9.0",
|
|
2661
2661
|
description: "OpenCode plugin - custom agents (oracle, librarian) and enhanced features",
|
|
2662
2662
|
main: "dist/index.js",
|
|
2663
2663
|
types: "dist/index.d.ts",
|
|
@@ -19875,7 +19875,10 @@ var HookNameSchema = exports_external.enum([
|
|
|
19875
19875
|
"interactive-bash-session",
|
|
19876
19876
|
"empty-message-sanitizer",
|
|
19877
19877
|
"thinking-block-validator",
|
|
19878
|
-
"ralph-loop"
|
|
19878
|
+
"ralph-loop",
|
|
19879
|
+
"preemptive-compaction",
|
|
19880
|
+
"compaction-context-injector",
|
|
19881
|
+
"claude-code-hooks"
|
|
19879
19882
|
]);
|
|
19880
19883
|
var BuiltinCommandNameSchema = exports_external.enum([
|
|
19881
19884
|
"init-deep"
|
|
@@ -20536,63 +20539,6 @@ function getMcpCheckDefinitions() {
|
|
|
20536
20539
|
}
|
|
20537
20540
|
|
|
20538
20541
|
// src/cli/doctor/checks/version.ts
|
|
20539
|
-
import { existsSync as existsSync8, readFileSync as readFileSync8 } from "fs";
|
|
20540
|
-
import { homedir as homedir7 } from "os";
|
|
20541
|
-
import { join as join9 } from "path";
|
|
20542
|
-
var OPENCODE_CONFIG_DIR4 = join9(homedir7(), ".config", "opencode");
|
|
20543
|
-
var OPENCODE_PACKAGE_JSON2 = join9(OPENCODE_CONFIG_DIR4, "package.json");
|
|
20544
|
-
var OPENCODE_JSON4 = join9(OPENCODE_CONFIG_DIR4, "opencode.json");
|
|
20545
|
-
var OPENCODE_JSONC4 = join9(OPENCODE_CONFIG_DIR4, "opencode.jsonc");
|
|
20546
|
-
async function fetchLatestVersion2() {
|
|
20547
|
-
try {
|
|
20548
|
-
const res = await fetch(`https://registry.npmjs.org/${PACKAGE_NAME2}/latest`, {
|
|
20549
|
-
signal: AbortSignal.timeout(5000)
|
|
20550
|
-
});
|
|
20551
|
-
if (!res.ok)
|
|
20552
|
-
return null;
|
|
20553
|
-
const data = await res.json();
|
|
20554
|
-
return data.version;
|
|
20555
|
-
} catch {
|
|
20556
|
-
return null;
|
|
20557
|
-
}
|
|
20558
|
-
}
|
|
20559
|
-
function getCurrentVersion() {
|
|
20560
|
-
const configPath = existsSync8(OPENCODE_JSONC4) ? OPENCODE_JSONC4 : OPENCODE_JSON4;
|
|
20561
|
-
if (!existsSync8(configPath)) {
|
|
20562
|
-
return { version: null, isLocalDev: false, isPinned: false, pinnedVersion: null };
|
|
20563
|
-
}
|
|
20564
|
-
try {
|
|
20565
|
-
const content = readFileSync8(configPath, "utf-8");
|
|
20566
|
-
const config2 = parseJsonc(content);
|
|
20567
|
-
const plugins = config2.plugin ?? [];
|
|
20568
|
-
for (const plugin of plugins) {
|
|
20569
|
-
if (plugin.startsWith("file:") && plugin.includes(PACKAGE_NAME2)) {
|
|
20570
|
-
return { version: "local-dev", isLocalDev: true, isPinned: false, pinnedVersion: null };
|
|
20571
|
-
}
|
|
20572
|
-
if (plugin.startsWith(`${PACKAGE_NAME2}@`)) {
|
|
20573
|
-
const pinnedVersion = plugin.split("@")[1];
|
|
20574
|
-
return { version: pinnedVersion, isLocalDev: false, isPinned: true, pinnedVersion };
|
|
20575
|
-
}
|
|
20576
|
-
if (plugin === PACKAGE_NAME2) {
|
|
20577
|
-
if (existsSync8(OPENCODE_PACKAGE_JSON2)) {
|
|
20578
|
-
try {
|
|
20579
|
-
const pkgContent = readFileSync8(OPENCODE_PACKAGE_JSON2, "utf-8");
|
|
20580
|
-
const pkg = JSON.parse(pkgContent);
|
|
20581
|
-
const depVersion = pkg.dependencies?.[PACKAGE_NAME2];
|
|
20582
|
-
if (depVersion) {
|
|
20583
|
-
const cleanVersion = depVersion.replace(/^[\^~]/, "");
|
|
20584
|
-
return { version: cleanVersion, isLocalDev: false, isPinned: false, pinnedVersion: null };
|
|
20585
|
-
}
|
|
20586
|
-
} catch {}
|
|
20587
|
-
}
|
|
20588
|
-
return { version: null, isLocalDev: false, isPinned: false, pinnedVersion: null };
|
|
20589
|
-
}
|
|
20590
|
-
}
|
|
20591
|
-
return { version: null, isLocalDev: false, isPinned: false, pinnedVersion: null };
|
|
20592
|
-
} catch {
|
|
20593
|
-
return { version: null, isLocalDev: false, isPinned: false, pinnedVersion: null };
|
|
20594
|
-
}
|
|
20595
|
-
}
|
|
20596
20542
|
function compareVersions2(current, latest) {
|
|
20597
20543
|
const parseVersion = (v) => {
|
|
20598
20544
|
const cleaned = v.replace(/^v/, "").split("-")[0];
|
|
@@ -20611,15 +20557,35 @@ function compareVersions2(current, latest) {
|
|
|
20611
20557
|
return true;
|
|
20612
20558
|
}
|
|
20613
20559
|
async function getVersionInfo() {
|
|
20614
|
-
const
|
|
20615
|
-
|
|
20616
|
-
|
|
20560
|
+
const cwd = process.cwd();
|
|
20561
|
+
if (isLocalDevMode(cwd)) {
|
|
20562
|
+
return {
|
|
20563
|
+
currentVersion: "local-dev",
|
|
20564
|
+
latestVersion: null,
|
|
20565
|
+
isUpToDate: true,
|
|
20566
|
+
isLocalDev: true,
|
|
20567
|
+
isPinned: false
|
|
20568
|
+
};
|
|
20569
|
+
}
|
|
20570
|
+
const pluginInfo = findPluginEntry(cwd);
|
|
20571
|
+
if (pluginInfo?.isPinned) {
|
|
20572
|
+
return {
|
|
20573
|
+
currentVersion: pluginInfo.pinnedVersion,
|
|
20574
|
+
latestVersion: null,
|
|
20575
|
+
isUpToDate: true,
|
|
20576
|
+
isLocalDev: false,
|
|
20577
|
+
isPinned: true
|
|
20578
|
+
};
|
|
20579
|
+
}
|
|
20580
|
+
const currentVersion = getCachedVersion();
|
|
20581
|
+
const latestVersion = await getLatestVersion();
|
|
20582
|
+
const isUpToDate = !currentVersion || !latestVersion || compareVersions2(currentVersion, latestVersion);
|
|
20617
20583
|
return {
|
|
20618
|
-
currentVersion
|
|
20584
|
+
currentVersion,
|
|
20619
20585
|
latestVersion,
|
|
20620
20586
|
isUpToDate,
|
|
20621
|
-
isLocalDev:
|
|
20622
|
-
isPinned:
|
|
20587
|
+
isLocalDev: false,
|
|
20588
|
+
isPinned: false
|
|
20623
20589
|
};
|
|
20624
20590
|
}
|
|
20625
20591
|
async function checkVersionStatus() {
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -18,8 +18,8 @@ export declare const OverridableAgentNameSchema: z.ZodEnum<{
|
|
|
18
18
|
"multimodal-looker": "multimodal-looker";
|
|
19
19
|
build: "build";
|
|
20
20
|
plan: "plan";
|
|
21
|
-
"OpenCode-Builder": "OpenCode-Builder";
|
|
22
21
|
"Planner-Sisyphus": "Planner-Sisyphus";
|
|
22
|
+
"OpenCode-Builder": "OpenCode-Builder";
|
|
23
23
|
}>;
|
|
24
24
|
export declare const AgentNameSchema: z.ZodEnum<{
|
|
25
25
|
Sisyphus: "Sisyphus";
|
|
@@ -31,6 +31,7 @@ export declare const AgentNameSchema: z.ZodEnum<{
|
|
|
31
31
|
"multimodal-looker": "multimodal-looker";
|
|
32
32
|
}>;
|
|
33
33
|
export declare const HookNameSchema: z.ZodEnum<{
|
|
34
|
+
"anthropic-context-window-limit-recovery": "anthropic-context-window-limit-recovery";
|
|
34
35
|
"todo-continuation-enforcer": "todo-continuation-enforcer";
|
|
35
36
|
"context-window-monitor": "context-window-monitor";
|
|
36
37
|
"session-recovery": "session-recovery";
|
|
@@ -42,7 +43,6 @@ export declare const HookNameSchema: z.ZodEnum<{
|
|
|
42
43
|
"directory-readme-injector": "directory-readme-injector";
|
|
43
44
|
"empty-task-response-detector": "empty-task-response-detector";
|
|
44
45
|
"think-mode": "think-mode";
|
|
45
|
-
"anthropic-context-window-limit-recovery": "anthropic-context-window-limit-recovery";
|
|
46
46
|
"rules-injector": "rules-injector";
|
|
47
47
|
"background-notification": "background-notification";
|
|
48
48
|
"auto-update-checker": "auto-update-checker";
|
|
@@ -54,6 +54,9 @@ export declare const HookNameSchema: z.ZodEnum<{
|
|
|
54
54
|
"empty-message-sanitizer": "empty-message-sanitizer";
|
|
55
55
|
"thinking-block-validator": "thinking-block-validator";
|
|
56
56
|
"ralph-loop": "ralph-loop";
|
|
57
|
+
"preemptive-compaction": "preemptive-compaction";
|
|
58
|
+
"compaction-context-injector": "compaction-context-injector";
|
|
59
|
+
"claude-code-hooks": "claude-code-hooks";
|
|
57
60
|
}>;
|
|
58
61
|
export declare const BuiltinCommandNameSchema: z.ZodEnum<{
|
|
59
62
|
"init-deep": "init-deep";
|
|
@@ -779,6 +782,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
|
|
|
779
782
|
"multimodal-looker": "multimodal-looker";
|
|
780
783
|
}>>>;
|
|
781
784
|
disabled_hooks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
785
|
+
"anthropic-context-window-limit-recovery": "anthropic-context-window-limit-recovery";
|
|
782
786
|
"todo-continuation-enforcer": "todo-continuation-enforcer";
|
|
783
787
|
"context-window-monitor": "context-window-monitor";
|
|
784
788
|
"session-recovery": "session-recovery";
|
|
@@ -790,7 +794,6 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
|
|
|
790
794
|
"directory-readme-injector": "directory-readme-injector";
|
|
791
795
|
"empty-task-response-detector": "empty-task-response-detector";
|
|
792
796
|
"think-mode": "think-mode";
|
|
793
|
-
"anthropic-context-window-limit-recovery": "anthropic-context-window-limit-recovery";
|
|
794
797
|
"rules-injector": "rules-injector";
|
|
795
798
|
"background-notification": "background-notification";
|
|
796
799
|
"auto-update-checker": "auto-update-checker";
|
|
@@ -802,6 +805,9 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
|
|
|
802
805
|
"empty-message-sanitizer": "empty-message-sanitizer";
|
|
803
806
|
"thinking-block-validator": "thinking-block-validator";
|
|
804
807
|
"ralph-loop": "ralph-loop";
|
|
808
|
+
"preemptive-compaction": "preemptive-compaction";
|
|
809
|
+
"compaction-context-injector": "compaction-context-injector";
|
|
810
|
+
"claude-code-hooks": "claude-code-hooks";
|
|
805
811
|
}>>>;
|
|
806
812
|
disabled_commands: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
807
813
|
"init-deep": "init-deep";
|