pubfi-dsl-client — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited pubfi-dsl-client (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.
This skill defines how to build safe, structured DSL requests for PubFi data access. The server only accepts structured DSL and executes a fixed OpenSearch query shape. The server does not accept SQL, raw OpenSearch DSL, or natural language compilation.
Set API_BASE to choose the environment:
API_BASE=https://api-stg.pubfi.aiAPI_BASE=http://127.0.0.1:23340Note: 0.0.0.0 is typically a listen address, not a client address. If you still need it for local debugging, you may set API_BASE=http://0.0.0.0:23340.
window.end as exclusive.search.doc_topk, filter sizes, and aggregation sizes within the published limits from the schema endpoint.search.doc_topk = 0 when you only need aggregation results.references/dsl-schema.md as the local contract.GET /v1/dsl/schemaPOST /v1/dsl/queryFetch the schema:
curl -sS "$API_BASE/v1/dsl/schema"Run a query:
curl -sS "$API_BASE/v1/dsl/query" \
-H 'content-type: application/json' \
-d @request.json{
"window": {"start": "2026-02-05T00:00:00Z", "end": "2026-02-06T00:00:00Z"},
"search": {"text": "liquidity stress exchange withdrawal", "doc_topk": 50},
"filters": {"tags": ["withdrawal_pause"], "entities": ["Binance"], "sources": ["coindesk"]},
"output": {
"fields": [
"document_id",
"title",
"source",
"source_published_at",
"tag_slugs",
"entity_labels",
"document_summary"
],
"aggregations": [
{
"name": "top_tags",
"aggregation": {"type": "terms", "field": "tag_slugs", "size": 50, "min_doc_count": 2}
},
{
"name": "volume_1h",
"aggregation": {"type": "date_histogram", "field": "source_published_at", "fixed_interval": "1h"}
},
{
"name": "tag_edges",
"aggregation": {"type": "cooccurrence", "field": "tag_slugs", "outer_size": 50, "inner_size": 50, "min_doc_count": 2}
}
]
}
}window or using non-UTC timestamps.fixed_interval values.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.