@danieljvdm/dev-kit 1.0.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/README.md +6 -6
  2. package/package.json +1 -1
  3. package/skill-sources.jsonc +6 -29
  4. package/skill-sources.lock.json +23 -109
  5. package/skills/animate/LICENSE +21 -0
  6. package/skills/animate/NOTICE +10 -0
  7. package/skills/animate/SKILL.md +34 -0
  8. package/skills/animate/references/gestures.md +27 -0
  9. package/skills/animate/references/glossary.md +136 -0
  10. package/skills/animate/references/implementation.md +22 -0
  11. package/skills/animate/references/opportunities.md +18 -0
  12. package/skills/animate/references/principles.md +48 -0
  13. package/skills/animate/references/review.md +19 -0
  14. package/skills/cloudflare-workers/LICENSE +202 -0
  15. package/skills/cloudflare-workers/NOTICE +9 -0
  16. package/skills/cloudflare-workers/SKILL.md +26 -0
  17. package/skills/cloudflare-workers/references/durable-objects.md +68 -0
  18. package/skills/cloudflare-workers/references/sandbox.md +48 -0
  19. package/skills/cloudflare-workers/references/workers.md +63 -0
  20. package/skills/cloudflare-workers/references/wrangler.md +56 -0
  21. package/skills/design-ui/LICENSE +21 -0
  22. package/skills/design-ui/NOTICE +8 -0
  23. package/skills/design-ui/SKILL.md +29 -0
  24. package/skills/design-ui/references/appearance.md +22 -0
  25. package/skills/design-ui/references/components.md +33 -0
  26. package/skills/design-ui/references/exploration.md +50 -0
  27. package/skills/design-ui/references/libraries.md +39 -0
  28. package/skills/design-ui/references/themes.md +23 -0
  29. package/skills/dev-kit/SKILL.md +19 -38
  30. package/skills/dev-kit/references/cloudflare-worker-api.md +1 -1
  31. package/skills/dev-kit/references/skills.md +2 -2
  32. package/skills/effect-development/SKILL.md +27 -0
  33. package/skills/effect-development/agents/openai.yaml +4 -0
  34. package/skills/effect-development/references/api/index.md +32 -0
  35. package/skills/effect-development/references/api/schema-codecs.md +15 -0
  36. package/skills/{build-effect-apis/references → effect-development/references/api}/verification.md +10 -5
  37. package/skills/{effect-architecture-audit/SKILL.md → effect-development/references/architecture/index.md} +1 -6
  38. package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-client.md +8 -6
  39. package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-testing.md +7 -2
  40. package/skills/effect-development/references/atom/index.md +40 -0
  41. package/skills/{build-effect-clis/references → effect-development/references/cli}/entrypoints-and-testing.md +6 -2
  42. package/skills/effect-development/references/cli/index.md +39 -0
  43. package/skills/effect-development/references/setup.md +15 -0
  44. package/skills/open-pull-request/SKILL.md +11 -115
  45. package/skills/open-pull-request/agents/openai.yaml +3 -3
  46. package/skills/open-pull-request/references/evidence.md +22 -0
  47. package/skills/open-pull-request/references/explanation.md +21 -0
  48. package/skills/open-pull-request/references/publication.md +21 -0
  49. package/skills/sentry/LICENSE +202 -0
  50. package/skills/sentry/LICENSE-UPSTREAM +21 -0
  51. package/skills/sentry/NOTICE +14 -0
  52. package/skills/sentry/SKILL.md +33 -0
  53. package/skills/sentry/references/alert-payloads.md +105 -0
  54. package/skills/sentry/references/alerts.md +17 -0
  55. package/skills/sentry/references/artifacts.md +25 -0
  56. package/skills/sentry/references/auth-token.md +65 -0
  57. package/skills/sentry/references/concepts/ai-monitoring.md +131 -0
  58. package/skills/sentry/references/concepts/choosing-a-signal.md +78 -0
  59. package/skills/sentry/references/concepts/crons.md +50 -0
  60. package/skills/sentry/references/concepts/data-scrubbing.md +43 -0
  61. package/skills/sentry/references/concepts/errors.md +40 -0
  62. package/skills/sentry/references/concepts/logging.md +85 -0
  63. package/skills/sentry/references/concepts/metrics.md +49 -0
  64. package/skills/sentry/references/concepts/monitors.md +78 -0
  65. package/skills/sentry/references/concepts/profiling.md +38 -0
  66. package/skills/sentry/references/concepts/reduce-volume.md +49 -0
  67. package/skills/sentry/references/concepts/releases.md +43 -0
  68. package/skills/sentry/references/concepts/session-replay.md +35 -0
  69. package/skills/sentry/references/concepts/tracing.md +54 -0
  70. package/skills/sentry/references/concepts/user-feedback.md +36 -0
  71. package/skills/sentry/references/debug-artifacts/android.md +68 -0
  72. package/skills/sentry/references/debug-artifacts/apple.md +96 -0
  73. package/skills/sentry/references/debug-artifacts/dotnet.md +70 -0
  74. package/skills/sentry/references/debug-artifacts/flutter.md +65 -0
  75. package/skills/sentry/references/debug-artifacts/index.md +75 -0
  76. package/skills/sentry/references/debug-artifacts/javascript.md +94 -0
  77. package/skills/sentry/references/debug-artifacts/matching.md +73 -0
  78. package/skills/sentry/references/debug-artifacts/react-native.md +75 -0
  79. package/skills/sentry/references/first-error-setup.md +25 -0
  80. package/skills/sentry/references/instrumentation.md +30 -0
  81. package/skills/sentry/references/issues.md +32 -0
  82. package/skills/sentry/references/new-project.md +17 -0
  83. package/skills/sentry/references/otel-exporter.md +30 -0
  84. package/skills/sentry/references/release-workflow.md +31 -0
  85. package/skills/sentry/references/releases/ci-pipeline.md +214 -0
  86. package/skills/sentry/references/releases/index.md +93 -0
  87. package/skills/sentry/references/releases/suspect-commits.md +155 -0
  88. package/skills/sentry/references/releases/tagging.md +131 -0
  89. package/skills/sentry/references/releases/troubleshooting.md +67 -0
  90. package/skills/sentry/references/sdks/android/crons.md +305 -0
  91. package/skills/sentry/references/sdks/android/error-monitoring.md +800 -0
  92. package/skills/sentry/references/sdks/android/index.md +748 -0
  93. package/skills/sentry/references/sdks/android/integrations.md +48 -0
  94. package/skills/sentry/references/sdks/android/logging.md +374 -0
  95. package/skills/sentry/references/sdks/android/metrics.md +288 -0
  96. package/skills/sentry/references/sdks/android/profiling.md +397 -0
  97. package/skills/sentry/references/sdks/android/session-replay.md +406 -0
  98. package/skills/sentry/references/sdks/android/tracing.md +861 -0
  99. package/skills/sentry/references/sdks/browser/error-monitoring.md +861 -0
  100. package/skills/sentry/references/sdks/browser/index.md +714 -0
  101. package/skills/sentry/references/sdks/browser/logging.md +315 -0
  102. package/skills/sentry/references/sdks/browser/profiling.md +236 -0
  103. package/skills/sentry/references/sdks/browser/session-replay.md +586 -0
  104. package/skills/sentry/references/sdks/browser/tracing.md +561 -0
  105. package/skills/sentry/references/sdks/browser/user-feedback.md +354 -0
  106. package/skills/sentry/references/sdks/cloudflare/ai-monitoring.md +661 -0
  107. package/skills/sentry/references/sdks/cloudflare/crons.md +231 -0
  108. package/skills/sentry/references/sdks/cloudflare/durable-objects.md +381 -0
  109. package/skills/sentry/references/sdks/cloudflare/error-monitoring.md +329 -0
  110. package/skills/sentry/references/sdks/cloudflare/index.md +698 -0
  111. package/skills/sentry/references/sdks/cloudflare/logging.md +169 -0
  112. package/skills/sentry/references/sdks/cloudflare/nodejs-compat.md +134 -0
  113. package/skills/sentry/references/sdks/cloudflare/tracing.md +475 -0
  114. package/skills/sentry/references/sdks/cocoa/error-monitoring.md +394 -0
  115. package/skills/sentry/references/sdks/cocoa/index.md +497 -0
  116. package/skills/sentry/references/sdks/cocoa/logging.md +209 -0
  117. package/skills/sentry/references/sdks/cocoa/metrics.md +136 -0
  118. package/skills/sentry/references/sdks/cocoa/profiling.md +223 -0
  119. package/skills/sentry/references/sdks/cocoa/session-replay.md +257 -0
  120. package/skills/sentry/references/sdks/cocoa/tracing.md +524 -0
  121. package/skills/sentry/references/sdks/cocoa/user-feedback.md +310 -0
  122. package/skills/sentry/references/sdks/dotnet/crons.md +465 -0
  123. package/skills/sentry/references/sdks/dotnet/error-monitoring.md +1100 -0
  124. package/skills/sentry/references/sdks/dotnet/index.md +614 -0
  125. package/skills/sentry/references/sdks/dotnet/logging.md +556 -0
  126. package/skills/sentry/references/sdks/dotnet/metrics.md +229 -0
  127. package/skills/sentry/references/sdks/dotnet/profiling.md +296 -0
  128. package/skills/sentry/references/sdks/dotnet/tracing.md +897 -0
  129. package/skills/sentry/references/sdks/elixir/crons.md +371 -0
  130. package/skills/sentry/references/sdks/elixir/error-monitoring.md +335 -0
  131. package/skills/sentry/references/sdks/elixir/index.md +383 -0
  132. package/skills/sentry/references/sdks/elixir/logging.md +239 -0
  133. package/skills/sentry/references/sdks/elixir/tracing.md +233 -0
  134. package/skills/sentry/references/sdks/flutter/ecosystem-integrations.md +70 -0
  135. package/skills/sentry/references/sdks/flutter/error-monitoring.md +312 -0
  136. package/skills/sentry/references/sdks/flutter/index.md +728 -0
  137. package/skills/sentry/references/sdks/flutter/logging.md +387 -0
  138. package/skills/sentry/references/sdks/flutter/metrics.md +310 -0
  139. package/skills/sentry/references/sdks/flutter/profiling.md +214 -0
  140. package/skills/sentry/references/sdks/flutter/session-replay.md +308 -0
  141. package/skills/sentry/references/sdks/flutter/tracing.md +502 -0
  142. package/skills/sentry/references/sdks/go/crons.md +270 -0
  143. package/skills/sentry/references/sdks/go/error-monitoring.md +361 -0
  144. package/skills/sentry/references/sdks/go/index.md +324 -0
  145. package/skills/sentry/references/sdks/go/logging.md +354 -0
  146. package/skills/sentry/references/sdks/go/metrics.md +273 -0
  147. package/skills/sentry/references/sdks/go/profiling.md +46 -0
  148. package/skills/sentry/references/sdks/go/tracing.md +366 -0
  149. package/skills/sentry/references/sdks/index.md +41 -0
  150. package/skills/sentry/references/sdks/nestjs/ai-monitoring.md +410 -0
  151. package/skills/sentry/references/sdks/nestjs/crons.md +268 -0
  152. package/skills/sentry/references/sdks/nestjs/error-monitoring.md +729 -0
  153. package/skills/sentry/references/sdks/nestjs/index.md +699 -0
  154. package/skills/sentry/references/sdks/nestjs/logging.md +174 -0
  155. package/skills/sentry/references/sdks/nestjs/metrics.md +243 -0
  156. package/skills/sentry/references/sdks/nestjs/profiling.md +127 -0
  157. package/skills/sentry/references/sdks/nestjs/tracing.md +762 -0
  158. package/skills/sentry/references/sdks/nextjs/ai-monitoring.md +494 -0
  159. package/skills/sentry/references/sdks/nextjs/crons.md +383 -0
  160. package/skills/sentry/references/sdks/nextjs/error-monitoring.md +974 -0
  161. package/skills/sentry/references/sdks/nextjs/index.md +491 -0
  162. package/skills/sentry/references/sdks/nextjs/logging.md +381 -0
  163. package/skills/sentry/references/sdks/nextjs/metrics.md +411 -0
  164. package/skills/sentry/references/sdks/nextjs/profiling.md +403 -0
  165. package/skills/sentry/references/sdks/nextjs/session-replay.md +462 -0
  166. package/skills/sentry/references/sdks/nextjs/tracing.md +628 -0
  167. package/skills/sentry/references/sdks/node/ai-monitoring.md +303 -0
  168. package/skills/sentry/references/sdks/node/crons.md +432 -0
  169. package/skills/sentry/references/sdks/node/error-monitoring.md +1125 -0
  170. package/skills/sentry/references/sdks/node/index.md +942 -0
  171. package/skills/sentry/references/sdks/node/logging.md +380 -0
  172. package/skills/sentry/references/sdks/node/metrics.md +278 -0
  173. package/skills/sentry/references/sdks/node/profiling.md +373 -0
  174. package/skills/sentry/references/sdks/node/tracing.md +878 -0
  175. package/skills/sentry/references/sdks/php/ai-monitoring.md +310 -0
  176. package/skills/sentry/references/sdks/php/crons.md +265 -0
  177. package/skills/sentry/references/sdks/php/error-monitoring.md +626 -0
  178. package/skills/sentry/references/sdks/php/index.md +362 -0
  179. package/skills/sentry/references/sdks/php/laravel.md +542 -0
  180. package/skills/sentry/references/sdks/php/logging.md +242 -0
  181. package/skills/sentry/references/sdks/php/metrics.md +193 -0
  182. package/skills/sentry/references/sdks/php/profiling.md +115 -0
  183. package/skills/sentry/references/sdks/php/symfony.md +552 -0
  184. package/skills/sentry/references/sdks/php/tracing.md +516 -0
  185. package/skills/sentry/references/sdks/python/ai-monitoring.md +351 -0
  186. package/skills/sentry/references/sdks/python/crons.md +218 -0
  187. package/skills/sentry/references/sdks/python/error-monitoring.md +292 -0
  188. package/skills/sentry/references/sdks/python/index.md +361 -0
  189. package/skills/sentry/references/sdks/python/logging.md +234 -0
  190. package/skills/sentry/references/sdks/python/metrics.md +154 -0
  191. package/skills/sentry/references/sdks/python/profiling.md +120 -0
  192. package/skills/sentry/references/sdks/python/tracing.md +364 -0
  193. package/skills/sentry/references/sdks/react/error-monitoring.md +1607 -0
  194. package/skills/sentry/references/sdks/react/index.md +492 -0
  195. package/skills/sentry/references/sdks/react/logging.md +364 -0
  196. package/skills/sentry/references/sdks/react/profiling.md +322 -0
  197. package/skills/sentry/references/sdks/react/react-features.md +1272 -0
  198. package/skills/sentry/references/sdks/react/session-replay.md +1193 -0
  199. package/skills/sentry/references/sdks/react/tracing.md +1415 -0
  200. package/skills/sentry/references/sdks/react-native/error-monitoring.md +1481 -0
  201. package/skills/sentry/references/sdks/react-native/expo-config-plugin.md +45 -0
  202. package/skills/sentry/references/sdks/react-native/index.md +1030 -0
  203. package/skills/sentry/references/sdks/react-native/logging.md +444 -0
  204. package/skills/sentry/references/sdks/react-native/profiling.md +386 -0
  205. package/skills/sentry/references/sdks/react-native/session-replay.md +704 -0
  206. package/skills/sentry/references/sdks/react-native/tracing.md +1086 -0
  207. package/skills/sentry/references/sdks/react-native/user-feedback.md +815 -0
  208. package/skills/sentry/references/sdks/react-router-framework/error-monitoring.md +127 -0
  209. package/skills/sentry/references/sdks/react-router-framework/index.md +411 -0
  210. package/skills/sentry/references/sdks/react-router-framework/logging.md +66 -0
  211. package/skills/sentry/references/sdks/react-router-framework/profiling.md +57 -0
  212. package/skills/sentry/references/sdks/react-router-framework/react-router-framework-features.md +110 -0
  213. package/skills/sentry/references/sdks/react-router-framework/session-replay.md +67 -0
  214. package/skills/sentry/references/sdks/react-router-framework/tracing.md +96 -0
  215. package/skills/sentry/references/sdks/react-router-framework/user-feedback.md +71 -0
  216. package/skills/sentry/references/sdks/ruby/crons.md +184 -0
  217. package/skills/sentry/references/sdks/ruby/error-monitoring.md +248 -0
  218. package/skills/sentry/references/sdks/ruby/index.md +297 -0
  219. package/skills/sentry/references/sdks/ruby/logging.md +168 -0
  220. package/skills/sentry/references/sdks/ruby/metrics.md +196 -0
  221. package/skills/sentry/references/sdks/ruby/migration.md +321 -0
  222. package/skills/sentry/references/sdks/ruby/profiling.md +107 -0
  223. package/skills/sentry/references/sdks/ruby/tracing.md +388 -0
  224. package/skills/sentry/references/sdks/svelte/error-monitoring.md +456 -0
  225. package/skills/sentry/references/sdks/svelte/index.md +467 -0
  226. package/skills/sentry/references/sdks/svelte/logging.md +344 -0
  227. package/skills/sentry/references/sdks/svelte/session-replay.md +369 -0
  228. package/skills/sentry/references/sdks/svelte/tracing.md +406 -0
  229. package/skills/sentry/references/sdks/tanstack-start/error-monitoring.md +149 -0
  230. package/skills/sentry/references/sdks/tanstack-start/index.md +381 -0
  231. package/skills/sentry/references/sdks/tanstack-start/logging.md +74 -0
  232. package/skills/sentry/references/sdks/tanstack-start/session-replay.md +76 -0
  233. package/skills/sentry/references/sdks/tanstack-start/tanstackstart-features.md +128 -0
  234. package/skills/sentry/references/sdks/tanstack-start/tracing.md +123 -0
  235. package/skills/sentry/references/sdks/tanstack-start/user-feedback.md +81 -0
  236. package/skills/sentry/references/search-query-language.md +226 -0
  237. package/skills/sentry/references/semantics/angular.md +7 -0
  238. package/skills/sentry/references/semantics/app.md +28 -0
  239. package/skills/sentry/references/semantics/art.md +17 -0
  240. package/skills/sentry/references/semantics/aws.md +43 -0
  241. package/skills/sentry/references/semantics/browser.md +34 -0
  242. package/skills/sentry/references/semantics/cache.md +12 -0
  243. package/skills/sentry/references/semantics/client.md +8 -0
  244. package/skills/sentry/references/semantics/cloud.md +12 -0
  245. package/skills/sentry/references/semantics/cloudflare.md +23 -0
  246. package/skills/sentry/references/semantics/code.md +11 -0
  247. package/skills/sentry/references/semantics/culture.md +11 -0
  248. package/skills/sentry/references/semantics/db.md +21 -0
  249. package/skills/sentry/references/semantics/device.md +43 -0
  250. package/skills/sentry/references/semantics/error.md +7 -0
  251. package/skills/sentry/references/semantics/event.md +8 -0
  252. package/skills/sentry/references/semantics/exception.md +10 -0
  253. package/skills/sentry/references/semantics/faas.md +19 -0
  254. package/skills/sentry/references/semantics/file.md +8 -0
  255. package/skills/sentry/references/semantics/flag.md +7 -0
  256. package/skills/sentry/references/semantics/gcp.md +16 -0
  257. package/skills/sentry/references/semantics/gen_ai.md +53 -0
  258. package/skills/sentry/references/semantics/general.md +11 -0
  259. package/skills/sentry/references/semantics/graphql.md +9 -0
  260. package/skills/sentry/references/semantics/grpc.md +19 -0
  261. package/skills/sentry/references/semantics/http.md +34 -0
  262. package/skills/sentry/references/semantics/index.md +63 -0
  263. package/skills/sentry/references/semantics/jsonrpc.md +8 -0
  264. package/skills/sentry/references/semantics/jvm.md +12 -0
  265. package/skills/sentry/references/semantics/koa.md +7 -0
  266. package/skills/sentry/references/semantics/logger.md +7 -0
  267. package/skills/sentry/references/semantics/mcp.md +37 -0
  268. package/skills/sentry/references/semantics/mdc.md +7 -0
  269. package/skills/sentry/references/semantics/messaging.md +23 -0
  270. package/skills/sentry/references/semantics/middleware.md +7 -0
  271. package/skills/sentry/references/semantics/navigation.md +9 -0
  272. package/skills/sentry/references/semantics/nel.md +11 -0
  273. package/skills/sentry/references/semantics/network.md +17 -0
  274. package/skills/sentry/references/semantics/os.md +15 -0
  275. package/skills/sentry/references/semantics/otel.md +10 -0
  276. package/skills/sentry/references/semantics/params.md +7 -0
  277. package/skills/sentry/references/semantics/process.md +14 -0
  278. package/skills/sentry/references/semantics/react.md +7 -0
  279. package/skills/sentry/references/semantics/remix.md +7 -0
  280. package/skills/sentry/references/semantics/resource.md +7 -0
  281. package/skills/sentry/references/semantics/rpc.md +10 -0
  282. package/skills/sentry/references/semantics/score.md +10 -0
  283. package/skills/sentry/references/semantics/sentry.md +69 -0
  284. package/skills/sentry/references/semantics/server.md +8 -0
  285. package/skills/sentry/references/semantics/service.md +8 -0
  286. package/skills/sentry/references/semantics/session.md +7 -0
  287. package/skills/sentry/references/semantics/state.md +7 -0
  288. package/skills/sentry/references/semantics/thread.md +8 -0
  289. package/skills/sentry/references/semantics/timber.md +7 -0
  290. package/skills/sentry/references/semantics/trpc.md +8 -0
  291. package/skills/sentry/references/semantics/ui.md +18 -0
  292. package/skills/sentry/references/semantics/url.md +15 -0
  293. package/skills/sentry/references/semantics/user.md +17 -0
  294. package/skills/sentry/references/semantics/user_agent.md +7 -0
  295. package/skills/sentry/references/semantics/vercel.md +42 -0
  296. package/skills/sentry/references/setup-verification.md +39 -0
  297. package/skills/sentry/references/snapshots/github-actions-fanout.md +206 -0
  298. package/skills/sentry/references/snapshots/github-actions-simple.md +102 -0
  299. package/skills/sentry/references/snapshots/github-actions-swift-snapshot-testing.md +118 -0
  300. package/skills/sentry/references/snapshots/index.md +19 -0
  301. package/skills/sentry/references/snapshots/snapshot-previews.md +100 -0
  302. package/skills/sentry/references/snapshots/snapshots.md +123 -0
  303. package/skills/sentry/references/snapshots/wizard-setup.md +134 -0
  304. package/skills/testing/LICENSE +21 -0
  305. package/skills/testing/NOTICE +7 -0
  306. package/skills/testing/SKILL.md +13 -19
  307. package/skills/testing/agents/openai.yaml +1 -2
  308. package/skills/testing/references/selection.md +23 -0
  309. package/skills/testing/references/tdd.md +19 -0
  310. package/skills/testing/references/test-design.md +17 -0
  311. package/src/catalog.ts +1 -7
  312. package/skills/build-effect-apis/SKILL.md +0 -81
  313. package/skills/build-effect-apis/agents/openai.yaml +0 -4
  314. package/skills/build-effect-clis/SKILL.md +0 -92
  315. package/skills/build-effect-clis/agents/openai.yaml +0 -4
  316. package/skills/effect-architecture-audit/agents/openai.yaml +0 -4
  317. package/skills/effect-atom-state/SKILL.md +0 -97
  318. package/skills/effect-atom-state/agents/openai.yaml +0 -4
  319. package/skills/effect-ts/SKILL.md +0 -35
  320. package/skills/effect-ts/agents/openai.yaml +0 -4
  321. /package/skills/{build-effect-apis/references → effect-development/references/api}/cloudflare-workers.md +0 -0
  322. /package/skills/{build-effect-apis/references → effect-development/references/api}/runtime-assembly.md +0 -0
  323. /package/skills/{build-effect-apis/references → effect-development/references/api}/server-and-middleware.md +0 -0
  324. /package/skills/{build-effect-apis/references → effect-development/references/api}/shared-contracts.md +0 -0
  325. /package/skills/{effect-architecture-audit/references → effect-development/references/architecture}/service-and-boundary-audit.md +0 -0
  326. /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-lifecycle.md +0 -0
  327. /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-workflows.md +0 -0
  328. /package/skills/{effect-atom-state/references → effect-development/references/atom}/tanstack-start.md +0 -0
  329. /package/skills/{build-effect-clis/references → effect-development/references/cli}/command-design.md +0 -0
  330. /package/skills/{build-effect-clis/references → effect-development/references/cli}/processes-and-platform.md +0 -0
@@ -0,0 +1,475 @@
1
+ # Tracing — Sentry Cloudflare SDK
2
+
3
+ > Minimum SDK: `@sentry/cloudflare` v8.0.0+ Streaming response span tracking: v10.x+
4
+ > `propagateTraceparent`: v10.x+ OpenTelemetry compatibility tracer: v10.x+ RPC trace
5
+ > propagation (`enableRpcTracePropagation`): v10.52.0+ Workers AI (`env.AI`) `gen_ai`
6
+ > spans: v10.67.0+ Agents SDK auto conversation IDs (`instrumentAgentWithSentry`):
7
+ > v10.69.0+
8
+
9
+ ---
10
+
11
+ ## How Tracing Works
12
+
13
+ The Cloudflare SDK is **not natively OpenTelemetry-based** (unlike `@sentry/node`), but
14
+ it sets up an OpenTelemetry compatibility tracer.
15
+ This means:
16
+
17
+ - Spans emitted via `@opentelemetry/api` are captured by Sentry
18
+ - The SDK creates its own HTTP server spans for incoming requests
19
+ - Outbound `fetch()` calls are automatically traced via `fetchIntegration`
20
+ - D1 queries and Workers AI (`env.AI`) calls are traced automatically when accessed via
21
+ `env`
22
+
23
+ ---
24
+
25
+ ## Activating Tracing
26
+
27
+ Set `tracesSampleRate` or `tracesSampler` in your init options.
28
+ Without one of these, no spans are created.
29
+
30
+ ```typescript
31
+ export default Sentry.withSentry(
32
+ (env: Env) => ({
33
+ dsn: env.SENTRY_DSN,
34
+ tracesSampleRate: 1.0, // 100% in dev, lower in production
35
+ }),
36
+ handler,
37
+ );
38
+ ```
39
+
40
+ The SDK also reads `SENTRY_TRACES_SAMPLE_RATE` from `env` automatically:
41
+
42
+ ```toml
43
+ # wrangler.toml
44
+ [vars]
45
+ SENTRY_TRACES_SAMPLE_RATE = "0.1"
46
+ ```
47
+
48
+ ---
49
+
50
+ ## `tracesSampleRate` — Uniform Sampling
51
+
52
+ A number between `0.0` and `1.0`:
53
+
54
+ ```typescript
55
+ Sentry.withSentry(
56
+ (env: Env) => ({
57
+ dsn: env.SENTRY_DSN,
58
+ tracesSampleRate: env.ENVIRONMENT === "production" ? 0.1 : 1.0,
59
+ }),
60
+ handler,
61
+ );
62
+ ```
63
+
64
+ ---
65
+
66
+ ## `tracesSampler` — Dynamic Sampling
67
+
68
+ For fine-grained control:
69
+
70
+ ```typescript
71
+ Sentry.withSentry(
72
+ (env: Env) => ({
73
+ dsn: env.SENTRY_DSN,
74
+ tracesSampler: (samplingContext) => {
75
+ const url = samplingContext.attributes?.["url.full"] as string | undefined;
76
+
77
+ // Never trace health checks
78
+ if (url?.includes("/health")) return 0;
79
+
80
+ // Sample API routes at 20%
81
+ if (url?.includes("/api/")) return 0.2;
82
+
83
+ // Default: 10%
84
+ return 0.1;
85
+ },
86
+ }),
87
+ handler,
88
+ );
89
+ ```
90
+
91
+ ---
92
+
93
+ ## Automatic Spans
94
+
95
+ ### HTTP Server Spans
96
+
97
+ Every incoming request wrapped by `withSentry` or `sentryPagesPlugin` creates an
98
+ `http.server` span with:
99
+
100
+ | Attribute | Source |
101
+ | --------------------------- | ------------------------- |
102
+ | `http.request.method` | `request.method` |
103
+ | `url.full` | `request.url` |
104
+ | `http.response.status_code` | Response status |
105
+ | `http.request.body.size` | `Content-Length` header |
106
+ | `user_agent.original` | `User-Agent` header |
107
+ | `network.protocol.name` | `request.cf.httpProtocol` |
108
+
109
+ > **Note:** `OPTIONS` and `HEAD` requests do not create spans (to reduce noise) but
110
+ > errors are still captured.
111
+
112
+ ### Streaming Response Tracking
113
+
114
+ The SDK detects streaming responses and keeps the root span alive until the stream is
115
+ fully consumed. This ensures accurate duration measurement for SSE, streaming AI
116
+ responses, etc.
117
+
118
+ ### Outbound Fetch Spans
119
+
120
+ The `fetchIntegration` (enabled by default) automatically traces all outbound `fetch()`
121
+ calls:
122
+
123
+ ```typescript
124
+ // This fetch call is automatically traced
125
+ const response = await fetch("https://api.example.com/data");
126
+ ```
127
+
128
+ Each outbound fetch creates a child span with method, URL, and response status.
129
+
130
+ ### D1 Query Spans
131
+
132
+ D1 bindings are **auto-instrumented** by `withSentry` — access `env.DB` from the
133
+ handler’s `env` and queries create `db.query` spans automatically (no manual wrapping
134
+ needed):
135
+
136
+ ```typescript
137
+ // env.DB is auto-instrumented — no wrapper required
138
+ const result = await env.DB.prepare("SELECT * FROM users WHERE id = ?").bind(1).run();
139
+ ```
140
+
141
+ Span attributes include:
142
+
143
+ - `cloudflare.d1.query_type` — `first`, `run`, `all`, `raw`, `batch`, or `exec`
144
+ - `cloudflare.d1.duration` — query duration
145
+ - `cloudflare.d1.rows_read` — number of rows read
146
+ - `cloudflare.d1.rows_written` — number of rows written
147
+
148
+ See `./durable-objects.md` for full D1 coverage (prepared statements, `batch`, `exec`).
149
+
150
+ ### Workers AI Spans
151
+
152
+ The Cloudflare Workers AI binding (`env.AI`) is auto-instrumented by `withSentry`
153
+ (v10.67.0+). Calls to `env.AI.run(...)` create `gen_ai` spans following Sentry’s Agent
154
+ Tracing conventions — capturing model, request parameters, and token usage.
155
+ For the full agent tracing setup — OpenAI/Anthropic/Google Gen AI/Vercel AI/LangChain
156
+ instrumentation, the build-time Vite plugin, and manual `gen_ai.*` spans — see
157
+ `./ai-monitoring.md`.
158
+
159
+ ```typescript
160
+ // env.AI is auto-instrumented — creates a gen_ai span
161
+ const result = await env.AI.run("@cf/meta/llama-3.1-8b-instruct", {
162
+ messages: [{ role: "user", content: "What is the capital of France?" }],
163
+ });
164
+ ```
165
+
166
+ #### Tracking Conversations
167
+
168
+ > **Beta:** configuration options and behavior may change.
169
+
170
+ The Workers AI instrumentation does **not** infer the conversation ID automatically.
171
+ To group multi-turn AI calls into a single
172
+ [Conversation](https://docs.sentry.io/product/ai/monitoring/conversations/), set the ID
173
+ manually with `Sentry.setConversationId(id)`. It’s applied as the
174
+ `gen_ai.conversation.id` attribute to **all AI spans within the current scope**, so call
175
+ it once at the start of a request handler — before any `env.AI.run(...)` calls — and
176
+ every AI span for that request is grouped.
177
+ Pass `null` to unset it.
178
+
179
+ When you use the [Cloudflare Agents SDK](https://developers.cloudflare.com/agents/),
180
+ prefer `instrumentAgentWithSentry` (v10.69.0+) — it sets the conversation ID
181
+ automatically for every chat turn and `@callable()` RPC call, and rotates it when the
182
+ chat is cleared. See `./durable-objects.md`. On older SDK versions, or when you need to
183
+ control the ID yourself, set it manually at the top of the handler (`onRequest` for
184
+ `Agent`, `onChatMessage` for `AIChatAgent`) so every AI call triggered while handling
185
+ that message shares the ID. Use your chat session ID — `this.name` works when one agent
186
+ instance is one chat session, but not when instances are per-user or a shared singleton
187
+ like `"default"`:
188
+
189
+ ```typescript
190
+ import * as Sentry from "@sentry/cloudflare";
191
+ import { AIChatAgent } from "@cloudflare/ai-chat";
192
+
193
+ class MyChatAgentBase extends AIChatAgent<Env> {
194
+ async onChatMessage(): Promise<Response | undefined> {
195
+ // Every AI call in this chat session shares the same conversation ID
196
+ Sentry.setConversationId(this.name);
197
+
198
+ const result = await this.env.AI.run("@cf/meta/llama-3.1-8b-instruct", {
199
+ messages: this.messages.map((m) => ({
200
+ role: m.role,
201
+ content: m.parts
202
+ .filter((p) => p.type === "text")
203
+ .map((p) => p.text)
204
+ .join(""),
205
+ })),
206
+ });
207
+
208
+ return new Response(JSON.stringify(result));
209
+ }
210
+ }
211
+
212
+ export const MyChatAgent = Sentry.instrumentAgentWithSentry(
213
+ (env: Env) => ({
214
+ dsn: env.SENTRY_DSN,
215
+ tracesSampleRate: 1.0,
216
+ }),
217
+ MyChatAgentBase,
218
+ );
219
+ ```
220
+
221
+ (With `instrumentAgentWithSentry` the explicit `setConversationId(this.name)` call above
222
+ is redundant — shown for the manual/override case.)
223
+ For a plain `Agent`, the pattern is the same — call `Sentry.setConversationId(id)` at
224
+ the top of `onRequest` before your `this.env.AI.run(...)` calls.
225
+ Grouped calls appear in the
226
+ [Conversations](https://docs.sentry.io/product/ai/monitoring/conversations/) view, where
227
+ you can inspect token usage, latency, and errors across the whole conversation.
228
+
229
+ ---
230
+
231
+ ## Custom Spans
232
+
233
+ ### `Sentry.startSpan`
234
+
235
+ Wrap a block of code in a span:
236
+
237
+ ```typescript
238
+ const result = await Sentry.startSpan(
239
+ {
240
+ op: "function",
241
+ name: "processPayment",
242
+ attributes: { "payment.provider": "stripe" },
243
+ },
244
+ async (span) => {
245
+ const payment = await chargeCustomer(amount);
246
+ span.setAttributes({ "payment.id": payment.id });
247
+ return payment;
248
+ },
249
+ );
250
+ ```
251
+
252
+ ### `Sentry.startInactiveSpan`
253
+
254
+ Create a span without making it the active span:
255
+
256
+ ```typescript
257
+ const span = Sentry.startInactiveSpan({
258
+ op: "cache.lookup",
259
+ name: "Check KV cache",
260
+ });
261
+
262
+ const cached = await env.KV.get(key);
263
+ span.end();
264
+ ```
265
+
266
+ ### `Sentry.startSpanManual`
267
+
268
+ Full control over span lifecycle:
269
+
270
+ ```typescript
271
+ await Sentry.startSpanManual({ op: "task", name: "Background processing" }, async (span) => {
272
+ try {
273
+ await doWork();
274
+ span.setStatus({ code: 1 }); // OK
275
+ } catch (error) {
276
+ span.setStatus({ code: 2, message: "internal_error" }); // ERROR
277
+ throw error;
278
+ } finally {
279
+ span.end();
280
+ }
281
+ });
282
+ ```
283
+
284
+ ---
285
+
286
+ ## Distributed Tracing
287
+
288
+ ### Incoming Trace Propagation
289
+
290
+ The SDK automatically reads `sentry-trace` and `baggage` headers from incoming requests
291
+ and continues the trace.
292
+ This works out of the box with `withSentry` and `sentryPagesPlugin`.
293
+
294
+ ### Outbound Trace Propagation
295
+
296
+ The `fetchIntegration` automatically injects `sentry-trace` and `baggage` headers into
297
+ outbound `fetch()` calls.
298
+ Control which URLs get trace headers with `tracePropagationTargets`:
299
+
300
+ ```typescript
301
+ Sentry.withSentry(
302
+ (env: Env) => ({
303
+ dsn: env.SENTRY_DSN,
304
+ tracesSampleRate: 1.0,
305
+ tracePropagationTargets: ["api.myservice.com", /^https:\/\/.*\.myapp\.com/],
306
+ }),
307
+ handler,
308
+ );
309
+ ```
310
+
311
+ By default (when `tracePropagationTargets` is not set), trace headers are attached to
312
+ **all** outbound requests.
313
+
314
+ ### `propagateTraceparent`
315
+
316
+ Controls whether the `sentry-trace` header is attached to outgoing requests (default:
317
+ SDK behavior). Set explicitly to control:
318
+
319
+ ```typescript
320
+ Sentry.withSentry(
321
+ (env: Env) => ({
322
+ dsn: env.SENTRY_DSN,
323
+ propagateTraceparent: true, // explicit opt-in
324
+ }),
325
+ handler,
326
+ );
327
+ ```
328
+
329
+ ### Manual Trace Continuation
330
+
331
+ ```typescript
332
+ const traceData = Sentry.getTraceData();
333
+ // Returns { "sentry-trace": "...", "baggage": "..." }
334
+
335
+ // Inject into outbound request manually
336
+ const response = await fetch("https://api.example.com", {
337
+ headers: {
338
+ ...traceData,
339
+ },
340
+ });
341
+ ```
342
+
343
+ ### HTML Meta Tags (for frontend)
344
+
345
+ ```typescript
346
+ const metaTags = Sentry.getTraceMetaTags();
347
+ // Returns: <meta name="sentry-trace" content="..."/><meta name="baggage" content="..."/>
348
+
349
+ // Include in HTML response for frontend SDK to continue the trace
350
+ return new Response(`<html><head>${metaTags}</head>...`, {
351
+ headers: { "Content-Type": "text/html" },
352
+ });
353
+ ```
354
+
355
+ ### RPC Trace Propagation
356
+
357
+ > `enableRpcTracePropagation`: v10.52.0+
358
+
359
+ Trace context isn’t propagated across
360
+ [Service Binding](https://developers.cloudflare.com/workers/runtime-apis/bindings/service-bindings/)
361
+ / [RPC](https://developers.cloudflare.com/workers/runtime-apis/rpc/) calls (including
362
+ Durable Object RPC and Workflows) by default.
363
+ Set `enableRpcTracePropagation: true` on **both** the caller and the receiver to link
364
+ these calls into a single distributed trace.
365
+
366
+ **Recommended:** enable it whenever your Workers communicate over RPC / service bindings
367
+ or you use Durable Objects or Workflows.
368
+
369
+ **Caller (Worker calling into a service binding / DO):**
370
+
371
+ ```typescript
372
+ export default Sentry.withSentry(
373
+ (env: Env) => ({
374
+ dsn: env.SENTRY_DSN,
375
+ tracesSampleRate: 1.0,
376
+ enableRpcTracePropagation: true,
377
+ }),
378
+ handler,
379
+ );
380
+ ```
381
+
382
+ **Receiver (the Durable Object / target Worker):**
383
+
384
+ ```typescript
385
+ export const MyDurableObject = Sentry.instrumentDurableObjectWithSentry(
386
+ (env: Env) => ({
387
+ dsn: env.SENTRY_DSN,
388
+ tracesSampleRate: 1.0,
389
+ enableRpcTracePropagation: true,
390
+ }),
391
+ MyDurableObjectBase,
392
+ );
393
+ ```
394
+
395
+ ---
396
+
397
+ ## Durable Object Tracing
398
+
399
+ Durable Objects instrumented with `instrumentDurableObjectWithSentry` automatically
400
+ create spans for:
401
+
402
+ - `fetch` — creates `http.server` spans (same as regular fetch handlers)
403
+ - `alarm` — creates spans named `alarm`
404
+ - `webSocketMessage` — creates spans named `webSocketMessage`
405
+ - `webSocketClose` — creates spans named `webSocketClose`
406
+ - `webSocketError` — creates spans named `webSocketError`
407
+ - **RPC methods** — any public instance method creates spans with `op: "rpc"`
408
+
409
+ See `./durable-objects.md` for full setup.
410
+
411
+ ---
412
+
413
+ ## Workflow Step Tracing
414
+
415
+ Workflows instrumented with `instrumentWorkflowWithSentry` create spans for each
416
+ `step.do()` call:
417
+
418
+ ```typescript
419
+ // Each step.do() creates a span with op "function.step.do"
420
+ await step.do("process-payment", async () => {
421
+ return await processPayment();
422
+ });
423
+ ```
424
+
425
+ See the Workflows section in `./durable-objects.md` for full setup.
426
+
427
+ ---
428
+
429
+ ## Best Practices
430
+
431
+ 1. **Set `tracesSampleRate` low in production** — Cloudflare Workers handle high request
432
+ volumes. Start with `0.05`–`0.1` and adjust based on volume and cost.
433
+
434
+ 2. **Use `tracePropagationTargets`** — avoid leaking trace headers to third-party APIs.
435
+ Only propagate to your own services.
436
+
437
+ 3. **Access bindings via `env`** — D1 and Workers AI are auto-instrumented when you use
438
+ `env.DB` / `env.AI` directly, giving query- and model-level visibility with no manual
439
+ wrapping.
440
+
441
+ 4. **Use `startSpan` for custom operations** — wrap business logic in spans for detailed
442
+ visibility beyond HTTP/DB.
443
+
444
+ 5. **Don’t forget `span.end()`** — when using `startInactiveSpan` or `startSpanManual`,
445
+ always end the span.
446
+
447
+ ### `waitUntil()` Background Work
448
+
449
+ Spans started inside `ctx.waitUntil()` run **after** the response is returned, so the
450
+ request’s root span has usually already ended.
451
+ To make sure background spans are recorded as their own transaction, start them with
452
+ `forceTransaction: true`:
453
+
454
+ ```typescript
455
+ ctx.waitUntil(
456
+ Sentry.startSpan({ name: "background-cleanup", op: "task", forceTransaction: true }, async () => {
457
+ await cleanup(env.DB);
458
+ }),
459
+ );
460
+ ```
461
+
462
+ ---
463
+
464
+ ## Troubleshooting
465
+
466
+ | Issue | Solution |
467
+ | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
468
+ | No traces appearing | Verify `tracesSampleRate` or `tracesSampler` is set in init options |
469
+ | Missing outbound fetch spans | Ensure `fetchIntegration` is not removed from `defaultIntegrations` |
470
+ | Trace headers not propagated | Check `tracePropagationTargets` includes the target URL |
471
+ | D1 spans not appearing | Access the binding via `env.DB` (auto-instrumented by `withSentry`); ensure `tracesSampleRate` is set |
472
+ | RPC / Durable Object calls not in the same trace | Set `enableRpcTracePropagation: true` on **both** caller and receiver |
473
+ | Background (`waitUntil`) work missing from traces | Start the span with `forceTransaction: true` |
474
+ | Very short span durations (0ms) | Expected for CPU-bound work — Cloudflare Workers timers only advance during I/O |
475
+ | Streaming response spans too short | Update to latest SDK — streaming response tracking was added in v10.x |