failproofai 1.0.2-beta.5 → 1.0.2-beta.6

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 (118) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/required-server-files.json +1 -1
  5. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  10. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +6 -6
  11. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  12. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  14. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.rsc +14 -14
  18. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
  19. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +13 -13
  20. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  21. package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/api/audit/run/route.js +3 -3
  23. package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/audit/status/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
  31. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/index.html +1 -1
  34. package/.next/standalone/.next/server/app/index.rsc +14 -14
  35. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +13 -13
  36. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +14 -14
  37. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  38. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  39. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +14 -14
  42. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  45. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  48. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  49. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  52. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  53. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +4 -4
  55. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o07qi9._.js +1 -1
  58. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__1zkek3z._.js → [root-of-the-server]__1tg4pu6._.js} +1 -1
  59. package/.next/standalone/.next/server/chunks/_0lxbzdq._.js +1 -1
  60. package/.next/standalone/.next/server/chunks/{_12moi5-._.js → _19uwam-._.js} +1 -1
  61. package/.next/standalone/.next/server/chunks/_1ek68ln._.js +7 -7
  62. package/.next/standalone/.next/server/chunks/_1zuiiy3._.js +1 -1
  63. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
  64. package/.next/standalone/.next/server/chunks/src_hooks_fp-home_ts_09kv0bn._.js +1 -1
  65. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__013jr2b._.js +2 -2
  66. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01wy8d-._.js +2 -2
  67. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02npjtd._.js +2 -2
  68. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__07gm3zl._.js +5 -5
  69. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0da85px._.js +2 -2
  70. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ftmoxc._.js +2 -2
  71. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0oa1lav._.js +1 -1
  72. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0p-5p8u._.js +2 -2
  73. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s740oi._.js +2 -2
  74. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0stn0gx._.js → [root-of-the-server]__128se8m._.js} +2 -2
  75. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1p2otjt._.js +2 -2
  76. package/.next/standalone/.next/server/chunks/ssr/_08x1r5t._.js +1 -1
  77. package/.next/standalone/.next/server/chunks/ssr/{_1km9-gn._.js → _0no96tu._.js} +1 -1
  78. package/.next/standalone/.next/server/chunks/ssr/{_1kesqs-._.js → _11fc-hb._.js} +2 -2
  79. package/.next/standalone/.next/server/chunks/ssr/_1u8-lu2._.js +1 -1
  80. package/.next/standalone/.next/server/chunks/ssr/_1zopuov._.js +1 -1
  81. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +1 -1
  82. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
  83. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +1 -1
  84. package/.next/standalone/.next/server/chunks/ssr/app_settings_settings-client_tsx_20lq-mq._.js +1 -1
  85. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  86. package/.next/standalone/.next/server/pages/404.html +1 -1
  87. package/.next/standalone/.next/server/pages/500.html +1 -1
  88. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/server-reference-manifest.json +19 -19
  90. package/.next/standalone/.next/static/chunks/{0tyt-3a5rtzy8.js → 0931avh-06lj5.js} +1 -1
  91. package/.next/standalone/.next/static/chunks/{36-8i_vbkh85w.js → 0h-3zffoy-_ji.js} +1 -1
  92. package/.next/standalone/.next/static/chunks/{21r7iw3rmixf5.js → 0p84npzxdgpc5.js} +1 -1
  93. package/.next/standalone/.next/static/chunks/{2hwc8e923g5df.js → 0sdgnflvw8kta.js} +1 -1
  94. package/.next/standalone/.next/static/chunks/{2_27jraat038x.js → 0z7au3njlak0j.js} +1 -1
  95. package/.next/standalone/.next/static/chunks/{391tpdqcas7rq.js → 1id7o44jjegf0.js} +1 -1
  96. package/.next/standalone/.next/static/chunks/{3_b73tc78jwsq.js → 276n-edifojbd.js} +2 -2
  97. package/.next/standalone/.next/static/chunks/{26lfjhb2kzzgb.js → 2jfskwd2u8o5r.js} +1 -1
  98. package/.next/standalone/.next/static/chunks/{3jqm8ubpv3i-4.js → 2pxr7nr1nyotn.js} +1 -1
  99. package/.next/standalone/.next/static/chunks/{33np9nrh1mvj9.js → 3vu_7_eor1m-k.js} +1 -1
  100. package/.next/standalone/package.json +9 -9
  101. package/.next/standalone/server.js +1 -1
  102. package/bin/failproofai.mjs +93 -26
  103. package/dist/cli.mjs +791 -588
  104. package/dist/worker.mjs +2 -2
  105. package/package.json +9 -9
  106. package/src/audit/cli.ts +12 -0
  107. package/src/audit/index.ts +33 -2
  108. package/src/hooks/configure-wizard.ts +112 -18
  109. package/src/hooks/fp-reset.ts +1 -1
  110. package/src/hooks/handler.ts +13 -1
  111. package/src/hooks/manager.ts +19 -1
  112. package/src/hooks/onboarding-attempt.ts +4 -4
  113. package/src/hooks/pack-cli.ts +162 -21
  114. package/src/hooks/pack-store.ts +21 -8
  115. package/src/hooks/read-stdin.ts +78 -8
  116. /package/.next/standalone/.next/static/{59jsH11LoyXu9UBoHvgGM → mAYN9BOxWVFREnVp3yCHp}/_buildManifest.js +0 -0
  117. /package/.next/standalone/.next/static/{59jsH11LoyXu9UBoHvgGM → mAYN9BOxWVFREnVp3yCHp}/_clientMiddlewareManifest.js +0 -0
  118. /package/.next/standalone/.next/static/{59jsH11LoyXu9UBoHvgGM → mAYN9BOxWVFREnVp3yCHp}/_ssgManifest.js +0 -0
@@ -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":"1.0.2-beta.5"},"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"],"instrumentationClientInject":[],"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","enablePrerenderSourceMaps":true,"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":true,"coldCacheBadge":false,"devValidationWorker":true,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"dynamicOnHover":false,"useOffline":false,"varyParams":true,"optimisticRouting":true,"instrumentationClientRouterTransitionEvents":false,"prefetchInlining":{"maxSize":2048,"maxBundleSize":10240},"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptOperationCache":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"devMemoryThresholdRestart":true,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"requestInsights":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"useTypeScriptCli":true,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":true,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"serverComponentsHmrCancellation":false,"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":true,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","turbopackMemoryEvictionMode":"auto","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"],"useCacheTimeout":54,"instantInsights":{"validationLevel":"warning"},"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"},"repoRoot":"/home/runner/work/failproofai/failproofai","distDirRoot":".next"}
12
+ const nextConfig = {"env":{"NEXT_PUBLIC_APP_VERSION":"1.0.2-beta.6"},"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"],"instrumentationClientInject":[],"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","enablePrerenderSourceMaps":true,"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":true,"coldCacheBadge":false,"devValidationWorker":true,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"dynamicOnHover":false,"useOffline":false,"varyParams":true,"optimisticRouting":true,"instrumentationClientRouterTransitionEvents":false,"prefetchInlining":{"maxSize":2048,"maxBundleSize":10240},"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptOperationCache":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"devMemoryThresholdRestart":true,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"requestInsights":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"useTypeScriptCli":true,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":true,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"serverComponentsHmrCancellation":false,"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":true,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","turbopackMemoryEvictionMode":"auto","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"],"useCacheTimeout":54,"instantInsights":{"validationLevel":"warning"},"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"},"repoRoot":"/home/runner/work/failproofai/failproofai","distDirRoot":".next"}
13
13
 
14
14
  process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
15
15
 
@@ -725,10 +725,10 @@ OPTIONS
725
725
  failproofai pack — install policy packs published as GitHub releases
726
726
 
727
727
  Usage:
728
- failproofai pack add core the Failproof AI policies
729
- failproofai pack add core --policy <a,b> just these
730
- failproofai pack add core --category <x,y> whole categories
731
- failproofai pack add core --all everything in it
728
+ failproofai policies add FailproofAI/policies the Failproof AI policies
729
+ failproofai policies add FailproofAI/policies --policy <a,b> just these
730
+ failproofai policies add FailproofAI/policies --category <x,y> whole categories
731
+ failproofai policies add FailproofAI/policies --all everything in it
732
732
  failproofai pack list packs installed here
733
733
  failproofai pack list <source> what a pack out there contains
734
734
  failproofai pack add <source> [--policy <a,b>] [--category <x,y>] [--all]
@@ -739,7 +739,7 @@ A pack is one entry artifact plus a manifest, verified against the release's
739
739
  SHA256SUMS at install time. The digest is recorded, and re-verified before every
740
740
  import — so a pack cannot change under this machine after you installed it.
741
741
 
742
- <source> is core for the Failproof AI policies, or any of these:
742
+ <source> is any GitHub repo publishing a pack ours included:
743
743
  acme/support-agent newest release, pinned to its exact tag
744
744
  acme/support-agent@v2.1.0 that release
745
745
  github:acme/support-agent@v2.1.0 same, explicit
@@ -761,7 +761,7 @@ rest back on.
761
761
 
762
762
  Examples:
763
763
  failproofai pack add FailproofAI/policies
764
- failproofai pack add core --category sanitize,git
764
+ failproofai policies add FailproofAI/policies --category sanitize,git
765
765
  failproofai pack add github:acme/support-agent@v2.1.0 --only block-refunds
766
766
  failproofai pack remove acme/support-agent
767
767
 
@@ -1371,7 +1371,7 @@ USAGE
1371
1371
  failproofai policies add Pick from what is installed here
1372
1372
  failproofai policies add <name> Turn one policy on
1373
1373
  failproofai policies add <owner>/<repo> Install someone's pack
1374
- failproofai policies add core Our pack, fetched like any other
1374
+ failproofai policies add FailproofAI/policies Our pack, fetched like any other
1375
1375
  failproofai policies remove <name> Turn one policy off
1376
1376
  failproofai policies remove <pack-id> Uninstall a pack
1377
1377
  failproofai policies show <owner>/<repo> What a pack contains, before you take it
@@ -1404,7 +1404,7 @@ EXAMPLES
1404
1404
  failproofai policies add
1405
1405
  failproofai policies add block-sudo
1406
1406
  failproofai policies add sanitize-api-keys --scope project
1407
- failproofai policies add core --category sanitize,git
1407
+ failproofai policies add FailproofAI/policies --category sanitize,git
1408
1408
  failproofai policies add acme/deploy-guard --policy block-prod-deploy
1409
1409
  failproofai policies show acme/deploy-guard
1410
1410
  failproofai policies remove block-sudo
@@ -1424,18 +1424,41 @@ keep enforcing. FAILPROOFAI_PACK_BASE_URL points it all at a mirror.
1424
1424
  // without a slash that is still a source — it is the short spelling of our
1425
1425
  // own pack, and is checked by the pack lane itself rather than duplicated
1426
1426
  // here.
1427
- const firstPositional = rest.find((a) => !a.startsWith("-"));
1427
+ // The first positional that is NOT some flag's value.
1428
+ //
1429
+ // A plain `rest.find(a => !a.startsWith("-"))` reads the first VALUE it
1430
+ // meets instead: `policies add --cli claude codex acme/x` picked "claude",
1431
+ // decided that was not a source because it has no slash, and sent the whole
1432
+ // command down the policy lane — where it died on "Unknown flag: --policy".
1433
+ // The same shape works, and misroutes, for --scope and --custom.
1434
+ //
1435
+ // `--cli` takes SEVERAL values, bounded the way pack-cli.ts bounds them: a
1436
+ // pack source always carries a slash and an agent name never does, which
1437
+ // separates the list from what follows it exactly.
1438
+ const VALUE_TAKING = new Set(["--scope", "--policy", "--category", "--only", "--custom", "-c"]);
1439
+ const skip = new Set();
1440
+ for (let i = 0; i < rest.length; i += 1) {
1441
+ if (VALUE_TAKING.has(rest[i])) skip.add(i + 1);
1442
+ if (rest[i] !== "--cli") continue;
1443
+ for (let j = i + 1; j < rest.length && !rest[j].startsWith("-") && !rest[j].includes("/"); j += 1) {
1444
+ skip.add(j);
1445
+ }
1446
+ }
1447
+ const firstPositional = rest.find((a, i) => !a.startsWith("-") && !skip.has(i));
1428
1448
  let looksLikeSource =
1429
1449
  !!firstPositional &&
1430
1450
  (firstPositional.includes("/") || firstPositional.startsWith("github:"));
1431
1451
  if (!looksLikeSource && firstPositional) {
1432
- // `core` is the one sourcey word with no slash in it. Read the alias set
1433
- // from the layer that OWNS it rather than restating it here, where the
1434
- // copy would drift the first time an alias is added that exact drift
1435
- // already shipped once, when the dashboard could not resolve a name the
1436
- // CLI could.
1437
- const { CORE_ALIASES } = await import("../src/hooks/pack-store");
1438
- looksLikeSource = CORE_ALIASES.has(firstPositional.toLowerCase());
1452
+ // A retired spelling of our own pack `core` and friends is still
1453
+ // routed to the pack lane, which is the only layer that can say what to
1454
+ // type instead. Sent anywhere else it reads as an unknown POLICY name and
1455
+ // the reply lists 38 names, none of which is the answer.
1456
+ //
1457
+ // Read from the layer that owns the set rather than restated here, where
1458
+ // the copy would drift. That exact drift already shipped once, when the
1459
+ // dashboard could not resolve a name the CLI could.
1460
+ const { RETIRED_CORE_ALIASES } = await import("../src/hooks/pack-store");
1461
+ looksLikeSource = RETIRED_CORE_ALIASES.has(firstPositional.toLowerCase());
1439
1462
  }
1440
1463
 
1441
1464
  if (action === "show" || looksLikeSource) {
@@ -1665,8 +1688,8 @@ EXAMPLES
1665
1688
  failproofai policies --uninstall --cli pi
1666
1689
  failproofai policies -u
1667
1690
  failproofai policies --uninstall --custom
1668
- failproofai pack add core
1669
- failproofai pack add core --category git,database
1691
+ failproofai policies add FailproofAI/policies
1692
+ failproofai policies add FailproofAI/policies --category git,database
1670
1693
  failproofai pack list acme/support-agent
1671
1694
  failproofai pack build ./my-policies.mjs --id acme/support --version 1.0.0
1672
1695
  `.trimStart());
@@ -1892,19 +1915,38 @@ EXAMPLES
1892
1915
  if (args[0] === "config") {
1893
1916
  if (args.includes("--help") || args.includes("-h")) {
1894
1917
  console.log(`
1895
- failproofai config — interactive setup
1918
+ failproofai config — set this machine up
1896
1919
 
1897
1920
  USAGE
1898
- failproofai config Guided setup: choose scope, agents, and policies
1921
+ failproofai config Guided setup
1899
1922
  failproofai configure Alias for config
1900
1923
  failproofai setup Alias for config
1901
1924
 
1902
1925
  WHAT IT DOES
1903
- Walks you through 4 quick steps and writes everything for you:
1904
- 1. Where — global (all projects) or just this project
1905
- 2. Harnesses which agent CLIs to protect (Claude, Codex, ...)
1906
- 3. Policies — presets (combine any), Everything, or a custom pick
1907
- 4. Review — confirms the exact files it will change, then applies
1926
+ Installs the failproofaid service (needs root once), wires hooks into every
1927
+ agent CLI it supports, and optionally connects this machine to Cloud. It
1928
+ chooses NO policies take some with 'failproofai policies add <owner>/<repo>'.
1929
+
1930
+ WITH NO TERMINAL (CI, containers, an agent driving it)
1931
+ It just runs. There is nothing to confirm when nobody is watching, so it
1932
+ applies rather than asking — no flag needed.
1933
+
1934
+ failproofai config set up, stay local
1935
+ failproofai config --token <key> set up and connect to Cloud
1936
+ --url <url> somewhere other than app.befailproof.ai
1937
+ --machine-id <id> defaults to a stable per-machine key
1938
+ --machine-label <name> defaults to this host's name
1939
+ --no-transcripts decisions only, no session transcripts
1940
+
1941
+ The key can come from FAILPROOFAI_CLOUD_TOKEN instead of the command line,
1942
+ and the url from FAILPROOFAI_CLOUD_URL — the same variable the daemon reads.
1943
+ Prefer the environment: an argument is readable from 'ps' by every user on
1944
+ the box, and lands in shell history and CI logs.
1945
+
1946
+ Exit 1 if anything it was asked to do did not happen — including a key the
1947
+ server refused, and a machine that could not reach root. 'sudo' is never
1948
+ prompted for here; it either works without a password or you are told the
1949
+ exact commands to run.
1908
1950
 
1909
1951
  FAILPROOF CLOUD
1910
1952
  failproofai config --connect <url> --token <key> [--machine-id <id>]
@@ -2093,8 +2135,33 @@ PAUSING ENFORCEMENT (one session, always time-boxed)
2093
2135
  return;
2094
2136
  }
2095
2137
 
2138
+ // Headless setup. `--token` IS the request to connect — there is no other
2139
+ // reason to pass a key — so there is no separate --connect to remember, and
2140
+ // the URL keeps the default the wizard already infers rather than being a
2141
+ // question the flag path alone asks.
2142
+ //
2143
+ // The key is taken from the environment when the flag is absent, because a
2144
+ // secret on argv is readable from `ps` by every user on the box and lands
2145
+ // in shell history and CI logs. FAILPROOFAI_CLOUD_TOKEN is the name the
2146
+ // Rust daemon already reads, so this unifies rather than invents.
2147
+ const valueFor = (flag) => {
2148
+ const i = args.indexOf(flag);
2149
+ if (i < 0) return undefined;
2150
+ const v = args[i + 1];
2151
+ if (!v || v.startsWith("-")) throw new CliError(`Missing value after ${flag}.`);
2152
+ return v;
2153
+ };
2096
2154
  const { runConfigureWizard } = await import("../src/hooks/configure-wizard");
2097
- const result = await runConfigureWizard();
2155
+ const result = await runConfigureWizard(
2156
+ {},
2157
+ {
2158
+ token: valueFor("--token") ?? process.env.FAILPROOFAI_CLOUD_TOKEN,
2159
+ url: valueFor("--url") ?? process.env.FAILPROOFAI_CLOUD_URL,
2160
+ machineId: valueFor("--machine-id"),
2161
+ machineLabel: valueFor("--machine-label"),
2162
+ noTranscripts: args.includes("--no-transcripts"),
2163
+ },
2164
+ );
2098
2165
  await track("cli_configure_invoked", {
2099
2166
  applied: result.applied,
2100
2167
  // `target` and `scopes`, not `scope`: the wizard rework replaced that