@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,494 @@
1
+ # AI Monitoring — Sentry Next.js SDK
2
+
3
+ > OpenAI integration: `@sentry/nextjs` ≥10.53.0+\
4
+ > Vercel AI SDK integration: ≥10.53.0+\
5
+ > Anthropic integration: ≥10.53.0+
6
+
7
+ > ⚠️ **Tracing must be enabled.** AI monitoring piggybacks on tracing infrastructure.
8
+ > `tracesSampleRate` must be > 0.
9
+
10
+ ---
11
+
12
+ ## Overview
13
+
14
+ Sentry AI Agents Monitoring automatically tracks:
15
+
16
+ - Agent runs and error rates
17
+ - LLM calls (model, token counts, estimated cost)
18
+ - Tool calls and outputs
19
+ - Agent handoffs
20
+ - Full prompt/completion data (opt-in)
21
+ - Performance bottlenecks across the AI pipeline
22
+
23
+ ---
24
+
25
+ ## Supported AI Libraries
26
+
27
+ | Library | Integration API | Auto-enabled (Node server)? | Min SDK Version |
28
+ | -------------------------------------- | -------------------------------------------------------- | ----------------------------- | --------------- |
29
+ | **OpenAI** (`openai`) | `openAIIntegration` / `instrumentOpenAiClient` | ✅ Yes | **10.53.0** |
30
+ | **Vercel AI SDK** (`ai`) | `vercelAIIntegration` | ✅ Yes (Node), ❌ Edge manual | **10.53.0** |
31
+ | **Anthropic** (`@anthropic-ai/sdk`) | `anthropicAIIntegration` / `instrumentAnthropicAiClient` | ✅ Yes | **10.53.0** |
32
+ | **Google Gen AI** (`@google/genai`) | `googleGenAIIntegration` | ✅ Yes | **10.53.0** |
33
+ | **LangChain** (`langchain`) | `langChainIntegration` | ✅ Yes | **10.53.0** |
34
+ | **LangGraph** (`@langchain/langgraph`) | `langGraphIntegration` | ✅ Yes | **10.53.0** |
35
+
36
+ ---
37
+
38
+ ## OpenAI Integration
39
+
40
+ ### Which API to Use?
41
+
42
+ | Context | API |
43
+ | ----------------------------------------------------------------------- | ---------------------------------------------------------------- |
44
+ | **Next.js server-side** (API routes, Server Components, Route Handlers) | `Sentry.openAIIntegration()` in `sentry.server.config.ts` |
45
+ | **Browser / client-side** | `Sentry.instrumentOpenAiClient(openaiInstance)` — manual wrapper |
46
+
47
+ ### Server-Side Setup (`sentry.server.config.ts`)
48
+
49
+ `openAIIntegration` is **enabled by default** on the server.
50
+ Pass it explicitly to customize options:
51
+
52
+ ```typescript
53
+ // sentry.server.config.ts
54
+ import * as Sentry from "@sentry/nextjs";
55
+
56
+ Sentry.init({
57
+ dsn: process.env.SENTRY_DSN,
58
+
59
+ // Tracing MUST be enabled for AI monitoring
60
+ tracesSampleRate: 1.0,
61
+ dataCollection: {
62
+ // To disable sending user data and HTTP bodies, uncomment the lines below. For more info visit:
63
+ // https://docs.sentry.io/platforms/javascript/guides/nextjs/configuration/options/#dataCollection
64
+ // userInfo: false,
65
+ // httpBodies: [],
66
+ },
67
+
68
+ integrations: [
69
+ Sentry.openAIIntegration(), // recordInputs/recordOutputs default to true (governed by dataCollection.genAI)
70
+ ],
71
+ });
72
+ ```
73
+
74
+ ### Client-Side / Manual Wrapping
75
+
76
+ With `dataCollection`, genAI input/output capture is **on by default**. To disable it,
77
+ set `dataCollection: { genAI: { inputs: false, outputs: false } }` in the matching
78
+ client-side `Sentry.init()`.
79
+
80
+ ```typescript
81
+ import OpenAI from "openai";
82
+ import * as Sentry from "@sentry/nextjs";
83
+
84
+ const openai = new OpenAI({
85
+ apiKey: process.env.OPENAI_API_KEY, // ⚠️ Never expose this in the browser!
86
+ });
87
+
88
+ // Wrap once at module level — reuse this client everywhere.
89
+ // Input/output recording is on by default (governed by dataCollection.genAI) unless explicitly overridden.
90
+ const client = Sentry.instrumentOpenAiClient(openai);
91
+
92
+ const response = await client.chat.completions.create({
93
+ model: "gpt-4o",
94
+ messages: [{ role: "user", content: "Hello!" }],
95
+ });
96
+ ```
97
+
98
+ ### Streaming — Important
99
+
100
+ For streamed responses, you **must** pass `stream_options: { include_usage: true }`.
101
+ Without this, OpenAI does not include token counts in streamed responses, so Sentry
102
+ cannot capture usage metrics:
103
+
104
+ ```typescript
105
+ const stream = await client.chat.completions.create({
106
+ model: "gpt-4o",
107
+ messages: [{ role: "user", content: "Hello!" }],
108
+ stream: true,
109
+ stream_options: { include_usage: true }, // ← REQUIRED for token tracking
110
+ });
111
+ ```
112
+
113
+ ### OpenAI Configuration Options
114
+
115
+ | Option | Type | Default | Description |
116
+ | --------------- | --------- | ------------------------------------------- | --------------------------------------- |
117
+ | `recordInputs` | `boolean` | `true` (governed by `dataCollection.genAI`) | Capture prompts/messages sent to OpenAI |
118
+ | `recordOutputs` | `boolean` | `true` (governed by `dataCollection.genAI`) | Capture generated text/responses |
119
+
120
+ **Supported versions:** `openai` ≥4.0.0 <7
121
+
122
+ ---
123
+
124
+ ## Vercel AI SDK Integration
125
+
126
+ ### Setup
127
+
128
+ The integration is **auto-enabled** in the Node runtime.
129
+ For the Edge runtime, add it explicitly:
130
+
131
+ ```typescript
132
+ // sentry.server.config.ts — Node runtime (auto-enabled, customize here)
133
+ import * as Sentry from "@sentry/nextjs";
134
+
135
+ Sentry.init({
136
+ dsn: process.env.SENTRY_DSN,
137
+ tracesSampleRate: 1.0,
138
+ dataCollection: {
139
+ // To disable sending user data and HTTP bodies, uncomment the lines below. For more info visit:
140
+ // https://docs.sentry.io/platforms/javascript/guides/nextjs/configuration/options/#dataCollection
141
+ // userInfo: false,
142
+ // httpBodies: [],
143
+ },
144
+ integrations: [
145
+ Sentry.vercelAIIntegration({
146
+ force: true, // ← Required for Vercel production deployments (see note below)
147
+ }),
148
+ ],
149
+ });
150
+ ```
151
+
152
+ ```typescript
153
+ // sentry.edge.config.ts — Edge runtime requires manual opt-in
154
+ import * as Sentry from "@sentry/nextjs";
155
+
156
+ Sentry.init({
157
+ dsn: process.env.SENTRY_DSN,
158
+ tracesSampleRate: 1.0,
159
+ dataCollection: {
160
+ // To disable sending user data and HTTP bodies, uncomment the lines below. For more info visit:
161
+ // https://docs.sentry.io/platforms/javascript/guides/nextjs/configuration/options/#dataCollection
162
+ // userInfo: false,
163
+ // httpBodies: [],
164
+ },
165
+ integrations: [Sentry.vercelAIIntegration()],
166
+ });
167
+ ```
168
+
169
+ ### Per-Call Telemetry (Required)
170
+
171
+ You **must** pass `experimental_telemetry: { isEnabled: true }` to every AI SDK function
172
+ call you want traced:
173
+
174
+ ```typescript
175
+ import { generateText, generateObject, streamText } from "ai";
176
+ import { openai } from "@ai-sdk/openai";
177
+
178
+ // generateText
179
+ const result = await generateText({
180
+ model: openai("gpt-4o"),
181
+ prompt: "What is the capital of France?",
182
+ experimental_telemetry: {
183
+ isEnabled: true,
184
+ functionId: "my-text-generation", // helps identify this function in traces
185
+ recordInputs: true,
186
+ recordOutputs: true,
187
+ },
188
+ });
189
+
190
+ // generateObject
191
+ const { object } = await generateObject({
192
+ model: openai("gpt-4o"),
193
+ schema: z.object({ answer: z.string() }),
194
+ prompt: "...",
195
+ experimental_telemetry: { isEnabled: true, functionId: "my-object-gen" },
196
+ });
197
+
198
+ // streamText
199
+ const { textStream } = await streamText({
200
+ model: openai("gpt-4o"),
201
+ prompt: "...",
202
+ experimental_telemetry: { isEnabled: true, functionId: "my-stream" },
203
+ });
204
+ ```
205
+
206
+ ### Vercel Production: `force: true`
207
+
208
+ When deployed to Vercel, the `ai` package gets bundled in Next.js production builds.
209
+ This prevents automatic module detection, causing spans to use raw names (`ai.toolCall`,
210
+ `ai.streamText`) instead of semantic names (`gen_ai.execute_tool`,
211
+ `gen_ai.stream_text`).
212
+
213
+ **Fix — always use `force: true` in `sentry.server.config.ts` when deploying to
214
+ Vercel:**
215
+
216
+ ```typescript
217
+ Sentry.vercelAIIntegration({ force: true });
218
+ ```
219
+
220
+ ### Vercel AI SDK Configuration Options
221
+
222
+ | Option | Type | Default | Min SDK | Description |
223
+ | --------------- | --------- | ------- | ------- | -------------------------------------------------------------------------- |
224
+ | `force` | `boolean` | `false` | 9.29.0 | Force-enable regardless of module detection. Use on Vercel. |
225
+ | `recordInputs` | `boolean` | `true`* | 9.27.0 | Capture inputs. *Defaults to `true` (governed by `dataCollection.genAI`). |
226
+ | `recordOutputs` | `boolean` | `true`* | 9.27.0 | Capture outputs. *Defaults to `true` (governed by `dataCollection.genAI`). |
227
+
228
+ **Supported versions:** `ai` ≥3.0.0 ≤6
229
+
230
+ ---
231
+
232
+ ## Anthropic Integration
233
+
234
+ ### Server-Side Setup
235
+
236
+ ```typescript
237
+ // sentry.server.config.ts
238
+ import * as Sentry from "@sentry/nextjs";
239
+
240
+ Sentry.init({
241
+ dsn: process.env.SENTRY_DSN,
242
+ tracesSampleRate: 1.0,
243
+ dataCollection: {
244
+ // To disable sending user data and HTTP bodies, uncomment the lines below. For more info visit:
245
+ // https://docs.sentry.io/platforms/javascript/guides/nextjs/configuration/options/#dataCollection
246
+ // userInfo: false,
247
+ // httpBodies: [],
248
+ },
249
+ integrations: [Sentry.anthropicAIIntegration()],
250
+ });
251
+ ```
252
+
253
+ ### Manual Wrapping
254
+
255
+ ```typescript
256
+ import Anthropic from "@anthropic-ai/sdk";
257
+ import * as Sentry from "@sentry/nextjs";
258
+
259
+ const anthropic = new Anthropic({
260
+ apiKey: process.env.ANTHROPIC_API_KEY, // ⚠️ Never expose in the browser!
261
+ });
262
+
263
+ // Input/output recording is on by default (governed by dataCollection.genAI) unless explicitly overridden.
264
+ const client = Sentry.instrumentAnthropicAiClient(anthropic);
265
+
266
+ const response = await client.messages.create({
267
+ model: "claude-3-5-sonnet-20241022",
268
+ max_tokens: 1024,
269
+ messages: [{ role: "user", content: "Hello, Claude!" }],
270
+ });
271
+ ```
272
+
273
+ ### Supported Anthropic Operations
274
+
275
+ | Operation | Method |
276
+ | ------------------ | ------------------------------- |
277
+ | Create messages | `client.messages.create()` |
278
+ | Stream messages | `client.messages.stream()` |
279
+ | Count tokens | `client.messages.countTokens()` |
280
+ | Legacy completions | `client.completions.create()` |
281
+ | Beta messages | `client.beta.messages.create()` |
282
+
283
+ **Supported versions:** `@anthropic-ai/sdk` ≥0.19.2 <1.0.0
284
+
285
+ ---
286
+
287
+ ## Token Usage Tracking
288
+
289
+ Sentry automatically captures token usage following OpenTelemetry GenAI semantic
290
+ conventions:
291
+
292
+ | Span Attribute | Description |
293
+ | --------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
294
+ | `gen_ai.request.model` | Model name |
295
+ | `gen_ai.request.reasoning_effort` | Reasoning effort level for reasoning models (e.g., `low`, `medium`, `high`). Supported values vary by provider. |
296
+ | `gen_ai.usage.input_tokens` | Prompt/input token count |
297
+ | `gen_ai.usage.output_tokens` | Completion/output token count |
298
+ | `gen_ai.usage.input_tokens.cached` | Cached input tokens |
299
+ | `gen_ai.usage.input_tokens.cache_write` | Cache write tokens |
300
+ | `gen_ai.usage.output_tokens.reasoning` | Reasoning tokens (e.g., o1 models) |
301
+
302
+ **Cost estimates** are sourced from models.dev and OpenRouter.
303
+ Limitations: no volume discounts, no non-token charges, unrecognized models show no
304
+ estimate.
305
+
306
+ ---
307
+
308
+ ## Prompt/Completion Capture & PII
309
+
310
+ `recordInputs` captures prompts sent to the AI API.\
311
+ `recordOutputs` captures the generated text/completions returned.
312
+
313
+ With `dataCollection`, genAI input/output capture is **on by default**. To disable it,
314
+ set `dataCollection: { genAI: { inputs: false, outputs: false } }`:
315
+
316
+ ```typescript
317
+ Sentry.init({
318
+ dsn: process.env.SENTRY_DSN,
319
+ dataCollection: {
320
+ genAI: { inputs: false, outputs: false },
321
+ },
322
+ tracesSampleRate: 1.0,
323
+ });
324
+ ```
325
+
326
+ Use explicit integration options only when you need per-integration overrides instead of
327
+ the SDK-level default:
328
+
329
+ ```typescript
330
+ integrations: [
331
+ Sentry.openAIIntegration({
332
+ recordInputs: false, // opt out for this integration despite genAI capture being on by default
333
+ recordOutputs: false,
334
+ }),
335
+ ],
336
+ ```
337
+
338
+ > ⚠️ **PII warning:** Prompts often contain user-supplied text.
339
+ > If users include personal data in prompts, enabling `recordInputs` will send that data
340
+ > to Sentry. Review your privacy policy before enabling.
341
+
342
+ ---
343
+
344
+ ## Complete Setup Example
345
+
346
+ ```typescript
347
+ // sentry.server.config.ts
348
+ import * as Sentry from "@sentry/nextjs";
349
+
350
+ Sentry.init({
351
+ dsn: process.env.SENTRY_DSN,
352
+ tracesSampleRate: 1.0,
353
+ dataCollection: {
354
+ // To disable sending user data and HTTP bodies, uncomment the lines below. For more info visit:
355
+ // https://docs.sentry.io/platforms/javascript/guides/nextjs/configuration/options/#dataCollection
356
+ // userInfo: false,
357
+ // httpBodies: [],
358
+ },
359
+ integrations: [
360
+ Sentry.openAIIntegration(),
361
+ Sentry.vercelAIIntegration({ force: true }),
362
+ Sentry.anthropicAIIntegration(),
363
+ ],
364
+ });
365
+ ```
366
+
367
+ ```typescript
368
+ // app/api/chat/route.ts — OpenAI with streaming
369
+ import OpenAI from "openai";
370
+ import * as Sentry from "@sentry/nextjs";
371
+
372
+ const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
373
+ const sentryOpenAI = Sentry.instrumentOpenAiClient(openai);
374
+
375
+ export async function POST(req: Request) {
376
+ const { messages } = await req.json();
377
+
378
+ const completion = await sentryOpenAI.chat.completions.create({
379
+ model: "gpt-4o",
380
+ messages,
381
+ stream: true,
382
+ stream_options: { include_usage: true }, // ← Required for token tracking
383
+ });
384
+
385
+ // ... stream response to client
386
+ }
387
+ ```
388
+
389
+ ```typescript
390
+ // app/api/generate/route.ts — Vercel AI SDK
391
+ import { generateText } from "ai";
392
+ import { openai } from "@ai-sdk/openai";
393
+
394
+ export async function POST(req: Request) {
395
+ const { prompt } = await req.json();
396
+
397
+ const result = await generateText({
398
+ model: openai("gpt-4o"),
399
+ prompt,
400
+ experimental_telemetry: {
401
+ isEnabled: true, // ← Required for Sentry to capture spans
402
+ functionId: "chat-handler",
403
+ recordInputs: true,
404
+ recordOutputs: true,
405
+ },
406
+ });
407
+
408
+ return Response.json({ text: result.text });
409
+ }
410
+ ```
411
+
412
+ ---
413
+
414
+ ## AI Agents Dashboard
415
+
416
+ Access at **Sentry → AI → Agents** (or **Insights → AI**).
417
+
418
+ | Tab | What you see |
419
+ | ------------ | ------------------------------------------------------------------------- |
420
+ | **Overview** | Agent runs, error rates, duration, LLM calls, tokens used, tool calls |
421
+ | **Models** | Per-model cost estimates, token breakdown (input/output/cached), duration |
422
+ | **Tools** | Per-tool call counts, error rates, input/output for each invocation |
423
+ | **Traces** | Full pipeline from user request to final response with all spans |
424
+
425
+ ---
426
+
427
+ ## SDK Version Matrix
428
+
429
+ | Feature | Min SDK Version |
430
+ | ------------------------------------------------------------------- | --------------- |
431
+ | Vercel AI SDK integration (Node/CF/Edge/Bun) | **10.53.0** |
432
+ | Vercel AI SDK integration (Deno) | **10.53.0** |
433
+ | Vercel AI `recordInputs`/`recordOutputs` | 9.27.0 |
434
+ | Vercel AI `force` option | 9.29.0 |
435
+ | OpenAI integration (`openAIIntegration` / `instrumentOpenAiClient`) | **10.53.0** |
436
+
437
+ ---
438
+
439
+ ## Sampling Strategy
440
+
441
+ If your `tracesSampleRate` is below 1.0, you may be losing entire agent runs.
442
+ Use `tracesSampler` patterns that keep 100% of gen_ai-related transactions while
443
+ sampling other traffic at a lower rate.
444
+
445
+ ---
446
+
447
+ ## Conversation Tracking
448
+
449
+ Link AI spans across turns into a chat-style timeline at **Explore > Conversations**.
450
+
451
+ **Prerequisites:** `streamGenAiSpans` defaults to `true` (SDK >=10.61.0, so AI spans
452
+ stream as standalone items) and genAI input/output capture enabled (on by default via
453
+ `dataCollection`) in your server config — Conversations reconstructs the chat from
454
+ input/output attributes, so without input/output capture the view will be empty.
455
+
456
+ ```typescript
457
+ import * as Sentry from "@sentry/nextjs";
458
+
459
+ // Set at the start of a conversation (server-side)
460
+ Sentry.setConversationId("conv_abc123");
461
+
462
+ // All subsequent AI calls carry gen_ai.conversation.id: "conv_abc123"
463
+ await openai.chat.completions.create({
464
+ model: "gpt-5.5",
465
+ messages: [{ role: "user", content: "Hello" }],
466
+ });
467
+ ```
468
+
469
+ A single conversation can span multiple traces, and a single trace can contain multiple
470
+ conversations.
471
+
472
+ ### User Attribution
473
+
474
+ To populate the **User** column in Conversations, call `setUser` once per request or
475
+ session before any AI calls:
476
+
477
+ ```typescript
478
+ Sentry.setUser({ id: "user_123", email: "jane@example.com", username: "jane" });
479
+ ```
480
+
481
+ ## Troubleshooting
482
+
483
+ | Issue | Solution |
484
+ | ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
485
+ | No AI spans appearing | Verify `tracesSampleRate` > 0; AI monitoring requires tracing |
486
+ | Token counts missing in streams | Add `stream_options: { include_usage: true }` to all OpenAI streaming calls |
487
+ | Vercel AI spans show raw names (`ai.toolCall`) | Add `vercelAIIntegration({ force: true })` in server config |
488
+ | `recordInputs`/`recordOutputs` not capturing | genAI capture is on by default; ensure you haven’t set `dataCollection: { genAI: { inputs: false } }`, or explicitly pass `recordInputs: true` / `recordOutputs: true` to the integration |
489
+ | Anthropic spans missing | Check SDK version supports Anthropic integration; add `anthropicAIIntegration()` explicitly |
490
+ | Cost estimates not showing | Model name must match models.dev/OpenRouter pricing data; custom/fine-tuned models may show no estimate |
491
+ | Edge runtime AI spans missing | Add `vercelAIIntegration()` to `sentry.edge.config.ts` explicitly (not auto-enabled for Edge) |
492
+ | User column shows “Unknown” | Call `Sentry.setUser()` once per request or session |
493
+ | OpenAI browser-side spans missing | Use `instrumentOpenAiClient()` wrapper — `openAIIntegration()` only works server-side |
494
+ | No data in AI Agents dashboard | Ensure traces are being sent; check DSN and `tracesSampleRate` |