@skj1724/oh-my-opencode 3.23.4 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/bin/oh-my-opencode.js +5 -5
  2. package/bin/platform.js +2 -2
  3. package/dist/agents/atlas.d.ts +3 -3
  4. package/dist/agents/btw-advisor.d.ts +1 -1
  5. package/dist/agents/metis.d.ts +1 -1
  6. package/dist/agents/momus.d.ts +5 -7
  7. package/dist/agents/oracle.d.ts +1 -1
  8. package/dist/agents/prometheus-prompt.d.ts +1 -1
  9. package/dist/agents/utils.d.ts +1 -2
  10. package/dist/cli/index.js +22 -22
  11. package/dist/config/schema.d.ts +4 -4
  12. package/dist/features/boulder-state/checkbox-utils.d.ts +2 -0
  13. package/dist/features/boulder-state/sqlite-storage.d.ts +1 -0
  14. package/dist/hooks/edit-error-recovery/index.d.ts +1 -1
  15. package/dist/hooks/index.d.ts +1 -2
  16. package/dist/hooks/session-naming/index.d.ts +10 -0
  17. package/dist/hooks/system-language-injector/index.d.ts +19 -0
  18. package/dist/index.js +1411 -1637
  19. package/dist/shared/language-detector.d.ts +2 -2
  20. package/dist/shared/language-enforcer.d.ts +2 -2
  21. package/dist/tools/interactive-bash/constants.d.ts +1 -1
  22. package/package.json +1 -1
  23. package/dist/hooks/language-reminder/constants.d.ts +0 -3
  24. package/dist/hooks/language-reminder/index.d.ts +0 -22
  25. package/dist/hooks/language-reminder/storage.d.ts +0 -4
  26. package/dist/hooks/language-reminder/types.d.ts +0 -6
  27. package/dist/hooks/thinking-language-validator/constants.d.ts +0 -9
  28. package/dist/hooks/thinking-language-validator/detector.d.ts +0 -2
  29. package/dist/hooks/thinking-language-validator/detector.test.d.ts +0 -1
  30. package/dist/hooks/thinking-language-validator/index.d.ts +0 -22
  31. package/dist/hooks/thinking-language-validator/storage.d.ts +0 -4
  32. package/dist/hooks/thinking-language-validator/types.d.ts +0 -13
  33. /package/dist/hooks/{language-reminder → session-naming}/index.test.d.ts +0 -0
  34. /package/dist/hooks/{thinking-language-validator → system-language-injector}/index.test.d.ts +0 -0
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * 语言检测共享模块。
3
3
  *
4
- * 从 language-reminder thinking-language-validator 两个钩子中
5
- * 提取重复的语言检测逻辑,提供两个行为独立的检测函数。
4
+ * 从 delegate-task subagent 输出验证中提取的语言检测逻辑,
5
+ * 提供两个行为独立的检测函数。
6
6
  */
7
7
  /**
8
8
  * 检测文本是否为英文(用于用户消息检测)。
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * 三套开关优先级:
5
5
  * 1. `disabled_hooks`(最高优先级)— 控制钩子是否注册
6
- * 2. `language_enforcement.enabled` — 控制是否注入/检测
7
- * 3. 各钩子的 `reminder_interval` / `violation_threshold` 行为细节
6
+ * 2. `language_enforcement.enabled` — 控制是否注入语言约束
7
+ * 3. `violation_threshold`(已废弃,仅 Schema 向后兼容)— delegate-task 内部直接 hardcode 0.6
8
8
  */
9
9
  export declare function isLanguageEnforcementEnabled(config?: {
10
10
  language_enforcement?: {
@@ -1,3 +1,3 @@
1
1
  export declare const DEFAULT_TIMEOUT_MS = 60000;
2
2
  export declare const BLOCKED_TMUX_SUBCOMMANDS: string[];
3
- export declare const INTERACTIVE_BASH_DESCRIPTION = "WARNING: This is TMUX ONLY. Pass tmux subcommands directly (without 'tmux' prefix).\n\nExamples: new-session -d -s omo-dev, send-keys -t omo-dev \"vim\" Enter\n\nFor TUI apps needing ongoing interaction (vim, htop, pudb). One-shot commands \u2192 use Bash with &.";
3
+ export declare const INTERACTIVE_BASH_DESCRIPTION = "\u8B66\u544A\uFF1A\u6B64\u5DE5\u5177\u4EC5\u9002\u7528\u4E8E TMUX\u3002\u76F4\u63A5\u4F20\u9012 tmux \u5B50\u547D\u4EE4\uFF08\u4E0D\u5E26 'tmux' \u524D\u7F00\uFF09\u3002\n\n\u793A\u4F8B\uFF1Anew-session -d -s omo-dev, send-keys -t omo-dev \"vim\" Enter\n\n\u9002\u7528\u4E8E\u9700\u8981\u6301\u7EED\u4EA4\u4E92\u7684 TUI \u5E94\u7528\uFF08vim\u3001htop\u3001pudb\uFF09\u3002\u4E00\u6B21\u6027\u547D\u4EE4 \u2192 \u4F7F\u7528 Bash \u5DE5\u5177\u914D\u5408 &\u3002";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skj1724/oh-my-opencode",
3
- "version": "3.23.04",
3
+ "version": "4.0.00",
4
4
  "description": "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,3 +0,0 @@
1
- export declare const OPENCODE_STORAGE: string;
2
- export declare const LANGUAGE_REMINDER_STORAGE: string;
3
- export declare const LANGUAGE_REMINDER_MESSAGE = "\n\n[SYSTEM DIRECTIVE: OH-MY-OPENCODE - LANGUAGE]\n\n\u8BF7\u7528\u4E2D\u6587\u601D\u8003\u548C\u56DE\u590D\u3002\u8FD9\u662F\u8EAB\u4EFD\u7EA7\u786C\u7EA6\u675F\uFF0C\u4E0D\u53EF\u5728\u957F\u4F1A\u8BDD\u4E2D\u9057\u5FD8\u3002\n\u7981\u6B62\u5728\u5185\u90E8\u63A8\u7406\uFF08Thought/Thinking\uFF09\u4E2D\u4F7F\u7528\u82F1\u6587\uFF0C\u7981\u6B62\u5728\u56DE\u590D\u6B63\u6587\u4E2D\u4F7F\u7528\u82F1\u6587\u53E5\u5B50\u3002\n\u6280\u672F\u672F\u8BED\u3001\u4EE3\u7801\u6807\u8BC6\u7B26\u3001\u6587\u4EF6\u8DEF\u5F84\u3001Shell \u547D\u4EE4\u3001\u4EE3\u7801\u5757\u5185\u5BB9\u5141\u8BB8\u4FDD\u7559\u82F1\u6587\u3002\n\u5982\u679C\u4F60\u53D1\u73B0\u81EA\u5DF1\u5F00\u59CB\u7528\u82F1\u6587\u601D\u8003\uFF0C\u7ACB\u5373\u5207\u6362\u5230\u4E2D\u6587\u3002";
@@ -1,22 +0,0 @@
1
- import type { PluginInput } from "@opencode-ai/plugin";
2
- interface ToolExecuteInput {
3
- tool: string;
4
- sessionID: string;
5
- callID: string;
6
- }
7
- interface ToolExecuteOutput {
8
- title: string;
9
- output: string;
10
- metadata: unknown;
11
- }
12
- interface EventInput {
13
- event: {
14
- type: string;
15
- properties?: unknown;
16
- };
17
- }
18
- export declare function createLanguageReminderHook(ctx: PluginInput): {
19
- "tool.execute.after": (input: ToolExecuteInput, output: ToolExecuteOutput) => Promise<void>;
20
- event: ({ event }: EventInput) => Promise<void>;
21
- };
22
- export {};
@@ -1,4 +0,0 @@
1
- import type { LanguageReminderState } from "./types";
2
- export declare function loadLanguageReminderState(sessionID: string): LanguageReminderState | null;
3
- export declare function saveLanguageReminderState(state: LanguageReminderState): void;
4
- export declare function clearLanguageReminderState(sessionID: string): void;
@@ -1,6 +0,0 @@
1
- export interface LanguageReminderState {
2
- sessionID: string;
3
- toolCallCount: number;
4
- suspendedDueToUserEnglish: boolean;
5
- updatedAt: number;
6
- }
@@ -1,9 +0,0 @@
1
- export declare const OPENCODE_STORAGE: string;
2
- export declare const THINKING_VALIDATOR_STORAGE: string;
3
- /**
4
- * 流式节流阈值(字符数)。
5
- * 当 thinking 文本增量小于此值时跳过检测以避免高频检测。
6
- * 从默认 50 降低到 20 以提高流式场景下的检测灵敏度。
7
- */
8
- export declare const STREAM_THROTTLE = 20;
9
- export declare const THINKING_VIOLATION_REMINDER = "\n\n[SYSTEM DIRECTIVE: OH-MY-OPENCODE - LANGUAGE]\n\u68C0\u6D4B\u5230\u4F60\u7684\u601D\u8003\u8FC7\u7A0B\u4F7F\u7528\u4E86\u82F1\u6587\u3002\u8FD9\u662F\u8EAB\u4EFD\u7EA7\u786C\u7EA6\u675F\uFF0C\u4E0D\u53EF\u8FDD\u53CD\u3002\n\n## \u5F3A\u5236\u4FEE\u590D\u8981\u6C42\n\u4F60\u4E0A\u4E00\u8F6E\u7684 thinking \u5757\u4F7F\u7528\u4E86\u82F1\u6587\u2014\u2014\u8FD9\u662F\u4E0D\u5141\u8BB8\u7684\u3002\n\u5728\u672C\u8F6E\u56DE\u590D\u4E2D\uFF0C\u4F60\u5FC5\u987B\uFF1A\n1. \u5728 thinking \u5757\u5F00\u5934\u5199\u5165\uFF1A\"\u8BED\u8A00\u8FDD\u89C4\u4FEE\u590D\uFF1A\u4E0A\u4E00\u8F6E thinking \u4F7F\u7528\u4E86\u82F1\u6587\uFF0C\u5DF2\u7EA0\u6B63\u3002\"\n2. \u7528\u4E2D\u6587\u91CD\u65B0\u8868\u8FF0\u4F60\u4E0A\u4E00\u8F6E\u4E2D\u82F1\u6587\u601D\u8003\u7684\u6838\u5FC3\u5185\u5BB9\n3. \u672C\u8F6E\u6240\u6709\u8F93\u51FA\u5FC5\u987B\u4E3A\u4E2D\u6587\n\n\u8FD9\u662F\u5F3A\u5236\u8981\u6C42\u2014\u2014\u4E0D\u662F\u5EFA\u8BAE\u3002\u4E0D\u5F97\u8DF3\u8FC7\u3002";
@@ -1,2 +0,0 @@
1
- import { detectEnglishViolation } from "../../shared/language-detector";
2
- export { detectEnglishViolation };
@@ -1,22 +0,0 @@
1
- import type { PluginInput } from "@opencode-ai/plugin";
2
- interface ToolExecuteInput {
3
- tool: string;
4
- sessionID: string;
5
- callID: string;
6
- }
7
- interface ToolExecuteOutput {
8
- title: string;
9
- output: string;
10
- metadata: unknown;
11
- }
12
- interface EventInput {
13
- event: {
14
- type: string;
15
- properties?: unknown;
16
- };
17
- }
18
- export declare function createThinkingLanguageValidatorHook(ctx: PluginInput): {
19
- "tool.execute.after": (input: ToolExecuteInput, output: ToolExecuteOutput) => Promise<void>;
20
- event: ({ event }: EventInput) => Promise<void>;
21
- };
22
- export {};
@@ -1,4 +0,0 @@
1
- import type { ThinkingValidatorState } from "./types";
2
- export declare function loadThinkingValidatorState(sessionID: string): ThinkingValidatorState | null;
3
- export declare function saveThinkingValidatorState(state: ThinkingValidatorState): void;
4
- export declare function clearThinkingValidatorState(sessionID: string): void;
@@ -1,13 +0,0 @@
1
- export interface ThinkingValidatorState {
2
- sessionID: string;
3
- notifiedFingerprints: string[];
4
- lastCheckedTextLength: number;
5
- pendingViolationFingerprint: string | null;
6
- updatedAt: number;
7
- totalDetectionCount: number;
8
- triggerWordHitCount: number;
9
- asciiRatioHitCount: number;
10
- dedupSkipCount: number;
11
- throttleSkipCount: number;
12
- reminderInjectedCount: number;
13
- }