opencode-matrixx 2.6.4 → 2.6.5

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.
Files changed (50) hide show
  1. package/dist/cli/setup/index.d.ts +1 -0
  2. package/dist/cli/setup/preset-wizard.d.ts +36 -0
  3. package/dist/cli/setup/types.d.ts +5 -0
  4. package/dist/cli.js +486 -59
  5. package/dist/config/index.d.ts +0 -1
  6. package/dist/config/migrations/model-migration.d.ts +1 -2
  7. package/dist/config/preset-applier.d.ts +17 -0
  8. package/dist/config/schema/agent-overrides.d.ts +0 -133
  9. package/dist/config/schema/categories.d.ts +0 -14
  10. package/dist/config/schema/commands.d.ts +1 -1
  11. package/dist/config/schema/matrixx-config.d.ts +28 -144
  12. package/dist/config/schema/model-config.d.ts +0 -22
  13. package/dist/config/schema/model-presets.d.ts +40 -0
  14. package/dist/config/schema/task.d.ts +6 -0
  15. package/dist/config/schema/tasks.d.ts +25 -0
  16. package/dist/config/schema.d.ts +3 -0
  17. package/dist/features/builtin-commands/templates/preset.d.ts +1 -0
  18. package/dist/features/builtin-commands/types.d.ts +1 -1
  19. package/dist/features/preset-state/index.d.ts +1 -0
  20. package/dist/features/preset-state/manager.d.ts +5 -0
  21. package/dist/features/session-state/state.d.ts +6 -0
  22. package/dist/features/task-storage/types.d.ts +2 -0
  23. package/dist/hooks/json-error-recovery/hook.d.ts +1 -1
  24. package/dist/hooks/task-continuation-enforcer/continuation-injection.test.d.ts +1 -0
  25. package/dist/hooks/task-continuation-enforcer/staleness.d.ts +7 -1
  26. package/dist/hooks/task-continuation-enforcer/todo.d.ts +8 -0
  27. package/dist/hooks/task-continuation-enforcer/todo.test.d.ts +1 -0
  28. package/dist/hooks/tasks-todowrite-disabler/constants.d.ts +1 -1
  29. package/dist/index.js +673 -598
  30. package/dist/matrixx.schema.json +113 -244
  31. package/dist/mcp/types.d.ts +1 -1
  32. package/dist/mcp/{grep-app.d.ts → white-rabbit.d.ts} +1 -1
  33. package/dist/shared/config-errors.d.ts +3 -0
  34. package/dist/shared/merge-categories.d.ts +1 -16
  35. package/dist/shared/task-system-gating.d.ts +10 -0
  36. package/dist/tools/delegate-task/categories.d.ts +3 -18
  37. package/dist/tools/delegate-task/complexity-constants.d.ts +2 -7
  38. package/dist/tools/delegate-task/executor-types.d.ts +7 -2
  39. package/dist/tools/delegate-task/timing.d.ts +5 -0
  40. package/dist/tools/delegate-task/types.d.ts +5 -2
  41. package/dist/tools/index.d.ts +1 -0
  42. package/dist/tools/preset/index.d.ts +1 -0
  43. package/dist/tools/preset/tools.d.ts +7 -0
  44. package/dist/tools/task/constants.d.ts +1 -0
  45. package/package.json +1 -1
  46. package/dist/config/presets.d.ts +0 -4
  47. package/dist/config/resolve-tiers.d.ts +0 -32
  48. package/dist/features/builtin-commands/templates/profile.d.ts +0 -1
  49. package/dist/shared/model-tiers.d.ts +0 -44
  50. package/dist/shared/tier-resolver.d.ts +0 -26
@@ -11,15 +11,66 @@
11
11
  "global_model": {
12
12
  "type": "string"
13
13
  },
14
- "default_tier": {
14
+ "model_presets": {
15
+ "type": "object",
16
+ "propertyNames": {
17
+ "type": "string"
18
+ },
19
+ "additionalProperties": {
20
+ "type": "object",
21
+ "properties": {
22
+ "default_model": {
23
+ "type": "string"
24
+ },
25
+ "agents": {
26
+ "type": "object",
27
+ "propertyNames": {
28
+ "type": "string"
29
+ },
30
+ "additionalProperties": {
31
+ "type": "object",
32
+ "properties": {
33
+ "model": {
34
+ "type": "string"
35
+ },
36
+ "variant": {
37
+ "type": "string"
38
+ }
39
+ },
40
+ "required": [
41
+ "model"
42
+ ],
43
+ "additionalProperties": false
44
+ }
45
+ },
46
+ "categories": {
47
+ "type": "object",
48
+ "propertyNames": {
49
+ "type": "string"
50
+ },
51
+ "additionalProperties": {
52
+ "type": "object",
53
+ "properties": {
54
+ "model": {
55
+ "type": "string"
56
+ },
57
+ "variant": {
58
+ "type": "string"
59
+ }
60
+ },
61
+ "required": [
62
+ "model"
63
+ ],
64
+ "additionalProperties": false
65
+ }
66
+ }
67
+ },
68
+ "additionalProperties": false
69
+ }
70
+ },
71
+ "active_preset": {
15
72
  "type": "string",
16
- "enum": [
17
- "free",
18
- "fast",
19
- "standard",
20
- "premium",
21
- "frontier"
22
- ]
73
+ "minLength": 1
23
74
  },
24
75
  "new_task_system_enabled": {
25
76
  "type": "boolean"
@@ -187,7 +238,7 @@
187
238
  "refactor",
188
239
  "start-work",
189
240
  "stop-continuation",
190
- "profile",
241
+ "preset",
191
242
  "end-ultrawork",
192
243
  "handoff",
193
244
  "research",
@@ -217,16 +268,6 @@
217
268
  "model": {
218
269
  "type": "string"
219
270
  },
220
- "tier": {
221
- "type": "string",
222
- "enum": [
223
- "free",
224
- "fast",
225
- "standard",
226
- "premium",
227
- "frontier"
228
- ]
229
- },
230
271
  "variant": {
231
272
  "type": "string"
232
273
  },
@@ -434,16 +475,6 @@
434
475
  "model": {
435
476
  "type": "string"
436
477
  },
437
- "tier": {
438
- "type": "string",
439
- "enum": [
440
- "free",
441
- "fast",
442
- "standard",
443
- "premium",
444
- "frontier"
445
- ]
446
- },
447
478
  "variant": {
448
479
  "type": "string"
449
480
  },
@@ -651,16 +682,6 @@
651
682
  "model": {
652
683
  "type": "string"
653
684
  },
654
- "tier": {
655
- "type": "string",
656
- "enum": [
657
- "free",
658
- "fast",
659
- "standard",
660
- "premium",
661
- "frontier"
662
- ]
663
- },
664
685
  "variant": {
665
686
  "type": "string"
666
687
  },
@@ -868,16 +889,6 @@
868
889
  "model": {
869
890
  "type": "string"
870
891
  },
871
- "tier": {
872
- "type": "string",
873
- "enum": [
874
- "free",
875
- "fast",
876
- "standard",
877
- "premium",
878
- "frontier"
879
- ]
880
- },
881
892
  "variant": {
882
893
  "type": "string"
883
894
  },
@@ -1085,16 +1096,6 @@
1085
1096
  "model": {
1086
1097
  "type": "string"
1087
1098
  },
1088
- "tier": {
1089
- "type": "string",
1090
- "enum": [
1091
- "free",
1092
- "fast",
1093
- "standard",
1094
- "premium",
1095
- "frontier"
1096
- ]
1097
- },
1098
1099
  "variant": {
1099
1100
  "type": "string"
1100
1101
  },
@@ -1302,16 +1303,6 @@
1302
1303
  "model": {
1303
1304
  "type": "string"
1304
1305
  },
1305
- "tier": {
1306
- "type": "string",
1307
- "enum": [
1308
- "free",
1309
- "fast",
1310
- "standard",
1311
- "premium",
1312
- "frontier"
1313
- ]
1314
- },
1315
1306
  "variant": {
1316
1307
  "type": "string"
1317
1308
  },
@@ -1519,16 +1510,6 @@
1519
1510
  "model": {
1520
1511
  "type": "string"
1521
1512
  },
1522
- "tier": {
1523
- "type": "string",
1524
- "enum": [
1525
- "free",
1526
- "fast",
1527
- "standard",
1528
- "premium",
1529
- "frontier"
1530
- ]
1531
- },
1532
1513
  "variant": {
1533
1514
  "type": "string"
1534
1515
  },
@@ -1736,16 +1717,6 @@
1736
1717
  "model": {
1737
1718
  "type": "string"
1738
1719
  },
1739
- "tier": {
1740
- "type": "string",
1741
- "enum": [
1742
- "free",
1743
- "fast",
1744
- "standard",
1745
- "premium",
1746
- "frontier"
1747
- ]
1748
- },
1749
1720
  "variant": {
1750
1721
  "type": "string"
1751
1722
  },
@@ -1953,16 +1924,6 @@
1953
1924
  "model": {
1954
1925
  "type": "string"
1955
1926
  },
1956
- "tier": {
1957
- "type": "string",
1958
- "enum": [
1959
- "free",
1960
- "fast",
1961
- "standard",
1962
- "premium",
1963
- "frontier"
1964
- ]
1965
- },
1966
1927
  "variant": {
1967
1928
  "type": "string"
1968
1929
  },
@@ -2170,16 +2131,6 @@
2170
2131
  "model": {
2171
2132
  "type": "string"
2172
2133
  },
2173
- "tier": {
2174
- "type": "string",
2175
- "enum": [
2176
- "free",
2177
- "fast",
2178
- "standard",
2179
- "premium",
2180
- "frontier"
2181
- ]
2182
- },
2183
2134
  "variant": {
2184
2135
  "type": "string"
2185
2136
  },
@@ -2387,16 +2338,6 @@
2387
2338
  "model": {
2388
2339
  "type": "string"
2389
2340
  },
2390
- "tier": {
2391
- "type": "string",
2392
- "enum": [
2393
- "free",
2394
- "fast",
2395
- "standard",
2396
- "premium",
2397
- "frontier"
2398
- ]
2399
- },
2400
2341
  "variant": {
2401
2342
  "type": "string"
2402
2343
  },
@@ -2604,16 +2545,6 @@
2604
2545
  "model": {
2605
2546
  "type": "string"
2606
2547
  },
2607
- "tier": {
2608
- "type": "string",
2609
- "enum": [
2610
- "free",
2611
- "fast",
2612
- "standard",
2613
- "premium",
2614
- "frontier"
2615
- ]
2616
- },
2617
2548
  "variant": {
2618
2549
  "type": "string"
2619
2550
  },
@@ -2821,16 +2752,6 @@
2821
2752
  "model": {
2822
2753
  "type": "string"
2823
2754
  },
2824
- "tier": {
2825
- "type": "string",
2826
- "enum": [
2827
- "free",
2828
- "fast",
2829
- "standard",
2830
- "premium",
2831
- "frontier"
2832
- ]
2833
- },
2834
2755
  "variant": {
2835
2756
  "type": "string"
2836
2757
  },
@@ -3038,16 +2959,6 @@
3038
2959
  "model": {
3039
2960
  "type": "string"
3040
2961
  },
3041
- "tier": {
3042
- "type": "string",
3043
- "enum": [
3044
- "free",
3045
- "fast",
3046
- "standard",
3047
- "premium",
3048
- "frontier"
3049
- ]
3050
- },
3051
2962
  "variant": {
3052
2963
  "type": "string"
3053
2964
  },
@@ -3255,16 +3166,6 @@
3255
3166
  "model": {
3256
3167
  "type": "string"
3257
3168
  },
3258
- "tier": {
3259
- "type": "string",
3260
- "enum": [
3261
- "free",
3262
- "fast",
3263
- "standard",
3264
- "premium",
3265
- "frontier"
3266
- ]
3267
- },
3268
3169
  "variant": {
3269
3170
  "type": "string"
3270
3171
  },
@@ -3472,16 +3373,6 @@
3472
3373
  "model": {
3473
3374
  "type": "string"
3474
3375
  },
3475
- "tier": {
3476
- "type": "string",
3477
- "enum": [
3478
- "free",
3479
- "fast",
3480
- "standard",
3481
- "premium",
3482
- "frontier"
3483
- ]
3484
- },
3485
3376
  "variant": {
3486
3377
  "type": "string"
3487
3378
  },
@@ -3689,16 +3580,6 @@
3689
3580
  "model": {
3690
3581
  "type": "string"
3691
3582
  },
3692
- "tier": {
3693
- "type": "string",
3694
- "enum": [
3695
- "free",
3696
- "fast",
3697
- "standard",
3698
- "premium",
3699
- "frontier"
3700
- ]
3701
- },
3702
3583
  "variant": {
3703
3584
  "type": "string"
3704
3585
  },
@@ -3917,16 +3798,6 @@
3917
3798
  "model": {
3918
3799
  "type": "string"
3919
3800
  },
3920
- "tier": {
3921
- "type": "string",
3922
- "enum": [
3923
- "free",
3924
- "fast",
3925
- "standard",
3926
- "premium",
3927
- "frontier"
3928
- ]
3929
- },
3930
3801
  "variant": {
3931
3802
  "type": "string"
3932
3803
  },
@@ -4832,6 +4703,59 @@
4832
4703
  ],
4833
4704
  "additionalProperties": false
4834
4705
  },
4706
+ "tasks": {
4707
+ "type": "object",
4708
+ "properties": {
4709
+ "enabled": {
4710
+ "default": true,
4711
+ "type": "boolean"
4712
+ },
4713
+ "scope": {
4714
+ "description": "Task storage scope: project → .matrixx/tasks per project (default), global → <opencode-config>/tasks/{listId}",
4715
+ "default": "project",
4716
+ "type": "string",
4717
+ "enum": [
4718
+ "global",
4719
+ "project"
4720
+ ]
4721
+ },
4722
+ "storage_path": {
4723
+ "type": "string"
4724
+ },
4725
+ "task_list_id": {
4726
+ "type": "string"
4727
+ },
4728
+ "stale_after_hours": {
4729
+ "description": "Pending tasks with no file activity for this many hours are considered stale (default: 24). Stale tasks are excluded from task-continuation directives.",
4730
+ "type": "integer",
4731
+ "minimum": 1,
4732
+ "maximum": 9007199254740991
4733
+ },
4734
+ "session_scoped": {
4735
+ "description": "When true, the task-continuation-enforcer only considers tasks created by the current session (or its subagent sessions). When false, all project tasks are considered regardless of session origin.",
4736
+ "default": true,
4737
+ "type": "boolean"
4738
+ },
4739
+ "pollTimeoutMs": {
4740
+ "type": "number",
4741
+ "minimum": 60000
4742
+ }
4743
+ },
4744
+ "required": [
4745
+ "enabled"
4746
+ ],
4747
+ "additionalProperties": false
4748
+ },
4749
+ "task": {
4750
+ "type": "object",
4751
+ "properties": {
4752
+ "pollTimeoutMs": {
4753
+ "type": "number",
4754
+ "minimum": 60000
4755
+ }
4756
+ },
4757
+ "additionalProperties": false
4758
+ },
4835
4759
  "tdd_enforcer": {
4836
4760
  "type": "object",
4837
4761
  "properties": {
@@ -5561,61 +5485,6 @@
5561
5485
  "type": "string"
5562
5486
  }
5563
5487
  },
5564
- "tiers": {
5565
- "type": "object",
5566
- "propertyNames": {
5567
- "type": "string"
5568
- },
5569
- "additionalProperties": {
5570
- "type": "object",
5571
- "properties": {
5572
- "providerPriority": {
5573
- "type": "array",
5574
- "items": {
5575
- "type": "string"
5576
- }
5577
- },
5578
- "modelPattern": {
5579
- "type": "string"
5580
- },
5581
- "fallbackTier": {
5582
- "type": "string"
5583
- },
5584
- "fallback": {
5585
- "type": "array",
5586
- "items": {
5587
- "type": "object",
5588
- "properties": {
5589
- "providers": {
5590
- "type": "array",
5591
- "items": {
5592
- "type": "string",
5593
- "minLength": 1
5594
- }
5595
- },
5596
- "model": {
5597
- "type": "string",
5598
- "minLength": 1
5599
- },
5600
- "variant": {
5601
- "type": "string"
5602
- }
5603
- },
5604
- "required": [
5605
- "providers",
5606
- "model"
5607
- ],
5608
- "additionalProperties": false
5609
- }
5610
- }
5611
- },
5612
- "required": [
5613
- "providerPriority",
5614
- "modelPattern"
5615
- ],
5616
- "additionalProperties": false
5617
- }
5618
- },
5619
5488
  "modelRequirements": {
5620
5489
  "type": "object",
5621
5490
  "properties": {
@@ -2,7 +2,7 @@ import { z } from "zod";
2
2
  export declare const McpNameSchema: z.ZodEnum<{
3
3
  websearch: "websearch";
4
4
  context7: "context7";
5
- grep_app: "grep_app";
5
+ white_rabbit: "white_rabbit";
6
6
  document_reader: "document_reader";
7
7
  }>;
8
8
  export type McpName = z.infer<typeof McpNameSchema>;
@@ -1,4 +1,4 @@
1
- export declare const grep_app: {
1
+ export declare const white_rabbit: {
2
2
  type: "remote";
3
3
  url: string;
4
4
  enabled: boolean;
@@ -2,6 +2,9 @@ export type ConfigLoadError = {
2
2
  path: string;
3
3
  error: string;
4
4
  };
5
+ export declare class ConfigError extends Error {
6
+ constructor(message: string);
7
+ }
5
8
  export declare function getConfigLoadErrors(): ConfigLoadError[];
6
9
  export declare function clearConfigLoadErrors(): void;
7
10
  export declare function addConfigLoadError(error: ConfigLoadError): void;
@@ -2,20 +2,5 @@ import type { CategoriesConfig, CategoryConfig } from "../config/schema";
2
2
  /**
3
3
  * Merge default and user categories, filtering out disabled ones.
4
4
  * Single source of truth for category merging across the codebase.
5
- *
6
- * The built-in `DEFAULT_CATEGORIES` registry is now tier-based. Before
7
- * returning, the tier fields are resolved against the live provider cache
8
- * (or the static fallback) so callers always see concrete `model:` strings.
9
5
  */
10
- export declare function mergeCategories(userCategories?: CategoriesConfig, config?: {
11
- tiers?: Record<string, {
12
- providerPriority: string[];
13
- modelPattern: string;
14
- fallbackTier?: string;
15
- fallback?: {
16
- providers: string[];
17
- model: string;
18
- variant?: string;
19
- }[];
20
- }>;
21
- } | null): Record<string, CategoryConfig>;
6
+ export declare function mergeCategories(userCategories?: CategoriesConfig): Record<string, CategoryConfig>;
@@ -1,3 +1,13 @@
1
1
  import type { MatrixxConfig } from "../config/schema";
2
+ import type { TasksConfig } from "../config/schema/tasks";
2
3
  export declare const TASK_SYSTEM_DEFAULT: true;
4
+ export type ResolvedTasksConfig = Required<Pick<TasksConfig, "enabled" | "scope" | "session_scoped">> & Pick<TasksConfig, "storage_path" | "task_list_id" | "stale_after_hours" | "pollTimeoutMs">;
5
+ /**
6
+ * Merge the canonical `tasks` section with legacy locations.
7
+ * Explicit `tasks.*` always wins; legacy keys fill the gaps:
8
+ * `experimental.task_system` / `new_task_system_enabled` → enabled,
9
+ * `morpheus.tasks.*` → same-named key, `task.pollTimeoutMs` → pollTimeoutMs.
10
+ * Pure derivation, no mutation — safe to call on every read.
11
+ */
12
+ export declare function resolveTasksConfig(config: Partial<MatrixxConfig> | undefined | null): ResolvedTasksConfig;
3
13
  export declare function isTaskSystemEnabled(config: Partial<MatrixxConfig> | undefined | null): boolean;
@@ -1,22 +1,12 @@
1
- import type { CategoriesConfig, CategoryConfig, ModelRequirements } from "../../config/schema";
2
- import type { TierResolverContext } from "../../shared/tier-resolver";
1
+ import type { CategoriesConfig, CategoryConfig, ModelPresetEntry, ModelRequirements } from "../../config/schema";
3
2
  interface ResolveCategoryConfigOptions {
4
3
  userCategories?: CategoriesConfig;
5
4
  inheritedModel?: string;
6
5
  systemDefaultModel?: string;
7
6
  availableModels?: Set<string>;
8
- tierContext?: TierResolverContext;
9
7
  modelRequirements?: ModelRequirements;
10
- tiers?: Record<string, {
11
- providerPriority: string[];
12
- modelPattern: string;
13
- fallbackTier?: string;
14
- fallback?: {
15
- providers: string[];
16
- model: string;
17
- variant?: string;
18
- }[];
19
- }>;
8
+ /** Preset entry resolved at call time (session overlay > config active_preset). */
9
+ presetEntry?: ModelPresetEntry;
20
10
  }
21
11
  interface ResolveCategoryConfigResult {
22
12
  config: CategoryConfig;
@@ -27,11 +17,6 @@ interface ResolveCategoryConfigResult {
27
17
  /**
28
18
  * Resolve the configuration for a given category name.
29
19
  * Merges default and user configurations, handles model resolution.
30
- *
31
- * Tier resolution: both `userConfig.tier` and `defaultConfig.tier` are
32
- * resolved against the live provider list (`tierContext`). An explicit
33
- * `userConfig.model` always wins; an explicit `userConfig.tier` wins
34
- * over the default tier; otherwise the default tier is used.
35
20
  */
36
21
  export declare function resolveCategoryConfig(categoryName: string, options: ResolveCategoryConfigOptions): ResolveCategoryConfigResult | null;
37
22
  export {};
@@ -1,10 +1,7 @@
1
- import type { Tiers } from "../../config/schema";
2
- import { type TierResolverContext } from "../../shared/tier-resolver";
3
1
  import type { ComplexityLevel } from "./complexity-types";
4
2
  export type ComplexityDowngradesConfig = Record<string, Record<string, string>>;
5
3
  export type ComplexityConfigHolder = {
6
4
  complexityDowngrades?: ComplexityDowngradesConfig;
7
- tiers?: Tiers;
8
5
  };
9
6
  /**
10
7
  * Resolve the model for a given category and complexity level.
@@ -12,17 +9,15 @@ export type ComplexityConfigHolder = {
12
9
  * Config-driven: no built-in literals. Downgrade map is resolved as:
13
10
  * userDowngrades ?? config.complexityDowngrades?.[category] ?? {}
14
11
  * If no entry for this complexity, returns original (no downgrade).
15
- * If value starts with "tier:", resolves via live tier resolver.
16
12
  *
17
13
  * @param category - The task category name
18
14
  * @param complexity - The complexity level (1-5)
19
15
  * @param originalModel - The currently resolved model string
20
16
  * @param userDowngrades - Optional per-category user override from CategoryConfig.complexity_downgrades
21
- * @param config - Optional holder with global complexityDowngrades and tiers
22
- * @param tierContext - Optional live provider context for tier: resolution
17
+ * @param config - Optional holder with global complexityDowngrades
23
18
  * @returns The model to use and whether a downgrade was applied
24
19
  */
25
- export declare function resolveComplexityModel(category: string, complexity: ComplexityLevel, originalModel: string, userDowngrades?: Record<string, string>, config?: ComplexityConfigHolder | ComplexityDowngradesConfig, tierContext?: TierResolverContext): {
20
+ export declare function resolveComplexityModel(category: string, complexity: ComplexityLevel, originalModel: string, userDowngrades?: Record<string, string>, config?: ComplexityConfigHolder | ComplexityDowngradesConfig): {
26
21
  model: string;
27
22
  downgraded: boolean;
28
23
  };
@@ -1,4 +1,4 @@
1
- import type { AgentOverrides, BrowserAutomationProvider, CategoriesConfig, ComplexityDowngrades, ModelRequirements, Tiers } from "../../config/schema";
1
+ import type { AgentOverrides, BrowserAutomationProvider, CategoriesConfig, ComplexityDowngrades, ModelPresets, ModelRequirements } from "../../config/schema";
2
2
  import type { BackgroundManager } from "../../features/background-agent";
3
3
  import type { OpencodeClient } from "./types";
4
4
  export interface ExecutorContext {
@@ -12,7 +12,12 @@ export interface ExecutorContext {
12
12
  agentOverrides?: AgentOverrides;
13
13
  modelRequirements?: ModelRequirements;
14
14
  complexityDowngrades?: ComplexityDowngrades;
15
- tiers?: Tiers;
15
+ /** Named model presets from plugin config (`model_presets`). */
16
+ modelPresets?: ModelPresets;
17
+ /** Active preset name from plugin config (`active_preset`). */
18
+ activePreset?: string;
19
+ /** Invoking (parent) session ID — its preset overlay propagates to delegated tasks. */
20
+ sessionID?: string;
16
21
  onSyncSessionCreated?: (event: {
17
22
  sessionID: string;
18
23
  parentID: string;
@@ -8,4 +8,9 @@ export declare function getTimingConfig(): {
8
8
  SESSION_CONTINUATION_STABILITY_MS: number;
9
9
  };
10
10
  export declare function __resetTimingConfig(): void;
11
+ /**
12
+ * Set poll timeout from plugin config. Called during plugin initialization.
13
+ * Accepts a value in milliseconds; falls back to 10 min default.
14
+ */
15
+ export declare function setPollTimeoutMs(ms: number): void;
11
16
  export declare function __setTimingConfig(overrides: Partial<ReturnType<typeof getTimingConfig>>): void;
@@ -1,6 +1,6 @@
1
1
  import type { PluginInput } from "@opencode-ai/plugin";
2
2
  import type { AvailableCategory, AvailableSkill } from "../../agents/dynamic-agent-prompt-builder";
3
- import type { AgentOverrides, BrowserAutomationProvider, CategoriesConfig, ComplexityDowngrades, ModelRequirements, Tiers } from "../../config/schema";
3
+ import type { AgentOverrides, BrowserAutomationProvider, CategoriesConfig, ComplexityDowngrades, ModelPresets, ModelRequirements } from "../../config/schema";
4
4
  import type { BackgroundManager } from "../../features/background-agent";
5
5
  export type OpencodeClient = PluginInput["client"];
6
6
  export interface DelegateTaskArgs {
@@ -71,7 +71,10 @@ export interface DelegateTaskToolOptions {
71
71
  agentOverrides?: AgentOverrides;
72
72
  modelRequirements?: ModelRequirements;
73
73
  complexityDowngrades?: ComplexityDowngrades;
74
- tiers?: Tiers;
74
+ /** Named model presets from plugin config (`model_presets`). */
75
+ modelPresets?: ModelPresets;
76
+ /** Active preset name from plugin config (`active_preset`). */
77
+ activePreset?: string;
75
78
  onSyncSessionCreated?: (event: SyncSessionCreatedEvent) => Promise<void>;
76
79
  }
77
80
  export interface BuildSystemContentInput {