opencodekit 0.15.19 → 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 (557) 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-30-discovery-context-management-research-critical-gap.md +14 -0
  11. package/dist/template/.opencode/memory/observations/2026-01-31-decision-copilot-auth-plugin-updated-with-baseurl.md +63 -0
  12. package/dist/template/.opencode/memory/observations/2026-01-31-decision-created-dedicated-worker-agent-for-swarm.md +20 -0
  13. package/dist/template/.opencode/memory/observations/2026-01-31-decision-rollback-to-v1-1-47-for-copilot-claude-r.md +21 -0
  14. package/dist/template/.opencode/memory/observations/2026-01-31-decision-simplified-swarm-to-task-tool-pattern.md +44 -0
  15. package/dist/template/.opencode/memory/observations/2026-01-31-decision-swarm-architecture-task-tool-over-tmux.md +33 -0
  16. package/dist/template/.opencode/memory/observations/2026-01-31-decision-worker-skills-defined-for-swarm-delegati.md +30 -0
  17. package/dist/template/.opencode/memory/observations/2026-01-31-learning-gpt-reasoning-config-for-github-copilot.md +51 -0
  18. package/dist/template/.opencode/memory/observations/2026-01-31-learning-opencode-copilot-auth-comparison-finding.md +61 -0
  19. package/dist/template/.opencode/memory/observations/2026-01-31-learning-opencode-copilot-reasoning-architecture-.md +66 -0
  20. package/dist/template/.opencode/memory/observations/2026-01-31-learning-opencode-custom-tools-api.md +48 -0
  21. package/dist/template/.opencode/memory/observations/2026-01-31-learning-opencode-v1-1-48-skills-as-slash-command.md +21 -0
  22. package/dist/template/.opencode/memory/observations/2026-01-31-learning-swarm-system-simplified-removed-mailbox-.md +30 -0
  23. package/dist/template/.opencode/memory/observations/2026-01-31-learning-v1-1-48-native-copilot-reasoning-via-pr-.md +45 -0
  24. package/dist/template/.opencode/memory/observations/2026-01-31-warning-cannot-add-custom-config-to-opencode-jso.md +18 -0
  25. package/dist/template/.opencode/memory/observations/2026-01-31-warning-copilot-claude-v1-endpoint-returns-404-c.md +48 -0
  26. package/dist/template/.opencode/memory/observations/2026-01-31-warning-opencode-v1-1-48-claude-thinking-block-s.md +51 -0
  27. package/dist/template/.opencode/memory/research/context-management-analysis.md +685 -0
  28. package/dist/template/.opencode/opencode.json +803 -909
  29. package/dist/template/.opencode/package.json +2 -2
  30. package/dist/template/.opencode/{plugins → plugin}/copilot-auth.ts +219 -24
  31. package/dist/template/.opencode/plugin/sdk/copilot/chat/convert-to-openai-compatible-chat-messages.ts +181 -0
  32. package/dist/template/.opencode/plugin/sdk/copilot/chat/get-response-metadata.ts +15 -0
  33. package/dist/template/.opencode/plugin/sdk/copilot/chat/map-openai-compatible-finish-reason.ts +19 -0
  34. package/dist/template/.opencode/plugin/sdk/copilot/chat/openai-compatible-api-types.ts +72 -0
  35. package/dist/template/.opencode/plugin/sdk/copilot/chat/openai-compatible-chat-language-model.ts +833 -0
  36. package/dist/template/.opencode/plugin/sdk/copilot/chat/openai-compatible-chat-options.ts +30 -0
  37. package/dist/template/.opencode/plugin/sdk/copilot/chat/openai-compatible-metadata-extractor.ts +48 -0
  38. package/dist/template/.opencode/plugin/sdk/copilot/chat/openai-compatible-prepare-tools.ts +92 -0
  39. package/dist/template/.opencode/plugin/sdk/copilot/copilot-provider.ts +94 -0
  40. package/dist/template/.opencode/plugin/sdk/copilot/index.ts +5 -0
  41. package/dist/template/.opencode/plugin/sdk/copilot/openai-compatible-error.ts +30 -0
  42. package/dist/template/.opencode/{plugins → plugin}/swarm-enforcer.ts +18 -23
  43. package/dist/template/.opencode/{skills → skill}/beads/SKILL.md +41 -0
  44. package/dist/template/.opencode/skill/beads-bridge/SKILL.md +294 -0
  45. package/dist/template/.opencode/skill/resend/SKILL.md +167 -0
  46. package/dist/template/.opencode/skill/resend/references/react-email.md +287 -0
  47. package/dist/template/.opencode/skill/resend/references/receive-email.md +248 -0
  48. package/dist/template/.opencode/skill/resend/references/send-email.md +318 -0
  49. package/dist/template/.opencode/skill/swarm-coordination/SKILL.md +690 -0
  50. package/dist/template/.opencode/skill/tool-priority/SKILL.md +259 -0
  51. package/dist/template/.opencode/tool/beads-sync.ts +657 -0
  52. package/dist/template/.opencode/{tools → tool}/swarm-delegate.ts +13 -8
  53. package/dist/template/.opencode/{tools → tool}/swarm-monitor.ts +14 -170
  54. package/dist/template/.opencode/{tools → tool}/swarm-plan.ts +232 -1
  55. package/package.json +3 -1
  56. package/dist/template/.opencode/agents/build.md +0 -584
  57. package/dist/template/.opencode/skills/swarm-coordination/SKILL.md +0 -548
  58. package/dist/template/.opencode/skills/tool-priority/SKILL.md +0 -190
  59. /package/dist/template/.opencode/{agents → agent}/explore.md +0 -0
  60. /package/dist/template/.opencode/{agents → agent}/general.md +0 -0
  61. /package/dist/template/.opencode/{agents → agent}/looker.md +0 -0
  62. /package/dist/template/.opencode/{agents → agent}/painter.md +0 -0
  63. /package/dist/template/.opencode/{agents → agent}/plan.md +0 -0
  64. /package/dist/template/.opencode/{agents → agent}/review.md +0 -0
  65. /package/dist/template/.opencode/{agents → agent}/scout.md +0 -0
  66. /package/dist/template/.opencode/{agents → agent}/vision.md +0 -0
  67. /package/dist/template/.opencode/{commands → command}/accessibility-check.md +0 -0
  68. /package/dist/template/.opencode/{commands → command}/agent-browser.md +0 -0
  69. /package/dist/template/.opencode/{commands → command}/analyze-mockup.md +0 -0
  70. /package/dist/template/.opencode/{commands → command}/analyze-project.md +0 -0
  71. /package/dist/template/.opencode/{commands → command}/brainstorm.md +0 -0
  72. /package/dist/template/.opencode/{commands → command}/cloudflare.md +0 -0
  73. /package/dist/template/.opencode/{commands → command}/commit.md +0 -0
  74. /package/dist/template/.opencode/{commands → command}/complete-next-task.md +0 -0
  75. /package/dist/template/.opencode/{commands → command}/create.md +0 -0
  76. /package/dist/template/.opencode/{commands → command}/design-audit.md +0 -0
  77. /package/dist/template/.opencode/{commands → command}/design.md +0 -0
  78. /package/dist/template/.opencode/{commands → command}/edit-image.md +0 -0
  79. /package/dist/template/.opencode/{commands → command}/fix-ci.md +0 -0
  80. /package/dist/template/.opencode/{commands → command}/fix-types.md +0 -0
  81. /package/dist/template/.opencode/{commands → command}/fix-ui.md +0 -0
  82. /package/dist/template/.opencode/{commands → command}/fix.md +0 -0
  83. /package/dist/template/.opencode/{commands → command}/frontend-design.md +0 -0
  84. /package/dist/template/.opencode/{commands → command}/generate-diagram.md +0 -0
  85. /package/dist/template/.opencode/{commands → command}/generate-icon.md +0 -0
  86. /package/dist/template/.opencode/{commands → command}/generate-image.md +0 -0
  87. /package/dist/template/.opencode/{commands → command}/generate-pattern.md +0 -0
  88. /package/dist/template/.opencode/{commands → command}/generate-storyboard.md +0 -0
  89. /package/dist/template/.opencode/{commands → command}/import-plan.md +0 -0
  90. /package/dist/template/.opencode/{commands → command}/index-knowledge.md +0 -0
  91. /package/dist/template/.opencode/{commands → command}/init.md +0 -0
  92. /package/dist/template/.opencode/{commands → command}/integration-test.md +0 -0
  93. /package/dist/template/.opencode/{commands → command}/issue.md +0 -0
  94. /package/dist/template/.opencode/{commands → command}/opensrc.md +0 -0
  95. /package/dist/template/.opencode/{commands → command}/plan.md +0 -0
  96. /package/dist/template/.opencode/{commands → command}/pr.md +0 -0
  97. /package/dist/template/.opencode/{commands → command}/quick-build.md +0 -0
  98. /package/dist/template/.opencode/{commands → command}/ralph.md +0 -0
  99. /package/dist/template/.opencode/{commands → command}/research-and-implement.md +0 -0
  100. /package/dist/template/.opencode/{commands → command}/research-ui.md +0 -0
  101. /package/dist/template/.opencode/{commands → command}/restore-image.md +0 -0
  102. /package/dist/template/.opencode/{commands → command}/revert-feature.md +0 -0
  103. /package/dist/template/.opencode/{commands → command}/review-codebase.md +0 -0
  104. /package/dist/template/.opencode/{commands → command}/skill-create.md +0 -0
  105. /package/dist/template/.opencode/{commands → command}/skill-optimize.md +0 -0
  106. /package/dist/template/.opencode/{commands → command}/status.md +0 -0
  107. /package/dist/template/.opencode/{commands → command}/summarize.md +0 -0
  108. /package/dist/template/.opencode/{commands → command}/triage.md +0 -0
  109. /package/dist/template/.opencode/{commands → command}/ui-review.md +0 -0
  110. /package/dist/template/.opencode/{plugins → plugin}/README.md +0 -0
  111. /package/dist/template/.opencode/{plugins → plugin}/compaction.ts +0 -0
  112. /package/dist/template/.opencode/{plugins → plugin}/env-ctx.ts +0 -0
  113. /package/dist/template/.opencode/{plugins → plugin}/lib/notify.ts +0 -0
  114. /package/dist/template/.opencode/{plugins → plugin}/lsp.ts +0 -0
  115. /package/dist/template/.opencode/{plugins → plugin}/memory.ts +0 -0
  116. /package/dist/template/.opencode/{plugins → plugin}/notification.ts.bak +0 -0
  117. /package/dist/template/.opencode/{plugins → plugin}/package.json +0 -0
  118. /package/dist/template/.opencode/{plugins → plugin}/sessions.ts +0 -0
  119. /package/dist/template/.opencode/{plugins → plugin}/skill-mcp.ts +0 -0
  120. /package/dist/template/.opencode/{plugins → plugin}/truncator.ts +0 -0
  121. /package/dist/template/.opencode/{plugins → plugin}/tsconfig.json +0 -0
  122. /package/dist/template/.opencode/{skills → skill}/accessibility-audit/SKILL.md +0 -0
  123. /package/dist/template/.opencode/{skills → skill}/agent-browser/SKILL.md +0 -0
  124. /package/dist/template/.opencode/{skills → skill}/beads/references/BOUNDARIES.md +0 -0
  125. /package/dist/template/.opencode/{skills → skill}/beads/references/DEPENDENCIES.md +0 -0
  126. /package/dist/template/.opencode/{skills → skill}/beads/references/RESUMABILITY.md +0 -0
  127. /package/dist/template/.opencode/{skills → skill}/beads/references/WORKFLOWS.md +0 -0
  128. /package/dist/template/.opencode/{skills → skill}/brainstorming/SKILL.md +0 -0
  129. /package/dist/template/.opencode/{skills → skill}/chrome-devtools/SKILL.md +0 -0
  130. /package/dist/template/.opencode/{skills → skill}/chrome-devtools/mcp.json +0 -0
  131. /package/dist/template/.opencode/{skills → skill}/cloudflare/SKILL.md +0 -0
  132. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/agents-sdk/README.md +0 -0
  133. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/agents-sdk/api.md +0 -0
  134. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/agents-sdk/configuration.md +0 -0
  135. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/agents-sdk/gotchas.md +0 -0
  136. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/agents-sdk/patterns.md +0 -0
  137. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ai-gateway/README.md +0 -0
  138. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ai-search/README.md +0 -0
  139. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ai-search/api.md +0 -0
  140. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ai-search/configuration.md +0 -0
  141. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ai-search/gotchas.md +0 -0
  142. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ai-search/patterns.md +0 -0
  143. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/analytics-engine/README.md +0 -0
  144. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/analytics-engine/api.md +0 -0
  145. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/analytics-engine/configuration.md +0 -0
  146. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/analytics-engine/gotchas.md +0 -0
  147. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/analytics-engine/patterns.md +0 -0
  148. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api/README.md +0 -0
  149. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api/api.md +0 -0
  150. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api/configuration.md +0 -0
  151. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api/gotchas.md +0 -0
  152. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api/patterns.md +0 -0
  153. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api-shield/README.md +0 -0
  154. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api-shield/api.md +0 -0
  155. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api-shield/configuration.md +0 -0
  156. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api-shield/gotchas.md +0 -0
  157. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api-shield/patterns.md +0 -0
  158. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/argo-smart-routing/README.md +0 -0
  159. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/argo-smart-routing/api.md +0 -0
  160. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/argo-smart-routing/configuration.md +0 -0
  161. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/argo-smart-routing/gotchas.md +0 -0
  162. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/argo-smart-routing/patterns.md +0 -0
  163. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bindings/README.md +0 -0
  164. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bindings/api.md +0 -0
  165. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bindings/configuration.md +0 -0
  166. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bindings/gotchas.md +0 -0
  167. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bindings/patterns.md +0 -0
  168. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bot-management/README.md +0 -0
  169. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bot-management/api.md +0 -0
  170. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bot-management/configuration.md +0 -0
  171. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bot-management/gotchas.md +0 -0
  172. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bot-management/patterns.md +0 -0
  173. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/browser-rendering/README.md +0 -0
  174. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/browser-rendering/api.md +0 -0
  175. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/browser-rendering/configuration.md +0 -0
  176. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/browser-rendering/gotchas.md +0 -0
  177. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/browser-rendering/patterns.md +0 -0
  178. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/c3/README.md +0 -0
  179. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cache-reserve/README.md +0 -0
  180. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cache-reserve/api.md +0 -0
  181. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cache-reserve/configuration.md +0 -0
  182. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cache-reserve/gotchas.md +0 -0
  183. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cache-reserve/patterns.md +0 -0
  184. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/containers/README.md +0 -0
  185. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/containers/api.md +0 -0
  186. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/containers/configuration.md +0 -0
  187. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/containers/gotchas.md +0 -0
  188. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/containers/patterns.md +0 -0
  189. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cron-triggers/README.md +0 -0
  190. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cron-triggers/api.md +0 -0
  191. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cron-triggers/configuration.md +0 -0
  192. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cron-triggers/gotchas.md +0 -0
  193. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cron-triggers/patterns.md +0 -0
  194. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/d1/README.md +0 -0
  195. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/d1/api.md +0 -0
  196. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/d1/configuration.md +0 -0
  197. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/d1/gotchas.md +0 -0
  198. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/d1/patterns.md +0 -0
  199. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ddos/README.md +0 -0
  200. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ddos/api.md +0 -0
  201. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ddos/configuration.md +0 -0
  202. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ddos/gotchas.md +0 -0
  203. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ddos/patterns.md +0 -0
  204. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/do-storage/README.md +0 -0
  205. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/do-storage/api.md +0 -0
  206. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/do-storage/configuration.md +0 -0
  207. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/do-storage/gotchas.md +0 -0
  208. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/do-storage/patterns.md +0 -0
  209. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/durable-objects/README.md +0 -0
  210. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/durable-objects/api.md +0 -0
  211. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/durable-objects/configuration.md +0 -0
  212. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/durable-objects/gotchas.md +0 -0
  213. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/durable-objects/patterns.md +0 -0
  214. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/email-routing/README.md +0 -0
  215. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/email-routing/api.md +0 -0
  216. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/email-routing/configuration.md +0 -0
  217. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/email-routing/gotchas.md +0 -0
  218. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/email-routing/patterns.md +0 -0
  219. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/email-workers/README.md +0 -0
  220. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/hyperdrive/README.md +0 -0
  221. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/hyperdrive/api.md +0 -0
  222. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/hyperdrive/configuration.md +0 -0
  223. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/hyperdrive/gotchas.md +0 -0
  224. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/hyperdrive/patterns.md +0 -0
  225. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/images/README.md +0 -0
  226. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/images/api.md +0 -0
  227. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/images/configuration.md +0 -0
  228. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/images/gotchas.md +0 -0
  229. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/images/patterns.md +0 -0
  230. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/kv/README.md +0 -0
  231. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/kv/api.md +0 -0
  232. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/kv/configuration.md +0 -0
  233. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/kv/gotchas.md +0 -0
  234. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/kv/patterns.md +0 -0
  235. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/miniflare/README.md +0 -0
  236. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/miniflare/api.md +0 -0
  237. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/miniflare/configuration.md +0 -0
  238. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/miniflare/gotchas.md +0 -0
  239. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/miniflare/patterns.md +0 -0
  240. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/network-interconnect/README.md +0 -0
  241. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/network-interconnect/api.md +0 -0
  242. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/network-interconnect/configuration.md +0 -0
  243. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/network-interconnect/gotchas.md +0 -0
  244. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/network-interconnect/patterns.md +0 -0
  245. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/observability/README.md +0 -0
  246. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/observability/api.md +0 -0
  247. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/observability/configuration.md +0 -0
  248. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/observability/gotchas.md +0 -0
  249. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/observability/patterns.md +0 -0
  250. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages/README.md +0 -0
  251. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages/api.md +0 -0
  252. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages/configuration.md +0 -0
  253. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages/gotchas.md +0 -0
  254. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages/patterns.md +0 -0
  255. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages-functions/README.md +0 -0
  256. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages-functions/api.md +0 -0
  257. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages-functions/configuration.md +0 -0
  258. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages-functions/gotchas.md +0 -0
  259. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages-functions/patterns.md +0 -0
  260. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pipelines/README.md +0 -0
  261. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pulumi/README.md +0 -0
  262. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pulumi/api.md +0 -0
  263. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pulumi/configuration.md +0 -0
  264. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pulumi/gotchas.md +0 -0
  265. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pulumi/patterns.md +0 -0
  266. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/queues/README.md +0 -0
  267. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/queues/api.md +0 -0
  268. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/queues/configuration.md +0 -0
  269. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/queues/gotchas.md +0 -0
  270. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/queues/patterns.md +0 -0
  271. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2/README.md +0 -0
  272. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2/api.md +0 -0
  273. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2/configuration.md +0 -0
  274. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2/gotchas.md +0 -0
  275. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2/patterns.md +0 -0
  276. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2-data-catalog/README.md +0 -0
  277. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2-data-catalog/api.md +0 -0
  278. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2-data-catalog/configuration.md +0 -0
  279. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2-data-catalog/gotchas.md +0 -0
  280. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2-data-catalog/patterns.md +0 -0
  281. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2-sql/README.md +0 -0
  282. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtime-sfu/README.md +0 -0
  283. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtime-sfu/api.md +0 -0
  284. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtime-sfu/configuration.md +0 -0
  285. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtime-sfu/gotchas.md +0 -0
  286. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtime-sfu/patterns.md +0 -0
  287. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtimekit/README.md +0 -0
  288. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtimekit/api.md +0 -0
  289. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtimekit/configuration.md +0 -0
  290. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtimekit/gotchas.md +0 -0
  291. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtimekit/patterns.md +0 -0
  292. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/sandbox/README.md +0 -0
  293. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/sandbox/api.md +0 -0
  294. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/sandbox/configuration.md +0 -0
  295. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/sandbox/gotchas.md +0 -0
  296. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/sandbox/patterns.md +0 -0
  297. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/secrets-store/README.md +0 -0
  298. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/secrets-store/api.md +0 -0
  299. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/secrets-store/configuration.md +0 -0
  300. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/secrets-store/gotchas.md +0 -0
  301. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/secrets-store/patterns.md +0 -0
  302. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/smart-placement/README.md +0 -0
  303. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/smart-placement/api.md +0 -0
  304. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/smart-placement/configuration.md +0 -0
  305. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/smart-placement/gotchas.md +0 -0
  306. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/smart-placement/patterns.md +0 -0
  307. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/snippets/README.md +0 -0
  308. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/snippets/api.md +0 -0
  309. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/snippets/configuration.md +0 -0
  310. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/snippets/gotchas.md +0 -0
  311. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/snippets/patterns.md +0 -0
  312. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/spectrum/README.md +0 -0
  313. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/spectrum/api.md +0 -0
  314. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/spectrum/configuration.md +0 -0
  315. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/spectrum/gotchas.md +0 -0
  316. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/spectrum/patterns.md +0 -0
  317. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/static-assets/README.md +0 -0
  318. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/static-assets/api.md +0 -0
  319. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/static-assets/configuration.md +0 -0
  320. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/static-assets/gotchas.md +0 -0
  321. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/static-assets/patterns.md +0 -0
  322. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/stream/README.md +0 -0
  323. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/stream/api.md +0 -0
  324. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/stream/configuration.md +0 -0
  325. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/stream/gotchas.md +0 -0
  326. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/stream/patterns.md +0 -0
  327. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/tail-workers/README.md +0 -0
  328. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/terraform/README.md +0 -0
  329. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/terraform/api.md +0 -0
  330. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/terraform/configuration.md +0 -0
  331. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/terraform/gotchas.md +0 -0
  332. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/terraform/patterns.md +0 -0
  333. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/tunnel/README.md +0 -0
  334. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/tunnel/api.md +0 -0
  335. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/tunnel/configuration.md +0 -0
  336. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/tunnel/gotchas.md +0 -0
  337. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/tunnel/patterns.md +0 -0
  338. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/turn/README.md +0 -0
  339. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/turnstile/README.md +0 -0
  340. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/turnstile/api.md +0 -0
  341. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/turnstile/configuration.md +0 -0
  342. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/turnstile/gotchas.md +0 -0
  343. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/turnstile/patterns.md +0 -0
  344. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/vectorize/README.md +0 -0
  345. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/waf/README.md +0 -0
  346. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/waf/api.md +0 -0
  347. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/waf/configuration.md +0 -0
  348. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/waf/gotchas.md +0 -0
  349. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/waf/patterns.md +0 -0
  350. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/web-analytics/README.md +0 -0
  351. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/web-analytics/api.md +0 -0
  352. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/web-analytics/configuration.md +0 -0
  353. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/web-analytics/gotchas.md +0 -0
  354. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/web-analytics/patterns.md +0 -0
  355. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workerd/README.md +0 -0
  356. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workerd/api.md +0 -0
  357. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workerd/configuration.md +0 -0
  358. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workerd/gotchas.md +0 -0
  359. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workerd/patterns.md +0 -0
  360. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers/README.md +0 -0
  361. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers/api.md +0 -0
  362. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers/configuration.md +0 -0
  363. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers/gotchas.md +0 -0
  364. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers/patterns.md +0 -0
  365. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-ai/README.md +0 -0
  366. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-for-platforms/README.md +0 -0
  367. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-for-platforms/api.md +0 -0
  368. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-for-platforms/configuration.md +0 -0
  369. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-for-platforms/gotchas.md +0 -0
  370. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-for-platforms/patterns.md +0 -0
  371. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-playground/README.md +0 -0
  372. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-playground/api.md +0 -0
  373. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-playground/configuration.md +0 -0
  374. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-playground/gotchas.md +0 -0
  375. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-playground/patterns.md +0 -0
  376. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-vpc/README.md +0 -0
  377. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workflows/README.md +0 -0
  378. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workflows/api.md +0 -0
  379. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workflows/configuration.md +0 -0
  380. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workflows/gotchas.md +0 -0
  381. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workflows/patterns.md +0 -0
  382. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/wrangler/README.md +0 -0
  383. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/wrangler/api.md +0 -0
  384. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/wrangler/configuration.md +0 -0
  385. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/wrangler/gotchas.md +0 -0
  386. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/wrangler/patterns.md +0 -0
  387. /package/dist/template/.opencode/{skills → skill}/cloudflare/references/zaraz/README.md +0 -0
  388. /package/dist/template/.opencode/{skills → skill}/condition-based-waiting/SKILL.md +0 -0
  389. /package/dist/template/.opencode/{skills → skill}/condition-based-waiting/example.ts +0 -0
  390. /package/dist/template/.opencode/{skills → skill}/context-engineering/SKILL.md +0 -0
  391. /package/dist/template/.opencode/{skills → skill}/deep-research/SKILL.md +0 -0
  392. /package/dist/template/.opencode/{skills → skill}/defense-in-depth/SKILL.md +0 -0
  393. /package/dist/template/.opencode/{skills → skill}/design-system-audit/SKILL.md +0 -0
  394. /package/dist/template/.opencode/{skills → skill}/dispatching-parallel-agents/SKILL.md +0 -0
  395. /package/dist/template/.opencode/{skills → skill}/executing-plans/SKILL.md +0 -0
  396. /package/dist/template/.opencode/{skills → skill}/figma/SKILL.md +0 -0
  397. /package/dist/template/.opencode/{skills → skill}/finishing-a-development-branch/SKILL.md +0 -0
  398. /package/dist/template/.opencode/{skills → skill}/frontend-design/SKILL.md +0 -0
  399. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/animation/motion-advanced.md +0 -0
  400. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/animation/motion-core.md +0 -0
  401. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/canvas/execution.md +0 -0
  402. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/canvas/philosophy.md +0 -0
  403. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/shadcn/accessibility.md +0 -0
  404. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/shadcn/core-components.md +0 -0
  405. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/shadcn/form-components.md +0 -0
  406. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/shadcn/setup.md +0 -0
  407. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/shadcn/theming.md +0 -0
  408. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/tailwind/responsive.md +0 -0
  409. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/tailwind/utilities-layout.md +0 -0
  410. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/tailwind/utilities-styling.md +0 -0
  411. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/tailwind/v4-config.md +0 -0
  412. /package/dist/template/.opencode/{skills → skill}/frontend-design/references/tailwind/v4-features.md +0 -0
  413. /package/dist/template/.opencode/{skills → skill}/gemini-large-context/SKILL.md +0 -0
  414. /package/dist/template/.opencode/{skills → skill}/index-knowledge/SKILL.md +0 -0
  415. /package/dist/template/.opencode/{skills → skill}/memory-system/SKILL.md +0 -0
  416. /package/dist/template/.opencode/{skills → skill}/mockup-to-code/SKILL.md +0 -0
  417. /package/dist/template/.opencode/{skills → skill}/mqdh/SKILL.md +0 -0
  418. /package/dist/template/.opencode/{skills → skill}/notebooklm/SKILL.md +0 -0
  419. /package/dist/template/.opencode/{skills → skill}/notebooklm/references/setup.md +0 -0
  420. /package/dist/template/.opencode/{skills → skill}/opensrc/SKILL.md +0 -0
  421. /package/dist/template/.opencode/{skills → skill}/opensrc/references/architecture.md +0 -0
  422. /package/dist/template/.opencode/{skills → skill}/opensrc/references/cli-usage.md +0 -0
  423. /package/dist/template/.opencode/{skills → skill}/opensrc/references/registry-support.md +0 -0
  424. /package/dist/template/.opencode/{skills → skill}/playwright/SKILL.md +0 -0
  425. /package/dist/template/.opencode/{skills → skill}/playwright/mcp.json +0 -0
  426. /package/dist/template/.opencode/{skills → skill}/playwriter/SKILL.md +0 -0
  427. /package/dist/template/.opencode/{skills → skill}/polar/SKILL.md +0 -0
  428. /package/dist/template/.opencode/{skills → skill}/prd/SKILL.md +0 -0
  429. /package/dist/template/.opencode/{skills → skill}/prd-task/SKILL.md +0 -0
  430. /package/dist/template/.opencode/{skills → skill}/prd-task/references/prd-schema.json +0 -0
  431. /package/dist/template/.opencode/{skills → skill}/ralph/SKILL.md +0 -0
  432. /package/dist/template/.opencode/{skills → skill}/react-best-practices/AGENTS.md +0 -0
  433. /package/dist/template/.opencode/{skills → skill}/react-best-practices/README.md +0 -0
  434. /package/dist/template/.opencode/{skills → skill}/react-best-practices/SKILL.md +0 -0
  435. /package/dist/template/.opencode/{skills → skill}/react-best-practices/metadata.json +0 -0
  436. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/_sections.md +0 -0
  437. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/_template.md +0 -0
  438. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/advanced-event-handler-refs.md +0 -0
  439. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/advanced-use-latest.md +0 -0
  440. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/async-api-routes.md +0 -0
  441. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/async-defer-await.md +0 -0
  442. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/async-dependencies.md +0 -0
  443. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/async-parallel.md +0 -0
  444. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/async-suspense-boundaries.md +0 -0
  445. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/bundle-barrel-imports.md +0 -0
  446. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/bundle-conditional.md +0 -0
  447. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/bundle-defer-third-party.md +0 -0
  448. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/bundle-dynamic-imports.md +0 -0
  449. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/bundle-preload.md +0 -0
  450. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/client-event-listeners.md +0 -0
  451. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/client-localstorage-schema.md +0 -0
  452. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/client-passive-event-listeners.md +0 -0
  453. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/client-swr-dedup.md +0 -0
  454. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-batch-dom-css.md +0 -0
  455. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-cache-function-results.md +0 -0
  456. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-cache-property-access.md +0 -0
  457. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-cache-storage.md +0 -0
  458. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-combine-iterations.md +0 -0
  459. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-early-exit.md +0 -0
  460. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-hoist-regexp.md +0 -0
  461. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-index-maps.md +0 -0
  462. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-length-check-first.md +0 -0
  463. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-min-max-loop.md +0 -0
  464. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-set-map-lookups.md +0 -0
  465. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-tosorted-immutable.md +0 -0
  466. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-activity.md +0 -0
  467. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -0
  468. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-conditional-render.md +0 -0
  469. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-content-visibility.md +0 -0
  470. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-hoist-jsx.md +0 -0
  471. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-hydration-no-flicker.md +0 -0
  472. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-svg-precision.md +0 -0
  473. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-defer-reads.md +0 -0
  474. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-dependencies.md +0 -0
  475. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-derived-state.md +0 -0
  476. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-functional-setstate.md +0 -0
  477. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-lazy-state-init.md +0 -0
  478. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-memo.md +0 -0
  479. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-transitions.md +0 -0
  480. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/server-after-nonblocking.md +0 -0
  481. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/server-cache-lru.md +0 -0
  482. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/server-cache-react.md +0 -0
  483. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/server-parallel-fetching.md +0 -0
  484. /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/server-serialization.md +0 -0
  485. /package/dist/template/.opencode/{skills → skill}/receiving-code-review/SKILL.md +0 -0
  486. /package/dist/template/.opencode/{skills → skill}/requesting-code-review/SKILL.md +0 -0
  487. /package/dist/template/.opencode/{skills → skill}/requesting-code-review/review.md +0 -0
  488. /package/dist/template/.opencode/{skills → skill}/root-cause-tracing/SKILL.md +0 -0
  489. /package/dist/template/.opencode/{skills → skill}/root-cause-tracing/find-polluter.sh +0 -0
  490. /package/dist/template/.opencode/{skills → skill}/session-management/SKILL.md +0 -0
  491. /package/dist/template/.opencode/{skills → skill}/sharing-skills/SKILL.md +0 -0
  492. /package/dist/template/.opencode/{skills → skill}/skill-creator/SKILL.md +0 -0
  493. /package/dist/template/.opencode/{skills → skill}/source-code-research/SKILL.md +0 -0
  494. /package/dist/template/.opencode/{skills → skill}/stitch/SKILL.md +0 -0
  495. /package/dist/template/.opencode/{skills → skill}/stitch/mcp.json +0 -0
  496. /package/dist/template/.opencode/{skills → skill}/subagent-driven-development/SKILL.md +0 -0
  497. /package/dist/template/.opencode/{skills → skill}/supabase/SKILL.md +0 -0
  498. /package/dist/template/.opencode/{skills → skill}/supabase/mcp.json +0 -0
  499. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/AGENTS.md +0 -0
  500. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/SKILL.md +0 -0
  501. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/advanced-full-text-search.md +0 -0
  502. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/advanced-jsonb-indexing.md +0 -0
  503. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/conn-idle-timeout.md +0 -0
  504. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/conn-limits.md +0 -0
  505. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/conn-pooling.md +0 -0
  506. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/conn-prepared-statements.md +0 -0
  507. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/data-batch-inserts.md +0 -0
  508. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/data-n-plus-one.md +0 -0
  509. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/data-pagination.md +0 -0
  510. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/data-upsert.md +0 -0
  511. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/lock-advisory.md +0 -0
  512. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/lock-deadlock-prevention.md +0 -0
  513. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/lock-short-transactions.md +0 -0
  514. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/lock-skip-locked.md +0 -0
  515. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/monitor-explain-analyze.md +0 -0
  516. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/monitor-pg-stat-statements.md +0 -0
  517. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/monitor-vacuum-analyze.md +0 -0
  518. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/query-composite-indexes.md +0 -0
  519. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/query-covering-indexes.md +0 -0
  520. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/query-index-types.md +0 -0
  521. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/query-missing-indexes.md +0 -0
  522. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/query-partial-indexes.md +0 -0
  523. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/schema-data-types.md +0 -0
  524. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/schema-foreign-key-indexes.md +0 -0
  525. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/schema-lowercase-identifiers.md +0 -0
  526. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/schema-partitioning.md +0 -0
  527. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/schema-primary-keys.md +0 -0
  528. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/security-privileges.md +0 -0
  529. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/security-rls-basics.md +0 -0
  530. /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/security-rls-performance.md +0 -0
  531. /package/dist/template/.opencode/{skills → skill}/systematic-debugging/SKILL.md +0 -0
  532. /package/dist/template/.opencode/{skills → skill}/test-driven-development/SKILL.md +0 -0
  533. /package/dist/template/.opencode/{skills → skill}/testing-anti-patterns/SKILL.md +0 -0
  534. /package/dist/template/.opencode/{skills → skill}/testing-skills-with-subagents/SKILL.md +0 -0
  535. /package/dist/template/.opencode/{skills → skill}/ui-ux-research/SKILL.md +0 -0
  536. /package/dist/template/.opencode/{skills → skill}/using-git-worktrees/SKILL.md +0 -0
  537. /package/dist/template/.opencode/{skills → skill}/using-skills/SKILL.md +0 -0
  538. /package/dist/template/.opencode/{skills → skill}/v0/SKILL.md +0 -0
  539. /package/dist/template/.opencode/{skills → skill}/vercel-deploy-claimable/SKILL.md +0 -0
  540. /package/dist/template/.opencode/{skills → skill}/vercel-deploy-claimable/scripts/deploy.sh +0 -0
  541. /package/dist/template/.opencode/{skills → skill}/verification-before-completion/SKILL.md +0 -0
  542. /package/dist/template/.opencode/{skills → skill}/visual-analysis/SKILL.md +0 -0
  543. /package/dist/template/.opencode/{skills → skill}/web-design-guidelines/SKILL.md +0 -0
  544. /package/dist/template/.opencode/{skills → skill}/writing-plans/SKILL.md +0 -0
  545. /package/dist/template/.opencode/{skills → skill}/writing-skills/SKILL.md +0 -0
  546. /package/dist/template/.opencode/{skills → skill}/writing-skills/anthropic-best-practices.md +0 -0
  547. /package/dist/template/.opencode/{skills → skill}/writing-skills/graphviz-conventions.dot +0 -0
  548. /package/dist/template/.opencode/{skills → skill}/writing-skills/persuasion-principles.md +0 -0
  549. /package/dist/template/.opencode/{tools → tool}/context7-query-docs.ts +0 -0
  550. /package/dist/template/.opencode/{tools → tool}/context7-resolve-library-id.ts +0 -0
  551. /package/dist/template/.opencode/{tools → tool}/grepsearch.ts +0 -0
  552. /package/dist/template/.opencode/{tools → tool}/memory-read.ts +0 -0
  553. /package/dist/template/.opencode/{tools → tool}/memory-search.ts +0 -0
  554. /package/dist/template/.opencode/{tools → tool}/memory-update.ts +0 -0
  555. /package/dist/template/.opencode/{tools → tool}/notebooklm.ts +0 -0
  556. /package/dist/template/.opencode/{tools → tool}/observation.ts +0 -0
  557. /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.44"
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
  }
@@ -1,12 +1,43 @@
1
1
  /**
2
2
  * GitHub Copilot Auth Plugin
3
3
  * Simplified auth provider without token expiration checks
4
+ *
5
+ * Claude Reasoning Support:
6
+ * This plugin adds `thinking_budget` to the request body for Claude models.
7
+ * The Copilot API accepts this parameter and returns reasoning in the response.
8
+ *
9
+ * NOTE: Response parsing for reasoning_text/reasoning_opaque is handled by
10
+ * the custom SDK at .opencode/plugin/sdk/copilot/ which properly converts
11
+ * these fields to AI SDK's reasoning content parts.
4
12
  */
5
13
 
6
14
  import type { Plugin } from "@opencode-ai/plugin";
7
15
 
8
16
  const CLIENT_ID = "Ov23li8tweQw6odWQebz";
9
17
 
18
+ // Logger function that will be set by the plugin
19
+ let log: (
20
+ level: "debug" | "info" | "warn" | "error",
21
+ message: string,
22
+ extra?: Record<string, any>,
23
+ ) => void = () => {};
24
+
25
+ /**
26
+ * Set the logger function from the plugin context
27
+ */
28
+ function setLogger(client: any) {
29
+ log = (level, message, extra) => {
30
+ client.app
31
+ .log({
32
+ service: "copilot-auth",
33
+ level,
34
+ message,
35
+ extra,
36
+ })
37
+ .catch(() => {}); // Fire and forget, don't block on logging
38
+ };
39
+ }
40
+
10
41
  // Add a small safety buffer when polling to avoid hitting the server
11
42
  // slightly too early due to clock skew / timer drift.
12
43
  const OAUTH_POLLING_SAFETY_MARGIN_MS = 3000; // 3 seconds
@@ -70,7 +101,10 @@ function calculateRetryDelay(attempt: number): number {
70
101
  return Math.round(delay);
71
102
  }
72
103
 
73
- export const CopilotAuthPlugin: Plugin = async ({ client: _client }) => {
104
+ export const CopilotAuthPlugin: Plugin = async ({ client: sdk }) => {
105
+ // Initialize logger with the SDK client
106
+ setLogger(sdk);
107
+
74
108
  return {
75
109
  auth: {
76
110
  provider: "github-copilot",
@@ -78,8 +112,14 @@ export const CopilotAuthPlugin: Plugin = async ({ client: _client }) => {
78
112
  const info = await getAuth();
79
113
  if (!info || info.type !== "oauth") return {};
80
114
 
115
+ // Enterprise URL support for baseURL
116
+ const enterpriseUrl = (info as any).enterpriseUrl;
117
+ const baseURL = enterpriseUrl
118
+ ? `https://copilot-api.${normalizeDomain(enterpriseUrl)}`
119
+ : undefined;
120
+
81
121
  if (provider && provider.models) {
82
- for (const model of Object.values(provider.models)) {
122
+ for (const [_modelId, model] of Object.entries(provider.models)) {
83
123
  model.cost = {
84
124
  input: 0,
85
125
  output: 0,
@@ -89,23 +129,16 @@ export const CopilotAuthPlugin: Plugin = async ({ client: _client }) => {
89
129
  },
90
130
  };
91
131
 
92
- // TODO: re-enable once messages api has higher rate limits
93
- // Claude routing is disabled to avoid "Not Found" errors and rate limits
94
- // const base = baseURL ?? model.api.url ?? "https://api.githubcopilot.com";
95
- // const isClaude = model.id.includes("claude");
96
- // let url = base;
97
- // if (isClaude) {
98
- // if (!url.endsWith("/v1")) {
99
- // url = url.endsWith("/") ? `${url}v1` : `${url}/v1`;
100
- // }
101
- // }
102
- // model.api.url = url;
103
- // model.api.npm = isClaude ? "@ai-sdk/anthropic" : "@ai-sdk/github-copilot";
132
+ // All models use the standard github-copilot SDK
133
+ // Reasoning support for Claude models is handled via:
134
+ // 1. The fetch wrapper adds thinking_budget to request body
135
+ // 2. The fetch wrapper strips invalid thinking blocks from messages
104
136
  model.api.npm = "@ai-sdk/github-copilot";
105
137
  }
106
138
  }
107
139
 
108
140
  return {
141
+ baseURL,
109
142
  apiKey: "",
110
143
  async fetch(input, init) {
111
144
  const info = await getAuth();
@@ -113,6 +146,9 @@ export const CopilotAuthPlugin: Plugin = async ({ client: _client }) => {
113
146
 
114
147
  let isAgentCall = false;
115
148
  let isVisionRequest = false;
149
+ let modifiedBody: any = undefined;
150
+ let isClaudeModel = false;
151
+
116
152
  try {
117
153
  const body =
118
154
  typeof init?.body === "string"
@@ -121,6 +157,10 @@ export const CopilotAuthPlugin: Plugin = async ({ client: _client }) => {
121
157
 
122
158
  const url = input.toString();
123
159
 
160
+ // Check if this is a Claude model request
161
+ const modelId = body?.model || "";
162
+ isClaudeModel = modelId.toLowerCase().includes("claude");
163
+
124
164
  // Completions API
125
165
  if (body?.messages && url.includes("completions")) {
126
166
  // Keep local logic: detect if any message is assistant/tool
@@ -132,6 +172,121 @@ export const CopilotAuthPlugin: Plugin = async ({ client: _client }) => {
132
172
  Array.isArray(msg.content) &&
133
173
  msg.content.some((part: any) => part.type === "image_url"),
134
174
  );
175
+
176
+ // For Claude models, add thinking_budget to enable reasoning
177
+ // The Copilot API accepts this parameter and returns reasoning_text/reasoning_opaque
178
+ if (isClaudeModel) {
179
+ // Use configured thinking_budget from model options, or default to 10000
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
+
246
+ modifiedBody = {
247
+ ...body,
248
+ messages: cleanedMessages,
249
+ thinking_budget: thinkingBudget,
250
+ };
251
+ log("info", `Adding thinking_budget for Claude model`, {
252
+ model: modelId,
253
+ thinking_budget: thinkingBudget,
254
+ });
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
+ }
135
290
  }
136
291
 
137
292
  // Responses API
@@ -189,6 +344,13 @@ export const CopilotAuthPlugin: Plugin = async ({ client: _client }) => {
189
344
  delete headers["x-api-key"];
190
345
  delete headers["authorization"];
191
346
 
347
+ // Prepare the final init object with potentially modified body
348
+ const finalInit = {
349
+ ...init,
350
+ headers,
351
+ ...(modifiedBody ? { body: JSON.stringify(modifiedBody) } : {}),
352
+ };
353
+
192
354
  // Retry logic with exponential backoff for rate limiting
193
355
  let lastError: Error | undefined;
194
356
  for (
@@ -197,10 +359,7 @@ export const CopilotAuthPlugin: Plugin = async ({ client: _client }) => {
197
359
  attempt++
198
360
  ) {
199
361
  try {
200
- const response = await fetch(input, {
201
- ...init,
202
- headers,
203
- });
362
+ const response = await fetch(input, finalInit);
204
363
 
205
364
  // If we get a 429, retry with backoff
206
365
  if (
@@ -208,13 +367,18 @@ export const CopilotAuthPlugin: Plugin = async ({ client: _client }) => {
208
367
  attempt < RATE_LIMIT_CONFIG.maxRetries
209
368
  ) {
210
369
  const delay = calculateRetryDelay(attempt);
211
- console.log(
212
- `[Copilot] Rate limited (429), retrying in ${delay}ms... (attempt ${attempt + 1}/${RATE_LIMIT_CONFIG.maxRetries})`,
213
- );
370
+ log("warn", `Rate limited (429), retrying`, {
371
+ delay_ms: delay,
372
+ attempt: attempt + 1,
373
+ max_retries: RATE_LIMIT_CONFIG.maxRetries,
374
+ });
214
375
  await sleep(delay);
215
376
  continue;
216
377
  }
217
378
 
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
218
382
  return response;
219
383
  } catch (error) {
220
384
  lastError = error as Error;
@@ -222,9 +386,12 @@ export const CopilotAuthPlugin: Plugin = async ({ client: _client }) => {
222
386
  // Network errors might be transient, retry
223
387
  if (attempt < RATE_LIMIT_CONFIG.maxRetries) {
224
388
  const delay = calculateRetryDelay(attempt);
225
- console.log(
226
- `[Copilot] Request failed, retrying in ${delay}ms... (attempt ${attempt + 1}/${RATE_LIMIT_CONFIG.maxRetries})`,
227
- );
389
+ log("warn", `Request failed, retrying`, {
390
+ delay_ms: delay,
391
+ attempt: attempt + 1,
392
+ max_retries: RATE_LIMIT_CONFIG.maxRetries,
393
+ error: lastError.message,
394
+ });
228
395
  await sleep(delay);
229
396
  continue;
230
397
  }
@@ -408,5 +575,33 @@ export const CopilotAuthPlugin: Plugin = async ({ client: _client }) => {
408
575
  },
409
576
  ],
410
577
  },
578
+ // Hook to add custom headers for Claude reasoning support
579
+ "chat.headers": async (input: any, output: any) => {
580
+ // Only apply to GitHub Copilot provider
581
+ if (!input.model?.providerID?.includes("github-copilot")) return;
582
+
583
+ // Add Anthropic beta header for interleaved thinking (extended reasoning)
584
+ // This is required for Claude models to return thinking blocks
585
+ if (input.model?.api?.npm === "@ai-sdk/anthropic") {
586
+ output.headers["anthropic-beta"] = "interleaved-thinking-2025-05-14";
587
+ }
588
+
589
+ // Mark subagent sessions as agent-initiated (matching standard Copilot tools)
590
+ try {
591
+ const session = await sdk.session
592
+ .get({
593
+ path: {
594
+ id: input.sessionID,
595
+ },
596
+ throwOnError: true,
597
+ })
598
+ .catch(() => undefined);
599
+ if (session?.data?.parentID) {
600
+ output.headers["x-initiator"] = "agent";
601
+ }
602
+ } catch {
603
+ // Ignore errors from session lookup
604
+ }
605
+ },
411
606
  };
412
607
  };
@@ -0,0 +1,181 @@
1
+ import {
2
+ type LanguageModelV2Prompt,
3
+ type SharedV2ProviderMetadata,
4
+ UnsupportedFunctionalityError,
5
+ } from "@ai-sdk/provider";
6
+ import { convertToBase64 } from "@ai-sdk/provider-utils";
7
+ import type { OpenAICompatibleChatPrompt } from "./openai-compatible-api-types.js";
8
+
9
+ function getOpenAIMetadata(message: {
10
+ providerOptions?: SharedV2ProviderMetadata;
11
+ }) {
12
+ return message?.providerOptions?.copilot ?? {};
13
+ }
14
+
15
+ export function convertToOpenAICompatibleChatMessages(
16
+ prompt: LanguageModelV2Prompt,
17
+ ): OpenAICompatibleChatPrompt {
18
+ const messages: OpenAICompatibleChatPrompt = [];
19
+ for (const { role, content, ...message } of prompt) {
20
+ const metadata = getOpenAIMetadata({ ...message });
21
+ switch (role) {
22
+ case "system": {
23
+ messages.push({
24
+ role: "system",
25
+ content: [
26
+ {
27
+ type: "text",
28
+ text: content,
29
+ },
30
+ ],
31
+ ...metadata,
32
+ });
33
+ break;
34
+ }
35
+
36
+ case "user": {
37
+ if (content.length === 1 && content[0].type === "text") {
38
+ messages.push({
39
+ role: "user",
40
+ content: content[0].text,
41
+ ...getOpenAIMetadata(content[0]),
42
+ });
43
+ break;
44
+ }
45
+
46
+ messages.push({
47
+ role: "user",
48
+ content: content.map((part) => {
49
+ const partMetadata = getOpenAIMetadata(part);
50
+ switch (part.type) {
51
+ case "text": {
52
+ return {
53
+ type: "text" as const,
54
+ text: part.text,
55
+ ...partMetadata,
56
+ };
57
+ }
58
+ case "file": {
59
+ if (part.mediaType.startsWith("image/")) {
60
+ const mediaType =
61
+ part.mediaType === "image/*"
62
+ ? "image/jpeg"
63
+ : part.mediaType;
64
+
65
+ return {
66
+ type: "image_url" as const,
67
+ image_url: {
68
+ url:
69
+ part.data instanceof URL
70
+ ? part.data.toString()
71
+ : `data:${mediaType};base64,${convertToBase64(part.data)}`,
72
+ },
73
+ ...partMetadata,
74
+ };
75
+ } else {
76
+ throw new UnsupportedFunctionalityError({
77
+ functionality: `file part media type ${part.mediaType}`,
78
+ });
79
+ }
80
+ }
81
+ }
82
+ }),
83
+ ...metadata,
84
+ });
85
+
86
+ break;
87
+ }
88
+
89
+ case "assistant": {
90
+ let text = "";
91
+ let reasoningText: string | undefined;
92
+ let reasoningOpaque: string | undefined;
93
+ const toolCalls: Array<{
94
+ id: string;
95
+ type: "function";
96
+ function: { name: string; arguments: string };
97
+ }> = [];
98
+
99
+ for (const part of content) {
100
+ const partMetadata = getOpenAIMetadata(part);
101
+ // Check for reasoningOpaque on any part (may be attached to text/tool-call)
102
+ const partOpaque = (
103
+ part.providerOptions as { copilot?: { reasoningOpaque?: string } }
104
+ )?.copilot?.reasoningOpaque;
105
+ if (partOpaque && !reasoningOpaque) {
106
+ reasoningOpaque = partOpaque;
107
+ }
108
+
109
+ switch (part.type) {
110
+ case "text": {
111
+ text += part.text;
112
+ break;
113
+ }
114
+ case "reasoning": {
115
+ reasoningText = part.text;
116
+ break;
117
+ }
118
+ case "tool-call": {
119
+ toolCalls.push({
120
+ id: part.toolCallId,
121
+ type: "function",
122
+ function: {
123
+ name: part.toolName,
124
+ arguments: JSON.stringify(part.input),
125
+ },
126
+ ...partMetadata,
127
+ });
128
+ break;
129
+ }
130
+ }
131
+ }
132
+
133
+ messages.push({
134
+ role: "assistant",
135
+ content: text || null,
136
+ tool_calls: toolCalls.length > 0 ? toolCalls : undefined,
137
+ reasoning_text: reasoningText,
138
+ reasoning_opaque: reasoningOpaque,
139
+ ...metadata,
140
+ });
141
+
142
+ break;
143
+ }
144
+
145
+ case "tool": {
146
+ for (const toolResponse of content) {
147
+ const output = toolResponse.output;
148
+
149
+ let contentValue: string;
150
+ switch (output.type) {
151
+ case "text":
152
+ case "error-text":
153
+ contentValue = output.value;
154
+ break;
155
+ case "content":
156
+ case "json":
157
+ case "error-json":
158
+ contentValue = JSON.stringify(output.value);
159
+ break;
160
+ }
161
+
162
+ const toolResponseMetadata = getOpenAIMetadata(toolResponse);
163
+ messages.push({
164
+ role: "tool",
165
+ tool_call_id: toolResponse.toolCallId,
166
+ content: contentValue,
167
+ ...toolResponseMetadata,
168
+ });
169
+ }
170
+ break;
171
+ }
172
+
173
+ default: {
174
+ const _exhaustiveCheck: never = role;
175
+ throw new Error(`Unsupported role: ${_exhaustiveCheck}`);
176
+ }
177
+ }
178
+ }
179
+
180
+ return messages;
181
+ }
@@ -0,0 +1,15 @@
1
+ export function getResponseMetadata({
2
+ id,
3
+ model,
4
+ created,
5
+ }: {
6
+ id?: string | undefined | null;
7
+ created?: number | undefined | null;
8
+ model?: string | undefined | null;
9
+ }) {
10
+ return {
11
+ id: id ?? undefined,
12
+ modelId: model ?? undefined,
13
+ timestamp: created != null ? new Date(created * 1000) : undefined,
14
+ };
15
+ }
@@ -0,0 +1,19 @@
1
+ import type { LanguageModelV2FinishReason } from "@ai-sdk/provider";
2
+
3
+ export function mapOpenAICompatibleFinishReason(
4
+ finishReason: string | null | undefined,
5
+ ): LanguageModelV2FinishReason {
6
+ switch (finishReason) {
7
+ case "stop":
8
+ return "stop";
9
+ case "length":
10
+ return "length";
11
+ case "content_filter":
12
+ return "content-filter";
13
+ case "function_call":
14
+ case "tool_calls":
15
+ return "tool-calls";
16
+ default:
17
+ return "unknown";
18
+ }
19
+ }
@@ -0,0 +1,72 @@
1
+ import type { JSONValue } from "@ai-sdk/provider";
2
+
3
+ export type OpenAICompatibleChatPrompt = Array<OpenAICompatibleMessage>;
4
+
5
+ export type OpenAICompatibleMessage =
6
+ | OpenAICompatibleSystemMessage
7
+ | OpenAICompatibleUserMessage
8
+ | OpenAICompatibleAssistantMessage
9
+ | OpenAICompatibleToolMessage;
10
+
11
+ // Allow for arbitrary additional properties for general purpose
12
+ // provider-metadata-specific extensibility.
13
+ type JsonRecord<T = never> = Record<
14
+ string,
15
+ JSONValue | JSONValue[] | T | T[] | undefined
16
+ >;
17
+
18
+ export interface OpenAICompatibleSystemMessage
19
+ extends JsonRecord<OpenAICompatibleSystemContentPart> {
20
+ role: "system";
21
+ content: string | Array<OpenAICompatibleSystemContentPart>;
22
+ }
23
+
24
+ export interface OpenAICompatibleSystemContentPart extends JsonRecord {
25
+ type: "text";
26
+ text: string;
27
+ }
28
+
29
+ export interface OpenAICompatibleUserMessage
30
+ extends JsonRecord<OpenAICompatibleContentPart> {
31
+ role: "user";
32
+ content: string | Array<OpenAICompatibleContentPart>;
33
+ }
34
+
35
+ export type OpenAICompatibleContentPart =
36
+ | OpenAICompatibleContentPartText
37
+ | OpenAICompatibleContentPartImage;
38
+
39
+ export interface OpenAICompatibleContentPartImage extends JsonRecord {
40
+ type: "image_url";
41
+ image_url: { url: string };
42
+ }
43
+
44
+ export interface OpenAICompatibleContentPartText extends JsonRecord {
45
+ type: "text";
46
+ text: string;
47
+ }
48
+
49
+ export interface OpenAICompatibleAssistantMessage
50
+ extends JsonRecord<OpenAICompatibleMessageToolCall> {
51
+ role: "assistant";
52
+ content?: string | null;
53
+ tool_calls?: Array<OpenAICompatibleMessageToolCall>;
54
+ // Copilot-specific reasoning fields
55
+ reasoning_text?: string;
56
+ reasoning_opaque?: string;
57
+ }
58
+
59
+ export interface OpenAICompatibleMessageToolCall extends JsonRecord {
60
+ type: "function";
61
+ id: string;
62
+ function: {
63
+ arguments: string;
64
+ name: string;
65
+ };
66
+ }
67
+
68
+ export interface OpenAICompatibleToolMessage extends JsonRecord {
69
+ role: "tool";
70
+ content: string;
71
+ tool_call_id: string;
72
+ }