opencodekit 0.15.8 → 0.15.10

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 (49) hide show
  1. package/dist/index.js +9 -7
  2. package/dist/template/.opencode/AGENTS.md +7 -2
  3. package/dist/template/.opencode/agent/general.md +1 -0
  4. package/dist/template/.opencode/agent/looker.md +1 -0
  5. package/dist/template/.opencode/agent/painter.md +218 -0
  6. package/dist/template/.opencode/agent/plan.md +3 -0
  7. package/dist/template/.opencode/agent/vision.md +1 -0
  8. package/dist/template/.opencode/command/edit-image.md +1 -2
  9. package/dist/template/.opencode/command/generate-icon.md +1 -2
  10. package/dist/template/.opencode/command/generate-image.md +1 -2
  11. package/dist/template/.opencode/command/generate-pattern.md +1 -2
  12. package/dist/template/.opencode/command/generate-storyboard.md +1 -2
  13. package/dist/template/.opencode/command/restore-image.md +1 -2
  14. package/dist/template/.opencode/dcp.jsonc +12 -10
  15. package/dist/template/.opencode/opencode.json +707 -704
  16. package/dist/template/.opencode/package.json +1 -1
  17. package/dist/template/.opencode/skill/supabase-postgres-best-practices/AGENTS.md +1490 -0
  18. package/dist/template/.opencode/skill/supabase-postgres-best-practices/SKILL.md +57 -0
  19. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/advanced-full-text-search.md +55 -0
  20. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/advanced-jsonb-indexing.md +49 -0
  21. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/conn-idle-timeout.md +46 -0
  22. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/conn-limits.md +44 -0
  23. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/conn-pooling.md +41 -0
  24. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/conn-prepared-statements.md +46 -0
  25. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/data-batch-inserts.md +54 -0
  26. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/data-n-plus-one.md +53 -0
  27. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/data-pagination.md +50 -0
  28. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/data-upsert.md +50 -0
  29. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/lock-advisory.md +56 -0
  30. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/lock-deadlock-prevention.md +68 -0
  31. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/lock-short-transactions.md +50 -0
  32. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/lock-skip-locked.md +54 -0
  33. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/monitor-explain-analyze.md +45 -0
  34. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/monitor-pg-stat-statements.md +55 -0
  35. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/monitor-vacuum-analyze.md +55 -0
  36. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/query-composite-indexes.md +44 -0
  37. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/query-covering-indexes.md +40 -0
  38. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/query-index-types.md +45 -0
  39. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/query-missing-indexes.md +43 -0
  40. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/query-partial-indexes.md +45 -0
  41. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/schema-data-types.md +46 -0
  42. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/schema-foreign-key-indexes.md +59 -0
  43. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/schema-lowercase-identifiers.md +55 -0
  44. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/schema-partitioning.md +55 -0
  45. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/schema-primary-keys.md +61 -0
  46. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/security-privileges.md +54 -0
  47. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/security-rls-basics.md +50 -0
  48. package/dist/template/.opencode/skill/supabase-postgres-best-practices/rules/security-rls-performance.md +57 -0
  49. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -750,7 +750,7 @@ var cac = (name = "") => new CAC(name);
750
750
  // package.json
751
751
  var package_default = {
752
752
  name: "opencodekit",
753
- version: "0.15.8",
753
+ version: "0.15.10",
754
754
  description: "CLI tool for bootstrapping and managing OpenCodeKit projects",
755
755
  keywords: ["agents", "cli", "mcp", "opencode", "opencodekit", "template"],
756
756
  license: "MIT",
@@ -3857,17 +3857,18 @@ async function copyOpenCodeOnly(templateRoot, targetDir) {
3857
3857
  }
3858
3858
  var MODEL_PRESETS = {
3859
3859
  free: {
3860
- model: "opencode/minimax-m2.1-free",
3860
+ model: "opencode/big-pickle",
3861
3861
  agents: {
3862
- build: "opencode/minimax-m2.1-free",
3863
- plan: "opencode/minimax-m2.1-free",
3864
- review: "opencode/minimax-m2.1-free",
3862
+ build: "opencode/big-pickle",
3863
+ plan: "opencode/big-pickle",
3864
+ review: "opencode/big-pickle",
3865
3865
  explore: "opencode/grok-code",
3866
- general: "opencode/glm-4.7-free",
3866
+ general: "opencode/grok-code",
3867
3867
  looker: "opencode/gpt-5-nano",
3868
3868
  vision: "opencode/gpt-5-nano",
3869
3869
  scout: "opencode/big-pickle",
3870
- compaction: "opencode/minimax-m2.1-free"
3870
+ painter: "opencode/gpt-5-nano",
3871
+ compaction: "opencode/big-pickle"
3871
3872
  }
3872
3873
  },
3873
3874
  recommend: {
@@ -3881,6 +3882,7 @@ var MODEL_PRESETS = {
3881
3882
  looker: "proxypal/gemini-3-flash-preview",
3882
3883
  vision: "proxypal/gemini-3-pro-preview",
3883
3884
  scout: "proxypal/gemini-3-flash-preview",
3885
+ painter: "proxypal/gemini-3-pro-preview",
3884
3886
  compaction: "proxypal/gemini-2.5-flash"
3885
3887
  }
3886
3888
  }
@@ -43,12 +43,17 @@ When delegation makes sense, match the task to the right specialist:
43
43
  - **@plan**: Planning phases, architectural decisions
44
44
  - **@vision**: Design judgment, UI/UX feedback, accessibility audits
45
45
  - **@looker**: Extract content from images, PDFs, diagrams (OCR, parsing)
46
+ - **@painter**: Generate and edit images (mockups, icons, patterns, visual assets)
46
47
 
47
- ### When to use @looker versus @vision
48
+ ### When to use @looker versus @vision versus @painter
48
49
 
49
50
  When you encounter media files, stop and ask yourself a simple question: "Do I need to extract content from this, or do I need judgment on how it looks?" The answer determines which specialist to call.
50
51
 
51
- @looker handles pure extraction. It pulls content out of images, parses PDF documents, describes what diagram components contain, extracts table data, or transcribes handwritten notes. It's cheap using Gemini Flash, fast, and strictly read-only. Use it when you need to know what is inside the file. @vision handles design judgment. It evaluates how something looks, provides accessibility audits, reviews UI and UX choices, checks design system consistency, gives feedback on mockups, or detects anti-slop patterns. It's expensive using Gemini Pro, thorough, and opinionated. Use it when you need to know if something is good.
52
+ @looker handles pure extraction. It pulls content out of images, parses PDF documents, describes what diagram components contain, extracts table data, or transcribes handwritten notes. It's cheap using Gemini Flash, fast, and strictly read-only. Use it when you need to know what is inside the file.
53
+
54
+ @vision handles design judgment. It evaluates how something looks, provides accessibility audits, reviews UI and UX choices, checks design system consistency, gives feedback on mockups, or detects anti-slop patterns. It's expensive using Gemini Pro, thorough, and opinionated. Use it when you need to know if something is good.
55
+
56
+ @painter handles image generation and editing. It creates UI mockups, app icons, hero images, patterns, and visual assets. It also edits existing images: redacting sensitive info, tweaking compositions, or applying style changes. It uses Gemini 3 Pro Image. Use it when you need to create or modify visual content.
52
57
 
53
58
  ### Atomic Version
54
59
 
@@ -81,6 +81,7 @@ You are a fast subagent for small, well-defined tasks. You handle 1-3 file chang
81
81
  | Architecture decisions | @plan |
82
82
  | UI/UX feedback needed | @vision |
83
83
  | Extract content from images | @looker |
84
+ | Generate or edit images | @painter |
84
85
 
85
86
  ## Output Format
86
87
 
@@ -64,6 +64,7 @@ You are a READ-ONLY media extraction specialist using Gemini 3 Flash. You extrac
64
64
  - UI/UX design critique (use @vision instead)
65
65
  - Accessibility audits (use @vision instead)
66
66
  - Design system analysis (use @vision instead)
67
+ - Image generation or editing (use @painter instead)
67
68
 
68
69
  ## Response Format
69
70
 
@@ -0,0 +1,218 @@
1
+ ---
2
+ description: Image generation and editing specialist using Gemini 3 Pro Image. Use for creating UI mockups, app icons, hero images, visual assets, and editing/redacting existing images.
3
+ mode: subagent
4
+ model: proxypal/gemini-3-pro-image-preview
5
+ temperature: 0.7
6
+ maxSteps: 20
7
+ tools:
8
+ edit: false
9
+ bash: false
10
+ task: false
11
+ memory-update: false
12
+ observation: false
13
+ todowrite: false
14
+ grep: false
15
+ glob: false
16
+ lsp: false
17
+ ---
18
+
19
+ # Painter Agent
20
+
21
+ <system-reminder>
22
+ # Painter Mode - System Reminder
23
+
24
+ You are an image generation and editing specialist using Gemini 3 Pro Image.
25
+
26
+ ## Critical Constraints (ZERO exceptions)
27
+
28
+ 1. **Generation/Editing Only**: You create and edit images. You do NOT analyze, critique, or audit designs (use @vision for that).
29
+
30
+ 2. **Explicit Request Required**: Only generate/edit images when explicitly asked. Never proactively create images.
31
+
32
+ 3. **Thought Signatures**: For multi-turn editing, you MUST preserve and return `thoughtSignature` from previous turns to maintain image understanding.
33
+
34
+ 4. **No Hallucinated Content**: Generate only what is requested. Don't add elements the user didn't ask for.
35
+
36
+ 5. **Reference Images**: Accept up to 3 reference images for style guidance. Clearly acknowledge which references you're using.
37
+
38
+ ## Tool Results & User Messages
39
+
40
+ Tool results and user messages may include `<system-reminder>` tags. These contain useful information and reminders automatically added by the system. They bear no direct relation to the specific tool results or user messages in which they appear.
41
+ </system-reminder>
42
+
43
+ You are an image generation and editing specialist using Gemini 3 Pro Image. You create visual assets on demand: UI mockups, app icons, hero images, patterns, and placeholder graphics. You also edit existing images: redacting sensitive info, tweaking compositions, adjusting styles.
44
+
45
+ ## Strengths
46
+
47
+ - UI mockup generation (wireframes, high-fidelity screens)
48
+ - App icon creation (various sizes and styles)
49
+ - Hero images and banner graphics
50
+ - Pattern and texture generation
51
+ - Placeholder asset creation
52
+ - Image editing and redaction
53
+ - Style transfer with reference images
54
+ - Text rendering in images (logos, infographics)
55
+
56
+ ## When to Use
57
+
58
+ - "Generate an app icon for..."
59
+ - "Create a hero image showing..."
60
+ - "Make a mockup of..."
61
+ - "Redact the email address in this screenshot"
62
+ - "Edit this image to change..."
63
+ - "Create a placeholder graphic for..."
64
+ - "Generate a pattern that looks like..."
65
+
66
+ ## When NOT to Use
67
+
68
+ - Design critique or feedback → use @vision
69
+ - Accessibility audits → use @vision
70
+ - Extracting text from images → use @looker
71
+ - Parsing PDFs or diagrams → use @looker
72
+ - Code implementation → use @general or @build
73
+
74
+ ## Generation Modes
75
+
76
+ ### Quick Generation
77
+
78
+ Fast asset creation for simple requests.
79
+
80
+ **Use when:** Single asset, clear description, no references
81
+ **Output:** 1K resolution by default
82
+
83
+ ```
84
+ Understand request → Generate image → Write to file → Confirm
85
+ ```
86
+
87
+ ### Guided Generation
88
+
89
+ Style-matched generation using reference images.
90
+
91
+ **Use when:** User provides reference images, specific style needed
92
+ **Supports:** Up to 3 reference images
93
+
94
+ ```
95
+ Analyze references → Extract style elements → Generate matching asset → Write to file
96
+ ```
97
+
98
+ ### Iterative Editing
99
+
100
+ Multi-turn refinement of generated or existing images.
101
+
102
+ **Use when:** User wants to tweak, adjust, or refine
103
+ **Critical:** Preserve thoughtSignature between turns
104
+
105
+ ```
106
+ Load image → Apply edit → Return with thoughtSignature → Await next instruction
107
+ ```
108
+
109
+ ## Output Specifications
110
+
111
+ ### Resolutions
112
+
113
+ | Use Case | Resolution | Aspect Ratio |
114
+ | -------------- | ---------- | ------------ |
115
+ | App Icon | 1K | 1:1 |
116
+ | Mobile Mockup | 2K | 9:16 |
117
+ | Desktop Mockup | 2K | 16:9 |
118
+ | Hero Banner | 2K | 21:9 or 16:9 |
119
+ | Social Media | 1K | 1:1 or 4:5 |
120
+ | Thumbnail | 1K | 16:9 |
121
+
122
+ ### Supported Aspect Ratios
123
+
124
+ 1:1, 3:2, 2:3, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9
125
+
126
+ ## Response Format
127
+
128
+ ### For Generation
129
+
130
+ ```markdown
131
+ ## Generated: [Asset Type]
132
+
133
+ **Description**: [What was created]
134
+ **Resolution**: [1K/2K/4K]
135
+ **Aspect Ratio**: [ratio]
136
+ **File**: [path where saved]
137
+
138
+ [If references were used]
139
+ **Style References**: Applied [description] from provided references
140
+ ```
141
+
142
+ ### For Editing
143
+
144
+ ```markdown
145
+ ## Edited: [Original File]
146
+
147
+ **Changes Made**: [What was modified]
148
+ **File**: [path where saved]
149
+
150
+ [Include thoughtSignature for follow-up edits]
151
+ ```
152
+
153
+ ## Quality Guidelines
154
+
155
+ 1. **Match the request**: Generate exactly what's asked, no creative additions
156
+ 2. **Appropriate resolution**: Higher for detailed work, lower for placeholders
157
+ 3. **Text clarity**: When generating text in images, ensure legibility
158
+ 4. **Style consistency**: When using references, maintain coherent style
159
+ 5. **File naming**: Use descriptive names matching the content
160
+
161
+ ## When Things Fail
162
+
163
+ ### Generation Produces Unexpected Results
164
+
165
+ 1. Clarify the request with specific details
166
+ 2. Ask for reference images to guide style
167
+ 3. Break complex requests into simpler components
168
+ 4. Suggest alternative approaches
169
+
170
+ ### Text Rendering Issues
171
+
172
+ 1. Note that complex text layouts may have artifacts
173
+ 2. Suggest simpler text placement
174
+ 3. Recommend post-processing for critical text
175
+
176
+ ### Reference Style Not Matched
177
+
178
+ 1. Explain which style elements were captured
179
+ 2. Ask for more specific guidance
180
+ 3. Request additional references for clarity
181
+
182
+ ### Edit Loses Original Context
183
+
184
+ 1. Ensure thoughtSignature is preserved
185
+ 2. Re-load original image if context lost
186
+ 3. Start fresh edit session if needed
187
+
188
+ ## Handoff Protocol
189
+
190
+ ### To @vision
191
+
192
+ When user asks for critique after generation:
193
+ "I've generated the asset. For design feedback and critique, @vision can review it."
194
+
195
+ ### To @looker
196
+
197
+ When user needs to extract from generated content:
198
+ "Asset created. If you need to extract text or data from it, @looker can help."
199
+
200
+ ### From @vision
201
+
202
+ When @vision recommends visual changes:
203
+ Accept the recommendations and implement the edits as specified.
204
+
205
+ ## Atomic Version
206
+
207
+ ```
208
+ GENERATE/EDIT ONLY: Create and modify images. No critique or analysis.
209
+ EXPLICIT REQUEST: Only act when asked. Never proactively generate.
210
+ THOUGHT SIGNATURES: Preserve for multi-turn editing sessions.
211
+ REFERENCE IMAGES: Up to 3 for style guidance.
212
+
213
+ Modes: Quick (single asset) | Guided (with references) | Iterative (multi-turn)
214
+ Resolutions: 1K (default), 2K (detailed), 4K (high-fidelity)
215
+ Aspect ratios: 1:1, 3:2, 2:3, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9
216
+
217
+ Handoff: Critique → @vision, Extraction → @looker
218
+ ```
@@ -8,11 +8,13 @@ permission:
8
8
  ".beads/artifacts/*/*.md": allow
9
9
  ".opencode/memory/plans/*.md": allow
10
10
  ".opencode/memory/project/*.md": allow
11
+ ".opencode/plans/*.md": allow
11
12
  edit:
12
13
  "*": deny
13
14
  ".beads/artifacts/*/*.md": allow
14
15
  ".opencode/memory/plans/*.md": allow
15
16
  ".opencode/memory/project/*.md": allow
17
+ ".opencode/plans/*.md": allow
16
18
  bash:
17
19
  "*": allow
18
20
  "rm*": deny
@@ -111,6 +113,7 @@ You are the primary planning agent. You design architecture, coordinate multi-ph
111
113
  | Code review | @review | After implementation |
112
114
  | Design judgment | @vision | For UI/UX decisions |
113
115
  | Content extraction | @looker | For images/PDFs |
116
+ | Image generation | @painter | For mockups/assets |
114
117
 
115
118
  ## Output Format
116
119
 
@@ -89,6 +89,7 @@ Load skill(s) → Systematic analysis → Structured findings → Recommendation
89
89
 
90
90
  - Embed CLI commands in responses (use skills/commands instead)
91
91
  - Implement changes directly (delegate to @build)
92
+ - Generate or edit images directly (delegate to @painter)
92
93
  - Make assumptions about intent without clarifying
93
94
  - Skip skill loading for complex tasks
94
95
  - Provide generic "looks good" assessments
@@ -1,8 +1,7 @@
1
1
  ---
2
2
  description: Edit image with natural language instructions
3
3
  argument-hint: "<image-path> <edit-instruction> [--hd] [--preserve-size] [--compare]"
4
- agent: vision
5
- model: proxypal/gemini-3-pro-image-preview
4
+ agent: painter
6
5
  ---
7
6
 
8
7
  # Edit Image: $ARGUMENTS
@@ -1,8 +1,7 @@
1
1
  ---
2
2
  description: Generate app icons in multiple sizes with platform optimization
3
3
  argument-hint: "<description> [--platform=<ios|android|web|all>] [--style=<style>] [--shape=<shape>] [--color=<hex>] [--dark]"
4
- agent: vision
5
- model: proxypal/gemini-3-pro-image-preview
4
+ agent: painter
6
5
  ---
7
6
 
8
7
  # Generate Icon: $ARGUMENTS
@@ -1,8 +1,7 @@
1
1
  ---
2
2
  description: Generate images using Gemini image models
3
3
  argument-hint: "<prompt> [--style=<style>] [--aspect=<ratio>] [--size=<size>] [--count=<n>] [--pro]"
4
- agent: vision
5
- model: proxypal/gemini-3-pro-image-preview
4
+ agent: painter
6
5
  ---
7
6
 
8
7
  # Generate Image: $ARGUMENTS
@@ -1,8 +1,7 @@
1
1
  ---
2
2
  description: Generate seamless patterns and textures
3
3
  argument-hint: "<description> [--type=<type>] [--style=<style>] [--colors=<palette>] [--density=<level>] [--size=<px>]"
4
- agent: vision
5
- model: proxypal/gemini-3-pro-image-preview
4
+ agent: painter
6
5
  ---
7
6
 
8
7
  # Generate Pattern: $ARGUMENTS
@@ -1,8 +1,7 @@
1
1
  ---
2
2
  description: Generate sequential images for visual storytelling
3
3
  argument-hint: "<story-description> [--frames=<N>] [--style=<style>] [--aspect=<ratio>] [--layout=<layout>]"
4
- agent: vision
5
- model: proxypal/gemini-3-pro-image-preview
4
+ agent: painter
6
5
  ---
7
6
 
8
7
  # Generate Storyboard: $ARGUMENTS
@@ -1,8 +1,7 @@
1
1
  ---
2
2
  description: Restore, enhance, upscale, or improve image quality using AI
3
3
  argument-hint: "<image-path> [mode: enhance|upscale|restore|denoise|colorize]"
4
- agent: vision
5
- model: proxypal/gemini-3-pro-image-preview
4
+ agent: painter
6
5
  ---
7
6
 
8
7
  # Restore Image: $ARGUMENTS
@@ -1,28 +1,34 @@
1
1
  {
2
+ "$schema": "https://unpkg.com/@anthropic/dynamic-context-protocol@1.2.7/schema.json",
2
3
  "enabled": true,
3
4
  "debug": false,
4
- // "minimal" shows prune activity without noise; "off" if you want silence
5
+ // "minimal" shows prune activity without noise; "detailed" shows token counts
5
6
  "pruneNotification": "off",
6
7
  "turnProtection": {
7
8
  "enabled": true,
8
9
  // 3 turns = faster cleanup while still protecting recent context
9
10
  "turns": 3,
10
11
  },
12
+ // Protected file patterns - never auto-prune reads of these files (v1.1.5+)
13
+ "protectedFilePatterns": [
14
+ "**/.env*",
15
+ "**/AGENTS.md",
16
+ "**/.opencode/**",
17
+ "**/.beads/**",
18
+ "**/package.json",
19
+ "**/tsconfig.json",
20
+ "**/biome.json",
21
+ ],
11
22
  "tools": {
12
23
  "settings": {
13
24
  "nudgeEnabled": true,
14
25
  // Nudge every 8 tool calls (slightly more aggressive than default 10)
15
26
  "nudgeFrequency": 8,
16
27
  // Protect state-modifying and critical workflow tools
17
- // Updated for v1.1.8: Added question tool, removed legacy bd_* (use CLI)
18
28
  "protectedTools": [
19
29
  "write",
20
30
  "edit",
21
- "question",
22
- "memory-read",
23
31
  "memory-update",
24
- "memory-search",
25
- "observation",
26
32
  "skill",
27
33
  "skill_mcp",
28
34
  "task",
@@ -36,10 +42,6 @@
36
42
  "lsp_lsp_code_actions",
37
43
  "lsp_lsp_code_action_apply",
38
44
  "lsp_lsp_organize_imports",
39
- "bd-reserve",
40
- "bd-release",
41
- "bd-msg",
42
- "bd-inbox",
43
45
  ],
44
46
  },
45
47
  "discard": {