quiver-cli 1.3.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 (407) hide show
  1. package/README.md +197 -239
  2. package/dist/cli.js +3163 -2040
  3. package/package.json +10 -11
  4. package/template/.agents/AGENTS.md +0 -26
  5. package/template/.agents/commands/cp.md +0 -108
  6. package/template/.agents/commands/next-setup.md +0 -1064
  7. package/template/.agents/commands/review.md +0 -68
  8. package/template/.agents/commands/terraform-readme.md +0 -38
  9. package/template/.agents/config.json +0 -80
  10. package/template/.agents/plugins/opencode/rtk.ts +0 -34
  11. package/template/.agents/skills/agent-browser/SKILL.md +0 -52
  12. package/template/.agents/skills/apps/skybridge/SKILL.md +0 -52
  13. package/template/.agents/skills/code/cleanup/SKILL.md +0 -26
  14. package/template/.agents/skills/code/improve/SKILL.md +0 -122
  15. package/template/.agents/skills/code/improve/references/audit-playbook.md +0 -130
  16. package/template/.agents/skills/code/improve/references/closing-the-loop.md +0 -96
  17. package/template/.agents/skills/code/improve/references/plan-template.md +0 -197
  18. package/template/.agents/skills/code/vercel-react-best-practices/AGENTS.md +0 -3810
  19. package/template/.agents/skills/code/vercel-react-best-practices/README.md +0 -123
  20. package/template/.agents/skills/code/vercel-react-best-practices/SKILL.md +0 -149
  21. package/template/.agents/skills/code/vercel-react-best-practices/metadata.json +0 -15
  22. package/template/.agents/skills/code/vercel-react-best-practices/rules/_sections.md +0 -46
  23. package/template/.agents/skills/code/vercel-react-best-practices/rules/_template.md +0 -28
  24. package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-effect-event-deps.md +0 -56
  25. package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -55
  26. package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-init-once.md +0 -42
  27. package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-use-latest.md +0 -39
  28. package/template/.agents/skills/code/vercel-react-best-practices/rules/async-api-routes.md +0 -38
  29. package/template/.agents/skills/code/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +0 -37
  30. package/template/.agents/skills/code/vercel-react-best-practices/rules/async-defer-await.md +0 -82
  31. package/template/.agents/skills/code/vercel-react-best-practices/rules/async-dependencies.md +0 -51
  32. package/template/.agents/skills/code/vercel-react-best-practices/rules/async-parallel.md +0 -28
  33. package/template/.agents/skills/code/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -99
  34. package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-analyzable-paths.md +0 -63
  35. package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -60
  36. package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-conditional.md +0 -31
  37. package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -49
  38. package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -35
  39. package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-preload.md +0 -50
  40. package/template/.agents/skills/code/vercel-react-best-practices/rules/client-event-listeners.md +0 -74
  41. package/template/.agents/skills/code/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -71
  42. package/template/.agents/skills/code/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -48
  43. package/template/.agents/skills/code/vercel-react-best-practices/rules/client-swr-dedup.md +0 -56
  44. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -107
  45. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-cache-function-results.md +0 -80
  46. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-cache-property-access.md +0 -28
  47. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-cache-storage.md +0 -70
  48. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-combine-iterations.md +0 -32
  49. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-early-exit.md +0 -50
  50. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-flatmap-filter.md +0 -60
  51. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -45
  52. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-index-maps.md +0 -37
  53. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-length-check-first.md +0 -49
  54. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-min-max-loop.md +0 -82
  55. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-request-idle-callback.md +0 -105
  56. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -24
  57. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -57
  58. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-activity.md +0 -26
  59. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
  60. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -40
  61. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -38
  62. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -46
  63. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
  64. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +0 -30
  65. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-resource-hints.md +0 -85
  66. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-script-defer-async.md +0 -68
  67. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -28
  68. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-usetransition-loading.md +0 -75
  69. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -39
  70. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-dependencies.md +0 -45
  71. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +0 -40
  72. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-derived-state.md +0 -29
  73. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -74
  74. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -58
  75. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +0 -38
  76. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-memo.md +0 -44
  77. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +0 -45
  78. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-no-inline-components.md +0 -82
  79. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +0 -35
  80. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +0 -64
  81. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-transitions.md +0 -40
  82. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-use-deferred-value.md +0 -59
  83. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +0 -73
  84. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -73
  85. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-auth-actions.md +0 -96
  86. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-cache-lru.md +0 -41
  87. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-cache-react.md +0 -76
  88. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-dedup-props.md +0 -65
  89. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-hoist-static-io.md +0 -149
  90. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-no-shared-module-state.md +0 -50
  91. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -83
  92. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +0 -34
  93. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-serialization.md +0 -38
  94. package/template/.agents/skills/data/prisma-cli/SKILL.md +0 -265
  95. package/template/.agents/skills/data/prisma-cli/references/agent-safety.md +0 -27
  96. package/template/.agents/skills/data/prisma-cli/references/complete.md +0 -22
  97. package/template/.agents/skills/data/prisma-cli/references/db-execute.md +0 -78
  98. package/template/.agents/skills/data/prisma-cli/references/db-pull.md +0 -185
  99. package/template/.agents/skills/data/prisma-cli/references/db-push.md +0 -150
  100. package/template/.agents/skills/data/prisma-cli/references/db-seed.md +0 -188
  101. package/template/.agents/skills/data/prisma-cli/references/debug.md +0 -46
  102. package/template/.agents/skills/data/prisma-cli/references/dev.md +0 -157
  103. package/template/.agents/skills/data/prisma-cli/references/format.md +0 -48
  104. package/template/.agents/skills/data/prisma-cli/references/generate.md +0 -173
  105. package/template/.agents/skills/data/prisma-cli/references/init.md +0 -139
  106. package/template/.agents/skills/data/prisma-cli/references/mcp.md +0 -39
  107. package/template/.agents/skills/data/prisma-cli/references/migrate-deploy.md +0 -127
  108. package/template/.agents/skills/data/prisma-cli/references/migrate-dev.md +0 -145
  109. package/template/.agents/skills/data/prisma-cli/references/migrate-diff.md +0 -89
  110. package/template/.agents/skills/data/prisma-cli/references/migrate-reset.md +0 -80
  111. package/template/.agents/skills/data/prisma-cli/references/migrate-resolve.md +0 -57
  112. package/template/.agents/skills/data/prisma-cli/references/migrate-status.md +0 -65
  113. package/template/.agents/skills/data/prisma-cli/references/studio.md +0 -137
  114. package/template/.agents/skills/data/prisma-cli/references/validate.md +0 -53
  115. package/template/.agents/skills/data/prisma-client-api/SKILL.md +0 -216
  116. package/template/.agents/skills/data/prisma-client-api/references/client-methods.md +0 -223
  117. package/template/.agents/skills/data/prisma-client-api/references/constructor.md +0 -221
  118. package/template/.agents/skills/data/prisma-client-api/references/filters.md +0 -256
  119. package/template/.agents/skills/data/prisma-client-api/references/model-queries.md +0 -281
  120. package/template/.agents/skills/data/prisma-client-api/references/query-options.md +0 -276
  121. package/template/.agents/skills/data/prisma-client-api/references/raw-queries.md +0 -198
  122. package/template/.agents/skills/data/prisma-client-api/references/relations.md +0 -308
  123. package/template/.agents/skills/data/prisma-client-api/references/transactions.md +0 -184
  124. package/template/.agents/skills/design/impeccable/SKILL.md +0 -84
  125. package/template/.agents/skills/design/impeccable/reference/adapt.md +0 -312
  126. package/template/.agents/skills/design/impeccable/reference/adapt.native.md +0 -58
  127. package/template/.agents/skills/design/impeccable/reference/android.md +0 -46
  128. package/template/.agents/skills/design/impeccable/reference/animate.md +0 -89
  129. package/template/.agents/skills/design/impeccable/reference/audit.md +0 -136
  130. package/template/.agents/skills/design/impeccable/reference/audit.native.md +0 -139
  131. package/template/.agents/skills/design/impeccable/reference/bolder.md +0 -33
  132. package/template/.agents/skills/design/impeccable/reference/clarify.md +0 -94
  133. package/template/.agents/skills/design/impeccable/reference/colorize.md +0 -86
  134. package/template/.agents/skills/design/impeccable/reference/craft-floor.md +0 -44
  135. package/template/.agents/skills/design/impeccable/reference/craft.md +0 -5
  136. package/template/.agents/skills/design/impeccable/reference/critique.md +0 -806
  137. package/template/.agents/skills/design/impeccable/reference/degraded/asset-producer.md +0 -37
  138. package/template/.agents/skills/design/impeccable/reference/degraded/documenter.md +0 -24
  139. package/template/.agents/skills/design/impeccable/reference/degraded/finish-reviewer.md +0 -38
  140. package/template/.agents/skills/design/impeccable/reference/degraded/manual-edit-applier.md +0 -92
  141. package/template/.agents/skills/design/impeccable/reference/delight.md +0 -70
  142. package/template/.agents/skills/design/impeccable/reference/distill.md +0 -111
  143. package/template/.agents/skills/design/impeccable/reference/doctor.md +0 -54
  144. package/template/.agents/skills/design/impeccable/reference/document.md +0 -416
  145. package/template/.agents/skills/design/impeccable/reference/extract.md +0 -69
  146. package/template/.agents/skills/design/impeccable/reference/harden.md +0 -336
  147. package/template/.agents/skills/design/impeccable/reference/hooks.md +0 -111
  148. package/template/.agents/skills/design/impeccable/reference/init.md +0 -131
  149. package/template/.agents/skills/design/impeccable/reference/ios.md +0 -51
  150. package/template/.agents/skills/design/impeccable/reference/layout.md +0 -84
  151. package/template/.agents/skills/design/impeccable/reference/live-setup.md +0 -102
  152. package/template/.agents/skills/design/impeccable/reference/live.md +0 -323
  153. package/template/.agents/skills/design/impeccable/reference/new-work.md +0 -145
  154. package/template/.agents/skills/design/impeccable/reference/onboard.md +0 -234
  155. package/template/.agents/skills/design/impeccable/reference/operate.md +0 -61
  156. package/template/.agents/skills/design/impeccable/reference/optimize.md +0 -258
  157. package/template/.agents/skills/design/impeccable/reference/overdrive.md +0 -127
  158. package/template/.agents/skills/design/impeccable/reference/polish.md +0 -105
  159. package/template/.agents/skills/design/impeccable/reference/quieter.md +0 -99
  160. package/template/.agents/skills/design/impeccable/reference/routing.md +0 -18
  161. package/template/.agents/skills/design/impeccable/reference/shape.md +0 -59
  162. package/template/.agents/skills/design/impeccable/reference/typeset.md +0 -80
  163. package/template/.agents/skills/design/impeccable/reference/visualize.md +0 -46
  164. package/template/.agents/skills/design/impeccable/scripts/build-phase.mjs +0 -1022
  165. package/template/.agents/skills/design/impeccable/scripts/command-metadata.json +0 -94
  166. package/template/.agents/skills/design/impeccable/scripts/comp-diff.mjs +0 -391
  167. package/template/.agents/skills/design/impeccable/scripts/comp-spec.mjs +0 -513
  168. package/template/.agents/skills/design/impeccable/scripts/concept-seed.mjs +0 -814
  169. package/template/.agents/skills/design/impeccable/scripts/context-signals.mjs +0 -325
  170. package/template/.agents/skills/design/impeccable/scripts/context.mjs +0 -1565
  171. package/template/.agents/skills/design/impeccable/scripts/critique-storage.mjs +0 -473
  172. package/template/.agents/skills/design/impeccable/scripts/data/font-index-failures.json +0 -121
  173. package/template/.agents/skills/design/impeccable/scripts/data/font-index.json +0 -1
  174. package/template/.agents/skills/design/impeccable/scripts/detect-csp.mjs +0 -198
  175. package/template/.agents/skills/design/impeccable/scripts/detect.mjs +0 -30
  176. package/template/.agents/skills/design/impeccable/scripts/detector/browser/injected/index.mjs +0 -2204
  177. package/template/.agents/skills/design/impeccable/scripts/detector/cli/main.mjs +0 -432
  178. package/template/.agents/skills/design/impeccable/scripts/detector/design-system.mjs +0 -1311
  179. package/template/.agents/skills/design/impeccable/scripts/detector/detect-antipatterns-browser.js +0 -9043
  180. package/template/.agents/skills/design/impeccable/scripts/detector/detect-antipatterns.mjs +0 -51
  181. package/template/.agents/skills/design/impeccable/scripts/detector/engines/browser/detect-url.mjs +0 -434
  182. package/template/.agents/skills/design/impeccable/scripts/detector/engines/regex/detect-text.mjs +0 -1319
  183. package/template/.agents/skills/design/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +0 -1241
  184. package/template/.agents/skills/design/impeccable/scripts/detector/engines/static-html/detect-html.mjs +0 -288
  185. package/template/.agents/skills/design/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +0 -189
  186. package/template/.agents/skills/design/impeccable/scripts/detector/findings.mjs +0 -18
  187. package/template/.agents/skills/design/impeccable/scripts/detector/node/file-system.mjs +0 -213
  188. package/template/.agents/skills/design/impeccable/scripts/detector/profile/profiler.mjs +0 -166
  189. package/template/.agents/skills/design/impeccable/scripts/detector/registry/antipatterns.mjs +0 -635
  190. package/template/.agents/skills/design/impeccable/scripts/detector/rules/checks.mjs +0 -5681
  191. package/template/.agents/skills/design/impeccable/scripts/detector/shared/color.mjs +0 -596
  192. package/template/.agents/skills/design/impeccable/scripts/detector/shared/constants.mjs +0 -127
  193. package/template/.agents/skills/design/impeccable/scripts/detector/shared/fonts.mjs +0 -30
  194. package/template/.agents/skills/design/impeccable/scripts/detector/shared/inline-ignores.mjs +0 -148
  195. package/template/.agents/skills/design/impeccable/scripts/detector/shared/page.mjs +0 -7
  196. package/template/.agents/skills/design/impeccable/scripts/doctor.mjs +0 -329
  197. package/template/.agents/skills/design/impeccable/scripts/embed-prompt.mjs +0 -166
  198. package/template/.agents/skills/design/impeccable/scripts/font-match.mjs +0 -457
  199. package/template/.agents/skills/design/impeccable/scripts/generate-image.mjs +0 -447
  200. package/template/.agents/skills/design/impeccable/scripts/hook-admin.mjs +0 -819
  201. package/template/.agents/skills/design/impeccable/scripts/hook-before-edit.mjs +0 -538
  202. package/template/.agents/skills/design/impeccable/scripts/hook-lib.mjs +0 -2490
  203. package/template/.agents/skills/design/impeccable/scripts/hook.mjs +0 -79
  204. package/template/.agents/skills/design/impeccable/scripts/lib/artifact-schema.mjs +0 -93
  205. package/template/.agents/skills/design/impeccable/scripts/lib/composition-catalog.mjs +0 -200
  206. package/template/.agents/skills/design/impeccable/scripts/lib/concept-catalog.mjs +0 -396
  207. package/template/.agents/skills/design/impeccable/scripts/lib/design-parser.mjs +0 -880
  208. package/template/.agents/skills/design/impeccable/scripts/lib/font-fingerprint.mjs +0 -564
  209. package/template/.agents/skills/design/impeccable/scripts/lib/font-index.mjs +0 -130
  210. package/template/.agents/skills/design/impeccable/scripts/lib/hero-checks.mjs +0 -246
  211. package/template/.agents/skills/design/impeccable/scripts/lib/image-metrics.mjs +0 -306
  212. package/template/.agents/skills/design/impeccable/scripts/lib/impeccable-config.mjs +0 -640
  213. package/template/.agents/skills/design/impeccable/scripts/lib/impeccable-paths.mjs +0 -137
  214. package/template/.agents/skills/design/impeccable/scripts/lib/is-generated.mjs +0 -72
  215. package/template/.agents/skills/design/impeccable/scripts/lib/live-path-globs.mjs +0 -37
  216. package/template/.agents/skills/design/impeccable/scripts/lib/open-system-browser.mjs +0 -26
  217. package/template/.agents/skills/design/impeccable/scripts/lib/png.mjs +0 -281
  218. package/template/.agents/skills/design/impeccable/scripts/lib/provider.mjs +0 -5
  219. package/template/.agents/skills/design/impeccable/scripts/lib/raster.mjs +0 -194
  220. package/template/.agents/skills/design/impeccable/scripts/lib/roll-selection.mjs +0 -369
  221. package/template/.agents/skills/design/impeccable/scripts/lib/staleness-deep.mjs +0 -485
  222. package/template/.agents/skills/design/impeccable/scripts/lib/staleness-notice.mjs +0 -169
  223. package/template/.agents/skills/design/impeccable/scripts/lib/staleness.mjs +0 -533
  224. package/template/.agents/skills/design/impeccable/scripts/lib/surface-briefs.mjs +0 -149
  225. package/template/.agents/skills/design/impeccable/scripts/lib/target-args.mjs +0 -42
  226. package/template/.agents/skills/design/impeccable/scripts/lib/target-slug.mjs +0 -33
  227. package/template/.agents/skills/design/impeccable/scripts/lib/template-extensions.mjs +0 -146
  228. package/template/.agents/skills/design/impeccable/scripts/live/accept-css.mjs +0 -617
  229. package/template/.agents/skills/design/impeccable/scripts/live/accept-verify.mjs +0 -60
  230. package/template/.agents/skills/design/impeccable/scripts/live/browser-script-parts.mjs +0 -84
  231. package/template/.agents/skills/design/impeccable/scripts/live/completion.mjs +0 -28
  232. package/template/.agents/skills/design/impeccable/scripts/live/event-validation.mjs +0 -199
  233. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/astro.mjs +0 -47
  234. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/detect-utils.mjs +0 -73
  235. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/index.mjs +0 -143
  236. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/journal.mjs +0 -197
  237. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/nextjs.mjs +0 -49
  238. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/nuxt.mjs +0 -161
  239. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/script-src.mjs +0 -17
  240. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/static-html.mjs +0 -26
  241. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/sveltekit.mjs +0 -71
  242. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/tag-strategy.mjs +0 -247
  243. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/tanstack-start.mjs +0 -70
  244. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/vite-generic.mjs +0 -42
  245. package/template/.agents/skills/design/impeccable/scripts/live/generation-preflight.mjs +0 -149
  246. package/template/.agents/skills/design/impeccable/scripts/live/insert-ui.mjs +0 -458
  247. package/template/.agents/skills/design/impeccable/scripts/live/instructions.mjs +0 -142
  248. package/template/.agents/skills/design/impeccable/scripts/live/manual-apply.mjs +0 -939
  249. package/template/.agents/skills/design/impeccable/scripts/live/manual-edit-routes.mjs +0 -357
  250. package/template/.agents/skills/design/impeccable/scripts/live/manual-edits-buffer.mjs +0 -152
  251. package/template/.agents/skills/design/impeccable/scripts/live/poll-lanes.mjs +0 -14
  252. package/template/.agents/skills/design/impeccable/scripts/live/project-ignores.mjs +0 -139
  253. package/template/.agents/skills/design/impeccable/scripts/live/roots.mjs +0 -508
  254. package/template/.agents/skills/design/impeccable/scripts/live/session-store.mjs +0 -563
  255. package/template/.agents/skills/design/impeccable/scripts/live/source-lock.mjs +0 -105
  256. package/template/.agents/skills/design/impeccable/scripts/live/source-search.mjs +0 -105
  257. package/template/.agents/skills/design/impeccable/scripts/live/svelte-ast.mjs +0 -969
  258. package/template/.agents/skills/design/impeccable/scripts/live/svelte-component.mjs +0 -1366
  259. package/template/.agents/skills/design/impeccable/scripts/live/sveltekit-adapter.mjs +0 -304
  260. package/template/.agents/skills/design/impeccable/scripts/live/tanstack-adapter.mjs +0 -259
  261. package/template/.agents/skills/design/impeccable/scripts/live/ui-surfaces.mjs +0 -75
  262. package/template/.agents/skills/design/impeccable/scripts/live/vocabulary.mjs +0 -171
  263. package/template/.agents/skills/design/impeccable/scripts/live-accept.mjs +0 -938
  264. package/template/.agents/skills/design/impeccable/scripts/live-browser-dom.js +0 -146
  265. package/template/.agents/skills/design/impeccable/scripts/live-browser-ignores.js +0 -242
  266. package/template/.agents/skills/design/impeccable/scripts/live-browser-session.js +0 -123
  267. package/template/.agents/skills/design/impeccable/scripts/live-browser.js +0 -12551
  268. package/template/.agents/skills/design/impeccable/scripts/live-commit-manual-edits.mjs +0 -1200
  269. package/template/.agents/skills/design/impeccable/scripts/live-complete.mjs +0 -107
  270. package/template/.agents/skills/design/impeccable/scripts/live-copy-edit-agent.mjs +0 -800
  271. package/template/.agents/skills/design/impeccable/scripts/live-discard-manual-edits.mjs +0 -51
  272. package/template/.agents/skills/design/impeccable/scripts/live-inject.mjs +0 -463
  273. package/template/.agents/skills/design/impeccable/scripts/live-insert.mjs +0 -292
  274. package/template/.agents/skills/design/impeccable/scripts/live-manual-edit-evidence.mjs +0 -368
  275. package/template/.agents/skills/design/impeccable/scripts/live-poll.mjs +0 -430
  276. package/template/.agents/skills/design/impeccable/scripts/live-resume.mjs +0 -123
  277. package/template/.agents/skills/design/impeccable/scripts/live-server.mjs +0 -1698
  278. package/template/.agents/skills/design/impeccable/scripts/live-status.mjs +0 -71
  279. package/template/.agents/skills/design/impeccable/scripts/live-target.mjs +0 -30
  280. package/template/.agents/skills/design/impeccable/scripts/live-wrap.mjs +0 -927
  281. package/template/.agents/skills/design/impeccable/scripts/live.mjs +0 -334
  282. package/template/.agents/skills/design/impeccable/scripts/modern-screenshot.umd.js +0 -14
  283. package/template/.agents/skills/design/impeccable/scripts/palette.mjs +0 -628
  284. package/template/.agents/skills/design/impeccable/scripts/pin.mjs +0 -224
  285. package/template/.agents/skills/design/impeccable/scripts/serve-question.mjs +0 -1783
  286. package/template/.agents/skills/design/impeccable/scripts/surface-brief.mjs +0 -74
  287. package/template/.agents/skills/design/shadcn/SKILL.md +0 -277
  288. package/template/.agents/skills/design/shadcn/agents/openai.yml +0 -5
  289. package/template/.agents/skills/design/shadcn/assets/shadcn-small.png +0 -0
  290. package/template/.agents/skills/design/shadcn/assets/shadcn.png +0 -0
  291. package/template/.agents/skills/design/shadcn/cli.md +0 -290
  292. package/template/.agents/skills/design/shadcn/customization.md +0 -209
  293. package/template/.agents/skills/design/shadcn/evals/evals.json +0 -77
  294. package/template/.agents/skills/design/shadcn/mcp.md +0 -105
  295. package/template/.agents/skills/design/shadcn/registry.md +0 -277
  296. package/template/.agents/skills/design/shadcn/rules/base-vs-radix.md +0 -306
  297. package/template/.agents/skills/design/shadcn/rules/chat.md +0 -250
  298. package/template/.agents/skills/design/shadcn/rules/composition.md +0 -213
  299. package/template/.agents/skills/design/shadcn/rules/forms.md +0 -192
  300. package/template/.agents/skills/design/shadcn/rules/icons.md +0 -101
  301. package/template/.agents/skills/design/shadcn/rules/styling.md +0 -185
  302. package/template/.agents/skills/find-skills/SKILL.md +0 -141
  303. package/template/.agents/skills/hono/SKILL.md +0 -593
  304. package/template/.agents/skills/integrations/langfuse/SKILL.md +0 -150
  305. package/template/.agents/skills/integrations/langfuse/references/ci-cd.md +0 -41
  306. package/template/.agents/skills/integrations/langfuse/references/cli.md +0 -60
  307. package/template/.agents/skills/integrations/langfuse/references/create-dataset.md +0 -35
  308. package/template/.agents/skills/integrations/langfuse/references/error-analysis.md +0 -87
  309. package/template/.agents/skills/integrations/langfuse/references/instrumentation.md +0 -121
  310. package/template/.agents/skills/integrations/langfuse/references/judge-calibration.md +0 -293
  311. package/template/.agents/skills/integrations/langfuse/references/prompt-engineering.md +0 -35
  312. package/template/.agents/skills/integrations/langfuse/references/prompt-migration.md +0 -79
  313. package/template/.agents/skills/integrations/langfuse/references/sdk-upgrade.md +0 -34
  314. package/template/.agents/skills/integrations/langfuse/references/setting-up-evals.md +0 -65
  315. package/template/.agents/skills/integrations/langfuse/references/skill-feedback.md +0 -35
  316. package/template/.agents/skills/integrations/langfuse/references/trace-evaluator-upgrade.md +0 -76
  317. package/template/.agents/skills/integrations/langfuse/references/user-feedback.md +0 -66
  318. package/template/.agents/skills/integrations/langfuse/references/v4-project-migration.md +0 -75
  319. package/template/.agents/skills/integrations/posthog/SKILL.md +0 -102
  320. package/template/.agents/skills/integrations/posthog/references/error-tracking-alerts.md +0 -63
  321. package/template/.agents/skills/integrations/posthog/references/error-tracking-assigning-issues.md +0 -77
  322. package/template/.agents/skills/integrations/posthog/references/error-tracking-fingerprints.md +0 -57
  323. package/template/.agents/skills/integrations/posthog/references/error-tracking-monitoring.md +0 -140
  324. package/template/.agents/skills/integrations/posthog/references/error-tracking-nextjs.md +0 -490
  325. package/template/.agents/skills/integrations/posthog/references/error-tracking-source-maps.md +0 -45
  326. package/template/.agents/skills/integrations/posthog/references/feature-flags-best-practices.md +0 -139
  327. package/template/.agents/skills/integrations/posthog/references/feature-flags-react.md +0 -302
  328. package/template/.agents/skills/integrations/posthog/references/identify-users.md +0 -202
  329. package/template/.agents/skills/integrations/posthog/references/integration-example.md +0 -706
  330. package/template/.agents/skills/integrations/posthog/references/integration-nextjs.md +0 -385
  331. package/template/.agents/skills/integrations/posthog/references/integration-step-1-begin.md +0 -43
  332. package/template/.agents/skills/integrations/posthog/references/integration-step-2-edit.md +0 -37
  333. package/template/.agents/skills/integrations/posthog/references/integration-step-3-revise.md +0 -22
  334. package/template/.agents/skills/integrations/posthog/references/integration-step-4-conclude.md +0 -38
  335. package/template/.agents/skills/integrations/posthog/references/llm-analytics-anthropic.md +0 -200
  336. package/template/.agents/skills/integrations/posthog/references/llm-analytics-basics.md +0 -62
  337. package/template/.agents/skills/integrations/posthog/references/llm-analytics-costs.md +0 -197
  338. package/template/.agents/skills/integrations/posthog/references/llm-analytics-manual-capture.md +0 -397
  339. package/template/.agents/skills/integrations/posthog/references/llm-analytics-traces.md +0 -98
  340. package/template/.agents/skills/integrations/posthog/references/llm-analytics-vercel-ai.md +0 -120
  341. package/template/.agents/skills/repo/repo-ci/SKILL.md +0 -265
  342. package/template/.agents/skills/repo/repo-init-next-js/SKILL.md +0 -129
  343. package/template/.agents/skills/repo/repo-init-next-js/references/file-contents.md +0 -800
  344. package/template/.agents/skills/repo/repo-init-next-js/scripts/setup.sh +0 -47
  345. package/template/.agents/skills/repo/repo-init-node/SKILL.md +0 -196
  346. package/template/.agents/skills/skill-creator/LICENSE.txt +0 -202
  347. package/template/.agents/skills/skill-creator/SKILL.md +0 -485
  348. package/template/.agents/skills/skill-creator/agents/analyzer.md +0 -274
  349. package/template/.agents/skills/skill-creator/agents/comparator.md +0 -202
  350. package/template/.agents/skills/skill-creator/agents/grader.md +0 -223
  351. package/template/.agents/skills/skill-creator/assets/eval_review.html +0 -146
  352. package/template/.agents/skills/skill-creator/eval-viewer/generate_review.py +0 -471
  353. package/template/.agents/skills/skill-creator/eval-viewer/viewer.html +0 -1325
  354. package/template/.agents/skills/skill-creator/references/schemas.md +0 -430
  355. package/template/.agents/skills/skill-creator/scripts/__init__.py +0 -0
  356. package/template/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +0 -401
  357. package/template/.agents/skills/skill-creator/scripts/generate_report.py +0 -326
  358. package/template/.agents/skills/skill-creator/scripts/improve_description.py +0 -247
  359. package/template/.agents/skills/skill-creator/scripts/package_skill.py +0 -136
  360. package/template/.agents/skills/skill-creator/scripts/quick_validate.py +0 -103
  361. package/template/.agents/skills/skill-creator/scripts/run_eval.py +0 -310
  362. package/template/.agents/skills/skill-creator/scripts/run_loop.py +0 -328
  363. package/template/.agents/skills/skill-creator/scripts/utils.py +0 -47
  364. package/template/.agents/skills/supabase/CHANGELOG.md +0 -78
  365. package/template/.agents/skills/supabase/SKILL.md +0 -149
  366. package/template/.agents/skills/supabase/assets/feedback-issue-template.md +0 -17
  367. package/template/.agents/skills/supabase/references/skill-feedback.md +0 -17
  368. package/template/.agents/skills/supabase-postgres-best-practices/CHANGELOG.md +0 -73
  369. package/template/.agents/skills/supabase-postgres-best-practices/SKILL.md +0 -64
  370. package/template/.agents/skills/supabase-postgres-best-practices/references/_contributing.md +0 -170
  371. package/template/.agents/skills/supabase-postgres-best-practices/references/_sections.md +0 -39
  372. package/template/.agents/skills/supabase-postgres-best-practices/references/_template.md +0 -34
  373. package/template/.agents/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +0 -55
  374. package/template/.agents/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +0 -49
  375. package/template/.agents/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +0 -46
  376. package/template/.agents/skills/supabase-postgres-best-practices/references/conn-limits.md +0 -44
  377. package/template/.agents/skills/supabase-postgres-best-practices/references/conn-pooling.md +0 -41
  378. package/template/.agents/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +0 -46
  379. package/template/.agents/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +0 -54
  380. package/template/.agents/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +0 -53
  381. package/template/.agents/skills/supabase-postgres-best-practices/references/data-pagination.md +0 -50
  382. package/template/.agents/skills/supabase-postgres-best-practices/references/data-upsert.md +0 -50
  383. package/template/.agents/skills/supabase-postgres-best-practices/references/lock-advisory.md +0 -56
  384. package/template/.agents/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +0 -68
  385. package/template/.agents/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +0 -50
  386. package/template/.agents/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +0 -54
  387. package/template/.agents/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +0 -45
  388. package/template/.agents/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +0 -55
  389. package/template/.agents/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +0 -55
  390. package/template/.agents/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +0 -44
  391. package/template/.agents/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +0 -40
  392. package/template/.agents/skills/supabase-postgres-best-practices/references/query-index-types.md +0 -48
  393. package/template/.agents/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +0 -43
  394. package/template/.agents/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +0 -45
  395. package/template/.agents/skills/supabase-postgres-best-practices/references/schema-constraints.md +0 -80
  396. package/template/.agents/skills/supabase-postgres-best-practices/references/schema-data-types.md +0 -46
  397. package/template/.agents/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +0 -59
  398. package/template/.agents/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +0 -55
  399. package/template/.agents/skills/supabase-postgres-best-practices/references/schema-partitioning.md +0 -55
  400. package/template/.agents/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +0 -61
  401. package/template/.agents/skills/supabase-postgres-best-practices/references/security-privileges.md +0 -54
  402. package/template/.agents/skills/supabase-postgres-best-practices/references/security-rls-basics.md +0 -50
  403. package/template/.agents/skills/supabase-postgres-best-practices/references/security-rls-performance.md +0 -63
  404. package/template/.agents/skills/writing/humanizer/LICENSE +0 -21
  405. package/template/.agents/skills/writing/humanizer/README.md +0 -209
  406. package/template/.agents/skills/writing/humanizer/SKILL.md +0 -456
  407. package/template/.agents/upstreams.json +0 -115
@@ -1,397 +0,0 @@
1
- # Manual capture LLM analytics installation - Docs
2
-
3
- 1. 1
4
-
5
- ## Capture LLM events manually
6
-
7
- If you're using a different server-side SDK or prefer to use the API, you can manually capture the data by calling the `capture` method or using the [capture API](/docs/api/capture.md).
8
-
9
- ## API
10
-
11
- ### Capture via API
12
-
13
- ```bash
14
- curl -X POST "https://us.i.posthog.com/i/v0/e/" \
15
- -H "Content-Type: application/json" \
16
- -d '{
17
- "api_key": "<ph_project_token>",
18
- "event": "$ai_generation",
19
- "properties": {
20
- "distinct_id": "user_123",
21
- "$ai_trace_id": "trace_id_here",
22
- "$ai_model": "gpt-5-mini",
23
- "$ai_provider": "openai",
24
- "$ai_input": [{"role": "user", "content": "Tell me a fun fact about hedgehogs"}],
25
- "$ai_input_tokens": 10,
26
- "$ai_output_choices": [{"role": "assistant", "content": "Hedgehogs have around 5,000 to 7,000 spines on their backs!"}],
27
- "$ai_output_tokens": 20,
28
- "$ai_latency": 1.5,
29
- "$ai_stream": true,
30
- "$ai_time_to_first_token": 0.25
31
- }
32
- }'
33
- ```
34
-
35
- ## Node.js
36
-
37
- ### 1\. Install
38
-
39
- ```bash
40
- npm install posthog-node
41
- ```
42
-
43
- ### 2\. Initialize PostHog
44
-
45
- ```javascript
46
- import { PostHog } from 'posthog-node'
47
- const client = new PostHog('<ph_project_token>', {
48
- host: 'https://us.i.posthog.com'
49
- })
50
- ```
51
-
52
- ### 3\. Capture Event
53
-
54
- ```javascript
55
- // After your LLM call
56
- client.capture({
57
- distinctId: 'user_123',
58
- event: '$ai_generation',
59
- properties: {
60
- $ai_trace_id: 'trace_id_here',
61
- $ai_model: 'gpt-5-mini',
62
- $ai_provider: 'openai',
63
- $ai_input: [{ role: 'user', content: 'Tell me a fun fact about hedgehogs' }],
64
- $ai_input_tokens: 10,
65
- $ai_output_choices: [{ role: 'assistant', content: 'Hedgehogs have around 5,000 to 7,000 spines on their backs!' }],
66
- $ai_output_tokens: 20,
67
- $ai_latency: 1.5,
68
- // For streaming responses, also include:
69
- // $ai_stream: true,
70
- // $ai_time_to_first_token: 0.25
71
- }
72
- })
73
- client.shutdown()
74
- ```
75
-
76
- ## Python
77
-
78
- ### 1\. Install
79
-
80
- ```bash
81
- pip install posthog
82
- ```
83
-
84
- ### 2\. Initialize PostHog
85
-
86
- ```python
87
- from posthog import Posthog
88
- posthog = Posthog("<ph_project_token>", host="https://us.i.posthog.com")
89
- ```
90
-
91
- ### 3\. Capture Event
92
-
93
- ```python
94
- # After your LLM call
95
- posthog.capture(
96
- distinct_id='user_123',
97
- event='$ai_generation',
98
- properties={
99
- '$ai_trace_id': 'trace_id_here',
100
- '$ai_model': 'gpt-5-mini',
101
- '$ai_provider': 'openai',
102
- '$ai_input': [{'role': 'user', 'content': 'Tell me a fun fact about hedgehogs'}],
103
- '$ai_input_tokens': 10,
104
- '$ai_output_choices': [{'role': 'assistant', 'content': 'Hedgehogs have around 5,000 to 7,000 spines on their backs!'}],
105
- '$ai_output_tokens': 20,
106
- '$ai_latency': 1.5,
107
- # For streaming responses, also include:
108
- # '$ai_stream': True,
109
- # '$ai_time_to_first_token': 0.25
110
- }
111
- )
112
- ```
113
-
114
- ## Go
115
-
116
- ### 1\. Install
117
-
118
- ```bash
119
- go get github.com/posthog/posthog-go
120
- ```
121
-
122
- ### 2\. Initialize PostHog
123
-
124
- ```go
125
- import "github.com/posthog/posthog-go"
126
- client, _ := posthog.NewWithConfig("<ph_project_token>", posthog.Config{
127
- Endpoint: "https://us.i.posthog.com",
128
- })
129
- defer client.Close()
130
- ```
131
-
132
- ### 3\. Capture Event
133
-
134
- ```go
135
- // After your LLM call
136
- client.Enqueue(posthog.Capture{
137
- DistinctId: "user_123",
138
- Event: "$ai_generation",
139
- Properties: map[string]interface{}{
140
- "$ai_trace_id": "trace_id_here",
141
- "$ai_model": "gpt-5-mini",
142
- "$ai_provider": "openai",
143
- "$ai_input_tokens": 10,
144
- "$ai_output_tokens": 20,
145
- "$ai_latency": 1.5,
146
- // For streaming responses, also include:
147
- // "$ai_stream": true,
148
- // "$ai_time_to_first_token": 0.25,
149
- },
150
- })
151
- ```
152
-
153
- ## Ruby
154
-
155
- ### 1\. Install
156
-
157
- ```bash
158
- gem install posthog-ruby
159
- ```
160
-
161
- ### 2\. Initialize PostHog
162
-
163
- ```ruby
164
- require 'posthog-ruby'
165
- posthog = PostHog::Client.new({
166
- api_key: '<ph_project_token>',
167
- host: 'https://us.i.posthog.com'
168
- })
169
- ```
170
-
171
- ### 3\. Capture Event
172
-
173
- ```ruby
174
- # After your LLM call
175
- posthog.capture({
176
- distinct_id: 'user_123',
177
- event: '$ai_generation',
178
- properties: {
179
- '$ai_trace_id' => 'trace_id_here',
180
- '$ai_model' => 'gpt-5-mini',
181
- '$ai_provider' => 'openai',
182
- '$ai_input_tokens' => 10,
183
- '$ai_output_tokens' => 20,
184
- '$ai_latency' => 1.5
185
- # For streaming responses, also include:
186
- # '$ai_stream' => true,
187
- # '$ai_time_to_first_token' => 0.25
188
- }
189
- })
190
- ```
191
-
192
- ## PHP
193
-
194
- ### 1\. Install
195
-
196
- ```bash
197
- composer require posthog/posthog-php
198
- ```
199
-
200
- ### 2\. Initialize PostHog
201
-
202
- ```php
203
- <?php
204
- require_once __DIR__ . '/vendor/autoload.php';
205
- use PostHog\PostHog;
206
- PostHog::init('<ph_project_token>', [
207
- 'host' => 'https://us.i.posthog.com'
208
- ]);
209
- ```
210
-
211
- ### 3\. Capture Event
212
-
213
- ```php
214
- // After your LLM call
215
- PostHog::capture([
216
- 'distinctId' => 'user_123',
217
- 'event' => '$ai_generation',
218
- 'properties' => [
219
- '$ai_trace_id' => 'trace_id_here',
220
- '$ai_model' => 'gpt-5-mini',
221
- '$ai_provider' => 'openai',
222
- '$ai_input_tokens' => 10,
223
- '$ai_output_tokens' => 20,
224
- '$ai_latency' => 1.5
225
- // For streaming responses, also include:
226
- // '$ai_stream' => true,
227
- // '$ai_time_to_first_token' => 0.25
228
- ]
229
- ]);
230
- ```
231
-
232
- ### Event Properties
233
-
234
- Each event type has specific properties. See the tabs below for detailed property documentation for each event type.
235
-
236
- ## Generation
237
-
238
- A generation is a single call to an LLM.
239
-
240
- **Event name**: `$ai_generation`
241
-
242
- ### Core properties
243
-
244
- | Property | Description |
245
- | --- | --- |
246
- | $ai_trace_id | The trace ID (a UUID to group AI events) like conversation_idMust contain only letters, numbers, and special characters: -, _, ~, ., @, (, ), !, ', :, \|Example: d9222e05-8708-41b8-98ea-d4a21849e761 |
247
- | $ai_session_id | (Optional) Groups related traces together. Use this to organize traces by whatever grouping makes sense for your application (user sessions, workflows, conversations, or other logical boundaries).Example: session-abc-123, conv-user-456 |
248
- | $ai_span_id | (Optional) Unique identifier for this generation |
249
- | $ai_span_name | (Optional) Name given to this generationExample: summarize_text |
250
- | $ai_parent_id | (Optional) Parent span ID for tree view grouping |
251
- | $ai_model | The model usedExample: gpt-5-mini |
252
- | $ai_provider | The LLM providerExample: openai, anthropic, gemini |
253
- | $ai_input_tokens | The number of tokens in the input (often found in response.usage) |
254
- | $ai_output_tokens | The number of tokens in the output (often found in response.usage) |
255
- | $ai_latency | (Optional) The latency of the LLM call in seconds |
256
- | $ai_time_to_first_token | (Optional) Time to first token in seconds. Only applicable for streaming responses. |
257
- | $ai_http_status | (Optional) The HTTP status code of the response |
258
- | $ai_base_url | (Optional) The base URL of the LLM providerExample: https://api.openai.com/v1 |
259
- | $ai_request_url | (Optional) The full URL of the request made to the LLM APIExample: https://api.openai.com/v1/chat/completions |
260
- | $ai_is_error | (Optional) Boolean to indicate if the request was an error |
261
- | $ai_error | (Optional) The error message or object |
262
-
263
- ### Cost properties
264
-
265
- Cost properties are optional as we can automatically calculate them from model and token counts. If you want, you can provide your own cost properties or custom pricing instead.
266
-
267
- #### Pre-calculated costs
268
-
269
- | Property | Description |
270
- | --- | --- |
271
- | $ai_input_cost_usd | (Optional) The cost in USD of the input tokens |
272
- | $ai_output_cost_usd | (Optional) The cost in USD of the output tokens |
273
- | $ai_request_cost_usd | (Optional) The cost in USD for the requests |
274
- | $ai_web_search_cost_usd | (Optional) The cost in USD for the web searches |
275
- | $ai_total_cost_usd | (Optional) The total cost in USD (sum of all cost components) |
276
-
277
- #### Custom pricing
278
-
279
- | Property | Description |
280
- | --- | --- |
281
- | $ai_input_token_price | (Optional) Price per input token (used to calculate $ai_input_cost_usd) |
282
- | $ai_output_token_price | (Optional) Price per output token (used to calculate $ai_output_cost_usd) |
283
- | $ai_cache_read_token_price | (Optional) Price per cached token read |
284
- | $ai_cache_write_token_price | (Optional) Price per cached token write |
285
- | $ai_request_price | (Optional) Price per request |
286
- | $ai_request_count | (Optional) Number of requests (defaults to 1 if $ai_request_price is set) |
287
- | $ai_web_search_price | (Optional) Price per web search |
288
- | $ai_web_search_count | (Optional) Number of web searches performed |
289
-
290
- ### Cache properties
291
-
292
- | Property | Description |
293
- | --- | --- |
294
- | $ai_cache_read_input_tokens | (Optional) Number of tokens read from cache |
295
- | $ai_cache_creation_input_tokens | (Optional) Number of tokens written to cache (Anthropic-specific) |
296
- | $ai_cache_reporting_exclusive | (Optional) Whether cache tokens are excluded from $ai_input_tokens. When true, cache tokens are separate from input tokens. When false, input tokens already include cache tokens. Defaults to true for Anthropic provider or Claude models, false otherwise. |
297
-
298
- ### Model parameters
299
-
300
- | Property | Description |
301
- | --- | --- |
302
- | $ai_temperature | (Optional) Temperature parameter used in the LLM request |
303
- | $ai_stream | (Optional) Whether the response was streamed |
304
- | $ai_max_tokens | (Optional) Maximum tokens setting for the LLM response |
305
-
306
- ## Trace
307
-
308
- A trace is a group that contains multiple spans, generations, and embeddings. Traces can be manually sent as events or appear as pseudo-events automatically created from child events.
309
-
310
- **Event name**: `$ai_trace`
311
-
312
- ### Core properties
313
-
314
- | Property | Description |
315
- | --- | --- |
316
- | $ai_trace_id | The trace ID (a UUID to group related AI events together)Must contain only letters, numbers, and special characters: -, _, ~, ., @, (, ), !, ', :, \|Example: d9222e05-8708-41b8-98ea-d4a21849e761 |
317
- | $ai_session_id | (Optional) Groups related traces together. Use this to organize traces by whatever grouping makes sense for your application (user sessions, workflows, conversations, or other logical boundaries).Example: session-abc-123, conv-user-456 |
318
- | $ai_latency | (Optional) The latency of the trace in seconds |
319
- | $ai_span_name | (Optional) The name of the traceExample: chat_completion, rag_pipeline |
320
- | $ai_is_error | (Optional) Boolean to indicate if the trace encountered an error |
321
- | $ai_error | (Optional) The error message or object if the trace failed |
322
-
323
- ### Pseudo-trace Events
324
-
325
- When you send generation (`$ai_generation`), span (`$ai_span`), or embedding (`$ai_embedding`) events with a `$ai_trace_id`, PostHog automatically creates a pseudo-trace event that appears in the dashboard as a parent grouping. These pseudo-traces:
326
-
327
- - Are not actual events in your data
328
- - Automatically aggregate metrics from child events (latency, tokens, costs)
329
- - Provide a hierarchical view of your AI operations
330
- - Do not require sending an explicit `$ai_trace` event
331
-
332
- This means you can either:
333
-
334
- 1. Send explicit `$ai_trace` events to control the trace metadata
335
- 2. Let PostHog automatically create pseudo-traces from your generation/span events
336
-
337
- ## Span
338
-
339
- A span is a single action within your application, such as a function call or vector database search.
340
-
341
- **Event name**: `$ai_span`
342
-
343
- ### Core properties
344
-
345
- | Property | Description |
346
- | --- | --- |
347
- | $ai_trace_id | The trace ID (a UUID to group related AI events together)Must contain only letters, numbers, and the following characters: -, _, ~, ., @, (, ), !, ', :, \|Example: d9222e05-8708-41b8-98ea-d4a21849e761 |
348
- | $ai_session_id | (Optional) Groups related traces together. Use this to organize traces by whatever grouping makes sense for your application (user sessions, workflows, conversations, or other logical boundaries).Example: session-abc-123, conv-user-456 |
349
- | $ai_span_id | (Optional) Unique identifier for this spanExample: bdf42359-9364-4db7-8958-c001f28c9255 |
350
- | $ai_span_name | (Optional) The name of the spanExample: vector_search, data_retrieval, tool_call |
351
- | $ai_parent_id | (Optional) Parent ID for tree view grouping (trace_id or another span_id)Example: 537b7988-0186-494f-a313-77a5a8f7db26 |
352
- | $ai_latency | (Optional) The latency of the span in secondsExample: 0.361 |
353
- | $ai_is_error | (Optional) Boolean to indicate if the span encountered an error |
354
-
355
- ## Embedding
356
-
357
- An embedding is a single call to an embedding model to convert text into a vector representation.
358
-
359
- **Event name**: `$ai_embedding`
360
-
361
- ### Core properties
362
-
363
- | Property | Description |
364
- | --- | --- |
365
- | $ai_trace_id | The trace ID (a UUID to group related AI events together). Must contain only letters, numbers, and special characters: -, _, ~, ., @, (, ), !, ', :, \|Example: d9222e05-8708-41b8-98ea-d4a21849e761 |
366
- | $ai_session_id | (Optional) Groups related traces together. Use this to organize traces by whatever grouping makes sense for your application (user sessions, workflows, conversations, or other logical boundaries).Example: session-abc-123, conv-user-456 |
367
- | $ai_span_id | (Optional) Unique identifier for this embedding operation |
368
- | $ai_span_name | (Optional) Name given to this embedding operationExample: embed_user_query, index_document |
369
- | $ai_parent_id | (Optional) Parent span ID for tree-view grouping |
370
- | $ai_model | The embedding model usedExample: text-embedding-3-small, text-embedding-ada-002 |
371
- | $ai_provider | The LLM providerExample: openai, cohere, voyage |
372
- | $ai_input | The text to embedExample: "Tell me a fun fact about hedgehogs" or array of strings for batch embeddings |
373
- | $ai_input_tokens | The number of tokens in the input |
374
- | $ai_latency | (Optional) The latency of the embedding call in seconds |
375
- | $ai_http_status | (Optional) The HTTP status code of the response |
376
- | $ai_base_url | (Optional) The base URL of the LLM providerExample: https://api.openai.com/v1 |
377
- | $ai_request_url | (Optional) The full URL of the request made to the embedding APIExample: https://api.openai.com/v1/embeddings |
378
- | $ai_is_error | (Optional) Boolean to indicate if the request was an error |
379
- | $ai_error | (Optional) The error message or object if the embedding failed |
380
-
381
- ### Cost properties
382
-
383
- Cost properties are optional as we can automatically calculate them from model and token counts. If you want, you can provide your own cost property instead.
384
-
385
- | Property | Description |
386
- | --- | --- |
387
- | $ai_input_cost_usd | (Optional) Cost in USD for input tokens |
388
- | $ai_output_cost_usd | (Optional) Cost in USD for output tokens (usually 0 for embeddings) |
389
- | $ai_total_cost_usd | (Optional) Total cost in USD |
390
-
391
- ### Community questions
392
-
393
- Ask a question
394
-
395
- ### Was this page useful?
396
-
397
- HelpfulCould be better
@@ -1,98 +0,0 @@
1
- # Traces - Docs
2
-
3
- Traces are a collection of [generations](/docs/llm-analytics/generations.md) and [spans](/docs/llm-analytics/spans.md) that capture a full interaction between a user and an LLM. The [traces tab](https://app.posthog.com/llm-analytics/traces) lists them along with the properties autocaptured by PostHog like the person, total cost, total latency, and more.
4
-
5
- ## Sessions vs Traces
6
-
7
- - **Trace** (`$ai_trace_id`): Groups related generations and spans together. Required for all LLM analytics events.
8
- - **Session** (`$ai_session_id`): Optional property that groups multiple traces together based on your chosen grouping strategy.
9
-
10
- See the [Sessions](/docs/llm-analytics/sessions.md) documentation for more details on how to use `$ai_session_id`.
11
-
12
- ## Trace timeline
13
-
14
- Clicking on a trace opens a timeline of the interaction with all the generation and span events. The trace timeline enables you to see the entire conversation, profiling details, and the individual generations and spans.
15
-
16
- ![LLM traces](https://res.cloudinary.com/dmukukwp6/image/upload/llma_traces_25e203aa50.png)![LLM traces](https://res.cloudinary.com/dmukukwp6/image/upload/llma_traces_dark_dd6ad555dc.png)
17
-
18
- A trace presents LLM event data in a timeline, tree-structured view
19
-
20
- ## Conversation display options
21
-
22
- When viewing a trace, you can control how conversation messages are displayed using the display options dropdown. The available options are:
23
-
24
- - **Expand all** - Shows the full content of all messages in the conversation
25
- - **Expand user only** - Expands only user messages, keeping system and assistant messages collapsed for easier scanning of user inputs
26
- - **Collapse except output and last input** - The default view that shows the model's output and the most recent user input, keeping earlier messages collapsed
27
-
28
- ## Tool calls
29
-
30
- Traces display any [tools](/docs/llm-analytics/tools.md) called by the generations within them, shown as tags in the traces list. This makes it easy to see which conversations involved tool use at a glance.
31
-
32
- ## Sentiment classification
33
-
34
- PostHog can classify the sentiment of user messages in a trace as negative, neutral, or positive. Sentiment is computed on-demand using a local model when you view a trace — no data is sent to third-party services. Each trace gets an overall sentiment label and score, with a per-generation and per-message breakdown. See [Sentiment classification](/docs/llm-analytics/sentiment.md) for more details.
35
-
36
- ## Search traces with PostHog AI
37
-
38
- [PostHog AI](/docs/posthog-ai.md) can search and analyze your LLM traces using natural language. When you're on an [LLM Analytics page](https://app.posthog.com/llm-analytics), PostHog AI automatically switches to its LLM analytics mode, giving it access to tools for searching traces by date range, model, cost, error status, and other properties.
39
-
40
- Example prompts you can try:
41
-
42
- - "Show me recent LLM traces from the past week"
43
- - "What are the most expensive LLM calls from today?"
44
- - "Find traces with errors in the last 30 days"
45
- - "What's happening in my most expensive trace?"
46
-
47
- PostHog AI returns trace details including name, latency, cost, token counts, and error count. It can also read individual traces to provide a detailed summary of what happened.
48
-
49
- ## AI event hierarchy
50
-
51
- flowchart TD S\["<strong>$ai\_session\_id</strong><br/>(optional)"\] A\[<strong>$ai\_trace</strong>\] A2\[<strong>$ai\_trace</strong>\] B\[<strong>$ai\_generation</strong>\] C@{ shape: processes, label: "<strong>$ai\_spans</strong>" } D\[<strong>$ai\_generation</strong>\] E@{ shape: processes, label: "<strong>$ai\_spans</strong>" } F\[<strong>$ai\_generation</strong>\] S -.-> A S -.-> A2 A --> B A --> C C --> D C --> E E --> F
52
-
53
- Traces consist of the following event hierarchy:
54
-
55
- 1. (Optional) A session (`$ai_session_id`) can group multiple traces together.
56
- 2. A trace (`$ai_trace_id`) is the top-level required grouping for LLM events.
57
- 3. A trace can contain multiple spans and generations.
58
- 4. A span can be the parent of other spans.
59
- 5. A generation can be the child of a span or trace.
60
-
61
- ## Event properties
62
-
63
- A trace is a group that contains multiple spans, generations, and embeddings. Traces can be manually sent as events or appear as pseudo-events automatically created from child events.
64
-
65
- **Event name**: `$ai_trace`
66
-
67
- ### Core properties
68
-
69
- | Property | Description |
70
- | --- | --- |
71
- | $ai_trace_id | The trace ID (a UUID to group related AI events together)Must contain only letters, numbers, and special characters: -, _, ~, ., @, (, ), !, ', :, \|Example: d9222e05-8708-41b8-98ea-d4a21849e761 |
72
- | $ai_session_id | (Optional) Groups related traces together. Use this to organize traces by whatever grouping makes sense for your application (user sessions, workflows, conversations, or other logical boundaries).Example: session-abc-123, conv-user-456 |
73
- | $ai_latency | (Optional) The latency of the trace in seconds |
74
- | $ai_span_name | (Optional) The name of the traceExample: chat_completion, rag_pipeline |
75
- | $ai_is_error | (Optional) Boolean to indicate if the trace encountered an error |
76
- | $ai_error | (Optional) The error message or object if the trace failed |
77
-
78
- ### Pseudo-trace Events
79
-
80
- When you send generation (`$ai_generation`), span (`$ai_span`), or embedding (`$ai_embedding`) events with a `$ai_trace_id`, PostHog automatically creates a pseudo-trace event that appears in the dashboard as a parent grouping. These pseudo-traces:
81
-
82
- - Are not actual events in your data
83
- - Automatically aggregate metrics from child events (latency, tokens, costs)
84
- - Provide a hierarchical view of your AI operations
85
- - Do not require sending an explicit `$ai_trace` event
86
-
87
- This means you can either:
88
-
89
- 1. Send explicit `$ai_trace` events to control the trace metadata
90
- 2. Let PostHog automatically create pseudo-traces from your generation/span events
91
-
92
- ### Community questions
93
-
94
- Ask a question
95
-
96
- ### Was this page useful?
97
-
98
- HelpfulCould be better
@@ -1,120 +0,0 @@
1
- # Vercel AI SDK LLM analytics installation - Docs
2
-
3
- 1. 1
4
-
5
- ## Install dependencies
6
-
7
- Required
8
-
9
- Install the PostHog AI package, the Vercel AI SDK, and the OpenTelemetry SDK.
10
-
11
- ```bash
12
- npm install @posthog/ai @ai-sdk/openai ai @opentelemetry/sdk-node @opentelemetry/resources
13
- ```
14
-
15
- **No proxy**
16
-
17
- These SDKs **do not** proxy your calls. They only send analytics data to PostHog in the background.
18
-
19
- 2. 2
20
-
21
- ## Set up the OpenTelemetry exporter
22
-
23
- Required
24
-
25
- Initialize the OpenTelemetry SDK with PostHog's `PostHogTraceExporter`. This sends `gen_ai.*` spans directly to PostHog's OTLP ingestion endpoint. PostHog converts these into `$ai_generation` events automatically.
26
-
27
- ```typescript
28
- import { NodeSDK } from '@opentelemetry/sdk-node'
29
- import { resourceFromAttributes } from '@opentelemetry/resources'
30
- import { PostHogTraceExporter } from '@posthog/ai/otel'
31
- const sdk = new NodeSDK({
32
- resource: resourceFromAttributes({
33
- 'service.name': 'my-ai-app',
34
- }),
35
- traceExporter: new PostHogTraceExporter({
36
- apiKey: '<ph_project_token>',
37
- host: 'https://us.i.posthog.com',
38
- }),
39
- })
40
- sdk.start()
41
- ```
42
-
43
- 3. 3
44
-
45
- ## Call Vercel AI with telemetry enabled
46
-
47
- Required
48
-
49
- Pass `experimental_telemetry` to your Vercel AI SDK calls. The `posthog_distinct_id` metadata field links events to a specific user in PostHog.
50
-
51
- ```typescript
52
- import { generateText } from 'ai'
53
- import { openai } from '@ai-sdk/openai'
54
- const result = await generateText({
55
- model: openai('gpt-5-mini'),
56
- prompt: 'Tell me a fun fact about hedgehogs.',
57
- experimental_telemetry: {
58
- isEnabled: true,
59
- functionId: 'my-ai-function',
60
- metadata: {
61
- posthog_distinct_id: 'user_123', // optional
62
- },
63
- },
64
- })
65
- console.log(result.text)
66
- await sdk.shutdown()
67
- ```
68
-
69
- > **Note:** If you want to capture LLM events anonymously, omit the `posthog_distinct_id` metadata field. See our docs on [anonymous vs identified events](/docs/data/anonymous-vs-identified-events.md) to learn more.
70
-
71
- You can expect captured `$ai_generation` events to have the following properties:
72
-
73
- | Property | Description |
74
- | --- | --- |
75
- | $ai_model | The specific model, like gpt-5-mini or claude-4-sonnet |
76
- | $ai_latency | The latency of the LLM call in seconds |
77
- | $ai_time_to_first_token | Time to first token in seconds (streaming only) |
78
- | $ai_tools | Tools and functions available to the LLM |
79
- | $ai_input | List of messages sent to the LLM |
80
- | $ai_input_tokens | The number of tokens in the input (often found in response.usage) |
81
- | $ai_output_choices | List of response choices from the LLM |
82
- | $ai_output_tokens | The number of tokens in the output (often found in response.usage) |
83
- | $ai_total_cost_usd | The total cost in USD (input + output) |
84
- | [[...]](/docs/llm-analytics/generations.md#event-properties) | See [full list](/docs/llm-analytics/generations.md#event-properties) of properties |
85
-
86
- 4. ## Verify traces and generations
87
-
88
- Recommended
89
-
90
- *Confirm LLM events are being sent to PostHog*
91
-
92
- Let's make sure LLM events are being captured and sent to PostHog. Under **LLM analytics**, you should see rows of data appear in the **Traces** and **Generations** tabs.
93
-
94
- ![LLM generations in PostHog](https://res.cloudinary.com/dmukukwp6/image/upload/SCR_20250807_syne_ecd0801880.png)![LLM generations in PostHog](https://res.cloudinary.com/dmukukwp6/image/upload/SCR_20250807_syjm_5baab36590.png)
95
-
96
- [Check for LLM events in PostHog](https://app.posthog.com/llm-analytics/generations)
97
-
98
- 5. 4
99
-
100
- ## Next steps
101
-
102
- Recommended
103
-
104
- Now that you're capturing AI conversations, continue with the resources below to learn what else LLM Analytics enables within the PostHog platform.
105
-
106
- | Resource | Description |
107
- | --- | --- |
108
- | [Basics](/docs/llm-analytics/basics.md) | Learn the basics of how LLM calls become events in PostHog. |
109
- | [Generations](/docs/llm-analytics/generations.md) | Read about the $ai_generation event and its properties. |
110
- | [Traces](/docs/llm-analytics/traces.md) | Explore the trace hierarchy and how to use it to debug LLM calls. |
111
- | [Spans](/docs/llm-analytics/spans.md) | Review spans and their role in representing individual operations. |
112
- | [Anaylze LLM performance](/docs/llm-analytics/dashboard.md) | Learn how to create dashboards to analyze LLM performance. |
113
-
114
- ### Community questions
115
-
116
- Ask a question
117
-
118
- ### Was this page useful?
119
-
120
- HelpfulCould be better