oh-my-opencode 2.13.2 → 2.14.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.
- package/README.ja.md +1 -0
- package/README.md +6 -3
- package/README.zh-cn.md +1 -0
- package/dist/cli/index.js +9 -3
- package/dist/config/schema.d.ts +12 -1
- package/dist/features/background-agent/concurrency.d.ts +10 -0
- package/dist/features/background-agent/concurrency.test.d.ts +1 -0
- package/dist/features/background-agent/index.d.ts +1 -0
- package/dist/features/background-agent/manager.d.ts +3 -1
- package/dist/features/background-agent/types.d.ts +1 -0
- package/dist/hooks/auto-slash-command/executor.d.ts +5 -1
- package/dist/hooks/auto-slash-command/index.d.ts +5 -1
- package/dist/hooks/keyword-detector/index.test.d.ts +1 -0
- package/dist/index.js +234 -86
- package/dist/mcp/types.d.ts +1 -0
- package/dist/mcp/websearch.d.ts +5 -0
- package/dist/tools/slashcommand/types.d.ts +2 -1
- package/package.json +1 -1
- package/README.ko.md +0 -1040
package/README.ja.md
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
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/PUwSMR9XNk) | [Discordコミュニティ](https://discord.gg/PUwSMR9XNk)に参加して、コントリビューターや`oh-my-opencode`仲間とつながりましょう。 |
|
|
11
11
|
> | :-----| :----- |
|
|
12
12
|
> | [<img alt="X link" src="https://img.shields.io/badge/Follow-%40justsisyphus-00CED1?style=flat-square&logo=x&labelColor=black" width="156px" />](https://x.com/justsisyphus) | `oh-my-opencode`に関するニュースは私のXアカウントで投稿していましたが、無実の罪で凍結されたため、<br />[@justsisyphus](https://x.com/justsisyphus)が代わりに更新を投稿しています。 |
|
|
13
|
+
> | [<img alt="GitHub Follow" src="https://img.shields.io/github/followers/code-yeongyu?style=flat-square&logo=github&labelColor=black&color=24292f" width="156px" />](https://github.com/code-yeongyu) | GitHubで[@code-yeongyu](https://github.com/code-yeongyu)をフォローして、他のプロジェクトもチェックしてください。 |
|
|
13
14
|
|
|
14
15
|
<!-- <CENTERED SECTION FOR GITHUB DISPLAY> -->
|
|
15
16
|
|
package/README.md
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
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/PUwSMR9XNk) | Join our [Discord community](https://discord.gg/PUwSMR9XNk) to connect with contributors and fellow `oh-my-opencode` users. |
|
|
11
11
|
> | :-----| :----- |
|
|
12
12
|
> | [<img alt="X link" src="https://img.shields.io/badge/Follow-%40justsisyphus-00CED1?style=flat-square&logo=x&labelColor=black" width="156px" />](https://x.com/justsisyphus) | News and updates for `oh-my-opencode` used to be posted on my X account. <br /> Since it was suspended mistakenly, [@justsisyphus](https://x.com/justsisyphus) now posts updates on my behalf. |
|
|
13
|
+
> | [<img alt="GitHub Follow" src="https://img.shields.io/github/followers/code-yeongyu?style=flat-square&logo=github&labelColor=black&color=24292f" width="156px" />](https://github.com/code-yeongyu) | Follow [@code-yeongyu](https://github.com/code-yeongyu) on GitHub for more projects. |
|
|
13
14
|
|
|
14
15
|
<!-- <CENTERED SECTION FOR GITHUB DISPLAY> -->
|
|
15
16
|
|
|
@@ -41,7 +42,7 @@ No stupid token consumption massive subagents here. No bloat tools here.
|
|
|
41
42
|
[](https://github.com/code-yeongyu/oh-my-opencode/issues)
|
|
42
43
|
[](https://github.com/code-yeongyu/oh-my-opencode/blob/master/LICENSE.md)
|
|
43
44
|
|
|
44
|
-
[English](README.md) | [
|
|
45
|
+
[English](README.md) | [日本語](README.ja.md) | [简体中文](README.zh-cn.md)
|
|
45
46
|
|
|
46
47
|
</div>
|
|
47
48
|
|
|
@@ -582,6 +583,7 @@ These tools enable agents to reference previous conversations and maintain conti
|
|
|
582
583
|
- Use camelCase for function names
|
|
583
584
|
```
|
|
584
585
|
- **Online**: Project rules aren't everything. Built-in MCPs for extended capabilities:
|
|
586
|
+
- **websearch**: Real-time web search powered by [Exa AI](https://exa.ai)
|
|
585
587
|
- **context7**: Official documentation lookup
|
|
586
588
|
- **grep_app**: Ultra-fast code search across public GitHub repos (great for finding implementation examples)
|
|
587
589
|
|
|
@@ -983,8 +985,9 @@ Available hooks: `todo-continuation-enforcer`, `context-window-monitor`, `sessio
|
|
|
983
985
|
|
|
984
986
|
### MCPs
|
|
985
987
|
|
|
986
|
-
Context7 and grep.app MCP enabled by default.
|
|
988
|
+
Exa, Context7 and grep.app MCP enabled by default.
|
|
987
989
|
|
|
990
|
+
- **websearch**: Real-time web search powered by [Exa AI](https://exa.ai) - searches the web and returns relevant content
|
|
988
991
|
- **context7**: Fetches up-to-date official documentation for libraries
|
|
989
992
|
- **grep_app**: Ultra-fast code search across millions of public GitHub repositories via [grep.app](https://grep.app)
|
|
990
993
|
|
|
@@ -992,7 +995,7 @@ Don't want them? Disable via `disabled_mcps` in `~/.config/opencode/oh-my-openco
|
|
|
992
995
|
|
|
993
996
|
```json
|
|
994
997
|
{
|
|
995
|
-
"disabled_mcps": ["context7", "grep_app"]
|
|
998
|
+
"disabled_mcps": ["websearch", "context7", "grep_app"]
|
|
996
999
|
}
|
|
997
1000
|
```
|
|
998
1001
|
|
package/README.zh-cn.md
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
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/PUwSMR9XNk) | 加入我们的 [Discord 社区](https://discord.gg/PUwSMR9XNk),和贡献者们、`oh-my-opencode` 用户们一起交流。 |
|
|
11
11
|
> | :-----| :----- |
|
|
12
12
|
> | [<img alt="X link" src="https://img.shields.io/badge/Follow-%40justsisyphus-00CED1?style=flat-square&logo=x&labelColor=black" width="156px" />](https://x.com/justsisyphus) | `oh-my-opencode` 的消息之前在我的 X 账号发,但账号被无辜封了,<br />现在 [@justsisyphus](https://x.com/justsisyphus) 替我发更新。 |
|
|
13
|
+
> | [<img alt="GitHub Follow" src="https://img.shields.io/github/followers/code-yeongyu?style=flat-square&logo=github&labelColor=black&color=24292f" width="156px" />](https://github.com/code-yeongyu) | 在 GitHub 上关注 [@code-yeongyu](https://github.com/code-yeongyu),了解更多项目。 |
|
|
13
14
|
|
|
14
15
|
<!-- <CENTERED SECTION FOR GITHUB DISPLAY> -->
|
|
15
16
|
|
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.13.
|
|
2660
|
+
version: "2.13.2",
|
|
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",
|
|
@@ -22518,7 +22518,7 @@ function date4(params) {
|
|
|
22518
22518
|
// node_modules/zod/v4/classic/external.js
|
|
22519
22519
|
config(en_default());
|
|
22520
22520
|
// src/mcp/types.ts
|
|
22521
|
-
var McpNameSchema = exports_external.enum(["context7", "grep_app"]);
|
|
22521
|
+
var McpNameSchema = exports_external.enum(["websearch", "context7", "grep_app"]);
|
|
22522
22522
|
var AnyMcpNameSchema = exports_external.string().min(1);
|
|
22523
22523
|
|
|
22524
22524
|
// src/config/schema.ts
|
|
@@ -22715,6 +22715,11 @@ var RalphLoopConfigSchema = exports_external.object({
|
|
|
22715
22715
|
default_max_iterations: exports_external.number().min(1).max(1000).default(100),
|
|
22716
22716
|
state_dir: exports_external.string().optional()
|
|
22717
22717
|
});
|
|
22718
|
+
var BackgroundTaskConfigSchema = exports_external.object({
|
|
22719
|
+
defaultConcurrency: exports_external.number().min(1).optional(),
|
|
22720
|
+
providerConcurrency: exports_external.record(exports_external.string(), exports_external.number().min(1)).optional(),
|
|
22721
|
+
modelConcurrency: exports_external.record(exports_external.string(), exports_external.number().min(1)).optional()
|
|
22722
|
+
});
|
|
22718
22723
|
var OhMyOpenCodeConfigSchema = exports_external.object({
|
|
22719
22724
|
$schema: exports_external.string().optional(),
|
|
22720
22725
|
disabled_mcps: exports_external.array(AnyMcpNameSchema).optional(),
|
|
@@ -22730,7 +22735,8 @@ var OhMyOpenCodeConfigSchema = exports_external.object({
|
|
|
22730
22735
|
experimental: ExperimentalConfigSchema.optional(),
|
|
22731
22736
|
auto_update: exports_external.boolean().optional(),
|
|
22732
22737
|
skills: SkillsConfigSchema.optional(),
|
|
22733
|
-
ralph_loop: RalphLoopConfigSchema.optional()
|
|
22738
|
+
ralph_loop: RalphLoopConfigSchema.optional(),
|
|
22739
|
+
background_task: BackgroundTaskConfigSchema.optional()
|
|
22734
22740
|
});
|
|
22735
22741
|
// src/cli/doctor/checks/config.ts
|
|
22736
22742
|
var USER_CONFIG_DIR2 = join5(homedir4(), ".config", "opencode");
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -12,7 +12,6 @@ export declare const BuiltinSkillNameSchema: z.ZodEnum<{
|
|
|
12
12
|
playwright: "playwright";
|
|
13
13
|
}>;
|
|
14
14
|
export declare const OverridableAgentNameSchema: z.ZodEnum<{
|
|
15
|
-
plan: "plan";
|
|
16
15
|
Sisyphus: "Sisyphus";
|
|
17
16
|
oracle: "oracle";
|
|
18
17
|
librarian: "librarian";
|
|
@@ -21,6 +20,7 @@ export declare const OverridableAgentNameSchema: z.ZodEnum<{
|
|
|
21
20
|
"document-writer": "document-writer";
|
|
22
21
|
"multimodal-looker": "multimodal-looker";
|
|
23
22
|
build: "build";
|
|
23
|
+
plan: "plan";
|
|
24
24
|
"OpenCode-Builder": "OpenCode-Builder";
|
|
25
25
|
"Planner-Sisyphus": "Planner-Sisyphus";
|
|
26
26
|
}>;
|
|
@@ -770,6 +770,11 @@ export declare const RalphLoopConfigSchema: z.ZodObject<{
|
|
|
770
770
|
default_max_iterations: z.ZodDefault<z.ZodNumber>;
|
|
771
771
|
state_dir: z.ZodOptional<z.ZodString>;
|
|
772
772
|
}, z.core.$strip>;
|
|
773
|
+
export declare const BackgroundTaskConfigSchema: z.ZodObject<{
|
|
774
|
+
defaultConcurrency: z.ZodOptional<z.ZodNumber>;
|
|
775
|
+
providerConcurrency: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
776
|
+
modelConcurrency: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
777
|
+
}, z.core.$strip>;
|
|
773
778
|
export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
|
|
774
779
|
$schema: z.ZodOptional<z.ZodString>;
|
|
775
780
|
disabled_mcps: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -1418,10 +1423,16 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
|
|
|
1418
1423
|
default_max_iterations: z.ZodDefault<z.ZodNumber>;
|
|
1419
1424
|
state_dir: z.ZodOptional<z.ZodString>;
|
|
1420
1425
|
}, z.core.$strip>>;
|
|
1426
|
+
background_task: z.ZodOptional<z.ZodObject<{
|
|
1427
|
+
defaultConcurrency: z.ZodOptional<z.ZodNumber>;
|
|
1428
|
+
providerConcurrency: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
1429
|
+
modelConcurrency: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
1430
|
+
}, z.core.$strip>>;
|
|
1421
1431
|
}, z.core.$strip>;
|
|
1422
1432
|
export type OhMyOpenCodeConfig = z.infer<typeof OhMyOpenCodeConfigSchema>;
|
|
1423
1433
|
export type AgentOverrideConfig = z.infer<typeof AgentOverrideConfigSchema>;
|
|
1424
1434
|
export type AgentOverrides = z.infer<typeof AgentOverridesSchema>;
|
|
1435
|
+
export type BackgroundTaskConfig = z.infer<typeof BackgroundTaskConfigSchema>;
|
|
1425
1436
|
export type AgentName = z.infer<typeof AgentNameSchema>;
|
|
1426
1437
|
export type HookName = z.infer<typeof HookNameSchema>;
|
|
1427
1438
|
export type BuiltinCommandName = z.infer<typeof BuiltinCommandNameSchema>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { BackgroundTaskConfig } from "../../config/schema";
|
|
2
|
+
export declare class ConcurrencyManager {
|
|
3
|
+
private config?;
|
|
4
|
+
private counts;
|
|
5
|
+
private queues;
|
|
6
|
+
constructor(config?: BackgroundTaskConfig);
|
|
7
|
+
getConcurrencyLimit(model: string): number;
|
|
8
|
+
acquire(model: string): Promise<void>;
|
|
9
|
+
release(model: string): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { PluginInput } from "@opencode-ai/plugin";
|
|
2
2
|
import type { BackgroundTask, LaunchInput } from "./types";
|
|
3
|
+
import type { BackgroundTaskConfig } from "../../config/schema";
|
|
3
4
|
interface EventProperties {
|
|
4
5
|
sessionID?: string;
|
|
5
6
|
info?: {
|
|
@@ -17,7 +18,8 @@ export declare class BackgroundManager {
|
|
|
17
18
|
private client;
|
|
18
19
|
private directory;
|
|
19
20
|
private pollingInterval?;
|
|
20
|
-
|
|
21
|
+
private concurrencyManager;
|
|
22
|
+
constructor(ctx: PluginInput, config?: BackgroundTaskConfig);
|
|
21
23
|
launch(input: LaunchInput): Promise<BackgroundTask>;
|
|
22
24
|
getTask(id: string): BackgroundTask | undefined;
|
|
23
25
|
getTasksByParentSession(sessionID: string): BackgroundTask[];
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import { type LoadedSkill } from "../../features/opencode-skill-loader";
|
|
1
2
|
import type { ParsedSlashCommand } from "./types";
|
|
3
|
+
export interface ExecutorOptions {
|
|
4
|
+
skills?: LoadedSkill[];
|
|
5
|
+
}
|
|
2
6
|
export interface ExecuteResult {
|
|
3
7
|
success: boolean;
|
|
4
8
|
replacementText?: string;
|
|
5
9
|
error?: string;
|
|
6
10
|
}
|
|
7
|
-
export declare function executeSlashCommand(parsed: ParsedSlashCommand): Promise<ExecuteResult>;
|
|
11
|
+
export declare function executeSlashCommand(parsed: ParsedSlashCommand, options?: ExecutorOptions): Promise<ExecuteResult>;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import type { AutoSlashCommandHookInput, AutoSlashCommandHookOutput } from "./types";
|
|
2
|
+
import type { LoadedSkill } from "../../features/opencode-skill-loader";
|
|
2
3
|
export * from "./detector";
|
|
3
4
|
export * from "./executor";
|
|
4
5
|
export * from "./constants";
|
|
5
6
|
export * from "./types";
|
|
6
|
-
export
|
|
7
|
+
export interface AutoSlashCommandHookOptions {
|
|
8
|
+
skills?: LoadedSkill[];
|
|
9
|
+
}
|
|
10
|
+
export declare function createAutoSlashCommandHook(options?: AutoSlashCommandHookOptions): {
|
|
7
11
|
"chat.message": (input: AutoSlashCommandHookInput, output: AutoSlashCommandHookOutput) => Promise<void>;
|
|
8
12
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|