@jini-ai/agent-plugins 0.6.16 → 0.6.19

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 (335) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/NOTICE +14 -0
  3. package/README.md +35 -14
  4. package/charts-echarts/plugin.json +39 -0
  5. package/charts-echarts/skills/charts-echarts/SKILL.md +110 -0
  6. package/charts-recharts/plugin.json +32 -0
  7. package/charts-recharts/skills/charts-recharts/SKILL.md +108 -0
  8. package/cloudflare/NOTES.md +16 -0
  9. package/cloudflare/form-destinations/cloudflare-d1.mjs +9 -0
  10. package/cloudflare/lib/api.mjs +96 -0
  11. package/cloudflare/lib/assets.mjs +65 -0
  12. package/cloudflare/lib/dns.mjs +32 -0
  13. package/cloudflare/lib/domain-inventory.mjs +61 -0
  14. package/cloudflare/lib/domain-status.mjs +48 -0
  15. package/cloudflare/lib/domains.mjs +95 -0
  16. package/cloudflare/lib/forms.mjs +254 -0
  17. package/cloudflare/lib/pages-upload.mjs +51 -0
  18. package/cloudflare/lib/target.mjs +165 -0
  19. package/cloudflare/lib/workers-upload.mjs +48 -0
  20. package/cloudflare/lib/zones.mjs +25 -0
  21. package/cloudflare/mcp.json +4 -0
  22. package/cloudflare/plugin.json +96 -0
  23. package/cloudflare/skills/cloudflare/SKILL.md +57 -0
  24. package/cloudflare/skills/cloudflare/references/domains.md +31 -0
  25. package/cloudflare/skills/cloudflare/references/pages.md +18 -0
  26. package/cloudflare/skills/cloudflare/references/permissions.md +29 -0
  27. package/cloudflare/skills/cloudflare/references/troubleshooting.md +20 -0
  28. package/cloudflare/skills/cloudflare/references/workers.md +42 -0
  29. package/cloudflare/targets/cloudflare-pages.mjs +12 -0
  30. package/cloudflare/targets/cloudflare-workers.mjs +17 -0
  31. package/cloudflare/tovu-consent.json +6 -0
  32. package/cloudflare/tovu-deploy-targets.json +630 -0
  33. package/cloudflare/tovu-form-destinations.json +12 -0
  34. package/cloudflare/worker/forms-receiver.mjs +249 -0
  35. package/composio/mcp.json +10 -0
  36. package/composio/plugin.json +68 -0
  37. package/composio/skills/composio/SKILL.md +85 -0
  38. package/dist/core/identity-namespace.d.ts +12 -0
  39. package/dist/core/identity-namespace.js +20 -0
  40. package/dist/folder-zip-node.js +29 -7
  41. package/dist/lifecycle/bundled-digests.js +4 -3
  42. package/dist/lifecycle/install.d.ts +7 -0
  43. package/dist/lifecycle/install.js +45 -3
  44. package/dist/lifecycle/manifest.d.ts +2 -2
  45. package/dist/lifecycle/manifest.js +5 -3
  46. package/dist/lifecycle/node.js +2 -0
  47. package/dist/lifecycle/persistent-state.js +1 -1
  48. package/dist/lifecycle/ports.d.ts +8 -0
  49. package/dist/lifecycle/seed-bundled.js +4 -1
  50. package/dist/manifest.d.ts +1 -1
  51. package/dist/manifest.js +3 -2
  52. package/fly/deploy-configs/fly.mjs +115 -0
  53. package/fly/deploy-ops/fly.mjs +102 -0
  54. package/fly/mcp.json +4 -0
  55. package/fly/plugin.json +81 -0
  56. package/fly/scripts/render-deploy-workflow.mjs +150 -0
  57. package/fly/skills/fly/SKILL.md +43 -0
  58. package/fly/skills/fly/references/fly-deploy.template.yml +117 -0
  59. package/fly/skills/fly/references/fly.template.toml +81 -0
  60. package/fly/tovu-credential-schemes.json +11 -0
  61. package/fly/tovu-deploy-configs.json +21 -0
  62. package/fly/tovu-deploy-ops.json +14 -0
  63. package/github/deploy-ops/github-actions.mjs +164 -0
  64. package/github/deployments/github.mjs +415 -0
  65. package/github/mcp.json +4 -0
  66. package/github/plugin.json +105 -0
  67. package/github/skills/github/SKILL.md +249 -0
  68. package/github/skills/github/references/actions.md +224 -0
  69. package/github/skills/github/references/auth-and-tokens.md +140 -0
  70. package/github/skills/github/references/repo-files.md +135 -0
  71. package/github/skills/github/references/site-backup.md +159 -0
  72. package/github/skills/github/references/source-control.md +123 -0
  73. package/github/source-control/backup-push.mjs +242 -0
  74. package/github/source-control/commit-site.mjs +459 -0
  75. package/github/source-control/github.mjs +93 -0
  76. package/github/source-control/write-files.mjs +468 -0
  77. package/github/tovu-deploy-ops.json +13 -0
  78. package/github/tovu-source-control.json +117 -0
  79. package/github-pages/NOTES.md +19 -0
  80. package/github-pages/mcp.json +4 -0
  81. package/github-pages/plugin.json +48 -0
  82. package/github-pages/skills/github-pages/SKILL.md +44 -0
  83. package/github-pages/targets/github-pages.mjs +543 -0
  84. package/github-pages/tovu-deploy-targets.json +327 -0
  85. package/google-login/exports/google-g.svg +1 -0
  86. package/google-login/exports/sign-in-button.css +68 -0
  87. package/google-login/exports/sign-in-button.html +4 -0
  88. package/google-login/mcp.json +4 -0
  89. package/google-login/plugin.json +59 -0
  90. package/google-login/skills/google-login/SKILL.md +96 -0
  91. package/google-login/tovu-login-providers.json +21 -0
  92. package/google-workspace/README.md +132 -0
  93. package/google-workspace/form-destinations/README.md +87 -0
  94. package/google-workspace/form-destinations/dedupe.mjs +43 -0
  95. package/google-workspace/form-destinations/delivery-result.mjs +69 -0
  96. package/google-workspace/form-destinations/mapping.mjs +152 -0
  97. package/google-workspace/form-destinations/sheets.mjs +202 -0
  98. package/google-workspace/lib/auth.mjs +81 -0
  99. package/google-workspace/lib/drive-files.mjs +54 -0
  100. package/google-workspace/lib/form-destination-settings.mjs +72 -0
  101. package/google-workspace/lib/http.mjs +168 -0
  102. package/google-workspace/lib/picker-flow.mjs +171 -0
  103. package/google-workspace/lib/picker-selection.mjs +107 -0
  104. package/google-workspace/lib/product-state.mjs +93 -0
  105. package/google-workspace/lib/request-policy.mjs +163 -0
  106. package/google-workspace/lib/sheets-a1.mjs +79 -0
  107. package/google-workspace/lib/sheets-admin-csv.mjs +82 -0
  108. package/google-workspace/lib/sheets-admin-request-kinds.mjs +183 -0
  109. package/google-workspace/lib/sheets-client.mjs +286 -0
  110. package/google-workspace/lib/surface-actions.mjs +107 -0
  111. package/google-workspace/mcp.json +4 -0
  112. package/google-workspace/plugin.json +77 -0
  113. package/google-workspace/products.json +12 -0
  114. package/google-workspace/skills/google-workspace/SKILL.md +82 -0
  115. package/google-workspace/skills/google-workspace/references/connection.md +102 -0
  116. package/google-workspace/skills/google-workspace/references/form-delivery.md +50 -0
  117. package/google-workspace/skills/google-workspace/references/sheets.md +149 -0
  118. package/google-workspace/skills/google-workspace/references/troubleshooting.md +31 -0
  119. package/google-workspace/tools/account-info.mjs +18 -0
  120. package/google-workspace/tools/sheets/README.md +54 -0
  121. package/google-workspace/tools/sheets/copy-tab.mjs +23 -0
  122. package/google-workspace/tools/sheets/copy.mjs +23 -0
  123. package/google-workspace/tools/sheets/create.mjs +35 -0
  124. package/google-workspace/tools/sheets/find-replace.mjs +38 -0
  125. package/google-workspace/tools/sheets/find.mjs +52 -0
  126. package/google-workspace/tools/sheets/get-by-data-filter.mjs +23 -0
  127. package/google-workspace/tools/sheets/get.mjs +22 -0
  128. package/google-workspace/tools/sheets/values-append.mjs +27 -0
  129. package/google-workspace/tools/sheets/values-batch-clear.mjs +20 -0
  130. package/google-workspace/tools/sheets/values-batch-get.mjs +20 -0
  131. package/google-workspace/tools/sheets/values-batch-update.mjs +29 -0
  132. package/google-workspace/tools/sheets/values-by-data-filter.mjs +62 -0
  133. package/google-workspace/tools/sheets/values-clear.mjs +20 -0
  134. package/google-workspace/tools/sheets/values-get.mjs +21 -0
  135. package/google-workspace/tools/sheets/values-update.mjs +26 -0
  136. package/google-workspace/tools/sheets-admin/README.md +45 -0
  137. package/google-workspace/tools/sheets-admin/basic-filter.mjs +32 -0
  138. package/google-workspace/tools/sheets-admin/batch-update.mjs +25 -0
  139. package/google-workspace/tools/sheets-admin/developer-metadata.mjs +28 -0
  140. package/google-workspace/tools/sheets-admin/export-csv.mjs +67 -0
  141. package/google-workspace/tools/sheets-admin/filter-views.mjs +38 -0
  142. package/google-workspace/tools/sheets-admin/format.mjs +70 -0
  143. package/google-workspace/tools/sheets-admin/named-ranges.mjs +42 -0
  144. package/google-workspace/tools/sheets-admin/open-existing.mjs +34 -0
  145. package/google-workspace/tools/sheets-admin/protected-ranges-get.mjs +18 -0
  146. package/google-workspace/tools/sheets-admin/sort.mjs +18 -0
  147. package/google-workspace/tools/sheets-admin/tab-modify.mjs +36 -0
  148. package/google-workspace/tovu-admin-surfaces.json +63 -0
  149. package/google-workspace/tovu-agent-tools.json +1178 -0
  150. package/google-workspace/tovu-connections.json +35 -0
  151. package/google-workspace/tovu-form-destinations.json +10 -0
  152. package/google-workspace/ui/README.md +73 -0
  153. package/google-workspace/ui/connection-panel.handler.mjs +167 -0
  154. package/google-workspace/ui/connection-panel.html +17 -0
  155. package/google-workspace/ui/connection-panel.mjs +189 -0
  156. package/google-workspace/ui/connection-view.mjs +120 -0
  157. package/google-workspace/ui/destination-panel.handler.mjs +106 -0
  158. package/google-workspace/ui/destination-panel.html +17 -0
  159. package/google-workspace/ui/destination-panel.mjs +150 -0
  160. package/google-workspace/ui/dom.mjs +140 -0
  161. package/google-workspace/ui/panel.css +170 -0
  162. package/google-workspace/ui/picker-flow.mjs +87 -0
  163. package/google-workspace/ui/picker-view.mjs +44 -0
  164. package/google-workspace/ui/picker.handler.mjs +56 -0
  165. package/google-workspace/ui/picker.html +17 -0
  166. package/google-workspace/ui/picker.mjs +88 -0
  167. package/google-workspace/ui/surface-client.mjs +227 -0
  168. package/higgsfield-media/mcp.json +9 -0
  169. package/higgsfield-media/plugin.json +109 -0
  170. package/higgsfield-media/skills/higgsfield-media/SKILL.md +325 -0
  171. package/higgsfield-media/skills/higgsfield-media/references/failure-modes.md +116 -0
  172. package/higgsfield-media/skills/higgsfield-media/references/models-and-plan-gates.md +142 -0
  173. package/jev/mcp.json +4 -0
  174. package/jev/plugin.json +44 -0
  175. package/jev/skills/jev/SKILL.md +308 -0
  176. package/jev/skills/jev/references/cookbooks.md +197 -0
  177. package/jev/skills/jev/references/jaggedness.md +135 -0
  178. package/jev/skills/jev/references/javascript-sdk.md +146 -0
  179. package/jev/skills/jev/references/patterns.md +123 -0
  180. package/jev/skills/jev/references/primitives-reference.md +187 -0
  181. package/langfuse/plugin.json +22 -0
  182. package/meilisearch/mcp.json +4 -0
  183. package/meilisearch/plugin.json +54 -0
  184. package/meilisearch/providers/meilisearch.mjs +651 -0
  185. package/meilisearch/skills/meilisearch/SKILL.md +43 -0
  186. package/meilisearch/tovu-search-providers.json +10 -0
  187. package/netlify/NOTES.md +13 -0
  188. package/netlify/mcp.json +4 -0
  189. package/netlify/plugin.json +47 -0
  190. package/netlify/skills/netlify/SKILL.md +39 -0
  191. package/netlify/targets/netlify.mjs +384 -0
  192. package/netlify/tovu-consent.json +6 -0
  193. package/netlify/tovu-deploy-targets.json +163 -0
  194. package/opentelemetry/mcp.json +4 -0
  195. package/opentelemetry/plugin.json +52 -0
  196. package/opentelemetry/skills/opentelemetry/SKILL.md +39 -0
  197. package/package.json +161 -6
  198. package/posthog/mcp.json +4 -0
  199. package/posthog/plugin.json +46 -0
  200. package/posthog/skills/posthog/SKILL.md +36 -0
  201. package/railway/deploy-configs/railway.mjs +135 -0
  202. package/railway/deploy-ops/railway.mjs +167 -0
  203. package/railway/mcp.json +4 -0
  204. package/railway/plugin.json +45 -0
  205. package/railway/skills/railway/SKILL.md +66 -0
  206. package/railway/tovu-deploy-configs.json +16 -0
  207. package/railway/tovu-deploy-ops.json +11 -0
  208. package/render/deploy-configs/render.mjs +141 -0
  209. package/render/deploy-ops/render.mjs +152 -0
  210. package/render/mcp.json +4 -0
  211. package/render/plugin.json +47 -0
  212. package/render/skills/render/SKILL.md +63 -0
  213. package/render/tovu-deploy-configs.json +16 -0
  214. package/render/tovu-deploy-ops.json +11 -0
  215. package/resend/NOTES.md +52 -0
  216. package/resend/adapters/resend.mjs +161 -0
  217. package/resend/lib/domains.mjs +137 -0
  218. package/resend/lib/errors.mjs +25 -0
  219. package/resend/lib/feedback.mjs +118 -0
  220. package/resend/mcp.json +13 -0
  221. package/resend/plugin.json +192 -0
  222. package/resend/skills/resend/SKILL.md +107 -0
  223. package/resend/tovu-mail-adapters.json +22 -0
  224. package/s3-compatible/NOTES.md +11 -0
  225. package/s3-compatible/mcp.json +4 -0
  226. package/s3-compatible/object-stores/s3-compatible.mjs +287 -0
  227. package/s3-compatible/plugin.json +56 -0
  228. package/s3-compatible/skills/s3-compatible/SKILL.md +39 -0
  229. package/s3-compatible/targets/s3-compatible.mjs +1054 -0
  230. package/s3-compatible/tovu-deploy-targets.json +432 -0
  231. package/s3-compatible/tovu-object-stores.json +29 -0
  232. package/sentry/mcp.json +4 -0
  233. package/sentry/plugin.json +49 -0
  234. package/sentry/skills/sentry/SKILL.md +34 -0
  235. package/shopify/mcp.json +4 -0
  236. package/shopify/plugin.json +22 -0
  237. package/shopify/skills/shopify/SKILL.md +103 -0
  238. package/shopify/skills/shopify/references/catalog-sync.md +74 -0
  239. package/shopify/skills/shopify/references/domains.md +26 -0
  240. package/shopify/skills/shopify/references/live-storefront.md +34 -0
  241. package/shopify/skills/shopify/references/storefront-snippets.md +21 -0
  242. package/site-compliance/mcp.json +4 -0
  243. package/site-compliance/plugin.json +34 -0
  244. package/site-compliance/skills/site-compliance/SKILL.md +220 -0
  245. package/site-compliance/skills/site-compliance/references/ccpa-cpra.md +115 -0
  246. package/site-compliance/skills/site-compliance/references/gdpr-eu-uk.md +143 -0
  247. package/site-compliance/skills/site-compliance/references/wcag-2-2.md +129 -0
  248. package/site-import/mcp.json +4 -0
  249. package/site-import/plugin.json +41 -0
  250. package/site-import/skills/site-import/SKILL.md +232 -0
  251. package/site-import/skills/site-import/references/content-mapping.md +166 -0
  252. package/site-import/skills/site-import/references/discovery-and-classification.md +117 -0
  253. package/site-import/skills/site-import/references/theme-extraction.md +34 -0
  254. package/slide-design/com.anthropic.claude-code/hooks/hooks.json +4 -0
  255. package/slide-design/mcp.json +4 -0
  256. package/slide-design/plugin.json +26 -0
  257. package/slide-design/skills/slide-design/SKILL.md +103 -0
  258. package/slide-design/skills/slide-design/references/charts-and-exhibits.md +100 -0
  259. package/slide-design/skills/slide-design/references/html-deck.md +175 -0
  260. package/slide-design/skills/slide-design/references/layout-and-style.md +131 -0
  261. package/slide-design/skills/slide-design/references/review.md +93 -0
  262. package/slide-design/skills/slide-design/references/storyline.md +118 -0
  263. package/stripe/plugin.json +22 -0
  264. package/supabase/mcp.json +26 -0
  265. package/supabase/plugin.json +78 -0
  266. package/supabase/skills/supabase/SKILL.md +169 -0
  267. package/supabase/skills/supabase/references/failure-modes.md +101 -0
  268. package/ui-ux-design/CHANGELOG.md +28 -0
  269. package/ui-ux-design/LICENSE +201 -0
  270. package/ui-ux-design/NOTICE +14 -0
  271. package/ui-ux-design/README.md +62 -0
  272. package/ui-ux-design/com.anthropic.claude-code/hooks/hooks.json +4 -0
  273. package/ui-ux-design/mcp.json +4 -0
  274. package/ui-ux-design/plugin.json +26 -0
  275. package/ui-ux-design/skills/frontend-accessibility/SKILL.md +60 -0
  276. package/ui-ux-design/skills/gstack-design/SKILL.md +53 -0
  277. package/ui-ux-design/skills/gstack-design/references/consultation.md +30 -0
  278. package/ui-ux-design/skills/gstack-design/references/html.md +29 -0
  279. package/ui-ux-design/skills/gstack-design/references/review.md +28 -0
  280. package/ui-ux-design/skills/gstack-design/references/shotgun.md +33 -0
  281. package/ui-ux-design/skills/gstack-design/references/upstream-notes.md +23 -0
  282. package/ui-ux-design/skills/interface-design/ORIGINAL.md +16 -0
  283. package/ui-ux-design/skills/interface-design/SKILL.md +41 -0
  284. package/ui-ux-design/skills/interface-design/references/commands/audit.md +40 -0
  285. package/ui-ux-design/skills/interface-design/references/commands/critique.md +21 -0
  286. package/ui-ux-design/skills/interface-design/references/commands/extract.md +34 -0
  287. package/ui-ux-design/skills/interface-design/references/commands/init.md +31 -0
  288. package/ui-ux-design/skills/interface-design/references/commands/status.md +22 -0
  289. package/ui-ux-design/skills/interface-design/references/examples/system-precision.md +29 -0
  290. package/ui-ux-design/skills/interface-design/references/examples/system-warmth.md +29 -0
  291. package/ui-ux-design/skills/interface-design/references/system-template.md +57 -0
  292. package/ui-ux-design/skills/shadcn-ui/README.md +244 -0
  293. package/ui-ux-design/skills/shadcn-ui/SKILL.md +333 -0
  294. package/ui-ux-design/skills/shadcn-ui/examples/auth-layout.tsx +177 -0
  295. package/ui-ux-design/skills/shadcn-ui/examples/data-table.tsx +313 -0
  296. package/ui-ux-design/skills/shadcn-ui/examples/form-pattern.tsx +177 -0
  297. package/ui-ux-design/skills/shadcn-ui/resources/component-catalog.md +481 -0
  298. package/ui-ux-design/skills/shadcn-ui/resources/customization-guide.md +516 -0
  299. package/ui-ux-design/skills/shadcn-ui/resources/migration-guide.md +463 -0
  300. package/ui-ux-design/skills/shadcn-ui/resources/setup-guide.md +412 -0
  301. package/ui-ux-design/skills/shadcn-ui/scripts/verify-setup.sh +134 -0
  302. package/ui-ux-design/skills/ui-ux-design/SKILL.md +171 -0
  303. package/ui-ux-design/skills/ui-ux-design/references/brand-and-voice.md +78 -0
  304. package/ui-ux-design/skills/ui-ux-design/references/chrome-mobile-test-matrix.md +137 -0
  305. package/ui-ux-design/skills/ui-ux-design/references/components-and-states.md +112 -0
  306. package/ui-ux-design/skills/ui-ux-design/references/delight-and-motion.md +54 -0
  307. package/ui-ux-design/skills/ui-ux-design/references/foundations.md +145 -0
  308. package/ui-ux-design/skills/ui-ux-design/references/inclusive-ai-imagery.md +57 -0
  309. package/ui-ux-design/skills/ui-ux-design/references/kole-jain-uiux-concepts.md +104 -0
  310. package/ui-ux-design/skills/ui-ux-design/references/kuinetic-reference.md +184 -0
  311. package/ui-ux-design/skills/ui-ux-design/references/openai-frontend-skill.md +139 -0
  312. package/ui-ux-design/skills/ui-ux-design/references/premium-ui.md +55 -0
  313. package/ui-ux-design/skills/ui-ux-design/references/research-and-validation.md +88 -0
  314. package/ui-ux-design/skills/ui-ux-design/references/sam-crawford-premium-websites.md +103 -0
  315. package/ui-ux-design/skills/ui-ux-design/references/self-made-web-designer-core-skills.md +119 -0
  316. package/ui-ux-design/skills/ui-ux-design/references/ui-animation.md +173 -0
  317. package/ui-ux-design/skills/ui-ux-design/references/ui-loop.md +234 -0
  318. package/ui-ux-design/skills/ui-ux-design/references/visual-storytelling.md +54 -0
  319. package/ui-ux-design/skills/vercel-web-design-guidelines/SKILL.md +39 -0
  320. package/ui-ux-design/skills/web-compliance/SKILL.md +134 -0
  321. package/ui-ux-design/skills/web-compliance/references/audit-evidence.md +59 -0
  322. package/vercel/NOTES.md +23 -0
  323. package/vercel/mcp.json +4 -0
  324. package/vercel/object-stores/vercel-blob.mjs +147 -0
  325. package/vercel/plugin.json +47 -0
  326. package/vercel/skills/vercel/SKILL.md +48 -0
  327. package/vercel/targets/vercel.mjs +586 -0
  328. package/vercel/tovu-consent.json +6 -0
  329. package/vercel/tovu-deploy-targets.json +219 -0
  330. package/vercel/tovu-object-stores.json +10 -0
  331. package/wordpress/NOTES.md +33 -0
  332. package/wordpress/plugin.json +30 -0
  333. package/wordpress/skills/wordpress/SKILL.md +43 -0
  334. package/wordpress/skills/wordpress/references/free-site-redirect.md +46 -0
  335. package/wordpress/skills/wordpress/references/subdomain.md +66 -0
@@ -0,0 +1,163 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "targets": [
4
+ {
5
+ "id": "netlify",
6
+ "label": "Netlify",
7
+ "module": "targets/netlify.mjs",
8
+ "projectName": {
9
+ "label": "Site name",
10
+ "help": "Netlify finds or creates a site with this name on every publish."
11
+ },
12
+ "env": {
13
+ "tokenVars": [
14
+ "NETLIFY_TOKEN",
15
+ "NETLIFY_ACCESS_TOKEN",
16
+ "NETLIFY_AUTH_TOKEN"
17
+ ]
18
+ },
19
+ "credential": {
20
+ "vendorId": "netlify",
21
+ "help": "A personal access token from your Netlify account.",
22
+ "tokenPageUrl": "https://app.netlify.com/user/applications#personal-access-tokens",
23
+ "fields": [
24
+ {
25
+ "name": "token",
26
+ "label": "Personal access token",
27
+ "required": true,
28
+ "secret": true,
29
+ "help": "Netlify: User settings > Applications > Personal access tokens."
30
+ }
31
+ ]
32
+ },
33
+ "i18n": {
34
+ "es": {
35
+ "Site name": "Nombre del sitio",
36
+ "Netlify finds or creates a site with this name on every publish.": "Netlify busca o crea un sitio con este nombre en cada publicación.",
37
+ "A personal access token from your Netlify account.": "Un token de acceso personal de tu cuenta de Netlify.",
38
+ "Personal access token": "Token de acceso personal"
39
+ },
40
+ "id": {
41
+ "Site name": "Nama situs",
42
+ "Netlify finds or creates a site with this name on every publish.": "Netlify menemukan atau membuat situs dengan nama ini setiap kali menerbitkan.",
43
+ "A personal access token from your Netlify account.": "Token akses pribadi dari akun Netlify Anda.",
44
+ "Personal access token": "Token akses pribadi"
45
+ },
46
+ "de": {
47
+ "Site name": "Website-Name",
48
+ "Netlify finds or creates a site with this name on every publish.": "Netlify findet oder erstellt bei jeder Veröffentlichung eine Website mit diesem Namen.",
49
+ "A personal access token from your Netlify account.": "Ein persönlicher Zugriffstoken aus Ihrem Netlify-Konto.",
50
+ "Personal access token": "Persönlicher Zugriffstoken"
51
+ },
52
+ "zh-CN": {
53
+ "Site name": "站点名称",
54
+ "Netlify finds or creates a site with this name on every publish.": "Netlify 会在每次发布时查找或创建使用此名称的站点。",
55
+ "A personal access token from your Netlify account.": "来自您 Netlify 帐户的个人访问令牌。",
56
+ "Personal access token": "个人访问令牌"
57
+ },
58
+ "zh-TW": {
59
+ "Site name": "網站名稱",
60
+ "Netlify finds or creates a site with this name on every publish.": "Netlify 會在每次發佈時尋找或建立使用此名稱的網站。",
61
+ "A personal access token from your Netlify account.": "您 Netlify 帳戶的個人存取權杖。",
62
+ "Personal access token": "個人存取權杖"
63
+ },
64
+ "pt-BR": {
65
+ "Site name": "Nome do site",
66
+ "Netlify finds or creates a site with this name on every publish.": "A Netlify encontra ou cria um site com este nome em cada publicação.",
67
+ "A personal access token from your Netlify account.": "Um token de acesso pessoal da sua conta Netlify.",
68
+ "Personal access token": "Token de acesso pessoal"
69
+ },
70
+ "ru": {
71
+ "Site name": "Название сайта",
72
+ "Netlify finds or creates a site with this name on every publish.": "Netlify при каждой публикации находит или создаёт сайт с этим именем.",
73
+ "A personal access token from your Netlify account.": "Персональный токен доступа из вашей учётной записи Netlify.",
74
+ "Personal access token": "Персональный токен доступа"
75
+ },
76
+ "fa": {
77
+ "Site name": "نام سایت",
78
+ "Netlify finds or creates a site with this name on every publish.": "Netlify در هر انتشار سایتی با این نام پیدا یا ایجاد می‌کند.",
79
+ "A personal access token from your Netlify account.": "یک توکن دسترسی شخصی از حساب Netlify شما.",
80
+ "Personal access token": "توکن دسترسی شخصی"
81
+ },
82
+ "ar": {
83
+ "Site name": "اسم الموقع",
84
+ "Netlify finds or creates a site with this name on every publish.": "يعثر Netlify على موقع بهذا الاسم أو ينشئه عند كل نشر.",
85
+ "A personal access token from your Netlify account.": "رمز وصول شخصي من حساب Netlify الخاص بك.",
86
+ "Personal access token": "رمز وصول شخصي"
87
+ },
88
+ "ja": {
89
+ "Site name": "サイト名",
90
+ "Netlify finds or creates a site with this name on every publish.": "Netlify は公開のたびにこの名前のサイトを見つけるか作成します。",
91
+ "A personal access token from your Netlify account.": "Netlify アカウントの個人アクセストークン。",
92
+ "Personal access token": "個人アクセストークン"
93
+ },
94
+ "ko": {
95
+ "Site name": "사이트 이름",
96
+ "Netlify finds or creates a site with this name on every publish.": "Netlify는 게시할 때마다 이 이름의 사이트를 찾거나 만듭니다.",
97
+ "A personal access token from your Netlify account.": "Netlify 계정의 개인 액세스 토큰입니다.",
98
+ "Personal access token": "개인 액세스 토큰"
99
+ },
100
+ "pl": {
101
+ "Site name": "Nazwa witryny",
102
+ "Netlify finds or creates a site with this name on every publish.": "Netlify przy każdej publikacji znajduje lub tworzy witrynę o tej nazwie.",
103
+ "A personal access token from your Netlify account.": "Osobisty token dostępu z Twojego konta Netlify.",
104
+ "Personal access token": "Osobisty token dostępu"
105
+ },
106
+ "hu": {
107
+ "Site name": "Webhely neve",
108
+ "Netlify finds or creates a site with this name on every publish.": "A Netlify minden közzétételkor megkeres vagy létrehoz egy ilyen nevű webhelyet.",
109
+ "A personal access token from your Netlify account.": "Személyes hozzáférési token a Netlify-fiókjából.",
110
+ "Personal access token": "Személyes hozzáférési token"
111
+ },
112
+ "fr": {
113
+ "Site name": "Nom du site",
114
+ "Netlify finds or creates a site with this name on every publish.": "Netlify trouve ou crée un site portant ce nom à chaque publication.",
115
+ "A personal access token from your Netlify account.": "Un jeton d’accès personnel de votre compte Netlify.",
116
+ "Personal access token": "Jeton d’accès personnel"
117
+ },
118
+ "uk": {
119
+ "Site name": "Назва сайту",
120
+ "Netlify finds or creates a site with this name on every publish.": "Netlify під час кожної публікації знаходить або створює сайт із цією назвою.",
121
+ "A personal access token from your Netlify account.": "Персональний токен доступу з вашого облікового запису Netlify.",
122
+ "Personal access token": "Персональний токен доступу"
123
+ },
124
+ "tr": {
125
+ "Site name": "Site adı",
126
+ "Netlify finds or creates a site with this name on every publish.": "Netlify her yayında bu adla bir site bulur veya oluşturur.",
127
+ "A personal access token from your Netlify account.": "Netlify hesabınızdan bir kişisel erişim belirteci.",
128
+ "Personal access token": "Kişisel erişim belirteci"
129
+ },
130
+ "th": {
131
+ "Site name": "ชื่อเว็บไซต์",
132
+ "Netlify finds or creates a site with this name on every publish.": "Netlify ค้นหาหรือสร้างเว็บไซต์ชื่อนี้ทุกครั้งที่เผยแพร่",
133
+ "A personal access token from your Netlify account.": "โทเค็นการเข้าถึงส่วนบุคคลจากบัญชี Netlify ของคุณ",
134
+ "Personal access token": "โทเค็นการเข้าถึงส่วนบุคคล"
135
+ },
136
+ "it": {
137
+ "Site name": "Nome del sito",
138
+ "Netlify finds or creates a site with this name on every publish.": "Netlify trova o crea un sito con questo nome a ogni pubblicazione.",
139
+ "A personal access token from your Netlify account.": "Un token di accesso personale dal tuo account Netlify.",
140
+ "Personal access token": "Token di accesso personale"
141
+ },
142
+ "hi": {
143
+ "Site name": "साइट नाम",
144
+ "Netlify finds or creates a site with this name on every publish.": "Netlify हर प्रकाशन पर इस नाम से साइट खोजता या बनाता है।",
145
+ "A personal access token from your Netlify account.": "आपके Netlify खाते का व्यक्तिगत एक्सेस टोकन।",
146
+ "Personal access token": "व्यक्तिगत एक्सेस टोकन"
147
+ },
148
+ "ur": {
149
+ "Site name": "سائٹ کا نام",
150
+ "Netlify finds or creates a site with this name on every publish.": "Netlify ہر اشاعت پر اس نام کی سائٹ ڈھونڈتا یا بناتا ہے۔",
151
+ "A personal access token from your Netlify account.": "آپ کے Netlify اکاؤنٹ کا ذاتی رسائی ٹوکن۔",
152
+ "Personal access token": "ذاتی رسائی ٹوکن"
153
+ },
154
+ "bn": {
155
+ "Site name": "সাইটের নাম",
156
+ "Netlify finds or creates a site with this name on every publish.": "Netlify প্রতিটি প্রকাশনার সময় এই নামের একটি সাইট খুঁজে বা তৈরি করে।",
157
+ "A personal access token from your Netlify account.": "আপনার Netlify অ্যাকাউন্টের একটি ব্যক্তিগত অ্যাক্সেস টোকেন।",
158
+ "Personal access token": "ব্যক্তিগত অ্যাক্সেস টোকেন"
159
+ }
160
+ }
161
+ }
162
+ ]
163
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
3
+ "mcpServers": {}
4
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
+ "name": "opentelemetry",
4
+ "version": "0.1.0",
5
+ "description": "Connects the site's traces to any OpenTelemetry (OTLP/HTTP) backend, such as Grafana Cloud or Honeycomb, through the OpenTelemetry provider plugin in the same package (observability-opentelemetry). Ships the know-how and a secure key card: the person enters the OTLP endpoint, an optional username or instance ID, and the token; the host saves it to your project, and you choose which sites use it. No vendor code here; the provider plugin exports the traces.",
6
+ "author": "Tovu",
7
+ "license": "Apache-2.0",
8
+ "extensions": {
9
+ "tovu": {
10
+ "toolKeywords": { "observability_send_test_error": "OpenTelemetry" },
11
+ "displayName": "OpenTelemetry",
12
+ "summary": "Sends your site's traces to Grafana Cloud, Honeycomb or any OpenTelemetry backend.",
13
+ "id": "tovu/opentelemetry",
14
+ "providerPlugin": "observability-opentelemetry",
15
+ "provides": [
16
+ "observability",
17
+ "tracing"
18
+ ],
19
+ "credentialCards": [
20
+ {
21
+ "target": "opentelemetry",
22
+ "title": "Connect OpenTelemetry (Grafana Cloud, Honeycomb…)",
23
+ "label": "OpenTelemetry",
24
+ "category": "ops",
25
+ "intro": "Send this site's traces to an OpenTelemetry (OTLP/HTTP) backend.",
26
+ "usedFor": [
27
+ "Exports request, database and assistant traces over OTLP/HTTP"
28
+ ],
29
+ "keyHint": "Grafana Cloud: your stack → OpenTelemetry → Configure shows the endpoint, the instance ID (username) and creates a token. Honeycomb: endpoint https://api.honeycomb.io and Extra headers x-honeycomb-team=<ingest API key>.",
30
+ "helpUrl": "https://grafana.com/docs/grafana-cloud/send-data/otlp/send-data-otlp/",
31
+ "helpLabel": "Grafana Cloud OTLP setup",
32
+ "saveKind": "provider-settings",
33
+ "saveTarget": "observability-opentelemetry"
34
+ }
35
+ ]
36
+ }
37
+ },
38
+ "keywords": [
39
+ "opentelemetry",
40
+ "otel",
41
+ "otlp",
42
+ "observability",
43
+ "tracing",
44
+ "traces",
45
+ "grafana",
46
+ "grafana-cloud",
47
+ "honeycomb",
48
+ "monitoring",
49
+ "provider-settings",
50
+ "observability-opentelemetry"
51
+ ]
52
+ }
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: opentelemetry
3
+ description: Connect the site's traces to an OpenTelemetry backend such as Grafana Cloud or Honeycomb. Use when the person says "set up OpenTelemetry", "send traces to Grafana", "connect Honeycomb", "add tracing" or "add observability", or asks whether tracing is working.
4
+ ---
5
+
6
+ # OpenTelemetry (Grafana Cloud, Honeycomb…)
7
+
8
+ The host exports traces through the OpenTelemetry provider plugin, `observability-opentelemetry`, to any
9
+ OTLP/HTTP endpoint. This plugin only knows how to set it up; it holds no key and runs no code.
10
+
11
+ It is part of `observability-opentelemetry` and turns on and off with it: there is no separate switch for this plugin.
12
+
13
+ ## Set it up
14
+
15
+ 1. Check status: `provider_status {pluginId:"observability-opentelemetry"}`.
16
+ - Not listed: the provider plugin is not installed. Say so in one line; `content_read.plugin` shows what is.
17
+ - `enabled: false`: offer `plugins_set_enabled {family:"site-runtime", pluginId:"observability-opentelemetry", enabled:true}`.
18
+ - `usedByThisSite: false` with a `keyId`: ask "Use the saved OpenTelemetry key for <site>?".
19
+ Yes → `project_key_use {keyId, use:true}`. To use a different key, open the card;
20
+ it saves for this site only when other sites use the project key.
21
+ - `configured: true`: say it is already connected. Open the card again only if they ask to change it.
22
+ 2. Say in one sentence what the card is for, then open it:
23
+ `credential_save {kind:"plugin-provider", target:"opentelemetry"}`.
24
+ 3. What goes in each field:
25
+ - **Grafana Cloud:** your stack → OpenTelemetry → Configure. Endpoint like
26
+ `https://otlp-gateway-prod-us-east-0.grafana.net/otlp`, Username = the instance ID (a number),
27
+ Token = the access-policy token it creates. The host builds the Basic auth header; no base64 by hand.
28
+ - **Honeycomb:** endpoint `https://api.honeycomb.io`, Username and Token blank, Extra headers
29
+ `x-honeycomb-team=<ingest API key>` (Honeycomb reads its key from that header).
30
+ - **Anything else:** its OTLP/HTTP base URL; traces go to `/v1/traces` under it.
31
+ 4. After it saves: the key is saved to your project; no site uses it yet. Ask the result's
32
+ `ask` ("Apply this OpenTelemetry key to <site>?"). Yes → `project_key_use {keyId, use:true}`;
33
+ it applies now. If the result says `appliesAt: "restart"`, offer `site_restart`.
34
+ No → it stays saved for later. An already-attached or site-only save applies now.
35
+
36
+ ## Rules
37
+
38
+ - Never ask for a token in chat and never put one in any tool argument. The card is the only way in.
39
+ - Changing the endpoint or username needs the saved token and extra headers entered again; the card says so if they try.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jini-ai/agent-plugins",
3
- "version": "0.6.16",
4
- "description": "Support for Agent Plugins: vendor-neutral manifest types and validators, installation, activation, digests and trusted contribution loading. Portable plugin payloads are published separately; ui-ux-design is available as @jini-ai/plugin-ui-ux-design.",
3
+ "version": "0.6.19",
4
+ "description": "Support for Agent Plugins: vendor-neutral manifest types and validators, installation, activation, digests and trusted contribution loading. Every Jini agent plugin ships here as its own subpath (@jini-ai/agent-plugins/<id>); resolving one never loads another plugin's files.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
7
7
  "type": "git",
@@ -23,7 +23,67 @@
23
23
  "./folder-zip": "universal",
24
24
  "./folder-zip/node": "node",
25
25
  "./admin-surfaces": "universal",
26
- "./admin-surfaces/client": "universal"
26
+ "./admin-surfaces/client": "universal",
27
+ "./charts-echarts": "universal",
28
+ "./charts-echarts/*": "universal",
29
+ "./charts-recharts": "universal",
30
+ "./charts-recharts/*": "universal",
31
+ "./cloudflare": "universal",
32
+ "./cloudflare/*": "universal",
33
+ "./composio": "universal",
34
+ "./composio/*": "universal",
35
+ "./fly": "universal",
36
+ "./fly/*": "universal",
37
+ "./github": "universal",
38
+ "./github/*": "universal",
39
+ "./github-pages": "universal",
40
+ "./github-pages/*": "universal",
41
+ "./google-login": "universal",
42
+ "./google-login/*": "universal",
43
+ "./google-workspace": "universal",
44
+ "./google-workspace/*": "universal",
45
+ "./higgsfield-media": "universal",
46
+ "./higgsfield-media/*": "universal",
47
+ "./jev": "universal",
48
+ "./jev/*": "universal",
49
+ "./meilisearch": "universal",
50
+ "./meilisearch/*": "universal",
51
+ "./netlify": "universal",
52
+ "./netlify/*": "universal",
53
+ "./opentelemetry": "universal",
54
+ "./opentelemetry/*": "universal",
55
+ "./posthog": "universal",
56
+ "./posthog/*": "universal",
57
+ "./railway": "universal",
58
+ "./railway/*": "universal",
59
+ "./render": "universal",
60
+ "./render/*": "universal",
61
+ "./resend": "universal",
62
+ "./resend/*": "universal",
63
+ "./s3-compatible": "universal",
64
+ "./s3-compatible/*": "universal",
65
+ "./sentry": "universal",
66
+ "./sentry/*": "universal",
67
+ "./shopify": "universal",
68
+ "./shopify/*": "universal",
69
+ "./site-compliance": "universal",
70
+ "./site-compliance/*": "universal",
71
+ "./site-import": "universal",
72
+ "./site-import/*": "universal",
73
+ "./slide-design": "universal",
74
+ "./slide-design/*": "universal",
75
+ "./supabase": "universal",
76
+ "./supabase/*": "universal",
77
+ "./ui-ux-design": "universal",
78
+ "./ui-ux-design/*": "universal",
79
+ "./vercel": "universal",
80
+ "./vercel/*": "universal",
81
+ "./wordpress": "universal",
82
+ "./wordpress/*": "universal",
83
+ "./langfuse": "universal",
84
+ "./langfuse/*": "universal",
85
+ "./stripe": "universal",
86
+ "./stripe/*": "universal"
27
87
  },
28
88
  "isolation": {
29
89
  "entries": {
@@ -101,13 +161,74 @@
101
161
  "types": "./dist/admin-surfaces/surface-client.d.ts",
102
162
  "import": "./dist/admin-surfaces/surface-client.js",
103
163
  "default": "./dist/admin-surfaces/surface-client.js"
104
- }
164
+ },
165
+ "./charts-echarts": "./charts-echarts/plugin.json",
166
+ "./charts-echarts/*": "./charts-echarts/*",
167
+ "./charts-recharts": "./charts-recharts/plugin.json",
168
+ "./charts-recharts/*": "./charts-recharts/*",
169
+ "./cloudflare": "./cloudflare/plugin.json",
170
+ "./cloudflare/*": "./cloudflare/*",
171
+ "./composio": "./composio/plugin.json",
172
+ "./composio/*": "./composio/*",
173
+ "./fly": "./fly/plugin.json",
174
+ "./fly/*": "./fly/*",
175
+ "./github": "./github/plugin.json",
176
+ "./github/*": "./github/*",
177
+ "./github-pages": "./github-pages/plugin.json",
178
+ "./github-pages/*": "./github-pages/*",
179
+ "./google-login": "./google-login/plugin.json",
180
+ "./google-login/*": "./google-login/*",
181
+ "./google-workspace": "./google-workspace/plugin.json",
182
+ "./google-workspace/*": "./google-workspace/*",
183
+ "./higgsfield-media": "./higgsfield-media/plugin.json",
184
+ "./higgsfield-media/*": "./higgsfield-media/*",
185
+ "./jev": "./jev/plugin.json",
186
+ "./jev/*": "./jev/*",
187
+ "./meilisearch": "./meilisearch/plugin.json",
188
+ "./meilisearch/*": "./meilisearch/*",
189
+ "./netlify": "./netlify/plugin.json",
190
+ "./netlify/*": "./netlify/*",
191
+ "./opentelemetry": "./opentelemetry/plugin.json",
192
+ "./opentelemetry/*": "./opentelemetry/*",
193
+ "./posthog": "./posthog/plugin.json",
194
+ "./posthog/*": "./posthog/*",
195
+ "./railway": "./railway/plugin.json",
196
+ "./railway/*": "./railway/*",
197
+ "./render": "./render/plugin.json",
198
+ "./render/*": "./render/*",
199
+ "./resend": "./resend/plugin.json",
200
+ "./resend/*": "./resend/*",
201
+ "./s3-compatible": "./s3-compatible/plugin.json",
202
+ "./s3-compatible/*": "./s3-compatible/*",
203
+ "./sentry": "./sentry/plugin.json",
204
+ "./sentry/*": "./sentry/*",
205
+ "./shopify": "./shopify/plugin.json",
206
+ "./shopify/*": "./shopify/*",
207
+ "./site-compliance": "./site-compliance/plugin.json",
208
+ "./site-compliance/*": "./site-compliance/*",
209
+ "./site-import": "./site-import/plugin.json",
210
+ "./site-import/*": "./site-import/*",
211
+ "./slide-design": "./slide-design/plugin.json",
212
+ "./slide-design/*": "./slide-design/*",
213
+ "./supabase": "./supabase/plugin.json",
214
+ "./supabase/*": "./supabase/*",
215
+ "./ui-ux-design": "./ui-ux-design/plugin.json",
216
+ "./ui-ux-design/*": "./ui-ux-design/*",
217
+ "./vercel": "./vercel/plugin.json",
218
+ "./vercel/*": "./vercel/*",
219
+ "./wordpress": "./wordpress/plugin.json",
220
+ "./wordpress/*": "./wordpress/*",
221
+ "./langfuse": "./langfuse/plugin.json",
222
+ "./langfuse/*": "./langfuse/*",
223
+ "./stripe": "./stripe/plugin.json",
224
+ "./stripe/*": "./stripe/*"
105
225
  },
106
226
  "files": [
107
227
  "dist",
108
228
  "README.md",
109
229
  "CHANGELOG.md",
110
230
  "LICENSE",
231
+ "NOTICE",
111
232
  "!dist/**/*.test.js",
112
233
  "!dist/**/*.test.d.ts",
113
234
  "!dist/**/*.test.js.map",
@@ -115,7 +236,38 @@
115
236
  "!dist/**/__tests__/**",
116
237
  "persistent-state.js",
117
238
  "persistent-state.d.ts",
118
- "core"
239
+ "core",
240
+ "charts-echarts",
241
+ "charts-recharts",
242
+ "cloudflare",
243
+ "composio",
244
+ "fly",
245
+ "github",
246
+ "github-pages",
247
+ "google-login",
248
+ "google-workspace",
249
+ "higgsfield-media",
250
+ "jev",
251
+ "meilisearch",
252
+ "netlify",
253
+ "opentelemetry",
254
+ "posthog",
255
+ "railway",
256
+ "render",
257
+ "resend",
258
+ "s3-compatible",
259
+ "sentry",
260
+ "shopify",
261
+ "site-compliance",
262
+ "site-import",
263
+ "slide-design",
264
+ "supabase",
265
+ "ui-ux-design",
266
+ "vercel",
267
+ "wordpress",
268
+ "langfuse",
269
+ "stripe",
270
+ "!**/__tests__/**"
119
271
  ],
120
272
  "publishConfig": {
121
273
  "access": "public",
@@ -129,7 +281,10 @@
129
281
  "@cfworker/json-schema": "^4.1.1",
130
282
  "@types/semver": "^7.5.8",
131
283
  "semver": "^7.6.2",
132
- "@jini-ai/plugins": "^0.6.16"
284
+ "fast-check": "4.3.0",
285
+ "jsdom": "^25.0.1",
286
+ "@jini-ai/oauth": "^0.6.19",
287
+ "@jini-ai/plugins": "^0.6.19"
133
288
  },
134
289
  "peerDependencies": {
135
290
  "yauzl": "^3.4.0",
@@ -0,0 +1,4 @@
1
+ {
2
+ "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
3
+ "mcpServers": {}
4
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
+ "name": "posthog",
4
+ "version": "0.1.0",
5
+ "description": "Connects the site to PostHog product analytics through the PostHog provider plugin in the same package (analytics-posthog). Ships the know-how and a secure key card: the assistant opens the card, the person picks the region (US by default, EU or a self-hosted URL) and pastes the project API key, and the host saves it to your project, and you choose which sites use it. No PostHog code here; the provider plugin sends the events.",
6
+ "author": "Tovu",
7
+ "license": "Apache-2.0",
8
+ "extensions": {
9
+ "tovu": {
10
+ "displayName": "PostHog",
11
+ "summary": "Sends your site's product analytics to PostHog. Ask the assistant to connect PostHog.",
12
+ "id": "tovu/posthog",
13
+ "providerPlugin": "analytics-posthog",
14
+ "provides": [
15
+ "product-analytics"
16
+ ],
17
+ "credentialCards": [
18
+ {
19
+ "target": "posthog",
20
+ "title": "Connect PostHog",
21
+ "label": "PostHog",
22
+ "category": "ops",
23
+ "intro": "Send this site's product analytics to PostHog.",
24
+ "usedFor": [
25
+ "Sends product analytics events to your PostHog project"
26
+ ],
27
+ "keyHint": "In PostHog open Project settings and copy the Project API key (starts with phc_).",
28
+ "helpUrl": "https://us.posthog.com/settings/project#variables",
29
+ "helpLabel": "Find your project API key",
30
+ "saveKind": "provider-settings",
31
+ "saveTarget": "analytics-posthog"
32
+ }
33
+ ]
34
+ }
35
+ },
36
+ "keywords": [
37
+ "posthog",
38
+ "analytics",
39
+ "product-analytics",
40
+ "events",
41
+ "tracking",
42
+ "funnels",
43
+ "provider-settings",
44
+ "analytics-posthog"
45
+ ]
46
+ }
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: posthog
3
+ description: Connect the site to PostHog product analytics. Use when the person says "connect PostHog", "set up analytics", "add product analytics", "track events in PostHog", or asks whether PostHog is working.
4
+ ---
5
+
6
+ # PostHog
7
+
8
+ The host sends product analytics through the PostHog provider plugin, `analytics-posthog`. This plugin
9
+ only knows how to set it up; it holds no key and runs no code.
10
+
11
+ It is part of `analytics-posthog` and turns on and off with it: there is no separate switch for this plugin.
12
+
13
+ ## Set it up
14
+
15
+ 1. Check status: `provider_status {pluginId:"analytics-posthog"}`.
16
+ - Not listed: the provider plugin is not installed. Say so in one line; `content_read.plugin` shows what is.
17
+ - `enabled: false`: offer to turn it on with
18
+ `plugins_set_enabled {family:"site-runtime", pluginId:"analytics-posthog", enabled:true}` (the person confirms).
19
+ - `usedByThisSite: false` with a `keyId`: ask "Use the saved PostHog key for <site>?".
20
+ Yes → `project_key_use {keyId, use:true}`. To use a different key, open the card;
21
+ it saves for this site only when other sites use the project key.
22
+ - `configured: true`: say it is already connected. Open the card again only if they ask to change it.
23
+ 2. Say in one sentence what the card is for, then open it:
24
+ `credential_save {kind:"plugin-provider", target:"posthog"}`.
25
+ The card asks for the region (US Cloud is the default, EU Cloud, or Custom for a self-hosted
26
+ URL) and the Project API key (PostHog → Project settings → Project API key, starts with `phc_`).
27
+ 3. After it saves: the key is saved to your project; no site uses it yet. Ask the result's
28
+ `ask` ("Apply this PostHog key to <site>?"). Yes → `project_key_use {keyId, use:true}`;
29
+ it applies now. If the result says `appliesAt: "restart"`, offer `site_restart`.
30
+ No → it stays saved for later. An already-attached or site-only save applies now.
31
+
32
+ ## Rules
33
+
34
+ - Never ask for the key in chat and never put a key in any tool argument. The card is the only way in.
35
+ - Changing the region needs the key entered again; the card says so if they try.
36
+ - Owner events go out only with the operator's analytics consent; that is the host's setting, not PostHog's.