Repository navigation
@failproofai/sdk 0.0.1-beta.1
Pre-releaseFeatures
- OpenTelemetry spans to FailproofAI Cloud, without a network call in your
process.OtelSpanExporter, orinstrument("otel", { spanProcessors })before
you construct your provider, writes each finished batch of spans as OTLP/JSON to
the local spool (~/.failproofai/state/spool-otlp); the failproofai daemon
delivers it to Cloud with the machine's key and retries if Cloud is unreachable.
@opentelemetry/sdk-trace-baseis only loaded when you call it.
Fixes
-
A blank
FAILPROOFAI_HOMEno longer means the current directory. An empty or
whitespace-only value made the exporter and the custom-agents resolver write
under the working directory, where the daemon never reads. Blank now means unset. -
The integration fixtures stop carrying 32 open security advisories. Nothing
the published package ships changed — every fixture underintegration/fixtures/
is"private": trueand exists only to run the adapters against real framework
releases — but their committed lockfiles are read by GitHub's dependency graph,
and the old majors those fixtures deliberately pin (ai@4.3.19,
@langchain/core@0.3.80,@mastra/core@0.24.9) pin their transitive deps
exactly, so nothing moved in range. Five fixtures now carry a minimaloverrides
entry —undici,langsmith,uuid,jsondiffpatchand five OpenTelemetry
packages — clearing 32 of them with every framework pin, and
langchain-dup-core's two-copies-of-@langchain/coreshape, unchanged.
Four alerts remain, from two low-severity advisories: one againstai@4.3.19
(GHSA-rwvc-j5jr-mgvh) and one against the@ai-sdk/provider-utils@2.2.8that
ships inside it (GHSA-866g-f22w-33x8). Both are fixed only in the major these
fixtures exist to stay below, soSECURITY.mdrecords them and the rule for
the next one. (nextjs'spostcssis handled in #838.) (#837) -
The last four fixture advisories clear, and no fixture leaves its pinned
major to do it.nextjscarriedpostcss@8.4.31(GHSA-qx2v-qp2m-jg93,
GHSA-6g55-p6wh-862q, GHSA-r28c-9q8g-f849, GHSA-fxqj-rqcc-2cmp) under a second
next@15.5.26that npm installed only to satisfy@llamaindex/workflow-core@1.3.3's
next@^15.2.2peer against the fixture's rootnext@16.3.6. Nothing imports it,
so regenerating the lockfile drops that peer tree and nothing else — 274 lines,
deletions only,npm audit5 findings → 0. Dependabot had reached the same
advisories by moving the pins instead:ai-4toai@5.0.52andmastra-0to
@mastra/core@1.70.0, the two releases those fixtures exist to hold, and the one
moveSECURITY.mdnames as never the answer.mastra-0then stopped installing
altogether —@mastra/mcp@0.14.5peers on@mastra/core@">=0.20.1-0 <0.25.0-0",
sonpm cifailedERESOLVE— and because the global setup installs every fixture
before any test runs, that one fixture took down all three non-nextjsshards,
runtimesincluded, which has no Mastra test in it. Both pins are restored, and
aistays at7.0.111innextjsso the fixture still matches theai-7twin
whose tracenextjs.test.tscompares each route against. (#838) -
Two more fixture advisories clear, and again no fixture leaves its pinned
major. Both were reachable the whole time; nothing had looked.ai-5pinned
undiciat7.29.0through the override added in #837, and GHSA-3wwx-pv8p-q78v
(medium) is fixed in7.29.1— the rootpackage.json's ownundicioverride
moved there, the fixture's did not.mastra-0carried eleven copies of
@ai-sdk/provider-utils, which split in two: nine parents on that fixture's 5.x
side (ai-v5,@ai-sdk/gateway,@ai-sdk/openai-v5and six siblings) pinned
exact3.0.10–3.0.17, every one below the3.0.28that fixes
GHSA-866g-f22w-33x8, while the other two are the2.2.8that ships inside
ai@4.3.19under@mastra/coreand@mastra/memory. The accepted row above
describes only that second pair, so the 3.x half was never covered by it — a
plain"@ai-sdk/provider-utils": "3.0.28"would have forced both halves and
broken the pin. The entry is spec-scoped instead —"@ai-sdk/provider-utils@3",
which npm applies only where the requested range already resolves inside 3.x —
so the 3.x copies collapse to one patched copy, the two2.2.8copies are
untouched, and@mastra/core@0.24.9,@mastra/mcp@0.14.5,
@mastra/memory@0.15.13andai@4.3.19all resolve exactly as before. That
dedupe is most of the ~110 deleted lockfile lines.One of the nine hid behind an npm alias, and that is the part worth
remembering.@mastra/core@0.24.9does not ask for@ai-sdk/provider-utils
by name — it asks for"@ai-sdk/provider-utils-v5": "npm:@ai-sdk/provider-utils@3.0.12",
one of ten-v5aliases in that lockfile. npm keysoverrideson the name the
dependent requests, not on the name that ends up installed, so
"@ai-sdk/provider-utils@3"never applied to it and an affected3.0.12stayed
in the tree looking, from every path-keyed check, exactly like a package that had
been patched. It needed its own alias-keyed entry,
"@ai-sdk/provider-utils-v5": "npm:@ai-sdk/provider-utils@3.0.28". Verifying an
override by globbing lockfile paths for the real package name is what missed it;
npm auditnames the alias directly. The other nine aliases are unaffected —
ai-v5resolves5.0.60and5.0.97, both above GHSA-rwvc-j5jr-mgvh's5.0.52
floor. Dependabot had reached the same two alerts by moving
ai-4toai@5.0.52,ai-5toai@7.0.122andmastra-0to
@mastra/core@1.71.0(#867) — the third time in as many days that its fix for a
fixture advisory was the oneSECURITY.mdforbids, and it failed the same
ERESOLVEon the same@mastra/mcppeer as #838.ai-4needed no change: both
advisories still open against it are the accepted kind, and the table above
already carries them. (#869) -
mastra-1clears its one fixture advisory without moving a pin.
GHSA-6qxp-vccf-f47h (high) is against@modelcontextprotocol/client@2.0.0,
which@mastra/mcp@2.0.0pins exactly. The fixture now carries anoverrides
entry for the patched2.2.0. That release brings its own
@modelcontextprotocol/core@2.2.0, nested under it, and every other package
resolves as before. Dependabot's fix (#884) moved@mastra/mcpto2.3.0
instead. That release peers on@mastra/core >=1.75.0-0, so it cannot install
beside the fixture's1.68.0. Themcpandmcp-toolsetsscenarios pass
against the override. This package's own dev lockfile also moves
source-map-jsto1.2.2(GHSA-68fv-2mgg-jv7q). (#901) -
nextjsandmastra-0clear their fixable advisories, again without moving
a pin.nextjsmovesnextto16.4.1(six advisories, fixed in16.3.8),
sharpto0.35.5(GHSA-wq5f-xc86-pv6w) andsource-map-jsto1.2.2
(GHSA-68fv-2mgg-jv7q).mastra-0moves@modelcontextprotocol/sdkfrom
1.30.1to1.32.1(GHSA-6qxp-vccf-f47h), inside the^1.17.5range
@mastra/mcp@0.14.5declares, so only the lockfile changes. Dependabot's
version of this PR also movedai-4toai@5.0.52andmastra-0to
@mastra/core@1.77.0, which cannot install beside@mastra/mcp@0.14.5and
failed every integration shard, andnextjs'saito7.0.141, off the
ai-7twin its routes' traces are compared against. None of those are
applied. (#902)