opencodekit 0.16.18 → 0.16.20

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/index.js CHANGED
@@ -759,16 +759,9 @@ var cac = (name = "") => new CAC(name);
759
759
  // package.json
760
760
  var package_default = {
761
761
  name: "opencodekit",
762
- version: "0.16.18",
762
+ version: "0.16.20",
763
763
  description: "CLI tool for bootstrapping and managing OpenCodeKit projects",
764
- keywords: [
765
- "agents",
766
- "cli",
767
- "mcp",
768
- "opencode",
769
- "opencodekit",
770
- "template"
771
- ],
764
+ keywords: ["agents", "cli", "mcp", "opencode", "opencodekit", "template"],
772
765
  license: "MIT",
773
766
  author: "OpenCodeKit",
774
767
  repository: {
@@ -778,10 +771,7 @@ var package_default = {
778
771
  bin: {
779
772
  ock: "dist/index.js"
780
773
  },
781
- files: [
782
- "dist",
783
- "README.md"
784
- ],
774
+ files: ["dist", "README.md"],
785
775
  type: "module",
786
776
  publishConfig: {
787
777
  access: "public",
@@ -9273,12 +9263,12 @@ var MODEL_PRESETS = {
9273
9263
  build: "github-copilot/claude-opus-4.6",
9274
9264
  plan: "openai/gpt-5.3-codex",
9275
9265
  review: "openai/gpt-5.3-codex",
9276
- explore: "proxypal/gemini-3-flash-preview",
9266
+ explore: "proxypal/gemini-3-flash",
9277
9267
  general: "github-copilot/gpt-5.2-codex",
9278
- looker: "proxypal/gemini-3-flash-preview",
9279
- vision: "proxypal/gemini-3-pro-preview",
9280
- scout: "proxypal/gemini-3-flash-preview",
9281
- painter: "proxypal/gemini-3-pro-image-preview"
9268
+ looker: "proxypal/gemini-3-flash",
9269
+ vision: "proxypal/gemini-3-pro",
9270
+ scout: "proxypal/gemini-3-flash",
9271
+ painter: "proxypal/gemini-3-pro"
9282
9272
  }
9283
9273
  }
9284
9274
  };
@@ -3,14 +3,14 @@
3
3
  "agent": {
4
4
  "build": {
5
5
  "description": "Primary development agent with full codebase access",
6
- "model": "github-copilot/claude-opus-4.6"
6
+ "model": "opencode/kimi-k2.5-free"
7
7
  },
8
8
  "compaction": {
9
9
  "description": "Session summarizer for context continuity across compactions"
10
10
  },
11
11
  "explore": {
12
12
  "description": "Fast codebase search specialist",
13
- "model": "opencode/kimi-k2.5-free"
13
+ "model": "opencode/minimax-m2.1-free"
14
14
  },
15
15
  "general": {
16
16
  "description": "General-purpose subagent for fast, well-defined tasks; delegates complexity quickly",
@@ -18,11 +18,11 @@
18
18
  },
19
19
  "looker": {
20
20
  "description": "Media extraction specialist for images, PDFs, diagrams",
21
- "model": "opencode/kimi-k2.5-free"
21
+ "model": "proxypal/gemini-3-flash"
22
22
  },
23
23
  "painter": {
24
24
  "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",
25
- "model": "opencode/kimi-k2.5-free"
25
+ "model": "proxypal/gemini-3-pro-image"
26
26
  },
27
27
  "plan": {
28
28
  "description": "Primary planning agent for architecture and multi-phase execution",
@@ -30,7 +30,7 @@
30
30
  },
31
31
  "review": {
32
32
  "description": "Code review, debugging, and security audit specialist",
33
- "model": "opencode/kimi-k2.5-free"
33
+ "model": "openai/gpt-5.3-codex"
34
34
  },
35
35
  "scout": {
36
36
  "description": "External research specialist for library docs and patterns",
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "vision": {
40
40
  "description": "Visual content specialist for multimodal analysis and UI/UX guidance",
41
- "model": "opencode/kimi-k2.5-free"
41
+ "model": "proxypal/gemini-3-pro-high"
42
42
  }
43
43
  },
44
44
  "autoupdate": false,
@@ -257,6 +257,9 @@
257
257
  "variants": {
258
258
  "adaptive": {
259
259
  "options": {
260
+ "output_config": {
261
+ "effort": "high"
262
+ },
260
263
  "thinking": {
261
264
  "type": "adaptive"
262
265
  }
@@ -362,6 +365,9 @@
362
365
  }
363
366
  }
364
367
  }
368
+ },
369
+ "options": {
370
+ "timeout": 600000
365
371
  }
366
372
  },
367
373
  "kimi-for-coding": {
@@ -515,6 +521,91 @@
515
521
  },
516
522
  "proxypal": {
517
523
  "models": {
524
+ "claude-opus-4-5-thinking": {
525
+ "limit": {
526
+ "context": 200000,
527
+ "output": 64000
528
+ },
529
+ "name": "Claude Opus 4 5 Thinking",
530
+ "options": {
531
+ "thinking": {
532
+ "budgetTokens": 8192,
533
+ "type": "enabled"
534
+ }
535
+ },
536
+ "reasoning": true,
537
+ "variants": {
538
+ "low": {
539
+ "thinkingConfig": {
540
+ "thinkingBudget": 8192
541
+ }
542
+ },
543
+ "max": {
544
+ "thinkingConfig": {
545
+ "thinkingBudget": 32768
546
+ }
547
+ }
548
+ }
549
+ },
550
+ "claude-opus-4-6-thinking": {
551
+ "limit": {
552
+ "context": 200000,
553
+ "output": 64000
554
+ },
555
+ "name": "Claude Opus 4 6 Thinking",
556
+ "options": {
557
+ "thinking": {
558
+ "budgetTokens": 8192,
559
+ "type": "enabled"
560
+ }
561
+ },
562
+ "reasoning": true,
563
+ "variants": {
564
+ "low": {
565
+ "thinkingConfig": {
566
+ "thinkingBudget": 8192
567
+ }
568
+ },
569
+ "max": {
570
+ "thinkingConfig": {
571
+ "thinkingBudget": 32768
572
+ }
573
+ }
574
+ }
575
+ },
576
+ "claude-sonnet-4-5": {
577
+ "limit": {
578
+ "context": 200000,
579
+ "output": 64000
580
+ },
581
+ "name": "Claude Sonnet 4 5"
582
+ },
583
+ "claude-sonnet-4-5-thinking": {
584
+ "limit": {
585
+ "context": 200000,
586
+ "output": 64000
587
+ },
588
+ "name": "Claude Sonnet 4 5 Thinking",
589
+ "options": {
590
+ "thinking": {
591
+ "budgetTokens": 8192,
592
+ "type": "enabled"
593
+ }
594
+ },
595
+ "reasoning": true,
596
+ "variants": {
597
+ "low": {
598
+ "thinkingConfig": {
599
+ "thinkingBudget": 8192
600
+ }
601
+ },
602
+ "max": {
603
+ "thinkingConfig": {
604
+ "thinkingBudget": 32768
605
+ }
606
+ }
607
+ }
608
+ },
518
609
  "gemini-2.5-flash": {
519
610
  "limit": {
520
611
  "context": 1000000,
@@ -566,7 +657,7 @@
566
657
  },
567
658
  "name": "Gemini 2 5 Pro"
568
659
  },
569
- "gemini-3-flash-preview": {
660
+ "gemini-3-flash": {
570
661
  "limit": {
571
662
  "context": 1000000,
572
663
  "output": 65536
@@ -581,7 +672,7 @@
581
672
  "text"
582
673
  ]
583
674
  },
584
- "name": "Gemini 3 Flash Preview",
675
+ "name": "Gemini 3 Flash",
585
676
  "options": {
586
677
  "generationConfig": {
587
678
  "thinkingConfig": {
@@ -603,14 +694,7 @@
603
694
  }
604
695
  }
605
696
  },
606
- "gemini-3-pro-image-preview": {
607
- "limit": {
608
- "context": 1000000,
609
- "output": 65536
610
- },
611
- "name": "Gemini 3 Pro Image Preview"
612
- },
613
- "gemini-3-pro-preview": {
697
+ "gemini-3-flash-preview": {
614
698
  "limit": {
615
699
  "context": 1000000,
616
700
  "output": 65536
@@ -625,7 +709,7 @@
625
709
  "text"
626
710
  ]
627
711
  },
628
- "name": "Gemini 3 Pro Preview",
712
+ "name": "Gemini 3 Flash Preview",
629
713
  "options": {
630
714
  "generationConfig": {
631
715
  "thinkingConfig": {
@@ -647,10 +731,10 @@
647
731
  }
648
732
  }
649
733
  },
650
- "gemini-claude-opus-4-5-thinking": {
734
+ "gemini-3-pro-high": {
651
735
  "limit": {
652
- "context": 200000,
653
- "output": 64000
736
+ "context": 1000000,
737
+ "output": 65536
654
738
  },
655
739
  "modalities": {
656
740
  "input": [
@@ -662,48 +746,39 @@
662
746
  "text"
663
747
  ]
664
748
  },
665
- "name": "Gemini Claude Opus 4 5 Thinking",
749
+ "name": "Gemini 3 Pro High",
666
750
  "options": {
667
- "thinking": {
668
- "budgetTokens": 8192,
669
- "type": "enabled"
751
+ "generationConfig": {
752
+ "thinkingConfig": {
753
+ "includeThoughts": true,
754
+ "thinkingLevel": "medium"
755
+ }
670
756
  }
671
757
  },
672
758
  "reasoning": true,
673
759
  "variants": {
760
+ "high": {
761
+ "thinkingLevel": "high"
762
+ },
674
763
  "low": {
675
- "thinkingConfig": {
676
- "thinkingBudget": 8192
677
- }
764
+ "thinkingLevel": "low"
678
765
  },
679
- "max": {
680
- "thinkingConfig": {
681
- "thinkingBudget": 32768
682
- }
766
+ "medium": {
767
+ "thinkingLevel": "medium"
683
768
  }
684
769
  }
685
770
  },
686
- "gemini-claude-sonnet-4-5": {
771
+ "gemini-3-pro-image": {
687
772
  "limit": {
688
- "context": 200000,
689
- "output": 64000
690
- },
691
- "modalities": {
692
- "input": [
693
- "text",
694
- "image",
695
- "pdf"
696
- ],
697
- "output": [
698
- "text"
699
- ]
773
+ "context": 1000000,
774
+ "output": 65536
700
775
  },
701
- "name": "Gemini Claude Sonnet 4 5"
776
+ "name": "Gemini 3 Pro Image"
702
777
  },
703
- "gemini-claude-sonnet-4-5-thinking": {
778
+ "gemini-3-pro-preview": {
704
779
  "limit": {
705
- "context": 200000,
706
- "output": 64000
780
+ "context": 1000000,
781
+ "output": 65536
707
782
  },
708
783
  "modalities": {
709
784
  "input": [
@@ -715,24 +790,25 @@
715
790
  "text"
716
791
  ]
717
792
  },
718
- "name": "Gemini Claude Sonnet 4 5 Thinking",
793
+ "name": "Gemini 3 Pro Preview",
719
794
  "options": {
720
- "thinking": {
721
- "budgetTokens": 8192,
722
- "type": "enabled"
795
+ "generationConfig": {
796
+ "thinkingConfig": {
797
+ "includeThoughts": true,
798
+ "thinkingLevel": "medium"
799
+ }
723
800
  }
724
801
  },
725
802
  "reasoning": true,
726
803
  "variants": {
804
+ "high": {
805
+ "thinkingLevel": "high"
806
+ },
727
807
  "low": {
728
- "thinkingConfig": {
729
- "thinkingBudget": 8192
730
- }
808
+ "thinkingLevel": "low"
731
809
  },
732
- "max": {
733
- "thinkingConfig": {
734
- "thinkingBudget": 32768
735
- }
810
+ "medium": {
811
+ "thinkingLevel": "medium"
736
812
  }
737
813
  }
738
814
  },
@@ -881,6 +957,31 @@
881
957
  },
882
958
  "name": "Gpt Oss 120b Medium"
883
959
  },
960
+ "kimi-k2": {
961
+ "limit": {
962
+ "context": 128000,
963
+ "output": 16384
964
+ },
965
+ "name": "Kimi K2"
966
+ },
967
+ "kimi-k2-thinking": {
968
+ "limit": {
969
+ "context": 128000,
970
+ "output": 16384
971
+ },
972
+ "name": "Kimi K2 Thinking",
973
+ "options": {
974
+ "reasoningEffort": "high"
975
+ },
976
+ "reasoning": true
977
+ },
978
+ "kimi-k2.5": {
979
+ "limit": {
980
+ "context": 128000,
981
+ "output": 16384
982
+ },
983
+ "name": "Kimi K2 5"
984
+ },
884
985
  "kiro-auto": {
885
986
  "limit": {
886
987
  "context": 128000,
@@ -1,31 +1,32 @@
1
1
  ---
2
2
  name: context-management
3
- description: Use when context is growing large, needing to prune/distill tool outputs, or managing conversation size - covers DCP tools (prune, distill, compress) and context budgets
3
+ description: Use when context is growing large, needing to prune/distill tool outputs, or managing conversation size - covers distill and prune tools with context budgets
4
4
  ---
5
5
 
6
- # Context Management (DCP)
6
+ # Context Management
7
7
 
8
- Manage conversation context to prevent degradation. Uses prune/distill/compress tools.
8
+ Manage conversation context to prevent degradation. Uses distill and prune tools.
9
9
 
10
- ## The Three Tools
10
+ ## The Two Tools
11
11
 
12
- | Tool | Purpose | When to Use |
13
- | ---------- | ----------------------------- | ---------------------------------------- |
14
- | `prune` | Remove tool outputs (no save) | Noise, irrelevant reads, superseded info |
15
- | `distill` | Extract key info, then remove | Large outputs with valuable details |
16
- | `compress` | Collapse conversation range | Completed phases, exploration done |
12
+ | Tool | Purpose | When to Use |
13
+ | --------- | ----------------------------- | ---------------------------------------- |
14
+ | `distill` | Extract key info, then remove | Large outputs with valuable details |
15
+ | `prune` | Remove tool outputs (no save) | Noise, irrelevant reads, superseded info |
16
+
17
+ **Distill is the favored tool.** It preserves knowledge while freeing context. Prune is for pure noise removal.
17
18
 
18
19
  ## When to Evaluate
19
20
 
20
21
  **DO evaluate context when:**
21
22
 
23
+ - Starting a new phase of work (best timing)
22
24
  - Accessed something irrelevant
23
25
  - Information superseded by newer outputs
24
- - Starting a new phase of work
25
- - Large tool outputs with valuable details
26
+ - Large tool outputs with extractable details
26
27
  - Phase complete (research, exploration, implementation)
27
28
 
28
- **DO NOT prune when:**
29
+ **DO NOT manage when:**
29
30
 
30
31
  - Output needed for upcoming edits
31
32
  - Contains files you'll reference when editing
@@ -33,50 +34,43 @@ Manage conversation context to prevent degradation. Uses prune/distill/compress
33
34
 
34
35
  ## Tool Usage
35
36
 
36
- ### Prune - Remove Noise
37
+ ### Distill Preserve + Remove (Preferred)
37
38
 
38
- ```typescript
39
- prune({ ids: ["5", "8"] }); // IDs from <prunable-tools> list
40
- ```
41
-
42
- ### Distill - Preserve + Remove
39
+ Extract high-fidelity knowledge from tool outputs, then remove the raw output. Your distillation must be a **complete technical substitute** — capture signatures, types, logic, constraints, everything essential.
43
40
 
44
41
  ```typescript
45
42
  distill({
46
- ids: ["10", "11"],
47
- distillation: [
48
- "auth.ts: validateToken(token: string) -> User|null, bcrypt 12 rounds",
49
- "user.ts: interface User { id, email, permissions[], status }",
43
+ targets: [
44
+ {
45
+ id: "10",
46
+ distillation:
47
+ "auth.ts: validateToken(token: string) -> User|null, uses bcrypt 12 rounds, throws on expired tokens",
48
+ },
49
+ {
50
+ id: "11",
51
+ distillation:
52
+ "user.ts: interface User { id: string, email: string, permissions: Permission[], status: 'active'|'suspended' }",
53
+ },
50
54
  ],
51
55
  });
52
56
  ```
53
57
 
54
- ### Compress - Collapse Ranges
58
+ ### Prune Remove Noise (Last Resort)
59
+
60
+ Delete tool outputs entirely. No preservation. Use for noise, wrong targets, or superseded information.
55
61
 
56
62
  ```typescript
57
- compress({
58
- input: [
59
- "exact text from start", // Must exist VERBATIM
60
- "exact text from end", // Must come AFTER start
61
- "Topic Label", // 3-5 words
62
- "Summary of accomplishments", // Replacement text
63
- ],
64
- });
63
+ prune({ ids: ["5", "8"] }); // IDs from <prunable-tools> list
65
64
  ```
66
65
 
67
66
  ## Critical Rules
68
67
 
69
- **For prune/distill:**
70
-
71
- - IDs MUST come from current `<prunable-tools>` list
72
- - List refreshes after every tool use - don't cache IDs
73
- - Invalid IDs error: `"Invalid IDs provided"`
74
-
75
- **For compress:**
76
-
77
- - Start/end strings must match EXACTLY
78
- - Start must appear BEFORE end chronologically
79
- - Both strings must be unique (appear only once)
68
+ - IDs MUST come from the current `<prunable-tools>` list
69
+ - The list refreshes after every tool use — don't cache IDs
70
+ - Invalid IDs will error
71
+ - **Distill before prune** if there's anything worth keeping, distill it
72
+ - **Batch operations** accumulate several candidates before acting
73
+ - **Timing** — manage at the START of a new turn (after user message), not at the end of your turn
80
74
 
81
75
  ## Protected Content
82
76
 
@@ -86,30 +80,23 @@ Auto-protected from pruning:
86
80
  - `AGENTS.md`
87
81
  - `.opencode/**` config
88
82
  - `.beads/**` tasks
89
- - `package.json`, `tsconfig.json`, `biome.json`
83
+ - `package.json`, `tsconfig.json`
90
84
 
91
85
  ## Context Budget Guidelines
92
86
 
93
- | Phase | Target | Action |
94
- | ----------------- | ------- | ----------------------------------------- |
95
- | Starting work | <50k | Load only essential AGENTS.md + task spec |
96
- | Mid-task | 50-100k | Prune completed reads, keep active files |
97
- | Approaching limit | >100k | Aggressive pruning, extract key findings |
98
- | Near capacity | >150k | Session restart with handoff |
99
-
100
- ## DCP Commands (User)
101
-
102
- - `/dcp context` - Token usage breakdown
103
- - `/dcp stats` - Cumulative pruning statistics
104
- - `/dcp sweep` - Prune all tools since last user message
105
- - `/dcp sweep 10` - Prune last 10 tools
87
+ | Phase | Target | Action |
88
+ | ----------------- | ------- | ------------------------------------------ |
89
+ | Starting work | <50k | Load only essential AGENTS.md + task spec |
90
+ | Mid-task | 50-100k | Distill completed reads, keep active files |
91
+ | Approaching limit | >100k | Aggressive distill, prune remaining noise |
92
+ | Near capacity | >150k | Session restart with handoff |
106
93
 
107
94
  ## Quick Reference
108
95
 
109
96
  ```
110
- PRUNE: Remove noiseprune({ ids: [...] })
111
- DISTILL: Save + remove distill({ ids: [...], distillation: [...] })
112
- COMPRESS: Collapse phase → compress({ input: [start, end, topic, summary] })
97
+ DISTILL: Save + remove distill({ targets: [{ id, distillation }] })
98
+ PRUNE: Remove noise prune({ ids: [...] })
113
99
 
114
- BUDGET: <50k start → 50-100k mid → >100k prune → >150k restart
100
+ BUDGET: <50k start → 50-100k mid → >100k distill → >150k restart
101
+ TIMING: Manage at turn START, not turn END
115
102
  ```