drizzy-agent 0.4.1 → 0.5.0
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 +272 -580
- package/dist/config/schema/agent-names.d.ts +9 -9
- package/dist/config/schema/agent-overrides.d.ts +30 -30
- package/dist/config/schema/categories.d.ts +7 -7
- package/dist/config/schema/drizzy-agent-config.d.ts +30 -30
- package/dist/index.js +311 -603
- package/dist/shared/agent-model-defaults.d.ts +109 -0
- package/dist/shared/config-provenance.d.ts +13 -0
- package/dist/shared/model-requirements.d.ts +2 -5
- package/package.json +12 -12
package/dist/cli/index.js
CHANGED
|
@@ -3425,296 +3425,207 @@ var init_add_plugin_to_opencode_config = __esm(() => {
|
|
|
3425
3425
|
var INSTALL_DEFAULTS_SNAPSHOT_VERSION = 1;
|
|
3426
3426
|
var init_install_defaults_contract = () => {};
|
|
3427
3427
|
|
|
3428
|
-
// src/
|
|
3429
|
-
var
|
|
3430
|
-
var
|
|
3431
|
-
|
|
3428
|
+
// src/shared/agent-model-defaults.ts
|
|
3429
|
+
var CLAUDE_PROVIDERS, OPENAI_PROVIDERS, OPENAI_NATIVE_PROVIDERS, GEMINI_PROVIDERS, KIMI_K25_PROVIDERS, AGENT_MODEL_DEFAULTS, CATEGORY_MODEL_DEFAULTS;
|
|
3430
|
+
var init_agent_model_defaults = __esm(() => {
|
|
3431
|
+
CLAUDE_PROVIDERS = ["anthropic", "github-copilot", "opencode"];
|
|
3432
|
+
OPENAI_PROVIDERS = ["openai", "github-copilot", "opencode"];
|
|
3433
|
+
OPENAI_NATIVE_PROVIDERS = ["openai", "opencode"];
|
|
3434
|
+
GEMINI_PROVIDERS = ["google", "github-copilot", "opencode"];
|
|
3435
|
+
KIMI_K25_PROVIDERS = ["opencode", "moonshotai", "moonshotai-cn", "firmware", "ollama-cloud", "aihubmix"];
|
|
3436
|
+
AGENT_MODEL_DEFAULTS = {
|
|
3432
3437
|
coder: {
|
|
3433
|
-
|
|
3434
|
-
{
|
|
3435
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
3436
|
-
model: "claude-opus-4-6",
|
|
3437
|
-
variant: "max"
|
|
3438
|
-
},
|
|
3438
|
+
chain: [
|
|
3439
|
+
{ providers: CLAUDE_PROVIDERS, model: "claude-opus-4-6", variant: "max" },
|
|
3439
3440
|
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
|
3440
|
-
{ providers:
|
|
3441
|
-
{ providers:
|
|
3441
|
+
{ providers: KIMI_K25_PROVIDERS, model: "kimi-k2.5" },
|
|
3442
|
+
{ providers: OPENAI_PROVIDERS, model: "gpt-5.4", variant: "medium" },
|
|
3443
|
+
{ providers: ["zai-coding-plan", "opencode"], model: "glm-5" },
|
|
3444
|
+
{ providers: ["opencode"], model: "big-pickle", alwaysAvailable: true }
|
|
3442
3445
|
],
|
|
3443
|
-
|
|
3446
|
+
includeInInstall: true,
|
|
3447
|
+
requiresAnyProvider: [
|
|
3448
|
+
"anthropic",
|
|
3449
|
+
"github-copilot",
|
|
3450
|
+
"opencode",
|
|
3451
|
+
"kimi-for-coding",
|
|
3452
|
+
"moonshotai",
|
|
3453
|
+
"moonshotai-cn",
|
|
3454
|
+
"firmware",
|
|
3455
|
+
"ollama-cloud",
|
|
3456
|
+
"aihubmix",
|
|
3457
|
+
"openai",
|
|
3458
|
+
"zai-coding-plan"
|
|
3459
|
+
]
|
|
3444
3460
|
},
|
|
3445
3461
|
gptcoder: {
|
|
3446
|
-
|
|
3447
|
-
{
|
|
3448
|
-
|
|
3449
|
-
model: "gpt-5.4",
|
|
3450
|
-
variant: "medium"
|
|
3451
|
-
}
|
|
3462
|
+
chain: [
|
|
3463
|
+
{ providers: ["openai", "venice", "opencode"], model: "gpt-5.4", variant: "medium" },
|
|
3464
|
+
{ providers: ["github-copilot"], model: "gpt-5.4", variant: "medium" }
|
|
3452
3465
|
],
|
|
3453
|
-
|
|
3466
|
+
includeInInstall: true,
|
|
3467
|
+
requiresAnyProvider: ["openai", "github-copilot", "venice", "opencode"]
|
|
3468
|
+
},
|
|
3469
|
+
planner: {
|
|
3470
|
+
chain: [
|
|
3471
|
+
{ providers: CLAUDE_PROVIDERS, model: "claude-opus-4-6", variant: "max" },
|
|
3472
|
+
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
|
3473
|
+
{ providers: OPENAI_PROVIDERS, model: "gpt-5.4", variant: "high" },
|
|
3474
|
+
{ providers: GEMINI_PROVIDERS, model: "gemini-3.1-pro" }
|
|
3475
|
+
],
|
|
3476
|
+
includeInInstall: true
|
|
3454
3477
|
},
|
|
3455
3478
|
oracle: {
|
|
3456
|
-
|
|
3457
|
-
{
|
|
3458
|
-
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
}
|
|
3462
|
-
|
|
3463
|
-
|
|
3464
|
-
model: "gemini-3.1-pro",
|
|
3465
|
-
variant: "high"
|
|
3466
|
-
},
|
|
3467
|
-
{
|
|
3468
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
3469
|
-
model: "claude-opus-4-6",
|
|
3470
|
-
variant: "max"
|
|
3471
|
-
}
|
|
3472
|
-
]
|
|
3479
|
+
chain: [
|
|
3480
|
+
{ providers: OPENAI_PROVIDERS, model: "gpt-5.4", variant: "high" },
|
|
3481
|
+
{ providers: KIMI_K25_PROVIDERS, model: "kimi-k2.5" },
|
|
3482
|
+
{ providers: GEMINI_PROVIDERS, model: "gemini-3.1-pro", variant: "high" },
|
|
3483
|
+
{ providers: CLAUDE_PROVIDERS, model: "claude-opus-4-6", variant: "max" },
|
|
3484
|
+
{ providers: ["opencode"], model: "big-pickle", alwaysAvailable: true }
|
|
3485
|
+
],
|
|
3486
|
+
includeInInstall: true
|
|
3473
3487
|
},
|
|
3474
3488
|
librarian: {
|
|
3475
|
-
|
|
3476
|
-
{ providers:
|
|
3477
|
-
{ providers: ["opencode"], model: "glm-4.7
|
|
3478
|
-
{
|
|
3479
|
-
|
|
3480
|
-
|
|
3481
|
-
}
|
|
3482
|
-
]
|
|
3489
|
+
chain: [
|
|
3490
|
+
{ providers: GEMINI_PROVIDERS, model: "gemini-3-flash" },
|
|
3491
|
+
{ providers: ["opencode"], model: "glm-4.7" },
|
|
3492
|
+
{ providers: CLAUDE_PROVIDERS, model: "claude-sonnet-4-5" },
|
|
3493
|
+
{ providers: ["opencode"], model: "minimax-m2.5-free", alwaysAvailable: true },
|
|
3494
|
+
{ providers: ["opencode"], model: "big-pickle", alwaysAvailable: true },
|
|
3495
|
+
{ providers: ["opencode"], model: "glm-4.7-free", alwaysAvailable: true }
|
|
3496
|
+
],
|
|
3497
|
+
includeInInstall: true,
|
|
3498
|
+
specialCases: { zaiOverride: { model: "zai-coding-plan/glm-4.7" }, openAiOnlyOverride: { model: "openai/gpt-5.4", variant: "medium" } }
|
|
3483
3499
|
},
|
|
3484
3500
|
explore: {
|
|
3485
|
-
|
|
3501
|
+
chain: [
|
|
3486
3502
|
{ providers: ["github-copilot"], model: "grok-code-fast-1" },
|
|
3503
|
+
{ providers: ["opencode"], model: "minimax-m2.5-free", alwaysAvailable: true },
|
|
3487
3504
|
{ providers: ["anthropic", "opencode"], model: "claude-haiku-4-5" },
|
|
3488
|
-
{ providers: ["opencode"], model: "gpt-5-nano" }
|
|
3489
|
-
]
|
|
3505
|
+
{ providers: ["opencode"], model: "gpt-5-nano", alwaysAvailable: true }
|
|
3506
|
+
],
|
|
3507
|
+
includeInInstall: true,
|
|
3508
|
+
specialCases: { customResolver: "explore-agent", openAiOnlyOverride: { model: "openai/gpt-5.4", variant: "medium" } }
|
|
3490
3509
|
},
|
|
3491
3510
|
"multimodal-looker": {
|
|
3492
|
-
|
|
3493
|
-
|
|
3494
|
-
providers: ["openai", "opencode"],
|
|
3495
|
-
model: "gpt-5.4",
|
|
3496
|
-
variant: "medium"
|
|
3497
|
-
},
|
|
3498
|
-
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
|
3499
|
-
{
|
|
3500
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
3501
|
-
model: "gemini-3-flash"
|
|
3502
|
-
},
|
|
3503
|
-
{ providers: ["zai-coding-plan"], model: "glm-4.6v" },
|
|
3504
|
-
{ providers: ["opencode"], model: "gpt-5-nano" }
|
|
3505
|
-
]
|
|
3506
|
-
},
|
|
3507
|
-
planner: {
|
|
3508
|
-
fallbackChain: [
|
|
3509
|
-
{
|
|
3510
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
3511
|
-
model: "claude-opus-4-6",
|
|
3512
|
-
variant: "max"
|
|
3513
|
-
},
|
|
3514
|
-
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
|
3515
|
-
{
|
|
3516
|
-
providers: ["openai", "github-copilot", "opencode"],
|
|
3517
|
-
model: "gpt-5.4",
|
|
3518
|
-
variant: "high"
|
|
3519
|
-
},
|
|
3520
|
-
{
|
|
3521
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
3522
|
-
model: "gemini-3.1-pro"
|
|
3523
|
-
}
|
|
3524
|
-
]
|
|
3511
|
+
chain: [{ providers: OPENAI_NATIVE_PROVIDERS, model: "gpt-5.4", variant: "medium" }, { providers: ["kimi-for-coding"], model: "k2p5" }, { providers: GEMINI_PROVIDERS, model: "gemini-3-flash" }, { providers: ["zai-coding-plan"], model: "glm-4.6v" }, { providers: OPENAI_PROVIDERS, model: "gpt-5-nano" }],
|
|
3512
|
+
includeInInstall: true
|
|
3525
3513
|
},
|
|
3526
3514
|
planConsultant: {
|
|
3527
|
-
|
|
3528
|
-
|
|
3529
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
3530
|
-
model: "claude-opus-4-6",
|
|
3531
|
-
variant: "max"
|
|
3532
|
-
},
|
|
3533
|
-
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
|
3534
|
-
{
|
|
3535
|
-
providers: ["openai", "github-copilot", "opencode"],
|
|
3536
|
-
model: "gpt-5.4",
|
|
3537
|
-
variant: "high"
|
|
3538
|
-
},
|
|
3539
|
-
{
|
|
3540
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
3541
|
-
model: "gemini-3.1-pro",
|
|
3542
|
-
variant: "high"
|
|
3543
|
-
}
|
|
3544
|
-
]
|
|
3515
|
+
chain: [{ providers: CLAUDE_PROVIDERS, model: "claude-opus-4-6", variant: "max" }, { providers: ["kimi-for-coding"], model: "k2p5" }, { providers: OPENAI_PROVIDERS, model: "gpt-5.4", variant: "high" }, { providers: GEMINI_PROVIDERS, model: "gemini-3.1-pro", variant: "high" }],
|
|
3516
|
+
includeInInstall: true
|
|
3545
3517
|
},
|
|
3546
3518
|
planReviewer: {
|
|
3547
|
-
|
|
3548
|
-
{
|
|
3549
|
-
|
|
3550
|
-
|
|
3551
|
-
|
|
3552
|
-
}
|
|
3553
|
-
|
|
3554
|
-
|
|
3555
|
-
model: "claude-opus-4-6",
|
|
3556
|
-
variant: "max"
|
|
3557
|
-
},
|
|
3558
|
-
{
|
|
3559
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
3560
|
-
model: "gemini-3.1-pro",
|
|
3561
|
-
variant: "high"
|
|
3562
|
-
}
|
|
3563
|
-
]
|
|
3519
|
+
chain: [
|
|
3520
|
+
{ providers: OPENAI_PROVIDERS, model: "gpt-5.4", variant: "xhigh" },
|
|
3521
|
+
{ providers: KIMI_K25_PROVIDERS, model: "kimi-k2.5" },
|
|
3522
|
+
{ providers: CLAUDE_PROVIDERS, model: "claude-opus-4-6", variant: "max" },
|
|
3523
|
+
{ providers: GEMINI_PROVIDERS, model: "gemini-3.1-pro", variant: "high" },
|
|
3524
|
+
{ providers: ["opencode"], model: "big-pickle", alwaysAvailable: true }
|
|
3525
|
+
],
|
|
3526
|
+
includeInInstall: true
|
|
3564
3527
|
},
|
|
3565
3528
|
atlas: {
|
|
3566
|
-
|
|
3567
|
-
|
|
3568
|
-
|
|
3569
|
-
|
|
3570
|
-
|
|
3571
|
-
|
|
3572
|
-
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.4", variant: "medium" },
|
|
3573
|
-
{
|
|
3574
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
3575
|
-
model: "gemini-3.1-pro"
|
|
3576
|
-
}
|
|
3577
|
-
]
|
|
3529
|
+
chain: [{ providers: ["kimi-for-coding"], model: "k2p5" }, { providers: CLAUDE_PROVIDERS, model: "claude-sonnet-4-6" }, { providers: CLAUDE_PROVIDERS, model: "claude-sonnet-4-5" }, { providers: OPENAI_PROVIDERS, model: "gpt-5.4", variant: "medium" }, { providers: GEMINI_PROVIDERS, model: "gemini-3.1-pro" }],
|
|
3530
|
+
includeInInstall: true
|
|
3531
|
+
},
|
|
3532
|
+
"coder-junior": {
|
|
3533
|
+
chain: [{ providers: CLAUDE_PROVIDERS, model: "claude-sonnet-4-6" }, { providers: OPENAI_PROVIDERS, model: "gpt-5.4", variant: "medium" }, { providers: GEMINI_PROVIDERS, model: "gemini-3-flash" }],
|
|
3534
|
+
includeInInstall: false
|
|
3578
3535
|
}
|
|
3579
3536
|
};
|
|
3580
|
-
|
|
3537
|
+
CATEGORY_MODEL_DEFAULTS = {
|
|
3581
3538
|
"visual-engineering": {
|
|
3582
|
-
|
|
3583
|
-
{
|
|
3584
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
3585
|
-
model: "gemini-3.1-pro",
|
|
3586
|
-
variant: "high"
|
|
3587
|
-
},
|
|
3539
|
+
chain: [
|
|
3540
|
+
{ providers: GEMINI_PROVIDERS, model: "gemini-3.1-pro", variant: "high" },
|
|
3588
3541
|
{ providers: ["zai-coding-plan", "opencode"], model: "glm-5" },
|
|
3589
|
-
{
|
|
3590
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
3591
|
-
model: "claude-opus-4-6",
|
|
3592
|
-
variant: "max"
|
|
3593
|
-
},
|
|
3542
|
+
{ providers: CLAUDE_PROVIDERS, model: "claude-opus-4-6", variant: "max" },
|
|
3594
3543
|
{ providers: ["kimi-for-coding"], model: "k2p5" }
|
|
3595
|
-
]
|
|
3544
|
+
],
|
|
3545
|
+
includeInInstall: true,
|
|
3546
|
+
specialCases: { openAiOnlyOverride: { model: "openai/gpt-5.4", variant: "high" } }
|
|
3596
3547
|
},
|
|
3597
3548
|
ultrabrain: {
|
|
3598
|
-
|
|
3599
|
-
{
|
|
3600
|
-
|
|
3601
|
-
|
|
3602
|
-
|
|
3603
|
-
}
|
|
3604
|
-
|
|
3605
|
-
|
|
3606
|
-
model: "gemini-3.1-pro",
|
|
3607
|
-
variant: "high"
|
|
3608
|
-
},
|
|
3609
|
-
{
|
|
3610
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
3611
|
-
model: "claude-opus-4-6",
|
|
3612
|
-
variant: "max"
|
|
3613
|
-
}
|
|
3614
|
-
]
|
|
3549
|
+
chain: [
|
|
3550
|
+
{ providers: OPENAI_NATIVE_PROVIDERS, model: "gpt-5.4", variant: "xhigh" },
|
|
3551
|
+
{ providers: GEMINI_PROVIDERS, model: "gemini-3.1-pro", variant: "high" },
|
|
3552
|
+
{ providers: CLAUDE_PROVIDERS, model: "claude-opus-4-6", variant: "max" },
|
|
3553
|
+
{ providers: KIMI_K25_PROVIDERS, model: "kimi-k2.5" },
|
|
3554
|
+
{ providers: ["opencode"], model: "big-pickle", alwaysAvailable: true }
|
|
3555
|
+
],
|
|
3556
|
+
includeInInstall: true
|
|
3615
3557
|
},
|
|
3616
3558
|
deep: {
|
|
3617
|
-
|
|
3618
|
-
{
|
|
3619
|
-
|
|
3620
|
-
|
|
3621
|
-
|
|
3622
|
-
}
|
|
3623
|
-
{
|
|
3624
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
3625
|
-
model: "claude-opus-4-6",
|
|
3626
|
-
variant: "max"
|
|
3627
|
-
},
|
|
3628
|
-
{
|
|
3629
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
3630
|
-
model: "gemini-3.1-pro",
|
|
3631
|
-
variant: "high"
|
|
3632
|
-
}
|
|
3559
|
+
chain: [
|
|
3560
|
+
{ providers: OPENAI_NATIVE_PROVIDERS, model: "gpt-5.4", variant: "medium" },
|
|
3561
|
+
{ providers: CLAUDE_PROVIDERS, model: "claude-opus-4-6", variant: "max" },
|
|
3562
|
+
{ providers: GEMINI_PROVIDERS, model: "gemini-3.1-pro", variant: "high" },
|
|
3563
|
+
{ providers: KIMI_K25_PROVIDERS, model: "kimi-k2.5" },
|
|
3564
|
+
{ providers: ["opencode"], model: "big-pickle", alwaysAvailable: true }
|
|
3633
3565
|
],
|
|
3634
|
-
|
|
3566
|
+
includeInInstall: true
|
|
3635
3567
|
},
|
|
3636
3568
|
artistry: {
|
|
3637
|
-
|
|
3638
|
-
{
|
|
3639
|
-
|
|
3640
|
-
|
|
3641
|
-
|
|
3642
|
-
}
|
|
3643
|
-
{
|
|
3644
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
3645
|
-
model: "claude-opus-4-6",
|
|
3646
|
-
variant: "max"
|
|
3647
|
-
},
|
|
3648
|
-
{
|
|
3649
|
-
providers: ["openai", "github-copilot", "opencode"],
|
|
3650
|
-
model: "gpt-5.4"
|
|
3651
|
-
}
|
|
3569
|
+
chain: [
|
|
3570
|
+
{ providers: GEMINI_PROVIDERS, model: "gemini-3.1-pro", variant: "high" },
|
|
3571
|
+
{ providers: CLAUDE_PROVIDERS, model: "claude-opus-4-6", variant: "max" },
|
|
3572
|
+
{ providers: OPENAI_PROVIDERS, model: "gpt-5.4" },
|
|
3573
|
+
{ providers: KIMI_K25_PROVIDERS, model: "kimi-k2.5" },
|
|
3574
|
+
{ providers: ["opencode"], model: "minimax-m2.5-free", alwaysAvailable: true }
|
|
3652
3575
|
],
|
|
3653
|
-
|
|
3576
|
+
includeInInstall: true,
|
|
3577
|
+
specialCases: { openAiOnlyOverride: { model: "openai/gpt-5.4", variant: "xhigh" } }
|
|
3654
3578
|
},
|
|
3655
3579
|
quick: {
|
|
3656
|
-
|
|
3657
|
-
{
|
|
3658
|
-
|
|
3659
|
-
|
|
3660
|
-
}
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
},
|
|
3665
|
-
{ providers: ["opencode"], model: "gpt-5-nano" }
|
|
3666
|
-
]
|
|
3580
|
+
chain: [
|
|
3581
|
+
{ providers: CLAUDE_PROVIDERS, model: "claude-haiku-4-5" },
|
|
3582
|
+
{ providers: GEMINI_PROVIDERS, model: "gemini-3-flash" },
|
|
3583
|
+
{ providers: OPENAI_NATIVE_PROVIDERS, model: "gpt-5.1-codex-mini", variant: "low" },
|
|
3584
|
+
{ providers: ["opencode"], model: "gpt-5-nano", alwaysAvailable: true }
|
|
3585
|
+
],
|
|
3586
|
+
includeInInstall: true,
|
|
3587
|
+
specialCases: { openAiOnlyOverride: { model: "openai/gpt-5.4", variant: "low" } }
|
|
3667
3588
|
},
|
|
3668
3589
|
"unspecified-low": {
|
|
3669
|
-
|
|
3670
|
-
{
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
},
|
|
3674
|
-
{
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
variant: "medium"
|
|
3678
|
-
},
|
|
3679
|
-
{
|
|
3680
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
3681
|
-
model: "gemini-3-flash"
|
|
3682
|
-
}
|
|
3683
|
-
]
|
|
3590
|
+
chain: [
|
|
3591
|
+
{ providers: CLAUDE_PROVIDERS, model: "claude-sonnet-4-6" },
|
|
3592
|
+
{ providers: KIMI_K25_PROVIDERS, model: "kimi-k2.5" },
|
|
3593
|
+
{ providers: OPENAI_NATIVE_PROVIDERS, model: "gpt-5.4", variant: "medium" },
|
|
3594
|
+
{ providers: GEMINI_PROVIDERS, model: "gemini-3-flash" },
|
|
3595
|
+
{ providers: ["opencode"], model: "minimax-m2.5-free", alwaysAvailable: true }
|
|
3596
|
+
],
|
|
3597
|
+
includeInInstall: true
|
|
3684
3598
|
},
|
|
3685
3599
|
"unspecified-high": {
|
|
3686
|
-
|
|
3687
|
-
|
|
3688
|
-
providers: ["openai", "github-copilot", "opencode"],
|
|
3689
|
-
model: "gpt-5.4",
|
|
3690
|
-
variant: "high"
|
|
3691
|
-
},
|
|
3692
|
-
{
|
|
3693
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
3694
|
-
model: "claude-opus-4-6",
|
|
3695
|
-
variant: "max"
|
|
3696
|
-
},
|
|
3697
|
-
{ providers: ["zai-coding-plan", "opencode"], model: "glm-5" },
|
|
3698
|
-
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
|
3699
|
-
{ providers: ["opencode"], model: "kimi-k2.5" }
|
|
3700
|
-
]
|
|
3600
|
+
chain: [{ providers: CLAUDE_PROVIDERS, model: "claude-opus-4-6", variant: "max" }, { providers: OPENAI_PROVIDERS, model: "gpt-5.4", variant: "high" }, { providers: ["zai-coding-plan", "opencode"], model: "glm-5" }, { providers: ["kimi-for-coding"], model: "k2p5" }, { providers: KIMI_K25_PROVIDERS, model: "kimi-k2.5" }],
|
|
3601
|
+
includeInInstall: true
|
|
3701
3602
|
},
|
|
3702
3603
|
writing: {
|
|
3703
|
-
|
|
3704
|
-
|
|
3705
|
-
|
|
3706
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
3707
|
-
model: "gemini-3-flash"
|
|
3708
|
-
},
|
|
3709
|
-
{
|
|
3710
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
3711
|
-
model: "claude-sonnet-4-5"
|
|
3712
|
-
}
|
|
3713
|
-
]
|
|
3604
|
+
chain: [{ providers: GEMINI_PROVIDERS, model: "gemini-3-flash" }, { providers: ["kimi-for-coding"], model: "k2p5" }, { providers: CLAUDE_PROVIDERS, model: "claude-sonnet-4-6" }],
|
|
3605
|
+
includeInInstall: true,
|
|
3606
|
+
specialCases: { openAiOnlyOverride: { model: "openai/gpt-5.4", variant: "medium" } }
|
|
3714
3607
|
}
|
|
3715
3608
|
};
|
|
3716
3609
|
});
|
|
3717
3610
|
|
|
3611
|
+
// src/cli/model-fallback-requirements.ts
|
|
3612
|
+
function toCliModelRequirements(defaults, options = {}) {
|
|
3613
|
+
return Object.fromEntries(Object.entries(defaults).filter(([, def]) => def.includeInInstall).map(([name, def]) => [
|
|
3614
|
+
name,
|
|
3615
|
+
{
|
|
3616
|
+
fallbackChain: def.chain,
|
|
3617
|
+
requiresAnyModel: options.includeProviderRequirements && def.requiresAnyProvider?.length ? true : undefined,
|
|
3618
|
+
requiresProvider: options.includeProviderRequirements ? def.requiresAnyProvider : undefined
|
|
3619
|
+
}
|
|
3620
|
+
]));
|
|
3621
|
+
}
|
|
3622
|
+
var CLI_AGENT_MODEL_REQUIREMENTS, CLI_CATEGORY_MODEL_REQUIREMENTS;
|
|
3623
|
+
var init_model_fallback_requirements = __esm(() => {
|
|
3624
|
+
init_agent_model_defaults();
|
|
3625
|
+
CLI_AGENT_MODEL_REQUIREMENTS = toCliModelRequirements(AGENT_MODEL_DEFAULTS, { includeProviderRequirements: true });
|
|
3626
|
+
CLI_CATEGORY_MODEL_REQUIREMENTS = toCliModelRequirements(CATEGORY_MODEL_DEFAULTS);
|
|
3627
|
+
});
|
|
3628
|
+
|
|
3718
3629
|
// src/shared/provider-model-id-transform.ts
|
|
3719
3630
|
function transformModelForProvider(provider, model) {
|
|
3720
3631
|
if (provider === "github-copilot") {
|
|
@@ -3732,6 +3643,14 @@ var init_provider_model_id_transform = () => {};
|
|
|
3732
3643
|
// src/cli/fallback-chain-resolution.ts
|
|
3733
3644
|
function resolveModelFromChain(fallbackChain, availability) {
|
|
3734
3645
|
for (const entry of fallbackChain) {
|
|
3646
|
+
if (entry.alwaysAvailable) {
|
|
3647
|
+
const provider = entry.providers[0];
|
|
3648
|
+
const transformedModel = transformModelForProvider(provider, entry.model);
|
|
3649
|
+
return {
|
|
3650
|
+
model: `${provider}/${transformedModel}`,
|
|
3651
|
+
variant: entry.variant
|
|
3652
|
+
};
|
|
3653
|
+
}
|
|
3735
3654
|
for (const provider of entry.providers) {
|
|
3736
3655
|
if (isProviderAvailable(provider, availability)) {
|
|
3737
3656
|
const transformedModel = transformModelForProvider(provider, entry.model);
|
|
@@ -3747,13 +3666,12 @@ function resolveModelFromChain(fallbackChain, availability) {
|
|
|
3747
3666
|
function getCoderFallbackChain() {
|
|
3748
3667
|
return CLI_AGENT_MODEL_REQUIREMENTS.coder.fallbackChain;
|
|
3749
3668
|
}
|
|
3750
|
-
function isAnyFallbackEntryAvailable(fallbackChain, availability) {
|
|
3751
|
-
return fallbackChain.some((entry) => entry.providers.some((provider) => isProviderAvailable(provider, availability)));
|
|
3752
|
-
}
|
|
3753
3669
|
function isRequiredModelAvailable(requiresModel, fallbackChain, availability) {
|
|
3754
3670
|
const matchingEntry = fallbackChain.find((entry) => entry.model === requiresModel);
|
|
3755
3671
|
if (!matchingEntry)
|
|
3756
3672
|
return false;
|
|
3673
|
+
if (matchingEntry.alwaysAvailable)
|
|
3674
|
+
return true;
|
|
3757
3675
|
return matchingEntry.providers.some((provider) => isProviderAvailable(provider, availability));
|
|
3758
3676
|
}
|
|
3759
3677
|
function isRequiredProviderAvailable(requiredProviders, availability) {
|
|
@@ -3782,26 +3700,22 @@ function toComputedProviderAvailability(providers, options) {
|
|
|
3782
3700
|
}
|
|
3783
3701
|
function computeDefaultsFromProviders(providers, options) {
|
|
3784
3702
|
const availability = toComputedProviderAvailability(providers, options);
|
|
3785
|
-
|
|
3786
|
-
|
|
3787
|
-
agents: Object.fromEntries(Object.entries(CLI_AGENT_MODEL_REQUIREMENTS).filter(([role, requirement]) => !(role === "coder" && requirement.requiresAnyModel)).map(([role]) => [role, { model: ULTIMATE_FALLBACK }])),
|
|
3788
|
-
categories: Object.fromEntries(Object.keys(CLI_CATEGORY_MODEL_REQUIREMENTS).map((category) => [category, { model: ULTIMATE_FALLBACK }]))
|
|
3789
|
-
};
|
|
3790
|
-
}
|
|
3703
|
+
const hasAnyUsableFallback = (chain) => chain?.some((entry) => entry.alwaysAvailable || entry.providers.some((p) => isProviderAvailable(p, availability)));
|
|
3704
|
+
const canUseCoder = !CLI_AGENT_MODEL_REQUIREMENTS.coder.requiresAnyModel || hasAnyUsableFallback(getCoderFallbackChain());
|
|
3791
3705
|
const agents = {};
|
|
3792
3706
|
const categories = {};
|
|
3793
3707
|
for (const [role, requirement] of Object.entries(CLI_AGENT_MODEL_REQUIREMENTS)) {
|
|
3794
|
-
if (role === "librarian" && availability.zai) {
|
|
3708
|
+
if (role === "librarian" && availability.zai && AGENT_MODEL_DEFAULTS.librarian.specialCases?.zaiOverride) {
|
|
3795
3709
|
agents[role] = { model: ZAI_MODEL };
|
|
3796
3710
|
continue;
|
|
3797
3711
|
}
|
|
3798
|
-
if (role === "explore") {
|
|
3712
|
+
if (role === "explore" && AGENT_MODEL_DEFAULTS.explore.specialCases?.customResolver === "explore-agent") {
|
|
3799
3713
|
agents[role] = resolveExploreAgent(availability);
|
|
3800
3714
|
continue;
|
|
3801
3715
|
}
|
|
3802
3716
|
if (role === "coder") {
|
|
3803
3717
|
const fallbackChain = getCoderFallbackChain();
|
|
3804
|
-
if (requirement.requiresAnyModel && !
|
|
3718
|
+
if (requirement.requiresAnyModel && !canUseCoder) {
|
|
3805
3719
|
continue;
|
|
3806
3720
|
}
|
|
3807
3721
|
const resolvedCoder = resolveModelFromChain(fallbackChain, availability);
|
|
@@ -3810,23 +3724,20 @@ function computeDefaultsFromProviders(providers, options) {
|
|
|
3810
3724
|
}
|
|
3811
3725
|
continue;
|
|
3812
3726
|
}
|
|
3813
|
-
const resolved = resolveRequirementDefault(requirement, availability);
|
|
3727
|
+
const resolved = resolveRequirementDefault(requirement, availability, requirement.fallbackChain, getUltimateFallback(role));
|
|
3814
3728
|
if (resolved) {
|
|
3815
3729
|
agents[role] = resolved;
|
|
3816
3730
|
}
|
|
3817
3731
|
}
|
|
3818
3732
|
for (const [category, requirement] of Object.entries(CLI_CATEGORY_MODEL_REQUIREMENTS)) {
|
|
3819
3733
|
const fallbackChain = category === "unspecified-high" && !availability.isMaxPlan ? CLI_CATEGORY_MODEL_REQUIREMENTS["unspecified-low"].fallbackChain : requirement.fallbackChain;
|
|
3820
|
-
const resolved = resolveRequirementDefault(requirement, availability, fallbackChain);
|
|
3734
|
+
const resolved = resolveRequirementDefault(requirement, availability, fallbackChain, getCategoryUltimateFallback(category));
|
|
3821
3735
|
if (resolved) {
|
|
3822
3736
|
categories[category] = resolved;
|
|
3823
3737
|
}
|
|
3824
3738
|
}
|
|
3825
3739
|
return { agents, categories };
|
|
3826
3740
|
}
|
|
3827
|
-
function hasAnyProvider(availability) {
|
|
3828
|
-
return availability.native.claude || availability.native.openai || availability.native.gemini || availability.opencodeZen || availability.copilot || availability.zai || availability.kimiForCoding;
|
|
3829
|
-
}
|
|
3830
3741
|
function resolveExploreAgent(availability) {
|
|
3831
3742
|
if (availability.native.claude) {
|
|
3832
3743
|
return { model: "anthropic/claude-haiku-4-5" };
|
|
@@ -3839,7 +3750,7 @@ function resolveExploreAgent(availability) {
|
|
|
3839
3750
|
}
|
|
3840
3751
|
return { model: "opencode/gpt-5-nano" };
|
|
3841
3752
|
}
|
|
3842
|
-
function resolveRequirementDefault(requirement, availability, fallbackChain = requirement.fallbackChain) {
|
|
3753
|
+
function resolveRequirementDefault(requirement, availability, fallbackChain = requirement.fallbackChain, ultimateFallback = GLOBAL_ULTIMATE_FALLBACK) {
|
|
3843
3754
|
if (requirement.requiresModel && !isRequiredModelAvailable(requirement.requiresModel, requirement.fallbackChain, availability)) {
|
|
3844
3755
|
return;
|
|
3845
3756
|
}
|
|
@@ -3848,17 +3759,35 @@ function resolveRequirementDefault(requirement, availability, fallbackChain = re
|
|
|
3848
3759
|
}
|
|
3849
3760
|
const resolved = resolveModelFromChain(fallbackChain, availability);
|
|
3850
3761
|
if (!resolved) {
|
|
3851
|
-
return { model:
|
|
3762
|
+
return { model: ultimateFallback };
|
|
3852
3763
|
}
|
|
3853
3764
|
return withVariant(resolved.model, resolved.variant ?? requirement.variant);
|
|
3854
3765
|
}
|
|
3766
|
+
function getUltimateFallback(agentName) {
|
|
3767
|
+
return getFallbackModelFromChain(AGENT_MODEL_DEFAULTS[agentName]?.chain) ?? GLOBAL_ULTIMATE_FALLBACK;
|
|
3768
|
+
}
|
|
3769
|
+
function getCategoryUltimateFallback(categoryName) {
|
|
3770
|
+
return getFallbackModelFromChain(CATEGORY_MODEL_DEFAULTS[categoryName]?.chain) ?? GLOBAL_ULTIMATE_FALLBACK;
|
|
3771
|
+
}
|
|
3772
|
+
function getFallbackModelFromChain(fallbackChain) {
|
|
3773
|
+
const lastEntry = fallbackChain?.[fallbackChain.length - 1];
|
|
3774
|
+
const provider = lastEntry?.providers[0];
|
|
3775
|
+
if (!provider) {
|
|
3776
|
+
return;
|
|
3777
|
+
}
|
|
3778
|
+
return `${provider}/${lastEntry.model}`;
|
|
3779
|
+
}
|
|
3855
3780
|
function withVariant(model, variant) {
|
|
3856
3781
|
return variant ? { model, variant } : { model };
|
|
3857
3782
|
}
|
|
3858
|
-
var ZAI_MODEL
|
|
3783
|
+
var ZAI_MODEL, GLOBAL_ULTIMATE_FALLBACK;
|
|
3859
3784
|
var init_computed_install_defaults = __esm(() => {
|
|
3860
3785
|
init_fallback_chain_resolution();
|
|
3786
|
+
init_provider_availability();
|
|
3861
3787
|
init_model_fallback_requirements();
|
|
3788
|
+
init_agent_model_defaults();
|
|
3789
|
+
ZAI_MODEL = AGENT_MODEL_DEFAULTS.librarian.specialCases?.zaiOverride?.model ?? "zai-coding-plan/glm-4.7";
|
|
3790
|
+
GLOBAL_ULTIMATE_FALLBACK = getFallbackModelFromChain(AGENT_MODEL_DEFAULTS.librarian.chain) ?? "opencode/glm-4.7-free";
|
|
3862
3791
|
});
|
|
3863
3792
|
|
|
3864
3793
|
// src/cli/provider-availability.ts
|
|
@@ -5490,7 +5419,7 @@ var {
|
|
|
5490
5419
|
// package.json
|
|
5491
5420
|
var package_default = {
|
|
5492
5421
|
name: "drizzy-agent",
|
|
5493
|
-
version: "0.
|
|
5422
|
+
version: "0.5.0",
|
|
5494
5423
|
description: "DrizzyAgent - AI agent plugin for OpenCode",
|
|
5495
5424
|
main: "dist/index.js",
|
|
5496
5425
|
types: "dist/index.d.ts",
|
|
@@ -5566,17 +5495,17 @@ var package_default = {
|
|
|
5566
5495
|
typescript: "^5.7.3"
|
|
5567
5496
|
},
|
|
5568
5497
|
optionalDependencies: {
|
|
5569
|
-
"drizzy-agent-darwin-arm64": "0.
|
|
5570
|
-
"drizzy-agent-darwin-x64": "0.
|
|
5571
|
-
"drizzy-agent-darwin-x64-baseline": "0.
|
|
5572
|
-
"drizzy-agent-linux-arm64": "0.
|
|
5573
|
-
"drizzy-agent-linux-arm64-musl": "0.
|
|
5574
|
-
"drizzy-agent-linux-x64": "0.
|
|
5575
|
-
"drizzy-agent-linux-x64-baseline": "0.
|
|
5576
|
-
"drizzy-agent-linux-x64-musl": "0.
|
|
5577
|
-
"drizzy-agent-linux-x64-musl-baseline": "0.
|
|
5578
|
-
"drizzy-agent-windows-x64": "0.
|
|
5579
|
-
"drizzy-agent-windows-x64-baseline": "0.
|
|
5498
|
+
"drizzy-agent-darwin-arm64": "0.5.0",
|
|
5499
|
+
"drizzy-agent-darwin-x64": "0.5.0",
|
|
5500
|
+
"drizzy-agent-darwin-x64-baseline": "0.5.0",
|
|
5501
|
+
"drizzy-agent-linux-arm64": "0.5.0",
|
|
5502
|
+
"drizzy-agent-linux-arm64-musl": "0.5.0",
|
|
5503
|
+
"drizzy-agent-linux-x64": "0.5.0",
|
|
5504
|
+
"drizzy-agent-linux-x64-baseline": "0.5.0",
|
|
5505
|
+
"drizzy-agent-linux-x64-musl": "0.5.0",
|
|
5506
|
+
"drizzy-agent-linux-x64-musl-baseline": "0.5.0",
|
|
5507
|
+
"drizzy-agent-windows-x64": "0.5.0",
|
|
5508
|
+
"drizzy-agent-windows-x64-baseline": "0.5.0"
|
|
5580
5509
|
},
|
|
5581
5510
|
overrides: {
|
|
5582
5511
|
"@opencode-ai/sdk": "^1.2.24"
|
|
@@ -7400,16 +7329,15 @@ import * as fs3 from "fs";
|
|
|
7400
7329
|
import * as path3 from "path";
|
|
7401
7330
|
|
|
7402
7331
|
// src/cli/openai-only-model-catalog.ts
|
|
7403
|
-
|
|
7404
|
-
|
|
7405
|
-
|
|
7406
|
-
};
|
|
7407
|
-
|
|
7408
|
-
|
|
7409
|
-
|
|
7410
|
-
|
|
7411
|
-
|
|
7412
|
-
};
|
|
7332
|
+
init_agent_model_defaults();
|
|
7333
|
+
var OPENAI_ONLY_AGENT_OVERRIDES = Object.fromEntries(Object.entries(AGENT_MODEL_DEFAULTS).filter(([, def]) => def.specialCases?.openAiOnlyOverride).map(([name, def]) => {
|
|
7334
|
+
const override = def.specialCases.openAiOnlyOverride;
|
|
7335
|
+
return [name, { model: override.model, variant: override.variant }];
|
|
7336
|
+
}));
|
|
7337
|
+
var OPENAI_ONLY_CATEGORY_OVERRIDES = Object.fromEntries(Object.entries(CATEGORY_MODEL_DEFAULTS).filter(([, def]) => def.specialCases?.openAiOnlyOverride).map(([name, def]) => {
|
|
7338
|
+
const override = def.specialCases.openAiOnlyOverride;
|
|
7339
|
+
return [name, { model: override.model, variant: override.variant }];
|
|
7340
|
+
}));
|
|
7413
7341
|
function isOpenAiOnlyAvailability(availability) {
|
|
7414
7342
|
return availability.native.openai && !availability.native.claude && !availability.native.gemini && !availability.opencodeZen && !availability.copilot && !availability.zai && !availability.kimiForCoding;
|
|
7415
7343
|
}
|
|
@@ -21455,6 +21383,24 @@ var DrizzyAgentConfigSchema = exports_external.object({
|
|
|
21455
21383
|
_install_defaults: InstallDefaultsSnapshotSchema.optional(),
|
|
21456
21384
|
_migrations: exports_external.array(exports_external.string()).optional()
|
|
21457
21385
|
});
|
|
21386
|
+
// src/shared/config-provenance.ts
|
|
21387
|
+
var explicitAgentOverridesStore = new WeakMap;
|
|
21388
|
+
var explicitCategoryConfigsStore = new WeakMap;
|
|
21389
|
+
function registerConfigProvenance(input) {
|
|
21390
|
+
const {
|
|
21391
|
+
effectiveAgents,
|
|
21392
|
+
effectiveCategories,
|
|
21393
|
+
explicitAgents,
|
|
21394
|
+
explicitCategories
|
|
21395
|
+
} = input;
|
|
21396
|
+
if (effectiveAgents) {
|
|
21397
|
+
explicitAgentOverridesStore.set(effectiveAgents, explicitAgents ?? {});
|
|
21398
|
+
}
|
|
21399
|
+
if (effectiveCategories) {
|
|
21400
|
+
explicitCategoryConfigsStore.set(effectiveCategories, explicitCategories ?? {});
|
|
21401
|
+
}
|
|
21402
|
+
}
|
|
21403
|
+
|
|
21458
21404
|
// node_modules/js-yaml/dist/js-yaml.mjs
|
|
21459
21405
|
/*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT */
|
|
21460
21406
|
function isNothing(subject) {
|
|
@@ -24476,325 +24422,62 @@ function getAgentConfigKey(agentName) {
|
|
|
24476
24422
|
return reversed;
|
|
24477
24423
|
if (lower === "plan-consultant")
|
|
24478
24424
|
return "planConsultant";
|
|
24425
|
+
if (lower === "plan-reviewer")
|
|
24426
|
+
return "planReviewer";
|
|
24479
24427
|
if (AGENT_DISPLAY_NAMES[lower] !== undefined)
|
|
24480
24428
|
return lower;
|
|
24481
24429
|
return lower;
|
|
24482
24430
|
}
|
|
24483
24431
|
|
|
24484
24432
|
// src/shared/model-requirements.ts
|
|
24485
|
-
|
|
24433
|
+
init_agent_model_defaults();
|
|
24434
|
+
var LEGACY_AGENT_REQUIREMENT_OVERRIDES = {
|
|
24486
24435
|
coder: {
|
|
24487
|
-
fallbackChain: [
|
|
24488
|
-
{
|
|
24489
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
24490
|
-
model: "claude-opus-4-6",
|
|
24491
|
-
variant: "max"
|
|
24492
|
-
},
|
|
24493
|
-
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
|
24494
|
-
{
|
|
24495
|
-
providers: [
|
|
24496
|
-
"opencode",
|
|
24497
|
-
"moonshotai",
|
|
24498
|
-
"moonshotai-cn",
|
|
24499
|
-
"firmware",
|
|
24500
|
-
"ollama-cloud",
|
|
24501
|
-
"aihubmix"
|
|
24502
|
-
],
|
|
24503
|
-
model: "kimi-k2.5"
|
|
24504
|
-
},
|
|
24505
|
-
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.4", variant: "medium" },
|
|
24506
|
-
{ providers: ["zai-coding-plan", "opencode"], model: "glm-5" },
|
|
24507
|
-
{ providers: ["opencode"], model: "big-pickle" }
|
|
24508
|
-
],
|
|
24509
24436
|
requiresAnyModel: true
|
|
24510
24437
|
},
|
|
24511
24438
|
gptcoder: {
|
|
24512
|
-
|
|
24513
|
-
{
|
|
24514
|
-
providers: ["openai", "venice", "opencode"],
|
|
24515
|
-
model: "gpt-5.4",
|
|
24516
|
-
variant: "medium"
|
|
24517
|
-
},
|
|
24518
|
-
{ providers: ["github-copilot"], model: "gpt-5.4", variant: "medium" }
|
|
24519
|
-
],
|
|
24520
|
-
requiresProvider: ["openai", "github-copilot", "venice", "opencode"]
|
|
24521
|
-
},
|
|
24522
|
-
oracle: {
|
|
24523
|
-
fallbackChain: [
|
|
24524
|
-
{
|
|
24525
|
-
providers: ["openai", "github-copilot", "opencode"],
|
|
24526
|
-
model: "gpt-5.4",
|
|
24527
|
-
variant: "high"
|
|
24528
|
-
},
|
|
24529
|
-
{
|
|
24530
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
24531
|
-
model: "gemini-3.1-pro",
|
|
24532
|
-
variant: "high"
|
|
24533
|
-
},
|
|
24534
|
-
{
|
|
24535
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
24536
|
-
model: "claude-opus-4-6",
|
|
24537
|
-
variant: "max"
|
|
24538
|
-
}
|
|
24539
|
-
]
|
|
24540
|
-
},
|
|
24541
|
-
librarian: {
|
|
24542
|
-
fallbackChain: [
|
|
24543
|
-
{
|
|
24544
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
24545
|
-
model: "gemini-3-flash"
|
|
24546
|
-
},
|
|
24547
|
-
{ providers: ["opencode"], model: "minimax-m2.5-free" },
|
|
24548
|
-
{ providers: ["opencode"], model: "big-pickle" }
|
|
24549
|
-
]
|
|
24550
|
-
},
|
|
24551
|
-
explore: {
|
|
24552
|
-
fallbackChain: [
|
|
24553
|
-
{ providers: ["github-copilot"], model: "grok-code-fast-1" },
|
|
24554
|
-
{ providers: ["opencode"], model: "minimax-m2.5-free" },
|
|
24555
|
-
{ providers: ["anthropic", "opencode"], model: "claude-haiku-4-5" },
|
|
24556
|
-
{ providers: ["opencode"], model: "gpt-5-nano" }
|
|
24557
|
-
]
|
|
24558
|
-
},
|
|
24559
|
-
"multimodal-looker": {
|
|
24560
|
-
fallbackChain: [
|
|
24561
|
-
{
|
|
24562
|
-
providers: ["openai", "opencode"],
|
|
24563
|
-
model: "gpt-5.4",
|
|
24564
|
-
variant: "medium"
|
|
24565
|
-
},
|
|
24566
|
-
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
|
24567
|
-
{
|
|
24568
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
24569
|
-
model: "gemini-3-flash"
|
|
24570
|
-
},
|
|
24571
|
-
{ providers: ["zai-coding-plan"], model: "glm-4.6v" },
|
|
24572
|
-
{
|
|
24573
|
-
providers: ["openai", "github-copilot", "opencode"],
|
|
24574
|
-
model: "gpt-5-nano"
|
|
24575
|
-
}
|
|
24576
|
-
]
|
|
24577
|
-
},
|
|
24578
|
-
planner: {
|
|
24579
|
-
fallbackChain: [
|
|
24580
|
-
{
|
|
24581
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
24582
|
-
model: "claude-opus-4-6",
|
|
24583
|
-
variant: "max"
|
|
24584
|
-
},
|
|
24585
|
-
{
|
|
24586
|
-
providers: ["openai", "github-copilot", "opencode"],
|
|
24587
|
-
model: "gpt-5.4",
|
|
24588
|
-
variant: "high"
|
|
24589
|
-
},
|
|
24590
|
-
{
|
|
24591
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
24592
|
-
model: "gemini-3.1-pro"
|
|
24593
|
-
}
|
|
24594
|
-
]
|
|
24595
|
-
},
|
|
24596
|
-
planConsultant: {
|
|
24597
|
-
fallbackChain: [
|
|
24598
|
-
{
|
|
24599
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
24600
|
-
model: "claude-opus-4-6",
|
|
24601
|
-
variant: "max"
|
|
24602
|
-
},
|
|
24603
|
-
{
|
|
24604
|
-
providers: ["openai", "github-copilot", "opencode"],
|
|
24605
|
-
model: "gpt-5.4",
|
|
24606
|
-
variant: "high"
|
|
24607
|
-
},
|
|
24608
|
-
{
|
|
24609
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
24610
|
-
model: "gemini-3.1-pro",
|
|
24611
|
-
variant: "high"
|
|
24612
|
-
}
|
|
24613
|
-
]
|
|
24614
|
-
},
|
|
24615
|
-
planReviewer: {
|
|
24616
|
-
fallbackChain: [
|
|
24617
|
-
{
|
|
24618
|
-
providers: ["openai", "github-copilot", "opencode"],
|
|
24619
|
-
model: "gpt-5.4",
|
|
24620
|
-
variant: "xhigh"
|
|
24621
|
-
},
|
|
24622
|
-
{
|
|
24623
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
24624
|
-
model: "claude-opus-4-6",
|
|
24625
|
-
variant: "max"
|
|
24626
|
-
},
|
|
24627
|
-
{
|
|
24628
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
24629
|
-
model: "gemini-3.1-pro",
|
|
24630
|
-
variant: "high"
|
|
24631
|
-
}
|
|
24632
|
-
]
|
|
24439
|
+
requiresProvider: AGENT_MODEL_DEFAULTS.gptcoder.requiresAnyProvider
|
|
24633
24440
|
},
|
|
24634
24441
|
atlas: {
|
|
24635
|
-
fallbackChain: [
|
|
24636
|
-
{
|
|
24637
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
24638
|
-
model: "claude-sonnet-4-6"
|
|
24639
|
-
},
|
|
24640
|
-
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.4", variant: "medium" }
|
|
24641
|
-
]
|
|
24642
|
-
},
|
|
24643
|
-
"coder-junior": {
|
|
24644
|
-
fallbackChain: [
|
|
24645
|
-
{
|
|
24646
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
24647
|
-
model: "claude-sonnet-4-6"
|
|
24648
|
-
},
|
|
24649
|
-
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.4", variant: "medium" },
|
|
24650
|
-
{
|
|
24651
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
24652
|
-
model: "gemini-3-flash"
|
|
24653
|
-
}
|
|
24654
|
-
]
|
|
24442
|
+
fallbackChain: pickFallbackEntries(AGENT_MODEL_DEFAULTS.atlas.chain, ["claude-sonnet-4-6", "gpt-5.4"])
|
|
24655
24443
|
}
|
|
24656
24444
|
};
|
|
24657
|
-
var
|
|
24445
|
+
var LEGACY_CATEGORY_REQUIREMENT_OVERRIDES = {
|
|
24658
24446
|
"visual-engineering": {
|
|
24659
|
-
fallbackChain: [
|
|
24660
|
-
{
|
|
24661
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
24662
|
-
model: "gemini-3.1-pro",
|
|
24663
|
-
variant: "high"
|
|
24664
|
-
},
|
|
24665
|
-
{ providers: ["zai-coding-plan", "opencode"], model: "glm-5" },
|
|
24666
|
-
{
|
|
24667
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
24668
|
-
model: "claude-opus-4-6",
|
|
24669
|
-
variant: "max"
|
|
24670
|
-
}
|
|
24671
|
-
]
|
|
24672
|
-
},
|
|
24673
|
-
ultrabrain: {
|
|
24674
|
-
fallbackChain: [
|
|
24675
|
-
{
|
|
24676
|
-
providers: ["openai", "opencode"],
|
|
24677
|
-
model: "gpt-5.4",
|
|
24678
|
-
variant: "xhigh"
|
|
24679
|
-
},
|
|
24680
|
-
{
|
|
24681
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
24682
|
-
model: "gemini-3.1-pro",
|
|
24683
|
-
variant: "high"
|
|
24684
|
-
},
|
|
24685
|
-
{
|
|
24686
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
24687
|
-
model: "claude-opus-4-6",
|
|
24688
|
-
variant: "max"
|
|
24689
|
-
}
|
|
24690
|
-
]
|
|
24447
|
+
fallbackChain: excludeFallbackEntries(CATEGORY_MODEL_DEFAULTS["visual-engineering"].chain, ["k2p5"])
|
|
24691
24448
|
},
|
|
24692
24449
|
deep: {
|
|
24693
|
-
fallbackChain: [
|
|
24694
|
-
{
|
|
24695
|
-
providers: ["openai", "opencode"],
|
|
24696
|
-
model: "gpt-5.4",
|
|
24697
|
-
variant: "medium"
|
|
24698
|
-
},
|
|
24699
|
-
{
|
|
24700
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
24701
|
-
model: "claude-opus-4-6",
|
|
24702
|
-
variant: "max"
|
|
24703
|
-
},
|
|
24704
|
-
{
|
|
24705
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
24706
|
-
model: "gemini-3.1-pro",
|
|
24707
|
-
variant: "high"
|
|
24708
|
-
}
|
|
24709
|
-
],
|
|
24710
24450
|
requiresModel: "gpt-5.4"
|
|
24711
24451
|
},
|
|
24712
24452
|
artistry: {
|
|
24713
|
-
fallbackChain: [
|
|
24714
|
-
{
|
|
24715
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
24716
|
-
model: "gemini-3.1-pro",
|
|
24717
|
-
variant: "high"
|
|
24718
|
-
},
|
|
24719
|
-
{
|
|
24720
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
24721
|
-
model: "claude-opus-4-6",
|
|
24722
|
-
variant: "max"
|
|
24723
|
-
},
|
|
24724
|
-
{ providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.4" }
|
|
24725
|
-
],
|
|
24726
24453
|
requiresModel: "gemini-3.1-pro"
|
|
24727
24454
|
},
|
|
24728
|
-
quick: {
|
|
24729
|
-
fallbackChain: [
|
|
24730
|
-
{
|
|
24731
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
24732
|
-
model: "claude-haiku-4-5"
|
|
24733
|
-
},
|
|
24734
|
-
{
|
|
24735
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
24736
|
-
model: "gemini-3-flash"
|
|
24737
|
-
},
|
|
24738
|
-
{ providers: ["opencode"], model: "gpt-5-nano" }
|
|
24739
|
-
]
|
|
24740
|
-
},
|
|
24741
|
-
"unspecified-low": {
|
|
24742
|
-
fallbackChain: [
|
|
24743
|
-
{
|
|
24744
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
24745
|
-
model: "claude-sonnet-4-6"
|
|
24746
|
-
},
|
|
24747
|
-
{
|
|
24748
|
-
providers: ["openai", "opencode"],
|
|
24749
|
-
model: "gpt-5.4",
|
|
24750
|
-
variant: "medium"
|
|
24751
|
-
},
|
|
24752
|
-
{
|
|
24753
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
24754
|
-
model: "gemini-3-flash"
|
|
24755
|
-
}
|
|
24756
|
-
]
|
|
24757
|
-
},
|
|
24758
|
-
"unspecified-high": {
|
|
24759
|
-
fallbackChain: [
|
|
24760
|
-
{
|
|
24761
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
24762
|
-
model: "claude-opus-4-6",
|
|
24763
|
-
variant: "max"
|
|
24764
|
-
},
|
|
24765
|
-
{
|
|
24766
|
-
providers: ["openai", "github-copilot", "opencode"],
|
|
24767
|
-
model: "gpt-5.4",
|
|
24768
|
-
variant: "high"
|
|
24769
|
-
},
|
|
24770
|
-
{ providers: ["zai-coding-plan", "opencode"], model: "glm-5" },
|
|
24771
|
-
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
|
24772
|
-
{
|
|
24773
|
-
providers: [
|
|
24774
|
-
"opencode",
|
|
24775
|
-
"moonshotai",
|
|
24776
|
-
"moonshotai-cn",
|
|
24777
|
-
"firmware",
|
|
24778
|
-
"ollama-cloud",
|
|
24779
|
-
"aihubmix"
|
|
24780
|
-
],
|
|
24781
|
-
model: "kimi-k2.5"
|
|
24782
|
-
}
|
|
24783
|
-
]
|
|
24784
|
-
},
|
|
24785
24455
|
writing: {
|
|
24786
|
-
fallbackChain: [
|
|
24787
|
-
{
|
|
24788
|
-
providers: ["google", "github-copilot", "opencode"],
|
|
24789
|
-
model: "gemini-3-flash"
|
|
24790
|
-
},
|
|
24791
|
-
{
|
|
24792
|
-
providers: ["anthropic", "github-copilot", "opencode"],
|
|
24793
|
-
model: "claude-sonnet-4-6"
|
|
24794
|
-
}
|
|
24795
|
-
]
|
|
24456
|
+
fallbackChain: excludeFallbackEntries(CATEGORY_MODEL_DEFAULTS.writing.chain, ["k2p5"])
|
|
24796
24457
|
}
|
|
24797
24458
|
};
|
|
24459
|
+
var AGENT_MODEL_REQUIREMENTS = toModelRequirements(AGENT_MODEL_DEFAULTS, LEGACY_AGENT_REQUIREMENT_OVERRIDES);
|
|
24460
|
+
var CATEGORY_MODEL_REQUIREMENTS = toModelRequirements(CATEGORY_MODEL_DEFAULTS, LEGACY_CATEGORY_REQUIREMENT_OVERRIDES);
|
|
24461
|
+
function toModelRequirements(defaults, overrides) {
|
|
24462
|
+
return Object.fromEntries(Object.entries(defaults).map(([name, def]) => {
|
|
24463
|
+
const override = overrides[name];
|
|
24464
|
+
return [
|
|
24465
|
+
name,
|
|
24466
|
+
{
|
|
24467
|
+
fallbackChain: def.chain,
|
|
24468
|
+
...override
|
|
24469
|
+
}
|
|
24470
|
+
];
|
|
24471
|
+
}));
|
|
24472
|
+
}
|
|
24473
|
+
function pickFallbackEntries(chain, models) {
|
|
24474
|
+
const allowedModels = new Set(models);
|
|
24475
|
+
return chain.filter((entry) => allowedModels.has(entry.model));
|
|
24476
|
+
}
|
|
24477
|
+
function excludeFallbackEntries(chain, models) {
|
|
24478
|
+
const excludedModels = new Set(models);
|
|
24479
|
+
return chain.filter((entry) => !excludedModels.has(entry.model));
|
|
24480
|
+
}
|
|
24798
24481
|
// src/shared/session-cursor.ts
|
|
24799
24482
|
var sessionCursors = new Map;
|
|
24800
24483
|
// src/shared/model-resolution-pipeline.ts
|
|
@@ -25071,11 +24754,20 @@ function loadPluginConfig(directory, ctx) {
|
|
|
25071
24754
|
const projectConfigPath = projectDetected.format !== "none" ? projectDetected.path : projectBasePath + ".json";
|
|
25072
24755
|
const rawUserConfig = loadConfigFromPath(userConfigPath, ctx) ?? {};
|
|
25073
24756
|
const userConfig = stripInvalidUserInstallDefaults(rawUserConfig, userConfigPath);
|
|
25074
|
-
|
|
24757
|
+
const computedDefaultsConfig = synthesizeComputedDefaultsConfig(userConfig._install_defaults);
|
|
24758
|
+
let explicitConfig = userConfig;
|
|
24759
|
+
let config2 = mergeConfigs(computedDefaultsConfig, userConfig);
|
|
25075
24760
|
const projectConfig = stripProjectInstallDefaults(loadConfigFromPath(projectConfigPath, ctx), projectConfigPath);
|
|
25076
24761
|
if (projectConfig) {
|
|
24762
|
+
explicitConfig = mergeConfigs(explicitConfig, projectConfig);
|
|
25077
24763
|
config2 = mergeConfigs(config2, projectConfig);
|
|
25078
24764
|
}
|
|
24765
|
+
registerConfigProvenance({
|
|
24766
|
+
effectiveAgents: config2.agents,
|
|
24767
|
+
effectiveCategories: config2.categories,
|
|
24768
|
+
explicitAgents: explicitConfig.agents,
|
|
24769
|
+
explicitCategories: explicitConfig.categories
|
|
24770
|
+
});
|
|
25079
24771
|
config2 = {
|
|
25080
24772
|
...config2
|
|
25081
24773
|
};
|