opencodekit 0.15.20 → 0.15.21

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 (551) hide show
  1. package/dist/index.js +3 -1
  2. package/dist/template/.opencode/agent/build.md +270 -0
  3. package/dist/template/.opencode/{commands → command}/finish.md +18 -0
  4. package/dist/template/.opencode/{commands → command}/handoff.md +36 -1
  5. package/dist/template/.opencode/{commands → command}/implement.md +32 -30
  6. package/dist/template/.opencode/{commands → command}/new-feature.md +3 -2
  7. package/dist/template/.opencode/{commands → command}/research.md +4 -10
  8. package/dist/template/.opencode/{commands → command}/resume.md +36 -9
  9. package/dist/template/.opencode/{commands → command}/start.md +12 -0
  10. package/dist/template/.opencode/memory/observations/2026-01-31-decision-created-dedicated-worker-agent-for-swarm.md +20 -0
  11. package/dist/template/.opencode/memory/observations/2026-01-31-decision-rollback-to-v1-1-47-for-copilot-claude-r.md +21 -0
  12. package/dist/template/.opencode/memory/observations/2026-01-31-decision-simplified-swarm-to-task-tool-pattern.md +44 -0
  13. package/dist/template/.opencode/memory/observations/2026-01-31-decision-swarm-architecture-task-tool-over-tmux.md +33 -0
  14. package/dist/template/.opencode/memory/observations/2026-01-31-decision-worker-skills-defined-for-swarm-delegati.md +30 -0
  15. package/dist/template/.opencode/memory/observations/2026-01-31-learning-gpt-reasoning-config-for-github-copilot.md +51 -0
  16. package/dist/template/.opencode/memory/observations/2026-01-31-learning-opencode-custom-tools-api.md +48 -0
  17. package/dist/template/.opencode/memory/observations/2026-01-31-learning-opencode-v1-1-48-skills-as-slash-command.md +21 -0
  18. package/dist/template/.opencode/memory/observations/2026-01-31-learning-swarm-system-simplified-removed-mailbox-.md +30 -0
  19. package/dist/template/.opencode/memory/observations/2026-01-31-learning-v1-1-48-native-copilot-reasoning-via-pr-.md +45 -0
  20. package/dist/template/.opencode/memory/observations/2026-01-31-warning-cannot-add-custom-config-to-opencode-jso.md +18 -0
  21. package/dist/template/.opencode/memory/observations/2026-01-31-warning-opencode-v1-1-48-claude-thinking-block-s.md +51 -0
  22. package/dist/template/.opencode/opencode.json +803 -805
  23. package/dist/template/.opencode/package.json +2 -2
  24. package/dist/template/.opencode/{plugins → plugin}/copilot-auth.ts +107 -177
  25. package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/chat/openai-compatible-chat-language-model.ts +12 -2
  26. package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/chat/openai-compatible-chat-options.ts +1 -1
  27. package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/openai-compatible-error.ts +1 -1
  28. package/dist/template/.opencode/{plugins → plugin}/swarm-enforcer.ts +18 -23
  29. package/dist/template/.opencode/{skills → skill}/beads/SKILL.md +41 -0
  30. package/dist/template/.opencode/skill/beads-bridge/SKILL.md +294 -0
  31. package/dist/template/.opencode/skill/resend/SKILL.md +167 -0
  32. package/dist/template/.opencode/skill/resend/references/react-email.md +287 -0
  33. package/dist/template/.opencode/skill/resend/references/receive-email.md +248 -0
  34. package/dist/template/.opencode/skill/resend/references/send-email.md +318 -0
  35. package/dist/template/.opencode/skill/swarm-coordination/SKILL.md +690 -0
  36. package/dist/template/.opencode/skill/tool-priority/SKILL.md +259 -0
  37. package/dist/template/.opencode/tool/beads-sync.ts +657 -0
  38. package/dist/template/.opencode/{tools → tool}/swarm-delegate.ts +13 -8
  39. package/dist/template/.opencode/{tools → tool}/swarm-monitor.ts +14 -170
  40. package/dist/template/.opencode/{tools → tool}/swarm-plan.ts +232 -1
  41. package/package.json +3 -1
  42. package/dist/template/.opencode/agents/build.md +0 -584
  43. package/dist/template/.opencode/skills/swarm-coordination/SKILL.md +0 -548
  44. package/dist/template/.opencode/skills/tool-priority/SKILL.md +0 -190
  45. /package/dist/template/.opencode/{agents → agent}/explore.md +0 -0
  46. /package/dist/template/.opencode/{agents → agent}/general.md +0 -0
  47. /package/dist/template/.opencode/{agents → agent}/looker.md +0 -0
  48. /package/dist/template/.opencode/{agents → agent}/painter.md +0 -0
  49. /package/dist/template/.opencode/{agents → agent}/plan.md +0 -0
  50. /package/dist/template/.opencode/{agents → agent}/review.md +0 -0
  51. /package/dist/template/.opencode/{agents → agent}/scout.md +0 -0
  52. /package/dist/template/.opencode/{agents → agent}/vision.md +0 -0
  53. /package/dist/template/.opencode/{commands → command}/accessibility-check.md +0 -0
  54. /package/dist/template/.opencode/{commands → command}/agent-browser.md +0 -0
  55. /package/dist/template/.opencode/{commands → command}/analyze-mockup.md +0 -0
  56. /package/dist/template/.opencode/{commands → command}/analyze-project.md +0 -0
  57. /package/dist/template/.opencode/{commands → command}/brainstorm.md +0 -0
  58. /package/dist/template/.opencode/{commands → command}/cloudflare.md +0 -0
  59. /package/dist/template/.opencode/{commands → command}/commit.md +0 -0
  60. /package/dist/template/.opencode/{commands → command}/complete-next-task.md +0 -0
  61. /package/dist/template/.opencode/{commands → command}/create.md +0 -0
  62. /package/dist/template/.opencode/{commands → command}/design-audit.md +0 -0
  63. /package/dist/template/.opencode/{commands → command}/design.md +0 -0
  64. /package/dist/template/.opencode/{commands → command}/edit-image.md +0 -0
  65. /package/dist/template/.opencode/{commands → command}/fix-ci.md +0 -0
  66. /package/dist/template/.opencode/{commands → command}/fix-types.md +0 -0
  67. /package/dist/template/.opencode/{commands → command}/fix-ui.md +0 -0
  68. /package/dist/template/.opencode/{commands → command}/fix.md +0 -0
  69. /package/dist/template/.opencode/{commands → command}/frontend-design.md +0 -0
  70. /package/dist/template/.opencode/{commands → command}/generate-diagram.md +0 -0
  71. /package/dist/template/.opencode/{commands → command}/generate-icon.md +0 -0
  72. /package/dist/template/.opencode/{commands → command}/generate-image.md +0 -0
  73. /package/dist/template/.opencode/{commands → command}/generate-pattern.md +0 -0
  74. /package/dist/template/.opencode/{commands → command}/generate-storyboard.md +0 -0
  75. /package/dist/template/.opencode/{commands → command}/import-plan.md +0 -0
  76. /package/dist/template/.opencode/{commands → command}/index-knowledge.md +0 -0
  77. /package/dist/template/.opencode/{commands → command}/init.md +0 -0
  78. /package/dist/template/.opencode/{commands → command}/integration-test.md +0 -0
  79. /package/dist/template/.opencode/{commands → command}/issue.md +0 -0
  80. /package/dist/template/.opencode/{commands → command}/opensrc.md +0 -0
  81. /package/dist/template/.opencode/{commands → command}/plan.md +0 -0
  82. /package/dist/template/.opencode/{commands → command}/pr.md +0 -0
  83. /package/dist/template/.opencode/{commands → command}/quick-build.md +0 -0
  84. /package/dist/template/.opencode/{commands → command}/ralph.md +0 -0
  85. /package/dist/template/.opencode/{commands → command}/research-and-implement.md +0 -0
  86. /package/dist/template/.opencode/{commands → command}/research-ui.md +0 -0
  87. /package/dist/template/.opencode/{commands → command}/restore-image.md +0 -0
  88. /package/dist/template/.opencode/{commands → command}/revert-feature.md +0 -0
  89. /package/dist/template/.opencode/{commands → command}/review-codebase.md +0 -0
  90. /package/dist/template/.opencode/{commands → command}/skill-create.md +0 -0
  91. /package/dist/template/.opencode/{commands → command}/skill-optimize.md +0 -0
  92. /package/dist/template/.opencode/{commands → command}/status.md +0 -0
  93. /package/dist/template/.opencode/{commands → command}/summarize.md +0 -0
  94. /package/dist/template/.opencode/{commands → command}/triage.md +0 -0
  95. /package/dist/template/.opencode/{commands → command}/ui-review.md +0 -0
  96. /package/dist/template/.opencode/{plugins → plugin}/README.md +0 -0
  97. /package/dist/template/.opencode/{plugins → plugin}/compaction.ts +0 -0
  98. /package/dist/template/.opencode/{plugins → plugin}/env-ctx.ts +0 -0
  99. /package/dist/template/.opencode/{plugins → plugin}/lib/notify.ts +0 -0
  100. /package/dist/template/.opencode/{plugins → plugin}/lsp.ts +0 -0
  101. /package/dist/template/.opencode/{plugins → plugin}/memory.ts +0 -0
  102. /package/dist/template/.opencode/{plugins → plugin}/notification.ts.bak +0 -0
  103. /package/dist/template/.opencode/{plugins → plugin}/package.json +0 -0
  104. /package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/chat/convert-to-openai-compatible-chat-messages.ts +0 -0
  105. /package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/chat/get-response-metadata.ts +0 -0
  106. /package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/chat/map-openai-compatible-finish-reason.ts +0 -0
  107. /package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/chat/openai-compatible-api-types.ts +0 -0
  108. /package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/chat/openai-compatible-metadata-extractor.ts +0 -0
  109. /package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/chat/openai-compatible-prepare-tools.ts +0 -0
  110. /package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/copilot-provider.ts +0 -0
  111. /package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/index.ts +0 -0
  112. /package/dist/template/.opencode/{plugins → plugin}/sessions.ts +0 -0
  113. /package/dist/template/.opencode/{plugins → plugin}/skill-mcp.ts +0 -0
  114. /package/dist/template/.opencode/{plugins → plugin}/truncator.ts +0 -0
  115. /package/dist/template/.opencode/{plugins → plugin}/tsconfig.json +0 -0
  116. /package/dist/template/.opencode/{skills → skill}/accessibility-audit/SKILL.md +0 -0
  117. /package/dist/template/.opencode/{skills → skill}/agent-browser/SKILL.md +0 -0
  118. /package/dist/template/.opencode/{skills → skill}/beads/references/BOUNDARIES.md +0 -0
  119. /package/dist/template/.opencode/{skills → skill}/beads/references/DEPENDENCIES.md +0 -0
  120. /package/dist/template/.opencode/{skills → skill}/beads/references/RESUMABILITY.md +0 -0
  121. /package/dist/template/.opencode/{skills → skill}/beads/references/WORKFLOWS.md +0 -0
  122. /package/dist/template/.opencode/{skills → skill}/brainstorming/SKILL.md +0 -0
  123. /package/dist/template/.opencode/{skills → skill}/chrome-devtools/SKILL.md +0 -0
  124. /package/dist/template/.opencode/{skills → skill}/chrome-devtools/mcp.json +0 -0
  125. /package/dist/template/.opencode/{skills → skill}/cloudflare/SKILL.md +0 -0
  126. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/agents-sdk/README.md +0 -0
  127. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/agents-sdk/api.md +0 -0
  128. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/agents-sdk/configuration.md +0 -0
  129. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/agents-sdk/gotchas.md +0 -0
  130. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/agents-sdk/patterns.md +0 -0
  131. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ai-gateway/README.md +0 -0
  132. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ai-search/README.md +0 -0
  133. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ai-search/api.md +0 -0
  134. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ai-search/configuration.md +0 -0
  135. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ai-search/gotchas.md +0 -0
  136. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ai-search/patterns.md +0 -0
  137. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/analytics-engine/README.md +0 -0
  138. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/analytics-engine/api.md +0 -0
  139. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/analytics-engine/configuration.md +0 -0
  140. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/analytics-engine/gotchas.md +0 -0
  141. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/analytics-engine/patterns.md +0 -0
  142. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api/README.md +0 -0
  143. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api/api.md +0 -0
  144. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api/configuration.md +0 -0
  145. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api/gotchas.md +0 -0
  146. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api/patterns.md +0 -0
  147. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api-shield/README.md +0 -0
  148. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api-shield/api.md +0 -0
  149. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api-shield/configuration.md +0 -0
  150. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api-shield/gotchas.md +0 -0
  151. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api-shield/patterns.md +0 -0
  152. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/argo-smart-routing/README.md +0 -0
  153. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/argo-smart-routing/api.md +0 -0
  154. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/argo-smart-routing/configuration.md +0 -0
  155. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/argo-smart-routing/gotchas.md +0 -0
  156. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/argo-smart-routing/patterns.md +0 -0
  157. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bindings/README.md +0 -0
  158. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bindings/api.md +0 -0
  159. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bindings/configuration.md +0 -0
  160. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bindings/gotchas.md +0 -0
  161. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bindings/patterns.md +0 -0
  162. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bot-management/README.md +0 -0
  163. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bot-management/api.md +0 -0
  164. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bot-management/configuration.md +0 -0
  165. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bot-management/gotchas.md +0 -0
  166. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bot-management/patterns.md +0 -0
  167. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/browser-rendering/README.md +0 -0
  168. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/browser-rendering/api.md +0 -0
  169. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/browser-rendering/configuration.md +0 -0
  170. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/browser-rendering/gotchas.md +0 -0
  171. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/browser-rendering/patterns.md +0 -0
  172. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/c3/README.md +0 -0
  173. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cache-reserve/README.md +0 -0
  174. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cache-reserve/api.md +0 -0
  175. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cache-reserve/configuration.md +0 -0
  176. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cache-reserve/gotchas.md +0 -0
  177. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cache-reserve/patterns.md +0 -0
  178. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/containers/README.md +0 -0
  179. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/containers/api.md +0 -0
  180. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/containers/configuration.md +0 -0
  181. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/containers/gotchas.md +0 -0
  182. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/containers/patterns.md +0 -0
  183. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cron-triggers/README.md +0 -0
  184. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cron-triggers/api.md +0 -0
  185. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cron-triggers/configuration.md +0 -0
  186. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cron-triggers/gotchas.md +0 -0
  187. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cron-triggers/patterns.md +0 -0
  188. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/d1/README.md +0 -0
  189. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/d1/api.md +0 -0
  190. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/d1/configuration.md +0 -0
  191. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/d1/gotchas.md +0 -0
  192. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/d1/patterns.md +0 -0
  193. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ddos/README.md +0 -0
  194. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ddos/api.md +0 -0
  195. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ddos/configuration.md +0 -0
  196. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ddos/gotchas.md +0 -0
  197. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ddos/patterns.md +0 -0
  198. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/do-storage/README.md +0 -0
  199. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/do-storage/api.md +0 -0
  200. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/do-storage/configuration.md +0 -0
  201. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/do-storage/gotchas.md +0 -0
  202. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/do-storage/patterns.md +0 -0
  203. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/durable-objects/README.md +0 -0
  204. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/durable-objects/api.md +0 -0
  205. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/durable-objects/configuration.md +0 -0
  206. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/durable-objects/gotchas.md +0 -0
  207. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/durable-objects/patterns.md +0 -0
  208. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/email-routing/README.md +0 -0
  209. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/email-routing/api.md +0 -0
  210. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/email-routing/configuration.md +0 -0
  211. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/email-routing/gotchas.md +0 -0
  212. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/email-routing/patterns.md +0 -0
  213. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/email-workers/README.md +0 -0
  214. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/hyperdrive/README.md +0 -0
  215. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/hyperdrive/api.md +0 -0
  216. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/hyperdrive/configuration.md +0 -0
  217. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/hyperdrive/gotchas.md +0 -0
  218. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/hyperdrive/patterns.md +0 -0
  219. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/images/README.md +0 -0
  220. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/images/api.md +0 -0
  221. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/images/configuration.md +0 -0
  222. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/images/gotchas.md +0 -0
  223. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/images/patterns.md +0 -0
  224. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/kv/README.md +0 -0
  225. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/kv/api.md +0 -0
  226. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/kv/configuration.md +0 -0
  227. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/kv/gotchas.md +0 -0
  228. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/kv/patterns.md +0 -0
  229. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/miniflare/README.md +0 -0
  230. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/miniflare/api.md +0 -0
  231. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/miniflare/configuration.md +0 -0
  232. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/miniflare/gotchas.md +0 -0
  233. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/miniflare/patterns.md +0 -0
  234. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/network-interconnect/README.md +0 -0
  235. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/network-interconnect/api.md +0 -0
  236. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/network-interconnect/configuration.md +0 -0
  237. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/network-interconnect/gotchas.md +0 -0
  238. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/network-interconnect/patterns.md +0 -0
  239. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/observability/README.md +0 -0
  240. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/observability/api.md +0 -0
  241. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/observability/configuration.md +0 -0
  242. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/observability/gotchas.md +0 -0
  243. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/observability/patterns.md +0 -0
  244. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages/README.md +0 -0
  245. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages/api.md +0 -0
  246. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages/configuration.md +0 -0
  247. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages/gotchas.md +0 -0
  248. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages/patterns.md +0 -0
  249. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages-functions/README.md +0 -0
  250. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages-functions/api.md +0 -0
  251. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages-functions/configuration.md +0 -0
  252. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages-functions/gotchas.md +0 -0
  253. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages-functions/patterns.md +0 -0
  254. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pipelines/README.md +0 -0
  255. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pulumi/README.md +0 -0
  256. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pulumi/api.md +0 -0
  257. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pulumi/configuration.md +0 -0
  258. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pulumi/gotchas.md +0 -0
  259. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pulumi/patterns.md +0 -0
  260. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/queues/README.md +0 -0
  261. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/queues/api.md +0 -0
  262. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/queues/configuration.md +0 -0
  263. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/queues/gotchas.md +0 -0
  264. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/queues/patterns.md +0 -0
  265. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2/README.md +0 -0
  266. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2/api.md +0 -0
  267. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2/configuration.md +0 -0
  268. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2/gotchas.md +0 -0
  269. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2/patterns.md +0 -0
  270. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2-data-catalog/README.md +0 -0
  271. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2-data-catalog/api.md +0 -0
  272. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2-data-catalog/configuration.md +0 -0
  273. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2-data-catalog/gotchas.md +0 -0
  274. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2-data-catalog/patterns.md +0 -0
  275. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2-sql/README.md +0 -0
  276. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtime-sfu/README.md +0 -0
  277. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtime-sfu/api.md +0 -0
  278. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtime-sfu/configuration.md +0 -0
  279. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtime-sfu/gotchas.md +0 -0
  280. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtime-sfu/patterns.md +0 -0
  281. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtimekit/README.md +0 -0
  282. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtimekit/api.md +0 -0
  283. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtimekit/configuration.md +0 -0
  284. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtimekit/gotchas.md +0 -0
  285. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtimekit/patterns.md +0 -0
  286. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/sandbox/README.md +0 -0
  287. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/sandbox/api.md +0 -0
  288. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/sandbox/configuration.md +0 -0
  289. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/sandbox/gotchas.md +0 -0
  290. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/sandbox/patterns.md +0 -0
  291. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/secrets-store/README.md +0 -0
  292. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/secrets-store/api.md +0 -0
  293. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/secrets-store/configuration.md +0 -0
  294. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/secrets-store/gotchas.md +0 -0
  295. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/secrets-store/patterns.md +0 -0
  296. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/smart-placement/README.md +0 -0
  297. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/smart-placement/api.md +0 -0
  298. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/smart-placement/configuration.md +0 -0
  299. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/smart-placement/gotchas.md +0 -0
  300. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/smart-placement/patterns.md +0 -0
  301. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/snippets/README.md +0 -0
  302. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/snippets/api.md +0 -0
  303. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/snippets/configuration.md +0 -0
  304. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/snippets/gotchas.md +0 -0
  305. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/snippets/patterns.md +0 -0
  306. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/spectrum/README.md +0 -0
  307. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/spectrum/api.md +0 -0
  308. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/spectrum/configuration.md +0 -0
  309. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/spectrum/gotchas.md +0 -0
  310. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/spectrum/patterns.md +0 -0
  311. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/static-assets/README.md +0 -0
  312. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/static-assets/api.md +0 -0
  313. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/static-assets/configuration.md +0 -0
  314. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/static-assets/gotchas.md +0 -0
  315. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/static-assets/patterns.md +0 -0
  316. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/stream/README.md +0 -0
  317. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/stream/api.md +0 -0
  318. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/stream/configuration.md +0 -0
  319. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/stream/gotchas.md +0 -0
  320. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/stream/patterns.md +0 -0
  321. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/tail-workers/README.md +0 -0
  322. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/terraform/README.md +0 -0
  323. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/terraform/api.md +0 -0
  324. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/terraform/configuration.md +0 -0
  325. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/terraform/gotchas.md +0 -0
  326. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/terraform/patterns.md +0 -0
  327. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/tunnel/README.md +0 -0
  328. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/tunnel/api.md +0 -0
  329. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/tunnel/configuration.md +0 -0
  330. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/tunnel/gotchas.md +0 -0
  331. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/tunnel/patterns.md +0 -0
  332. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/turn/README.md +0 -0
  333. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/turnstile/README.md +0 -0
  334. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/turnstile/api.md +0 -0
  335. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/turnstile/configuration.md +0 -0
  336. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/turnstile/gotchas.md +0 -0
  337. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/turnstile/patterns.md +0 -0
  338. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/vectorize/README.md +0 -0
  339. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/waf/README.md +0 -0
  340. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/waf/api.md +0 -0
  341. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/waf/configuration.md +0 -0
  342. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/waf/gotchas.md +0 -0
  343. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/waf/patterns.md +0 -0
  344. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/web-analytics/README.md +0 -0
  345. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/web-analytics/api.md +0 -0
  346. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/web-analytics/configuration.md +0 -0
  347. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/web-analytics/gotchas.md +0 -0
  348. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/web-analytics/patterns.md +0 -0
  349. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workerd/README.md +0 -0
  350. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workerd/api.md +0 -0
  351. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workerd/configuration.md +0 -0
  352. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workerd/gotchas.md +0 -0
  353. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workerd/patterns.md +0 -0
  354. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers/README.md +0 -0
  355. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers/api.md +0 -0
  356. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers/configuration.md +0 -0
  357. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers/gotchas.md +0 -0
  358. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers/patterns.md +0 -0
  359. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-ai/README.md +0 -0
  360. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-for-platforms/README.md +0 -0
  361. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-for-platforms/api.md +0 -0
  362. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-for-platforms/configuration.md +0 -0
  363. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-for-platforms/gotchas.md +0 -0
  364. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-for-platforms/patterns.md +0 -0
  365. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-playground/README.md +0 -0
  366. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-playground/api.md +0 -0
  367. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-playground/configuration.md +0 -0
  368. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-playground/gotchas.md +0 -0
  369. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-playground/patterns.md +0 -0
  370. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-vpc/README.md +0 -0
  371. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workflows/README.md +0 -0
  372. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workflows/api.md +0 -0
  373. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workflows/configuration.md +0 -0
  374. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workflows/gotchas.md +0 -0
  375. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workflows/patterns.md +0 -0
  376. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/wrangler/README.md +0 -0
  377. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/wrangler/api.md +0 -0
  378. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/wrangler/configuration.md +0 -0
  379. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/wrangler/gotchas.md +0 -0
  380. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/wrangler/patterns.md +0 -0
  381. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/zaraz/README.md +0 -0
  382. /package/dist/template/.opencode/{skills → skill}/condition-based-waiting/SKILL.md +0 -0
  383. /package/dist/template/.opencode/{skills → skill}/condition-based-waiting/example.ts +0 -0
  384. /package/dist/template/.opencode/{skills → skill}/context-engineering/SKILL.md +0 -0
  385. /package/dist/template/.opencode/{skills → skill}/deep-research/SKILL.md +0 -0
  386. /package/dist/template/.opencode/{skills → skill}/defense-in-depth/SKILL.md +0 -0
  387. /package/dist/template/.opencode/{skills → skill}/design-system-audit/SKILL.md +0 -0
  388. /package/dist/template/.opencode/{skills → skill}/dispatching-parallel-agents/SKILL.md +0 -0
  389. /package/dist/template/.opencode/{skills → skill}/executing-plans/SKILL.md +0 -0
  390. /package/dist/template/.opencode/{skills → skill}/figma/SKILL.md +0 -0
  391. /package/dist/template/.opencode/{skills → skill}/finishing-a-development-branch/SKILL.md +0 -0
  392. /package/dist/template/.opencode/{skills → skill}/frontend-design/SKILL.md +0 -0
  393. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/animation/motion-advanced.md +0 -0
  394. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/animation/motion-core.md +0 -0
  395. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/canvas/execution.md +0 -0
  396. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/canvas/philosophy.md +0 -0
  397. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/shadcn/accessibility.md +0 -0
  398. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/shadcn/core-components.md +0 -0
  399. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/shadcn/form-components.md +0 -0
  400. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/shadcn/setup.md +0 -0
  401. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/shadcn/theming.md +0 -0
  402. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/tailwind/responsive.md +0 -0
  403. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/tailwind/utilities-layout.md +0 -0
  404. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/tailwind/utilities-styling.md +0 -0
  405. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/tailwind/v4-config.md +0 -0
  406. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/tailwind/v4-features.md +0 -0
  407. /package/dist/template/.opencode/{skills → skill}/gemini-large-context/SKILL.md +0 -0
  408. /package/dist/template/.opencode/{skills → skill}/index-knowledge/SKILL.md +0 -0
  409. /package/dist/template/.opencode/{skills → skill}/memory-system/SKILL.md +0 -0
  410. /package/dist/template/.opencode/{skills → skill}/mockup-to-code/SKILL.md +0 -0
  411. /package/dist/template/.opencode/{skills → skill}/mqdh/SKILL.md +0 -0
  412. /package/dist/template/.opencode/{skills → skill}/notebooklm/SKILL.md +0 -0
  413. /package/dist/template/.opencode/{skills → skill}/notebooklm/references/setup.md +0 -0
  414. /package/dist/template/.opencode/{skills → skill}/opensrc/SKILL.md +0 -0
  415. /package/dist/template/.opencode/{skills → skill}/opensrc/references/architecture.md +0 -0
  416. /package/dist/template/.opencode/{skills → skill}/opensrc/references/cli-usage.md +0 -0
  417. /package/dist/template/.opencode/{skills → skill}/opensrc/references/registry-support.md +0 -0
  418. /package/dist/template/.opencode/{skills → skill}/playwright/SKILL.md +0 -0
  419. /package/dist/template/.opencode/{skills → skill}/playwright/mcp.json +0 -0
  420. /package/dist/template/.opencode/{skills → skill}/playwriter/SKILL.md +0 -0
  421. /package/dist/template/.opencode/{skills → skill}/polar/SKILL.md +0 -0
  422. /package/dist/template/.opencode/{skills → skill}/prd/SKILL.md +0 -0
  423. /package/dist/template/.opencode/{skills → skill}/prd-task/SKILL.md +0 -0
  424. /package/dist/template/.opencode/{skills → skill}/prd-task/references/prd-schema.json +0 -0
  425. /package/dist/template/.opencode/{skills → skill}/ralph/SKILL.md +0 -0
  426. /package/dist/template/.opencode/{skills → skill}/react-best-practices/AGENTS.md +0 -0
  427. /package/dist/template/.opencode/{skills → skill}/react-best-practices/README.md +0 -0
  428. /package/dist/template/.opencode/{skills → skill}/react-best-practices/SKILL.md +0 -0
  429. /package/dist/template/.opencode/{skills → skill}/react-best-practices/metadata.json +0 -0
  430. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/_sections.md +0 -0
  431. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/_template.md +0 -0
  432. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/advanced-event-handler-refs.md +0 -0
  433. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/advanced-use-latest.md +0 -0
  434. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/async-api-routes.md +0 -0
  435. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/async-defer-await.md +0 -0
  436. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/async-dependencies.md +0 -0
  437. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/async-parallel.md +0 -0
  438. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/async-suspense-boundaries.md +0 -0
  439. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/bundle-barrel-imports.md +0 -0
  440. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/bundle-conditional.md +0 -0
  441. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/bundle-defer-third-party.md +0 -0
  442. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/bundle-dynamic-imports.md +0 -0
  443. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/bundle-preload.md +0 -0
  444. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/client-event-listeners.md +0 -0
  445. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/client-localstorage-schema.md +0 -0
  446. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/client-passive-event-listeners.md +0 -0
  447. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/client-swr-dedup.md +0 -0
  448. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-batch-dom-css.md +0 -0
  449. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-cache-function-results.md +0 -0
  450. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-cache-property-access.md +0 -0
  451. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-cache-storage.md +0 -0
  452. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-combine-iterations.md +0 -0
  453. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-early-exit.md +0 -0
  454. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-hoist-regexp.md +0 -0
  455. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-index-maps.md +0 -0
  456. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-length-check-first.md +0 -0
  457. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-min-max-loop.md +0 -0
  458. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-set-map-lookups.md +0 -0
  459. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-tosorted-immutable.md +0 -0
  460. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-activity.md +0 -0
  461. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -0
  462. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-conditional-render.md +0 -0
  463. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-content-visibility.md +0 -0
  464. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-hoist-jsx.md +0 -0
  465. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-hydration-no-flicker.md +0 -0
  466. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-svg-precision.md +0 -0
  467. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-defer-reads.md +0 -0
  468. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-dependencies.md +0 -0
  469. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-derived-state.md +0 -0
  470. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-functional-setstate.md +0 -0
  471. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-lazy-state-init.md +0 -0
  472. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-memo.md +0 -0
  473. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-transitions.md +0 -0
  474. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/server-after-nonblocking.md +0 -0
  475. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/server-cache-lru.md +0 -0
  476. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/server-cache-react.md +0 -0
  477. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/server-parallel-fetching.md +0 -0
  478. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/server-serialization.md +0 -0
  479. /package/dist/template/.opencode/{skills → skill}/receiving-code-review/SKILL.md +0 -0
  480. /package/dist/template/.opencode/{skills → skill}/requesting-code-review/SKILL.md +0 -0
  481. /package/dist/template/.opencode/{skills → skill}/requesting-code-review/review.md +0 -0
  482. /package/dist/template/.opencode/{skills → skill}/root-cause-tracing/SKILL.md +0 -0
  483. /package/dist/template/.opencode/{skills → skill}/root-cause-tracing/find-polluter.sh +0 -0
  484. /package/dist/template/.opencode/{skills → skill}/session-management/SKILL.md +0 -0
  485. /package/dist/template/.opencode/{skills → skill}/sharing-skills/SKILL.md +0 -0
  486. /package/dist/template/.opencode/{skills → skill}/skill-creator/SKILL.md +0 -0
  487. /package/dist/template/.opencode/{skills → skill}/source-code-research/SKILL.md +0 -0
  488. /package/dist/template/.opencode/{skills → skill}/stitch/SKILL.md +0 -0
  489. /package/dist/template/.opencode/{skills → skill}/stitch/mcp.json +0 -0
  490. /package/dist/template/.opencode/{skills → skill}/subagent-driven-development/SKILL.md +0 -0
  491. /package/dist/template/.opencode/{skills → skill}/supabase/SKILL.md +0 -0
  492. /package/dist/template/.opencode/{skills → skill}/supabase/mcp.json +0 -0
  493. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/AGENTS.md +0 -0
  494. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/SKILL.md +0 -0
  495. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/advanced-full-text-search.md +0 -0
  496. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/advanced-jsonb-indexing.md +0 -0
  497. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/conn-idle-timeout.md +0 -0
  498. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/conn-limits.md +0 -0
  499. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/conn-pooling.md +0 -0
  500. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/conn-prepared-statements.md +0 -0
  501. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/data-batch-inserts.md +0 -0
  502. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/data-n-plus-one.md +0 -0
  503. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/data-pagination.md +0 -0
  504. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/data-upsert.md +0 -0
  505. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/lock-advisory.md +0 -0
  506. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/lock-deadlock-prevention.md +0 -0
  507. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/lock-short-transactions.md +0 -0
  508. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/lock-skip-locked.md +0 -0
  509. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/monitor-explain-analyze.md +0 -0
  510. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/monitor-pg-stat-statements.md +0 -0
  511. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/monitor-vacuum-analyze.md +0 -0
  512. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/query-composite-indexes.md +0 -0
  513. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/query-covering-indexes.md +0 -0
  514. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/query-index-types.md +0 -0
  515. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/query-missing-indexes.md +0 -0
  516. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/query-partial-indexes.md +0 -0
  517. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/schema-data-types.md +0 -0
  518. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/schema-foreign-key-indexes.md +0 -0
  519. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/schema-lowercase-identifiers.md +0 -0
  520. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/schema-partitioning.md +0 -0
  521. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/schema-primary-keys.md +0 -0
  522. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/security-privileges.md +0 -0
  523. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/security-rls-basics.md +0 -0
  524. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/security-rls-performance.md +0 -0
  525. /package/dist/template/.opencode/{skills → skill}/systematic-debugging/SKILL.md +0 -0
  526. /package/dist/template/.opencode/{skills → skill}/test-driven-development/SKILL.md +0 -0
  527. /package/dist/template/.opencode/{skills → skill}/testing-anti-patterns/SKILL.md +0 -0
  528. /package/dist/template/.opencode/{skills → skill}/testing-skills-with-subagents/SKILL.md +0 -0
  529. /package/dist/template/.opencode/{skills → skill}/ui-ux-research/SKILL.md +0 -0
  530. /package/dist/template/.opencode/{skills → skill}/using-git-worktrees/SKILL.md +0 -0
  531. /package/dist/template/.opencode/{skills → skill}/using-skills/SKILL.md +0 -0
  532. /package/dist/template/.opencode/{skills → skill}/v0/SKILL.md +0 -0
  533. /package/dist/template/.opencode/{skills → skill}/vercel-deploy-claimable/SKILL.md +0 -0
  534. /package/dist/template/.opencode/{skills → skill}/vercel-deploy-claimable/scripts/deploy.sh +0 -0
  535. /package/dist/template/.opencode/{skills → skill}/verification-before-completion/SKILL.md +0 -0
  536. /package/dist/template/.opencode/{skills → skill}/visual-analysis/SKILL.md +0 -0
  537. /package/dist/template/.opencode/{skills → skill}/web-design-guidelines/SKILL.md +0 -0
  538. /package/dist/template/.opencode/{skills → skill}/writing-plans/SKILL.md +0 -0
  539. /package/dist/template/.opencode/{skills → skill}/writing-skills/SKILL.md +0 -0
  540. /package/dist/template/.opencode/{skills → skill}/writing-skills/anthropic-best-practices.md +0 -0
  541. /package/dist/template/.opencode/{skills → skill}/writing-skills/graphviz-conventions.dot +0 -0
  542. /package/dist/template/.opencode/{skills → skill}/writing-skills/persuasion-principles.md +0 -0
  543. /package/dist/template/.opencode/{tools → tool}/context7-query-docs.ts +0 -0
  544. /package/dist/template/.opencode/{tools → tool}/context7-resolve-library-id.ts +0 -0
  545. /package/dist/template/.opencode/{tools → tool}/grepsearch.ts +0 -0
  546. /package/dist/template/.opencode/{tools → tool}/memory-read.ts +0 -0
  547. /package/dist/template/.opencode/{tools → tool}/memory-search.ts +0 -0
  548. /package/dist/template/.opencode/{tools → tool}/memory-update.ts +0 -0
  549. /package/dist/template/.opencode/{tools → tool}/notebooklm.ts +0 -0
  550. /package/dist/template/.opencode/{tools → tool}/observation.ts +0 -0
  551. /package/dist/template/.opencode/{tools → tool}/oracle.ts +0 -0
@@ -11,10 +11,10 @@
11
11
  "type-check": "tsc --noEmit"
12
12
  },
13
13
  "dependencies": {
14
- "@opencode-ai/plugin": "1.1.47"
14
+ "@opencode-ai/plugin": "1.1.48"
15
15
  },
16
16
  "devDependencies": {
17
- "@types/node": "^25.0.3",
17
+ "@types/node": "^25.1.0",
18
18
  "typescript": "^5.9.3"
19
19
  }
20
20
  }
@@ -7,8 +7,8 @@
7
7
  * The Copilot API accepts this parameter and returns reasoning in the response.
8
8
  *
9
9
  * NOTE: Response parsing for reasoning_text/reasoning_opaque is handled by
10
- * the @ai-sdk/github-copilot SDK if it supports it, or will need additional
11
- * response transformation.
10
+ * the custom SDK at .opencode/plugin/sdk/copilot/ which properly converts
11
+ * these fields to AI SDK's reasoning content parts.
12
12
  */
13
13
 
14
14
  import type { Plugin } from "@opencode-ai/plugin";
@@ -101,151 +101,6 @@ function calculateRetryDelay(attempt: number): number {
101
101
  return Math.round(delay);
102
102
  }
103
103
 
104
- /**
105
- * Transform a streaming SSE response to convert reasoning_text/reasoning_opaque
106
- * to proper reasoning content parts that the AI SDK can understand.
107
- *
108
- * Copilot returns reasoning in these fields:
109
- * - reasoning_text: The actual reasoning content (visible thinking)
110
- * - reasoning_opaque: Encrypted/opaque reasoning data
111
- *
112
- * We convert these to OpenAI-style content parts with type "reasoning"
113
- */
114
- function transformStreamingResponse(
115
- body: ReadableStream<Uint8Array>,
116
- ): ReadableStream<Uint8Array> {
117
- const reader = body.getReader();
118
- const encoder = new TextEncoder();
119
- const decoder = new TextDecoder();
120
-
121
- let buffer = "";
122
-
123
- return new ReadableStream({
124
- async pull(controller) {
125
- try {
126
- const { done, value } = await reader.read();
127
-
128
- if (done) {
129
- // Process any remaining buffer
130
- if (buffer.trim()) {
131
- const transformed = transformSSEChunk(buffer);
132
- if (transformed) {
133
- controller.enqueue(encoder.encode(transformed));
134
- }
135
- }
136
- controller.close();
137
- return;
138
- }
139
-
140
- // Decode and add to buffer
141
- buffer += decoder.decode(value, { stream: true });
142
-
143
- // Process complete SSE events (separated by double newlines)
144
- const events = buffer.split("\n\n");
145
- buffer = events.pop() || ""; // Keep incomplete event in buffer
146
-
147
- for (const event of events) {
148
- if (event.trim()) {
149
- const transformed = transformSSEChunk(event);
150
- if (transformed) {
151
- controller.enqueue(encoder.encode(transformed + "\n\n"));
152
- }
153
- }
154
- }
155
- } catch (error) {
156
- controller.error(error);
157
- }
158
- },
159
- cancel() {
160
- reader.cancel();
161
- },
162
- });
163
- }
164
-
165
- /**
166
- * Transform a single SSE chunk to include reasoning content
167
- */
168
- function transformSSEChunk(chunk: string): string {
169
- // Parse the SSE event
170
- const lines = chunk.split("\n");
171
- let eventType = "";
172
- let data = "";
173
-
174
- for (const line of lines) {
175
- if (line.startsWith("event:")) {
176
- eventType = line.slice(6).trim();
177
- } else if (line.startsWith("data:")) {
178
- data = line.slice(5).trim();
179
- }
180
- }
181
-
182
- // Skip non-data events or [DONE] marker
183
- if (!data || data === "[DONE]") {
184
- return chunk;
185
- }
186
-
187
- try {
188
- const json = JSON.parse(data);
189
-
190
- // Check if this chunk has reasoning data
191
- if (json.choices && json.choices.length > 0) {
192
- const choice = json.choices[0];
193
- const delta = choice.delta || {};
194
-
195
- // Extract reasoning fields from Copilot response
196
- const reasoningText = delta.reasoning_text || json.reasoning_text;
197
-
198
- if (reasoningText) {
199
- log("debug", "Found reasoning_text in streaming response");
200
-
201
- // The AI SDK expects "reasoning" to be a plain string, not an object
202
- delta.reasoning = reasoningText;
203
-
204
- // Remove the original reasoning_text field to avoid confusion
205
- delete delta.reasoning_text;
206
- delete json.reasoning_text;
207
-
208
- // Rebuild the SSE event
209
- const newData = JSON.stringify(json);
210
- return eventType
211
- ? `event: ${eventType}\ndata: ${newData}`
212
- : `data: ${newData}`;
213
- }
214
- }
215
- } catch {
216
- // Not valid JSON, return as-is
217
- }
218
-
219
- return chunk;
220
- }
221
-
222
- /**
223
- * Transform a non-streaming JSON response to include reasoning content
224
- */
225
- function transformNonStreamingResponse(json: any): any {
226
- if (!json.choices || json.choices.length === 0) {
227
- return json;
228
- }
229
-
230
- // Check for reasoning in the response
231
- const reasoningText = json.reasoning_text;
232
-
233
- if (reasoningText) {
234
- log("debug", "Found reasoning_text in non-streaming response");
235
-
236
- // Add reasoning as a plain string to the message
237
- const choice = json.choices[0];
238
- if (choice.message) {
239
- choice.message.reasoning = reasoningText;
240
- }
241
-
242
- // Remove original field
243
- delete json.reasoning_text;
244
- }
245
-
246
- return json;
247
- }
248
-
249
104
  export const CopilotAuthPlugin: Plugin = async ({ client: sdk }) => {
250
105
  // Initialize logger with the SDK client
251
106
  setLogger(sdk);
@@ -264,7 +119,7 @@ export const CopilotAuthPlugin: Plugin = async ({ client: sdk }) => {
264
119
  : undefined;
265
120
 
266
121
  if (provider && provider.models) {
267
- for (const [modelId, model] of Object.entries(provider.models)) {
122
+ for (const [_modelId, model] of Object.entries(provider.models)) {
268
123
  model.cost = {
269
124
  input: 0,
270
125
  output: 0,
@@ -277,7 +132,7 @@ export const CopilotAuthPlugin: Plugin = async ({ client: sdk }) => {
277
132
  // All models use the standard github-copilot SDK
278
133
  // Reasoning support for Claude models is handled via:
279
134
  // 1. The fetch wrapper adds thinking_budget to request body
280
- // 2. Response parsing extracts reasoning_text/reasoning_opaque fields
135
+ // 2. The fetch wrapper strips invalid thinking blocks from messages
281
136
  model.api.npm = "@ai-sdk/github-copilot";
282
137
  }
283
138
  }
@@ -323,8 +178,74 @@ export const CopilotAuthPlugin: Plugin = async ({ client: sdk }) => {
323
178
  if (isClaudeModel) {
324
179
  // Use configured thinking_budget from model options, or default to 10000
325
180
  const thinkingBudget = body.thinking_budget || 10000;
181
+
182
+ // Fix for "Invalid signature in thinking block" error:
183
+ // The Copilot API uses reasoning_text/reasoning_opaque format for thinking
184
+ // When these are passed back without proper signature, it causes errors
185
+ // Solution: Ensure reasoning_opaque is present when reasoning_text exists,
186
+ // or remove reasoning content entirely if signature is invalid/missing
187
+ const cleanedMessages = body.messages.map(
188
+ (msg: any, idx: number) => {
189
+ if (msg.role !== "assistant") return msg;
190
+
191
+ // Log message structure for debugging
192
+ log("debug", `Processing assistant message ${idx}`, {
193
+ has_reasoning_text: !!msg.reasoning_text,
194
+ has_reasoning_opaque: !!msg.reasoning_opaque,
195
+ content_type: typeof msg.content,
196
+ content_is_array: Array.isArray(msg.content),
197
+ });
198
+
199
+ // If message has reasoning_text but no/invalid reasoning_opaque, remove reasoning
200
+ if (msg.reasoning_text && !msg.reasoning_opaque) {
201
+ log(
202
+ "warn",
203
+ `Removing reasoning_text without reasoning_opaque from message ${idx}`,
204
+ );
205
+ const { reasoning_text: _unused, ...cleanedMsg } = msg;
206
+ return cleanedMsg;
207
+ }
208
+
209
+ // If content is an array, check for thinking blocks
210
+ if (Array.isArray(msg.content)) {
211
+ const hasThinkingBlock = msg.content.some(
212
+ (part: any) => part.type === "thinking",
213
+ );
214
+ if (hasThinkingBlock) {
215
+ log(
216
+ "debug",
217
+ `Message ${idx} has thinking blocks in content array`,
218
+ );
219
+ // Filter out thinking blocks without signatures
220
+ const cleanedContent = msg.content.filter(
221
+ (part: any) => {
222
+ if (part.type === "thinking") {
223
+ if (!part.signature) {
224
+ log(
225
+ "warn",
226
+ `Removing thinking block without signature`,
227
+ );
228
+ return false;
229
+ }
230
+ }
231
+ return true;
232
+ },
233
+ );
234
+ return {
235
+ ...msg,
236
+ content:
237
+ cleanedContent.length > 0 ? cleanedContent : null,
238
+ };
239
+ }
240
+ }
241
+
242
+ return msg;
243
+ },
244
+ );
245
+
326
246
  modifiedBody = {
327
247
  ...body,
248
+ messages: cleanedMessages,
328
249
  thinking_budget: thinkingBudget,
329
250
  };
330
251
  log("info", `Adding thinking_budget for Claude model`, {
@@ -332,6 +253,40 @@ export const CopilotAuthPlugin: Plugin = async ({ client: sdk }) => {
332
253
  thinking_budget: thinkingBudget,
333
254
  });
334
255
  }
256
+
257
+ // For GPT models (o1, gpt-5, etc.), add reasoning parameter
258
+ const isGptModel =
259
+ modelId.toLowerCase().includes("gpt") ||
260
+ modelId.toLowerCase().includes("o1") ||
261
+ modelId.toLowerCase().includes("o3") ||
262
+ modelId.toLowerCase().includes("o4");
263
+
264
+ if (isGptModel && !isClaudeModel) {
265
+ // Get reasoning effort from body options or default to "medium"
266
+ const reasoningEffort =
267
+ body.reasoning?.effort ||
268
+ body.reasoningEffort ||
269
+ body.reasoning_effort ||
270
+ "medium";
271
+
272
+ modifiedBody = {
273
+ ...(modifiedBody || body),
274
+ reasoning: {
275
+ effort: reasoningEffort,
276
+ },
277
+ };
278
+
279
+ // Also pass through other reasoning options if present
280
+ if (body.reasoningSummary || body.reasoning?.summary) {
281
+ modifiedBody.reasoning.summary =
282
+ body.reasoningSummary || body.reasoning?.summary;
283
+ }
284
+
285
+ log("info", `Adding reasoning for GPT model`, {
286
+ model: modelId,
287
+ reasoning_effort: reasoningEffort,
288
+ });
289
+ }
335
290
  }
336
291
 
337
292
  // Responses API
@@ -421,34 +376,9 @@ export const CopilotAuthPlugin: Plugin = async ({ client: sdk }) => {
421
376
  continue;
422
377
  }
423
378
 
424
- // For Claude models with streaming, transform the response to include reasoning
425
- if (isClaudeModel && response.ok && response.body) {
426
- const contentType =
427
- response.headers.get("content-type") || "";
428
- const isStreaming = contentType.includes("text/event-stream");
429
-
430
- if (isStreaming) {
431
- // Transform streaming response to convert reasoning_text to reasoning content
432
- const transformedBody = transformStreamingResponse(
433
- response.body,
434
- );
435
- return new Response(transformedBody, {
436
- status: response.status,
437
- statusText: response.statusText,
438
- headers: response.headers,
439
- });
440
- } else {
441
- // Non-streaming: transform JSON response
442
- const json = await response.json();
443
- const transformedJson = transformNonStreamingResponse(json);
444
- return new Response(JSON.stringify(transformedJson), {
445
- status: response.status,
446
- statusText: response.statusText,
447
- headers: response.headers,
448
- });
449
- }
450
- }
451
-
379
+ // Response transformation is now handled by the custom SDK at
380
+ // .opencode/plugin/sdk/copilot/ which properly parses reasoning_text/reasoning_opaque
381
+ // and converts them to AI SDK's reasoning content parts
452
382
  return response;
453
383
  } catch (error) {
454
384
  lastError = error as Error;
@@ -21,7 +21,7 @@ import {
21
21
  parseProviderOptions,
22
22
  postJsonToApi,
23
23
  } from "@ai-sdk/provider-utils";
24
- import { z } from "zod";
24
+ import { z } from "zod/v4";
25
25
  import {
26
26
  type ProviderErrorStructure,
27
27
  defaultOpenAICompatibleErrorStructure,
@@ -397,6 +397,7 @@ export class OpenAICompatibleChatLanguageModel implements LanguageModelV2 {
397
397
  controller.enqueue({ type: "stream-start", warnings });
398
398
  },
399
399
 
400
+ // TODO we lost type safety on Chunk, most likely due to the error schema. MUST FIX
400
401
  transform(chunk, controller) {
401
402
  // Emit raw chunk if requested (before anything else)
402
403
  if (options.includeRawChunks) {
@@ -512,6 +513,7 @@ export class OpenAICompatibleChatLanguageModel implements LanguageModelV2 {
512
513
 
513
514
  if (delta.content) {
514
515
  // If reasoning was active and we're starting text, end reasoning first
516
+ // This handles the case where reasoning_opaque and content come in the same chunk
515
517
  if (isActiveReasoning && !isActiveText) {
516
518
  controller.enqueue({
517
519
  type: "reasoning-end",
@@ -537,6 +539,7 @@ export class OpenAICompatibleChatLanguageModel implements LanguageModelV2 {
537
539
 
538
540
  if (delta.tool_calls != null) {
539
541
  // If reasoning was active and we're starting tool calls, end reasoning first
542
+ // This handles the case where reasoning goes directly to tool calls with no content
540
543
  if (isActiveReasoning) {
541
544
  controller.enqueue({
542
545
  type: "reasoning-end",
@@ -597,6 +600,7 @@ export class OpenAICompatibleChatLanguageModel implements LanguageModelV2 {
597
600
  }
598
601
 
599
602
  // check if tool call is complete
603
+ // (some providers send the full tool call in one chunk):
600
604
  if (isParsableJson(toolCall.function.arguments)) {
601
605
  controller.enqueue({
602
606
  type: "tool-input-end",
@@ -663,6 +667,7 @@ export class OpenAICompatibleChatLanguageModel implements LanguageModelV2 {
663
667
  controller.enqueue({
664
668
  type: "reasoning-end",
665
669
  id: "reasoning-0",
670
+ // Include reasoning_opaque for Copilot multi-turn reasoning
666
671
  providerMetadata: reasoningOpaque
667
672
  ? { copilot: { reasoningOpaque } }
668
673
  : undefined,
@@ -692,6 +697,7 @@ export class OpenAICompatibleChatLanguageModel implements LanguageModelV2 {
692
697
 
693
698
  const providerMetadata: SharedV2ProviderMetadata = {
694
699
  [providerOptionsName]: {},
700
+ // Include reasoning_opaque for Copilot multi-turn reasoning
695
701
  ...(reasoningOpaque ? { copilot: { reasoningOpaque } } : {}),
696
702
  ...metadataExtractor?.buildMetadata(),
697
703
  };
@@ -752,6 +758,7 @@ const openaiCompatibleTokenUsageSchema = z
752
758
  .nullish();
753
759
 
754
760
  // limited version of the schema, focussed on what is needed for the implementation
761
+ // this approach limits breakages when the API changes and increases efficiency
755
762
  const OpenAICompatibleChatResponseSchema = z.object({
756
763
  id: z.string().nullish(),
757
764
  created: z.number().nullish(),
@@ -783,7 +790,10 @@ const OpenAICompatibleChatResponseSchema = z.object({
783
790
  });
784
791
 
785
792
  // limited version of the schema, focussed on what is needed for the implementation
786
- const createOpenAICompatibleChatChunkSchema = <ERROR_SCHEMA extends z.ZodType>(
793
+ // this approach limits breakages when the API changes and increases efficiency
794
+ const createOpenAICompatibleChatChunkSchema = <
795
+ ERROR_SCHEMA extends z.core.$ZodType,
796
+ >(
787
797
  errorSchema: ERROR_SCHEMA,
788
798
  ) =>
789
799
  z.union([
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from "zod/v4";
2
2
 
3
3
  export type OpenAICompatibleChatModelId = string;
4
4
 
@@ -1,4 +1,4 @@
1
- import { type ZodType, z } from "zod";
1
+ import { type ZodType, z } from "zod/v4";
2
2
 
3
3
  export const openaiCompatibleErrorDataSchema = z.object({
4
4
  error: z.object({
@@ -71,13 +71,6 @@ function isIgnoredPath(repoDir: string, filePath: string): boolean {
71
71
  );
72
72
  }
73
73
 
74
- function summarizeIssues(issues: BeadsIssue[], limit = 5): string {
75
- return issues
76
- .slice(0, limit)
77
- .map((i) => `${i.id}${i.title ? `: ${i.title}` : ""}`)
78
- .join("\n");
79
- }
80
-
81
74
  async function readIssuesJsonl(repoDir: string): Promise<BeadsIssue[]> {
82
75
  const issuesPath = path.join(repoDir, BEADS_DIR, ISSUES_FILE);
83
76
 
@@ -135,27 +128,29 @@ function buildNudge(params: {
135
128
  if (inProgress.length === 0) {
136
129
  return `
137
130
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
138
- ⚡ [SWARM PROTOCOL]
131
+ ⚡ [BEADS PROTOCOL]
139
132
 
140
- Beads is the swarm board. Before any code changes:
133
+ Pick a task before code changes:
141
134
 
142
- 1) Pick a task: \`bd ready\` (or \`bd list\`)
143
- 2) Inspect: \`bd show <id>\`
144
- 3) Claim: \`bd update <id> --status=in_progress\`
135
+ 1) \`bd ready\` find unblocked work
136
+ 2) \`bd show <id>\` → inspect task
137
+ 3) \`bd update <id> --status=in_progress\` → claim it
145
138
 
146
- Then proceed with work and collect verification evidence.
139
+ For parallel work, use the Task tool to spawn subagents.
147
140
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
148
141
  `;
149
142
  }
150
143
 
151
144
  if (missingSpec.length > 0) {
145
+ const ids = missingSpec
146
+ .slice(0, 3)
147
+ .map((i) => i.id)
148
+ .join(", ");
152
149
  return `
153
150
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
154
- ⚡ [SWARM PROTOCOL]
155
-
156
- In-progress Beads exist, but \`spec.md\` is missing for:
151
+ ⚡ [BEADS PROTOCOL]
157
152
 
158
- ${summarizeIssues(missingSpec)}
153
+ Missing \`spec.md\` for: ${ids}
159
154
 
160
155
  Create \`.beads/artifacts/<id>/spec.md\` before implementation.
161
156
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
@@ -232,7 +227,7 @@ export const SwarmEnforcer: Plugin = async ({ client, directory }) => {
232
227
  if (!nudge) return;
233
228
 
234
229
  parts.push({
235
- id: `swarm-nudge-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
230
+ id: `beads-nudge-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
236
231
  sessionID,
237
232
  messageID: messageID || "",
238
233
  type: "text",
@@ -257,8 +252,8 @@ export const SwarmEnforcer: Plugin = async ({ client, directory }) => {
257
252
 
258
253
  if (cachedInProgress.length === 0) {
259
254
  await showToast(
260
- "Swarm: No task claimed",
261
- "Beads is the board. Claim a task before code edits (bd ready/show/update).",
255
+ "Beads: No task claimed",
256
+ "Run bd ready/show/update to claim a task before edits.",
262
257
  "warning",
263
258
  );
264
259
  return;
@@ -266,7 +261,7 @@ export const SwarmEnforcer: Plugin = async ({ client, directory }) => {
266
261
 
267
262
  if (cachedMissingSpec.length > 0) {
268
263
  await showToast(
269
- "Swarm: Missing spec.md",
264
+ "Beads: Missing spec.md",
270
265
  `Create .beads/artifacts/<id>/spec.md for: ${cachedMissingSpec
271
266
  .slice(0, 3)
272
267
  .map((i) => i.id)
@@ -286,8 +281,8 @@ export const SwarmEnforcer: Plugin = async ({ client, directory }) => {
286
281
  .map((i) => i.id)
287
282
  .join(", ");
288
283
  await showToast(
289
- "Swarm: Work still in progress",
290
- `In-progress Beads: ${list}. Close with bd close + bd sync when done.`,
284
+ "Beads: Work still in progress",
285
+ `In-progress: ${list}. Close with bd close + bd sync when done.`,
291
286
  "info",
292
287
  );
293
288
  },
@@ -497,6 +497,47 @@ bd_inbox({ unread: true });
497
497
  bd_claim(); // Gets frontend task that was waiting on API
498
498
  ```
499
499
 
500
+ ## Multi-Agent Coordination (Swarm Mode)
501
+
502
+ For parallel execution with multiple subagents, use the **beads-bridge** skill:
503
+
504
+ ```typescript
505
+ skill({ name: "beads-bridge" });
506
+ ```
507
+
508
+ **beads-bridge** provides:
509
+
510
+ - `beads-sync` - Sync Beads tasks to OpenCode todos for subagent visibility
511
+ - `swarm-monitor` - Real-time progress tracking and visualization
512
+ - `swarm-plan` - Task classification and dependency analysis
513
+ - `swarm-delegate` - Create delegation packets for workers
514
+
515
+ **When to use beads vs beads-bridge:**
516
+
517
+ | Scenario | Use |
518
+ | ------------------------------ | -------------------------------- |
519
+ | Single agent, linear work | `beads` skill only |
520
+ | Multiple agents in parallel | `beads-bridge` + `beads` |
521
+ | Need subagents to see tasks | `beads-bridge` (beads-sync push) |
522
+ | Track worker progress visually | `beads-bridge` (swarm-monitor) |
523
+
524
+ **Example swarm workflow:**
525
+
526
+ ```typescript
527
+ // 1. Push beads to OpenCode todos (subagents can see via todoread)
528
+ beads_sync({ operation: "push" });
529
+
530
+ // 2. Spawn workers in parallel using Task tool
531
+ Task({ subagent_type: "general", description: "Worker 1", prompt: "..." });
532
+ Task({ subagent_type: "general", description: "Worker 2", prompt: "..." });
533
+
534
+ // 3. Monitor progress
535
+ swarm_monitor({ operation: "render_block", team_name: "my-swarm" });
536
+
537
+ // 4. Pull completed work back to beads
538
+ beads_sync({ operation: "pull" });
539
+ ```
540
+
500
541
  ## Rules
501
542
 
502
543
  1. **Always `bd_init()` first** - Required before any other bd\_\* tool