failproofai 0.0.11-beta.9 → 0.0.12-beta.0

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.
Files changed (180) hide show
  1. package/.next/standalone/.codex/hooks.json +6 -7
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/build-manifest.json +5 -5
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/required-server-files.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +2 -2
  7. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  8. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  12. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  13. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  14. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  15. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  16. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +2 -2
  18. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  19. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  22. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  23. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  24. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  25. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  26. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  27. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  28. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  29. package/.next/standalone/.next/server/app/api/audit/invite/route.js +1 -1
  30. package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/audit/run/route.js +1 -1
  32. package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/auth/login-request/route.js +1 -1
  34. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js +1 -1
  36. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/auth/logout/route.js +1 -1
  38. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/api/auth/reminder/route.js +1 -1
  40. package/.next/standalone/.next/server/app/api/auth/reminder/route.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/api/auth/status/route.js +1 -1
  42. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/audit/page/build-manifest.json +2 -2
  45. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
  46. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/index.html +1 -1
  49. package/.next/standalone/.next/server/app/index.rsc +15 -15
  50. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  51. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  52. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  53. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
  54. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  55. package/.next/standalone/.next/server/app/page/build-manifest.json +2 -2
  56. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  57. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  58. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/policies/page/build-manifest.json +2 -2
  60. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  61. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  62. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/project/[name]/page/build-manifest.json +2 -2
  64. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  65. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/build-manifest.json +2 -2
  68. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  69. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  70. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  71. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/projects/page/build-manifest.json +2 -2
  73. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  74. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  75. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/chunks/[externals]__1_g_b3t._.js +3 -0
  77. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0dwpg-h._.js +3 -0
  78. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0lnenda._.js +3 -0
  79. package/.next/standalone/.next/server/chunks/[root-of-the-server]__13i_sva._.js +3 -0
  80. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1_mqemn._.js +1 -1
  81. package/.next/standalone/.next/server/chunks/node_modules_0-tu4ot._.js +1 -1
  82. package/.next/standalone/.next/server/chunks/node_modules_1bnh1y0._.js +1 -1
  83. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_17k9e3w.js +3 -3
  84. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_01r25oi._.js +1 -1
  85. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_09z9-p7._.js +1 -1
  86. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
  87. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0808sha._.js +2 -2
  88. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e4-6d8._.js +2 -2
  89. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ehe24g._.js +2 -2
  90. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g253ve._.js +2 -2
  91. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0k65l27._.js +1 -1
  92. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0vxf0_g._.js +2 -2
  93. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0wprfyc._.js → [root-of-the-server]__12e2gos._.js} +2 -2
  94. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12mcauo._.js +2 -2
  95. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0e446gb._.js → [root-of-the-server]__1ex6lhp._.js} +2 -2
  96. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1mt35_w._.js +7 -7
  97. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1pcxxwg._.js +2 -2
  98. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1uvfwgr._.js +2 -2
  99. package/.next/standalone/.next/server/chunks/ssr/_11_p9y8._.js +1 -1
  100. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +49 -21
  101. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
  102. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +1 -1
  103. package/.next/standalone/.next/server/chunks/ssr/{node_modules_html-to-image_es_index_0y4a-0q.js → node_modules_html-to-image_es_index_0jg3fuk.js} +1 -1
  104. package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js +1 -1
  105. package/.next/standalone/.next/server/middleware-build-manifest.js +5 -5
  106. package/.next/standalone/.next/server/pages/404.html +1 -1
  107. package/.next/standalone/.next/server/pages/500.html +1 -1
  108. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/server-reference-manifest.json +10 -10
  110. package/.next/standalone/.next/static/chunks/{2z42u62k-8-_q.js → 04y44gpe0698_.js} +1 -1
  111. package/.next/standalone/.next/static/chunks/{3nj6g3xu9uy78.js → 0_75be6zseuxl.js} +1 -1
  112. package/.next/standalone/.next/static/chunks/0jtj8f7njt8w3.js +69 -0
  113. package/.next/standalone/.next/static/chunks/0mdiwb8ozs8j5.js +1 -0
  114. package/.next/standalone/.next/static/chunks/1o0xa47736gi9.css +2 -0
  115. package/.next/standalone/.next/static/chunks/1ua5armwfph8o.js +31 -0
  116. package/.next/standalone/.next/static/chunks/{277oc363p56n6.js → 1xjrv35s71etn.js} +2 -2
  117. package/.next/standalone/.next/static/chunks/{3ty6dhcuogout.js → 21cumi0uqy4mk.js} +1 -1
  118. package/.next/standalone/.next/static/chunks/{07_d165p5h5ys.js → 2611bbf4e_1cs.js} +1 -1
  119. package/.next/standalone/.next/static/chunks/2hc_0--4nm0at.js +1 -0
  120. package/.next/standalone/.next/static/chunks/{1kvadxkgnapyj.js → 2l78594jx17e1.js} +1 -1
  121. package/.next/standalone/.next/static/chunks/{168k-8z6k7e8z.css → 3i27c3hcriawq.css} +1 -1
  122. package/.next/standalone/.next/static/chunks/{turbopack-3lrm4f20fz89b.js → turbopack-0vavqo2d-tlt3.js} +1 -1
  123. package/.next/standalone/app/api/audit/invite/route.ts +10 -1
  124. package/.next/standalone/app/api/audit/run/route.ts +35 -0
  125. package/.next/standalone/app/api/auth/login-request/route.ts +2 -2
  126. package/.next/standalone/app/api/auth/login-verify/route.ts +10 -2
  127. package/.next/standalone/app/audit/_components/audit-dashboard.tsx +9 -1
  128. package/.next/standalone/app/audit/_components/audit-poster.tsx +11 -7
  129. package/.next/standalone/app/audit/_components/auth-dialog.tsx +6 -4
  130. package/.next/standalone/app/audit/_components/come-back-better-section.tsx +23 -3
  131. package/.next/standalone/app/audit/_components/invite-dialog.tsx +6 -3
  132. package/.next/standalone/app/audit/_components/share-templates.ts +58 -28
  133. package/.next/standalone/app/audit/audit-styles.css +17 -22
  134. package/.next/standalone/app/globals.css +27 -2
  135. package/.next/standalone/app/policies/hooks-client.tsx +33 -24
  136. package/.next/standalone/components/reach-developers.tsx +10 -25
  137. package/.next/standalone/lib/auth/api-server-client.ts +5 -2
  138. package/.next/standalone/lib/client-telemetry.ts +4 -0
  139. package/.next/standalone/node_modules/@next/env/package.json +7 -8
  140. package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  141. package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +1 -1
  142. package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  143. package/.next/standalone/node_modules/next/dist/server/config.js +1 -1
  144. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  145. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  146. package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  147. package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  148. package/.next/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
  149. package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  150. package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  151. package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  152. package/.next/standalone/node_modules/next/package.json +10 -252
  153. package/.next/standalone/package.json +6 -4
  154. package/.next/standalone/server.js +1 -1
  155. package/README.md +2 -2
  156. package/bin/failproofai.mjs +24 -5
  157. package/dist/cli.mjs +2330 -374
  158. package/lib/auth/api-server-client.ts +5 -2
  159. package/lib/client-telemetry.ts +4 -0
  160. package/package.json +6 -4
  161. package/scripts/launch.ts +30 -4
  162. package/scripts/postinstall.mjs +10 -1
  163. package/scripts/skew-log-filter.ts +46 -0
  164. package/scripts/validate-mdx.ts +139 -0
  165. package/src/audit/cli.ts +330 -0
  166. package/src/audit/open-browser.ts +69 -0
  167. package/src/auth/cli.ts +16 -13
  168. package/src/hooks/integrations.ts +22 -9
  169. package/src/hooks/types.ts +2 -2
  170. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1r1h8v9._.js +0 -3
  171. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1uatkiv._.js +0 -3
  172. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1y6gxxb._.js +0 -3
  173. package/.next/standalone/.next/static/chunks/28mkxkl_d91-l.js +0 -1
  174. package/.next/standalone/.next/static/chunks/28x7jvo3kxd3u.js +0 -41
  175. package/.next/standalone/.next/static/chunks/29nrs5xs9c4hx.css +0 -2
  176. package/.next/standalone/.next/static/chunks/29tg7deqmq32l.js +0 -1
  177. package/.next/standalone/.next/static/chunks/2h0dkzyy0vocp.js +0 -31
  178. /package/.next/standalone/.next/static/{NYPiJP6Rv_exQdSFVS8HP → DUw2FaxT-IF_URNqcba-m}/_buildManifest.js +0 -0
  179. /package/.next/standalone/.next/static/{NYPiJP6Rv_exQdSFVS8HP → DUw2FaxT-IF_URNqcba-m}/_clientMiddlewareManifest.js +0 -0
  180. /package/.next/standalone/.next/static/{NYPiJP6Rv_exQdSFVS8HP → DUw2FaxT-IF_URNqcba-m}/_ssgManifest.js +0 -0
@@ -234,7 +234,7 @@ class HotReloaderWebpack {
234
234
  this.previewProps = previewProps;
235
235
  this.rewrites = rewrites;
236
236
  this.hotReloaderSpan = (0, _trace.trace)('hot-reloader', undefined, {
237
- version: "16.2.9"
237
+ version: "16.2.10"
238
238
  });
239
239
  // Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
240
240
  // of the current `next dev` invocation.
@@ -85,7 +85,7 @@ function logStartInfo({ networkUrl, appUrl, envInfo, logBundler }) {
85
85
  if (parts.length > 0) {
86
86
  versionSuffix = ` (${parts.join(', ')})`;
87
87
  }
88
- _log.bootstrap(`${(0, _picocolors.bold)((0, _picocolors.purple)(`${_log.prefixes.ready} Next.js ${"16.2.9"}`))}${versionSuffix}`);
88
+ _log.bootstrap(`${(0, _picocolors.bold)((0, _picocolors.purple)(`${_log.prefixes.ready} Next.js ${"16.2.10"}`))}${versionSuffix}`);
89
89
  if (appUrl) {
90
90
  _log.bootstrap(`- Local: ${appUrl}`);
91
91
  }
@@ -178,7 +178,7 @@ async function getRequestHandlers({ dir, port, isDev, onDevServerCleanup, server
178
178
  async function startServer(serverOptions) {
179
179
  const { dir, isDev, hostname, minimalMode, allowRetry, keepAliveTimeout, selfSignedCertificate, serverFastRefresh } = serverOptions;
180
180
  let { port } = serverOptions;
181
- process.title = `next-server (v${"16.2.9"})`;
181
+ process.title = `next-server (v${"16.2.10"})`;
182
182
  let handlersReady = ()=>{};
183
183
  let handlersError = ()=>{};
184
184
  let handlersPromise = new Promise((resolve, reject)=>{
@@ -21,7 +21,7 @@ _export(exports, {
21
21
  }
22
22
  });
23
23
  function isStableBuild() {
24
- return !"16.2.9"?.includes('canary') && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV;
24
+ return !"16.2.10"?.includes('canary') && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV;
25
25
  }
26
26
  class CanaryOnlyConfigError extends Error {
27
27
  constructor(arg){
@@ -81,7 +81,7 @@ function getAnonymousMeta() {
81
81
  isWsl: _iswsl.default,
82
82
  isCI: _ciinfo.isCI,
83
83
  ciName: _ciinfo.isCI && _ciinfo.name || null,
84
- nextVersion: "16.2.9"
84
+ nextVersion: "16.2.10"
85
85
  };
86
86
  return traits;
87
87
  }
@@ -38,7 +38,7 @@ async function eventSwcLoadFailure(event) {
38
38
  telemetry.record({
39
39
  eventName: EVENT_PLUGIN_PRESENT,
40
40
  payload: {
41
- nextVersion: "16.2.9",
41
+ nextVersion: "16.2.10",
42
42
  glibcVersion,
43
43
  installedSwcPackages,
44
44
  arch: process.arch,
@@ -12,12 +12,12 @@ const EVENT_VERSION = 'NEXT_CLI_SESSION_STARTED';
12
12
  function eventCliSession(nextConfig, event) {
13
13
  var _nextConfig_experimental_staleTimes, _nextConfig_experimental_staleTimes1, _nextConfig_reactCompiler, _nextConfig_reactCompiler1;
14
14
  // This should be an invariant, if it fails our build tooling is broken.
15
- if (typeof "16.2.9" !== 'string') {
15
+ if (typeof "16.2.10" !== 'string') {
16
16
  return [];
17
17
  }
18
18
  const { images, i18n } = nextConfig || {};
19
19
  const payload = {
20
- nextVersion: "16.2.9",
20
+ nextVersion: "16.2.10",
21
21
  nodeVersion: process.version,
22
22
  cliCommand: event.cliCommand,
23
23
  isSrcDir: event.isSrcDir,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "next",
3
- "version": "16.2.9",
3
+ "version": "16.2.10",
4
4
  "description": "The React Framework",
5
5
  "main": "./dist/server/next.js",
6
6
  "license": "MIT",
@@ -77,27 +77,8 @@
77
77
  "bin": {
78
78
  "next": "./dist/bin/next"
79
79
  },
80
- "scripts": {
81
- "dev": "cross-env NEXT_SERVER_NO_MANGLE=1 taskr",
82
- "build": "taskr release",
83
- "prepublishOnly": "cd ../../ && turbo run build",
84
- "types": "tsc --project tsconfig.build.json --declaration --emitDeclarationOnly --stripInternal --declarationDir dist",
85
- "typescript": "tsec --noEmit",
86
- "ncc-compiled": "taskr ncc",
87
- "storybook": "BROWSER=none storybook dev -p 6006",
88
- "build-storybook": "storybook build",
89
- "test-storybook": "test-storybook"
90
- },
91
- "taskr": {
92
- "requires": [
93
- "./taskfile-webpack.js",
94
- "./taskfile-ncc.js",
95
- "./taskfile-swc.js",
96
- "./taskfile-watch.js"
97
- ]
98
- },
99
80
  "dependencies": {
100
- "@next/env": "16.2.9",
81
+ "@next/env": "16.2.10",
101
82
  "@swc/helpers": "0.5.15",
102
83
  "baseline-browser-mapping": "^2.9.19",
103
84
  "caniuse-lite": "^1.0.30001579",
@@ -128,237 +109,14 @@
128
109
  },
129
110
  "optionalDependencies": {
130
111
  "sharp": "^0.34.5",
131
- "@next/swc-darwin-arm64": "16.2.9",
132
- "@next/swc-darwin-x64": "16.2.9",
133
- "@next/swc-linux-arm64-gnu": "16.2.9",
134
- "@next/swc-linux-arm64-musl": "16.2.9",
135
- "@next/swc-linux-x64-gnu": "16.2.9",
136
- "@next/swc-linux-x64-musl": "16.2.9",
137
- "@next/swc-win32-arm64-msvc": "16.2.9",
138
- "@next/swc-win32-x64-msvc": "16.2.9"
139
- },
140
- "devDependencies": {
141
- "@babel/core": "7.26.10",
142
- "@babel/eslint-parser": "7.24.6",
143
- "@babel/generator": "7.27.0",
144
- "@babel/plugin-syntax-bigint": "7.8.3",
145
- "@babel/plugin-syntax-dynamic-import": "7.8.3",
146
- "@babel/plugin-syntax-import-attributes": "7.26.0",
147
- "@babel/plugin-syntax-jsx": "7.25.9",
148
- "@babel/plugin-syntax-typescript": "7.25.4",
149
- "@babel/plugin-transform-class-properties": "7.25.9",
150
- "@babel/plugin-transform-export-namespace-from": "7.25.9",
151
- "@babel/plugin-transform-modules-commonjs": "7.26.3",
152
- "@babel/plugin-transform-numeric-separator": "7.25.9",
153
- "@babel/plugin-transform-object-rest-spread": "7.25.9",
154
- "@babel/plugin-transform-runtime": "7.26.10",
155
- "@babel/preset-env": "7.26.9",
156
- "@babel/preset-react": "7.26.3",
157
- "@babel/preset-typescript": "7.27.0",
158
- "@babel/runtime": "7.27.0",
159
- "@babel/traverse": "7.27.0",
160
- "@babel/types": "7.27.0",
161
- "@base-ui-components/react": "1.0.0-beta.2",
162
- "@capsizecss/metrics": "3.4.0",
163
- "@edge-runtime/cookies": "6.0.0",
164
- "@edge-runtime/ponyfill": "4.0.0",
165
- "@edge-runtime/primitives": "6.0.0",
166
- "@hapi/accept": "5.0.2",
167
- "@jest/transform": "29.5.0",
168
- "@jest/types": "29.5.0",
169
- "@modelcontextprotocol/sdk": "1.18.1",
170
- "@mswjs/interceptors": "0.23.0",
171
- "@napi-rs/triples": "1.2.0",
172
- "@next/font": "16.2.9",
173
- "@next/polyfill-module": "16.2.9",
174
- "@next/polyfill-nomodule": "16.2.9",
175
- "@next/react-refresh-utils": "16.2.9",
176
- "@next/swc": "16.2.9",
177
- "@opentelemetry/api": "1.6.0",
178
- "@playwright/test": "1.58.2",
179
- "@rspack/core": "1.6.7",
180
- "@storybook/addon-a11y": "8.6.0",
181
- "@storybook/addon-essentials": "8.6.0",
182
- "@storybook/addon-interactions": "8.6.0",
183
- "@storybook/addon-webpack5-compiler-swc": "3.0.0",
184
- "@storybook/blocks": "8.6.0",
185
- "@storybook/react": "8.6.0",
186
- "@storybook/react-webpack5": "8.6.0",
187
- "@storybook/test": "8.6.0",
188
- "@storybook/test-runner": "0.21.0",
189
- "@swc/core": "1.11.24",
190
- "@swc/types": "0.1.7",
191
- "@taskr/clear": "1.1.0",
192
- "@taskr/esnext": "1.1.0",
193
- "@types/babel__code-frame": "7.0.6",
194
- "@types/babel__core": "7.20.5",
195
- "@types/babel__generator": "7.27.0",
196
- "@types/babel__template": "7.4.4",
197
- "@types/babel__traverse": "7.20.7",
198
- "@types/bytes": "3.1.1",
199
- "@types/ci-info": "2.0.0",
200
- "@types/compression": "0.0.36",
201
- "@types/content-disposition": "0.5.4",
202
- "@types/content-type": "1.1.3",
203
- "@types/cookie": "0.3.3",
204
- "@types/cross-spawn": "6.0.0",
205
- "@types/debug": "4.1.5",
206
- "@types/express-serve-static-core": "4.17.33",
207
- "@types/fresh": "0.5.0",
208
- "@types/glob": "7.1.1",
209
- "@types/jsonwebtoken": "9.0.0",
210
- "@types/lodash": "4.14.198",
211
- "@types/lodash.curry": "4.1.6",
212
- "@types/path-to-regexp": "1.7.0",
213
- "@types/picomatch": "2.3.3",
214
- "@types/platform": "1.3.4",
215
- "@types/react": "19.0.8",
216
- "@types/react-dom": "19.0.3",
217
- "@types/react-is": "18.2.4",
218
- "@types/semver": "7.3.1",
219
- "@types/send": "0.14.4",
220
- "@types/serve-handler": "6.1.4",
221
- "@types/shell-quote": "1.7.1",
222
- "@types/text-table": "0.2.1",
223
- "@types/ua-parser-js": "0.7.36",
224
- "@types/webpack-sources1": "npm:@types/webpack-sources@0.1.5",
225
- "@types/ws": "8.2.0",
226
- "@vercel/ncc": "0.34.0",
227
- "@vercel/nft": "0.27.1",
228
- "@vercel/routing-utils": "5.2.0",
229
- "@vercel/turbopack-ecmascript-runtime": "*",
230
- "acorn": "8.14.0",
231
- "anser": "1.4.9",
232
- "arg": "4.1.0",
233
- "assert": "2.0.0",
234
- "async-retry": "1.2.3",
235
- "async-sema": "3.0.0",
236
- "axe-playwright": "2.0.3",
237
- "babel-loader": "10.0.0",
238
- "babel-plugin-react-compiler": "0.0.0-experimental-1371fcb-20260227",
239
- "babel-plugin-transform-define": "2.0.0",
240
- "babel-plugin-transform-react-remove-prop-types": "0.4.24",
241
- "browserify-zlib": "0.2.0",
242
- "browserslist": "4.28.1",
243
- "buffer": "5.6.0",
244
- "busboy": "1.6.0",
245
- "bytes": "3.1.1",
246
- "ci-info": "watson/ci-info#f43f6a1cefff47fb361c88cf4b943fdbcaafe540",
247
- "cli-select": "1.1.2",
248
- "client-only": "0.0.1",
249
- "commander": "12.1.0",
250
- "comment-json": "3.0.3",
251
- "compression": "1.7.4",
252
- "conf": "5.0.0",
253
- "constants-browserify": "1.0.0",
254
- "content-disposition": "0.5.3",
255
- "content-type": "1.0.4",
256
- "cookie": "0.4.1",
257
- "cross-env": "6.0.3",
258
- "cross-spawn": "7.0.3",
259
- "crypto-browserify": "3.12.0",
260
- "css-loader": "7.1.2",
261
- "css.escape": "1.5.1",
262
- "cssnano-preset-default": "7.0.6",
263
- "data-uri-to-buffer": "3.0.1",
264
- "debug": "4.1.1",
265
- "devalue": "2.0.1",
266
- "domain-browser": "4.19.0",
267
- "edge-runtime": "4.0.1",
268
- "events": "3.3.0",
269
- "find-up": "4.1.0",
270
- "fresh": "0.5.2",
271
- "glob": "7.1.7",
272
- "gzip-size": "5.1.1",
273
- "http-proxy": "1.18.1",
274
- "http-proxy-agent": "5.0.0",
275
- "https-browserify": "1.0.0",
276
- "https-proxy-agent": "5.0.1",
277
- "icss-utils": "5.1.0",
278
- "ignore-loader": "0.1.2",
279
- "image-size": "1.2.1",
280
- "ipaddr.js": "2.2.0",
281
- "is-docker": "2.0.0",
282
- "is-wsl": "2.2.0",
283
- "jest-worker": "27.5.1",
284
- "json5": "2.2.3",
285
- "jsonwebtoken": "9.0.0",
286
- "loader-runner": "4.3.0",
287
- "loader-utils2": "npm:loader-utils@2.0.4",
288
- "loader-utils3": "npm:loader-utils@3.1.3",
289
- "lodash.curry": "4.1.1",
290
- "mini-css-extract-plugin": "2.4.4",
291
- "msw": "2.3.0",
292
- "nanoid": "3.1.32",
293
- "native-url": "0.3.4",
294
- "neo-async": "2.6.1",
295
- "node-html-parser": "5.3.3",
296
- "ora": "4.0.4",
297
- "os-browserify": "0.3.0",
298
- "p-limit": "3.1.0",
299
- "p-queue": "6.6.2",
300
- "path-browserify": "1.0.1",
301
- "path-to-regexp": "6.3.0",
302
- "picomatch": "4.0.1",
303
- "postcss-flexbugs-fixes": "5.0.2",
304
- "postcss-modules-extract-imports": "3.0.0",
305
- "postcss-modules-local-by-default": "4.2.0",
306
- "postcss-modules-scope": "3.0.0",
307
- "postcss-modules-values": "4.0.0",
308
- "postcss-preset-env": "7.4.3",
309
- "postcss-safe-parser": "6.0.0",
310
- "postcss-scss": "4.0.3",
311
- "postcss-value-parser": "4.2.0",
312
- "process": "0.11.10",
313
- "punycode": "2.1.1",
314
- "querystring-es3": "0.2.1",
315
- "raw-body": "2.4.1",
316
- "react-refresh": "0.12.0",
317
- "recast": "0.23.11",
318
- "regenerator-runtime": "0.13.4",
319
- "safe-stable-stringify": "2.5.0",
320
- "sass-loader": "16.0.5",
321
- "schema-utils2": "npm:schema-utils@2.7.1",
322
- "schema-utils3": "npm:schema-utils@3.0.0",
323
- "semver": "7.3.2",
324
- "send": "0.18.0",
325
- "serve-handler": "6.1.6",
326
- "server-only": "0.0.1",
327
- "setimmediate": "1.0.5",
328
- "shell-quote": "1.7.3",
329
- "source-map": "0.6.1",
330
- "source-map-loader": "5.0.0",
331
- "source-map08": "npm:source-map@0.8.0-beta.0",
332
- "stacktrace-parser": "0.1.10",
333
- "storybook": "8.6.0",
334
- "stream-browserify": "3.0.0",
335
- "stream-http": "3.1.1",
336
- "strict-event-emitter": "0.5.0",
337
- "string-hash": "1.1.3",
338
- "string_decoder": "1.3.0",
339
- "strip-ansi": "6.0.0",
340
- "style-loader": "4.0.0",
341
- "superstruct": "1.0.3",
342
- "tar": "7.5.11",
343
- "taskr": "1.1.0",
344
- "terser": "5.27.0",
345
- "terser-webpack-plugin": "5.3.9",
346
- "text-table": "0.2.0",
347
- "timers-browserify": "2.0.12",
348
- "tty-browserify": "0.0.1",
349
- "typescript": "5.9.2",
350
- "ua-parser-js": "1.0.35",
351
- "unistore": "3.4.1",
352
- "util": "0.12.4",
353
- "vm-browserify": "1.1.2",
354
- "watchpack": "2.4.0",
355
- "web-vitals": "4.2.1",
356
- "webpack": "5.98.0",
357
- "webpack-sources1": "npm:webpack-sources@1.4.3",
358
- "webpack-sources3": "npm:webpack-sources@3.2.3",
359
- "ws": "8.2.3",
360
- "zod": "3.25.76",
361
- "zod-validation-error": "3.4.0"
112
+ "@next/swc-darwin-arm64": "16.2.10",
113
+ "@next/swc-darwin-x64": "16.2.10",
114
+ "@next/swc-linux-arm64-gnu": "16.2.10",
115
+ "@next/swc-linux-arm64-musl": "16.2.10",
116
+ "@next/swc-linux-x64-gnu": "16.2.10",
117
+ "@next/swc-linux-x64-musl": "16.2.10",
118
+ "@next/swc-win32-arm64-msvc": "16.2.10",
119
+ "@next/swc-win32-x64-msvc": "16.2.10"
362
120
  },
363
121
  "keywords": [
364
122
  "react",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "failproofai",
3
- "version": "0.0.11-beta.9",
3
+ "version": "0.0.12-beta.0",
4
4
  "description": "The easiest way to manage policies that keep your AI agents reliable, on-task, and running autonomously — for Claude Code & the Agents SDK",
5
5
  "bin": {
6
6
  "failproofai": "./dist/cli.mjs"
@@ -38,7 +38,8 @@
38
38
  "translate:readme": "bun scripts/translate-docs/cli.ts --readme-only",
39
39
  "translate:docs": "bun scripts/translate-docs/cli.ts --docs-only",
40
40
  "translate:dry-run": "bun scripts/translate-docs/cli.ts --dry-run",
41
- "translate:validate": "bun scripts/translate-docs/cli.ts --validate"
41
+ "translate:validate": "bun scripts/translate-docs/cli.ts --validate",
42
+ "validate:mdx": "bun scripts/validate-mdx.ts"
42
43
  },
43
44
  "keywords": [
44
45
  "claude",
@@ -71,13 +72,14 @@
71
72
  "access": "public"
72
73
  },
73
74
  "devDependencies": {
74
- "@anthropic-ai/sdk": "^0.104.2",
75
+ "@anthropic-ai/sdk": "^0.110.0",
76
+ "@mdx-js/mdx": "^3.1.1",
75
77
  "@tailwindcss/postcss": "^4.3.1",
76
78
  "@tanstack/react-virtual": "^3.14.3",
77
79
  "@testing-library/jest-dom": "^6.9.1",
78
80
  "@testing-library/react": "^16.3.2",
79
81
  "@testing-library/user-event": "^14.6.1",
80
- "@types/node": "25.9.3",
82
+ "@types/node": "26.1.0",
81
83
  "@types/react": "19.2.17",
82
84
  "@types/react-dom": "^19.2.3",
83
85
  "@vitejs/plugin-react": "^6.0.1",
@@ -9,7 +9,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
9
9
  const hostname = process.env.HOSTNAME || '0.0.0.0'
10
10
 
11
11
  let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
12
- const nextConfig = {"env":{"NEXT_PUBLIC_APP_VERSION":"0.0.11-beta.9"},"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":true,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/failproofai/failproofai","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"appNewScrollHandler":false,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"partialFallbacks":false,"dynamicOnHover":false,"varyParams":false,"prefetchInlining":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","outputFileTracingExcludes":{"*":["node_modules/@img/**","node_modules/sharp/**"]},"turbopack":{"root":"/home/runner/work/failproofai/failproofai"},"distDirRoot":".next"}
12
+ const nextConfig = {"env":{"NEXT_PUBLIC_APP_VERSION":"0.0.12-beta.0"},"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":true,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/failproofai/failproofai","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"appNewScrollHandler":false,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"partialFallbacks":false,"dynamicOnHover":false,"varyParams":false,"prefetchInlining":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","outputFileTracingExcludes":{"*":["node_modules/@img/**","node_modules/sharp/**"]},"turbopack":{"root":"/home/runner/work/failproofai/failproofai"},"distDirRoot":".next"}
13
13
 
14
14
  process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
15
15
 
package/README.md CHANGED
@@ -5,8 +5,8 @@
5
5
  [![npm](https://img.shields.io/npm/v/failproofai?style=flat-square&color=CB3837)](https://www.npmjs.com/package/failproofai)
6
6
  [![CI](https://img.shields.io/github/actions/workflow/status/failproofai/failproofai/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/failproofai/failproofai/actions)
7
7
  [![Supply Chain](https://img.shields.io/badge/supply%20chain-secure-brightgreen?style=flat-square)](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml)
8
- [![Slack](https://img.shields.io/badge/Slack-join%20us-4A154B?style=flat-square&logo=slack)](https://join.slack.com/t/failproofai/shared_invite/zt-3v63b7k5e-O3NBHmj8X6n9gZSGDx6ggQ)
9
- [![Docs](https://img.shields.io/badge/docs-befailproof.ai-002CA7?style=flat-square)](https://docs.befailproof.ai)
8
+ [![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.gg/2zjBZP7yQJ)
9
+ [![Docs](https://img.shields.io/badge/docs-befailproof.ai-002CA7?style=flat-square)](https://docs.befailproof.ai/introduction)
10
10
  [![License](https://img.shields.io/badge/license-MIT%20%2B%20Commons%20Clause-blue?style=flat-square)](./LICENSE)
11
11
 
12
12
  **Translations:** [简体中文](./docs/i18n/README.zh.md) · [日本語](./docs/i18n/README.ja.md) · [한국어](./docs/i18n/README.ko.md) · [Español](./docs/i18n/README.es.md) · [Português](./docs/i18n/README.pt-br.md) · [Deutsch](./docs/i18n/README.de.md) · [Français](./docs/i18n/README.fr.md) · [Русский](./docs/i18n/README.ru.md) · [हिन्दी](./docs/i18n/README.hi.md) · [Türkçe](./docs/i18n/README.tr.md) · [Tiếng Việt](./docs/i18n/README.vi.md) · [Italiano](./docs/i18n/README.it.md) · [العربية](./docs/i18n/README.ar.md) · [עברית](./docs/i18n/README.he.md)
@@ -108,7 +108,7 @@ if (hookIdx >= 0) {
108
108
  */
109
109
  async function runCli() {
110
110
  // --help / -h (only when not inside a subcommand that handles its own --help)
111
- const SUBCOMMANDS = ["policies", "policy", "auth"];
111
+ const SUBCOMMANDS = ["policies", "policy", "auth", "audit"];
112
112
  if ((args.includes("--help") || args.includes("-h")) && !SUBCOMMANDS.includes(args[0])) {
113
113
  const extraArgs = args.filter((a) => a !== "--help" && a !== "-h");
114
114
  if (extraArgs.length > 0) {
@@ -154,6 +154,10 @@ COMMANDS
154
154
  whoami Print the currently authenticated identity
155
155
  auth --help, -h Show this help for the auth command
156
156
 
157
+ audit Audit your agent's behavior, then open the
158
+ dashboard at http://localhost:8020/audit
159
+ audit --help, -h Show this help for the audit command
160
+
157
161
  --version, -v Print version and exit
158
162
  --help, -h Show this help message
159
163
 
@@ -186,8 +190,8 @@ EXAMPLES
186
190
 
187
191
  LINKS
188
192
  ⭐ Star us: https://github.com/failproofai/failproofai
189
- 📖 Docs: https://befailproof.ai
190
- 💬 Slack: https://join.slack.com/t/failproofai/shared_invite/zt-3v63b7k5e-O3NBHmj8X6n9gZSGDx6ggQ
193
+ 📖 Docs: https://docs.befailproof.ai/introduction
194
+ 💬 Discord: https://discord.gg/2zjBZP7yQJ
191
195
  `.trimStart());
192
196
  process.exit(0);
193
197
  }
@@ -470,10 +474,25 @@ EXAMPLES
470
474
  lastSubcommand = "auth";
471
475
  const { runAuthCli } = await import("../src/auth/cli");
472
476
  await runAuthCli(args.slice(1));
473
- await track("cli_auth_invoked", { args_count: args.length - 1 });
477
+ await track("cli_auth_invoked", {
478
+ args_count: args.length - 1,
479
+ subcommand: args[1] ?? "help",
480
+ exit_code: process.exitCode ?? 0,
481
+ });
474
482
  process.exit(process.exitCode ?? 0);
475
483
  }
476
484
 
485
+ // audit — scan local agent-CLI history, then launch the dashboard at /audit.
486
+ if (args[0] === "audit") {
487
+ lastSubcommand = "audit";
488
+ const { runAuditCli } = await import("../src/audit/cli");
489
+ await runAuditCli(args.slice(1));
490
+ // No process.exit(): on the success path runAuditCli calls launch(), which
491
+ // keeps this process alive running the dashboard. The --help / no-sessions
492
+ // paths exit inside runAuditCli; failures throw a CliError handled below.
493
+ return;
494
+ }
495
+
477
496
  // policy — single-policy shortcut over `policies --install <name>`.
478
497
  // failproofai policy add <name> enable one policy (defaults: claude/user)
479
498
  // failproofai policy remove <name> disable one policy
@@ -650,7 +669,7 @@ EXAMPLES
650
669
  return dp[m][n];
651
670
  }
652
671
 
653
- const primary = ["--version", "--help", "--hook", "policies", "policy", "auth"];
672
+ const primary = ["--version", "--help", "--hook", "policies", "policy", "auth", "audit"];
654
673
  const closest = primary.reduce((best, flag) => {
655
674
  const dist = levenshtein(unknownFlag, flag);
656
675
  return dist < best.dist ? { flag, dist } : best;