drizzy-agent 0.4.2 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Unified Canonical Agent Model Defaults
3
+ *
4
+ * This file is the SINGLE SOURCE OF TRUTH for agent model fallback chains.
5
+ * Both runtime and install use these unified chains, filtering by provider availability.
6
+ *
7
+ * ## Design Principles
8
+ *
9
+ * 1. **One Chain Per Agent**: No more runtime vs install drift. Each agent has exactly
10
+ * one canonical fallback chain used by both runtime and install.
11
+ *
12
+ * 2. **Provider-Driven Selection**: Both runtime and install filter the same unified chain
13
+ * by provider availability from `_install_defaults` provider snapshots.
14
+ *
15
+ * 3. **Dynamic Model Resolution**: Models are computed at runtime from provider snapshots,
16
+ * not pinned at install time. If you add a provider later, you automatically get
17
+ * better models on the next restart.
18
+ *
19
+ * ## How It Works
20
+ *
21
+ * Example with coder agent:
22
+ * ```
23
+ * Unified Chain: [claude-opus-4-6, k2p5, kimi-k2.5, gpt-5.4, glm-5, big-pickle]
24
+ * Provider Snapshot: { kimi: true } // Only Kimi available
25
+ * Filtered Chain: [k2p5] // First available entry
26
+ * Selected Model: kimi-for-coding/k2p5
27
+ * ```
28
+ *
29
+ * ## Modifying Chains
30
+ *
31
+ * To add a new fallback for the coder agent:
32
+ * ```typescript
33
+ * coder: {
34
+ * chain: [
35
+ * ...existing entries,
36
+ * { providers: ["new-provider"], model: "new-model" }
37
+ * ],
38
+ * includeInInstall: true
39
+ * }
40
+ * ```
41
+ *
42
+ * ## Agent Model Chains
43
+ *
44
+ * | Agent | Unified Chain |
45
+ * |-------|---------------|
46
+ * | **coder** | claude-opus-4-6 → k2p5 → kimi-k2.5 → gpt-5.4 → glm-5 → big-pickle |
47
+ * | **gptcoder** | gpt-5.4 (openai/venice/opencode) → gpt-5.4 (github-copilot) |
48
+ * | **planner** | claude-opus-4-6 → k2p5 → gpt-5.4 → gemini-3.1-pro |
49
+ * | **oracle** | gpt-5.4 → kimi-k2.5 → gemini-3.1-pro → claude-opus-4-6 → big-pickle (free) |
50
+ * | **librarian** | gemini-3-flash → glm-4.7 → claude-sonnet-4-5 → minimax → big-pickle → glm-4.7-free |
51
+ * | **explore** | Custom resolver (Claude → Zen → Copilot → OpenAI) |
52
+ * | **multimodal-looker** | gpt-5.4 → k2p5 → gemini-3-flash → glm-4.6v → gpt-5-nano |
53
+ * | **plan-consultant** | claude-opus-4-6 → k2p5 → gpt-5.4 → gemini-3.1-pro |
54
+ * | **plan-reviewer** | gpt-5.4 → kimi-k2.5 → claude-opus-4-6 → gemini-3.1-pro → big-pickle (free) |
55
+ * | **atlas** | k2p5 → claude-sonnet-4-6 → claude-sonnet-4-5 → gpt-5.4 → gemini-3.1-pro |
56
+ * | **coder-junior** | claude-sonnet-4-6 → gpt-5.4 → gemini-3-flash (runtime only) |
57
+ *
58
+ * ## Category Model Chains
59
+ *
60
+ * | Category | Unified Chain |
61
+ * |----------|---------------|
62
+ * | **visual-engineering** | gemini-3.1-pro → glm-5 → claude-opus-4-6 → k2p5 |
63
+ * | **ultrabrain** | gpt-5.4 → gemini-3.1-pro → claude-opus-4-6 → kimi-k2.5 → big-pickle (free) |
64
+ * | **deep** | gpt-5.4 → claude-opus-4-6 → gemini-3.1-pro → kimi-k2.5 → big-pickle (free) |
65
+ * | **artistry** | gemini-3.1-pro → claude-opus-4-6 → gpt-5.4 → kimi-k2.5 → minimax-m2.5-free (free) |
66
+ * | **quick** | claude-haiku-4-5 → gemini-3-flash → gpt-5.1-codex-mini → gpt-5-nano (free) |
67
+ * | **unspecified-low** | claude-sonnet-4-6 → kimi-k2.5 → gpt-5.4 → gemini-3-flash → minimax-m2.5-free (free) |
68
+ * | **unspecified-high** | claude-opus-4-6 → gpt-5.4 → glm-5 → k2p5 → kimi-k2.5 |
69
+ * | **writing** | gemini-3-flash → k2p5 → claude-sonnet-4-6 |
70
+ *
71
+ * ## Special Cases
72
+ *
73
+ * - **ZAI Override**: librarian uses zai-coding-plan/glm-4.7 when ZAI provider available
74
+ * - **OpenAI-Only Mode**: Several agents/categories get gpt-5.4 overrides when only OpenAI available
75
+ * - **Custom Resolver**: explore agent uses custom logic (not chain-based)
76
+ *
77
+ * ## Intentional Behavior Changes
78
+ *
79
+ * The following changed from install-time defaults after unification:
80
+ * - **librarian**: Now uses gemini-3-flash first (was glm-4.7)
81
+ * - **atlas**: Now uses k2p5 first (was claude-sonnet-4-6)
82
+ * - **gptcoder**: Now allows github-copilot fallback (was OpenAI-only)
83
+ *
84
+ * These simplifications achieve true single source of truth.
85
+ */
86
+ export type FallbackEntry = {
87
+ providers: string[];
88
+ model: string;
89
+ variant?: string;
90
+ /** If true, this model is always available as a last-resort fallback regardless of provider availability */
91
+ alwaysAvailable?: boolean;
92
+ };
93
+ export type AgentModelDefault = {
94
+ chain: FallbackEntry[];
95
+ includeInInstall: boolean;
96
+ requiresAnyProvider?: string[];
97
+ specialCases?: {
98
+ zaiOverride?: {
99
+ model: string;
100
+ };
101
+ openAiOnlyOverride?: {
102
+ model: string;
103
+ variant?: string;
104
+ };
105
+ customResolver?: "explore-agent";
106
+ };
107
+ };
108
+ export declare const AGENT_MODEL_DEFAULTS: Record<string, AgentModelDefault>;
109
+ export declare const CATEGORY_MODEL_DEFAULTS: Record<string, AgentModelDefault>;
@@ -0,0 +1,13 @@
1
+ import type { AgentOverrideConfig, AgentOverrides, CategoriesConfig, CategoryConfig } from "../config/schema";
2
+ export declare function registerConfigProvenance(input: {
3
+ effectiveAgents?: AgentOverrides;
4
+ effectiveCategories?: CategoriesConfig;
5
+ explicitAgents?: AgentOverrides;
6
+ explicitCategories?: CategoriesConfig;
7
+ }): void;
8
+ export declare function getExplicitAgentOverride(agentOverrides: AgentOverrides | undefined, agentName: string): AgentOverrideConfig | undefined;
9
+ export declare function hasExplicitAgentOverride(agentOverrides: AgentOverrides | undefined, agentName: string): boolean;
10
+ export declare function getEffectiveAgentOverride(agentOverrides: AgentOverrides | undefined, agentName: string): AgentOverrideConfig | undefined;
11
+ export declare function getExplicitCategoryConfig(userCategories: CategoriesConfig | undefined, categoryName: string): CategoryConfig | undefined;
12
+ export declare function hasExplicitCategoryConfig(userCategories: CategoriesConfig | undefined, categoryName: string): boolean;
13
+ export declare function getEffectiveCategoryConfig(userCategories: CategoriesConfig | undefined, categoryName: string): CategoryConfig | undefined;
@@ -1,4 +1,4 @@
1
- export declare const OMO_INTERNAL_INITIATOR_MARKER = "<!-- OMO_INTERNAL_INITIATOR -->";
1
+ export declare const OMO_INTERNAL_INITIATOR_MARKER = "<!-- Drizzy Agent Internal Initiator -->";
2
2
  export declare function createInternalAgentTextPart(text: string): {
3
3
  type: "text";
4
4
  text: string;
@@ -1,8 +1,5 @@
1
- export type FallbackEntry = {
2
- providers: string[];
3
- model: string;
4
- variant?: string;
5
- };
1
+ import { type FallbackEntry as CanonicalFallbackEntry } from "./agent-model-defaults";
2
+ export type FallbackEntry = CanonicalFallbackEntry;
6
3
  export type ModelRequirement = {
7
4
  fallbackChain: FallbackEntry[];
8
5
  variant?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzy-agent",
3
- "version": "0.4.2",
3
+ "version": "0.5.1",
4
4
  "description": "DrizzyAgent - AI agent plugin for OpenCode",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -76,17 +76,17 @@
76
76
  "typescript": "^5.7.3"
77
77
  },
78
78
  "optionalDependencies": {
79
- "drizzy-agent-darwin-arm64": "0.4.2",
80
- "drizzy-agent-darwin-x64": "0.4.2",
81
- "drizzy-agent-darwin-x64-baseline": "0.4.2",
82
- "drizzy-agent-linux-arm64": "0.4.2",
83
- "drizzy-agent-linux-arm64-musl": "0.4.2",
84
- "drizzy-agent-linux-x64": "0.4.2",
85
- "drizzy-agent-linux-x64-baseline": "0.4.2",
86
- "drizzy-agent-linux-x64-musl": "0.4.2",
87
- "drizzy-agent-linux-x64-musl-baseline": "0.4.2",
88
- "drizzy-agent-windows-x64": "0.4.2",
89
- "drizzy-agent-windows-x64-baseline": "0.4.2"
79
+ "drizzy-agent-darwin-arm64": "0.5.1",
80
+ "drizzy-agent-darwin-x64": "0.5.1",
81
+ "drizzy-agent-darwin-x64-baseline": "0.5.1",
82
+ "drizzy-agent-linux-arm64": "0.5.1",
83
+ "drizzy-agent-linux-arm64-musl": "0.5.1",
84
+ "drizzy-agent-linux-x64": "0.5.1",
85
+ "drizzy-agent-linux-x64-baseline": "0.5.1",
86
+ "drizzy-agent-linux-x64-musl": "0.5.1",
87
+ "drizzy-agent-linux-x64-musl-baseline": "0.5.1",
88
+ "drizzy-agent-windows-x64": "0.5.1",
89
+ "drizzy-agent-windows-x64-baseline": "0.5.1"
90
90
  },
91
91
  "overrides": {
92
92
  "@opencode-ai/sdk": "^1.2.24"