sf-sdk-econ-gov — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited sf-sdk-econ-gov (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
npm install @spfunctions/[email protected]Most econ/gov queries work without SF_API_KEY (anonymous-allowed reads).
| SDK | HTTP | CLI |
|---|---|---|
sf.econ.query({ q, mode, limit }) | GET /api/public/query-econ | sf econ "<query>" --json |
sf.gov.query({ q, mode, limit }) | GET /api/public/query-gov | sf policy "<query>" --json |
Both are read-only with sideEffect: "none".
import { SimpleFunctions } from "@spfunctions/sdk"
const sf = new SimpleFunctions({
baseUrl: process.env.SF_API_URL ?? "https://simplefunctions.dev",
})
const econ = await sf.econ.query({
q: "unemployment rate",
mode: "raw",
limit: 3,
})
console.log(econ.series?.map(s => ({
id: s.id,
title: s.title,
latest: s.latest,
})))mode: "raw" returns the FRED series data verbatim. Other modes:
"summary" — LLM-summarized econ context"compare" — series vs. prediction-market implied levelsconst gov = await sf.gov.query({
q: "SAVE Act",
mode: "raw",
limit: 5,
})
console.log(gov.bills?.map(b => ({
id: b.id,
title: b.title,
status: b.status,
sponsors: b.sponsors,
latestActionDate: b.latestActionDate,
})))async function macroContext(theme: string) {
const [econ, gov, world] = await Promise.all([
sf.econ.query({ q: theme, mode: "raw", limit: 3 }),
sf.gov.query({ q: theme, mode: "raw", limit: 3 }),
sf.world.get(),
])
return {
theme,
econ: econ.series,
legislation: gov.bills,
marketState: {
regime: world.regime?.label,
salient: world.salient?.slice(0, 3),
},
}
}
const ctx = await macroContext("Fed rate cuts inflation")
console.log(JSON.stringify(ctx, null, 2))async function anchorMarket(ticker: string, fredSeries: string) {
const [market, econ] = await Promise.all([
sf.markets.get(ticker),
sf.econ.query({ q: fredSeries, mode: "raw", limit: 1 }),
])
return {
market: { ticker, price: market.price, implied: market.indicators },
anchor: econ.series?.[0]?.latest,
}
}
const anchor = await anchorMarket("KXCPIYOY-26JUN-T4.2", "CPIENGSL")
console.log(anchor)async function senatorVoteContext(senatorName: string, billTitle: string) {
const gov = await sf.gov.query({ q: billTitle, mode: "raw", limit: 1 })
const bill = gov.bills?.[0]
const votes = bill?.votes?.filter(v =>
v.senator?.toLowerCase().includes(senatorName.toLowerCase())
)
return {
bill: bill?.title,
sponsor: bill?.sponsors,
senatorVotes: votes,
nextSchedule: bill?.latestActionDate,
}
}
const ctx = await senatorVoteContext("Cortez Masto", "crypto market structure")
console.log(ctx)sf agent --tool econ.query --stream-json --input '{"q":"unemployment rate","mode":"raw","limit":3}'
sf agent --tool gov.query --stream-json --input '{"q":"SAVE Act","mode":"raw","limit":3}'Use direct-tool mode when you want one canonical tool call without an LLM loop (deterministic, cheap).
Common FRED series for prediction-market analysis:
| Series ID | Meaning |
|---|---|
CPIAUCSL | CPI All Urban Consumers (headline) |
CPILFESL | CPI core (ex food, energy) |
CPIENGSL | CPI energy |
UNRATE | Unemployment rate |
PAYEMS | Total nonfarm payrolls |
FEDFUNDS | Federal Funds rate (effective) |
DGS10 | 10-year Treasury constant maturity |
DGS2 | 2-year Treasury |
T10Y2Y | 10Y-2Y spread (yield curve) |
GDP | Gross Domestic Product |
INDPRO | Industrial Production |
sf-sdk-quickstart — install + first callsf-research — CLI workflow that uses these surfacesctx-economic-data — econ data context package (knowledge layer)ctx-us-legislative — legislative context package~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.