opencodekit 0.21.9 → 0.22.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.
Files changed (165) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/template/.opencode/AGENTS.md +116 -499
  3. package/dist/template/.opencode/README.md +1 -1
  4. package/dist/template/.opencode/agent/build.md +56 -396
  5. package/dist/template/.opencode/agent/explore.md +15 -16
  6. package/dist/template/.opencode/agent/general.md +2 -2
  7. package/dist/template/.opencode/agent/plan.md +3 -3
  8. package/dist/template/.opencode/agent/review.md +2 -3
  9. package/dist/template/.opencode/agent/scout.md +34 -16
  10. package/dist/template/.opencode/agent/vision.md +0 -1
  11. package/dist/template/.opencode/command/clarify.md +48 -0
  12. package/dist/template/.opencode/command/commit.md +53 -0
  13. package/dist/template/.opencode/command/design.md +4 -4
  14. package/dist/template/.opencode/command/fix.md +56 -0
  15. package/dist/template/.opencode/command/improve-architecture.md +55 -0
  16. package/dist/template/.opencode/command/init.md +88 -68
  17. package/dist/template/.opencode/command/refactor.md +66 -0
  18. package/dist/template/.opencode/command/review-codebase.md +1 -1
  19. package/dist/template/.opencode/command/ship.md +1 -1
  20. package/dist/template/.opencode/command/test.md +66 -0
  21. package/dist/template/.opencode/dcp.jsonc +29 -46
  22. package/dist/template/.opencode/memory/README.md +3 -5
  23. package/dist/template/.opencode/memory/_templates/adr.md +45 -0
  24. package/dist/template/.opencode/memory/project/gotchas.md +1 -1
  25. package/dist/template/.opencode/memory/project/user.md +1 -2
  26. package/dist/template/.opencode/memory/session-context.md +1 -1
  27. package/dist/template/.opencode/opencode.json +10 -332
  28. package/dist/template/.opencode/plugin/README.md +1 -1
  29. package/dist/template/.opencode/plugin/guard.ts +62 -0
  30. package/dist/template/.opencode/plugin/{lib/memory-admin-tools.ts → memory/admin.ts} +4 -4
  31. package/dist/template/.opencode/plugin/{lib → memory}/capture.ts +1 -1
  32. package/dist/template/.opencode/plugin/{lib → memory}/compile.ts +2 -2
  33. package/dist/template/.opencode/plugin/{lib → memory}/context.ts +1 -1
  34. package/dist/template/.opencode/plugin/{lib → memory}/curator.ts +1 -1
  35. package/dist/template/.opencode/plugin/{lib → memory}/db/observations.ts +102 -3
  36. package/dist/template/.opencode/plugin/{lib → memory}/db/schema.ts +43 -1
  37. package/dist/template/.opencode/plugin/{lib → memory}/db/types.ts +22 -0
  38. package/dist/template/.opencode/plugin/{lib/memory-db.ts → memory/db.ts} +1 -1
  39. package/dist/template/.opencode/plugin/{lib → memory}/distill.ts +1 -1
  40. package/dist/template/.opencode/plugin/{lib/memory-helpers.ts → memory/helpers.ts} +5 -1
  41. package/dist/template/.opencode/plugin/{lib/memory-hooks.ts → memory/hooks.ts} +1 -1
  42. package/dist/template/.opencode/plugin/{lib → memory}/index-generator.ts +2 -2
  43. package/dist/template/.opencode/plugin/{lib → memory}/inject.ts +1 -1
  44. package/dist/template/.opencode/plugin/{lib → memory}/lint.ts +2 -2
  45. package/dist/template/.opencode/plugin/memory/tools.ts +322 -0
  46. package/dist/template/.opencode/plugin/{lib → memory}/validate.ts +2 -2
  47. package/dist/template/.opencode/plugin/memory.ts +7 -17
  48. package/dist/template/.opencode/plugin/srcwalk.ts +721 -0
  49. package/dist/template/.opencode/skill/agent-code-quality-gate/SKILL.md +98 -0
  50. package/dist/template/.opencode/skill/behavioral-kernel/SKILL.md +52 -0
  51. package/dist/template/.opencode/skill/browser-testing-with-devtools/SKILL.md +85 -0
  52. package/dist/template/.opencode/skill/code-cleanup/SKILL.md +114 -0
  53. package/dist/template/.opencode/skill/code-navigation/SKILL.md +142 -0
  54. package/dist/template/.opencode/skill/code-review-and-quality/SKILL.md +131 -0
  55. package/dist/template/.opencode/skill/debugging-and-error-recovery/SKILL.md +109 -0
  56. package/dist/template/.opencode/skill/deep-module-design/SKILL.md +207 -0
  57. package/dist/template/.opencode/skill/git-workflow-and-versioning/SKILL.md +77 -0
  58. package/dist/template/.opencode/skill/grill-me/SKILL.md +140 -0
  59. package/dist/template/.opencode/skill/memory-system/SKILL.md +9 -10
  60. package/dist/template/.opencode/skill/planning-and-task-breakdown/SKILL.md +116 -0
  61. package/dist/template/.opencode/skill/shipping-and-launch/SKILL.md +95 -0
  62. package/dist/template/.opencode/skill/source-driven-development/SKILL.md +103 -0
  63. package/dist/template/.opencode/skill/spec-driven-development/SKILL.md +121 -0
  64. package/dist/template/.opencode/skill/srcwalk/SKILL.md +161 -0
  65. package/dist/template/.opencode/skill/ubiquitous-language/SKILL.md +184 -0
  66. package/dist/template/.opencode/tool/context7.ts +1 -1
  67. package/dist/template/.opencode/tool/grepsearch.ts +1 -1
  68. package/package.json +1 -1
  69. package/dist/template/.opencode/AGENT_ALIGNMENT.md +0 -564
  70. package/dist/template/.opencode/agent/painter.md +0 -83
  71. package/dist/template/.opencode/command/compound.md +0 -240
  72. package/dist/template/.opencode/command/curate.md +0 -299
  73. package/dist/template/.opencode/command/handoff.md +0 -149
  74. package/dist/template/.opencode/command/health.md +0 -356
  75. package/dist/template/.opencode/command/init-context.md +0 -297
  76. package/dist/template/.opencode/command/init-user.md +0 -125
  77. package/dist/template/.opencode/command/iterate.md +0 -200
  78. package/dist/template/.opencode/command/lfg.md +0 -173
  79. package/dist/template/.opencode/command/resume.md +0 -78
  80. package/dist/template/.opencode/command/status.md +0 -126
  81. package/dist/template/.opencode/command/ui-slop-check.md +0 -169
  82. package/dist/template/.opencode/plugin/lib/memory-tools.ts +0 -535
  83. package/dist/template/.opencode/skill/agent-evals/SKILL.md +0 -208
  84. package/dist/template/.opencode/skill/anti-ai-slop/SKILL.md +0 -76
  85. package/dist/template/.opencode/skill/augment-context-engine/SKILL.md +0 -122
  86. package/dist/template/.opencode/skill/augment-context-engine/mcp.json +0 -6
  87. package/dist/template/.opencode/skill/brand-asset-protocol/SKILL.md +0 -222
  88. package/dist/template/.opencode/skill/code-search-patterns/SKILL.md +0 -253
  89. package/dist/template/.opencode/skill/code-simplification/SKILL.md +0 -211
  90. package/dist/template/.opencode/skill/context-condensation/SKILL.md +0 -149
  91. package/dist/template/.opencode/skill/context-initialization/SKILL.md +0 -69
  92. package/dist/template/.opencode/skill/context-management/SKILL.md +0 -390
  93. package/dist/template/.opencode/skill/deep-research/SKILL.md +0 -384
  94. package/dist/template/.opencode/skill/design-direction-advisor/SKILL.md +0 -139
  95. package/dist/template/.opencode/skill/dispatching-parallel-agents/SKILL.md +0 -191
  96. package/dist/template/.opencode/skill/executing-plans/SKILL.md +0 -247
  97. package/dist/template/.opencode/skill/figma-go/SKILL.md +0 -65
  98. package/dist/template/.opencode/skill/finishing-a-development-branch/SKILL.md +0 -357
  99. package/dist/template/.opencode/skill/full-output-enforcement/SKILL.md +0 -62
  100. package/dist/template/.opencode/skill/gh-address-comments/SKILL.md +0 -29
  101. package/dist/template/.opencode/skill/gh-address-comments/scripts/fetch_comments.py +0 -237
  102. package/dist/template/.opencode/skill/gh-fix-ci/SKILL.md +0 -38
  103. package/dist/template/.opencode/skill/gh-fix-ci/scripts/inspect_pr_checks.py +0 -509
  104. package/dist/template/.opencode/skill/hi-fi-prototype-html/SKILL.md +0 -253
  105. package/dist/template/.opencode/skill/html-deck-export/SKILL.md +0 -189
  106. package/dist/template/.opencode/skill/index-knowledge/SKILL.md +0 -413
  107. package/dist/template/.opencode/skill/memory-grounding/SKILL.md +0 -68
  108. package/dist/template/.opencode/skill/playwriter/SKILL.md +0 -158
  109. package/dist/template/.opencode/skill/portless/SKILL.md +0 -109
  110. package/dist/template/.opencode/skill/prd/SKILL.md +0 -146
  111. package/dist/template/.opencode/skill/prd-task/SKILL.md +0 -182
  112. package/dist/template/.opencode/skill/prd-task/references/prd-schema.json +0 -124
  113. package/dist/template/.opencode/skill/prompt-leverage/SKILL.md +0 -90
  114. package/dist/template/.opencode/skill/prompt-leverage/references/framework.md +0 -91
  115. package/dist/template/.opencode/skill/prompt-leverage/scripts/augment_prompt.py +0 -157
  116. package/dist/template/.opencode/skill/receiving-code-review/SKILL.md +0 -263
  117. package/dist/template/.opencode/skill/reconcile/SKILL.md +0 -183
  118. package/dist/template/.opencode/skill/reflection-checkpoints/SKILL.md +0 -183
  119. package/dist/template/.opencode/skill/requesting-code-review/SKILL.md +0 -443
  120. package/dist/template/.opencode/skill/requesting-code-review/references/specialist-profiles.md +0 -108
  121. package/dist/template/.opencode/skill/requesting-code-review/review.md +0 -160
  122. package/dist/template/.opencode/skill/rtk-command-compression/SKILL.md +0 -134
  123. package/dist/template/.opencode/skill/screenshot/SKILL.md +0 -48
  124. package/dist/template/.opencode/skill/screenshot/scripts/ensure_macos_permissions.sh +0 -54
  125. package/dist/template/.opencode/skill/screenshot/scripts/macos_display_info.swift +0 -22
  126. package/dist/template/.opencode/skill/screenshot/scripts/macos_permissions.swift +0 -40
  127. package/dist/template/.opencode/skill/screenshot/scripts/macos_window_info.swift +0 -126
  128. package/dist/template/.opencode/skill/screenshot/scripts/take_screenshot.ps1 +0 -163
  129. package/dist/template/.opencode/skill/screenshot/scripts/take_screenshot.py +0 -585
  130. package/dist/template/.opencode/skill/security-threat-model/SKILL.md +0 -36
  131. package/dist/template/.opencode/skill/security-threat-model/references/prompt-template.md +0 -255
  132. package/dist/template/.opencode/skill/security-threat-model/references/security-controls-and-assets.md +0 -32
  133. package/dist/template/.opencode/skill/sharing-skills/SKILL.md +0 -214
  134. package/dist/template/.opencode/skill/skill-creator/SKILL.md +0 -181
  135. package/dist/template/.opencode/skill/skill-installer/SKILL.md +0 -58
  136. package/dist/template/.opencode/skill/skill-installer/scripts/github_utils.py +0 -21
  137. package/dist/template/.opencode/skill/skill-installer/scripts/install-skill-from-github.py +0 -313
  138. package/dist/template/.opencode/skill/skill-installer/scripts/list-skills.py +0 -106
  139. package/dist/template/.opencode/skill/swarm-coordination/SKILL.md +0 -244
  140. package/dist/template/.opencode/skill/swarm-coordination/references/architecture.md +0 -39
  141. package/dist/template/.opencode/skill/swarm-coordination/references/delegation-worker-protocol.md +0 -145
  142. package/dist/template/.opencode/skill/swarm-coordination/references/dependency-graph.md +0 -50
  143. package/dist/template/.opencode/skill/swarm-coordination/references/drift-check.md +0 -90
  144. package/dist/template/.opencode/skill/swarm-coordination/references/integration-beads.md +0 -20
  145. package/dist/template/.opencode/skill/swarm-coordination/references/launch-flow.md +0 -186
  146. package/dist/template/.opencode/skill/swarm-coordination/references/reconciler.md +0 -172
  147. package/dist/template/.opencode/skill/swarm-coordination/references/tier-enforcement.md +0 -78
  148. package/dist/template/.opencode/skill/swarm-coordination/references/tmux-integration.md +0 -134
  149. package/dist/template/.opencode/skill/systematic-debugging/SKILL.md +0 -402
  150. package/dist/template/.opencode/skill/terse-output-mode/SKILL.md +0 -95
  151. package/dist/template/.opencode/skill/think-in-code/SKILL.md +0 -136
  152. package/dist/template/.opencode/skill/ux-quality-gates/SKILL.md +0 -137
  153. package/dist/template/.opencode/skill/v1-run/SKILL.md +0 -175
  154. package/dist/template/.opencode/skill/v1-run/mcp.json +0 -6
  155. package/dist/template/.opencode/skill/verification-gates/SKILL.md +0 -63
  156. package/dist/template/.opencode/skill/visual-analysis/SKILL.md +0 -154
  157. package/dist/template/.opencode/skill/web-design-guidelines/SKILL.md +0 -46
  158. package/dist/template/.opencode/skill/workspace-setup/SKILL.md +0 -76
  159. package/dist/template/.opencode/skill/writing-plans/SKILL.md +0 -320
  160. /package/dist/template/.opencode/plugin/{lib → memory}/compact.ts +0 -0
  161. /package/dist/template/.opencode/plugin/{lib → memory}/db/graph.ts +0 -0
  162. /package/dist/template/.opencode/plugin/{lib → memory}/db/maintenance.ts +0 -0
  163. /package/dist/template/.opencode/plugin/{lib → memory}/db/pipeline.ts +0 -0
  164. /package/dist/template/.opencode/plugin/{lib → memory}/notify.ts +0 -0
  165. /package/dist/template/.opencode/plugin/{lib → memory}/operation-log.ts +0 -0
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "$schema": "https://opencode.ai/config.json",
3
+ "lsp": true,
3
4
  "agent": {
4
5
  "build": {
5
6
  "description": "Primary development agent with full codebase access",
6
- "model": "github-copilot/gpt-5.5"
7
+ "model": "github-copilot/gpt-5.4"
7
8
  },
8
9
  "compaction": {
9
10
  "description": "Session summarizer for context continuity across compactions"
@@ -39,8 +40,8 @@
39
40
  },
40
41
  "autoupdate": false,
41
42
  "compaction": {
42
- "auto": false,
43
- "reserved": 16000
43
+ "auto": true,
44
+ "reserved": 2048
44
45
  },
45
46
  "formatter": {
46
47
  "biome": {
@@ -61,25 +62,6 @@
61
62
  "laravel-pint": {
62
63
  "command": ["npx", "laravel-pint", "--preset", "psr12", "$FILE"],
63
64
  "extensions": [".php"]
64
- },
65
- "oxfmt": {
66
- "command": ["npx", "oxfmt", "--write", "$FILE"],
67
- "extensions": [
68
- ".js",
69
- ".jsx",
70
- ".ts",
71
- ".tsx",
72
- ".json",
73
- ".jsonc",
74
- ".html",
75
- ".css",
76
- ".scss",
77
- ".sass",
78
- ".md",
79
- ".mdx",
80
- ".yaml",
81
- ".yml"
82
- ]
83
65
  }
84
66
  },
85
67
  "instructions": [
@@ -90,6 +72,9 @@
90
72
  ],
91
73
  "keybinds": {
92
74
  "leader": "ctrl+x",
75
+ "session_child_first": "<leader>down",
76
+ "session_child_cycle": "right",
77
+ "session_child_cycle_reverse": "left",
93
78
  "session_parent": "up"
94
79
  },
95
80
  "mcp": {
@@ -99,15 +84,6 @@
99
84
  "timeout": 120000,
100
85
  "type": "local"
101
86
  },
102
- "tilth": {
103
- "command": ["npx", "-y", "tilth", "--mcp", "--edit"],
104
- "enabled": true,
105
- "environment": {
106
- "TILTH_THREADS": "8"
107
- },
108
- "timeout": 120000,
109
- "type": "local"
110
- },
111
87
  "webclaw": {
112
88
  "command": ["webclaw-mcp"],
113
89
  "enabled": true,
@@ -115,7 +91,7 @@
115
91
  "type": "local"
116
92
  }
117
93
  },
118
- "model": "github-copilot/gpt-5.5",
94
+ "model": "github-copilot/gpt-5.4",
119
95
  "permission": {
120
96
  "bash": {
121
97
  "*": "allow",
@@ -197,11 +173,11 @@
197
173
  }
198
174
  }
199
175
  },
200
- "claude-opus-4.5": {
176
+ "claude-opus-4.7": {
201
177
  "attachment": true,
202
178
  "limit": {
203
179
  "context": 216000,
204
- "output": 32000
180
+ "output": 64000
205
181
  },
206
182
  "options": {
207
183
  "reasoningEffort": "medium"
@@ -210,16 +186,6 @@
210
186
  "temperature": true,
211
187
  "tool_call": true,
212
188
  "variants": {
213
- "high": {
214
- "options": {
215
- "reasoningEffort": "high"
216
- }
217
- },
218
- "low": {
219
- "options": {
220
- "reasoningEffort": "low"
221
- }
222
- },
223
189
  "medium": {
224
190
  "options": {
225
191
  "reasoningEffort": "medium"
@@ -257,36 +223,6 @@
257
223
  }
258
224
  }
259
225
  },
260
- "claude-sonnet-4.5": {
261
- "attachment": true,
262
- "limit": {
263
- "context": 216000,
264
- "output": 32000
265
- },
266
- "options": {
267
- "reasoningEffort": "medium"
268
- },
269
- "reasoning": true,
270
- "temperature": true,
271
- "tool_call": true,
272
- "variants": {
273
- "high": {
274
- "options": {
275
- "reasoningEffort": "high"
276
- }
277
- },
278
- "low": {
279
- "options": {
280
- "reasoningEffort": "low"
281
- }
282
- },
283
- "medium": {
284
- "options": {
285
- "reasoningEffort": "medium"
286
- }
287
- }
288
- }
289
- },
290
226
  "claude-sonnet-4.6": {
291
227
  "attachment": true,
292
228
  "limit": {
@@ -317,16 +253,6 @@
317
253
  }
318
254
  }
319
255
  },
320
- "gemini-2.5-pro": {
321
- "attachment": true,
322
- "limit": {
323
- "context": 173000,
324
- "output": 64000
325
- },
326
- "reasoning": true,
327
- "temperature": true,
328
- "tool_call": true
329
- },
330
256
  "gemini-3-flash-preview": {
331
257
  "attachment": true,
332
258
  "limit": {
@@ -357,82 +283,6 @@
357
283
  "temperature": true,
358
284
  "tool_call": true
359
285
  },
360
- "gpt-5.2": {
361
- "attachment": true,
362
- "limit": {
363
- "context": 192000,
364
- "output": 128000
365
- },
366
- "options": {
367
- "reasoningEffort": "medium",
368
- "reasoningSummary": "auto",
369
- "textVerbosity": "medium"
370
- },
371
- "reasoning": true,
372
- "temperature": true,
373
- "tool_call": true,
374
- "variants": {
375
- "xhigh": {
376
- "include": ["reasoning.encrypted_content"],
377
- "reasoningEffort": "xhigh",
378
- "reasoningSummary": "auto"
379
- },
380
- "high": {
381
- "include": ["reasoning.encrypted_content"],
382
- "reasoningEffort": "high",
383
- "reasoningSummary": "auto"
384
- },
385
- "low": {
386
- "reasoningEffort": "low",
387
- "reasoningSummary": "auto"
388
- },
389
- "medium": {
390
- "reasoningEffort": "medium",
391
- "reasoningSummary": "auto"
392
- }
393
- }
394
- },
395
- "gpt-5.2-codex": {
396
- "attachment": true,
397
- "limit": {
398
- "context": 400000,
399
- "input": 400000,
400
- "output": 128000
401
- },
402
- "options": {
403
- "reasoningEffort": "medium",
404
- "reasoningSummary": "auto",
405
- "textVerbosity": "medium"
406
- },
407
- "reasoning": true,
408
- "temperature": true,
409
- "tool_call": true,
410
- "variants": {
411
- "fast": {
412
- "disabled": true
413
- },
414
- "xhigh": {
415
- "include": ["reasoning.encrypted_content"],
416
- "reasoningEffort": "xhigh",
417
- "reasoningSummary": "auto"
418
- },
419
- "high": {
420
- "include": ["reasoning.encrypted_content"],
421
- "reasoningEffort": "high",
422
- "reasoningSummary": "auto",
423
- "textVerbosity": "medium"
424
- },
425
- "low": {
426
- "reasoningEffort": "low",
427
- "reasoningSummary": "auto"
428
- },
429
- "medium": {
430
- "reasoningEffort": "medium",
431
- "reasoningSummary": "auto",
432
- "textVerbosity": "medium"
433
- }
434
- }
435
- },
436
286
  "gpt-5.3-codex": {
437
287
  "attachment": true,
438
288
  "limit": {
@@ -595,120 +445,12 @@
595
445
  "reasoningSummary": "auto"
596
446
  }
597
447
  }
598
- },
599
- "grok-code-fast": {
600
- "attachment": true,
601
- "limit": {
602
- "context": 173000,
603
- "output": 64000
604
- },
605
- "reasoning": true,
606
- "temperature": true,
607
- "tool_call": true
608
- },
609
- "grok-code-fast-1": {
610
- "attachment": true,
611
- "limit": {
612
- "context": 173000,
613
- "output": 64000
614
- },
615
- "reasoning": true,
616
- "temperature": true,
617
- "tool_call": true
618
- },
619
- "minimax-m2.5": {
620
- "attachment": true,
621
- "limit": {
622
- "context": 204800,
623
- "output": 16384
624
- },
625
- "options": {
626
- "temperature": 1,
627
- "top_k": 40,
628
- "top_p": 0.95
629
- },
630
- "reasoning": true,
631
- "temperature": true,
632
- "tool_call": true
633
448
  }
634
449
  },
635
450
  "options": {
636
451
  "timeout": 600000
637
452
  }
638
453
  },
639
- "kimi-for-coding": {
640
- "models": {
641
- "k2p5": {
642
- "limit": {
643
- "context": 262144,
644
- "output": 32768
645
- },
646
- "options": {
647
- "interleaved": {
648
- "field": "reasoning_content"
649
- },
650
- "thinking": {
651
- "budgetTokens": 8192,
652
- "reasoning_effort": "high",
653
- "type": "enabled"
654
- }
655
- },
656
- "reasoning": true,
657
- "temperature": true,
658
- "tool_call": true,
659
- "variants": {
660
- "high": {
661
- "interleaved": {
662
- "field": "reasoning_content"
663
- },
664
- "options": {
665
- "reasoning_effort": "high",
666
- "thinkingBudget": 16384,
667
- "type": "enabled"
668
- }
669
- },
670
- "max": {
671
- "interleaved": {
672
- "field": "reasoning_content"
673
- },
674
- "options": {
675
- "reasoning_effort": "high",
676
- "thinkingBudget": 32768,
677
- "type": "enabled"
678
- }
679
- }
680
- }
681
- }
682
- }
683
- },
684
- "modal": {
685
- "models": {
686
- "zai-org/GLM-5-FP8": {
687
- "modalities": {
688
- "input": ["text", "image", "pdf"],
689
- "output": ["text"]
690
- },
691
- "name": "GLM-5",
692
- "options": {
693
- "maxOutputTokens": 131072,
694
- "reasoningEffort": "high",
695
- "reasoningSummary": "true",
696
- "temperature": 1,
697
- "thinking": {
698
- "type": "enabled"
699
- },
700
- "top_k": 40,
701
- "top_p": 0.95
702
- },
703
- "reasoning": true
704
- }
705
- },
706
- "name": "Modal",
707
- "options": {
708
- "apiKey": "{env:MODAL_API_KEY}",
709
- "baseURL": "https://api.us-west-2.modal.direct/v1"
710
- }
711
- },
712
454
  "openai": {
713
455
  "models": {
714
456
  "gpt-5.2": {
@@ -816,19 +558,6 @@
816
558
  }
817
559
  }
818
560
  },
819
- "opencode": {
820
- "models": {
821
- "big-pickle": {
822
- "options": {
823
- "reasoningEffort": "high",
824
- "temperature": 1,
825
- "top_k": 40,
826
- "top_p": 0.95
827
- },
828
- "reasoning": true
829
- }
830
- }
831
- },
832
561
  "proxypal": {
833
562
  "models": {
834
563
  "claude-opus-4.6": {
@@ -1080,57 +809,6 @@
1080
809
  "baseURL": "http://127.0.0.1:8317/v1",
1081
810
  "includeUsage": true
1082
811
  }
1083
- },
1084
- "zai-coding-plan": {
1085
- "models": {
1086
- "glm-4.6": {
1087
- "limit": {
1088
- "context": 128000,
1089
- "output": 16384
1090
- },
1091
- "options": {
1092
- "temperature": 1,
1093
- "thinking": {
1094
- "type": "enabled"
1095
- }
1096
- },
1097
- "reasoning": true,
1098
- "temperature": true,
1099
- "tool_call": true
1100
- },
1101
- "glm-4.7": {
1102
- "id": "glm-4.7",
1103
- "interleaved": true,
1104
- "limit": {
1105
- "context": 200000,
1106
- "output": 128000
1107
- },
1108
- "name": "GLM-4.7",
1109
- "options": {
1110
- "temperature": 1,
1111
- "thinking": {
1112
- "type": "enabled"
1113
- }
1114
- },
1115
- "reasoning": true
1116
- },
1117
- "glm-5": {
1118
- "name": "GLM-5",
1119
- "options": {
1120
- "maxOutputTokens": 131072,
1121
- "reasoningEffort": "high",
1122
- "reasoningSummary": "true",
1123
- "temperature": 1,
1124
- "thinking": {
1125
- "type": "enabled"
1126
- },
1127
- "top_k": 40,
1128
- "top_p": 0.95
1129
- },
1130
- "reasoning": true
1131
- }
1132
- },
1133
- "name": "Z.AI Coding Plan"
1134
812
  }
1135
813
  },
1136
814
  "share": "manual",
@@ -42,7 +42,7 @@ plugin/
42
42
  - Injects relevant knowledge into system prompt (BM25 _ recency _ confidence scoring)
43
43
  - Manages context window via messages.transform (token budget enforcement)
44
44
  - Merges compaction logic (beads, handoffs, project memory, knowledge)
45
- - Provides 11 tools: observation, memory-search, memory-get, memory-read, memory-update, memory-timeline, memory-graph-add, memory-graph-query, memory-graph-invalidate, memory-compact, memory-admin
45
+ - Provides 3 tools: observation, memory-search, memory-admin
46
46
 
47
47
  - `sessions.ts`
48
48
  - Provides tools: `find_sessions`, `read_session`
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Guard Plugin — Agent Safety & Convention Enforcement
3
+ *
4
+ * Ported from pikit's extensions/guard.ts.
5
+ *
6
+ * 1. Pipe-to-shell blocker: rejects `curl … | bash` / `wget … | bash` patterns.
7
+ * 2. Conventional Commits: rejects `git commit` with non-compliant messages.
8
+ */
9
+
10
+ import type { Plugin } from "@opencode-ai/plugin";
11
+
12
+ const CONVENTIONAL_RE =
13
+ /^(feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert)(\([a-z0-9._/-]+\))?!?: .+/;
14
+
15
+ export const GuardPlugin: Plugin = async () => {
16
+ return {
17
+ "tool.execute.before": async (input, output) => {
18
+ if (input.tool !== "bash") return;
19
+
20
+ const cmd: string = (output.args as Record<string, unknown>)?.command ?? "";
21
+
22
+ // --- curl/wget | bash blocker ---
23
+ // Only match when curl/wget starts a command segment to avoid false positives
24
+ // on quoted text (e.g. commit messages) mentioning the pattern.
25
+ if (/(?:^|[;&|])\s*(?:curl|wget)\s.*\|\s*(?:ba)?sh/i.test(cmd)) {
26
+ throw new Error(
27
+ "Blocked: detected pipe-to-shell pattern (curl/wget | bash). Download first, inspect, then run.",
28
+ );
29
+ }
30
+
31
+ // --- conventional commit enforcer ---
32
+ const commitMatch = cmd.match(/git\s+commit\s/);
33
+ if (!commitMatch) return;
34
+
35
+ const msgMatch =
36
+ cmd.match(/(?:-m|--message=?)\s*"([^"]*)"/) ??
37
+ cmd.match(/(?:-m|--message=?)\s*'([^']*)'/) ??
38
+ cmd.match(/(?:-m|--message=?)\s+(\S+)/);
39
+
40
+ const msg = msgMatch?.[1];
41
+
42
+ if (!msg) {
43
+ throw new Error(
44
+ 'Blocked: git commit missing -m message. Use: git commit -m "type(scope): subject"',
45
+ );
46
+ }
47
+
48
+ if (!CONVENTIONAL_RE.test(msg)) {
49
+ throw new Error(
50
+ [
51
+ "Blocked: commit message is not Conventional Commits compliant.",
52
+ `Got: ${msg}`,
53
+ "Expected: <type>(scope): <subject>",
54
+ "Types: feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert",
55
+ ].join("\n"),
56
+ );
57
+ }
58
+ },
59
+ };
60
+ };
61
+
62
+ export default GuardPlugin;
@@ -33,7 +33,7 @@ import {
33
33
  runFullMaintenance,
34
34
  storeObservation,
35
35
  vacuumDatabase,
36
- } from "./memory-db.js";
36
+ } from "./db.js";
37
37
 
38
38
  interface AdminToolDeps {
39
39
  directory: string;
@@ -157,7 +157,7 @@ export function createAdminTools(deps: AdminToolDeps) {
157
157
  severity: "medium" as const,
158
158
  title: `Graph contradiction: ${t.subject} ↔ ${t.object}`,
159
159
  detail: `Active triple "${t.subject} —[${t.predicate}]→ ${t.object}" has ${contradictions.length} conflicting predicate(s): ${contradictions.map(c => c.predicate).join(", ")}`,
160
- suggestion: `Use memory-graph-invalidate to close outdated triples`,
160
+ suggestion: `Use observation to update or supersede outdated observations`,
161
161
  type: "contradiction" as const,
162
162
  observation_ids: contradictions.map(c => c.source_observation_id).filter((id): id is number => id != null),
163
163
  });
@@ -187,7 +187,7 @@ export function createAdminTools(deps: AdminToolDeps) {
187
187
  }
188
188
  case "index": {
189
189
  const result = generateMemoryIndex();
190
- return `Index generated: ${result.entryCount} observations, ${result.conceptCount} concepts. Read with \`memory-read({ file: "index" })\`.`;
190
+ return `Index generated: ${result.entryCount} observations, ${result.conceptCount} concepts. Read with \`memory-search({ file: "index" })\`.`;
191
191
  }
192
192
  case "compile": {
193
193
  const result = compileObservations();
@@ -195,7 +195,7 @@ export function createAdminTools(deps: AdminToolDeps) {
195
195
  return `No concept clusters with 3+ observations found. Nothing to compile.`;
196
196
  }
197
197
  const articleList = result.articles.map(a => ` - ${a.concept} (${a.observationCount} obs)`).join("\n");
198
- return `Compiled ${result.articles.length} articles from ${result.totalObservations} observations (${result.skippedClusters} skipped).\n\nArticles:\n${articleList}\n\nRead with \`memory-read({ file: "compiled/<concept>" })\`.`;
198
+ return `Compiled ${result.articles.length} articles from ${result.totalObservations} observations (${result.skippedClusters} skipped).\n\nArticles:\n${articleList}\n\nRead with \`memory-search({ file: "compiled/<concept>" })\`.`;
199
199
  }
200
200
  case "log": {
201
201
  return getLogContent();
@@ -18,7 +18,7 @@ import {
18
18
  getMemoryDB,
19
19
  MEMORY_CONFIG,
20
20
  type TemporalMessageInput,
21
- } from "./memory-db.js";
21
+ } from "./db.js";
22
22
 
23
23
  // ============================================================================
24
24
  // Types
@@ -17,8 +17,8 @@
17
17
 
18
18
  import { upsertMemoryFile } from "./db/maintenance.js";
19
19
  import type { ObservationRow } from "./db/types.js";
20
- import { getMemoryDB } from "./memory-db.js";
21
- import { TYPE_ICONS, parseConcepts } from "./memory-helpers.js";
20
+ import { getMemoryDB } from "./db.js";
21
+ import { TYPE_ICONS, parseConcepts } from "./helpers.js";
22
22
  import { appendOperationLog } from "./operation-log.js";
23
23
 
24
24
  // ============================================================================
@@ -7,7 +7,7 @@
7
7
  * Protects the most recent N messages from compression.
8
8
  */
9
9
 
10
- import { estimateTokens, MEMORY_CONFIG } from "./memory-db.js";
10
+ import { estimateTokens, MEMORY_CONFIG } from "./db.js";
11
11
 
12
12
  // ============================================================================
13
13
  // Types
@@ -15,7 +15,7 @@ import {
15
15
  type ObservationInput,
16
16
  type ObservationType,
17
17
  storeObservation,
18
- } from "./memory-db.js";
18
+ } from "./db.js";
19
19
 
20
20
  // ============================================================================
21
21
  // Pattern Definitions