opencodekit 0.16.0 → 0.16.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.
Files changed (119) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/template/.opencode/AGENTS.md +64 -3
  3. package/dist/template/.opencode/command/create.md +34 -0
  4. package/dist/template/.opencode/command/design.md +35 -0
  5. package/dist/template/.opencode/command/handoff.md +15 -0
  6. package/dist/template/.opencode/command/init.md +40 -47
  7. package/dist/template/.opencode/command/plan.md +1 -0
  8. package/dist/template/.opencode/command/pr.md +15 -0
  9. package/dist/template/.opencode/command/research.md +3 -0
  10. package/dist/template/.opencode/command/resume.md +1 -0
  11. package/dist/template/.opencode/command/review-codebase.md +30 -0
  12. package/dist/template/.opencode/command/ship.md +43 -0
  13. package/dist/template/.opencode/command/start.md +1 -0
  14. package/dist/template/.opencode/command/status.md +24 -1
  15. package/dist/template/.opencode/command/ui-review.md +31 -0
  16. package/dist/template/.opencode/command/verify.md +35 -7
  17. package/dist/template/.opencode/memory/project/tech-stack.md +25 -22
  18. package/dist/template/.opencode/memory.db +0 -0
  19. package/dist/template/.opencode/memory.db-shm +0 -0
  20. package/dist/template/.opencode/memory.db-wal +0 -0
  21. package/dist/template/.opencode/opencode.json +817 -916
  22. package/dist/template/.opencode/package.json +1 -0
  23. package/dist/template/.opencode/plans/1770006237537-mighty-otter.md +418 -0
  24. package/dist/template/.opencode/plans/1770006913647-glowing-forest.md +170 -0
  25. package/dist/template/.opencode/plans/1770013678126-witty-planet.md +278 -0
  26. package/dist/template/.opencode/plugin/lib/memory-db.ts +828 -0
  27. package/dist/template/.opencode/plugin/memory.ts +38 -1
  28. package/dist/template/.opencode/skill/index-knowledge/SKILL.md +76 -31
  29. package/dist/template/.opencode/skill/memory-system/SKILL.md +110 -55
  30. package/dist/template/.opencode/tool/memory-get.ts +143 -0
  31. package/dist/template/.opencode/tool/memory-maintain.ts +167 -0
  32. package/dist/template/.opencode/tool/memory-migrate.ts +319 -0
  33. package/dist/template/.opencode/tool/memory-read.ts +17 -46
  34. package/dist/template/.opencode/tool/memory-search.ts +131 -28
  35. package/dist/template/.opencode/tool/memory-timeline.ts +105 -0
  36. package/dist/template/.opencode/tool/memory-update.ts +21 -26
  37. package/dist/template/.opencode/tool/observation.ts +112 -100
  38. package/dist/template/.opencode/tsconfig.json +19 -19
  39. package/package.json +1 -1
  40. package/dist/template/.opencode/memory/_templates/README.md +0 -73
  41. package/dist/template/.opencode/memory/_templates/observation.md +0 -39
  42. package/dist/template/.opencode/memory/_templates/prompt-engineering.md +0 -333
  43. package/dist/template/.opencode/memory/observations/2026-01-22-decision-agents-md-prompt-engineering-improvement.md +0 -29
  44. package/dist/template/.opencode/memory/observations/2026-01-25-decision-agent-roles-build-orchestrates-general-e.md +0 -14
  45. package/dist/template/.opencode/memory/observations/2026-01-25-decision-simplified-swarm-helper-tool-to-fix-type.md +0 -20
  46. package/dist/template/.opencode/memory/observations/2026-01-25-decision-use-beads-as-swarm-board-source-of-truth.md +0 -14
  47. package/dist/template/.opencode/memory/observations/2026-01-25-learning-user-wants-real-swarm-coordination-guida.md +0 -15
  48. package/dist/template/.opencode/memory/observations/2026-01-28-decision-created-deep-research-skill-for-thorough.md +0 -29
  49. package/dist/template/.opencode/memory/observations/2026-01-28-decision-gh-grep-mcp-wrapper-vs-native-grep-searc.md +0 -21
  50. package/dist/template/.opencode/memory/observations/2026-01-28-decision-oracle-tool-optimal-usage-patterns.md +0 -32
  51. package/dist/template/.opencode/memory/observations/2026-01-28-learning-ampcode-deep-mode-research-integration-w.md +0 -42
  52. package/dist/template/.opencode/memory/observations/2026-01-28-pattern-research-delegation-pattern-explore-for-.md +0 -32
  53. package/dist/template/.opencode/memory/observations/2026-01-29-decision-copilot-auth-plugin-rate-limit-handling.md +0 -27
  54. package/dist/template/.opencode/memory/observations/2026-01-29-decision-spec-driven-approach-for-opencodekit.md +0 -21
  55. package/dist/template/.opencode/memory/observations/2026-01-29-learning-karpathy-llm-coding-insights-dec-2025.md +0 -44
  56. package/dist/template/.opencode/memory/observations/2026-01-30-decision-github-copilot-claude-routing-keep-disab.md +0 -32
  57. package/dist/template/.opencode/memory/observations/2026-01-30-discovery-context-management-research-critical-gap.md +0 -14
  58. package/dist/template/.opencode/memory/observations/2026-01-30-discovery-kimi-k2-5-agent-swarm-architecture-patte.md +0 -45
  59. package/dist/template/.opencode/memory/observations/2026-01-30-pattern-swarm-tools-architecture.md +0 -28
  60. package/dist/template/.opencode/memory/observations/2026-01-31-decision-copilot-auth-plugin-updated-with-baseurl.md +0 -63
  61. package/dist/template/.opencode/memory/observations/2026-01-31-decision-created-dedicated-worker-agent-for-swarm.md +0 -20
  62. package/dist/template/.opencode/memory/observations/2026-01-31-decision-rollback-to-v1-1-47-for-copilot-claude-r.md +0 -21
  63. package/dist/template/.opencode/memory/observations/2026-01-31-decision-simplified-swarm-to-task-tool-pattern.md +0 -44
  64. package/dist/template/.opencode/memory/observations/2026-01-31-decision-swarm-architecture-task-tool-over-tmux.md +0 -33
  65. package/dist/template/.opencode/memory/observations/2026-01-31-decision-worker-skills-defined-for-swarm-delegati.md +0 -30
  66. package/dist/template/.opencode/memory/observations/2026-01-31-learning-gpt-reasoning-config-for-github-copilot.md +0 -51
  67. package/dist/template/.opencode/memory/observations/2026-01-31-learning-opencode-copilot-auth-comparison-finding.md +0 -61
  68. package/dist/template/.opencode/memory/observations/2026-01-31-learning-opencode-copilot-reasoning-architecture-.md +0 -66
  69. package/dist/template/.opencode/memory/observations/2026-01-31-learning-opencode-custom-tools-api.md +0 -48
  70. package/dist/template/.opencode/memory/observations/2026-01-31-learning-opencode-v1-1-48-skills-as-slash-command.md +0 -21
  71. package/dist/template/.opencode/memory/observations/2026-01-31-learning-swarm-system-simplified-removed-mailbox-.md +0 -30
  72. package/dist/template/.opencode/memory/observations/2026-01-31-learning-v1-1-48-native-copilot-reasoning-via-pr-.md +0 -45
  73. package/dist/template/.opencode/memory/observations/2026-01-31-warning-cannot-add-custom-config-to-opencode-jso.md +0 -18
  74. package/dist/template/.opencode/memory/observations/2026-01-31-warning-copilot-claude-v1-endpoint-returns-404-c.md +0 -48
  75. package/dist/template/.opencode/memory/observations/2026-01-31-warning-opencode-v1-1-48-claude-thinking-block-s.md +0 -51
  76. package/dist/template/.opencode/memory/observations/2026-02-01-decision-add-skills-vs-commands-to-global-agents-.md +0 -15
  77. package/dist/template/.opencode/memory/observations/2026-02-01-decision-build-agent-auto-loads-skills-contextual.md +0 -31
  78. package/dist/template/.opencode/memory/observations/2026-02-01-decision-fixed-agent-configuration-for-opencodeki.md +0 -25
  79. package/dist/template/.opencode/memory/observations/2026-02-01-decision-focused-agents-md-upgrade-for-opencode-k.md +0 -14
  80. package/dist/template/.opencode/memory/observations/2026-02-01-decision-implement-tier-1-permission-upgrades.md +0 -15
  81. package/dist/template/.opencode/memory/observations/2026-02-01-decision-instructions-config-explicit-paths-not-w.md +0 -40
  82. package/dist/template/.opencode/memory/observations/2026-02-01-decision-merged-context-into-memory-project-singl.md +0 -42
  83. package/dist/template/.opencode/memory/observations/2026-02-01-decision-oracle-tool-should-use-review-agent-not-.md +0 -14
  84. package/dist/template/.opencode/memory/observations/2026-02-01-decision-plan-agent-auto-loads-skills-contextuall.md +0 -31
  85. package/dist/template/.opencode/memory/observations/2026-02-01-decision-plan-phased-oracle-command-merge-into-ne.md +0 -14
  86. package/dist/template/.opencode/memory/observations/2026-02-01-decision-prd-workflow-uses-prd-and-prd-task-skill.md +0 -23
  87. package/dist/template/.opencode/memory/observations/2026-02-01-decision-prefer-review-agent-via-opencode-cli-ove.md +0 -14
  88. package/dist/template/.opencode/memory/observations/2026-02-01-decision-remove-oracle-tool-add-ship-command-with.md +0 -14
  89. package/dist/template/.opencode/memory/observations/2026-02-01-decision-remove-oracle-tool-and-add-ship-command-.md +0 -14
  90. package/dist/template/.opencode/memory/observations/2026-02-01-decision-remove-oracle-tool-and-add-ship-command.md +0 -14
  91. package/dist/template/.opencode/memory/observations/2026-02-01-decision-remove-skills-vs-commands-section-from-a.md +0 -14
  92. package/dist/template/.opencode/memory/observations/2026-02-01-decision-replace-oracle-tool-with-ship-command-fl.md +0 -14
  93. package/dist/template/.opencode/memory/observations/2026-02-01-decision-replace-oracle-with-ship-command-workflo.md +0 -14
  94. package/dist/template/.opencode/memory/observations/2026-02-01-decision-replace-proxypal-oracle-with-cli-review-.md +0 -14
  95. package/dist/template/.opencode/memory/observations/2026-02-01-decision-simplified-dist-template-only-tech-stack.md +0 -50
  96. package/dist/template/.opencode/memory/observations/2026-02-01-decision-simplified-templates-only-tech-stack-md.md +0 -26
  97. package/dist/template/.opencode/memory/observations/2026-02-01-decision-subagents-load-minimal-skills-stay-lean.md +0 -29
  98. package/dist/template/.opencode/memory/observations/2026-02-01-decision-user-approved-permission-upgrades-in-ope.md +0 -15
  99. package/dist/template/.opencode/memory/observations/2026-02-01-discovery-verify-command-already-implemented.md +0 -28
  100. package/dist/template/.opencode/memory/observations/2026-02-01-feature-openspec-phase-b-complete-template-upgra.md +0 -43
  101. package/dist/template/.opencode/memory/observations/2026-02-01-learning-build-agent-should-use-dynamic-lsp-not-f.md +0 -14
  102. package/dist/template/.opencode/memory/observations/2026-02-01-learning-kimi-k2-5-model-requires-temperature-1-0.md +0 -22
  103. package/dist/template/.opencode/memory/observations/2026-02-01-learning-opencode-context-injection-already-imple.md +0 -27
  104. package/dist/template/.opencode/memory/observations/2026-02-01-learning-opencode-context-injection-uses-instruct.md +0 -35
  105. package/dist/template/.opencode/memory/observations/2026-02-01-learning-update-build-agent-prompt-to-use-context.md +0 -14
  106. package/dist/template/.opencode/memory/observations/2026-02-01-learning-upgrade-agents-md-using-opencode-expert-.md +0 -14
  107. package/dist/template/.opencode/memory/observations/2026-02-01-learning-upgrade-agents-md-with-opencode-expert-g.md +0 -14
  108. package/dist/template/.opencode/memory/observations/2026-02-01-learning-upgrade-agents-md-with-opencode-expert-r.md +0 -14
  109. package/dist/template/.opencode/memory/observations/2026-02-01-learning-user-prefers-copilot-gpt-5-2-codex-mediu.md +0 -14
  110. package/dist/template/.opencode/memory/observations/2026-02-01-learning-user-wants-general-agent-prompt-contextu.md +0 -15
  111. package/dist/template/.opencode/memory/observations/2026-02-01-learning-user-wants-general-agent-prompt-reviewed.md +0 -15
  112. package/dist/template/.opencode/memory/project/architecture.md +0 -60
  113. package/dist/template/.opencode/memory/project/command-rules.md +0 -122
  114. package/dist/template/.opencode/memory/project/commands.md +0 -72
  115. package/dist/template/.opencode/memory/project/conventions.md +0 -68
  116. package/dist/template/.opencode/memory/project/gotchas.md +0 -41
  117. /package/dist/template/.opencode/memory/_templates/{project/tech-stack.md → tech-stack.md} +0 -0
  118. /package/dist/template/.opencode/memory/{user.example.md → _templates/user.md} +0 -0
  119. /package/dist/template/.opencode/memory/{user.md → project/user.md} +0 -0
@@ -1,32 +0,0 @@
1
- ---
2
- type: decision
3
- created: 2026-01-30T15:07:59.081Z
4
- confidence: high
5
- valid_until: null
6
- superseded_by: null
7
- concepts: ["github-copilot", "claude", "anthropic-sdk", "reasoning", "api-routing"]
8
- files: [".opencode/plugins/copilot-auth.ts"]
9
- ---
10
-
11
- # 🎯 GitHub Copilot Claude routing: Keep disabled for stability
12
-
13
- 🟢 **Confidence:** high
14
-
15
- Claude routing through Anthropic SDK is currently disabled in copilot-auth.ts (commit f7aabde). This decision was made because:
16
-
17
- 1. **Problem**: Enabling Claude routing to use `@ai-sdk/anthropic` with `/v1` endpoint causes "Not Found: 404" errors
18
- 2. **Root cause**: GitHub Copilot's API likely doesn't support the native Anthropic `/v1/messages` endpoint for Claude models through this integration
19
- 3. **Solution**: Keep all models using `@ai-sdk/github-copilot` (OpenAI-compatible `/v1/chat/completions`)
20
- 4. **Trade-off**: All models work, but Claude models don't get native Anthropic SDK optimizations or reasoning features through the `/v1` gateway
21
-
22
- To enable reasoning in the future, would need to:
23
- - Research if GitHub Copilot supports a different endpoint for reasoning
24
- - Check if there's a separate gateway URL for reasoning models
25
- - Verify with GitHub Copilot API documentation
26
-
27
- Current working configuration (commit f7aabde):
28
- - All models use `@ai-sdk/github-copilot`
29
- - All models use `/v1/chat/completions` (OpenAI-compatible)
30
- - Claude models work but don't have reasoning enabled
31
-
32
- File: .opencode/plugins/copilot-auth.ts (lines 93-100)
@@ -1,14 +0,0 @@
1
- ---
2
- type: discovery
3
- created: 2026-01-30T16:51:31.023Z
4
- confidence: high
5
- valid_until: null
6
- superseded_by: null
7
- concepts: ["context-management", "tool-loadout", "context-pruning", "subagents", "swarm-coordination", "RAG"]
8
- ---
9
-
10
- # 💡 Context Management Research - Critical Gaps in OpenCodeKit
11
-
12
- 🟢 **Confidence:** high
13
-
14
- Research from dbreunig.com reveals four context failure modes: Poisoning, Distraction, Confusion, Clash. Key findings: models fail beyond 100k tokens, >30 tools causes guaranteed failures, multi-turn prompts yield 39% worse results. OpenCodeKit has 40+ tools in context (33% over limit). Critical gaps: 1) No tool loadout system, 2) No structured context assembly, 3) No scratchpad/think tool, 4) No automated pruning at thresholds, 5) No poisoning detection. Immediate action needed: implement tool loadout to reduce tools from 40+ to <25. Should improve accuracy 20-40% based on Berkeley Function-Calling Leaderboard findings.
@@ -1,45 +0,0 @@
1
- ---
2
- type: discovery
3
- created: 2026-01-30T05:46:18.057Z
4
- confidence: high
5
- valid_until: null
6
- superseded_by: null
7
- concepts: ["Kimi K2.5", "agent swarm", "PARL", "parallel execution", "task decomposition", "coordination mechanisms"]
8
- ---
9
-
10
- # 💡 Kimi K2.5 Agent Swarm Architecture Patterns
11
-
12
- 🟢 **Confidence:** high
13
-
14
- Comprehensive research completed on Kimi K2.5's agent swarm architecture and patterns. Key findings:
15
-
16
- ## Core Architecture
17
- - **PARL (Parallel-Agent Reinforcement Learning)**: Training method using staged reward shaping to prevent "serial collapse"
18
- - **Orchestrator-Agent Model**: Central coordinator that decomposes tasks and manages sub-agents
19
- - **Critical Steps Metric**: Latency-focused evaluation inspired by parallel computation critical path
20
- - **Up to 100 sub-agents**: Dynamically instantiated frozen workers
21
- - **1,500 coordinated tool calls**: Maximum parallel workflow capacity
22
-
23
- ## Task Decomposition Patterns
24
- 1. **Research Tasks**: Creates specialized agents (AI Researcher, Physics Researcher, Fact Checker)
25
- 2. **Dataset Creation**: Three-phase pipeline (generation → verification → calibration)
26
- 3. **Multimodal QA**: One-agent-per-item approach with separate coordinator
27
- 4. **Writing Tasks**: Conservative single-agent allocation for tightly coupled work
28
-
29
- ## Coordination Mechanisms
30
- - **Agent Modes**: Explore, Decompose, Generate, Reflect, Synthesize
31
- - **Dynamic Scheduling**: Reuses idle agents, manages bottlenecks
32
- - **Handoff Protocol**: Agents can pass work between each other
33
- - **Progress Tracking**: Visual interface shows individual agent status
34
-
35
- ## Failure Handling
36
- - **Serial Collapse Prevention**: PARL's staged reward system (λaux anneals 0.1→0.0)
37
- - **Self-Correction**: Orchestrator monitors and adjusts strategy
38
- - **Verification First**: Quality control prioritized over raw throughput
39
- - **Computational Bottleneck**: Makes sequential execution impractical
40
-
41
- ## Performance Results
42
- - **4.5x speed improvement** over single-agent for complex tasks
43
- - **80% reduction** in end-to-end runtime on workloads
44
- - **CriticalSteps metric**: Focuses on slowest path optimization
45
- - **Quality over Quantity**: May not honor exact agent count requests
@@ -1,28 +0,0 @@
1
- ---
2
- type: pattern
3
- created: 2026-01-30T06:11:22.169Z
4
- confidence: high
5
- valid_until: null
6
- superseded_by: null
7
- concepts: ["swarm", "tools", "optimization", "architecture", "opencode"]
8
- ---
9
-
10
- # 🔄 Swarm Tools Architecture
11
-
12
- 🟢 **Confidence:** high
13
-
14
- Current swarm infrastructure has 5 separate tools:
15
-
16
- EXISTING:
17
- 1. swarm-delegate.ts - Creates delegation packets for workers
18
- 2. swarm-helper.ts - Mailbox coordination (getTeamStatus, sendTeamMessage)
19
-
20
- NEW (created):
21
- 3. task-classifier.ts - Task analysis & classification
22
- 4. progress-tracker.ts - Real-time progress UI
23
- 5. swarm-orchestrator.ts - Anti-serial-collapse detection
24
-
25
- PLUGIN:
26
- 6. swarm-enforcer.ts - Enforces Beads workflow via nudges
27
-
28
- Optimization opportunity: Merge overlapping functionality into 2-3 comprehensive tools that work together as a unified swarm system.
@@ -1,63 +0,0 @@
1
- ---
2
- type: decision
3
- created: 2026-01-31T05:13:11.027Z
4
- confidence: high
5
- valid_until: null
6
- superseded_by: null
7
- concepts: ["copilot", "auth", "plugin", "baseURL", "chat.headers", "anthropic-beta", "reasoning", "thinking", "enterprise"]
8
- ---
9
-
10
- # 🎯 Copilot Auth Plugin Updated with baseURL and chat.headers
11
-
12
- 🟢 **Confidence:** high
13
-
14
- ## Changes Made to copilot-auth.ts
15
-
16
- ### 1. Added baseURL return for enterprise support
17
- ```typescript
18
- // Enterprise URL support for baseURL
19
- const enterpriseUrl = (info as any).enterpriseUrl;
20
- const baseURL = enterpriseUrl
21
- ? `https://copilot-api.${normalizeDomain(enterpriseUrl)}`
22
- : undefined;
23
-
24
- return {
25
- baseURL, // ← Now returned
26
- apiKey: "",
27
- // ...
28
- }
29
- ```
30
-
31
- ### 2. Added chat.headers hook for Claude reasoning support
32
- ```typescript
33
- "chat.headers": async (input: any, output: any) => {
34
- // Only apply to GitHub Copilot provider
35
- if (!input.model?.providerID?.includes("github-copilot")) return;
36
-
37
- // Add Anthropic beta header for interleaved thinking (extended reasoning)
38
- if (input.model?.api?.npm === "@ai-sdk/anthropic") {
39
- output.headers["anthropic-beta"] = "interleaved-thinking-2025-05-14";
40
- }
41
-
42
- // Mark subagent sessions as agent-initiated
43
- const session = await sdk.session.get(...);
44
- if (session?.data?.parentID) {
45
- output.headers["x-initiator"] = "agent";
46
- }
47
- }
48
- ```
49
-
50
- ### Why These Changes Matter
51
-
52
- 1. **baseURL**: Enterprise users using GitHub Enterprise with data residency will now get correct API routing to `copilot-api.<domain>`.
53
-
54
- 2. **anthropic-beta header**: When Claude routing is re-enabled (the commented-out code), this header will be automatically added to enable extended thinking/reasoning. The header `interleaved-thinking-2025-05-14` is required for Claude to return thinking blocks.
55
-
56
- 3. **Subagent x-initiator**: Sessions that are children of other sessions (subagents) will be marked as `agent` initiated, matching the standard that other Copilot tools use.
57
-
58
- ### Note on Reasoning Activation
59
-
60
- The anthropic-beta header only activates when:
61
- - `input.model.api.npm === "@ai-sdk/anthropic"`
62
-
63
- Currently, all models use `@ai-sdk/github-copilot`, so the header won't be added until the commented Claude routing code is re-enabled.
@@ -1,20 +0,0 @@
1
- ---
2
- type: decision
3
- created: 2026-01-31T13:42:23.877Z
4
- confidence: high
5
- valid_until: null
6
- superseded_by: null
7
- concepts: ["worker", "swarm", "tmux", "agent", "spawn_session", "primary", "subagent"]
8
- ---
9
-
10
- # 🎯 Created dedicated worker agent for swarm
11
-
12
- 🟢 **Confidence:** high
13
-
14
- Created a new `worker` agent (primary mode) specifically for tmux-spawned swarm tasks. This keeps `general` as a subagent (for Task tool delegation) while providing a standalone agent that can be spawned via `opencode run --agent worker`.
15
-
16
- Key differences:
17
- - worker: mode=primary, can run standalone, focused on delegated task execution
18
- - general: mode=subagent, only via Task tool, fast small tasks
19
-
20
- The tmux tool now defaults to `agent: "worker"` for spawn_session operations.
@@ -1,21 +0,0 @@
1
- ---
2
- type: decision
3
- created: 2026-01-31T17:20:18.779Z
4
- confidence: high
5
- valid_until: null
6
- superseded_by: null
7
- concepts: ["copilot", "claude", "reasoning", "thinking_budget", "rollback", "v1.1.47", "signature validation"]
8
- ---
9
-
10
- # 🎯 Rollback to v1.1.47 for Copilot Claude reasoning
11
-
12
- 🟢 **Confidence:** high
13
-
14
- User decided to rollback to OpenCode v1.1.47 approach instead of waiting for PR #8958 to merge. The v1.1.48+ native SDK has "Invalid signature in thinking block" errors with Claude models via GitHub Copilot.
15
-
16
- Rollback includes:
17
- 1. Restore copilot-auth.ts with thinking_budget injection (from commit 6f003b5)
18
- 2. Restore custom SDK at .opencode/plugin/sdk/copilot/ with reasoning_text/reasoning_opaque handling
19
- 3. Restore opencode.json github-copilot provider config with reasoning: true for Claude models
20
-
21
- This custom SDK bypasses native signature validation but provides working extended thinking.
@@ -1,44 +0,0 @@
1
- ---
2
- type: decision
3
- created: 2026-01-31T18:41:11.898Z
4
- confidence: high
5
- valid_until: null
6
- superseded_by: null
7
- concepts: ["swarm", "task-tool", "parallel-execution", "mailbox", "simplification"]
8
- files: [".opencode/tool/swarm-monitor.ts", ".opencode/tool/swarm-delegate.ts", ".opencode/plugin/swarm-enforcer.ts", ".opencode/agent/build.md"]
9
- ---
10
-
11
- # 🎯 Simplified swarm to Task tool pattern
12
-
13
- 🟢 **Confidence:** high
14
-
15
- ## Decision
16
- Removed mailbox complexity from swarm system. The Task tool handles agent lifecycle and result collection natively.
17
-
18
- ## Changes Made
19
- 1. **swarm-monitor.ts**: Removed mail_send, mail_read, persist_todos, restore_todos, get_todos. Now only has progress_update, progress_render, render_block, status, clear.
20
- 2. **swarm-delegate.ts**: Updated example to remove swarm-monitor references
21
- 3. **swarm-enforcer.ts**: Renamed from "SWARM PROTOCOL" to "BEADS PROTOCOL", simplified messaging
22
- 4. **build.md agent**: Dramatically simplified - removed complex PARL workflow, tmux panes, mailbox monitoring. Now focuses on Task tool pattern.
23
- 5. **Removed files**: tmux.ts, worker.md (no longer needed)
24
-
25
- ## Why
26
- - Task tool already handles results returning to parent
27
- - OpenCode manages agent lifecycle automatically
28
- - Mailbox was adding complexity without value
29
- - Session navigation (ctrl+alt+left/right) provides visibility
30
-
31
- ## New Pattern
32
- ```typescript
33
- // Simple parallel execution
34
- Task({ subagent_type: "explore", prompt: "Find X..." });
35
- Task({ subagent_type: "general", prompt: "Implement Y..." });
36
- // Results return directly - no mailbox needed
37
- ```
38
-
39
- ## Files Affected
40
- - .opencode/tool/swarm-monitor.ts
41
- - .opencode/tool/swarm-delegate.ts
42
- - .opencode/plugin/swarm-enforcer.ts
43
- - .opencode/agent/build.md
44
- - dist/template/* (all synced)
@@ -1,33 +0,0 @@
1
- ---
2
- type: decision
3
- created: 2026-01-31T18:34:23.413Z
4
- confidence: high
5
- valid_until: null
6
- superseded_by: null
7
- concepts: ["swarm", "task-tool", "child-session", "parallel", "architecture", "simplify"]
8
- ---
9
-
10
- # 🎯 Swarm architecture: Task tool over tmux
11
-
12
- 🟢 **Confidence:** high
13
-
14
- Decided to use Task tool (child sessions) instead of tmux-spawned orphan sessions for swarm coordination.
15
-
16
- Reasons:
17
- 1. Task tool manages lifecycle automatically - no orphaned processes
18
- 2. Results return directly to parent - no mailbox communication needed
19
- 3. Built-in session navigation (ctrl+alt+right/left) for visibility
20
- 4. Simpler architecture - no process management complexity
21
-
22
- Removed:
23
- - worker agent (.opencode/agent/worker.md)
24
- - tmux tool (.opencode/tool/tmux.ts)
25
- - swarm-monitor mailbox complexity
26
-
27
- Pattern for parallel work:
28
- ```typescript
29
- // Launch parallel subagents - results return to parent
30
- Task({ subagent_type: "general", prompt: "Task 1..." });
31
- Task({ subagent_type: "explore", prompt: "Task 2..." });
32
- // Navigate to child sessions: ctrl+alt+right/left
33
- ```
@@ -1,30 +0,0 @@
1
- ---
2
- type: decision
3
- created: 2026-01-31T19:09:09.501Z
4
- confidence: high
5
- valid_until: null
6
- superseded_by: null
7
- concepts: ["swarm", "delegation", "worker skills", "verification", "TDD", "tool priority"]
8
- ---
9
-
10
- # 🎯 Worker skills defined for swarm delegation
11
-
12
- 🟢 **Confidence:** high
13
-
14
- Updated swarm-delegate and swarm-plan tools to recommend essential skills for worker agents:
15
-
16
- Required/Recommended skills for workers:
17
- 1. verification-before-completion - REQUIRED: Workers must verify before claiming done
18
- 2. test-driven-development - RECOMMENDED: Write tests first, watch fail, implement, verify pass
19
- 3. tool-priority - RECOMMENDED: Use LSP before edits, grep for patterns, read before edit
20
-
21
- Changes made:
22
- - swarm-delegate.ts: Added "Recommended skills for workers" section to tool description
23
- - swarm-plan.ts: Added "Worker skills" section with skill() calls to load
24
-
25
- These skills ensure workers:
26
- - Follow proper verification protocol (no false "done" claims)
27
- - Use TDD for quality implementation
28
- - Use correct tool priority (LSP before edits)
29
-
30
- Both tools synced to dist/template/.
@@ -1,51 +0,0 @@
1
- ---
2
- type: learning
3
- created: 2026-01-31T18:13:49.325Z
4
- confidence: high
5
- valid_until: null
6
- superseded_by: null
7
- concepts: ["opencode", "gpt", "reasoning", "github-copilot", "model-config", "variants", "reasoningEffort"]
8
- ---
9
-
10
- # 📚 GPT reasoning config for GitHub Copilot
11
-
12
- 🟢 **Confidence:** high
13
-
14
- ## GPT Models Reasoning Configuration on GitHub Copilot Provider
15
-
16
- For OpenAI GPT models (gpt-5.2, gpt-5.2-codex) via github-copilot provider, reasoning is configured using these options:
17
-
18
- ### Key Options
19
- - `reasoningEffort`: "low" | "medium" | "high" - Controls reasoning depth
20
- - `reasoningSummary`: "auto" | "always" | "never" - Show reasoning summary
21
- - `textVerbosity`: "low" | "medium" | "high" - Controls output verbosity
22
- - `include`: ["reasoning.encrypted_content"] - Include encrypted reasoning
23
-
24
- ### Configuration Structure
25
- ```json
26
- "github-copilot": {
27
- "models": {
28
- "gpt-5.2": {
29
- "reasoning": true,
30
- "options": {
31
- "reasoningEffort": "medium",
32
- "reasoningSummary": "auto"
33
- },
34
- "variants": {
35
- "high": { "reasoningEffort": "high", "include": ["reasoning.encrypted_content"] },
36
- "low": { "reasoningEffort": "low" },
37
- "medium": { "reasoningEffort": "medium" }
38
- }
39
- }
40
- }
41
- }
42
- ```
43
-
44
- ### Usage
45
- 1. Select model: `/models` → choose `github-copilot/gpt-5.2`
46
- 2. Cycle variants: Use keybind to switch between low/medium/high
47
- 3. Or add `--variant high` when starting
48
-
49
- ### Difference from Claude models
50
- - Claude uses `thinking_budget` (token count)
51
- - GPT uses `reasoningEffort` (low/medium/high qualitative levels)
@@ -1,61 +0,0 @@
1
- ---
2
- type: learning
3
- created: 2026-01-31T05:04:00.660Z
4
- confidence: high
5
- valid_until: null
6
- superseded_by: null
7
- concepts: ["copilot", "auth", "plugin", "token-refresh", "reasoning", "thinking", "github-copilot", "opencode", "comparison"]
8
- files: ["index.mjs"]
9
- ---
10
-
11
- # 📚 OpenCode Copilot Auth Comparison Findings
12
-
13
- 🟢 **Confidence:** high
14
-
15
- ## Key Findings from Comparing Local vs Official OpenCode Copilot Auth Plugin
16
-
17
- ### Official Plugin Location
18
- - Repository: `anomalyco/opencode-copilot-auth` (separate repo)
19
- - File: `index.mjs`
20
- - The auth.ts in main opencode repo is just auth orchestration, not the actual plugin
21
-
22
- ### Critical Differences Found
23
-
24
- #### 1. CLIENT_ID Mismatch
25
- - **Local**: `Ov23li8tweQw6odWQebz`
26
- - **Official**: `Iv1.b507a08c87ecfe98`
27
- - CRITICAL: Different OAuth client IDs will affect authentication!
28
-
29
- #### 2. Token Refresh Mechanism
30
- - **Local**: Does NOT refresh Copilot API token - uses OAuth access token directly
31
- - **Official**: Uses `COPILOT_API_KEY_URL` (`/copilot_internal/v2/token`) to get short-lived Copilot tokens
32
- - CRITICAL: Local version may have token expiration issues
33
-
34
- #### 3. Token Storage
35
- - **Local**: Stores `data.access_token` as both `refresh` and `access` with `expires: 0`
36
- - **Official**: Stores OAuth token as `refresh`, and fetches separate Copilot token as `access` with proper expiration
37
-
38
- #### 4. Rate Limit Handling
39
- - **Local**: Has retry logic with exponential backoff for 429 errors
40
- - **Official**: No retry logic - relies on proper token refresh instead
41
-
42
- #### 5. Model Configuration
43
- - **Local**: Sets `model.api.npm = "@ai-sdk/github-copilot"` explicitly
44
- - **Official**: Does NOT modify model SDK - lets OpenCode core handle it
45
-
46
- #### 6. Agent Detection Logic
47
- - **Local**: Checks ALL messages for tool/assistant roles
48
- - **Official**: Only checks LAST message for agent detection
49
-
50
- #### 7. baseURL Configuration
51
- - **Local**: Does NOT set baseURL (commented out Claude routing)
52
- - **Official**: Sets baseURL dynamically based on enterprise vs public deployment
53
-
54
- ### Reasoning/Thinking Block Fix Context
55
- The v1.1.46 fix "Remove AI SDK middleware that was preventing think blocks" is in the core OpenCode provider code, NOT in the copilot auth plugin. The `extractReasoningMiddleware` is used to extract thinking from tags like `<think>`, but Anthropic's native thinking doesn't need this.
56
-
57
- ### Recommendation
58
- The local plugin has diverged significantly from official. Key issues:
59
- 1. Wrong CLIENT_ID will cause auth problems
60
- 2. Missing token refresh logic will cause "Not Found" or auth errors
61
- 3. Agent detection differs which affects `x-initiator` header
@@ -1,66 +0,0 @@
1
- ---
2
- type: learning
3
- created: 2026-01-31T05:23:35.673Z
4
- confidence: high
5
- valid_until: null
6
- superseded_by: null
7
- concepts: ["copilot", "reasoning", "thinking", "config", "opencode", "sdk", "thinking_budget", "reasoning_text", "reasoning_opaque"]
8
- ---
9
-
10
- # 📚 OpenCode Copilot Reasoning Architecture Explained
11
-
12
- 🟢 **Confidence:** high
13
-
14
- ## OpenCode Copilot Reasoning Architecture
15
-
16
- ### Config Parameters Found in opencode.json
17
- The `github-copilot` provider has Claude models with reasoning configured:
18
- ```json
19
- "claude-haiku-4.5": {
20
- "reasoning": true,
21
- "variants": {
22
- "high": {
23
- "options": {
24
- "thinking": {
25
- "budgetTokens": 32000,
26
- "type": "enabled"
27
- }
28
- }
29
- }
30
- }
31
- }
32
- ```
33
-
34
- ### How OpenCode v1.1.46 Actually Handles Copilot Reasoning
35
-
36
- OpenCode created a custom Copilot SDK (`packages/opencode/src/provider/sdk/copilot/`) that:
37
-
38
- 1. **Does NOT use Anthropic's `/v1/messages` endpoint** - uses standard `/chat/completions`
39
- 2. **Sends `thinking_budget` parameter** in request args
40
- 3. **Looks for `reasoning_text` and `reasoning_opaque` fields** in response
41
- 4. **Preserves `reasoning_opaque`** for multi-turn conversations
42
-
43
- ### Key Response Schema Fields (Copilot-specific)
44
- ```typescript
45
- message: {
46
- content: z.string().nullish(),
47
- reasoning_text: z.string().nullish(), // Reasoning content
48
- reasoning_opaque: z.string().nullish(), // Opaque token for multi-turn
49
- }
50
- ```
51
-
52
- ### Provider Options Mapping
53
- The custom SDK accepts:
54
- - `thinking_budget` → budget tokens for thinking
55
- - `reasoningEffort` → low/medium/high effort level
56
-
57
- ### Why Standard SDK Doesn't Work
58
- - `@ai-sdk/github-copilot` doesn't look for `reasoning_text` field
59
- - It doesn't pass `thinking_budget` to the API
60
- - It doesn't preserve `reasoning_opaque` for conversation continuity
61
-
62
- ### Solution Required
63
- To enable Copilot reasoning, need to either:
64
- 1. Wait for `@ai-sdk/github-copilot` to add support
65
- 2. Copy OpenCode's custom `sdk/copilot` implementation
66
- 3. Contribute the feature upstream
@@ -1,48 +0,0 @@
1
- ---
2
- type: learning
3
- created: 2026-01-31T13:08:45.478Z
4
- confidence: high
5
- valid_until: null
6
- superseded_by: null
7
- concepts: ["opencode", "custom-tools", "plugin", "bun-shell", "tool-schema"]
8
- ---
9
-
10
- # 📚 OpenCode Custom Tools API
11
-
12
- 🟢 **Confidence:** high
13
-
14
- ## Proper Custom Tool Format
15
-
16
- OpenCode custom tools must use the `@opencode-ai/plugin` package:
17
-
18
- ```typescript
19
- import { tool } from "@opencode-ai/plugin";
20
-
21
- export default tool({
22
- description: "Tool description",
23
- args: {
24
- param: tool.schema.string().describe("Parameter description"),
25
- },
26
- async execute(args, context) {
27
- // context provides: agent, sessionID, messageID, directory, worktree
28
- return "result";
29
- },
30
- });
31
- ```
32
-
33
- ### Key Points:
34
- 1. **Import**: `import { tool } from "@opencode-ai/plugin"`
35
- 2. **Schema**: Use `tool.schema` (which is Zod) for argument types
36
- 3. **Shell commands**: Use `Bun.$` for shell commands, NOT Node.js child_process
37
- 4. **Context**: Second argument provides session info (directory, worktree, etc.)
38
- 5. **Multiple exports**: Each named export becomes `<filename>_<exportname>` tool
39
-
40
- ### Shell Command Example:
41
- ```typescript
42
- // Use Bun shell (NOT child_process)
43
- const result = await Bun.$`tmux -V`.quiet();
44
- return result.stdout.toString().trim();
45
- ```
46
-
47
- ### Docs Reference:
48
- https://opencode.ai/docs/custom-tools/
@@ -1,21 +0,0 @@
1
- ---
2
- type: learning
3
- created: 2026-01-31T18:45:52.872Z
4
- confidence: high
5
- valid_until: null
6
- superseded_by: null
7
- concepts: ["opencode", "skills", "slash-commands", "v1.1.48", "TUI", "implement"]
8
- ---
9
-
10
- # 📚 OpenCode v1.1.48: Skills as slash commands
11
-
12
- 🟢 **Confidence:** high
13
-
14
- OpenCode v1.1.48 introduced the ability to invoke skills as slash commands in the TUI.
15
-
16
- This means:
17
- 1. Skills in `.opencode/skill/` can be invoked directly via `/skill-name`
18
- 2. Commands in `.opencode/command/` that load skills via `skill({ name: "..." })` need to stay consistent with actual skill capabilities
19
- 3. When simplifying tools/skills, must also update any commands that reference them
20
-
21
- Example: `/implement` loads swarm-coordination skill and uses swarm-monitor operations - if those operations change, implement.md must be updated too.
@@ -1,30 +0,0 @@
1
- ---
2
- type: learning
3
- created: 2026-01-31T19:06:48.076Z
4
- confidence: high
5
- valid_until: null
6
- superseded_by: null
7
- concepts: ["swarm", "beads", "parallel execution", "task tool", "mailbox removal"]
8
- files: [".opencode/tool/swarm-monitor.ts", ".opencode/command/implement.md", ".opencode/command/handoff.md", ".opencode/command/resume.md", ".opencode/command/new-feature.md", ".opencode/command/research.md", ".opencode/skill/beads/SKILL.md", ".opencode/skill/beads-bridge/SKILL.md", ".opencode/skill/swarm-coordination/SKILL.md"]
9
- ---
10
-
11
- # 📚 Swarm system simplified - removed mailbox operations
12
-
13
- 🟢 **Confidence:** high
14
-
15
- The swarm system has been simplified to use Task tool for parallel execution instead of internal mailbox operations. Removed obsolete operations: restore_todos, persist_todos, mail_send, mail_read, get_todos.
16
-
17
- Current valid swarm-monitor operations: progress_update, render_block, status, clear
18
-
19
- Updated files:
20
- - .opencode/tool/swarm-monitor.ts (removed obsolete operations)
21
- - .opencode/command/implement.md (updated examples)
22
- - .opencode/command/handoff.md (removed persist_todos)
23
- - .opencode/command/resume.md (removed restore_todos)
24
- - .opencode/command/new-feature.md (removed mail_send)
25
- - .opencode/command/research.md (simplified examples)
26
- - .opencode/skill/beads/SKILL.md (added beads-bridge section)
27
- - .opencode/skill/beads-bridge/SKILL.md (removed obsolete operations)
28
- - .opencode/skill/swarm-coordination/SKILL.md (removed obsolete operations)
29
-
30
- Key insight: Task tool results replace mailbox messages. Workers return completion status directly via Task results, not via mail_send/mail_read.
@@ -1,45 +0,0 @@
1
- ---
2
- type: learning
3
- created: 2026-01-31T17:23:15.170Z
4
- confidence: high
5
- valid_until: null
6
- superseded_by: null
7
- concepts: ["v1.1.48", "copilot", "reasoning", "native", "PR 8900", "thinking_budget", "reasoning_opaque", "reasoning_text"]
8
- ---
9
-
10
- # 📚 v1.1.48 Native Copilot Reasoning via PR 8900
11
-
12
- 🟢 **Confidence:** high
13
-
14
- ## v1.1.48 Native Copilot Reasoning Support (PR #8900)
15
-
16
- OpenCode v1.1.48 includes native Copilot-specific provider that properly handles reasoning tokens! This was merged Jan 31, 2026.
17
-
18
- ### What PR #8900 Does:
19
- 1. Creates dedicated Copilot provider under `src/provider/sdk/copilot/`
20
- 2. Handles `reasoning_text` and `reasoning_opaque` fields natively
21
- 3. Properly stores and passes `reasoning_opaque` back to Copilot API for multi-turn context
22
- 4. Uses `providerOptions.copilot` key (not `openaiCompatible`)
23
- 5. Adds `copilot_cache_control` to all messages
24
-
25
- ### Key Implementation Details:
26
- - Provider options key changed from `openaiCompatible` to `copilot`
27
- - Assistant messages include `reasoning_text` and `reasoning_opaque`
28
- - The opaque signature MUST be passed back for multi-turn reasoning to work properly
29
- - Gemini models work with reasoning; Claude thinking is NOT yet supported server-side by GitHub
30
-
31
- ### For Plugin Configuration (v1.1.48+):
32
- - NO custom SDK needed anymore
33
- - Use native `github-copilot` provider
34
- - Enable reasoning with `reasoning: true` in model config
35
- - May need to pass `thinking_budget` via providerOptions.copilot
36
-
37
- ### GitHub Copilot Model Capabilities (from API):
38
- - Claude models support `max_thinking_budget: 32000` and `min_thinking_budget: 1024`
39
- - GPT models use `/responses` API endpoint
40
- - Claude uses chat completions API
41
-
42
- ### Important Note:
43
- - Gemini models DO return `reasoning_text` via Copilot
44
- - Claude extended thinking is blocked SERVER-SIDE by GitHub (not a client issue)
45
- - The custom SDK we built is now obsolete for v1.1.48+