@skj1724/oh-my-opencode 3.18.1 → 3.18.2

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.
@@ -1,6 +1,7 @@
1
1
  import type { AgentConfig } from "@opencode-ai/sdk";
2
2
  type ApplyEnvironmentContextOptions = {
3
3
  disableOmoEnv?: boolean;
4
+ language?: string;
4
5
  };
5
6
  export declare function applyEnvironmentContext(config: AgentConfig, directory?: string, options?: ApplyEnvironmentContextOptions): AgentConfig;
6
7
  export {};
@@ -19,6 +19,7 @@ export declare function collectPendingBuiltinAgents(input: {
19
19
  disabledSkills?: Set<string>;
20
20
  useTaskSystem?: boolean;
21
21
  disableOmoEnv?: boolean;
22
+ language?: string;
22
23
  }): {
23
24
  pendingAgentConfigs: Map<string, AgentConfig>;
24
25
  availableAgents: AvailableAgent[];
@@ -15,4 +15,5 @@ export declare function maybeCreateHephaestusConfig(input: {
15
15
  directory?: string;
16
16
  useTaskSystem: boolean;
17
17
  disableOmoEnv?: boolean;
18
+ language?: string;
18
19
  }): AgentConfig | undefined;
@@ -17,4 +17,5 @@ export declare function maybeCreateSisyphusConfig(input: {
17
17
  userCategories?: CategoriesConfig;
18
18
  useTaskSystem: boolean;
19
19
  disableOmoEnv?: boolean;
20
+ language?: string;
20
21
  }): AgentConfig | undefined;
@@ -3,4 +3,4 @@ import type { AgentOverrides } from "./types";
3
3
  import type { CategoriesConfig, GitMasterConfig } from "../config/schema";
4
4
  import type { LoadedSkill } from "../features/opencode-skill-loader/types";
5
5
  import type { BrowserAutomationProvider } from "../config/schema";
6
- export declare function createBuiltinAgents(disabledAgents?: string[], agentOverrides?: AgentOverrides, directory?: string, systemDefaultModel?: string, categories?: CategoriesConfig, gitMasterConfig?: GitMasterConfig, discoveredSkills?: LoadedSkill[], customAgentSummaries?: unknown, browserProvider?: BrowserAutomationProvider, uiSelectedModel?: string, disabledSkills?: Set<string>, useTaskSystem?: boolean, disableOmoEnv?: boolean): Promise<Record<string, AgentConfig>>;
6
+ export declare function createBuiltinAgents(disabledAgents?: string[], agentOverrides?: AgentOverrides, directory?: string, systemDefaultModel?: string, categories?: CategoriesConfig, gitMasterConfig?: GitMasterConfig, discoveredSkills?: LoadedSkill[], customAgentSummaries?: unknown, browserProvider?: BrowserAutomationProvider, uiSelectedModel?: string, disabledSkills?: Set<string>, useTaskSystem?: boolean, disableOmoEnv?: boolean, language?: string): Promise<Record<string, AgentConfig>>;
package/dist/cli/index.js CHANGED
@@ -53770,7 +53770,7 @@ var {
53770
53770
  // package.json
53771
53771
  var package_default = {
53772
53772
  name: "@skj1724/oh-my-opencode",
53773
- version: "3.18.1",
53773
+ version: "3.18.2",
53774
53774
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
53775
53775
  main: "./dist/index.js",
53776
53776
  types: "dist/index.d.ts",
@@ -73964,6 +73964,7 @@ var AgentOverrideConfigSchema = exports_external.object({
73964
73964
  top_p: exports_external.number().min(0).max(1).optional(),
73965
73965
  prompt: exports_external.string().optional(),
73966
73966
  prompt_append: exports_external.string().optional(),
73967
+ language: exports_external.string().optional(),
73967
73968
  tools: exports_external.record(exports_external.string(), exports_external.boolean()).optional(),
73968
73969
  disable: exports_external.boolean().optional(),
73969
73970
  description: exports_external.string().optional(),
@@ -51,6 +51,7 @@ export declare const AgentOverrideConfigSchema: z.ZodObject<{
51
51
  top_p: z.ZodOptional<z.ZodNumber>;
52
52
  prompt: z.ZodOptional<z.ZodString>;
53
53
  prompt_append: z.ZodOptional<z.ZodString>;
54
+ language: z.ZodOptional<z.ZodString>;
54
55
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
55
56
  disable: z.ZodOptional<z.ZodBoolean>;
56
57
  description: z.ZodOptional<z.ZodString>;
@@ -180,6 +181,7 @@ export declare const AgentOverridesSchema: z.ZodObject<{
180
181
  top_p: z.ZodOptional<z.ZodNumber>;
181
182
  prompt: z.ZodOptional<z.ZodString>;
182
183
  prompt_append: z.ZodOptional<z.ZodString>;
184
+ language: z.ZodOptional<z.ZodString>;
183
185
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
184
186
  disable: z.ZodOptional<z.ZodBoolean>;
185
187
  description: z.ZodOptional<z.ZodString>;
@@ -308,6 +310,7 @@ export declare const AgentOverridesSchema: z.ZodObject<{
308
310
  top_p: z.ZodOptional<z.ZodNumber>;
309
311
  prompt: z.ZodOptional<z.ZodString>;
310
312
  prompt_append: z.ZodOptional<z.ZodString>;
313
+ language: z.ZodOptional<z.ZodString>;
311
314
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
312
315
  disable: z.ZodOptional<z.ZodBoolean>;
313
316
  description: z.ZodOptional<z.ZodString>;
@@ -436,6 +439,7 @@ export declare const AgentOverridesSchema: z.ZodObject<{
436
439
  top_p: z.ZodOptional<z.ZodNumber>;
437
440
  prompt: z.ZodOptional<z.ZodString>;
438
441
  prompt_append: z.ZodOptional<z.ZodString>;
442
+ language: z.ZodOptional<z.ZodString>;
439
443
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
440
444
  disable: z.ZodOptional<z.ZodBoolean>;
441
445
  description: z.ZodOptional<z.ZodString>;
@@ -564,6 +568,7 @@ export declare const AgentOverridesSchema: z.ZodObject<{
564
568
  top_p: z.ZodOptional<z.ZodNumber>;
565
569
  prompt: z.ZodOptional<z.ZodString>;
566
570
  prompt_append: z.ZodOptional<z.ZodString>;
571
+ language: z.ZodOptional<z.ZodString>;
567
572
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
568
573
  disable: z.ZodOptional<z.ZodBoolean>;
569
574
  description: z.ZodOptional<z.ZodString>;
@@ -693,6 +698,7 @@ export declare const AgentOverridesSchema: z.ZodObject<{
693
698
  top_p: z.ZodOptional<z.ZodNumber>;
694
699
  prompt: z.ZodOptional<z.ZodString>;
695
700
  prompt_append: z.ZodOptional<z.ZodString>;
701
+ language: z.ZodOptional<z.ZodString>;
696
702
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
697
703
  disable: z.ZodOptional<z.ZodBoolean>;
698
704
  description: z.ZodOptional<z.ZodString>;
@@ -821,6 +827,7 @@ export declare const AgentOverridesSchema: z.ZodObject<{
821
827
  top_p: z.ZodOptional<z.ZodNumber>;
822
828
  prompt: z.ZodOptional<z.ZodString>;
823
829
  prompt_append: z.ZodOptional<z.ZodString>;
830
+ language: z.ZodOptional<z.ZodString>;
824
831
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
825
832
  disable: z.ZodOptional<z.ZodBoolean>;
826
833
  description: z.ZodOptional<z.ZodString>;
@@ -949,6 +956,7 @@ export declare const AgentOverridesSchema: z.ZodObject<{
949
956
  top_p: z.ZodOptional<z.ZodNumber>;
950
957
  prompt: z.ZodOptional<z.ZodString>;
951
958
  prompt_append: z.ZodOptional<z.ZodString>;
959
+ language: z.ZodOptional<z.ZodString>;
952
960
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
953
961
  disable: z.ZodOptional<z.ZodBoolean>;
954
962
  description: z.ZodOptional<z.ZodString>;
@@ -1077,6 +1085,7 @@ export declare const AgentOverridesSchema: z.ZodObject<{
1077
1085
  top_p: z.ZodOptional<z.ZodNumber>;
1078
1086
  prompt: z.ZodOptional<z.ZodString>;
1079
1087
  prompt_append: z.ZodOptional<z.ZodString>;
1088
+ language: z.ZodOptional<z.ZodString>;
1080
1089
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1081
1090
  disable: z.ZodOptional<z.ZodBoolean>;
1082
1091
  description: z.ZodOptional<z.ZodString>;
@@ -1205,6 +1214,7 @@ export declare const AgentOverridesSchema: z.ZodObject<{
1205
1214
  top_p: z.ZodOptional<z.ZodNumber>;
1206
1215
  prompt: z.ZodOptional<z.ZodString>;
1207
1216
  prompt_append: z.ZodOptional<z.ZodString>;
1217
+ language: z.ZodOptional<z.ZodString>;
1208
1218
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1209
1219
  disable: z.ZodOptional<z.ZodBoolean>;
1210
1220
  description: z.ZodOptional<z.ZodString>;
@@ -1333,6 +1343,7 @@ export declare const AgentOverridesSchema: z.ZodObject<{
1333
1343
  top_p: z.ZodOptional<z.ZodNumber>;
1334
1344
  prompt: z.ZodOptional<z.ZodString>;
1335
1345
  prompt_append: z.ZodOptional<z.ZodString>;
1346
+ language: z.ZodOptional<z.ZodString>;
1336
1347
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1337
1348
  disable: z.ZodOptional<z.ZodBoolean>;
1338
1349
  description: z.ZodOptional<z.ZodString>;
@@ -1461,6 +1472,7 @@ export declare const AgentOverridesSchema: z.ZodObject<{
1461
1472
  top_p: z.ZodOptional<z.ZodNumber>;
1462
1473
  prompt: z.ZodOptional<z.ZodString>;
1463
1474
  prompt_append: z.ZodOptional<z.ZodString>;
1475
+ language: z.ZodOptional<z.ZodString>;
1464
1476
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1465
1477
  disable: z.ZodOptional<z.ZodBoolean>;
1466
1478
  description: z.ZodOptional<z.ZodString>;
@@ -1589,6 +1601,7 @@ export declare const AgentOverridesSchema: z.ZodObject<{
1589
1601
  top_p: z.ZodOptional<z.ZodNumber>;
1590
1602
  prompt: z.ZodOptional<z.ZodString>;
1591
1603
  prompt_append: z.ZodOptional<z.ZodString>;
1604
+ language: z.ZodOptional<z.ZodString>;
1592
1605
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1593
1606
  disable: z.ZodOptional<z.ZodBoolean>;
1594
1607
  description: z.ZodOptional<z.ZodString>;
@@ -1717,6 +1730,7 @@ export declare const AgentOverridesSchema: z.ZodObject<{
1717
1730
  top_p: z.ZodOptional<z.ZodNumber>;
1718
1731
  prompt: z.ZodOptional<z.ZodString>;
1719
1732
  prompt_append: z.ZodOptional<z.ZodString>;
1733
+ language: z.ZodOptional<z.ZodString>;
1720
1734
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1721
1735
  disable: z.ZodOptional<z.ZodBoolean>;
1722
1736
  description: z.ZodOptional<z.ZodString>;
@@ -1845,6 +1859,7 @@ export declare const AgentOverridesSchema: z.ZodObject<{
1845
1859
  top_p: z.ZodOptional<z.ZodNumber>;
1846
1860
  prompt: z.ZodOptional<z.ZodString>;
1847
1861
  prompt_append: z.ZodOptional<z.ZodString>;
1862
+ language: z.ZodOptional<z.ZodString>;
1848
1863
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1849
1864
  disable: z.ZodOptional<z.ZodBoolean>;
1850
1865
  description: z.ZodOptional<z.ZodString>;
@@ -83,6 +83,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
83
83
  top_p: z.ZodOptional<z.ZodNumber>;
84
84
  prompt: z.ZodOptional<z.ZodString>;
85
85
  prompt_append: z.ZodOptional<z.ZodString>;
86
+ language: z.ZodOptional<z.ZodString>;
86
87
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
87
88
  disable: z.ZodOptional<z.ZodBoolean>;
88
89
  description: z.ZodOptional<z.ZodString>;
@@ -211,6 +212,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
211
212
  top_p: z.ZodOptional<z.ZodNumber>;
212
213
  prompt: z.ZodOptional<z.ZodString>;
213
214
  prompt_append: z.ZodOptional<z.ZodString>;
215
+ language: z.ZodOptional<z.ZodString>;
214
216
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
215
217
  disable: z.ZodOptional<z.ZodBoolean>;
216
218
  description: z.ZodOptional<z.ZodString>;
@@ -339,6 +341,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
339
341
  top_p: z.ZodOptional<z.ZodNumber>;
340
342
  prompt: z.ZodOptional<z.ZodString>;
341
343
  prompt_append: z.ZodOptional<z.ZodString>;
344
+ language: z.ZodOptional<z.ZodString>;
342
345
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
343
346
  disable: z.ZodOptional<z.ZodBoolean>;
344
347
  description: z.ZodOptional<z.ZodString>;
@@ -467,6 +470,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
467
470
  top_p: z.ZodOptional<z.ZodNumber>;
468
471
  prompt: z.ZodOptional<z.ZodString>;
469
472
  prompt_append: z.ZodOptional<z.ZodString>;
473
+ language: z.ZodOptional<z.ZodString>;
470
474
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
471
475
  disable: z.ZodOptional<z.ZodBoolean>;
472
476
  description: z.ZodOptional<z.ZodString>;
@@ -596,6 +600,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
596
600
  top_p: z.ZodOptional<z.ZodNumber>;
597
601
  prompt: z.ZodOptional<z.ZodString>;
598
602
  prompt_append: z.ZodOptional<z.ZodString>;
603
+ language: z.ZodOptional<z.ZodString>;
599
604
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
600
605
  disable: z.ZodOptional<z.ZodBoolean>;
601
606
  description: z.ZodOptional<z.ZodString>;
@@ -724,6 +729,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
724
729
  top_p: z.ZodOptional<z.ZodNumber>;
725
730
  prompt: z.ZodOptional<z.ZodString>;
726
731
  prompt_append: z.ZodOptional<z.ZodString>;
732
+ language: z.ZodOptional<z.ZodString>;
727
733
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
728
734
  disable: z.ZodOptional<z.ZodBoolean>;
729
735
  description: z.ZodOptional<z.ZodString>;
@@ -852,6 +858,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
852
858
  top_p: z.ZodOptional<z.ZodNumber>;
853
859
  prompt: z.ZodOptional<z.ZodString>;
854
860
  prompt_append: z.ZodOptional<z.ZodString>;
861
+ language: z.ZodOptional<z.ZodString>;
855
862
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
856
863
  disable: z.ZodOptional<z.ZodBoolean>;
857
864
  description: z.ZodOptional<z.ZodString>;
@@ -980,6 +987,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
980
987
  top_p: z.ZodOptional<z.ZodNumber>;
981
988
  prompt: z.ZodOptional<z.ZodString>;
982
989
  prompt_append: z.ZodOptional<z.ZodString>;
990
+ language: z.ZodOptional<z.ZodString>;
983
991
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
984
992
  disable: z.ZodOptional<z.ZodBoolean>;
985
993
  description: z.ZodOptional<z.ZodString>;
@@ -1108,6 +1116,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1108
1116
  top_p: z.ZodOptional<z.ZodNumber>;
1109
1117
  prompt: z.ZodOptional<z.ZodString>;
1110
1118
  prompt_append: z.ZodOptional<z.ZodString>;
1119
+ language: z.ZodOptional<z.ZodString>;
1111
1120
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1112
1121
  disable: z.ZodOptional<z.ZodBoolean>;
1113
1122
  description: z.ZodOptional<z.ZodString>;
@@ -1236,6 +1245,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1236
1245
  top_p: z.ZodOptional<z.ZodNumber>;
1237
1246
  prompt: z.ZodOptional<z.ZodString>;
1238
1247
  prompt_append: z.ZodOptional<z.ZodString>;
1248
+ language: z.ZodOptional<z.ZodString>;
1239
1249
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1240
1250
  disable: z.ZodOptional<z.ZodBoolean>;
1241
1251
  description: z.ZodOptional<z.ZodString>;
@@ -1364,6 +1374,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1364
1374
  top_p: z.ZodOptional<z.ZodNumber>;
1365
1375
  prompt: z.ZodOptional<z.ZodString>;
1366
1376
  prompt_append: z.ZodOptional<z.ZodString>;
1377
+ language: z.ZodOptional<z.ZodString>;
1367
1378
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1368
1379
  disable: z.ZodOptional<z.ZodBoolean>;
1369
1380
  description: z.ZodOptional<z.ZodString>;
@@ -1492,6 +1503,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1492
1503
  top_p: z.ZodOptional<z.ZodNumber>;
1493
1504
  prompt: z.ZodOptional<z.ZodString>;
1494
1505
  prompt_append: z.ZodOptional<z.ZodString>;
1506
+ language: z.ZodOptional<z.ZodString>;
1495
1507
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1496
1508
  disable: z.ZodOptional<z.ZodBoolean>;
1497
1509
  description: z.ZodOptional<z.ZodString>;
@@ -1620,6 +1632,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1620
1632
  top_p: z.ZodOptional<z.ZodNumber>;
1621
1633
  prompt: z.ZodOptional<z.ZodString>;
1622
1634
  prompt_append: z.ZodOptional<z.ZodString>;
1635
+ language: z.ZodOptional<z.ZodString>;
1623
1636
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1624
1637
  disable: z.ZodOptional<z.ZodBoolean>;
1625
1638
  description: z.ZodOptional<z.ZodString>;
@@ -1748,6 +1761,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
1748
1761
  top_p: z.ZodOptional<z.ZodNumber>;
1749
1762
  prompt: z.ZodOptional<z.ZodString>;
1750
1763
  prompt_append: z.ZodOptional<z.ZodString>;
1764
+ language: z.ZodOptional<z.ZodString>;
1751
1765
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1752
1766
  disable: z.ZodOptional<z.ZodBoolean>;
1753
1767
  description: z.ZodOptional<z.ZodString>;
@@ -0,0 +1 @@
1
+ export declare const OPEN_PLAN_TEMPLATE = "You are executing the /open-plan command.\n\n## WHAT TO DO\n\n1. **Read the current boulder state**: Read `.sisyphus/boulder.json` to find the active plan path.\n\n2. **Check if active plan exists**:\n - If `active_plan` field exists and is not empty \u2192 proceed to step 3\n - If no active plan (file doesn't exist, or `active_plan` is null/empty) \u2192 output error and stop\n\n3. **Open the plan file with system default editor**:\n Use the Bash tool to spawn the appropriate command based on your platform:\n\n **Windows (PowerShell):**\n ```bash\n start \"\" \"C:/path/to/plan.md\"\n ```\n\n **macOS:**\n ```bash\n open \"/path/to/plan.md\"\n ```\n\n **Linux:**\n ```bash\n xdg-open \"/path/to/plan.md\"\n ```\n\n Replace the path with the actual `active_plan` path from boulder.json.\n\n4. **Report success**:\n - If file was opened successfully, output: \"Opened plan file: {plan-name}\"\n - If there was an error opening the file, report the error\n\n## ERROR HANDLING\n\nIf no active plan exists, output exactly:\n```\nNo active plan. Use /start-work to set a plan first.\n```\n\n## EXAMPLE\n\nIf `.sisyphus/boulder.json` contains:\n```json\n{\n \"active_plan\": \"C:/projects/myproject/.sisyphus/plans/my-feature.md\",\n \"plan_name\": \"my-feature\"\n}\n```\n\nOn Windows, execute:\n```bash\nstart \"\" \"C:/projects/myproject/.sisyphus/plans/my-feature.md\"\n```\n\nOn macOS, execute:\n```bash\nopen \"C:/projects/myproject/.sisyphus/plans/my-feature.md\"\n```\n\nOn Linux, execute:\n```bash\nxdg-open \"C:/projects/myproject/.sisyphus/plans/my-feature.md\"\n```";
@@ -1,5 +1,5 @@
1
1
  import type { CommandDefinition } from "../claude-code-command-loader";
2
- export type BuiltinCommandName = "init-deep" | "ralph-loop" | "cancel-ralph" | "ulw-loop" | "refactor" | "start-work" | "stop-continuation" | "handoff" | "remove-ai-slops";
2
+ export type BuiltinCommandName = "init-deep" | "ralph-loop" | "cancel-ralph" | "ulw-loop" | "refactor" | "start-work" | "stop-continuation" | "handoff" | "remove-ai-slops" | "open-plan";
3
3
  export interface BuiltinCommandConfig {
4
4
  disabled_commands?: BuiltinCommandName[];
5
5
  }
package/dist/index.js CHANGED
@@ -81612,6 +81612,7 @@ var AgentOverrideConfigSchema = z5.object({
81612
81612
  top_p: z5.number().min(0).max(1).optional(),
81613
81613
  prompt: z5.string().optional(),
81614
81614
  prompt_append: z5.string().optional(),
81615
+ language: z5.string().optional(),
81615
81616
  tools: z5.record(z5.string(), z5.boolean()).optional(),
81616
81617
  disable: z5.boolean().optional(),
81617
81618
  description: z5.string().optional(),
@@ -83765,6 +83766,73 @@ If any issues are found during critical review:
83765
83766
  - ALWAYS preserve test coverage
83766
83767
  - If uncertain about a change, err on the side of keeping the original code`;
83767
83768
 
83769
+ // src/features/builtin-commands/templates/open-plan.ts
83770
+ var OPEN_PLAN_TEMPLATE = `You are executing the /open-plan command.
83771
+
83772
+ ## WHAT TO DO
83773
+
83774
+ 1. **Read the current boulder state**: Read \`.sisyphus/boulder.json\` to find the active plan path.
83775
+
83776
+ 2. **Check if active plan exists**:
83777
+ - If \`active_plan\` field exists and is not empty \u2192 proceed to step 3
83778
+ - If no active plan (file doesn't exist, or \`active_plan\` is null/empty) \u2192 output error and stop
83779
+
83780
+ 3. **Open the plan file with system default editor**:
83781
+ Use the Bash tool to spawn the appropriate command based on your platform:
83782
+
83783
+ **Windows (PowerShell):**
83784
+ \`\`\`bash
83785
+ start "" "C:/path/to/plan.md"
83786
+ \`\`\`
83787
+
83788
+ **macOS:**
83789
+ \`\`\`bash
83790
+ open "/path/to/plan.md"
83791
+ \`\`\`
83792
+
83793
+ **Linux:**
83794
+ \`\`\`bash
83795
+ xdg-open "/path/to/plan.md"
83796
+ \`\`\`
83797
+
83798
+ Replace the path with the actual \`active_plan\` path from boulder.json.
83799
+
83800
+ 4. **Report success**:
83801
+ - If file was opened successfully, output: "Opened plan file: {plan-name}"
83802
+ - If there was an error opening the file, report the error
83803
+
83804
+ ## ERROR HANDLING
83805
+
83806
+ If no active plan exists, output exactly:
83807
+ \`\`\`
83808
+ No active plan. Use /start-work to set a plan first.
83809
+ \`\`\`
83810
+
83811
+ ## EXAMPLE
83812
+
83813
+ If \`.sisyphus/boulder.json\` contains:
83814
+ \`\`\`json
83815
+ {
83816
+ "active_plan": "C:/projects/myproject/.sisyphus/plans/my-feature.md",
83817
+ "plan_name": "my-feature"
83818
+ }
83819
+ \`\`\`
83820
+
83821
+ On Windows, execute:
83822
+ \`\`\`bash
83823
+ start "" "C:/projects/myproject/.sisyphus/plans/my-feature.md"
83824
+ \`\`\`
83825
+
83826
+ On macOS, execute:
83827
+ \`\`\`bash
83828
+ open "C:/projects/myproject/.sisyphus/plans/my-feature.md"
83829
+ \`\`\`
83830
+
83831
+ On Linux, execute:
83832
+ \`\`\`bash
83833
+ xdg-open "C:/projects/myproject/.sisyphus/plans/my-feature.md"
83834
+ \`\`\``;
83835
+
83768
83836
  // src/features/builtin-commands/commands.ts
83769
83837
  function resolveStartWorkAgent(options) {
83770
83838
  if (options?.useRegisteredAgents) {
@@ -83868,6 +83936,12 @@ Timestamp: $TIMESTAMP
83868
83936
  $ARGUMENTS
83869
83937
  </user-request>`,
83870
83938
  argumentHint: "[goal]"
83939
+ },
83940
+ "open-plan": {
83941
+ description: "(builtin) Open the current Prometheus plan file with the default editor",
83942
+ template: `<command-instruction>
83943
+ ${OPEN_PLAN_TEMPLATE}
83944
+ </command-instruction>`
83871
83945
  }
83872
83946
  };
83873
83947
  }
@@ -120221,7 +120295,7 @@ ${lines.map((l) => ` ${l}`).join(`
120221
120295
  function applyEnvironmentContext(config2, directory, options = {}) {
120222
120296
  if (options.disableOmoEnv || !directory || !config2.prompt)
120223
120297
  return config2;
120224
- const envContext = createEnvContext();
120298
+ const envContext = createEnvContext(options.language);
120225
120299
  return { ...config2, prompt: config2.prompt + envContext };
120226
120300
  }
120227
120301
 
@@ -120264,7 +120338,8 @@ function collectPendingBuiltinAgents(input) {
120264
120338
  availableModels,
120265
120339
  isFirstRunNoCache,
120266
120340
  disabledSkills,
120267
- disableOmoEnv = false
120341
+ disableOmoEnv = false,
120342
+ language
120268
120343
  } = input;
120269
120344
  const availableAgents = [];
120270
120345
  const pendingAgentConfigs = new Map;
@@ -120314,7 +120389,7 @@ function collectPendingBuiltinAgents(input) {
120314
120389
  config2 = { ...config2, variant: resolvedVariant };
120315
120390
  }
120316
120391
  if (agentName === "librarian") {
120317
- config2 = applyEnvironmentContext(config2, directory, { disableOmoEnv });
120392
+ config2 = applyEnvironmentContext(config2, directory, { disableOmoEnv, language: override?.language ?? language });
120318
120393
  }
120319
120394
  config2 = applyOverrides(config2, override, mergedCategories, directory);
120320
120395
  pendingAgentConfigs.set(name, config2);
@@ -120345,7 +120420,8 @@ function maybeCreateSisyphusConfig(input) {
120345
120420
  mergedCategories,
120346
120421
  directory,
120347
120422
  useTaskSystem,
120348
- disableOmoEnv = false
120423
+ disableOmoEnv = false,
120424
+ language
120349
120425
  } = input;
120350
120426
  const sisyphusOverride = agentOverrides["sisyphus"];
120351
120427
  const sisyphusRequirement = AGENT_MODEL_REQUIREMENTS["sisyphus"];
@@ -120377,7 +120453,8 @@ function maybeCreateSisyphusConfig(input) {
120377
120453
  Object.assign(sisyphusConfig.permission, gptDeny);
120378
120454
  }
120379
120455
  sisyphusConfig = applyEnvironmentContext(sisyphusConfig, directory, {
120380
- disableOmoEnv
120456
+ disableOmoEnv,
120457
+ language: sisyphusOverride?.language ?? language
120381
120458
  });
120382
120459
  return sisyphusConfig;
120383
120460
  }
@@ -120396,7 +120473,8 @@ function maybeCreateHephaestusConfig(input) {
120396
120473
  mergedCategories,
120397
120474
  directory,
120398
120475
  useTaskSystem,
120399
- disableOmoEnv = false
120476
+ disableOmoEnv = false,
120477
+ language
120400
120478
  } = input;
120401
120479
  if (disabledAgents.includes("hephaestus"))
120402
120480
  return;
@@ -120424,7 +120502,7 @@ function maybeCreateHephaestusConfig(input) {
120424
120502
  if (hepOverrideCategory) {
120425
120503
  hephaestusConfig = applyCategoryOverride(hephaestusConfig, hepOverrideCategory, mergedCategories);
120426
120504
  }
120427
- hephaestusConfig = applyEnvironmentContext(hephaestusConfig, directory, { disableOmoEnv });
120505
+ hephaestusConfig = applyEnvironmentContext(hephaestusConfig, directory, { disableOmoEnv, language: hephaestusOverride?.language ?? language });
120428
120506
  if (hephaestusOverride) {
120429
120507
  hephaestusConfig = mergeAgentConfig(hephaestusConfig, hephaestusOverride, directory);
120430
120508
  }
@@ -120499,7 +120577,7 @@ var agentMetadata = {
120499
120577
  momus: momusPromptMetadata,
120500
120578
  atlas: atlasPromptMetadata
120501
120579
  };
120502
- async function createBuiltinAgents(disabledAgents = [], agentOverrides = {}, directory, systemDefaultModel, categories2, gitMasterConfig, discoveredSkills = [], customAgentSummaries, browserProvider, uiSelectedModel, disabledSkills, useTaskSystem = false, disableOmoEnv = false) {
120580
+ async function createBuiltinAgents(disabledAgents = [], agentOverrides = {}, directory, systemDefaultModel, categories2, gitMasterConfig, discoveredSkills = [], customAgentSummaries, browserProvider, uiSelectedModel, disabledSkills, useTaskSystem = false, disableOmoEnv = false, language) {
120503
120581
  const connectedProviders = readConnectedProvidersCache();
120504
120582
  const providerModelsConnected = connectedProviders ? readProviderModelsCache()?.connected ?? [] : [];
120505
120583
  const mergedConnectedProviders = Array.from(new Set([...connectedProviders ?? [], ...providerModelsConnected]));
@@ -120528,7 +120606,8 @@ async function createBuiltinAgents(disabledAgents = [], agentOverrides = {}, dir
120528
120606
  availableModels,
120529
120607
  isFirstRunNoCache,
120530
120608
  disabledSkills,
120531
- disableOmoEnv
120609
+ disableOmoEnv,
120610
+ language
120532
120611
  });
120533
120612
  const sisyphusConfig = maybeCreateSisyphusConfig({
120534
120613
  disabledAgents,
@@ -120544,7 +120623,8 @@ async function createBuiltinAgents(disabledAgents = [], agentOverrides = {}, dir
120544
120623
  directory,
120545
120624
  userCategories: categories2,
120546
120625
  useTaskSystem,
120547
- disableOmoEnv
120626
+ disableOmoEnv,
120627
+ language
120548
120628
  });
120549
120629
  if (sisyphusConfig) {
120550
120630
  result["sisyphus"] = sisyphusConfig;
@@ -120561,7 +120641,8 @@ async function createBuiltinAgents(disabledAgents = [], agentOverrides = {}, dir
120561
120641
  mergedCategories,
120562
120642
  directory,
120563
120643
  useTaskSystem,
120564
- disableOmoEnv
120644
+ disableOmoEnv,
120645
+ language
120565
120646
  });
120566
120647
  if (hephaestusConfig) {
120567
120648
  result["hephaestus"] = hephaestusConfig;
@@ -122976,6 +123057,7 @@ async function applyAgentConfig(params) {
122976
123057
  const disabledSkills = new Set(params.pluginConfig.disabled_skills ?? []);
122977
123058
  const useTaskSystem = isTaskSystemEnabled(params.pluginConfig);
122978
123059
  const disableOmoEnv = params.pluginConfig.experimental?.disable_omo_env ?? false;
123060
+ const language = params.pluginConfig.i18n?.language;
122979
123061
  const includeClaudeAgents = params.pluginConfig.claude_code?.agents ?? true;
122980
123062
  const userAgents = includeClaudeAgents ? loadUserAgents() : {};
122981
123063
  const projectAgents = includeClaudeAgents ? loadProjectAgents(params.ctx.directory) : {};
@@ -123016,7 +123098,7 @@ async function applyAgentConfig(params) {
123016
123098
  opencodeConfig: Object.keys(opencodeConfigAgents).length,
123017
123099
  config: Object.keys(configAgent ?? {}).length
123018
123100
  });
123019
- const builtinAgents = await createBuiltinAgents(migratedDisabledAgents, params.pluginConfig.agents, params.ctx.directory, currentModel, params.pluginConfig.categories, params.pluginConfig.git_master, allDiscoveredSkills, customAgentSummaries, browserProvider, currentModel, disabledSkills, useTaskSystem, disableOmoEnv);
123101
+ const builtinAgents = await createBuiltinAgents(migratedDisabledAgents, params.pluginConfig.agents, params.ctx.directory, currentModel, params.pluginConfig.categories, params.pluginConfig.git_master, allDiscoveredSkills, customAgentSummaries, browserProvider, currentModel, disabledSkills, useTaskSystem, disableOmoEnv, language);
123020
123102
  const disabledAgentNames = new Set((migratedDisabledAgents ?? []).map((a) => a.toLowerCase()));
123021
123103
  const filterDisabledAgents = (agents) => Object.fromEntries(Object.entries(agents).filter(([name]) => !disabledAgentNames.has(name.toLowerCase())));
123022
123104
  const isSisyphusEnabled = params.pluginConfig.sisyphus_agent?.disabled !== true;
@@ -130409,7 +130491,7 @@ class PostHog extends PostHogBackendClient {
130409
130491
  // package.json
130410
130492
  var package_default = {
130411
130493
  name: "@skj1724/oh-my-opencode",
130412
- version: "3.18.1",
130494
+ version: "3.18.2",
130413
130495
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
130414
130496
  main: "./dist/index.js",
130415
130497
  types: "dist/index.d.ts",
@@ -268,6 +268,9 @@
268
268
  "prompt_append": {
269
269
  "type": "string"
270
270
  },
271
+ "language": {
272
+ "type": "string"
273
+ },
271
274
  "tools": {
272
275
  "type": "object",
273
276
  "propertyNames": {
@@ -618,6 +621,9 @@
618
621
  "prompt_append": {
619
622
  "type": "string"
620
623
  },
624
+ "language": {
625
+ "type": "string"
626
+ },
621
627
  "tools": {
622
628
  "type": "object",
623
629
  "propertyNames": {
@@ -968,6 +974,9 @@
968
974
  "prompt_append": {
969
975
  "type": "string"
970
976
  },
977
+ "language": {
978
+ "type": "string"
979
+ },
971
980
  "tools": {
972
981
  "type": "object",
973
982
  "propertyNames": {
@@ -1318,6 +1327,9 @@
1318
1327
  "prompt_append": {
1319
1328
  "type": "string"
1320
1329
  },
1330
+ "language": {
1331
+ "type": "string"
1332
+ },
1321
1333
  "tools": {
1322
1334
  "type": "object",
1323
1335
  "propertyNames": {
@@ -1671,6 +1683,9 @@
1671
1683
  "prompt_append": {
1672
1684
  "type": "string"
1673
1685
  },
1686
+ "language": {
1687
+ "type": "string"
1688
+ },
1674
1689
  "tools": {
1675
1690
  "type": "object",
1676
1691
  "propertyNames": {
@@ -2021,6 +2036,9 @@
2021
2036
  "prompt_append": {
2022
2037
  "type": "string"
2023
2038
  },
2039
+ "language": {
2040
+ "type": "string"
2041
+ },
2024
2042
  "tools": {
2025
2043
  "type": "object",
2026
2044
  "propertyNames": {
@@ -2371,6 +2389,9 @@
2371
2389
  "prompt_append": {
2372
2390
  "type": "string"
2373
2391
  },
2392
+ "language": {
2393
+ "type": "string"
2394
+ },
2374
2395
  "tools": {
2375
2396
  "type": "object",
2376
2397
  "propertyNames": {
@@ -2721,6 +2742,9 @@
2721
2742
  "prompt_append": {
2722
2743
  "type": "string"
2723
2744
  },
2745
+ "language": {
2746
+ "type": "string"
2747
+ },
2724
2748
  "tools": {
2725
2749
  "type": "object",
2726
2750
  "propertyNames": {
@@ -3071,6 +3095,9 @@
3071
3095
  "prompt_append": {
3072
3096
  "type": "string"
3073
3097
  },
3098
+ "language": {
3099
+ "type": "string"
3100
+ },
3074
3101
  "tools": {
3075
3102
  "type": "object",
3076
3103
  "propertyNames": {
@@ -3421,6 +3448,9 @@
3421
3448
  "prompt_append": {
3422
3449
  "type": "string"
3423
3450
  },
3451
+ "language": {
3452
+ "type": "string"
3453
+ },
3424
3454
  "tools": {
3425
3455
  "type": "object",
3426
3456
  "propertyNames": {
@@ -3771,6 +3801,9 @@
3771
3801
  "prompt_append": {
3772
3802
  "type": "string"
3773
3803
  },
3804
+ "language": {
3805
+ "type": "string"
3806
+ },
3774
3807
  "tools": {
3775
3808
  "type": "object",
3776
3809
  "propertyNames": {
@@ -4121,6 +4154,9 @@
4121
4154
  "prompt_append": {
4122
4155
  "type": "string"
4123
4156
  },
4157
+ "language": {
4158
+ "type": "string"
4159
+ },
4124
4160
  "tools": {
4125
4161
  "type": "object",
4126
4162
  "propertyNames": {
@@ -4471,6 +4507,9 @@
4471
4507
  "prompt_append": {
4472
4508
  "type": "string"
4473
4509
  },
4510
+ "language": {
4511
+ "type": "string"
4512
+ },
4474
4513
  "tools": {
4475
4514
  "type": "object",
4476
4515
  "propertyNames": {
@@ -4821,6 +4860,9 @@
4821
4860
  "prompt_append": {
4822
4861
  "type": "string"
4823
4862
  },
4863
+ "language": {
4864
+ "type": "string"
4865
+ },
4824
4866
  "tools": {
4825
4867
  "type": "object",
4826
4868
  "propertyNames": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skj1724/oh-my-opencode",
3
- "version": "3.18.1",
3
+ "version": "3.18.2",
4
4
  "description": "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
5
5
  "main": "./dist/index.js",
6
6
  "types": "dist/index.d.ts",