oh-my-opencode 3.17.5 → 3.17.6

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 (35) hide show
  1. package/README.ja.md +1 -1
  2. package/README.ko.md +1 -1
  3. package/README.md +1 -1
  4. package/README.ru.md +1 -1
  5. package/README.zh-cn.md +1 -1
  6. package/dist/agents/agent-builder.d.ts +2 -3
  7. package/dist/agents/agent-skill-resolution.d.ts +7 -0
  8. package/dist/agents/frontier-tool-schema-guard.d.ts +3 -0
  9. package/dist/agents/hephaestus/agent.d.ts +1 -1
  10. package/dist/agents/hephaestus/gpt-5-5.d.ts +12 -0
  11. package/dist/agents/sisyphus/claude-opus-4-7.d.ts +20 -0
  12. package/dist/agents/sisyphus/gpt-5-5.d.ts +20 -0
  13. package/dist/agents/sisyphus/index.d.ts +5 -0
  14. package/dist/agents/sisyphus/kimi-k2-6.d.ts +32 -0
  15. package/dist/agents/sisyphus-junior/agent.d.ts +1 -1
  16. package/dist/agents/sisyphus-junior/gpt-5-5.d.ts +14 -0
  17. package/dist/agents/sisyphus-junior/index.d.ts +2 -0
  18. package/dist/agents/sisyphus-junior/kimi-k2-6.d.ts +13 -0
  19. package/dist/agents/types.d.ts +17 -1
  20. package/dist/cli/doctor/checks/model-resolution.d.ts +4 -0
  21. package/dist/cli/index.js +132 -79
  22. package/dist/hooks/ralph-loop/ralph-loop-event-handler.d.ts +1 -6
  23. package/dist/hooks/ralph-loop/session-event-handler.d.ts +2 -6
  24. package/dist/hooks/ralph-loop/types.d.ts +5 -0
  25. package/dist/index.js +2576 -372
  26. package/dist/plugin/hooks/create-core-hooks.d.ts +2 -0
  27. package/dist/plugin/hooks/create-session-hooks.d.ts +2 -0
  28. package/dist/shared/agent-display-names.d.ts +7 -2
  29. package/dist/shared/agent-sort-shim.d.ts +28 -0
  30. package/dist/shared/file-reference-resolver.d.ts +1 -0
  31. package/dist/shared/posthog-activity-state.d.ts +5 -2
  32. package/dist/shared/posthog.d.ts +5 -0
  33. package/dist/tools/slashcommand/command-discovery-deps.d.ts +6 -0
  34. package/package.json +12 -12
  35. package/dist/hooks/ralph-loop/loop-session-recovery.d.ts +0 -7
@@ -1,4 +1,5 @@
1
1
  import type { HookName, OhMyOpenCodeConfig } from "../../config";
2
+ import type { BackgroundManager } from "../../features/background-agent";
2
3
  import type { ModelFallbackControllerAccessor } from "../../hooks/model-fallback";
3
4
  import type { PluginContext } from "../types";
4
5
  import type { ModelCacheState } from "../../plugin-state";
@@ -6,6 +7,7 @@ export declare function createCoreHooks(args: {
6
7
  ctx: PluginContext;
7
8
  pluginConfig: OhMyOpenCodeConfig;
8
9
  modelCacheState: ModelCacheState;
10
+ backgroundManager: BackgroundManager;
9
11
  modelFallbackControllerAccessor?: ModelFallbackControllerAccessor;
10
12
  isHookEnabled: (hookName: HookName) => boolean;
11
13
  safeHookEnabled: boolean;
@@ -1,4 +1,5 @@
1
1
  import type { OhMyOpenCodeConfig, HookName } from "../../config";
2
+ import type { BackgroundManager } from "../../features/background-agent";
2
3
  import type { ModelFallbackControllerAccessor } from "../../hooks/model-fallback";
3
4
  import type { ModelCacheState } from "../../plugin-state";
4
5
  import type { PluginContext } from "../types";
@@ -34,6 +35,7 @@ export declare function createSessionHooks(args: {
34
35
  ctx: PluginContext;
35
36
  pluginConfig: OhMyOpenCodeConfig;
36
37
  modelCacheState: ModelCacheState;
38
+ backgroundManager: BackgroundManager;
37
39
  modelFallbackControllerAccessor?: ModelFallbackControllerAccessor;
38
40
  isHookEnabled: (hookName: HookName) => boolean;
39
41
  safeHookEnabled: boolean;
@@ -12,7 +12,6 @@
12
12
  export declare const AGENT_DISPLAY_NAMES: Record<string, string>;
13
13
  export declare function stripInvisibleAgentCharacters(agentName: string): string;
14
14
  export declare function stripAgentListSortPrefix(agentName: string): string;
15
- export declare function getAgentRuntimeName(configKey: string): string;
16
15
  /**
17
16
  * Get display name for an agent config key.
18
17
  * Uses case-insensitive lookup for backward compatibility.
@@ -20,7 +19,13 @@ export declare function getAgentRuntimeName(configKey: string): string;
20
19
  */
21
20
  export declare function getAgentDisplayName(configKey: string): string;
22
21
  /**
23
- * Runtime-facing agent name used for OpenCode list ordering.
22
+ * Thin alias for `getAgentDisplayName` preserved for external imports.
23
+ *
24
+ * Earlier versions injected zero-width prefixes here to bias OpenCode's
25
+ * `agent.name` sort. Sort ordering is now enforced by
26
+ * `src/shared/agent-sort-shim.ts`, so this function emits the canonical
27
+ * display name verbatim. Kept exported because downstream modules still
28
+ * import this symbol; do not collapse the call sites without coordinating.
24
29
  */
25
30
  export declare function getAgentListDisplayName(configKey: string): string;
26
31
  /**
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Agent sort shim.
3
+ *
4
+ * OpenCode 1.4.x ignores the agent `order` field (sst/opencode#19127) and
5
+ * sorts the agent list by `agent.name` via Remeda `sortBy(x => x.name, "asc")`
6
+ * at packages/opencode/src/agent/agent.ts. Without intervention, the four
7
+ * core agents collapse into Atlas -> Hephaestus -> Prometheus -> Sisyphus,
8
+ * which inverts the canonical sisyphus -> hephaestus -> prometheus -> atlas
9
+ * order this project ships.
10
+ *
11
+ * Earlier attempts to bias the sort key with invisible characters (ZWSP,
12
+ * U+2060 WORD JOINER, U+00AD SOFT HYPHEN, ANSI escape) caused visible-gap
13
+ * and column-truncation regressions in the TUI status bar (#3259, #3238).
14
+ *
15
+ * This shim is the narrowly-scoped alternative from PR #3267 with the Cubic
16
+ * P1 mitigations applied:
17
+ * 1. `isAgentArray` rejects any array element that is null, non-object, or
18
+ * lacks a string `name`, eliminating the throw-on-mixed-array failure
19
+ * mode that closed the original PR.
20
+ * 2. The activation predicate requires >= 2 elements whose `.name` is one
21
+ * of the four canonical core display names, so unrelated `.sort()` and
22
+ * `.toSorted()` calls (string arrays, number arrays, generic objects)
23
+ * execute native behavior unchanged.
24
+ *
25
+ * Remove this shim once OpenCode honors the agent `order` field
26
+ * (sst/opencode#19127).
27
+ */
28
+ export declare function installAgentSortShim(): void;
@@ -1 +1,2 @@
1
+ export declare function resolveFilePath(filePath: string, cwd: string): string;
1
2
  export declare function resolveFileReferencesInText(text: string, cwd?: string, depth?: number, maxDepth?: number): Promise<string>;
@@ -1,8 +1,11 @@
1
1
  type PostHogActivityCaptureState = {
2
2
  dayUTC: string;
3
- hourUTC: string;
4
3
  captureDaily: boolean;
5
- captureHourly: boolean;
4
+ };
5
+ type PluginLoadedCaptureState = {
6
+ dayUTC: string;
7
+ capturePluginLoaded: boolean;
6
8
  };
7
9
  export declare function getPostHogActivityCaptureState(now?: Date): PostHogActivityCaptureState;
10
+ export declare function getPluginLoadedCaptureState(now?: Date): PluginLoadedCaptureState;
8
11
  export {};
@@ -1,4 +1,9 @@
1
1
  import { PostHog } from "posthog-node";
2
+ import { getPostHogActivityCaptureState } from "./posthog-activity-state";
3
+ /** @internal test-only */
4
+ export declare function __setActivityStateProviderForTesting(provider: typeof getPostHogActivityCaptureState): void;
5
+ /** @internal test-only */
6
+ export declare function __resetActivityStateProviderForTesting(): void;
2
7
  type PostHogCaptureEvent = Parameters<PostHog["capture"]>[0];
3
8
  type PostHogExceptionProperties = Parameters<PostHog["captureException"]>[2];
4
9
  type PostHogActivityReason = "run_started" | "plugin_loaded";
@@ -0,0 +1,6 @@
1
+ export { EXCLUDED_DIRS } from "../../shared/excluded-dirs";
2
+ export { parseFrontmatter } from "../../shared/frontmatter";
3
+ export { sanitizeModelField } from "../../shared/model-sanitizer";
4
+ export { getOpenCodeCommandDirs } from "../../shared/opencode-command-dirs";
5
+ export { discoverPluginCommandDefinitions } from "../../shared/plugin-command-discovery";
6
+ export { findProjectOpencodeCommandDirs } from "../../shared/project-discovery-dirs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-opencode",
3
- "version": "3.17.5",
3
+ "version": "3.17.6",
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",
@@ -80,17 +80,17 @@
80
80
  "zod": "^4.3.0"
81
81
  },
82
82
  "optionalDependencies": {
83
- "oh-my-opencode-darwin-arm64": "3.17.5",
84
- "oh-my-opencode-darwin-x64": "3.17.5",
85
- "oh-my-opencode-darwin-x64-baseline": "3.17.5",
86
- "oh-my-opencode-linux-arm64": "3.17.5",
87
- "oh-my-opencode-linux-arm64-musl": "3.17.5",
88
- "oh-my-opencode-linux-x64": "3.17.5",
89
- "oh-my-opencode-linux-x64-baseline": "3.17.5",
90
- "oh-my-opencode-linux-x64-musl": "3.17.5",
91
- "oh-my-opencode-linux-x64-musl-baseline": "3.17.5",
92
- "oh-my-opencode-windows-x64": "3.17.5",
93
- "oh-my-opencode-windows-x64-baseline": "3.17.5"
83
+ "oh-my-opencode-darwin-arm64": "3.17.6",
84
+ "oh-my-opencode-darwin-x64": "3.17.6",
85
+ "oh-my-opencode-darwin-x64-baseline": "3.17.6",
86
+ "oh-my-opencode-linux-arm64": "3.17.6",
87
+ "oh-my-opencode-linux-arm64-musl": "3.17.6",
88
+ "oh-my-opencode-linux-x64": "3.17.6",
89
+ "oh-my-opencode-linux-x64-baseline": "3.17.6",
90
+ "oh-my-opencode-linux-x64-musl": "3.17.6",
91
+ "oh-my-opencode-linux-x64-musl-baseline": "3.17.6",
92
+ "oh-my-opencode-windows-x64": "3.17.6",
93
+ "oh-my-opencode-windows-x64-baseline": "3.17.6"
94
94
  },
95
95
  "overrides": {},
96
96
  "trustedDependencies": [
@@ -1,7 +0,0 @@
1
- export declare function createLoopSessionRecovery(options?: {
2
- recoveryWindowMs?: number;
3
- }): {
4
- isRecovering(sessionID: string): boolean;
5
- markRecovering(sessionID: string): void;
6
- clear(sessionID: string): void;
7
- };