opencodekit 0.17.8 → 0.17.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.
package/dist/index.js CHANGED
@@ -759,7 +759,7 @@ var cac = (name = "") => new CAC(name);
759
759
  // package.json
760
760
  var package_default = {
761
761
  name: "opencodekit",
762
- version: "0.17.8",
762
+ version: "0.17.10",
763
763
  description: "CLI tool for bootstrapping and managing OpenCodeKit projects",
764
764
  keywords: ["agents", "cli", "mcp", "opencode", "opencodekit", "template"],
765
765
  license: "MIT",
@@ -794,16 +794,16 @@ var package_default = {
794
794
  "format:check": "oxfmt --check"
795
795
  },
796
796
  dependencies: {
797
- "@ai-sdk/provider": "^3.0.6",
798
- "@ai-sdk/provider-utils": "^4.0.11",
797
+ "@ai-sdk/provider": "^3.0.8",
798
+ "@ai-sdk/provider-utils": "^4.0.15",
799
799
  "@clack/prompts": "^0.7.0",
800
- "@opencode-ai/plugin": "^1.1.12",
801
- "@opentui/core": "^0.1.72",
802
- "@opentui/solid": "^0.1.72",
800
+ "@opencode-ai/plugin": "^1.2.6",
801
+ "@opentui/core": "^0.1.80",
802
+ "@opentui/solid": "^0.1.80",
803
803
  cac: "^6.7.14",
804
804
  "cli-table3": "^0.6.5",
805
805
  diff: "^8.0.3",
806
- ora: "^9.0.0",
806
+ ora: "^9.3.0",
807
807
  picocolors: "^1.1.1",
808
808
  "solid-js": "1.9.9",
809
809
  zod: "^3.25.76"
@@ -812,9 +812,9 @@ var package_default = {
812
812
  "@biomejs/biome": "^1.9.4",
813
813
  "@types/bun": "latest",
814
814
  "@types/diff": "^8.0.0",
815
- "@types/node": "^22.19.5",
815
+ "@types/node": "^22.19.11",
816
816
  oxfmt: "^0.23.0",
817
- oxlint: "^1.38.0",
817
+ oxlint: "^1.48.0",
818
818
  typescript: "^5.9.3"
819
819
  },
820
820
  engines: {
@@ -9244,31 +9244,31 @@ async function copyOpenCodeOnly(templateRoot, targetDir) {
9244
9244
  }
9245
9245
  var MODEL_PRESETS = {
9246
9246
  free: {
9247
- model: "opencode/kimi-k2.5-free",
9247
+ model: "opencode/glm-5-free",
9248
9248
  agents: {
9249
- build: "opencode/kimi-k2.5-free",
9250
- plan: "opencode/kimi-k2.5-free",
9249
+ build: "opencode/minimax-m2.5-free",
9250
+ plan: "opencode/minimax-m2.5-free",
9251
9251
  review: "opencode/minimax-m2.5-free",
9252
- explore: "opencode/minimax-m2.5-free",
9253
- general: "opencode/minimax-m2.5-free",
9254
- looker: "opencode/kimi-k2.5-free",
9255
- vision: "opencode/kimi-k2.5-free",
9256
- scout: "opencode/minimax-m2.5-free",
9257
- painter: "opencode/kimi-k2.5-free"
9252
+ explore: "opencode/glm-5-free",
9253
+ general: "opencode/glm-5-free",
9254
+ looker: "opencode/minimax-m2.5-free",
9255
+ vision: "opencode/minimax-m2.5-free",
9256
+ scout: "opencode/glm-5-free",
9257
+ painter: "opencode/minimax-m2.5-free"
9258
9258
  }
9259
9259
  },
9260
9260
  recommend: {
9261
- model: "opencode/kimi-k2.5-free",
9261
+ model: "opencode/minimax-m2.5-free",
9262
9262
  agents: {
9263
9263
  build: "github-copilot/claude-opus-4.6",
9264
9264
  plan: "openai/gpt-5.3-codex",
9265
9265
  review: "openai/gpt-5.3-codex",
9266
- explore: "opencode/minimax-m2.5-free",
9266
+ explore: "proxypal/gemini-3-flash",
9267
9267
  general: "github-copilot/gpt-5.2-codex",
9268
- looker: "github-copilot/gemini-3-flash",
9269
- vision: "github-copilot/gemini-3-pro",
9270
- scout: "opencode/minimax-m2.5-free",
9271
- painter: "github-copilot/gemini-3-pro"
9268
+ looker: "proxypal/gemini-3-flash",
9269
+ vision: "proxypal/gemini-3.1-pro-high",
9270
+ scout: "proxypal/claude-sonnet-4-6",
9271
+ painter: "proxypal/gemini-3-pro-image"
9272
9272
  }
9273
9273
  }
9274
9274
  };
@@ -153,38 +153,14 @@
153
153
  "openslimedit@latest"
154
154
  ],
155
155
  "provider": {
156
- "modal": {
157
- "options": {
158
- "baseURL": "https://api.us-west-2.modal.direct/v1",
159
- "apiKey": "{env:MODAL_API_KEY}"
160
- },
161
- "name": "Modal",
162
- "models": {
163
- "zai-org/GLM-5-FP8": {
164
- "name": "GLM-5",
165
- "reasoning": true,
166
- "options": {
167
- "reasoningEffort": "high",
168
- "reasoningSummary": "true",
169
- "temperature": 1,
170
- "top_k": 40,
171
- "top_p": 0.95,
172
- "maxOutputTokens": 131072,
173
- "thinking": {
174
- "type": "enabled"
175
- }
176
- },
177
- "modalities": {
178
- "input": ["text", "image", "pdf"],
179
- "output": ["text"]
180
- }
181
- }
182
- }
183
- },
184
156
  "github-copilot": {
185
157
  "models": {
186
158
  "claude-haiku-4.5": {
187
159
  "attachment": true,
160
+ "limit": {
161
+ "context": 200000,
162
+ "output": 64000
163
+ },
188
164
  "options": {
189
165
  "thinking_budget": 10000,
190
166
  "type": "enabled"
@@ -209,6 +185,10 @@
209
185
  },
210
186
  "claude-opus-4.5": {
211
187
  "attachment": true,
188
+ "limit": {
189
+ "context": 200000,
190
+ "output": 64000
191
+ },
212
192
  "options": {
213
193
  "thinking_budget": 10000
214
194
  },
@@ -231,7 +211,7 @@
231
211
  "claude-opus-4.6": {
232
212
  "attachment": true,
233
213
  "limit": {
234
- "context": 128000,
214
+ "context": 200000,
235
215
  "output": 64000
236
216
  },
237
217
  "options": {
@@ -246,13 +226,13 @@
246
226
  "variants": {
247
227
  "adaptive": {
248
228
  "options": {
229
+ "max_tokens": 16000,
249
230
  "output_config": {
250
231
  "effort": "max"
251
232
  },
252
233
  "thinking": {
253
234
  "type": "adaptive"
254
- },
255
- "max_tokens": 64000
235
+ }
256
236
  }
257
237
  },
258
238
  "high": {
@@ -273,8 +253,57 @@
273
253
  }
274
254
  }
275
255
  },
256
+ "claude-sonnet-4.6": {
257
+ "attachment": true,
258
+ "limit": {
259
+ "context": 200000,
260
+ "output": 64000
261
+ },
262
+ "options": {
263
+ "thinking": {
264
+ "budget_tokens": 16000,
265
+ "type": "enabled"
266
+ }
267
+ },
268
+ "reasoning": true,
269
+ "temperature": true,
270
+ "tool_call": true,
271
+ "variants": {
272
+ "adaptive": {
273
+ "options": {
274
+ "max_tokens": 16000,
275
+ "output_config": {
276
+ "effort": "max"
277
+ },
278
+ "thinking": {
279
+ "type": "adaptive"
280
+ }
281
+ }
282
+ },
283
+ "high": {
284
+ "options": {
285
+ "thinking": {
286
+ "budget_tokens": 16000,
287
+ "type": "enabled"
288
+ }
289
+ }
290
+ },
291
+ "max": {
292
+ "options": {
293
+ "thinking": {
294
+ "budget_tokens": 32000,
295
+ "type": "enabled"
296
+ }
297
+ }
298
+ }
299
+ }
300
+ },
276
301
  "claude-sonnet-4.5": {
277
302
  "attachment": true,
303
+ "limit": {
304
+ "context": 200000,
305
+ "output": 64000
306
+ },
278
307
  "options": {
279
308
  "thinking_budget": 10000
280
309
  },
@@ -296,6 +325,10 @@
296
325
  },
297
326
  "gpt-5.2": {
298
327
  "attachment": true,
328
+ "limit": {
329
+ "context": 400000,
330
+ "output": 128000
331
+ },
299
332
  "options": {
300
333
  "reasoningEffort": "medium",
301
334
  "reasoningSummary": "auto",
@@ -322,6 +355,10 @@
322
355
  },
323
356
  "gpt-5.2-codex": {
324
357
  "attachment": true,
358
+ "limit": {
359
+ "context": 400000,
360
+ "output": 128000
361
+ },
325
362
  "options": {
326
363
  "reasoningEffort": "medium",
327
364
  "reasoningSummary": "auto",
@@ -401,6 +438,34 @@
401
438
  }
402
439
  }
403
440
  },
441
+ "modal": {
442
+ "models": {
443
+ "zai-org/GLM-5-FP8": {
444
+ "modalities": {
445
+ "input": ["text", "image", "pdf"],
446
+ "output": ["text"]
447
+ },
448
+ "name": "GLM-5",
449
+ "options": {
450
+ "maxOutputTokens": 131072,
451
+ "reasoningEffort": "high",
452
+ "reasoningSummary": "true",
453
+ "temperature": 1,
454
+ "thinking": {
455
+ "type": "enabled"
456
+ },
457
+ "top_k": 40,
458
+ "top_p": 0.95
459
+ },
460
+ "reasoning": true
461
+ }
462
+ },
463
+ "name": "Modal",
464
+ "options": {
465
+ "apiKey": "{env:MODAL_API_KEY}",
466
+ "baseURL": "https://api.us-west-2.modal.direct/v1"
467
+ }
468
+ },
404
469
  "openai": {
405
470
  "models": {
406
471
  "gpt-5.2": {
@@ -427,6 +492,37 @@
427
492
  "fast": {
428
493
  "disabled": true
429
494
  },
495
+ "xhigh": {
496
+ "include": ["reasoning.encrypted_content"],
497
+ "reasoningEffort": "xhigh",
498
+ "reasoningSummary": "auto",
499
+ "textVerbosity": "low"
500
+ },
501
+ "high": {
502
+ "include": ["reasoning.encrypted_content"],
503
+ "reasoningEffort": "high",
504
+ "reasoningSummary": "auto",
505
+ "textVerbosity": "low"
506
+ },
507
+ "medium": {
508
+ "include": ["reasoning.encrypted_content"],
509
+ "reasoningEffort": "medium",
510
+ "reasoningSummary": "auto",
511
+ "textVerbosity": "low"
512
+ }
513
+ }
514
+ },
515
+ "gpt-5.3-codex": {
516
+ "variants": {
517
+ "fast": {
518
+ "disabled": true
519
+ },
520
+ "xhigh": {
521
+ "include": ["reasoning.encrypted_content"],
522
+ "reasoningEffort": "xhigh",
523
+ "reasoningSummary": "auto",
524
+ "textVerbosity": "low"
525
+ },
430
526
  "high": {
431
527
  "include": ["reasoning.encrypted_content"],
432
528
  "reasoningEffort": "high",
@@ -453,77 +549,24 @@
453
549
  "top_p": 0.95
454
550
  },
455
551
  "reasoning": true
456
- },
457
- "kimi-k2.5-free": {
458
- "limit": {
459
- "context": 262144,
460
- "output": 32768
461
- },
462
- "options": {
463
- "interleaved": {
464
- "field": "reasoning_content"
465
- },
466
- "thinking": {
467
- "budgetTokens": 8192,
468
- "reasoning_effort": "high",
469
- "type": "enabled"
470
- }
471
- },
472
- "reasoning": true,
473
- "temperature": true,
474
- "tool_call": true,
475
- "variants": {
476
- "high": {
477
- "interleaved": {
478
- "field": "reasoning_content"
479
- },
480
- "options": {
481
- "reasoning_effort": "high",
482
- "thinkingBudget": 16384,
483
- "type": "enabled"
484
- }
485
- },
486
- "max": {
487
- "interleaved": {
488
- "field": "reasoning_content"
489
- },
490
- "options": {
491
- "reasoning_effort": "high",
492
- "thinkingBudget": 32768,
493
- "type": "enabled"
494
- }
495
- }
496
- }
497
552
  }
498
553
  }
499
554
  },
500
555
  "proxypal": {
501
556
  "models": {
502
- "claude-opus-4-5-thinking": {
557
+ "claude-haiku-4-5": {
503
558
  "limit": {
504
559
  "context": 200000,
505
560
  "output": 64000
506
561
  },
507
- "name": "Claude Opus 4 5 Thinking",
508
- "options": {
509
- "thinking": {
510
- "budgetTokens": 8192,
511
- "type": "enabled"
512
- }
562
+ "name": "Claude Haiku 4 5"
563
+ },
564
+ "claude-haiku-4-5-20251001": {
565
+ "limit": {
566
+ "context": 200000,
567
+ "output": 64000
513
568
  },
514
- "reasoning": true,
515
- "variants": {
516
- "low": {
517
- "thinkingConfig": {
518
- "thinkingBudget": 8192
519
- }
520
- },
521
- "max": {
522
- "thinkingConfig": {
523
- "thinkingBudget": 32768
524
- }
525
- }
526
- }
569
+ "name": "Claude Haiku 4 5 20251001"
527
570
  },
528
571
  "claude-opus-4-6-thinking": {
529
572
  "limit": {
@@ -551,6 +594,20 @@
551
594
  }
552
595
  }
553
596
  },
597
+ "claude-sonnet-4": {
598
+ "limit": {
599
+ "context": 200000,
600
+ "output": 64000
601
+ },
602
+ "name": "Claude Sonnet 4"
603
+ },
604
+ "claude-sonnet-4-20250514": {
605
+ "limit": {
606
+ "context": 200000,
607
+ "output": 64000
608
+ },
609
+ "name": "Claude Sonnet 4 20250514"
610
+ },
554
611
  "claude-sonnet-4-5": {
555
612
  "limit": {
556
613
  "context": 200000,
@@ -558,6 +615,13 @@
558
615
  },
559
616
  "name": "Claude Sonnet 4 5"
560
617
  },
618
+ "claude-sonnet-4-5-20250929": {
619
+ "limit": {
620
+ "context": 200000,
621
+ "output": 64000
622
+ },
623
+ "name": "Claude Sonnet 4 5 20250929"
624
+ },
561
625
  "claude-sonnet-4-5-thinking": {
562
626
  "limit": {
563
627
  "context": 200000,
@@ -584,6 +648,13 @@
584
648
  }
585
649
  }
586
650
  },
651
+ "claude-sonnet-4-6": {
652
+ "limit": {
653
+ "context": 200000,
654
+ "output": 64000
655
+ },
656
+ "name": "Claude Sonnet 4 6"
657
+ },
587
658
  "gemini-2.5-flash": {
588
659
  "limit": {
589
660
  "context": 1000000,
@@ -886,6 +957,17 @@
886
957
  },
887
958
  "reasoning": true
888
959
  },
960
+ "gpt-5.3-codex-spark": {
961
+ "limit": {
962
+ "context": 400000,
963
+ "output": 32768
964
+ },
965
+ "name": "Gpt 5 3 Codex Spark",
966
+ "options": {
967
+ "reasoningEffort": "medium"
968
+ },
969
+ "reasoning": true
970
+ },
889
971
  "gpt-oss-120b-medium": {
890
972
  "limit": {
891
973
  "context": 128000,
@@ -967,12 +1049,61 @@
967
1049
  },
968
1050
  "name": "Kiro Claude Sonnet 4 Agentic"
969
1051
  },
1052
+ "kiro-deepseek-3-2": {
1053
+ "limit": {
1054
+ "context": 128000,
1055
+ "output": 8192
1056
+ },
1057
+ "name": "Kiro Deepseek 3 2"
1058
+ },
1059
+ "kiro-deepseek-3-2-agentic": {
1060
+ "limit": {
1061
+ "context": 128000,
1062
+ "output": 8192
1063
+ },
1064
+ "name": "Kiro Deepseek 3 2 Agentic"
1065
+ },
1066
+ "kiro-minimax-m2-1": {
1067
+ "limit": {
1068
+ "context": 128000,
1069
+ "output": 16384
1070
+ },
1071
+ "name": "Kiro Minimax M2 1"
1072
+ },
1073
+ "kiro-minimax-m2-1-agentic": {
1074
+ "limit": {
1075
+ "context": 128000,
1076
+ "output": 16384
1077
+ },
1078
+ "name": "Kiro Minimax M2 1 Agentic"
1079
+ },
1080
+ "kiro-qwen3-coder-next": {
1081
+ "limit": {
1082
+ "context": 1000000,
1083
+ "output": 65536
1084
+ },
1085
+ "name": "Kiro Qwen3 Coder Next"
1086
+ },
1087
+ "kiro-qwen3-coder-next-agentic": {
1088
+ "limit": {
1089
+ "context": 1000000,
1090
+ "output": 65536
1091
+ },
1092
+ "name": "Kiro Qwen3 Coder Next Agentic"
1093
+ },
970
1094
  "tab_flash_lite_preview": {
971
1095
  "limit": {
972
1096
  "context": 128000,
973
1097
  "output": 16384
974
1098
  },
975
1099
  "name": "Tab_flash_lite_preview"
1100
+ },
1101
+ "tab_jump_flash_lite_preview": {
1102
+ "limit": {
1103
+ "context": 128000,
1104
+ "output": 16384
1105
+ },
1106
+ "name": "Tab_jump_flash_lite_preview"
976
1107
  }
977
1108
  },
978
1109
  "name": "ProxyPal",
@@ -1018,18 +1149,18 @@
1018
1149
  },
1019
1150
  "glm-5": {
1020
1151
  "name": "GLM-5",
1021
- "reasoning": true,
1022
1152
  "options": {
1153
+ "maxOutputTokens": 131072,
1023
1154
  "reasoningEffort": "high",
1024
1155
  "reasoningSummary": "true",
1025
1156
  "temperature": 1,
1026
- "top_k": 40,
1027
- "top_p": 0.95,
1028
- "maxOutputTokens": 131072,
1029
1157
  "thinking": {
1030
1158
  "type": "enabled"
1031
- }
1032
- }
1159
+ },
1160
+ "top_k": 40,
1161
+ "top_p": 0.95
1162
+ },
1163
+ "reasoning": true
1033
1164
  }
1034
1165
  },
1035
1166
  "name": "Z.AI Coding Plan"
@@ -11,11 +11,11 @@
11
11
  "type-check": "tsc --noEmit"
12
12
  },
13
13
  "dependencies": {
14
- "@opencode-ai/plugin": "1.2.5"
14
+ "@opencode-ai/plugin": "1.2.10"
15
15
  },
16
16
  "devDependencies": {
17
- "@types/node": "^25.1.0",
18
- "bun-types": "^1.3.8",
17
+ "@types/node": "^25.3.0",
18
+ "bun-types": "^1.3.9",
19
19
  "typescript": "^5.9.3"
20
20
  }
21
21
  }
@@ -348,6 +348,102 @@ swarm({ operation: "sync", action: "pull" });
348
348
  3. **One task per session** - Restart after `br close`
349
349
  4. **Always sync and commit** - `br sync --flush-only` then `git add .beads/ && git commit`
350
350
  5. **Write notes for future agents** - Assume zero conversation context
351
+ 6. **Claim file paths before editing** - Use reserve to declare ownership (multi-agent only)
352
+
353
+ ## File Path Claiming (Multi-Agent Safety)
354
+
355
+ At multi-agent scale, agents editing the same files cause merge conflicts. File path claiming prevents this by making ownership explicit before any edit happens.
356
+
357
+ ### When to Use
358
+
359
+ - **Single agent**: Optional — no conflicts possible
360
+ - **2-10 agents**: Recommended for files touched by multiple tasks
361
+ - **10+ agents**: Required — every file must be claimed before editing
362
+
363
+ ### The Claim/Edit/Release Cycle
364
+
365
+ ```bash
366
+ # 1. CLAIM: Declare intent to edit before touching the file
367
+ br reserve <bead-id> --files "src/auth/service.ts,src/auth/types.ts"
368
+ # → Marks files as owned by this bead
369
+ # → Other agents see the reservation and must wait
370
+
371
+ # 2. EDIT: Make your changes
372
+ # (edit files as normal)
373
+
374
+ # 3. VERIFY: Run gates before releasing
375
+ npm run typecheck && npm run lint
376
+
377
+ # 4. CLOSE: Release ownership when done
378
+ br close <bead-id> --reason "Auth service implemented. Gates passed."
379
+ # → Ownership released automatically on close
380
+ ```
381
+
382
+ ### Checking for Conflicts Before Claiming
383
+
384
+ Before claiming, check if another bead already owns the file:
385
+
386
+ ```bash
387
+ # See all reserved files across active beads
388
+ br list --status in_progress --json | jq '.[].reserved_files'
389
+
390
+ # If conflict detected:
391
+ # → Wait for the other bead to close
392
+ # → Or coordinate with the agent owning that bead
393
+ ```
394
+
395
+ ### Claiming in Delegation Packets
396
+
397
+ Workers MUST declare file claims in their delegation packet:
398
+
399
+ ```markdown
400
+ # Delegation Packet
401
+
402
+ - TASK: task-1 - Implement auth service
403
+ - FILES TO CLAIM BEFORE EDITING:
404
+ - src/auth/service.ts
405
+ - src/auth/types.ts
406
+ - src/auth/middleware.ts
407
+ - MUST NOT EDIT (owned by other tasks):
408
+ - src/db/schema.ts (owned by task-0)
409
+ - src/config.ts (owned by task-2)
410
+ ```
411
+
412
+ ### Conflict Resolution Protocol
413
+
414
+ When two agents want the same file:
415
+
416
+ | Scenario | Resolution |
417
+ | ------------------------------------ | ----------------------------------------------- |
418
+ | File not claimed | Claim it and proceed |
419
+ | File claimed by completed bead | Safe to claim (no active owner) |
420
+ | File claimed by in_progress bead | Wait for bead to close, then claim |
421
+ | Urgent: same file, different workers | Escalate to lead agent to split the file change |
422
+
423
+ ### Anti-Pattern: Claiming After Editing
424
+
425
+ ```bash
426
+ # WRONG — edit first, claim after → conflict already happened
427
+ edit src/auth/service.ts
428
+ br reserve bead-1 --files "src/auth/service.ts"
429
+
430
+ # RIGHT — claim first, then edit
431
+ br reserve bead-1 --files "src/auth/service.ts"
432
+ edit src/auth/service.ts
433
+ ```
434
+
435
+ ### Quick Reference: File Claiming
436
+
437
+ ```
438
+ BEFORE EDITING (multi-agent):
439
+ br reserve <id> --files "src/file.ts"
440
+
441
+ CHECK OWNERSHIP:
442
+ br list --status in_progress --json | jq '.[].reserved_files'
443
+
444
+ RELEASE:
445
+ br close <id> --reason "..." ← auto-releases files
446
+ ```
351
447
 
352
448
  ## Best Practices
353
449