failproofai 1.0.11-beta.3 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +4 -4
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +2 -2
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/audit/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
- package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +14 -14
- package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +8 -8
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/_09dz7xva4ce_2._.js +1 -1
- package/.next/standalone/.next/server/chunks/_0tovk6q0miud6._.js +1 -1
- package/.next/standalone/.next/server/chunks/_0trp3ycqv17cl._.js +1 -1
- package/.next/standalone/.next/server/chunks/_1vslkoe35wok6._.js +1 -1
- package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4vkpxxu7._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__08ch3staq3ejw._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0m2etnchhciwn._.js → [root-of-the-server]__0_lbstb5x2t15._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0bigvy9xmv2ka._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h86bl2qf0k_o._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pia5h3p8re4c._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1-ey9fgesfbc0._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__15usvs-ms-0hf._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__16gb3_92zvk5x._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1avi2kypusyb_._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1r7drlqli-ado._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0g62t_u7bsc4i._.js → _0dc-of_bn0cim._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0eoura3_9gjb-._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0pedwblqdoh58._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_1djqs9i27e4kg._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_1gb0ifpkowwub._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_policies_page_actions_1sp2-yo5_vm5f.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/app_actions_get-scheduled-audit_ts_0ei9snixb5fd-._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47q0xq5w._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x33jqb6._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpcz0uxur._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_settings_02tf1h47jmhhd._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_html-to-image_es_index_1pr0bebnuzhnk.js → node_modules_html-to-image_es_index_1f_ymmaonkksc.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/package_json_[json]_cjs_013tntikdft59._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_hooks_pack-cli_ts_0t7me658zqmh_._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/preview-props.json +3 -3
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +23 -23
- package/.next/standalone/.next/static/chunks/{08ri7z1cva-nm.js → 0ol2gj4ntfn56.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0ychntysspq47.js → 15rm15u5a6dua.js} +1 -1
- package/.next/standalone/.next/static/chunks/{2ifk4hst9gfec.js → 16z6_d7sp61jm.js} +1 -1
- package/.next/standalone/.next/static/chunks/{2dbn-cl_ju3yb.js → 1_c0dc7zqj1n7.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0kv4jur9k6mb0.js → 1kwj8uqxuv85t.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0jz_z_4al287_.js → 302llgh97ce6w.js} +1 -1
- package/.next/standalone/.next/static/chunks/{1ti1i01dr_j1i.js → 37stoe-_yd852.js} +1 -1
- package/.next/standalone/.next/static/chunks/3hj5_7i3nw4zj.js +1 -0
- package/.next/standalone/.next/static/chunks/3iyoapeoq_hup.js +1 -0
- package/.next/standalone/.next/static/chunks/{1qbr87v23mzk5.js → 44a7k2_62qc-9.js} +2 -2
- package/.next/standalone/hermes-plugin/plugin.yaml +1 -1
- package/.next/standalone/package.json +9 -9
- package/.next/standalone/sdk/python/CHANGELOG.md +17 -5
- package/.next/standalone/sdk/python/failproofai_sdk/_redact.py +3 -5
- package/.next/standalone/sdk/python/failproofai_sdk/_resolver.py +13 -2
- package/.next/standalone/sdk/python/failproofai_sdk/integrations/otel.py +3 -1
- package/.next/standalone/sdk/python/tests/test_otel.py +25 -0
- package/.next/standalone/sdk/typescript/CHANGELOG.md +26 -1
- package/.next/standalone/sdk/typescript/integration/fixtures/mastra-0/package-lock.json +3 -3
- package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/package-lock.json +162 -162
- package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/package.json +1 -1
- package/.next/standalone/sdk/typescript/src/integrations/otel.ts +2 -1
- package/.next/standalone/sdk/typescript/src/resolver.ts +2 -1
- package/.next/standalone/sdk/typescript/test/otel.test.ts +25 -0
- package/.next/standalone/server.js +1 -1
- package/dist/cli.mjs +39 -23
- package/dist/worker.mjs +1 -1
- package/hermes-plugin/plugin.yaml +1 -1
- package/package.json +9 -9
- package/src/hooks/cloud-connection.ts +4 -1
- package/src/hooks/config-status.ts +2 -2
- package/src/hooks/otel-cli.ts +26 -8
- package/src/hooks/otel-writers.ts +16 -1
- package/.next/standalone/.next/static/chunks/140-bwb6l7ue8.js +0 -1
- package/.next/standalone/.next/static/chunks/3qx-e3n59bxxv.js +0 -1
- /package/.next/standalone/.next/static/{7n08rZWjZdMWbpBpp08dI → kEFP3ybXwZdriNEQmWwlH}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{7n08rZWjZdMWbpBpp08dI → kEFP3ybXwZdriNEQmWwlH}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{7n08rZWjZdMWbpBpp08dI → kEFP3ybXwZdriNEQmWwlH}/_ssgManifest.js +0 -0
|
@@ -8,6 +8,8 @@ import threading
|
|
|
8
8
|
import uuid
|
|
9
9
|
from pathlib import Path
|
|
10
10
|
|
|
11
|
+
from .._resolver import failproofai_home
|
|
12
|
+
|
|
11
13
|
_MAX_BYTES = 8 * 1024 * 1024
|
|
12
14
|
_METADATA = b'{"path":"/v1/traces","content_type":"application/json","encoding":null}\n'
|
|
13
15
|
|
|
@@ -85,7 +87,7 @@ class OtelSpanExporter:
|
|
|
85
87
|
if self._stopped:
|
|
86
88
|
return SpanExportResult.FAILURE
|
|
87
89
|
try:
|
|
88
|
-
directory = self._directory or
|
|
90
|
+
directory = self._directory or failproofai_home() / "state" / "spool-otlp"
|
|
89
91
|
items, chunks, size = [], [], 20
|
|
90
92
|
for span in spans:
|
|
91
93
|
encoded = json.dumps(_resource_span(span), ensure_ascii=True, separators=(",", ":")).encode("utf8")
|
|
@@ -102,6 +102,31 @@ def test_exporter_reports_failures_and_shutdown(tmp_path):
|
|
|
102
102
|
provider.shutdown()
|
|
103
103
|
|
|
104
104
|
|
|
105
|
+
@pytest.mark.parametrize("blank", ["", " "])
|
|
106
|
+
def test_blank_failproofai_home_means_the_default_not_the_cwd(tmp_path, monkeypatch, blank):
|
|
107
|
+
from failproofai_sdk import _redact, _resolver
|
|
108
|
+
home, cwd = tmp_path / "home", tmp_path / "cwd"
|
|
109
|
+
cwd.mkdir()
|
|
110
|
+
monkeypatch.setenv("HOME", str(home))
|
|
111
|
+
monkeypatch.setenv("FAILPROOFAI_HOME", blank)
|
|
112
|
+
monkeypatch.chdir(cwd)
|
|
113
|
+
default = home / ".failproofai"
|
|
114
|
+
assert _resolver.failproofai_home() == default
|
|
115
|
+
assert _resolver.failproofai_custom_agents_dir() == default / "custom-agents"
|
|
116
|
+
provider = TracerProvider()
|
|
117
|
+
span = provider.get_tracer("app").start_span("blank-home")
|
|
118
|
+
span.end()
|
|
119
|
+
assert failproofai_sdk.OtelSpanExporter().export([span]) == SpanExportResult.SUCCESS
|
|
120
|
+
assert len(batches(default)) == 1
|
|
121
|
+
assert not any(cwd.iterdir()), "a blank FAILPROOFAI_HOME wrote into the working directory"
|
|
122
|
+
# Redaction reads the same root: a switch in the cwd must not be consulted.
|
|
123
|
+
(cwd / "config.json").write_text('{"collector":{"redact":"off"}}')
|
|
124
|
+
default.mkdir(parents=True, exist_ok=True)
|
|
125
|
+
(default / "config.json").write_text('{"collector":{"redact":"minimal"}}')
|
|
126
|
+
assert _redact.redaction_enabled(tmp_path / "unrelated") is True
|
|
127
|
+
provider.shutdown()
|
|
128
|
+
|
|
129
|
+
|
|
105
130
|
def test_batches_split_at_relay_limit(tmp_path, monkeypatch):
|
|
106
131
|
from opentelemetry.sdk.trace import SpanLimits
|
|
107
132
|
monkeypatch.setenv("FAILPROOFAI_HOME", str(tmp_path))
|
|
@@ -8,10 +8,23 @@ Headings are `## <version> — <YYYY-MM-DD>`, and the section matching the versi
|
|
|
8
8
|
in `src/version.ts` becomes that release's GitHub Release body. A release whose
|
|
9
9
|
section is missing or empty is refused before anything is built.
|
|
10
10
|
|
|
11
|
-
## 0.0.1-beta.1 — 2026-
|
|
11
|
+
## 0.0.1-beta.1 — 2026-10-15
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
- **OpenTelemetry spans to FailproofAI Cloud, without a network call in your
|
|
16
|
+
process.** `OtelSpanExporter`, or `instrument("otel", { spanProcessors })` before
|
|
17
|
+
you construct your provider, writes each finished batch of spans as OTLP/JSON to
|
|
18
|
+
the local spool (`~/.failproofai/state/spool-otlp`); the failproofai daemon
|
|
19
|
+
delivers it to Cloud with the machine's key and retries if Cloud is unreachable.
|
|
20
|
+
`@opentelemetry/sdk-trace-base` is only loaded when you call it.
|
|
12
21
|
|
|
13
22
|
### Fixes
|
|
14
23
|
|
|
24
|
+
- **A blank `FAILPROOFAI_HOME` no longer means the current directory.** An empty or
|
|
25
|
+
whitespace-only value made the exporter and the custom-agents resolver write
|
|
26
|
+
under the working directory, where the daemon never reads. Blank now means unset.
|
|
27
|
+
|
|
15
28
|
- **The integration fixtures stop carrying 32 open security advisories.** Nothing
|
|
16
29
|
the published package ships changed — every fixture under `integration/fixtures/`
|
|
17
30
|
is `"private": true` and exists only to run the adapters against real framework
|
|
@@ -95,6 +108,18 @@ section is missing or empty is refused before anything is built.
|
|
|
95
108
|
against the override. This package's own dev lockfile also moves
|
|
96
109
|
`source-map-js` to `1.2.2` (GHSA-68fv-2mgg-jv7q). (#901)
|
|
97
110
|
|
|
111
|
+
- **`nextjs` and `mastra-0` clear their fixable advisories, again without moving
|
|
112
|
+
a pin.** `nextjs` moves `next` to `16.4.1` (six advisories, fixed in `16.3.8`),
|
|
113
|
+
`sharp` to `0.35.5` (GHSA-wq5f-xc86-pv6w) and `source-map-js` to `1.2.2`
|
|
114
|
+
(GHSA-68fv-2mgg-jv7q). `mastra-0` moves `@modelcontextprotocol/sdk` from
|
|
115
|
+
`1.30.1` to `1.32.1` (GHSA-6qxp-vccf-f47h), inside the `^1.17.5` range
|
|
116
|
+
`@mastra/mcp@0.14.5` declares, so only the lockfile changes. Dependabot's
|
|
117
|
+
version of this PR also moved `ai-4` to `ai@5.0.52` and `mastra-0` to
|
|
118
|
+
`@mastra/core@1.77.0`, which cannot install beside `@mastra/mcp@0.14.5` and
|
|
119
|
+
failed every integration shard, and `nextjs`'s `ai` to `7.0.141`, off the
|
|
120
|
+
`ai-7` twin its routes' traces are compared against. None of those are
|
|
121
|
+
applied. (#902)
|
|
122
|
+
|
|
98
123
|
## 0.0.1-beta.0 — 2026-09-23
|
|
99
124
|
|
|
100
125
|
### Added
|
|
@@ -1026,9 +1026,9 @@
|
|
|
1026
1026
|
"license": "BSD-3-Clause"
|
|
1027
1027
|
},
|
|
1028
1028
|
"node_modules/@modelcontextprotocol/sdk": {
|
|
1029
|
-
"version": "1.
|
|
1030
|
-
"resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.
|
|
1031
|
-
"integrity": "sha512-
|
|
1029
|
+
"version": "1.32.1",
|
|
1030
|
+
"resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.32.1.tgz",
|
|
1031
|
+
"integrity": "sha512-2DdE+SJDtzLEEWzY1ZjY7Q+VcPhcV1KisD3zI4u0XZyktsjHum1mwbMI+JaulUBi2OZk+KJAi2uPXzxichPkdw==",
|
|
1032
1032
|
"license": "MIT",
|
|
1033
1033
|
"dependencies": {
|
|
1034
1034
|
"@hono/node-server": "^1.19.9 || ^2.0.5",
|