github HTML analyzed 3f8e0e6

davidtost5/sona

github

Sona — the creator studio that surfaces proven content ideas and helps you write in your own voice.

maintainer
davidtost5
licence
first seen
2026-08-20
last seen
2026-09-12
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 3 tools
transport counts 3 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • decode_post
  • get_outlier
  • search_outliers
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 3f8e0e6 · analyzer v33 · 5d ago

danger signals2

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 24

filesystem 3

  • fs (weak) davidtost5-sona-3f8e0e6/scripts/preview-email.mjs :8 import { writeFileSync } from 'node:fs';
  • fs (weak) davidtost5-sona-3f8e0e6/test/clerk-webhook.test.mjs :2 import fs from 'node:fs';
  • fs (weak) davidtost5-sona-3f8e0e6/test/daily-order.test.mjs :1 import fs from 'node:fs';

network 6

  • net davidtost5-sona-3f8e0e6/api/_email.js :74 const r = await fetch(RESEND_ENDPOINT, {
  • net davidtost5-sona-3f8e0e6/api/ingest.js :38 const res = await fetch(url, { headers: { 'user-agent': UA }, signal: ctrl.signal });
  • net davidtost5-sona-3f8e0e6/api/mcp.js :200 const r = await fetch(`${proto}://${host}/api/decode`, {
  • net davidtost5-sona-3f8e0e6/public/auth.js :27 const res = await fetch('/api/auth-config', { cache: 'no-store' });
  • net davidtost5-sona-3f8e0e6/public/clerk-auth.js :40 var res = await fetch('/api/auth-config', { cache: 'no-store' });
  • net davidtost5-sona-3f8e0e6/public/data.js :61 const res = await fetch('/api/waitlist', {

secrets 8

  • secrets davidtost5-sona-3f8e0e6/api/_email.js :31 if (process.env.RESEND_API_KEY) return 'resend';
  • secrets davidtost5-sona-3f8e0e6/api/_supabase.js :16 const key = process.env.SUPABASE_SERVICE_ROLE_KEY;
  • secrets davidtost5-sona-3f8e0e6/api/auth-config.js :14 const anonKey = process.env.SUPABASE_ANON_KEY || '';
  • secrets davidtost5-sona-3f8e0e6/api/clerk-webhook.js :75 const secret = process.env.CLERK_WEBHOOK_SECRET;
  • secrets davidtost5-sona-3f8e0e6/api/ingest.js :270 const cronSecret = process.env.CRON_SECRET;
  • secrets davidtost5-sona-3f8e0e6/api/mcp.js :127 const token = process.env.MCP_TOKEN;
  • secrets davidtost5-sona-3f8e0e6/api/outliers.js :55 const adminKey = process.env.ADMIN_KEY;
  • secrets davidtost5-sona-3f8e0e6/api/stripe-webhook.js :53 const secret = process.env.STRIPE_WEBHOOK_SECRET;

tool registrations 3

  • search_outliers davidtost5-sona-3f8e0e6/api/mcp.js :25
  • get_outlier davidtost5-sona-3f8e0e6/api/mcp.js :60
  • decode_post davidtost5-sona-3f8e0e6/api/mcp.js :75

declared dependencies 3

  • @anthropic-ai/sdk@^0.70.0
  • @supabase/supabase-js@^2.45.0
  • nodemailer@^6.9.14