@reinamaccredy/oh-my-opencode 3.0.0-beta.13 → 3.0.0-beta.15
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/dist/cli/index.js +3 -2
- package/dist/features/background-agent/index.d.ts +1 -1
- package/dist/features/background-agent/manager.d.ts +10 -0
- package/dist/features/background-agent/types.d.ts +4 -0
- package/dist/features/maestro/hooks/index.d.ts +16 -0
- package/dist/features/maestro/index.d.ts +4 -0
- package/dist/features/maestro/skills/index.d.ts +4 -0
- package/dist/features/maestro/types.d.ts +42 -0
- package/dist/features/maestro/utils/index.d.ts +4 -0
- package/dist/hooks/background-notification/index.d.ts +10 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/index.js +248 -1190
- package/dist/shared/migration.d.ts +4 -0
- package/dist/tools/skill/tools.d.ts +1 -7
- package/dist/tools/slashcommand/tools.d.ts +1 -7
- package/package.json +2 -1
package/dist/cli/index.js
CHANGED
|
@@ -2253,7 +2253,7 @@ var require_picocolors = __commonJS((exports, module) => {
|
|
|
2253
2253
|
var require_package = __commonJS((exports, module) => {
|
|
2254
2254
|
module.exports = {
|
|
2255
2255
|
name: "@reinamaccredy/oh-my-opencode",
|
|
2256
|
-
version: "3.0.0-beta.
|
|
2256
|
+
version: "3.0.0-beta.15",
|
|
2257
2257
|
description: "Fork of oh-my-opencode with Maestro workflow integration - Multi-Model Orchestration, Parallel Background Agents, Design Phases, and TDD Methodology",
|
|
2258
2258
|
main: "dist/index.js",
|
|
2259
2259
|
types: "dist/index.d.ts",
|
|
@@ -2321,6 +2321,7 @@ var require_package = __commonJS((exports, module) => {
|
|
|
2321
2321
|
"@openauthjs/openauth": "^0.4.3",
|
|
2322
2322
|
"@opencode-ai/plugin": "^1.1.1",
|
|
2323
2323
|
"@opencode-ai/sdk": "^1.1.1",
|
|
2324
|
+
"@reinamaccredy/oh-my-opencode": "^3.0.0-beta.13",
|
|
2324
2325
|
commander: "^14.0.2",
|
|
2325
2326
|
hono: "^4.10.4",
|
|
2326
2327
|
"js-yaml": "^4.1.1",
|
|
@@ -6736,7 +6737,7 @@ function deepMerge(target, source) {
|
|
|
6736
6737
|
}
|
|
6737
6738
|
function generateOmoConfig(installConfig) {
|
|
6738
6739
|
const config = {
|
|
6739
|
-
$schema: "https://raw.githubusercontent.com/
|
|
6740
|
+
$schema: "https://raw.githubusercontent.com/ReinaMacCredy/oh-my-opencode/main/assets/oh-my-opencode.schema.json"
|
|
6740
6741
|
};
|
|
6741
6742
|
if (installConfig.hasProxyPal || installConfig.hasGemini) {
|
|
6742
6743
|
config.google_auth = false;
|
|
@@ -12,9 +12,17 @@ interface Event {
|
|
|
12
12
|
type: string;
|
|
13
13
|
properties?: EventProperties;
|
|
14
14
|
}
|
|
15
|
+
export interface PendingNotification {
|
|
16
|
+
taskId: string;
|
|
17
|
+
description: string;
|
|
18
|
+
duration: string;
|
|
19
|
+
status: "completed" | "error";
|
|
20
|
+
error?: string;
|
|
21
|
+
}
|
|
15
22
|
export declare class BackgroundManager {
|
|
16
23
|
private tasks;
|
|
17
24
|
private notifications;
|
|
25
|
+
private pendingNotifications;
|
|
18
26
|
private client;
|
|
19
27
|
private directory;
|
|
20
28
|
private pollingInterval?;
|
|
@@ -43,6 +51,8 @@ export declare class BackgroundManager {
|
|
|
43
51
|
markForNotification(task: BackgroundTask): void;
|
|
44
52
|
getPendingNotifications(sessionID: string): BackgroundTask[];
|
|
45
53
|
clearNotifications(sessionID: string): void;
|
|
54
|
+
hasPendingNotifications(sessionID: string): boolean;
|
|
55
|
+
consumePendingNotifications(sessionID: string): PendingNotification[];
|
|
46
56
|
private clearNotificationsForTask;
|
|
47
57
|
private startPolling;
|
|
48
58
|
private stopPolling;
|
|
@@ -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;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { PluginInput } from "@opencode-ai/plugin";
|
|
2
|
+
export declare const MAESTRO_HOOK_NAME = "maestro-mode-detector";
|
|
3
|
+
interface MaestroHookInput {
|
|
4
|
+
sessionID: string;
|
|
5
|
+
messageID?: string;
|
|
6
|
+
}
|
|
7
|
+
interface MaestroHookOutput {
|
|
8
|
+
parts: Array<{
|
|
9
|
+
type: string;
|
|
10
|
+
text?: string;
|
|
11
|
+
}>;
|
|
12
|
+
}
|
|
13
|
+
export declare function createMaestroModeDetectorHook(ctx: PluginInput): {
|
|
14
|
+
"chat.message": (input: MaestroHookInput, output: MaestroHookOutput) => Promise<void>;
|
|
15
|
+
};
|
|
16
|
+
export { createMaestroModeDetectorHook as createMaestroHook };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export type MaestroMode = "ci" | "co" | "ca";
|
|
2
|
+
export interface ModeDetectionResult {
|
|
3
|
+
mode: MaestroMode;
|
|
4
|
+
reason: string;
|
|
5
|
+
epicCount: number;
|
|
6
|
+
readyBeadCount: number;
|
|
7
|
+
parallelGroups: string[][];
|
|
8
|
+
skills: string[];
|
|
9
|
+
}
|
|
10
|
+
export interface ParsedBead {
|
|
11
|
+
id: string;
|
|
12
|
+
title: string;
|
|
13
|
+
epicId?: string;
|
|
14
|
+
epicTitle?: string;
|
|
15
|
+
priority: number;
|
|
16
|
+
dependencies: string[];
|
|
17
|
+
fileScope?: string[];
|
|
18
|
+
status: "pending" | "ready" | "in_progress" | "completed" | "blocked";
|
|
19
|
+
}
|
|
20
|
+
export interface ParsedEpic {
|
|
21
|
+
id: string;
|
|
22
|
+
title: string;
|
|
23
|
+
beads: ParsedBead[];
|
|
24
|
+
fileScope: string[];
|
|
25
|
+
}
|
|
26
|
+
export interface ParsedPlan {
|
|
27
|
+
name: string;
|
|
28
|
+
path: string;
|
|
29
|
+
epics: ParsedEpic[];
|
|
30
|
+
allBeads: ParsedBead[];
|
|
31
|
+
hasAutonomousFlag: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface MaestroContext {
|
|
34
|
+
mode: MaestroMode;
|
|
35
|
+
skills: string[];
|
|
36
|
+
planPath: string;
|
|
37
|
+
epicCount: number;
|
|
38
|
+
readyBeadCount: number;
|
|
39
|
+
beadSummary: string;
|
|
40
|
+
}
|
|
41
|
+
export declare const MODE_SKILLS: Record<MaestroMode, string[]>;
|
|
42
|
+
export declare const MODE_DESCRIPTIONS: Record<MaestroMode, string>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ModeDetectionResult, ParsedPlan } from "../types";
|
|
2
|
+
export declare function parsePlanToBeads(planContent: string, planPath: string): ParsedPlan;
|
|
3
|
+
export declare function detectMode(plan: ParsedPlan): ModeDetectionResult;
|
|
4
|
+
export declare function generateBeadSummary(plan: ParsedPlan): string;
|
|
@@ -6,7 +6,17 @@ interface Event {
|
|
|
6
6
|
interface EventInput {
|
|
7
7
|
event: Event;
|
|
8
8
|
}
|
|
9
|
+
interface ToolExecuteInput {
|
|
10
|
+
sessionID?: string;
|
|
11
|
+
tool: string;
|
|
12
|
+
}
|
|
13
|
+
interface ToolExecuteOutput {
|
|
14
|
+
title: string;
|
|
15
|
+
output: string;
|
|
16
|
+
metadata: unknown;
|
|
17
|
+
}
|
|
9
18
|
export declare function createBackgroundNotificationHook(manager: BackgroundManager): {
|
|
10
19
|
event: ({ event }: EventInput) => Promise<void>;
|
|
20
|
+
"tool.execute.after": (input: ToolExecuteInput, output: ToolExecuteOutput) => Promise<void>;
|
|
11
21
|
};
|
|
12
22
|
export type { BackgroundNotificationHookConfig } from "./types";
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -28,3 +28,4 @@ export { createPrometheusMdOnlyHook } from "./prometheus-md-only";
|
|
|
28
28
|
export { createTaskResumeInfoHook } from "./task-resume-info";
|
|
29
29
|
export { createStartWorkHook } from "./start-work";
|
|
30
30
|
export { createSisyphusOrchestratorHook } from "./sisyphus-orchestrator";
|
|
31
|
+
export { createMaestroModeDetectorHook, MAESTRO_HOOK_NAME } from "../features/maestro/hooks";
|