Files
OpenCode 68a9071cf1 feat: reconcile local master with origin (exa/hot-platform hunters, leaks ledger, latest results)
Local branch had diverged from origin/master (sibling commits on the same base). Rewrote local history linearly on top of origin/master, folding in all local content: exa/hot-platform discovery hunters, leaks ledger, nightly sweep orchestrator, updated .gitignore and skill docs, plus the latest hunt output and vault state. Remote-only files (vault keys, channel scripts) were restored rather than dropped, so the resulting tree is a full union of both sides.
2026-08-07 12:53:47 +08:00

1 line
22 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"repo": "aeonfun/aeon", "files": {"aeon.yml": {"8ffcb571c2fe3a31b6b3d6edf9838a79f7679257": {"t": 1786068429.9165478, "n": 22040, "h": "32e1d44e27e1305e", "c": "# Aeon configuration\n#\n# Enable skills by setting enabled: true. Multiple skills at the same time run in parallel.\n# Set var: \"value\" to pass a default parameter to the skill.\n# Set model: \"claude-haiku-4-5-20251001\" per skill to override the default model (cost optimization).\n# Set harness: \"grok\" per skill to run it through the Grok Build CLI instead of the\n# default Claude Code harness (see the top-level `harness:` key below).\n\nskills:\n # --- Morning aggregation (7 AM UTC) ---\n\n\n # --- Mid-morning (9 AM UTC) ---\n pr-triage: { enabled: false, schedule: \"30 9 * * *\", var: \"\" } # first-touch external-PR triage (verdict + label + welcoming comment); var: owner/repo or owner/repo#N for one-shot\n pr-review: { enabled: false, schedule: \"0 9 * * *\", var: \"\" } # var: empty/owner/repo=per-PR review (posts comments) | --survey [dry-run] [owner/repo]=risk-tiered PR triage digest (folds in pr-merge)\n auto-merge: { enabled: false, schedule: \"0 14 * * *\" } # merge green PRs daily at 2 PM UTC; max 3 per run\n github-monitor: { enabled: false, schedule: \"0 9 * * *\", var: \"\" } # watch your repos. var: empty=combined monitor (PRs/issues/releases) | issues | releases | prs | owner/repo (folds in github-issues/github-releases/pr-tracker)\n github-trending: { enabled: false, schedule: \"0 9 * * *\", var: \"\" } # trending repos + Hugging Face Hub. var: empty=GitHub | <lang> | hf | hf:{models,datasets,spaces}\n\n # --- Midday (12 PM UTC) ---\n token-movers: { enabled: false, schedule: \"0 12 * * *\", var: \"\" } # market-movers scan + single-token deep report. var: empty=movers (CoinGecko) | geckoterminal[:chain]=on-chain runners | category:<slug> | <address|symbol|token:sym>=single-token report. Optional COINGECKO/ALCHEMY/XAI/BASE_RPC keys.\n onchain-monitor: { enabled: false, schedule: \"0 12 * * *\" }\n distribute-tokens: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # on-demand contributor rewards. var: empty/<label>=distribute (send) | plan[:week]=compute reward plan | all[:week]=plan+send | dry-run (folds in contributor-reward). BANKR_API_KEY for send.\n defi-overview: { enabled: false, schedule: \"0 12 * * *\", var: \"\" } # one-pass DeFi read: tracked-protocol positions + macro context (regime verdict, movers, yields, fees, F&G, prediction markets; refreshes memory/topics/market-context.md). var: empty=full | positions[:label] | macro | <chain/protocol focus>. Optional COINGECKO_API_KEY.\n\n # --- Hound onchain investigation (on-demand; var = address / tx hash) ---\n investigation-report: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # var: <token-address> [--checks=rug,contract,deployer,holders,honeypot,lp] [--depth=quick|deep] — composite investigation (folds in rug-scan/contract-audit/deployer-trace/holder-concentration/honeypot-check/lp-lock). read-only\n tx-explain: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # var: tx hash — plain-English decode\n deploy-uni-hook: { enabled: false, schedule: \"workflow_dispatch\", harness: \"claude\", model: \"claude-opus-5\", var: \"\" } # generate+audit+simulate+deploy a Uniswap v4 hook + test pool on any v4 chain. var: [arm:][template:dynamic|noop|skim] [chain:base-sepolia] <brief>. Dry-run by default; arm: to broadcast (needs HOOK_DEPLOYER_PRIVATE_KEY burner). Testnet default; mainnet behind arm:+explicit chain:+HOOK_MAINNET_OK=1. Opus-pinned: freeform hook-gen is hard.\n\n monitor-polymarket: { enabled: false, schedule: \"30 12 * * *\", var: \"\" } # prediction-market monitor (Polymarket + Kalshi) — 24h moves, volume, comments, conviction alerts. var: empty=both | polymarket | kalshi | polymarket:<slug> | kalshi:<ticker>\n token-pick: { enabled: false, schedule: \"0 12 * * *\" }\n price-alert: { enabled: false, schedule: \"*/30 * * * *\", var: \"\" } # every 30 minutes — fire on tracked-token ATH, ±20% 1h move, or operator-set target crossing (var=target_price,target_price2,...). Silent on normal runs. Set var=dry-run to skip notify.\n narrative-tracker: { enabled: false, schedule: \"30 13 * * *\" } # track rising/peaking/fading narratives\n unlock-monitor: { enabled: false, schedule: \"0 10 * * 1\" } # weekly token unlock/vesting tracker\n\n # --- Afternoon (2 PM UTC) ---\n article: { enabled: false, schedule: \"0 14 * * *\", var: \"\" } # long-form article. var: empty=standard | repo:<owner/repo> | lens:<topic>; append --visual for a Replicate hero image (angles fold in repo-article/project-lens/technical-explainer)\n digest: { enabled: false, schedule: \"0 14 * * *\", var: \"\" } # topic digest across web + X + RSS. var: empty=web | <topic> | rss[:<topic>] | \"<topic> +rss\" (RSS feeds from memory/feeds.yml)\n you-web-search: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # on-demand — high-quality web search via You.com API. var: search query/topic; authenticated with YDC_API_KEY, optional livecrawl via YOUCOM_LIVECRAWL\n last30: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # on-demand — cross-platform 30-day social research\n search-skill: { enabled: false, schedule: \"0 14 * * *\" }\n\n # --- Repo intelligence (3 PM UTC) ---\n\n # --- Late afternoon (4 PM UTC) ---\n changelog: { enabled: false, schedule: \"0 16 * * *\", var: \"\" } # changelog from recent commits/PRs. var: empty/owner/repo=in-repo | push-to:owner/website-repo=cross-repo changelog PR (needs GH_GLOBAL)\n vuln-scanner: { enabled: false, schedule: \"0 16 * * 6\", var: \"\" } # security scan + disclose. var: empty/owner/repo=scan | resubmit[:owner/repo]=PVR re-submit | disclose=queue armed emails (folds in pvr-watchlist/disclosure-emailer). RESEND_* for email.\n deploy-prototype: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # on-demand — build app and deploy to Vercel\n base-mcp: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # on-demand — Base Account access via the Base MCP server (mcp.base.org)\n robinhood-mcp: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # on-demand — Robinhood Agentic Trading via the Robinhood MCP (agent.robinhood.com, OAuth Connect in the dashboard). var: empty=portfolio report | orders[:N] | trade:<explicit one-order instruction> (only writing branch; refuses ambiguous orders)\n glim-mcp: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # on-demand — live-data research via the glim.sh MCP (web/X/Reddit/GitHub/Amazon/YouTube; OAuth Connect in the dashboard, pay-per-call from glim balance). var: research question, append --deep for a wider sweep\n executor-mcp: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # on-demand — run a task through the Executor Cloud tool catalog (executor.sh/mcp; one MCP endpoint proxying the operator's connected integrations, per-tool allow/approve/block policies; OAuth Connect in the dashboard). var: the task\n finance-district-mcp: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # on-demand — multichain non-custodial agent wallet via the Finance District MCP (keys in a TEE, server-side spend caps; OAuth Connect in the dashboard). var: empty=daily wallet brief | best USDC yield on Base | swap 5 USDC to ETH on Base | pay <x402-url> for <data>\n autoresearch: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # on-demand — set var to skill name to evolve\n create-skill: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # one-shot skill creator — set var to a description prompt\n install-skill: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # on-demand — install a community skill pack and open a PR; var: owner/repo [skill...]\n pack-submit: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # on-demand — publish a local skill as a community pack + submit registry PR; var: skill-slug [--repo o/r] [--no-register] [--dry-run]\n\n # --- X / social (5 PM UTC) ---\n fetch-tweets: { enabled: false, schedule: \"0 17 * * *\", var: \"\" } # curate X/Twitter. var: keyword:<q> | topic:<t> | account:<handle> (empty=digest tracked accounts) | list:<ids>[|topic] | agent-buzz[:<t>]. Optional XAI_API_KEY.\n reply-maker: { enabled: false, schedule: \"0 17 * * *\", var: \"\" } # draft X replies. var: empty=discover reply-worthy tweets | @handle | <listID> | <topic> | from-logs (reply to flagged log opportunities). Optional XAI_API_KEY.\n\n # --- Content distribution (runs 30 min after article-generating skills) ---\n\n # --- Evening / meta (6 PM UTC) ---\n strategy-builder: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # on-demand — draft STRATEGY.md (north-star / priorities / audience / constraints) from a brief + repo README + memory. var: bare goal text, or structured brief \"repo=owner/repo | links=url1,url2 | goal=free text\". Powers the dashboard Strategy → Build my strategy button. No API key needed.\n skill-health: { enabled: false, schedule: \"0 18 * * *\", var: \"\" } # self-healing health audit + analytics. var: empty=health (files/resolves issues) | <skill>=single | analytics[:hours]=fleet run/pass-rate metrics (folds in skill-analytics)\n aeon-doctor: { enabled: false, schedule: \"0 15 * * 1\", var: \"\" } # weekly Mon 15:00 UTC — static config-correctness linter (silent-failure class: unquoted schedules, dup keys, unconfigured-on-disk, requires-as-list, mode typo, mcp ${VAR}, multi-line entries). read-only; notifies only on problems. var: empty=whole config | <skill>=one skill\n\n self-improve: { enabled: false, schedule: \"0 18 1/2 * *\", var: \"\" } # every other day — improve the agent, or audit it. var: empty/improve[:focus]=propose+apply one fix | audit[:focus]=review what ran/failed (folds in self-review)\n\n action-converter: { enabled: false, schedule: \"0 18 * * *\" }\n skill-repair: { enabled: false, schedule: \"reactive\", var: \"\" } # reactive — auto-fix failing skills\n\n # --- Cost tracking (Monday 7 AM UTC, weekly) ---\n\n # --- Weekly (Monday only) ---\n fork-fleet: { enabled: false, schedule: \"0 10 * * 1\", var: \"\" } # fork divergence: code (unique commits/skills) + config (aeon.yml vs upstream defaults; folds in fork-digest). var: empty=both | code | config | fork=owner/repo | repo=owner/repo\n aeon-update: { enabled: false, schedule: \"0 11 * * 1\", var: \"\" } # weekly Mon 11:00 UTC — pull upstream framework changes (canon) into this instance as a PR; 3-way merge, never clobbers operator config. var: empty=sync | report (dry) | repo=owner/name | reset=fork-point\n spawn-instance: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # on-demand — var: \"name: purpose\"\n fleet-control: { enabled: false, schedule: \"0 9,15 * * *\", var: \"\" } # managed child instances. var: empty=health check | status | dispatch <inst|*> <skill> [var=…] | scorecard (fleet-wide runs/tokens/cost/reliability; folds in fleet-scorecard)\n shiplog: { enabled: false, schedule: \"0 9 * * 1\" } # everything shipped SINCE THE LAST RUN (memory/state/shiplog-last.json) — cross-repo PRs/commits, security fixes merged into others' repos, star deltas, X/ecosystem traction → digest article + ready-to-post shiplog in the operator's voice. Cadence-agnostic: this schedule just sets frequency (daily/weekly/on-demand). Config: memory/products.md + memory/watched-repos.md. Optional XAI_API_KEY (X traction) + GH_GLOBAL (cross-repo reach). var: since:DATE | days:N | dry-run | owner/repo | <theme>.\n operator-scorecard: { enabled: false, schedule: \"30 10 * * 1\", var: \"\" } # Monday — weekly plain-language scorecard: agent health + community growth + economic activity (worst-of-three OK/WATCH/DEGRADED verdict). var: empty=scorecard (7d) | dry-run=no notify | N=window N hours | ops[ DATE]=end-of-day ops recap (shipped/failed/follow-up) | push[ owner/repo]=diff-deep-dive push recap (folds in ops-recap + push-recap)\n\n # --- Paid ads (AdManage.ai) ---\n schedule-ads: { enabled: false, schedule: \"0 8 * * *\", var: \"\" } # daily 08:00 UTC — paid ads via AdManage.ai. var: empty=schedule ad launches across Meta/TikTok/Snapchat/Pinterest/LinkedIn from config.yaml (PAUSED by default) | create=provision Meta campaigns/ad sets on-demand from config.create.yaml (PAUSED, IDs written back to state so the schedule branch can launch into them; folds in create-campaign)\n\n # --- Utilities ---\n auto-workflow: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # on-demand aeon.yml builder. var: <url[,url]>=analyze→enablement plan | enable:<slugs>=flip enabled:true (validate, commit, PR); enable:dry-run:<slugs> (folds in skill-enabler)\n\n # --- Ported from derivative instances (PR #219) ---\n # Markets & crypto\n pm-manipulation: { enabled: false, schedule: \"15 13 * * *\" } # daily — flag suspected PM manipulation from 3-day price/volume/comment + local-press anomalies\n\n # Research & content\n narrative-convergence: { enabled: false, schedule: \"0 13 * * *\", var: \"\" } # daily 13:00 UTC — cross-skill convergence detector: entities/themes surfaced by 3+ independent skill categories in 48h = high-confidence write opportunities. Category map in memory/topics/signal-categories.md. Pass var to filter.\n\n # Security\n vuln-tracker: { enabled: false, schedule: \"30 16 * * *\", var: \"\" } # daily lifecycle poll: vuln-scanner PR/advisory status + PVR triage + disclosure-queue aging (folds in pvr-triage/disclosure-tracker). var: empty=full | pvr | queue | prs | <GHSA-id>\n\n # Ideas & productivity\n idea-pipeline: { enabled: false, schedule: \"0 18 * * 1\" } # Monday — execution-gap audit: top 3 backlog ideas to build this week\n\n # Self-maintenance / meta\n\n # --- Ported from aeon-aaron ---\n # Infra & health\n # Markets & crypto\n picks-tracker: { enabled: false, schedule: \"0 9 * * 0\" } # Sunday 09:00 UTC — 30-day retrospective scoring token + prediction-market picks from logs against current prices; W/H/L + hit rate; honest record-keeping. Pairs with token-pick / monitor-polymarket.\n # Content pipeline\n soul-builder: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # on-demand — build a SOUL from any mix of sources (X handle, full name, links), drafting soul/SOUL.md + STYLE.md + examples so every content skill speaks in that voice. var: bare X handle, or structured brief \"x=handle | name=Full Name | links=url1,url2\". Powers the dashboard Soul → Build my soul button. XAI_API_KEY optional (name/links use built-in WebSearch/WebFetch).\n # Social\n mention-radar: { enabled: false, schedule: \"25 7 2/2 * *\", var: \"\" } # every other day — external web/social mentions of the operator's projects (discovery/confusion/friction/competitor taxonomy + engagement opportunities). var: comma-separated project names; falls back to MEMORY.md / memory/topics/projects.md\n # Sports\n\n # --- Ported from derivative instances (2026-06-29) ---\n # Security (pairs with vuln-scanner ↑ channel 5d)\n inbox-triage: { enabled: false, schedule: \"30 11 * * *\" } # daily 11:30 — GitHub notification-inbox triage (maintainer replies to disclosures/advisories/mentions)\n\n # Dev & repo\n feature: { enabled: false, schedule: \"0 10 * * 6\", var: \"\" } # build a feature + open PR. var: watched (default) | external:<owner/repo> | dormant[:<owner/repo>], append --fix-issues (folds in external-feature/repo-revive). GH_GLOBAL for external.\n\n # Research & content\n write-tweet: { enabled: false, schedule: \"0 21 * * *\", var: \"\" } # tweet studio. var: empty=drafts (10×5 tiers) | thread [topic] | remix [window]. Optional XAI_API_KEY (required for remix).\n bd-radar: { enabled: false, schedule: \"20 7 * * *\", var: \"\" } # daily 07:20 — BD radar: who's building/forking/integrating/mentioning your products → ranked leads. Products from memory/products.md. Quiet unless high-intent.\n\n # Product / ops (config: memory/products.md)\n\n # Self-maintenance / meta\n memory-flush: { enabled: false, schedule: \"30 23 * * *\" } # daily — promote important recent log entries into MEMORY.md\n\n # Utilities / on-demand\n\n send-email: { enabled: false, schedule: \"workflow_dispatch\", var: \"\" } # on-demand — compose + send a 1:1 email to a named recipient via Resend (general sibling of disclosure-emailer). var: \"to=… | subject=… | about=…\"\n idea-forge: { enabled: false, schedule: \"0 9 * * 1\", var: \"\" } # weekly business-idea engine. var: empty/generate=timing-scored wedges | validate[:theme]=viability screen | memo[:theme]=2 evidence-backed memos\n seo-audit: { enabled: false, schedule: \"0 13 * * *\", var: \"\" } # daily on-page + technical SEO audit of every page on a site. var: comma-separated origins (empty = no target, no-op). PAGESPEED_API_KEY folds in Core Web Vitals\n posthog-errors: { enabled: false, schedule: \"0 15 * * 1\", var: \"\" } # weekly cross-project PostHog error digest. Needs PostHog MCP connected in the dashboard. var: empty=all projects/7d | Nd window | project-name substrings\n # --- Fallback (must be last) ---\n heartbeat: { enabled: true, schedule: \"0 8 * * *\", var: \"\" } # ambient fleet-health check (default) — surfaces anything worth attention. var: empty=ambient check | <area>=ambient focused on that area | brief[:<area>]=priority brief (3 things to focus on, why now, what moved; folds in priority-brief)\n\n# Reactive triggers — event-driven skill dispatch based on cron-state.json conditions.\n# Skills with schedule: \"reactive\" are never cron-matched. Instead, the scheduler\n# evaluates their trigger rules after processing cron skills.\n#\n# Format: trigger: { on: <source-skill>, when: \"<condition>\" }\n# Conditions:\n# consecutive_failures >= N — source skill failed N+ times in a row\n# success_rate < X — source skill success rate below threshold\n# last_status = success — source skill just succeeded (for chaining)\n#\n# Multiple triggers: trigger: [{ on: a, when: \"...\" }, { on: b, when: \"...\" }]\n# Any matching trigger fires the skill (OR logic).\nreactive:\n # skill-repair:\n # trigger:\n # - { on: \"*\", when: \"consecutive_failures >= 3\" }\n # autoresearch:\n # trigger:\n # - { on: skill-health, when: \"last_status = success\" }\n\n# Chains — multi-step skill pipelines with parallel execution and output passing.\n# Steps run sequentially; use parallel: [...] for concurrent execution within a step.\n# Skills with consume: [...] receive prior step outputs injected into their context.\n#\n# Format:\n# chains:\n# chain-name:\n# schedule: \"cron expression\"\n# on_error: fail-fast # fail-fast (default) | continue\n# steps:\n# - parallel: [skill-a, skill-b]\n# - skill: skill-c, consume: [skill-a, skill-b]\nchains:\n # routine:\n # schedule: \"0 7 * * *\"\n # on_error: fail-fast\n # steps:\n # - parallel: [token-movers, hn-digest, issue-triage, github-trending]\n # - skill: routine, consume: [token-movers, hn-digest, issue-triage, github-trending]\n\n# Default model for all skills. Override per-run via workflow_dispatch.\n# Options: claude-sonnet-5, claude-opus-5, claude-haiku-4-5-20251001\n# (Grok harness model: grok-4.5, the flagship reasoning model and grok's current\n# default, run with --no-subagents in CI. It's the only id the grok CLI accepts on an\n# X-account login, and it's the gateway default too. The older coding ids\n# (grok-build-0.1, grok-composer-2.5-fast, grok-4.3) are gateway-only, reachable via\n# XAI_API_KEY + the GROK_MODEL var.)\n# The non-claude harnesses use their OWN model ids (codex openai/*, kimi moonshotai/*,\n# vibe mistralai/*, pi deepseek/*) — surfaced in the dashboard picker per harness; see\n# docs/harnesses.md. The value below only applies to the claude/grok harnesses.\nmodel: claude-sonnet-5\n\n# Agent harness — which coding-agent CLI runs your skills.\n# claude (default) — Claude Code (`claude -p`); uses the AI Gateway below.\n# grok — Grok Build (`grok`); logs in with your X account\n# (GROK_CREDENTIALS, captured in the dashboard) or an\n# XAI_API_KEY. Bypasses the gateway (grok has its own auth).\n# codex/pi/vibe/kimi — OpenAI Codex, Pi, Mistral Vibe, Moonshot Kimi — run through\n# harness-adapter/run-harness (one Claude-Code-shaped contract).\n# A single OPENROUTER_API_KEY drives all four, or each can use\n# its own native auth (ChatGPT/Moonshot login, provider key).\n# See docs/harnesses.md for models, auth, and verification.\n# Override per-skill with `harness: \"<name>\"` in the skill entry, or per-run via\n# the workflow_dispatch `harness` input. Default stays claude — everything\n# already configured keeps working unchanged.\nharness: claude\n\n# AI Gateway — route Claude Code requests through an LLM provider.\n#\n# provider: auto (default) resolves at RUN TIME from whichever provider secret\n# is set, in priority order — no need to re-pin when you add/remove a key:\n# claude (CLAUDE_CODE_OAUTH_TOKEN) → anthropic (ANTHROPIC_API_KEY) →\n# openrouter → bankr → usepod → venice → surplus → grok → direct (fallback)\n# Override the order with the repo variable GATEWAY_ORDER (space-separated).\n#\n# Or PIN one explicitly: direct | bankr | openrouter | usepod | venice | surplus | grok.\n# grok routes Claude Code at xAI's Anthropic-compatible api.x.ai (XAI_API_KEY) —\n# this is the gateway path; to run the grok CLI itself, set `harness: grok` above.\n# For Anthropic-compatible endpoints (direct), set repo variable ANTHROPIC_BASE_URL\n# + secret ANTHROPIC_API_KEY. Example: https://api.deepseek.com/anthropic\n# Bankr docs: https://docs.bankr.bot/llm-gateway/overview\ngateway:\n provider: auto\n\n# Output channels\nchannels:\n jsonrender:\n enabled: true # Set to true (or JSONRENDER_ENABLED=true as repo var) to write json-render specs\n\n# Messaging integration\n# Polls for messages every 5 minutes on Telegram/Discord/Slack.\ntelegram:\n enabled: true\n\n# Observability (optional) — no config lives here; it's credential-driven.\n# Set the repo secrets LANGFUSE_PUBLIC_KEY + LANGFUSE_SECRET_KEY and every\n# Claude Code run streams to your Langfuse project as a trace (LLM calls,\n# tokens, cost, prompts/responses). Region/toggles are repo variables:\n# LANGFUSE_HOST (default EU cloud), LANGFUSE_TRACING (0 to disable),\n# LANGFUSE_LOG_CONTENT (0 = metadata only). See docs/langfuse.md.\n"}}}}