oh-my-opencode-slim 1.1.0 โ 1.1.1
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.md +7 -2
- package/dist/goal/index.d.ts +3 -0
- package/dist/goal/manager.d.ts +41 -0
- package/dist/goal/prompts.d.ts +4 -0
- package/dist/goal/store.d.ts +15 -0
- package/dist/goal/types.d.ts +28 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/session-goal/index.d.ts +38 -0
- package/dist/index.js +559 -321
- package/dist/multiplexer/session-manager.d.ts +3 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
<div align="center">
|
|
2
|
-
<
|
|
3
|
-
|
|
2
|
+
<a href="https://github.com/alvinunreal/oh-my-opencode-slim/stargazers">
|
|
3
|
+
<img src="img/4k.png" alt="4K GitHub Stars Milestone" style="border-radius: 10px;">
|
|
4
|
+
</a>
|
|
5
|
+
<h3>๐ 4,000+ Stars! Thank you! ๐</h3>
|
|
6
|
+
<p><i>We are incredibly grateful to our community for helping us reach this milestone.<br>The Pantheon grows stronger every day because of your feedback, contributions, and support!</i></p>
|
|
7
|
+
|
|
4
8
|
<p><b>Open Multi Agent Suite</b> ยท Mix any models ยท Auto delegate tasks</p>
|
|
5
9
|
|
|
6
10
|
<p><sub>by <b>Boring Dystopia Development</b></sub></p>
|
|
@@ -488,6 +492,7 @@ Use this section as a map: start with installation, then jump to features, confi
|
|
|
488
492
|
| **[Council](docs/council.md)** | Run multiple models in parallel and synthesize a single answer with `@council` |
|
|
489
493
|
| **[Multiplexer Integration](docs/multiplexer-integration.md)** | Watch agents work live in Tmux or Zellij panes |
|
|
490
494
|
| **[Session Management](docs/session-management.md)** | Reuse recent child-agent sessions with short aliases instead of starting over |
|
|
495
|
+
| **[Session Goal](docs/session-goal.md)** | Pin a session objective with `/goal` so todos, delegation, and verification stay aligned |
|
|
491
496
|
| **[Todo Continuation](docs/todo-continuation.md)** | Auto-continue orchestrator sessions with cooldowns and safety checks |
|
|
492
497
|
| **[Preset Switching](docs/preset-switching.md)** | Switch agent model presets at runtime with `/preset` |
|
|
493
498
|
| **[Subtask](docs/subtask.md)** | Run a bounded child worker with `/subtask` and return a structured summary to the main session |
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { PluginInput } from '@opencode-ai/plugin';
|
|
2
|
+
import type { GoalConfig } from './types';
|
|
3
|
+
interface MessagePart {
|
|
4
|
+
type?: string;
|
|
5
|
+
text?: string;
|
|
6
|
+
[key: string]: unknown;
|
|
7
|
+
}
|
|
8
|
+
interface ChatTransformMessage {
|
|
9
|
+
info: {
|
|
10
|
+
role?: string;
|
|
11
|
+
agent?: string;
|
|
12
|
+
sessionID?: string;
|
|
13
|
+
};
|
|
14
|
+
parts: MessagePart[];
|
|
15
|
+
}
|
|
16
|
+
export declare function createGoalManager(ctx: PluginInput, config?: GoalConfig): {
|
|
17
|
+
registerCommand: (opencodeConfig: Record<string, unknown>) => void;
|
|
18
|
+
handleCommandExecuteBefore: (input: {
|
|
19
|
+
command: string;
|
|
20
|
+
sessionID: string;
|
|
21
|
+
arguments: string;
|
|
22
|
+
}, output: {
|
|
23
|
+
parts: Array<{
|
|
24
|
+
type: string;
|
|
25
|
+
text?: string;
|
|
26
|
+
}>;
|
|
27
|
+
}) => Promise<void>;
|
|
28
|
+
handleMessagesTransform: (output: {
|
|
29
|
+
messages: ChatTransformMessage[];
|
|
30
|
+
}) => Promise<void>;
|
|
31
|
+
handleEvent: (input: {
|
|
32
|
+
event: {
|
|
33
|
+
type: string;
|
|
34
|
+
properties?: Record<string, unknown>;
|
|
35
|
+
};
|
|
36
|
+
}) => Promise<void>;
|
|
37
|
+
hasActiveGoal: (sessionID: string) => boolean;
|
|
38
|
+
hasRunningGoal: (sessionID: string) => boolean;
|
|
39
|
+
};
|
|
40
|
+
export type GoalManager = ReturnType<typeof createGoalManager>;
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { GoalRecord } from './types';
|
|
2
|
+
interface GoalStoreSnapshot {
|
|
3
|
+
version: 1;
|
|
4
|
+
goals: GoalRecord[];
|
|
5
|
+
}
|
|
6
|
+
export declare function getGoalStorePath(): string;
|
|
7
|
+
export declare class GoalStore {
|
|
8
|
+
read(): GoalStoreSnapshot;
|
|
9
|
+
write(snapshot: GoalStoreSnapshot): void;
|
|
10
|
+
list(): GoalRecord[];
|
|
11
|
+
save(goal: GoalRecord): void;
|
|
12
|
+
findActiveBySession(sessionID: string): GoalRecord | undefined;
|
|
13
|
+
findLatestByDirectory(directory: string): GoalRecord | undefined;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type GoalStatus = 'running' | 'paused' | 'blocked' | 'completed' | 'archived';
|
|
2
|
+
export interface GoalCheckpoint {
|
|
3
|
+
id: string;
|
|
4
|
+
createdAt: string;
|
|
5
|
+
note: string;
|
|
6
|
+
}
|
|
7
|
+
export interface GoalRecord {
|
|
8
|
+
version: 1;
|
|
9
|
+
id: string;
|
|
10
|
+
directory: string;
|
|
11
|
+
sessionID: string;
|
|
12
|
+
objective: string;
|
|
13
|
+
stopCondition?: string;
|
|
14
|
+
validationCommands: string[];
|
|
15
|
+
artifacts: string[];
|
|
16
|
+
status: GoalStatus;
|
|
17
|
+
createdAt: string;
|
|
18
|
+
updatedAt: string;
|
|
19
|
+
maxCycles: number;
|
|
20
|
+
completedCycles: number;
|
|
21
|
+
checkpoints: GoalCheckpoint[];
|
|
22
|
+
lastError?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface GoalConfig {
|
|
25
|
+
maxCycles?: number;
|
|
26
|
+
cooldownMs?: number;
|
|
27
|
+
shouldManageSession?: (sessionID: string) => boolean;
|
|
28
|
+
}
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -9,5 +9,6 @@ export { processImageAttachments } from './image-hook';
|
|
|
9
9
|
export { createJsonErrorRecoveryHook } from './json-error-recovery';
|
|
10
10
|
export { createPhaseReminderHook } from './phase-reminder';
|
|
11
11
|
export { createPostFileToolNudgeHook } from './post-file-tool-nudge';
|
|
12
|
+
export { createSessionGoalHook } from './session-goal';
|
|
12
13
|
export { createTaskSessionManagerHook } from './task-session-manager';
|
|
13
14
|
export { createTodoContinuationHook } from './todo-continuation';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { PluginInput } from '@opencode-ai/plugin';
|
|
2
|
+
import type { PluginConfig } from '../../config';
|
|
3
|
+
interface GoalState {
|
|
4
|
+
text: string;
|
|
5
|
+
source?: 'manual' | 'interview';
|
|
6
|
+
sourcePath?: string;
|
|
7
|
+
inheritedFrom?: string;
|
|
8
|
+
createdAt: number;
|
|
9
|
+
}
|
|
10
|
+
interface SystemTransformOutput {
|
|
11
|
+
system: string[];
|
|
12
|
+
}
|
|
13
|
+
export declare function createSessionGoalHook(ctx: PluginInput, config: PluginConfig, options?: {
|
|
14
|
+
getAgentName?: (sessionID: string) => string | undefined;
|
|
15
|
+
}): {
|
|
16
|
+
registerCommand: (config: Record<string, unknown>) => void;
|
|
17
|
+
handleCommandExecuteBefore: (input: {
|
|
18
|
+
command: string;
|
|
19
|
+
sessionID: string;
|
|
20
|
+
arguments: string;
|
|
21
|
+
}, output: {
|
|
22
|
+
parts: Array<{
|
|
23
|
+
type: string;
|
|
24
|
+
text?: string;
|
|
25
|
+
}>;
|
|
26
|
+
}) => Promise<void>;
|
|
27
|
+
handleEvent: (input: {
|
|
28
|
+
event: {
|
|
29
|
+
type: string;
|
|
30
|
+
properties?: Record<string, unknown>;
|
|
31
|
+
};
|
|
32
|
+
}) => void;
|
|
33
|
+
handleSystemTransform: (input: {
|
|
34
|
+
sessionID?: string;
|
|
35
|
+
}, output: SystemTransformOutput) => void;
|
|
36
|
+
getGoal: (sessionID: string) => GoalState | undefined;
|
|
37
|
+
};
|
|
38
|
+
export {};
|