oh-my-opencode 3.0.0-beta.1 → 3.0.0-beta.3
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 +13 -10
- package/README.md +15 -12
- package/README.zh-cn.md +13 -10
- package/dist/agents/metis.d.ts +1 -0
- package/dist/agents/orchestrator-sisyphus.d.ts +2 -1
- package/dist/cli/index.js +10 -4
- package/dist/config/schema.d.ts +204 -0
- package/dist/features/background-agent/manager.d.ts +15 -0
- package/dist/features/background-agent/types.d.ts +4 -0
- package/dist/hooks/auto-update-checker/index.d.ts +3 -0
- package/dist/hooks/auto-update-checker/index.test.d.ts +1 -0
- package/dist/hooks/background-compaction/index.d.ts +19 -0
- package/dist/hooks/background-notification/index.d.ts +6 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/index.js +457 -126
- package/dist/tools/skill/tools.d.ts +1 -7
- package/dist/tools/slashcommand/tools.d.ts +1 -7
- package/package.json +1 -1
package/dist/config/schema.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ export declare const BuiltinAgentNameSchema: z.ZodEnum<{
|
|
|
8
8
|
"document-writer": "document-writer";
|
|
9
9
|
"multimodal-looker": "multimodal-looker";
|
|
10
10
|
"Metis (Plan Consultant)": "Metis (Plan Consultant)";
|
|
11
|
+
"Momus (Plan Reviewer)": "Momus (Plan Reviewer)";
|
|
12
|
+
"orchestrator-sisyphus": "orchestrator-sisyphus";
|
|
11
13
|
}>;
|
|
12
14
|
export declare const BuiltinSkillNameSchema: z.ZodEnum<{
|
|
13
15
|
playwright: "playwright";
|
|
@@ -23,6 +25,8 @@ export declare const OverridableAgentNameSchema: z.ZodEnum<{
|
|
|
23
25
|
"document-writer": "document-writer";
|
|
24
26
|
"multimodal-looker": "multimodal-looker";
|
|
25
27
|
"Metis (Plan Consultant)": "Metis (Plan Consultant)";
|
|
28
|
+
"Momus (Plan Reviewer)": "Momus (Plan Reviewer)";
|
|
29
|
+
"orchestrator-sisyphus": "orchestrator-sisyphus";
|
|
26
30
|
build: "build";
|
|
27
31
|
plan: "plan";
|
|
28
32
|
"OpenCode-Builder": "OpenCode-Builder";
|
|
@@ -37,6 +41,8 @@ export declare const AgentNameSchema: z.ZodEnum<{
|
|
|
37
41
|
"document-writer": "document-writer";
|
|
38
42
|
"multimodal-looker": "multimodal-looker";
|
|
39
43
|
"Metis (Plan Consultant)": "Metis (Plan Consultant)";
|
|
44
|
+
"Momus (Plan Reviewer)": "Momus (Plan Reviewer)";
|
|
45
|
+
"orchestrator-sisyphus": "orchestrator-sisyphus";
|
|
40
46
|
}>;
|
|
41
47
|
export declare const HookNameSchema: z.ZodEnum<{
|
|
42
48
|
"todo-continuation-enforcer": "todo-continuation-enforcer";
|
|
@@ -419,6 +425,55 @@ export declare const AgentOverridesSchema: z.ZodObject<{
|
|
|
419
425
|
}>>;
|
|
420
426
|
}, z.core.$strip>>;
|
|
421
427
|
}, z.core.$strip>>;
|
|
428
|
+
"Momus (Plan Reviewer)": z.ZodOptional<z.ZodObject<{
|
|
429
|
+
model: z.ZodOptional<z.ZodString>;
|
|
430
|
+
category: z.ZodOptional<z.ZodString>;
|
|
431
|
+
skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
432
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
433
|
+
top_p: z.ZodOptional<z.ZodNumber>;
|
|
434
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
435
|
+
prompt_append: z.ZodOptional<z.ZodString>;
|
|
436
|
+
tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
437
|
+
disable: z.ZodOptional<z.ZodBoolean>;
|
|
438
|
+
description: z.ZodOptional<z.ZodString>;
|
|
439
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
440
|
+
subagent: "subagent";
|
|
441
|
+
primary: "primary";
|
|
442
|
+
all: "all";
|
|
443
|
+
}>>;
|
|
444
|
+
color: z.ZodOptional<z.ZodString>;
|
|
445
|
+
permission: z.ZodOptional<z.ZodObject<{
|
|
446
|
+
edit: z.ZodOptional<z.ZodEnum<{
|
|
447
|
+
allow: "allow";
|
|
448
|
+
ask: "ask";
|
|
449
|
+
deny: "deny";
|
|
450
|
+
}>>;
|
|
451
|
+
bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
452
|
+
allow: "allow";
|
|
453
|
+
ask: "ask";
|
|
454
|
+
deny: "deny";
|
|
455
|
+
}>, z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
456
|
+
allow: "allow";
|
|
457
|
+
ask: "ask";
|
|
458
|
+
deny: "deny";
|
|
459
|
+
}>>]>>;
|
|
460
|
+
webfetch: z.ZodOptional<z.ZodEnum<{
|
|
461
|
+
allow: "allow";
|
|
462
|
+
ask: "ask";
|
|
463
|
+
deny: "deny";
|
|
464
|
+
}>>;
|
|
465
|
+
doom_loop: z.ZodOptional<z.ZodEnum<{
|
|
466
|
+
allow: "allow";
|
|
467
|
+
ask: "ask";
|
|
468
|
+
deny: "deny";
|
|
469
|
+
}>>;
|
|
470
|
+
external_directory: z.ZodOptional<z.ZodEnum<{
|
|
471
|
+
allow: "allow";
|
|
472
|
+
ask: "ask";
|
|
473
|
+
deny: "deny";
|
|
474
|
+
}>>;
|
|
475
|
+
}, z.core.$strip>>;
|
|
476
|
+
}, z.core.$strip>>;
|
|
422
477
|
oracle: z.ZodOptional<z.ZodObject<{
|
|
423
478
|
model: z.ZodOptional<z.ZodString>;
|
|
424
479
|
category: z.ZodOptional<z.ZodString>;
|
|
@@ -713,6 +768,55 @@ export declare const AgentOverridesSchema: z.ZodObject<{
|
|
|
713
768
|
}>>;
|
|
714
769
|
}, z.core.$strip>>;
|
|
715
770
|
}, z.core.$strip>>;
|
|
771
|
+
"orchestrator-sisyphus": z.ZodOptional<z.ZodObject<{
|
|
772
|
+
model: z.ZodOptional<z.ZodString>;
|
|
773
|
+
category: z.ZodOptional<z.ZodString>;
|
|
774
|
+
skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
775
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
776
|
+
top_p: z.ZodOptional<z.ZodNumber>;
|
|
777
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
778
|
+
prompt_append: z.ZodOptional<z.ZodString>;
|
|
779
|
+
tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
780
|
+
disable: z.ZodOptional<z.ZodBoolean>;
|
|
781
|
+
description: z.ZodOptional<z.ZodString>;
|
|
782
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
783
|
+
subagent: "subagent";
|
|
784
|
+
primary: "primary";
|
|
785
|
+
all: "all";
|
|
786
|
+
}>>;
|
|
787
|
+
color: z.ZodOptional<z.ZodString>;
|
|
788
|
+
permission: z.ZodOptional<z.ZodObject<{
|
|
789
|
+
edit: z.ZodOptional<z.ZodEnum<{
|
|
790
|
+
allow: "allow";
|
|
791
|
+
ask: "ask";
|
|
792
|
+
deny: "deny";
|
|
793
|
+
}>>;
|
|
794
|
+
bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
795
|
+
allow: "allow";
|
|
796
|
+
ask: "ask";
|
|
797
|
+
deny: "deny";
|
|
798
|
+
}>, z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
799
|
+
allow: "allow";
|
|
800
|
+
ask: "ask";
|
|
801
|
+
deny: "deny";
|
|
802
|
+
}>>]>>;
|
|
803
|
+
webfetch: z.ZodOptional<z.ZodEnum<{
|
|
804
|
+
allow: "allow";
|
|
805
|
+
ask: "ask";
|
|
806
|
+
deny: "deny";
|
|
807
|
+
}>>;
|
|
808
|
+
doom_loop: z.ZodOptional<z.ZodEnum<{
|
|
809
|
+
allow: "allow";
|
|
810
|
+
ask: "ask";
|
|
811
|
+
deny: "deny";
|
|
812
|
+
}>>;
|
|
813
|
+
external_directory: z.ZodOptional<z.ZodEnum<{
|
|
814
|
+
allow: "allow";
|
|
815
|
+
ask: "ask";
|
|
816
|
+
deny: "deny";
|
|
817
|
+
}>>;
|
|
818
|
+
}, z.core.$strip>>;
|
|
819
|
+
}, z.core.$strip>>;
|
|
716
820
|
}, z.core.$strip>;
|
|
717
821
|
export declare const ClaudeCodeConfigSchema: z.ZodObject<{
|
|
718
822
|
mcp: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -935,6 +1039,8 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
|
|
|
935
1039
|
"document-writer": "document-writer";
|
|
936
1040
|
"multimodal-looker": "multimodal-looker";
|
|
937
1041
|
"Metis (Plan Consultant)": "Metis (Plan Consultant)";
|
|
1042
|
+
"Momus (Plan Reviewer)": "Momus (Plan Reviewer)";
|
|
1043
|
+
"orchestrator-sisyphus": "orchestrator-sisyphus";
|
|
938
1044
|
}>>>;
|
|
939
1045
|
disabled_skills: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
940
1046
|
playwright: "playwright";
|
|
@@ -1273,6 +1379,55 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
|
|
|
1273
1379
|
}>>;
|
|
1274
1380
|
}, z.core.$strip>>;
|
|
1275
1381
|
}, z.core.$strip>>;
|
|
1382
|
+
"Momus (Plan Reviewer)": z.ZodOptional<z.ZodObject<{
|
|
1383
|
+
model: z.ZodOptional<z.ZodString>;
|
|
1384
|
+
category: z.ZodOptional<z.ZodString>;
|
|
1385
|
+
skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1386
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1387
|
+
top_p: z.ZodOptional<z.ZodNumber>;
|
|
1388
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
1389
|
+
prompt_append: z.ZodOptional<z.ZodString>;
|
|
1390
|
+
tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
1391
|
+
disable: z.ZodOptional<z.ZodBoolean>;
|
|
1392
|
+
description: z.ZodOptional<z.ZodString>;
|
|
1393
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
1394
|
+
subagent: "subagent";
|
|
1395
|
+
primary: "primary";
|
|
1396
|
+
all: "all";
|
|
1397
|
+
}>>;
|
|
1398
|
+
color: z.ZodOptional<z.ZodString>;
|
|
1399
|
+
permission: z.ZodOptional<z.ZodObject<{
|
|
1400
|
+
edit: z.ZodOptional<z.ZodEnum<{
|
|
1401
|
+
allow: "allow";
|
|
1402
|
+
ask: "ask";
|
|
1403
|
+
deny: "deny";
|
|
1404
|
+
}>>;
|
|
1405
|
+
bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
1406
|
+
allow: "allow";
|
|
1407
|
+
ask: "ask";
|
|
1408
|
+
deny: "deny";
|
|
1409
|
+
}>, z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
1410
|
+
allow: "allow";
|
|
1411
|
+
ask: "ask";
|
|
1412
|
+
deny: "deny";
|
|
1413
|
+
}>>]>>;
|
|
1414
|
+
webfetch: z.ZodOptional<z.ZodEnum<{
|
|
1415
|
+
allow: "allow";
|
|
1416
|
+
ask: "ask";
|
|
1417
|
+
deny: "deny";
|
|
1418
|
+
}>>;
|
|
1419
|
+
doom_loop: z.ZodOptional<z.ZodEnum<{
|
|
1420
|
+
allow: "allow";
|
|
1421
|
+
ask: "ask";
|
|
1422
|
+
deny: "deny";
|
|
1423
|
+
}>>;
|
|
1424
|
+
external_directory: z.ZodOptional<z.ZodEnum<{
|
|
1425
|
+
allow: "allow";
|
|
1426
|
+
ask: "ask";
|
|
1427
|
+
deny: "deny";
|
|
1428
|
+
}>>;
|
|
1429
|
+
}, z.core.$strip>>;
|
|
1430
|
+
}, z.core.$strip>>;
|
|
1276
1431
|
oracle: z.ZodOptional<z.ZodObject<{
|
|
1277
1432
|
model: z.ZodOptional<z.ZodString>;
|
|
1278
1433
|
category: z.ZodOptional<z.ZodString>;
|
|
@@ -1567,6 +1722,55 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
|
|
|
1567
1722
|
}>>;
|
|
1568
1723
|
}, z.core.$strip>>;
|
|
1569
1724
|
}, z.core.$strip>>;
|
|
1725
|
+
"orchestrator-sisyphus": z.ZodOptional<z.ZodObject<{
|
|
1726
|
+
model: z.ZodOptional<z.ZodString>;
|
|
1727
|
+
category: z.ZodOptional<z.ZodString>;
|
|
1728
|
+
skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1729
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1730
|
+
top_p: z.ZodOptional<z.ZodNumber>;
|
|
1731
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
1732
|
+
prompt_append: z.ZodOptional<z.ZodString>;
|
|
1733
|
+
tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
1734
|
+
disable: z.ZodOptional<z.ZodBoolean>;
|
|
1735
|
+
description: z.ZodOptional<z.ZodString>;
|
|
1736
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
1737
|
+
subagent: "subagent";
|
|
1738
|
+
primary: "primary";
|
|
1739
|
+
all: "all";
|
|
1740
|
+
}>>;
|
|
1741
|
+
color: z.ZodOptional<z.ZodString>;
|
|
1742
|
+
permission: z.ZodOptional<z.ZodObject<{
|
|
1743
|
+
edit: z.ZodOptional<z.ZodEnum<{
|
|
1744
|
+
allow: "allow";
|
|
1745
|
+
ask: "ask";
|
|
1746
|
+
deny: "deny";
|
|
1747
|
+
}>>;
|
|
1748
|
+
bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
1749
|
+
allow: "allow";
|
|
1750
|
+
ask: "ask";
|
|
1751
|
+
deny: "deny";
|
|
1752
|
+
}>, z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
1753
|
+
allow: "allow";
|
|
1754
|
+
ask: "ask";
|
|
1755
|
+
deny: "deny";
|
|
1756
|
+
}>>]>>;
|
|
1757
|
+
webfetch: z.ZodOptional<z.ZodEnum<{
|
|
1758
|
+
allow: "allow";
|
|
1759
|
+
ask: "ask";
|
|
1760
|
+
deny: "deny";
|
|
1761
|
+
}>>;
|
|
1762
|
+
doom_loop: z.ZodOptional<z.ZodEnum<{
|
|
1763
|
+
allow: "allow";
|
|
1764
|
+
ask: "ask";
|
|
1765
|
+
deny: "deny";
|
|
1766
|
+
}>>;
|
|
1767
|
+
external_directory: z.ZodOptional<z.ZodEnum<{
|
|
1768
|
+
allow: "allow";
|
|
1769
|
+
ask: "ask";
|
|
1770
|
+
deny: "deny";
|
|
1771
|
+
}>>;
|
|
1772
|
+
}, z.core.$strip>>;
|
|
1773
|
+
}, z.core.$strip>>;
|
|
1570
1774
|
}, z.core.$strip>>;
|
|
1571
1775
|
categories: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1572
1776
|
model: z.ZodString;
|
|
@@ -15,6 +15,7 @@ interface Event {
|
|
|
15
15
|
export declare class BackgroundManager {
|
|
16
16
|
private tasks;
|
|
17
17
|
private notifications;
|
|
18
|
+
private pendingByParent;
|
|
18
19
|
private client;
|
|
19
20
|
private directory;
|
|
20
21
|
private pollingInterval?;
|
|
@@ -35,6 +36,7 @@ export declare class BackgroundManager {
|
|
|
35
36
|
parentSessionID: string;
|
|
36
37
|
description: string;
|
|
37
38
|
agent?: string;
|
|
39
|
+
parentAgent?: string;
|
|
38
40
|
}): BackgroundTask;
|
|
39
41
|
resume(input: ResumeInput): Promise<BackgroundTask>;
|
|
40
42
|
private checkSessionTodos;
|
|
@@ -42,10 +44,23 @@ export declare class BackgroundManager {
|
|
|
42
44
|
markForNotification(task: BackgroundTask): void;
|
|
43
45
|
getPendingNotifications(sessionID: string): BackgroundTask[];
|
|
44
46
|
clearNotifications(sessionID: string): void;
|
|
47
|
+
/**
|
|
48
|
+
* Validates that a session has actual assistant/tool output before marking complete.
|
|
49
|
+
* Prevents premature completion when session.idle fires before agent responds.
|
|
50
|
+
*/
|
|
51
|
+
private validateSessionHasOutput;
|
|
45
52
|
private clearNotificationsForTask;
|
|
46
53
|
private startPolling;
|
|
47
54
|
private stopPolling;
|
|
48
55
|
cleanup(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Get all running tasks (for compaction hook)
|
|
58
|
+
*/
|
|
59
|
+
getRunningTasks(): BackgroundTask[];
|
|
60
|
+
/**
|
|
61
|
+
* Get all completed tasks still in memory (for compaction hook)
|
|
62
|
+
*/
|
|
63
|
+
getCompletedTasks(): BackgroundTask[];
|
|
49
64
|
private notifyParentSession;
|
|
50
65
|
private formatDuration;
|
|
51
66
|
private hasRunningTasks;
|
|
@@ -32,6 +32,10 @@ export interface BackgroundTask {
|
|
|
32
32
|
concurrencyKey?: string;
|
|
33
33
|
/** Parent session's agent name for notification */
|
|
34
34
|
parentAgent?: string;
|
|
35
|
+
/** Last message count for stability detection */
|
|
36
|
+
lastMsgCount?: number;
|
|
37
|
+
/** Number of consecutive polls with stable message count */
|
|
38
|
+
stablePolls?: number;
|
|
35
39
|
}
|
|
36
40
|
export interface LaunchInput {
|
|
37
41
|
description: string;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { PluginInput } from "@opencode-ai/plugin";
|
|
2
2
|
import type { AutoUpdateCheckerOptions } from "./types";
|
|
3
|
+
export declare function isPrereleaseVersion(version: string): boolean;
|
|
4
|
+
export declare function isDistTag(version: string): boolean;
|
|
5
|
+
export declare function isPrereleaseOrDistTag(pinnedVersion: string | null): boolean;
|
|
3
6
|
export declare function createAutoUpdateCheckerHook(ctx: PluginInput, options?: AutoUpdateCheckerOptions): {
|
|
4
7
|
event: ({ event }: {
|
|
5
8
|
event: {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { BackgroundManager } from "../../features/background-agent";
|
|
2
|
+
interface CompactingInput {
|
|
3
|
+
sessionID: string;
|
|
4
|
+
}
|
|
5
|
+
interface CompactingOutput {
|
|
6
|
+
context: string[];
|
|
7
|
+
prompt?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Background agent compaction hook - preserves task state during context compaction.
|
|
11
|
+
*
|
|
12
|
+
* When OpenCode compacts session context to save tokens, this hook injects
|
|
13
|
+
* information about running and recently completed background tasks so the
|
|
14
|
+
* agent doesn't lose awareness of delegated work.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createBackgroundCompactionHook(manager: BackgroundManager): {
|
|
17
|
+
"experimental.session.compacting": (input: CompactingInput, output: CompactingOutput) => Promise<void>;
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
@@ -6,6 +6,12 @@ interface Event {
|
|
|
6
6
|
interface EventInput {
|
|
7
7
|
event: Event;
|
|
8
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* Background notification hook - handles event routing to BackgroundManager.
|
|
11
|
+
*
|
|
12
|
+
* Notifications are now delivered directly via session.prompt({ noReply })
|
|
13
|
+
* from the manager, so this hook only needs to handle event routing.
|
|
14
|
+
*/
|
|
9
15
|
export declare function createBackgroundNotificationHook(manager: BackgroundManager): {
|
|
10
16
|
event: ({ event }: EventInput) => Promise<void>;
|
|
11
17
|
};
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export { createThinkModeHook } from "./think-mode";
|
|
|
14
14
|
export { createClaudeCodeHooksHook } from "./claude-code-hooks";
|
|
15
15
|
export { createRulesInjectorHook } from "./rules-injector";
|
|
16
16
|
export { createBackgroundNotificationHook } from "./background-notification";
|
|
17
|
+
export { createBackgroundCompactionHook } from "./background-compaction";
|
|
17
18
|
export { createAutoUpdateCheckerHook } from "./auto-update-checker";
|
|
18
19
|
export { createAgentUsageReminderHook } from "./agent-usage-reminder";
|
|
19
20
|
export { createKeywordDetectorHook } from "./keyword-detector";
|