oh-my-opencode-slim 0.9.2 → 0.9.4

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 CHANGED
@@ -385,7 +385,7 @@ If any agent fails to respond, check your provider authentication and config fil
385
385
  <p><sub>Every merged contribution leaves a mark on the realm.</sub></p>
386
386
 
387
387
  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
388
- [![All Contributors](https://img.shields.io/badge/all_contributors-30-orange.svg?style=flat-square)](#contributors-)
388
+ [![All Contributors](https://img.shields.io/badge/all_contributors-31-orange.svg?style=flat-square)](#contributors-)
389
389
  <!-- ALL-CONTRIBUTORS-BADGE:END -->
390
390
  </div>
391
391
 
@@ -436,6 +436,9 @@ If any agent fails to respond, check your provider authentication and config fil
436
436
  <td align="center" valign="top" width="16.66%"><a href="https://bit.ly/2N1ynXZ"><img src="https://avatars.githubusercontent.com/u/14874913?v=4?s=100" width="100px;" alt="Simon Klakegg"/><br /><sub><b>Simon Klakegg</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=sklakegg" title="Code">💻</a></td>
437
437
  <td align="center" valign="top" width="16.66%"><a href="https://github.com/sudorest"><img src="https://avatars.githubusercontent.com/u/214225921?v=4?s=100" width="100px;" alt="Kiwi"/><br /><sub><b>Kiwi</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=sudorest" title="Code">💻</a></td>
438
438
  </tr>
439
+ <tr>
440
+ <td align="center" valign="top" width="16.66%"><a href="https://trade.xyz/?ref=BZ1RJRXWO"><img src="https://avatars.githubusercontent.com/u/7317522?v=4?s=100" width="100px;" alt="Raxxoor"/><br /><sub><b>Raxxoor</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=dhaern" title="Code">💻</a></td>
441
+ </tr>
439
442
  </tbody>
440
443
  </table>
441
444
 
package/dist/cli/index.js CHANGED
@@ -23,6 +23,7 @@ import {
23
23
  statSync as statSync2,
24
24
  writeFileSync
25
25
  } from "fs";
26
+ import { pathToFileURL } from "url";
26
27
 
27
28
  // src/cli/paths.ts
28
29
  import { existsSync, mkdirSync } from "fs";
@@ -90,9 +91,6 @@ function ensureOpenCodeConfigDir() {
90
91
  }
91
92
  }
92
93
 
93
- // src/cli/config-io.ts
94
- import { pathToFileURL } from "url";
95
-
96
94
  // src/config/constants.ts
97
95
  var SUBAGENT_NAMES = [
98
96
  "explorer",
@@ -13779,6 +13777,12 @@ var McpNameSchema = exports_external.enum(["websearch", "context7", "grep_app"])
13779
13777
  var BackgroundTaskConfigSchema = exports_external.object({
13780
13778
  maxConcurrentStarts: exports_external.number().min(1).max(50).default(10)
13781
13779
  });
13780
+ var TodoContinuationConfigSchema = exports_external.object({
13781
+ maxContinuations: exports_external.number().int().min(1).max(50).default(5).describe("Maximum consecutive auto-continuations before stopping to ask user"),
13782
+ cooldownMs: exports_external.number().int().min(0).max(30000).default(3000).describe("Delay in ms before auto-continuing (gives user time to abort)"),
13783
+ autoEnable: exports_external.boolean().default(false).describe("Automatically enable auto-continue when the orchestrator session has enough todos"),
13784
+ autoEnableThreshold: exports_external.number().int().min(1).max(50).default(4).describe("Number of todos that triggers auto-enable (only used when autoEnable is true)")
13785
+ });
13782
13786
  var FailoverConfigSchema = exports_external.object({
13783
13787
  enabled: exports_external.boolean().default(true),
13784
13788
  timeoutMs: exports_external.number().min(0).default(15000),
@@ -13799,6 +13803,7 @@ var PluginConfigSchema = exports_external.object({
13799
13803
  tmux: TmuxConfigSchema.optional(),
13800
13804
  websearch: WebsearchConfigSchema.optional(),
13801
13805
  background: BackgroundTaskConfigSchema.optional(),
13806
+ todoContinuation: TodoContinuationConfigSchema.optional(),
13802
13807
  fallback: FailoverConfigSchema.optional(),
13803
13808
  council: CouncilConfigSchema.optional()
13804
13809
  });
@@ -146,6 +146,13 @@ export declare const BackgroundTaskConfigSchema: z.ZodObject<{
146
146
  maxConcurrentStarts: z.ZodDefault<z.ZodNumber>;
147
147
  }, z.core.$strip>;
148
148
  export type BackgroundTaskConfig = z.infer<typeof BackgroundTaskConfigSchema>;
149
+ export declare const TodoContinuationConfigSchema: z.ZodObject<{
150
+ maxContinuations: z.ZodDefault<z.ZodNumber>;
151
+ cooldownMs: z.ZodDefault<z.ZodNumber>;
152
+ autoEnable: z.ZodDefault<z.ZodBoolean>;
153
+ autoEnableThreshold: z.ZodDefault<z.ZodNumber>;
154
+ }, z.core.$strip>;
155
+ export type TodoContinuationConfig = z.infer<typeof TodoContinuationConfigSchema>;
149
156
  export declare const FailoverConfigSchema: z.ZodObject<{
150
157
  enabled: z.ZodDefault<z.ZodBoolean>;
151
158
  timeoutMs: z.ZodDefault<z.ZodNumber>;
@@ -265,6 +272,12 @@ export declare const PluginConfigSchema: z.ZodObject<{
265
272
  background: z.ZodOptional<z.ZodObject<{
266
273
  maxConcurrentStarts: z.ZodDefault<z.ZodNumber>;
267
274
  }, z.core.$strip>>;
275
+ todoContinuation: z.ZodOptional<z.ZodObject<{
276
+ maxContinuations: z.ZodDefault<z.ZodNumber>;
277
+ cooldownMs: z.ZodDefault<z.ZodNumber>;
278
+ autoEnable: z.ZodDefault<z.ZodBoolean>;
279
+ autoEnableThreshold: z.ZodDefault<z.ZodNumber>;
280
+ }, z.core.$strip>>;
268
281
  fallback: z.ZodOptional<z.ZodObject<{
269
282
  enabled: z.ZodDefault<z.ZodBoolean>;
270
283
  timeoutMs: z.ZodDefault<z.ZodNumber>;
@@ -7,3 +7,4 @@ export { ForegroundFallbackManager, isRateLimitError, } from './foreground-fallb
7
7
  export { createJsonErrorRecoveryHook } from './json-error-recovery';
8
8
  export { createPhaseReminderHook } from './phase-reminder';
9
9
  export { createPostFileToolNudgeHook } from './post-file-tool-nudge';
10
+ export { createTodoContinuationHook } from './todo-continuation';
@@ -0,0 +1,25 @@
1
+ import type { PluginInput } from '@opencode-ai/plugin';
2
+ export declare function createTodoContinuationHook(ctx: PluginInput, config?: {
3
+ maxContinuations?: number;
4
+ cooldownMs?: number;
5
+ autoEnable?: boolean;
6
+ autoEnableThreshold?: number;
7
+ }): {
8
+ tool: Record<string, unknown>;
9
+ handleEvent: (input: {
10
+ event: {
11
+ type: string;
12
+ properties?: Record<string, unknown>;
13
+ };
14
+ }) => Promise<void>;
15
+ handleCommandExecuteBefore: (input: {
16
+ command: string;
17
+ sessionID: string;
18
+ arguments: string;
19
+ }, output: {
20
+ parts: Array<{
21
+ type: string;
22
+ text?: string;
23
+ }>;
24
+ }) => Promise<void>;
25
+ };