failproofai 1.0.10-beta.1 → 1.0.10
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 +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +6 -6
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- 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 +14 -14
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +13 -13
- 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/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 +14 -14
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +14 -14
- 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/[root-of-the-server]__0o07qi9._.js +1 -1
- package/.next/standalone/.next/server/chunks/_0tovk6q._.js +1 -1
- package/.next/standalone/.next/server/chunks/_0trp3yc._.js +1 -1
- package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__04usis8._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__056wjo4._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0n0xg95._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0a2-9ht._.js → [root-of-the-server]__0oqrl71._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0rwtwpm._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11mayhe._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__15578wp._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1m_svbe._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1pprgri._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1q4p5b8._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_042cgl1._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_08x1r5t._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0bqoto4._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_1n-mym7._.js → _0yq5_3a._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0krq5f0._.js → _16pa9ht._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/_1zopuov._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_policies_page_actions_1sp2-yo.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/app_actions_get-scheduled-audit_ts_0ei9sni._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_settings_02tf1h4._.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/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +23 -23
- package/.next/standalone/.next/static/chunks/{3q8vesnwk_r0i.js → 03h3b-uomi7_d.js} +1 -1
- package/.next/standalone/.next/static/chunks/078dofaxvjgpd.js +1 -0
- package/.next/standalone/.next/static/chunks/1fqukzzowjflt.js +1 -0
- package/.next/standalone/.next/static/chunks/1lyg_puttohbc.js +1 -0
- package/.next/standalone/.next/static/chunks/{3ztf2h_fv6_t9.js → 2hg_bp8z_vm2g.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0s4cko_weh6pi.js → 2j92xul6y24_v.js} +1 -1
- package/.next/standalone/.next/static/chunks/{1-k37ijadiv9h.js → 2kj826h1w9r47.js} +1 -1
- package/.next/standalone/.next/static/chunks/{3vk6jdkxvb7yk.js → 3mjfvng11xnoo.js} +1 -1
- package/.next/standalone/.next/static/chunks/{2cvvec76j9bwq.js → 3nkc2jlgyygda.js} +1 -1
- package/.next/standalone/.next/static/chunks/{3z7mx6me_j7d3.js → 3ob2161ap37ul.js} +1 -1
- package/.next/standalone/.next/static/chunks/{18reoqya39rov.js → 3u1s8dsqiean5.js} +1 -1
- package/.next/standalone/hermes-plugin/README.md +10 -5
- package/.next/standalone/hermes-plugin/__init__.py +77 -26
- package/.next/standalone/hermes-plugin/plugin.yaml +1 -1
- package/.next/standalone/package.json +5 -5
- package/.next/standalone/server.js +1 -1
- package/dist/cli.mjs +6 -6
- package/dist/worker.mjs +1 -1
- package/hermes-plugin/README.md +10 -5
- package/hermes-plugin/__init__.py +77 -26
- package/hermes-plugin/plugin.yaml +1 -1
- package/package.json +5 -5
- package/.next/standalone/.next/static/chunks/0yclxmfppc_8e.js +0 -1
- package/.next/standalone/.next/static/chunks/2o9-3ff26v4yd.js +0 -1
- package/.next/standalone/.next/static/chunks/3tj1zi4xv-bll.js +0 -1
- /package/.next/standalone/.next/static/{OJTzlkhxVSWnwhlF2Q7m3 → ECs8__hcNabYV58WfDh-3}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{OJTzlkhxVSWnwhlF2Q7m3 → ECs8__hcNabYV58WfDh-3}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{OJTzlkhxVSWnwhlF2Q7m3 → ECs8__hcNabYV58WfDh-3}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[35874,a=>{"use strict";var b=a.i(36359),c=a.i(36119),d=a.i(41289),e=a.i(37936),f=a.i(2157),g=a.i(50227),h=a.i(5246),i=a.i(8674);let j=new Set(["localhost","127.0.0.1","::1","[::1]","0:0:0:0:0:0:0:1"]);function k(a){let b=a.trim().toLowerCase();return!!b&&(!!j.has(b)||/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(b))}var l=a.i(87481),m=a.i(55113),n=a.i(13095);let o="this request did not come from the dashboard in your browser, so nothing was written.",p="env-key-stand-in";async function q(){var a,b;let c;try{c=await (0,h.headers)()}catch{return o}let d=k((a=void 0,b=process.env.FAILPROOFAI_DASHBOARD_HOST,(a??b??"").trim()||"127.0.0.1")),e=c.get("host");if(d&&(!e||!k(function(a){let b=a.trim();if(b.startsWith("[")){let a=b.indexOf("]");return -1===a?b:b.slice(0,a+1)}let c=b.indexOf(":");return -1===c?b:b.slice(0,c)}(e))))return o;let f=c.get("origin");if(!f)return d?null:o;let g=null;try{g=new URL(f).host.toLowerCase()}catch{g=null}return g&&g===(e??"").toLowerCase()?null:o}function r(a){if(!a)return null;let b=(0,l.validateBaseUrl)(a);if(!b.ok)return null;try{let a=new URL(b.value).origin;return"null"===a?null:a}catch{return null}}function s(a){let b=(0,g.dirname)(a);try{let a=511&(0,f.statSync)(b).mode;(18&a)!=0&&(0,f.chmodSync)(b,-19&a)}catch{}}async function t(a){let b=await q();if(b)return{ok:!1,problem:b};let c=a.provider.trim();if(!l.JEV_PROVIDER_KINDS.includes(c))return{ok:!1,problem:`provider must be one of ${l.JEV_PROVIDER_KINDS.join(", ")}`};if(c===l.JEV_CLOUD_PROVIDER)return{ok:!1,problem:"FailproofAI Cloud's Jev is turned on by connecting this machine (failproofai config --token <key>), and switched with the mode control — not saved from this form."};let e=(0,l.parseJevMode)(a.mode);if(null===e)return{ok:!1,problem:'mode must be "off", "observe" or "enforce".'};let f=a.baseUrl.trim(),g=f?(0,l.validateBaseUrl)(f):null;if(g&&!g.ok)return{ok:!1,problem:g.problem};let h=(0,l.readJevConfigFileForUpdate)(),j=h?.raw??null,k=null!==j&&j.provider===c;if(g?.ok){let a=(0,l.validateBaseUrl)(j?.baseUrl),b=k&&a.ok&&(0,l.baseUrlWithoutQuery)(a.value).url===(0,l.baseUrlWithoutQuery)(g.value).url,d=b?null:(0,l.providerHostConflict)(c,g.value);if(d)return{ok:!1,problem:`${d}.`};let e=b?null:(0,l.endpointGivenAsBase)(g.value);if(e)return{ok:!1,problem:`that url is an endpoint, not an api base — its path ends in ${e.suffix}. ${(0,m.endpointAsBaseReason)(g.value)} Use ${(0,l.baseUrlWithoutQuery)(e.base).url} instead.`}}let n=k?{...j}:{};!k&&j&&(void 0!==j.mode&&(n.mode=j.mode),void 0!==j.timeoutMs&&(n.timeoutMs=j.timeoutMs)),n.provider=c,f?n.baseUrl=function(a,b){if("string"!=typeof b||""===b)return a;let c=(0,l.validateBaseUrl)(b);if(!c.ok)return a;let d=(0,l.baseUrlWithoutQuery)(c.value);if(!d.hadQuery)return a;let e=(0,l.validateBaseUrl)(a);return e.ok&&e.value===d.url?c.value:a}(f,j?.baseUrl):delete n.baseUrl;let o=a.accountId.trim();"cloudflare"===c&&o?n.accountId=o:delete n.accountId,n.mode=e;let t=k&&h?.tooOpen!==!0&&r(f)===r("string"==typeof j?.baseUrl?j.baseUrl:""),u="string"==typeof j?.apiKey&&""!==j.apiKey,v=null!==j&&!u&&(0,l.validateJevConfig)(j,p).ok,w=a.token.trim();if(w){let a=(0,l.validateApiKey)(w);if(a)return{ok:!1,problem:a,needsToken:!0};n.apiKey=w}else if(!t&&!v)return{ok:!1,needsToken:!0,problem:u?k&&h?.tooOpen===!0?`${(0,l.jevConfigPath)()} was open to other users, so the endpoint it names may not be one you chose and its stored token is not reused. check the endpoint above, then enter the token for it.`:k?"that endpoint is not the one the stored token was given for, so it is not sent there. enter the token for it.":"enter the token for this provider.":"enter the token for this provider."};let x=void 0===n.apiKey,y=(0,l.validateJevConfig)(n,x?p:null);if(!y.ok)return{ok:!1,problem:y.problem,...!0===y.missingKey?{needsToken:!0}:{}};let z=(0,l.jevConfigPath)();try{(0,i.writeJsonAtomically)(z,n,{mode:384,dirMode:448})}catch(a){return{ok:!1,problem:`could not write ${z} (${a.code??"error"}).`}}return s(z),{ok:!0,view:await (0,d.getJevSettingsAction)()}}async function u(a){let b=await q();if(b)return{ok:!1,problem:b};let c=(0,l.parseJevMode)(a);if(null===c)return{ok:!1,problem:'mode must be "off", "observe" or "enforce".'};let e=(0,l.readJevConfigFileForUpdate)();if(null===e)return{ok:!1,problem:`there is no readable ${(0,l.jevConfigPath)()} to switch. connect this machine (failproofai config --token <key>) or set up your own endpoint below.`};if(e.tooOpen)return{ok:!1,problem:`${(0,l.jevConfigPath)()} is open to other users, so Jev is already off and the endpoint it names is not trusted. fix its permissions first (chmod 600, and chmod 700 on its directory).`};let f={...e.raw,mode:c},g=f.provider===l.JEV_CLOUD_PROVIDER,h=(0,l.validateJevConfig)(f,g||"string"==typeof f.apiKey?null:p,g?{url:function(a){if("string"!=typeof a)return"";try{return new URL(a).origin}catch{return""}}(f.baseUrl),key:p}:null);if(!h.ok)return{ok:!1,problem:h.problem};let j=(0,l.jevConfigPath)();try{(0,i.writeJsonAtomically)(j,f,{mode:384,dirMode:448})}catch(a){return{ok:!1,problem:`could not write ${j} (${a.code??"error"}).`}}return s(j),{ok:!0,view:await (0,d.getJevSettingsAction)()}}async function v(){let a=await q();if(a)return{ok:!1,problem:a};let b=(0,l.jevConfigPath)();if((0,f.existsSync)(b))try{(0,f.unlinkSync)(b)}catch(a){return{ok:!1,problem:`could not remove ${b} (${a.code??"error"}).`}}return{ok:!0,view:await (0,d.getJevSettingsAction)()}}(0,n.ensureServerEntryExports)([t,u,v]),(0,e.registerServerReference)(t,"40ab4f061fadc1c208771f481c6aa066694ca5c508",null),(0,e.registerServerReference)(u,"4055d4ce76d28e7e3c730848d81f3b85af9328bb26",null),(0,e.registerServerReference)(v,"00d2f7e8ab18b31805268064ea3bca623cbe30a982",null);var w=a.i(21572),x=a.i(81243);async function y(a){if(a&&!await (0,x.whoAmI)()){let a=(0,x.readAuth)();return{ok:!1,reason:a&&1e3*a.refresh_expires_at>Date.now()?"unreachable":"signed-out"}}return{ok:!0,auto:(0,w.updateConfig)({audit:a?{auto:!0,reportsConsentedAt:Date.now()}:{auto:!1}}).audit.auto}}async function z(a){return(0,w.updateConfig)({audit:{intervalDays:a}}),{intervalDays:(0,w.readConfig)().audit.intervalDays}}(0,n.ensureServerEntryExports)([y,z]),(0,e.registerServerReference)(y,"40a4ae25d47a986e9c1468503e4a906972a1b971bd",null),(0,e.registerServerReference)(z,"40c5990e94d058100d3aaba5f3a52aaca6e1ead947",null),a.s([],40320),a.i(40320),a.s(["007cb04a000f802db12d1e2a647f435278fccef0ea",()=>c.getScheduledAuditAction,"00854ec9e90b56699593285b0ed4967ff5a920a8f9",()=>d.getJevSettingsAction,"00c7cb2b7a83c0805daa426cd9ea5ca09d11849939",()=>b.getTelemetryConfig,"00d2f7e8ab18b31805268064ea3bca623cbe30a982",0,v,"4055d4ce76d28e7e3c730848d81f3b85af9328bb26",0,u,"40a4ae25d47a986e9c1468503e4a906972a1b971bd",0,y,"40ab4f061fadc1c208771f481c6aa066694ca5c508",0,t,"40c5990e94d058100d3aaba5f3a52aaca6e1ead947",0,z],35874)},8018,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(a.r(717));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},81740,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"cookies",{enumerable:!0,get:function(){return n}});let d=a.r(14896),e=a.r(63681),f=a.r(56704),g=a.r(32319),h=a.r(60384),i=a.r(60312),j=a.r(13091),k=a.r(8018),l=a.r(86309),m=a.r(50640);function n(){let a="cookies",b=f.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b){if(c&&!(0,l.isRequestApiAllowedInCurrentPhase)(c))throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`after()\` while rendering. This is not supported. If you need this data inside an \`after()\` callback, use \`cookies()\` outside of the callback. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E1381",enumerable:!1,configurable:!0});if(b.forceStatic)return p(d.RequestCookiesAdapter.seal(new e.RequestCookies(new Headers({}))));if(b.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E849",enumerable:!1,configurable:!0});if(c)switch(c.type){case"cache":let f=Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E831",enumerable:!1,configurable:!0});throw Error.captureStackTrace(f,n),(0,j.applyOwnerStack)(f),b.invalidDynamicUsageError??=f,f;case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E846",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1123",enumerable:!1,configurable:!0});case"prerender":var k=b,q=c;let g=o.get(q);if(g)return g;let r=(0,j.makeRuntimeHangingPromise)(q.renderSignal,k.route,"`cookies()`",q);return o.set(q,r),r;case"prerender-client":case"validation-client":let s="`cookies`";throw Object.defineProperty(new m.InvariantError(`${s} must not be used within a Client Component. Next.js should be preventing ${s} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1037",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,h.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,h.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":{let{stagedRendering:a}=c;if(a)return a.delayUntilStage(j.RENDER_STAGES_BY_DATA_KIND.sessionData,"cookies",c.cookies);return p(c.cookies)}case"private-cache":return p(c.cookies);case"request":let t;if((0,h.trackDynamicDataInDynamicRender)(c),t=(0,d.areCookiesMutableInCurrentPhase)(c)?c.userspaceMutableCookies:c.cookies,!c.asyncApiPromises)return p(t);if(t===c.mutableCookies)return c.asyncApiPromises.mutableCookies;return c.asyncApiPromises.cookies}}(0,g.throwForMissingRequestStore)(a)}let o=new WeakMap;function p(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),c}(0,k.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`cookies()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E830",enumerable:!1,configurable:!0})})},29927,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HeadersAdapter:function(){return h},ReadonlyHeadersError:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(51409);class g extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1176",enumerable:!1,configurable:!0})}static callable(){throw new g}}class h extends Headers{constructor(a){super(),this.headers=new Proxy(a,{get(b,c,d){if("symbol"==typeof c)return f.ReflectAdapter.get(b,c,d);let e=c.toLowerCase(),g=Object.keys(a).find(a=>a.toLowerCase()===e);if(void 0!==g)return f.ReflectAdapter.get(b,g,d)},set(b,c,d,e){if("symbol"==typeof c)return f.ReflectAdapter.set(b,c,d,e);let g=c.toLowerCase(),h=Object.keys(a).find(a=>a.toLowerCase()===g);return f.ReflectAdapter.set(b,h??c,d,e)},has(b,c){if("symbol"==typeof c)return f.ReflectAdapter.has(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0!==e&&f.ReflectAdapter.has(b,e)},deleteProperty(b,c){if("symbol"==typeof c)return f.ReflectAdapter.deleteProperty(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0===e||f.ReflectAdapter.deleteProperty(b,e)}})}static seal(a,b){let c,d=b&&b.size>0?a=>b.has(a.toLowerCase()):null,e=new Proxy(a,{get(a,b,d){switch(b){case"append":case"delete":case"set":return g.callable;case Symbol.iterator:return c[Symbol.iterator];case"get":case"has":case"getSetCookie":case"keys":case"values":case"entries":case"forEach":return c[b];default:return f.ReflectAdapter.get(a,b,d)}}});return c=d?function(a,b,c){function*d(){for(let b of a.entries())c(b[0])||(yield b)}return{entries:d,[Symbol.iterator]:d,get:b=>c(b)?null:a.get(b),has:b=>!c(b)&&a.has(b),getSetCookie:()=>c("set-cookie")?[]:a.getSetCookie(),*keys(){for(let b of a.keys())c(b)||(yield b)},*values(){for(let[,a]of d())yield a},forEach(a,c){for(let[e,f]of d())a.call(c,f,e,b)}}}(a,e,d):{get:a.get.bind(a),has:a.has.bind(a),getSetCookie:a.getSetCookie.bind(a),keys:a.keys.bind(a),values:a.values.bind(a),entries:a.entries.bind(a),[Symbol.iterator]:a[Symbol.iterator].bind(a),forEach(b,c){for(let[d,f]of a.entries())b.call(c,f,d,e)}},e}static fresh(a){return new Proxy(a,{get:(a,b,c)=>f.ReflectAdapter.get(a,b,c)})}merge(a){return Array.isArray(a)?a.join(", "):a}static from(a){return a instanceof Headers?a:new h(a)}append(a,b){let c=this.headers[a];"string"==typeof c?this.headers[a]=[c,b]:Array.isArray(c)?c.push(b):this.headers[a]=b}delete(a){delete this.headers[a]}get(a){let b=this.headers[a];return void 0!==b?this.merge(b):null}has(a){return void 0!==this.headers[a]}set(a,b){this.headers[a]=b}forEach(a,b){for(let[c,d]of this.entries())a.call(b,d,c,this)}*entries(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase(),c=this.get(b);yield[b,c]}}*keys(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase();yield b}}*values(){for(let a of Object.keys(this.headers)){let b=this.get(a);yield b}}[Symbol.iterator](){return this.entries()}}},35754,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"headers",{enumerable:!0,get:function(){return m}});let d=a.r(29927),e=a.r(56704),f=a.r(32319),g=a.r(60384),h=a.r(60312),i=a.r(13091),j=a.r(8018),k=a.r(86309),l=a.r(50640);function m(){let a="headers",b=e.workAsyncStorage.getStore(),c=f.workUnitAsyncStorage.getStore();if(b){if(c&&!(0,k.isRequestApiAllowedInCurrentPhase)(c))throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`after()\` while rendering. This is not supported. If you need this data inside an \`after()\` callback, use \`headers()\` outside of the callback. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E1378",enumerable:!1,configurable:!0});if(b.forceStatic)return o(d.HeadersAdapter.seal(new Headers({})));if(c)switch(c.type){case"cache":{let a=Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E833",enumerable:!1,configurable:!0});throw Error.captureStackTrace(a,m),(0,i.applyOwnerStack)(a),b.invalidDynamicUsageError??=a,a}case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E838",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1134",enumerable:!1,configurable:!0})}if(b.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`headers()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E828",enumerable:!1,configurable:!0});if(c)switch(c.type){case"prerender":var j=b,p=c;let e=n.get(p);if(e)return e;let f=(0,i.makeRuntimeHangingPromise)(p.renderSignal,j.route,"`headers()`",p);return n.set(p,f),f;case"prerender-client":case"validation-client":let q="`headers`";throw Object.defineProperty(new l.InvariantError(`${q} must not be used within a client component. Next.js should be preventing ${q} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1017",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,g.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,g.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":{let{stagedRendering:a}=c;if(a)return a.delayUntilStage(i.RENDER_STAGES_BY_DATA_KIND.sessionData,"headers",c.headers);return o(c.headers)}case"private-cache":return o(c.headers);case"request":if((0,g.trackDynamicDataInDynamicRender)(c),c.asyncApiPromises)return c.asyncApiPromises.headers;return o(c.headers)}}(0,f.throwForMissingRequestStore)(a)}let n=new WeakMap;function o(a){let b=n.get(a);if(b)return b;let c=Promise.resolve(a);return n.set(a,c),c}(0,j.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`headers()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E836",enumerable:!1,configurable:!0})})},51125,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"draftMode",{enumerable:!0,get:function(){return l}});let d=a.r(32319),e=a.r(56704),f=a.r(60384),g=a.r(8018),h=a.r(60312),i=a.r(96556),j=a.r(50640);a.r(51409);let k=a.r(13091);function l(){let a="draftMode",b=e.workAsyncStorage.getStore(),c=d.workUnitAsyncStorage.getStore();switch((!b||!c)&&(0,d.throwForMissingRequestStore)(a),c.type){case"prerender-runtime":{let{stagedRendering:a}=c;if(a)return a.delayUntilStage(k.RENDER_STAGES_BY_DATA_KIND.sessionData,"draftMode",new p(c.draftMode));return m(c.draftMode,b)}case"request":return m(c.draftMode,b);case"cache":case"private-cache":case"unstable-cache":let f=(0,d.getDraftModeProviderForCacheScope)(b,c);if(f)return m(f,b);case"prerender":case"prerender-ppr":case"prerender-legacy":return m(null,b);case"prerender-client":case"validation-client":{let a="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${a} must not be used within a Client Component. Next.js should be preventing ${a} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0})}case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`${a}()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1132",enumerable:!1,configurable:!0});default:return c}}function m(a,b){let c=o.get(a??n);return c||Promise.resolve(new p(a))}let n={},o=new WeakMap;class p{constructor(a){this._provider=a}get isEnabled(){return null!==this._provider&&this._provider.isEnabled}enable(){q("draftMode().enable()",this.enable),null!==this._provider&&this._provider.enable()}disable(){q("draftMode().disable()",this.disable),null!==this._provider&&this._provider.disable()}}function q(a,b){let c=e.workAsyncStorage.getStore(),g=d.workUnitAsyncStorage.getStore();if(c){if((null==g?void 0:g.phase)==="after")throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside \`after()\`. The enabled status of \`draftMode()\` can be read inside \`after()\` but you cannot enable or disable \`draftMode()\`. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E845",enumerable:!1,configurable:!0});if(c.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${c.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(g)switch(g.type){case"cache":case"private-cache":{let d=Object.defineProperty(Error(`Route ${c.route} used "${a}" inside "use cache". The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E829",enumerable:!1,configurable:!0});throw Error.captureStackTrace(d,b),(0,k.applyOwnerStack)(d),c.invalidDynamicUsageError??=d,d}case"unstable-cache":throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside a function cached with \`unstable_cache()\`. The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E844",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":{let b=Object.defineProperty(Error(`Route ${c.route} used ${a} without first calling \`await connection()\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`),"__NEXT_ERROR_CODE",{value:"E126",enumerable:!1,configurable:!0});return(0,f.abortAndThrowOnSynchronousRequestDataAccess)(c.route,a,b,g)}case"prerender-client":case"validation-client":let d="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${d} must not be used within a Client Component. Next.js should be preventing ${d} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,f.postponeWithTracking)(c.route,a,g.dynamicTracking);case"prerender-legacy":g.revalidate=0;let e=Object.defineProperty(new i.DynamicServerError(`Route ${c.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.dynamicUsageDescription=a,c.dynamicUsageStack=e.stack,e;case"request":(0,f.trackDynamicDataInDynamicRender)(g);break;case"generate-static-params":throw Object.defineProperty(Error(`Route ${c.route} used \`${a}\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1121",enumerable:!1,configurable:!0})}}}(0,g.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`draftMode()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E835",enumerable:!1,configurable:!0})})},5246,(a,b,c)=>{b.exports.cookies=a.r(81740).cookies,b.exports.headers=a.r(35754).headers,b.exports.draftMode=a.r(51125).draftMode},86309,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={isRequestApiAllowedInCurrentPhase:function(){return k},throwForSearchParamsAccessInUseCache:function(){return j},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(60312),g=a.r(20635),h=a.r(24725);function i(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function j(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function k(a){switch(a.phase){case"action":case"render":return!0;case"after":{let a=g.actionAsyncStorage.getStore();if(a&&(a.isAppRoute||a.isAction))return!0;let b=h.afterTaskAsyncStorage.getStore();if(b)return"action"===b.rootTaskSpawnPhase;return!1}}}},63681,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={RequestCookies:function(){return f.RequestCookies},ResponseCookies:function(){return f.ResponseCookies},stringifyCookie:function(){return f.stringifyCookie}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(36226)},51409,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ReflectAdapter",{enumerable:!0,get:function(){return d}});class d{static get(a,b,c){let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}static set(a,b,c,d){return Reflect.set(a,b,c,d)}static has(a,b){return Reflect.has(a,b)}static deleteProperty(a,b){return Reflect.deleteProperty(a,b)}}},4712,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ActionDidNotRevalidate:function(){return f},ActionDidRevalidateDynamicOnly:function(){return h},ActionDidRevalidateStaticAndDynamic:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=0,g=1,h=2},14896,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63681),g=a.r(51409),h=a.r(56704),i=a.r(4712);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1180",enumerable:!1,configurable:!0})}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}static fresh(a){return new Proxy(a,{get:(a,b,c)=>g.ReflectAdapter.get(a,b,c)})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}}];
|
|
1
|
+
module.exports=[35874,a=>{"use strict";var b=a.i(36359),c=a.i(36119),d=a.i(41289),e=a.i(37936),f=a.i(2157),g=a.i(50227),h=a.i(5246),i=a.i(8674);let j=new Set(["localhost","127.0.0.1","::1","[::1]","0:0:0:0:0:0:0:1"]);function k(a){let b=a.trim().toLowerCase();return!!b&&(!!j.has(b)||/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(b))}var l=a.i(87481),m=a.i(55113),n=a.i(13095);let o="this request did not come from the dashboard in your browser, so nothing was written.",p="env-key-stand-in";async function q(){var a,b;let c;try{c=await (0,h.headers)()}catch{return o}let d=k((a=void 0,b=process.env.FAILPROOFAI_DASHBOARD_HOST,(a??b??"").trim()||"127.0.0.1")),e=c.get("host");if(d&&(!e||!k(function(a){let b=a.trim();if(b.startsWith("[")){let a=b.indexOf("]");return -1===a?b:b.slice(0,a+1)}let c=b.indexOf(":");return -1===c?b:b.slice(0,c)}(e))))return o;let f=c.get("origin");if(!f)return d?null:o;let g=null;try{g=new URL(f).host.toLowerCase()}catch{g=null}return g&&g===(e??"").toLowerCase()?null:o}function r(a){if(!a)return null;let b=(0,l.validateBaseUrl)(a);if(!b.ok)return null;try{let a=new URL(b.value).origin;return"null"===a?null:a}catch{return null}}function s(a){let b=(0,g.dirname)(a);try{let a=511&(0,f.statSync)(b).mode;(18&a)!=0&&(0,f.chmodSync)(b,-19&a)}catch{}}async function t(a){let b=await q();if(b)return{ok:!1,problem:b};let c=a.provider.trim();if(!l.JEV_PROVIDER_KINDS.includes(c))return{ok:!1,problem:`provider must be one of ${l.JEV_PROVIDER_KINDS.join(", ")}`};if(c===l.JEV_CLOUD_PROVIDER)return{ok:!1,problem:"FailproofAI Cloud's Jev is turned on by connecting this machine (failproofai config --token <key>), and switched with the mode control — not saved from this form."};let e=(0,l.parseJevMode)(a.mode);if(null===e)return{ok:!1,problem:'mode must be "off", "observe" or "enforce".'};let f=a.baseUrl.trim(),g=f?(0,l.validateBaseUrl)(f):null;if(g&&!g.ok)return{ok:!1,problem:g.problem};let h=(0,l.readJevConfigFileForUpdate)(),j=h?.raw??null,k=null!==j&&j.provider===c;if(g?.ok){let a=(0,l.validateBaseUrl)(j?.baseUrl),b=k&&a.ok&&(0,l.baseUrlWithoutQuery)(a.value).url===(0,l.baseUrlWithoutQuery)(g.value).url,d=b?null:(0,l.providerHostConflict)(c,g.value);if(d)return{ok:!1,problem:`${d}.`};let e=b?null:(0,l.endpointGivenAsBase)(g.value);if(e)return{ok:!1,problem:`that url is an endpoint, not an api base — its path ends in ${e.suffix}. ${(0,m.endpointAsBaseReason)(g.value)} Use ${(0,l.baseUrlWithoutQuery)(e.base).url} instead.`}}let n=k?{...j}:{};!k&&j&&(void 0!==j.mode&&(n.mode=j.mode),void 0!==j.timeoutMs&&(n.timeoutMs=j.timeoutMs)),n.provider=c,f?n.baseUrl=function(a,b){if("string"!=typeof b||""===b)return a;let c=(0,l.validateBaseUrl)(b);if(!c.ok)return a;let d=(0,l.baseUrlWithoutQuery)(c.value);if(!d.hadQuery)return a;let e=(0,l.validateBaseUrl)(a);return e.ok&&e.value===d.url?c.value:a}(f,j?.baseUrl):delete n.baseUrl;let o=a.accountId.trim();"cloudflare"===c&&o?n.accountId=o:delete n.accountId,n.mode=e;let t=k&&h?.tooOpen!==!0&&r(f)===r("string"==typeof j?.baseUrl?j.baseUrl:""),u="string"==typeof j?.apiKey&&""!==j.apiKey,v=null!==j&&!u&&(0,l.validateJevConfig)(j,p).ok,w=a.token.trim();if(w){let a=(0,l.validateApiKey)(w);if(a)return{ok:!1,problem:a,needsToken:!0};n.apiKey=w}else if(!t&&!v)return{ok:!1,needsToken:!0,problem:u?k&&h?.tooOpen===!0?`${(0,l.jevConfigPath)()} was open to other users, so the endpoint it names may not be one you chose and its stored token is not reused. check the endpoint above, then enter the token for it.`:k?"that endpoint is not the one the stored token was given for, so it is not sent there. enter the token for it.":"enter the token for this provider.":"enter the token for this provider."};let x=void 0===n.apiKey,y=(0,l.validateJevConfig)(n,x?p:null);if(!y.ok)return{ok:!1,problem:y.problem,...!0===y.missingKey?{needsToken:!0}:{}};let z=(0,l.jevConfigPath)();try{(0,i.writeJsonAtomically)(z,n,{mode:384,dirMode:448})}catch(a){return{ok:!1,problem:`could not write ${z} (${a.code??"error"}).`}}return s(z),{ok:!0,view:await (0,d.getJevSettingsAction)()}}async function u(a){let b=await q();if(b)return{ok:!1,problem:b};let c=(0,l.parseJevMode)(a);if(null===c)return{ok:!1,problem:'mode must be "off", "observe" or "enforce".'};let e=(0,l.readJevConfigFileForUpdate)();if(null===e)return{ok:!1,problem:`there is no readable ${(0,l.jevConfigPath)()} to switch. connect this machine (failproofai config --token <key>) or set up your own endpoint below.`};if(e.tooOpen)return{ok:!1,problem:`${(0,l.jevConfigPath)()} is open to other users, so Jev is already off and the endpoint it names is not trusted. fix its permissions first (chmod 600, and chmod 700 on its directory).`};let f={...e.raw,mode:c},g=f.provider===l.JEV_CLOUD_PROVIDER,h=(0,l.validateJevConfig)(f,g||"string"==typeof f.apiKey?null:p,g?{url:function(a){if("string"!=typeof a)return"";try{return new URL(a).origin}catch{return""}}(f.baseUrl),key:p}:null);if(!h.ok)return{ok:!1,problem:h.problem};let j=(0,l.jevConfigPath)();try{(0,i.writeJsonAtomically)(j,f,{mode:384,dirMode:448})}catch(a){return{ok:!1,problem:`could not write ${j} (${a.code??"error"}).`}}return s(j),{ok:!0,view:await (0,d.getJevSettingsAction)()}}async function v(){let a=await q();if(a)return{ok:!1,problem:a};let b=(0,l.jevConfigPath)();if((0,f.existsSync)(b))try{(0,f.unlinkSync)(b)}catch(a){return{ok:!1,problem:`could not remove ${b} (${a.code??"error"}).`}}return{ok:!0,view:await (0,d.getJevSettingsAction)()}}(0,n.ensureServerEntryExports)([t,u,v]),(0,e.registerServerReference)(t,"40c3674bfdb44a95095fda0a0268a03bf6f7b246fb",null),(0,e.registerServerReference)(u,"40bd7ee875eebd400ed297b4dbb64db1feed4356aa",null),(0,e.registerServerReference)(v,"00ad1de5b7a8b620e935e581a6d40c492ac90de5e0",null);var w=a.i(21572),x=a.i(81243);async function y(a){if(a&&!await (0,x.whoAmI)()){let a=(0,x.readAuth)();return{ok:!1,reason:a&&1e3*a.refresh_expires_at>Date.now()?"unreachable":"signed-out"}}return{ok:!0,auto:(0,w.updateConfig)({audit:a?{auto:!0,reportsConsentedAt:Date.now()}:{auto:!1}}).audit.auto}}async function z(a){return(0,w.updateConfig)({audit:{intervalDays:a}}),{intervalDays:(0,w.readConfig)().audit.intervalDays}}(0,n.ensureServerEntryExports)([y,z]),(0,e.registerServerReference)(y,"40040d53c0382847a4c73f07e40136516306c6ef76",null),(0,e.registerServerReference)(z,"40cdeb93745892bcc2de3532a7390760e09ac401a9",null),a.s([],40320),a.i(40320),a.s(["00265c36203c0a8354c803cb6be85bd71db9f72fff",()=>c.getScheduledAuditAction,"002b3cc50212764fbf57f8ead598d92ef778ab1cb4",()=>b.getTelemetryConfig,"00ad1de5b7a8b620e935e581a6d40c492ac90de5e0",0,v,"00d5f65b37d57994d102a4795b97639ca80427d9b6",()=>d.getJevSettingsAction,"40040d53c0382847a4c73f07e40136516306c6ef76",0,y,"40bd7ee875eebd400ed297b4dbb64db1feed4356aa",0,u,"40c3674bfdb44a95095fda0a0268a03bf6f7b246fb",0,t,"40cdeb93745892bcc2de3532a7390760e09ac401a9",0,z],35874)},8018,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(a.r(717));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},81740,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"cookies",{enumerable:!0,get:function(){return n}});let d=a.r(14896),e=a.r(63681),f=a.r(56704),g=a.r(32319),h=a.r(60384),i=a.r(60312),j=a.r(13091),k=a.r(8018),l=a.r(86309),m=a.r(50640);function n(){let a="cookies",b=f.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b){if(c&&!(0,l.isRequestApiAllowedInCurrentPhase)(c))throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`after()\` while rendering. This is not supported. If you need this data inside an \`after()\` callback, use \`cookies()\` outside of the callback. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E1381",enumerable:!1,configurable:!0});if(b.forceStatic)return p(d.RequestCookiesAdapter.seal(new e.RequestCookies(new Headers({}))));if(b.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E849",enumerable:!1,configurable:!0});if(c)switch(c.type){case"cache":let f=Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E831",enumerable:!1,configurable:!0});throw Error.captureStackTrace(f,n),(0,j.applyOwnerStack)(f),b.invalidDynamicUsageError??=f,f;case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E846",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1123",enumerable:!1,configurable:!0});case"prerender":var k=b,q=c;let g=o.get(q);if(g)return g;let r=(0,j.makeRuntimeHangingPromise)(q.renderSignal,k.route,"`cookies()`",q);return o.set(q,r),r;case"prerender-client":case"validation-client":let s="`cookies`";throw Object.defineProperty(new m.InvariantError(`${s} must not be used within a Client Component. Next.js should be preventing ${s} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1037",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,h.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,h.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":{let{stagedRendering:a}=c;if(a)return a.delayUntilStage(j.RENDER_STAGES_BY_DATA_KIND.sessionData,"cookies",c.cookies);return p(c.cookies)}case"private-cache":return p(c.cookies);case"request":let t;if((0,h.trackDynamicDataInDynamicRender)(c),t=(0,d.areCookiesMutableInCurrentPhase)(c)?c.userspaceMutableCookies:c.cookies,!c.asyncApiPromises)return p(t);if(t===c.mutableCookies)return c.asyncApiPromises.mutableCookies;return c.asyncApiPromises.cookies}}(0,g.throwForMissingRequestStore)(a)}let o=new WeakMap;function p(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),c}(0,k.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`cookies()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E830",enumerable:!1,configurable:!0})})},29927,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HeadersAdapter:function(){return h},ReadonlyHeadersError:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(51409);class g extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1176",enumerable:!1,configurable:!0})}static callable(){throw new g}}class h extends Headers{constructor(a){super(),this.headers=new Proxy(a,{get(b,c,d){if("symbol"==typeof c)return f.ReflectAdapter.get(b,c,d);let e=c.toLowerCase(),g=Object.keys(a).find(a=>a.toLowerCase()===e);if(void 0!==g)return f.ReflectAdapter.get(b,g,d)},set(b,c,d,e){if("symbol"==typeof c)return f.ReflectAdapter.set(b,c,d,e);let g=c.toLowerCase(),h=Object.keys(a).find(a=>a.toLowerCase()===g);return f.ReflectAdapter.set(b,h??c,d,e)},has(b,c){if("symbol"==typeof c)return f.ReflectAdapter.has(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0!==e&&f.ReflectAdapter.has(b,e)},deleteProperty(b,c){if("symbol"==typeof c)return f.ReflectAdapter.deleteProperty(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0===e||f.ReflectAdapter.deleteProperty(b,e)}})}static seal(a,b){let c,d=b&&b.size>0?a=>b.has(a.toLowerCase()):null,e=new Proxy(a,{get(a,b,d){switch(b){case"append":case"delete":case"set":return g.callable;case Symbol.iterator:return c[Symbol.iterator];case"get":case"has":case"getSetCookie":case"keys":case"values":case"entries":case"forEach":return c[b];default:return f.ReflectAdapter.get(a,b,d)}}});return c=d?function(a,b,c){function*d(){for(let b of a.entries())c(b[0])||(yield b)}return{entries:d,[Symbol.iterator]:d,get:b=>c(b)?null:a.get(b),has:b=>!c(b)&&a.has(b),getSetCookie:()=>c("set-cookie")?[]:a.getSetCookie(),*keys(){for(let b of a.keys())c(b)||(yield b)},*values(){for(let[,a]of d())yield a},forEach(a,c){for(let[e,f]of d())a.call(c,f,e,b)}}}(a,e,d):{get:a.get.bind(a),has:a.has.bind(a),getSetCookie:a.getSetCookie.bind(a),keys:a.keys.bind(a),values:a.values.bind(a),entries:a.entries.bind(a),[Symbol.iterator]:a[Symbol.iterator].bind(a),forEach(b,c){for(let[d,f]of a.entries())b.call(c,f,d,e)}},e}static fresh(a){return new Proxy(a,{get:(a,b,c)=>f.ReflectAdapter.get(a,b,c)})}merge(a){return Array.isArray(a)?a.join(", "):a}static from(a){return a instanceof Headers?a:new h(a)}append(a,b){let c=this.headers[a];"string"==typeof c?this.headers[a]=[c,b]:Array.isArray(c)?c.push(b):this.headers[a]=b}delete(a){delete this.headers[a]}get(a){let b=this.headers[a];return void 0!==b?this.merge(b):null}has(a){return void 0!==this.headers[a]}set(a,b){this.headers[a]=b}forEach(a,b){for(let[c,d]of this.entries())a.call(b,d,c,this)}*entries(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase(),c=this.get(b);yield[b,c]}}*keys(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase();yield b}}*values(){for(let a of Object.keys(this.headers)){let b=this.get(a);yield b}}[Symbol.iterator](){return this.entries()}}},35754,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"headers",{enumerable:!0,get:function(){return m}});let d=a.r(29927),e=a.r(56704),f=a.r(32319),g=a.r(60384),h=a.r(60312),i=a.r(13091),j=a.r(8018),k=a.r(86309),l=a.r(50640);function m(){let a="headers",b=e.workAsyncStorage.getStore(),c=f.workUnitAsyncStorage.getStore();if(b){if(c&&!(0,k.isRequestApiAllowedInCurrentPhase)(c))throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`after()\` while rendering. This is not supported. If you need this data inside an \`after()\` callback, use \`headers()\` outside of the callback. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E1378",enumerable:!1,configurable:!0});if(b.forceStatic)return o(d.HeadersAdapter.seal(new Headers({})));if(c)switch(c.type){case"cache":{let a=Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E833",enumerable:!1,configurable:!0});throw Error.captureStackTrace(a,m),(0,i.applyOwnerStack)(a),b.invalidDynamicUsageError??=a,a}case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E838",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1134",enumerable:!1,configurable:!0})}if(b.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`headers()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E828",enumerable:!1,configurable:!0});if(c)switch(c.type){case"prerender":var j=b,p=c;let e=n.get(p);if(e)return e;let f=(0,i.makeRuntimeHangingPromise)(p.renderSignal,j.route,"`headers()`",p);return n.set(p,f),f;case"prerender-client":case"validation-client":let q="`headers`";throw Object.defineProperty(new l.InvariantError(`${q} must not be used within a client component. Next.js should be preventing ${q} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1017",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,g.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,g.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":{let{stagedRendering:a}=c;if(a)return a.delayUntilStage(i.RENDER_STAGES_BY_DATA_KIND.sessionData,"headers",c.headers);return o(c.headers)}case"private-cache":return o(c.headers);case"request":if((0,g.trackDynamicDataInDynamicRender)(c),c.asyncApiPromises)return c.asyncApiPromises.headers;return o(c.headers)}}(0,f.throwForMissingRequestStore)(a)}let n=new WeakMap;function o(a){let b=n.get(a);if(b)return b;let c=Promise.resolve(a);return n.set(a,c),c}(0,j.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`headers()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E836",enumerable:!1,configurable:!0})})},51125,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"draftMode",{enumerable:!0,get:function(){return l}});let d=a.r(32319),e=a.r(56704),f=a.r(60384),g=a.r(8018),h=a.r(60312),i=a.r(96556),j=a.r(50640);a.r(51409);let k=a.r(13091);function l(){let a="draftMode",b=e.workAsyncStorage.getStore(),c=d.workUnitAsyncStorage.getStore();switch((!b||!c)&&(0,d.throwForMissingRequestStore)(a),c.type){case"prerender-runtime":{let{stagedRendering:a}=c;if(a)return a.delayUntilStage(k.RENDER_STAGES_BY_DATA_KIND.sessionData,"draftMode",new p(c.draftMode));return m(c.draftMode,b)}case"request":return m(c.draftMode,b);case"cache":case"private-cache":case"unstable-cache":let f=(0,d.getDraftModeProviderForCacheScope)(b,c);if(f)return m(f,b);case"prerender":case"prerender-ppr":case"prerender-legacy":return m(null,b);case"prerender-client":case"validation-client":{let a="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${a} must not be used within a Client Component. Next.js should be preventing ${a} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0})}case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`${a}()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1132",enumerable:!1,configurable:!0});default:return c}}function m(a,b){let c=o.get(a??n);return c||Promise.resolve(new p(a))}let n={},o=new WeakMap;class p{constructor(a){this._provider=a}get isEnabled(){return null!==this._provider&&this._provider.isEnabled}enable(){q("draftMode().enable()",this.enable),null!==this._provider&&this._provider.enable()}disable(){q("draftMode().disable()",this.disable),null!==this._provider&&this._provider.disable()}}function q(a,b){let c=e.workAsyncStorage.getStore(),g=d.workUnitAsyncStorage.getStore();if(c){if((null==g?void 0:g.phase)==="after")throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside \`after()\`. The enabled status of \`draftMode()\` can be read inside \`after()\` but you cannot enable or disable \`draftMode()\`. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E845",enumerable:!1,configurable:!0});if(c.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${c.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(g)switch(g.type){case"cache":case"private-cache":{let d=Object.defineProperty(Error(`Route ${c.route} used "${a}" inside "use cache". The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E829",enumerable:!1,configurable:!0});throw Error.captureStackTrace(d,b),(0,k.applyOwnerStack)(d),c.invalidDynamicUsageError??=d,d}case"unstable-cache":throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside a function cached with \`unstable_cache()\`. The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E844",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":{let b=Object.defineProperty(Error(`Route ${c.route} used ${a} without first calling \`await connection()\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`),"__NEXT_ERROR_CODE",{value:"E126",enumerable:!1,configurable:!0});return(0,f.abortAndThrowOnSynchronousRequestDataAccess)(c.route,a,b,g)}case"prerender-client":case"validation-client":let d="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${d} must not be used within a Client Component. Next.js should be preventing ${d} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,f.postponeWithTracking)(c.route,a,g.dynamicTracking);case"prerender-legacy":g.revalidate=0;let e=Object.defineProperty(new i.DynamicServerError(`Route ${c.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.dynamicUsageDescription=a,c.dynamicUsageStack=e.stack,e;case"request":(0,f.trackDynamicDataInDynamicRender)(g);break;case"generate-static-params":throw Object.defineProperty(Error(`Route ${c.route} used \`${a}\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1121",enumerable:!1,configurable:!0})}}}(0,g.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`draftMode()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E835",enumerable:!1,configurable:!0})})},5246,(a,b,c)=>{b.exports.cookies=a.r(81740).cookies,b.exports.headers=a.r(35754).headers,b.exports.draftMode=a.r(51125).draftMode},86309,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={isRequestApiAllowedInCurrentPhase:function(){return k},throwForSearchParamsAccessInUseCache:function(){return j},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(60312),g=a.r(20635),h=a.r(24725);function i(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function j(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function k(a){switch(a.phase){case"action":case"render":return!0;case"after":{let a=g.actionAsyncStorage.getStore();if(a&&(a.isAppRoute||a.isAction))return!0;let b=h.afterTaskAsyncStorage.getStore();if(b)return"action"===b.rootTaskSpawnPhase;return!1}}}},63681,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={RequestCookies:function(){return f.RequestCookies},ResponseCookies:function(){return f.ResponseCookies},stringifyCookie:function(){return f.stringifyCookie}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(36226)},51409,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ReflectAdapter",{enumerable:!0,get:function(){return d}});class d{static get(a,b,c){let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}static set(a,b,c,d){return Reflect.set(a,b,c,d)}static has(a,b){return Reflect.has(a,b)}static deleteProperty(a,b){return Reflect.deleteProperty(a,b)}}},4712,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ActionDidNotRevalidate:function(){return f},ActionDidRevalidateDynamicOnly:function(){return h},ActionDidRevalidateStaticAndDynamic:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=0,g=1,h=2},14896,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63681),g=a.r(51409),h=a.r(56704),i=a.r(4712);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1180",enumerable:!1,configurable:!0})}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}static fresh(a){return new Proxy(a,{get:(a,b,c)=>g.ReflectAdapter.get(a,b,c)})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_0bqoto4._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
module.exports=[4543,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(10765),e=a.i(17094);let f=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function g(a){if((0,e.isAbortError)(a))return"request timed out. check your network and try again.";let b=a instanceof Error?a.message:String(a);return`network error: ${b}`}a.s(["AuthDialog",0,function({open:a,headline:h="where to route the reminder?",subhead:i="we'll send a one-time code to confirm.",onClose:j,onAuthed:k,source:l="unknown"}){let{capture:m}=(0,d.usePostHog)(),[n,o]=(0,c.useState)({kind:"email",error:null}),[p,q]=(0,c.useState)(!1),r=(0,c.useRef)(!1),s=(0,c.useRef)(null),t=(0,c.useRef)(null);(0,c.useEffect)(()=>{a&&(o({kind:"email",error:null}),q(!1),r.current=!1,m("audit_auth_dialog_opened",{source:l}))},[m,a,l]);let u=(0,c.useRef)(!1);(0,c.useEffect)(()=>{if(a){u.current=!0;return}u.current&&!r.current&&m("audit_auth_dialog_dismissed",{source:l,step:n.kind}),u.current=!1},[m,a,l,n.kind]),(0,c.useEffect)(()=>{if(!a)return;let b=setTimeout(()=>{"email"===n.kind?s.current?.focus():"code"===n.kind&&t.current?.focus()},50);return()=>clearTimeout(b)},[a,n.kind]),(0,c.useEffect)(()=>{if(!a)return;let b=a=>{"Escape"!==a.key||p||j()};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[a,p,j]);let v="code"===n.kind&&n.resendIn>0;(0,c.useEffect)(()=>{if(!v)return;let a=setInterval(()=>{o(a=>"code"===a.kind?{...a,resendIn:Math.max(0,a.resendIn-1)}:a)},1e3);return()=>clearInterval(a)},[v]);let w=(0,c.useCallback)(async(a,b={})=>{let{isResend:c=!1}=b,d=a=>{c?o(b=>"code"===b.kind?{...b,error:a}:b):o({kind:"email",error:a})};q(!0);try{let b=await (0,e.fetchWithTimeout)("/api/auth/login-request",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({email:a})}),c=await b.json().catch(()=>({}));if(!b.ok){let a=c.message??"could not send code.";"rate_limited"===c.code&&void 0!==c.retry_after_secs?a=`too many tries. wait ${c.retry_after_secs}s and try again.`:"upstream_unreachable"===c.code&&(a="api-server unreachable. check your network."),d(a);return}o({kind:"code",email:a,error:null,expiresIn:c.expires_in??600,resendIn:c.resend_available_in??30})}catch(a){d(g(a))}finally{q(!1)}},[]),x=(0,c.useCallback)(async(a,b)=>{q(!0);try{let c=await (0,e.fetchWithTimeout)("/api/auth/login-verify",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({email:a,code:b})}),d=await c.json().catch(()=>({}));if(!c.ok||!d.authenticated||!d.user){let a=d.message??"invalid code.";"invalid_code"===d.code&&(a="wrong code, or it expired. try again."),o(b=>"code"===b.kind?{...b,error:a}:b);return}r.current=!0,m("audit_auth_dialog_succeeded",{source:l}),o({kind:"done",user:d.user}),k(d.user)}catch(b){let a=g(b);o(b=>"code"===b.kind?{...b,error:a}:b)}finally{q(!1)}},[m,k,l]),y=(0,c.useCallback)(async a=>{if(a.preventDefault(),p||"email"!==n.kind)return;let b=String(new FormData(a.currentTarget).get("email")??"").trim().toLowerCase();f.test(b)?await w(b):o({kind:"email",error:"that doesn't look like an email."})},[p,n,w]),z=(0,c.useCallback)(async a=>{if(a.preventDefault(),p||"code"!==n.kind)return;let b=String(new FormData(a.currentTarget).get("code")??"").trim();b.length<4||b.length>12?o(a=>"code"===a.kind?{...a,error:"code is 4–12 characters."}:a):await x(n.email,b)},[p,n,x]),A=(0,c.useCallback)(async()=>{"code"!==n.kind||n.resendIn>0||p||await w(n.email,{isResend:!0})},[n,p,w]);return a?(0,b.jsx)("div",{className:"auth-dialog-backdrop",role:"dialog","aria-modal":"true","aria-labelledby":"auth-dialog-title",onClick:a=>{p||a.target!==a.currentTarget||j()},children:(0,b.jsxs)("div",{className:"auth-dialog",children:[(0,b.jsx)("button",{type:"button",className:"auth-close",onClick:j,disabled:p,"aria-label":"close",children:"×"}),(0,b.jsx)("h2",{id:"auth-dialog-title",className:"auth-headline",children:h}),"email"===n.kind&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"auth-sub",children:i}),(0,b.jsxs)("form",{onSubmit:y,className:"auth-form",children:[(0,b.jsx)("input",{ref:s,id:"auth-dialog-email",name:"email",type:"email",autoComplete:"email",inputMode:"email",spellCheck:!1,placeholder:"you@yourdomain.com",disabled:p,className:"auth-input",required:!0}),n.error&&(0,b.jsx)("div",{className:"auth-error",children:n.error}),(0,b.jsxs)("div",{className:"auth-actions",children:[(0,b.jsx)("button",{type:"submit",className:"auth-btn primary",disabled:p,children:p?"sending…":"send code"}),(0,b.jsx)("button",{type:"button",className:"auth-btn",onClick:j,disabled:p,children:"cancel"})]})]})]}),"code"===n.kind&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{className:"auth-sub",children:["code sent to ",(0,b.jsx)("span",{className:"auth-email",children:n.email}),". expires in ",Math.ceil(n.expiresIn/60)," min."]}),(0,b.jsxs)("form",{onSubmit:z,className:"auth-form",children:[(0,b.jsx)("input",{ref:t,id:"auth-dialog-code",name:"code",type:"text",inputMode:"numeric",autoComplete:"one-time-code",spellCheck:!1,placeholder:"123456",disabled:p,className:"auth-input auth-input-code",maxLength:12,required:!0}),n.error&&(0,b.jsx)("div",{className:"auth-error",children:n.error}),(0,b.jsxs)("div",{className:"auth-actions",children:[(0,b.jsx)("button",{type:"submit",className:"auth-btn primary",disabled:p,children:p?"verifying…":"verify"}),(0,b.jsx)("button",{type:"button",className:"auth-btn",onClick:A,disabled:p||n.resendIn>0,children:n.resendIn>0?`resend in ${n.resendIn}s`:"resend code"})]}),(0,b.jsx)("button",{type:"button",className:"auth-back",onClick:()=>o({kind:"email",error:null}),disabled:p,children:"← use a different email"})]})]}),"done"===n.kind&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{className:"auth-sub",children:[(0,b.jsx)("span",{className:"auth-ok",children:"✓"})," signed in as"," ",(0,b.jsx)("span",{className:"auth-email",children:n.user.email}),"."]}),(0,b.jsx)("div",{className:"auth-actions",children:(0,b.jsx)("button",{type:"button",className:"auth-btn primary",onClick:j,children:"continue"})})]})]})}):null}])},89564,a=>{"use strict";var b=a.i(17094);class c extends Error{kind;constructor(a,b){super(b),this.kind=a,this.name="RerunError"}}async function d(a){try{let d=await (0,b.fetchWithTimeout)("/api/audit/run",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({cli:a.cli.length>0?a.cli:void 0,since:"all"===a.since?void 0:a.since,noCache:!!a.noCache||void 0})});if(!d.ok&&409!==d.status){let a=await d.text().catch(()=>"");throw console.error("audit run failed:",d.status,a),new c("post_failed",`audit run failed (${d.status})`)}}catch(a){if(a instanceof c)throw a;throw console.error("audit run request failed:",a),new c((0,b.isAbortError)(a)?"timeout":"network","audit run request failed")}let d=0;for(;;){await new Promise(a=>setTimeout(a,1e3));let a=null;try{let c=await (0,b.fetchWithTimeout)("/api/audit/status",{cache:"no-store"});c.ok&&(a=await c.json())}catch{}if(null===a){if(++d>=10)throw new c("network","audit status poll lost the server");continue}if(d=0,!a.running){if(a.error)throw new c("post_failed",a.error);return}}}a.s(["RerunError",0,c,"triggerRun",0,d])},17094,a=>{"use strict";a.s(["fetchWithTimeout",0,function(a,b={},c=15e3){let d=AbortSignal.timeout(c),e=b.signal?AbortSignal.any([b.signal,d]):d;return fetch(a,{...b,signal:e})},"isAbortError",0,function(a){if(null===a||"object"!=typeof a)return!1;let b=a.name;return"AbortError"===b||"TimeoutError"===b}])},3900,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_html-to-image_es_index_1ao30b1.js"].map(b=>a.l(b))).then(()=>b(63460)))}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=_0yq5_3a._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[
|
|
1
|
+
module.exports=[86325,a=>{"use strict";var b=a.i(5050);let c=(0,b.createServerReference)("002b3cc50212764fbf57f8ead598d92ef778ab1cb4",b.callServer,void 0,b.findSourceMapURL,"getTelemetryConfig");a.s(["getTelemetryConfig",0,c])},18952,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d=[],e=0,f=new Set;function g(){for(let a of f)a()}function h(a){return f.add(a),()=>f.delete(a)}function i(){return d}function j({message:a}){let[d,e]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{requestAnimationFrame(()=>e(!0));let a=setTimeout(()=>e(!1),2e3);return()=>clearTimeout(a)},[]),(0,b.jsx)("div",{className:`bg-card border border-border text-foreground text-sm px-4 py-2 rounded-lg shadow-lg transition-opacity duration-300 ${d?"opacity-100":"opacity-0"}`,children:a})}a.s(["Toaster",0,function(){let a=(0,c.useSyncExternalStore)(h,i,i);return(0,b.jsx)("div",{className:"fixed bottom-4 right-4 z-50 flex flex-col gap-2",children:a.map(a=>(0,b.jsx)(j,{message:a.message},a.id))})},"toast",0,function(a){let b=e++;d=[...d,{id:b,message:a}],g(),setTimeout(()=>{d=d.filter(a=>a.id!==b),g()},2500)}])},10765,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(50944),e=a.i(86325),f=a.i(66036);let g=(0,c.createContext)(void 0);a.s(["PostHogProvider",0,function({children:a}){let h=(0,d.usePathname)(),i=(0,c.useRef)(null),j=(0,c.useRef)(!1);(0,c.useEffect)(()=>{let a=!1;return(0,e.getTelemetryConfig)().then(b=>{a||((0,f.setClientTelemetryConfig)(b),j.current=!0,(0,f.captureClientEvent)("$pageview"),i.current=window.location.pathname)}),()=>{a=!0}},[]),(0,c.useEffect)(()=>{j.current&&i.current!==h&&(i.current=h,(0,f.captureClientEvent)("$pageview"))},[h]);let k=c.default.useCallback((a,b)=>{(0,f.captureClientEvent)(a,b)},[]);return(0,b.jsx)(g.Provider,{value:{capture:k},children:a})},"usePostHog",0,function(){let a=(0,c.useContext)(g);if(void 0===a)throw Error("usePostHog must be used within a PostHogProvider");return a}])},66036,a=>{"use strict";a.s(["captureClientEvent",0,function(a,b){},"setClientTelemetryConfig",0,function(a){}])},46058,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},5050,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={callServer:function(){return f.callServer},createServerReference:function(){return h.createServerReference},findSourceMapURL:function(){return g.findSourceMapURL}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20611),g=a.r(1722),h=a.r(38783)},20611,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"callServer",{enumerable:!0,get:function(){return g}});let d=a.r(72131),e=a.r(88347),f=a.r(90841);async function g(a,b){return new Promise((c,g)=>{(0,d.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:e.ACTION_SERVER_ACTION,actionId:a,actionArgs:b,resolve:c,reject:g})})})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},1722,(a,b,c)=>{"use strict";let d;Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findSourceMapURL",{enumerable:!0,get:function(){return d}});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},88347,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e,f={ACTION_HMR_REFRESH:function(){return l},ACTION_NAVIGATE:function(){return i},ACTION_REFRESH:function(){return h},ACTION_RESTORE:function(){return j},ACTION_SERVER_ACTION:function(){return m},ACTION_SERVER_PATCH:function(){return k},PrefetchKind:function(){return n},ScrollBehavior:function(){return o}};for(var g in f)Object.defineProperty(c,g,{enumerable:!0,get:f[g]});let h="refresh",i="navigate",j="restore",k="server-patch",l="hmr-refresh",m="server-action";var n=((d={}).AUTO="auto",d.FULL="full",d),o=((e={})[e.Default=0]="Default",e[e.NoScroll=1]="NoScroll",e);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},90841,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={dispatchAppRouterAction:function(){return i},dispatchGestureState:function(){return j},refreshOnInstantNavigationUnlock:function(){return h},useActionQueue:function(){return k}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(46058)._(a.r(72131)),g=a.r(67009);a.r(88347);function h(){}function i(a){!0;throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function j(a){!0;throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function k(a){let[b,c]=f.default.useState(a.state),[d,e]=(0,f.useOptimistic)(b),h=(0,f.useMemo)(()=>d,[d]);return(0,g.isThenable)(h)?(0,f.use)(h):h}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},14827,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={createLinkPrefetchPartialError:function(){return g},createUnrenderedSegmentError:function(){return f}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a,b){let c=`Route "${a}": Could not validate that a segment in your UI has instant navigation.`;if(b.length>0){let a=1===b.length?"Dropped segment":"Dropped segments";c+=`
|
|
2
2
|
|
|
3
3
|
This segment was dropped from rendering. Issues that would prevent instant navigation will go undetected.
|
|
4
4
|
|
|
@@ -18,6 +18,6 @@ Ways to fix this:
|
|
|
18
18
|
- [disable] Remove \`prefetch={true}\` from the <Link> to use the default prefetch
|
|
19
19
|
- [ignore] Set \`export const instant = false\` to opt the route out of instant-navigation validation
|
|
20
20
|
|
|
21
|
-
Learn more: https://nextjs.org/docs/messages/instant-link-prefetch-partial`),"__NEXT_ERROR_CODE",{value:"E1435",enumerable:!1,configurable:!0})}},88644,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1179",enumerable:!1,configurable:!0}),this.name="InvariantError"}}},
|
|
21
|
+
Learn more: https://nextjs.org/docs/messages/instant-link-prefetch-partial`),"__NEXT_ERROR_CODE",{value:"E1435",enumerable:!1,configurable:!0})}},88644,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1179",enumerable:!1,configurable:!0}),this.name="InvariantError"}}},67009,(a,b,c)=>{"use strict";function d(a){return null!==a&&"object"==typeof a&&"then"in a&&"function"==typeof a.then}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isThenable",{enumerable:!0,get:function(){return d}})},41997,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={BailoutToCSRError:function(){return g},isBailoutToCSRError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="BAILOUT_TO_CLIENT_SIDE_RENDERING";class g extends Error{constructor(a){super(`Bail out to client-side rendering: ${a}`),this.reason=a,this.digest=f}}function h(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===f}},54427,(a,b,c)=>{"use strict";function d(){let a,b,c=new Promise((c,d)=>{a=c,b=d});return{resolve:a,reject:b,promise:c}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createPromiseWithResolvers",{enumerable:!0,get:function(){return d}})},39118,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DEFAULT_SEGMENT_KEY:function(){return l},NOT_FOUND_SEGMENT_KEY:function(){return m},PAGE_SEGMENT_KEY:function(){return k},addSearchParamsIfPageSegment:function(){return i},computeSelectedLayoutSegment:function(){return j},getSegmentValue:function(){return f},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,e=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return e;let h=f(g[0]);return!h||h.startsWith(k)?e:(e.push(h),a(g,c,!1,e))}},isGroupSegment:function(){return g},isParallelRouteSegment:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Array.isArray(a)?a[1]:a}function g(a){return"("===a[0]&&a.endsWith(")")}function h(a){return a.startsWith("@")&&"@children"!==a}function i(a,b){if(a.includes(k)){let a=JSON.stringify(b);return"{}"!==a?k+"?"+a:k}return a}function j(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===l?null:c}let k="__PAGE__",l="__DEFAULT__",m="/_not-found"}];
|
|
22
22
|
|
|
23
|
-
//# sourceMappingURL=
|
|
23
|
+
//# sourceMappingURL=_16pa9ht._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[99558,a=>{"use strict";var b=a.i(36359),c=a.i(37936),d=a.i(15501);async function e(){let a=(0,d.readDashboardCache)();if(!a){let a=(0,d.readDashboardCacheMeta)();return{status:"empty",expired:null!==a,expiredAt:a?.cachedAt??null}}return{status:"cached",cachedAt:a.cachedAt,params:a.params,result:a.result}}(0,a.i(13095).ensureServerEntryExports)([e]),(0,c.registerServerReference)(e,"
|
|
1
|
+
module.exports=[99558,a=>{"use strict";var b=a.i(36359),c=a.i(37936),d=a.i(15501);async function e(){let a=(0,d.readDashboardCache)();if(!a){let a=(0,d.readDashboardCacheMeta)();return{status:"empty",expired:null!==a,expiredAt:a?.cachedAt??null}}return{status:"cached",cachedAt:a.cachedAt,params:a.params,result:a.result}}(0,a.i(13095).ensureServerEntryExports)([e]),(0,c.registerServerReference)(e,"00c7a33e8c5007aa102ab7f62fc8fe7477069b5f25",null),a.s([],62946),a.i(62946),a.s(["002b3cc50212764fbf57f8ead598d92ef778ab1cb4",()=>b.getTelemetryConfig,"00c7a33e8c5007aa102ab7f62fc8fe7477069b5f25",0,e],99558)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_1zopuov._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[73338,a=>{"use strict";var b=a.i(36359),c=a.i(7292),d=a.i(37936),e=a.i(2157);a.i(66680);var f=a.i(50227);a.i(8674),a.i(1144);var g=a.i(75818),h=a.i(13095);async function i(){return function(a=Date.now()){let b,c,d=(c=process.env.FAILPROOFAI_STATE_DIR)?(0,f.resolve)(c,"sessions"):(0,g.sessionPauseDir)();if(!(0,e.existsSync)(d))return[];let h=[];try{b=(0,e.readdirSync)(d)}catch{return[]}for(let c of b)if(c.endsWith(".json"))try{let b=function(a){if(!a||"object"!=typeof a||1!==a.schemaVersion||"string"!=typeof a.sessionId||0===a.sessionId.length||!Number.isFinite(a.pausedAt)||!Number.isFinite(a.expiresAt))return null;let b=a.pausedAt,c=Number.isFinite(a.firstPausedAt)?a.firstPausedAt:b;return{schemaVersion:1,sessionId:a.sessionId,pausedAt:b,firstPausedAt:c,expiresAt:Math.min(a.expiresAt,c+288e5),setBy:"string"==typeof a.setBy?a.setBy:"unknown",..."string"==typeof a.cwd?{cwd:a.cwd}:{}}}(JSON.parse((0,e.readFileSync)((0,f.join)(d,c),"utf8")));if(!b||b.expiresAt<=a)continue;let{schemaVersion:g,...i}=b;h.push(i)}catch{}return h.sort((a,b)=>b.pausedAt-a.pausedAt)}()}(0,h.ensureServerEntryExports)([i]),(0,d.registerServerReference)(i,"
|
|
1
|
+
module.exports=[73338,a=>{"use strict";var b=a.i(36359),c=a.i(7292),d=a.i(37936),e=a.i(2157);a.i(66680);var f=a.i(50227);a.i(8674),a.i(1144);var g=a.i(75818),h=a.i(13095);async function i(){return function(a=Date.now()){let b,c,d=(c=process.env.FAILPROOFAI_STATE_DIR)?(0,f.resolve)(c,"sessions"):(0,g.sessionPauseDir)();if(!(0,e.existsSync)(d))return[];let h=[];try{b=(0,e.readdirSync)(d)}catch{return[]}for(let c of b)if(c.endsWith(".json"))try{let b=function(a){if(!a||"object"!=typeof a||1!==a.schemaVersion||"string"!=typeof a.sessionId||0===a.sessionId.length||!Number.isFinite(a.pausedAt)||!Number.isFinite(a.expiresAt))return null;let b=a.pausedAt,c=Number.isFinite(a.firstPausedAt)?a.firstPausedAt:b;return{schemaVersion:1,sessionId:a.sessionId,pausedAt:b,firstPausedAt:c,expiresAt:Math.min(a.expiresAt,c+288e5),setBy:"string"==typeof a.setBy?a.setBy:"unknown",..."string"==typeof a.cwd?{cwd:a.cwd}:{}}}(JSON.parse((0,e.readFileSync)((0,f.join)(d,c),"utf8")));if(!b||b.expiresAt<=a)continue;let{schemaVersion:g,...i}=b;h.push(i)}catch{}return h.sort((a,b)=>b.pausedAt-a.pausedAt)}()}(0,h.ensureServerEntryExports)([i]),(0,d.registerServerReference)(i,"0089ea2980918808d33a15d8c1aa19f95f74499a34",null);var j=a.i(17280);a.i(75534),a.i(10695);var k=a.i(98378),l=a.i(69839),m=a.i(28120),n=a.i(74533),o=a.i(60526),p=a.i(91997),q=a.i(67121),r=a.i(92956),s=a.i(15638),t=a.i(32352);class u extends Error{exitCode;constructor(a,b=1){super(a),this.name="CliError",this.exitCode=b}}a.i(89790);var v=a.i(9909),w=a.i(8284);a.i(1459);let x=new Set(r.BUILTIN_POLICIES.map(a=>a.name));function y(a,b){return q.claudeCode.getSettingsPath(a,b)}function z(a){let b=[],c=[],d=[],e=[];try{e=(0,v.readInstalledPacks)().packs}catch{}let f=(a,b)=>e.filter(b=>null===a||b.id===a).filter(a=>a.policies.some(a=>a.name===b)).map(a=>({packId:a.id,packVersion:a.version,name:b,disabledKey:`pack:${a.id}@${a.version}:${b}`}));for(let e of a){let a=f(null,e);if(1===a.length){c.push(a[0]);continue}if(a.length>1)throw new u(`"${e}" is declared by ${a.length} installed packs.
|
|
2
2
|
Name the one you mean:
|
|
3
3
|
`+a.map(a=>` ${a.packId}:${a.name}`).join("\n"));if(x.has(e)){b.push(e);continue}let g=e.lastIndexOf(":"),h=g>0?{packId:e.slice(0,g),name:e.slice(g+1)}:null,i=h?f(h.packId,h.name):f(null,e);if(1===i.length){c.push(i[0]);continue}if(i.length>1)throw new u(`"${e}" is declared by ${i.length} installed packs.
|
|
4
4
|
Name the one you mean:
|
|
@@ -13,6 +13,6 @@ Run \`failproofai policies add FailproofAI/policies\` once you are online.`)}if(
|
|
|
13
13
|
Enabled ${G.length} policy(ies): ${G.join(", ")}
|
|
14
14
|
`),i)console.log("Custom hooks path cleared.");else if(O.customPoliciesPaths?.length||O.customPoliciesPath){let a=O.customPoliciesPaths??[O.customPoliciesPath];console.log(`Custom hooks paths: ${a.join(", ")}`)}let R=[];for(let a of I){let d=(0,q.getIntegration)(a),e=(0,q.settingsPathsFor)(d,b,c);try{for(let c of e){d.prepareInstall?.(c);let e=d.readSettings(c);d.writeHookEntries(e,L,b),d.writeSettings(c,e),R.push({cli:a,path:c})}}catch(d){let c=d instanceof Error&&/EACCES|EPERM/.test(d.message)?"permission_denied":d instanceof Error&&/ENOENT|ENOTDIR/.test(d.message)?"path_not_found":"write_error";try{await (0,k.trackHookEvent)((0,l.getInstanceId)(),"hook_write_failed",{cli:a,scope:b,error_type:c})}catch{}throw d}}try{let a=new Set(G),c=G.filter(a=>!N.has(a)),e=[...N].filter(b=>!a.has(b)),f=(0,l.getInstanceId)();if(await (0,k.trackHookEvent)(f,"hooks_installed",{scope:b,cli:I,cli_count:I.length,policies:G,policy_count:G.length,policies_added:c,policies_removed:e,...g?{source:g}:{},platform:(0,o.platform)(),arch:(0,o.arch)(),os_release:(0,o.release)(),hostname_hash:(0,l.hashToId)((0,o.hostname)()),has_custom_hooks_path:!!(O.customPoliciesPaths?.length||O.customPoliciesPath),has_policy_params:!!(O.policyParams&&Object.keys(O.policyParams).length>0),param_policy_names:O.policyParams?Object.keys(O.policyParams):[],command_format:"project"===b?"npx":"absolute"}),d){let a=new Set(r.BUILTIN_POLICIES.filter(a=>a.beta).map(a=>a.name)),c=G.filter(b=>a.has(b));c.length>0&&await (0,k.trackHookEvent)(f,"beta_policies_installed",{scope:b,cli:I,beta_count:c.length,beta_policy_names:c,...g?{source:g}:{}})}}catch{}for(let{cli:a,path:c}of R){let d=(0,q.getIntegration)(a);"hermes"===a?console.log(`Failproof AI native plugin installed for ${d.displayName} (8 registered hooks, scope: ${b}).`):console.log(`Failproof AI hooks installed for ${d.displayName} (${d.eventTypes.length} event types, scope: ${b}).`),console.log(`Settings: ${c}`)}"project"===b?(console.log("Command: npx -y failproofai"),console.log(`
|
|
15
15
|
This file can be committed to git — no machine-specific paths.`)):console.log(`Binary: ${L}`);let S=(F=p.HOOK_SCOPES,H=new Set,F.filter(a=>{let b=y(a,c);return!H.has(b)&&(H.add(b),!0)})).filter(a=>a!==b).filter(a=>B(a,c));if(S.length>0){let a=S.map(a=>`${a} (${function(a){switch(a){case"user":return"~/.claude/settings.json";case"project":return"{cwd}/.claude/settings.json";case"local":return"{cwd}/.claude/settings.local.json"}}(a)})`).join(", ");console.log(),console.log(`\x1b[33mWarning: Failproof AI hooks are also installed at ${a}.\x1b[0m`),console.log("Having hooks in multiple scopes may cause duplicate policy evaluation."),console.log(`Use \`failproofai policies --uninstall --scope ${S[0]}\` to remove the other installation,`),console.log("or `failproofai policies` to see all scopes.");try{await (0,k.trackHookEvent)((0,l.getInstanceId)(),"multi_scope_warning_shown",{new_scope:b,existing_scopes:S,cli:I})}catch{}}}async function E(a,b="user",c,d){let f="all"===b?"user":b,g=d?.cli&&d.cli.length>0?[...new Set(d.cli)]:["claude"];if(d?.removeCustomHooks){let a=(0,m.readScopedHooksConfig)(f,c);delete a.customPoliciesPath,delete a.customPoliciesPaths,(0,m.writeScopedHooksConfig)(a,f,c),console.log("Custom hooks path cleared.")}if(a&&a.length>0&&(1!==a.length||"all"!==a[0])){let b=z(a);A(b.packs,!1,f,c);var h=a=b.builtins;let d=new Set(r.BUILTIN_POLICIES.filter(a=>a.alwaysOn).map(a=>a.name)),e=h.filter(a=>d.has(a));if(e.length>0)throw new u(`Cannot disable: ${e.join(", ")}
|
|
16
|
-
This policy stops an agent from switching off failproofai itself, so it is always on and ships with the package. A guard the agent can disable by the means it is meant to prevent is not a guard.`);if(b.packs.length>0&&0===a.length)return}if(a&&a.length>0&&(1!==a.length||"all"!==a[0])){let e=(0,m.readScopedHooksConfig)(f,c),h=new Set(a),i=e.enabledPolicies.filter(a=>!h.has(a)),j=a.filter(a=>!e.enabledPolicies.includes(a));j.length>0&&console.log(`Warning: policy(ies) not currently enabled: ${j.join(", ")}`);let{policyParams:n,...p}=e,q=n?Object.fromEntries(Object.entries(n).filter(([a])=>!h.has(a))):null,r={...p,enabledPolicies:i,...q&&Object.keys(q).length>0?{policyParams:q}:{}};(0,m.writeScopedHooksConfig)(r,f,c);try{let c=(0,l.getInstanceId)(),f=a.filter(a=>e.enabledPolicies.includes(a));await (0,k.trackHookEvent)(c,"hooks_removed",{scope:b,cli:g,removal_mode:d?.betaOnly?"beta_policies":"policies",beta_only:d?.betaOnly??!1,policies_removed:f,removed_count:f.length,...d?.source?{source:d.source}:{},platform:(0,o.platform)(),arch:(0,o.arch)(),os_release:(0,o.release)(),hostname_hash:(0,l.hashToId)((0,o.hostname)())})}catch{}console.log(`Disabled ${a.length-j.length} policy(ies).`),console.log(`Remaining: ${i.length>0?i.join(", "):"(none)"}`);return}let i=(0,m.readScopedHooksConfig)(f,c),j=0,n=!1;for(let a of g){let d=(0,q.getIntegration)(a);for(let f of"all"===b?[...d.scopes]:d.scopes.includes(b)?[b]:[]){let h=(0,q.settingsPathsFor)(d,f,c),i="hermes"===a?h:h.filter(a=>(0,e.existsSync)(a));if(0===i.length){"all"!==b&&1===g.length&&(console.log("No settings file found. Nothing to remove."),n=!0);continue}let k=0;for(let a of i){let c=d.removeHooksFromFile(a);k+=c,c>0&&"all"!==b&&(console.log(`Removed ${c} failproofai hook(s) from ${d.displayName} settings.`),console.log(`Settings: ${a}`))}if(0===k&&"all"!==b&&1===g.length){console.log("No hooks found in settings. Nothing to remove."),n=!0;continue}j+=k}}if(!n||0!==j){if("all"===b)for(let a of(console.log(`Removed ${j} failproofai hook(s) from all scopes.`),g)){let b=(0,q.getIntegration)(a);for(let a of b.scopes)for(let d of(0,q.settingsPathsFor)(b,a,c))console.log(` ${b.displayName} / ${a}: ${d}`)}try{let a=(0,l.getInstanceId)();await (0,k.trackHookEvent)(a,"hooks_removed",{scope:b,cli:g,removal_mode:"hooks",policies_removed:i.enabledPolicies,removed_count:j,...d?.source?{source:d.source}:{},platform:(0,o.platform)(),arch:(0,o.arch)(),os_release:(0,o.release)(),hostname_hash:(0,l.hashToId)((0,o.hostname)())})}catch{}if("all"===b)for(let a of p.HOOK_SCOPES){let b=(0,m.readScopedHooksConfig)(a,c);if(b.enabledPolicies.length>0||b.customPoliciesPaths?.length||b.customPoliciesPath||b.policyParams){let{customPoliciesPath:d,customPoliciesPaths:e,policyParams:f,...g}=b;(0,m.writeScopedHooksConfig)({...g,enabledPolicies:[]},a,c)}}else if(!p.HOOK_SCOPES.some(a=>B(a,c))){let{customPoliciesPath:a,customPoliciesPaths:b,policyParams:d,...e}=(0,m.readScopedHooksConfig)(f,c);(0,m.writeScopedHooksConfig)({...e,enabledPolicies:[]},f,c)}}}var F=a.i(24282),G=a.i(12714);async function H(a,b){let c=process.env.FAILPROOFAI_LAUNCH_CWD||process.cwd(),d=(0,f.resolve)((0,m.findProjectConfigDir)(c),".failproofai","policies"),e=(0,g.customPoliciesDir)(),h=[];for(let{scope:c,dir:g}of[{scope:"project",dir:d},...e===d?[]:[{scope:"user",dir:e}]]){let d=[];try{d=(0,s.discoverPolicyFiles)(g)}catch{continue}for(let e of d){if(b.has(e))continue;let d=[];try{d=(await I(e)).map(b=>{let d=(0,s.conventionPolicyId)(c,(0,f.basename)(e),b.name);return{...b,id:d,enabled:!a.has(d)}})}catch{}h.push({scope:c,file:(0,f.basename)(e),path:e,policies:d})}}return h}async function I(a){if(!(0,e.existsSync)(a))return[];let b=await (0,G.readFile)(a,"utf-8"),c=[],d=b.split(/customPolicies\.add\s*\(/);for(let a=1;a<d.length;a++){let b=d[a],e=b.match(/name:\s*["'`]([^"'`]+)["'`]/);if(!e)continue;let f=b.match(/description:\s*["'`]([^"'`]+)["'`]/),g=b.match(/events:\s*\[([^\]]+)\]/),h=g?g[1].replace(/["'`\s]/g,"").split(",").filter(Boolean).join(", "):void 0;c.push({name:e[1],description:f?.[1],eventScope:h,id:"",enabled:!0})}return c}async function J(){let a=process.env.FAILPROOFAI_LAUNCH_CWD||process.cwd(),b=(0,m.readMergedHooksConfig)(a),c=new Set(b.disabledCustomPolicies??[]),d=p.HOOK_SCOPES.filter(a=>B(a)),e=y(d[0]??"user"),g=(0,q.listIntegrations)().map(a=>({id:a.id,label:(0,F.getCliLabel)(a.id),installed:a.hooksInstalledInSettings("user"),settingsPath:a.getSettingsPath("user"),detected:a.detectInstalled()})),h=[],i=[];try{let a=(0,v.readInstalledPacks)();h=a.packs,i=a.errors}catch{}let k=[];for(let a of h){let d=a.enabled??a.policies.map(a=>a.name);for(let e of a.policies)k.push({name:e.name,description:e.description,category:e.category,defaultEnabled:e.defaultEnabled,beta:!1,enabled:d.includes(e.name)&&!c.has(`pack:${a.id}@${a.version}:${e.name}`),eventScope:function(a){let b=a.events?.join(", ")??"",c=a.toolNames?` \xb7 ${a.toolNames.join(", ")}`:"";return`${b}${c}`}(e.match),packId:a.id,packVersion:a.version,...e.params?{params:Object.fromEntries(Object.entries(e.params).map(([a,b])=>[a,{type:b.type,description:b.description,default:b.default}])),currentParams:function(a,b,c){if(!a)return;let d=a[`pack/${b}/${c}`];return d||(b.toLowerCase()===j.CORE_SOURCE.toLowerCase()?a[c]:void 0)}(b.policyParams,a.id,e.name)??{}}:{}})}let l=(0,m.configuredCustomPolicyPaths)(b),n=(0,m.findProjectConfigDir)(a),o=l.map(a=>(0,f.resolve)(n,a)),r=(await Promise.all(o.map(async a=>{try{return(await I(a)).map(b=>{let d=(0,s.customPolicyId)(a,b.name);return{...b,id:d,enabled:!c.has(d)}})}catch{return[]}}))).flat(),t=await H(c,new Set(o)),u=h.map(a=>{let b=a.enabled??a.policies.map(a=>a.name);return{id:a.id,version:a.version,source:a.source,effect:a.effect,policies:a.policies.map(d=>({name:d.name,description:d.description,category:d.category,enabled:b.includes(d.name)&&!c.has(`pack:${a.id}@${a.version}:${d.name}`)}))}});for(let a of i)u.push({id:a.id??"(unnamed pack)",version:"",source:"",effect:"enforce",policies:[],error:a.reason});return{enabledPolicies:b.enabledPolicies,installedScopes:d,settingsPath:e,clis:g,policies:k,customPoliciesPaths:l.length?l:void 0,customPoliciesPath:1===l.length?l[0]:void 0,customPolicies:r.length?r:void 0,conventionPolicies:t,packs:u}}async function K(a,b){let c=(0,m.readHooksConfig)(),d=new Set(c.enabledPolicies);b?d.add(a):d.delete(a),(0,m.writeHooksConfig)({...c,enabledPolicies:[...d]});try{let c=(0,l.getInstanceId)();await (0,k.trackHookEvent)(c,"policy_toggled",{policy_name:a,enabled:b,action:b?"enable":"disable",source:"web"})}catch{}}async function L(a,b){if(!a.startsWith("custom:")&&!a.startsWith("convention:"))throw Error("Invalid custom policy ID");let c=process.env.FAILPROOFAI_LAUNCH_CWD||process.cwd();if(b){for(let b of p.HOOK_SCOPES){let d=(0,m.readScopedHooksConfig)(b,c);if(!d.disabledCustomPolicies?.includes(a))continue;let e=d.disabledCustomPolicies.filter(b=>b!==a),f={...d,disabledCustomPolicies:e};e.length||delete f.disabledCustomPolicies,(0,m.writeScopedHooksConfig)(f,b,c)}return}let d=(0,m.readHooksConfig)(),e=new Set(d.disabledCustomPolicies??[]);e.add(a);let f={...d,disabledCustomPolicies:[...e]};e.size||delete f.disabledCustomPolicies,(0,m.writeHooksConfig)(f)}async function M(a,b){let c=a.trim();if(!c)return{ok:!1,error:"Enter a pack source, for example acme/ops"};try{let a=await (0,j.addPackFromSource)(c,b??{});return{ok:!0,id:a.id,version:a.version,enabled:a.enabled,available:a.available}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function N(){try{let a=await (0,j.addPack)(j.CORE_SOURCE);return{ok:!0,id:a.id,version:a.version,enabled:a.enabled,available:a.available}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function O(a){let b;try{b=(0,j.removePack)(a)}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}return b?{ok:!0,id:b}:{ok:!1,error:`No installed pack with id ${a}`}}async function P(a,b,c){let d=(0,j.setPackPolicyEnabled)(a,b,c);if(!d.ok)return{ok:!1,error:d.reason};if(c){let c=(0,v.readInstalledPacks)().packs.find(b=>b.id===a);if(c){let a=`pack:${c.id}@${c.version}:${b}`,d=(0,m.readHooksConfig)(),e=(d.disabledCustomPolicies??[]).filter(b=>b!==a);if(e.length!==(d.disabledCustomPolicies??[]).length){let{disabledCustomPolicies:a,...b}=d;(0,m.writeHooksConfig)(e.length>0?{...b,disabledCustomPolicies:e}:b)}}}return{ok:!0,id:a}}async function Q(a){let b=a.trim();if(!b)return{ok:!1,error:"Enter a pack source, for example acme/ops"};try{let a=await (0,j.fetchPackPreview)(b);return{ok:!0,id:a.id,version:a.version,source:a.source,effect:a.effect,policies:a.policies.map(a=>({name:a.name,description:a.description,category:a.category,defaultEnabled:a.defaultEnabled})),...a.semantic.length>0?{semantic:a.semantic.map(a=>a.name)}:{},...a.minCliVersion?{minCliVersion:a.minCliVersion}:{}}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function R(a="user",b){let c=(0,m.readHooksConfig)(),d=c.enabledPolicies.length>0?c.enabledPolicies:r.BUILTIN_POLICIES.filter(a=>a.defaultEnabled&&!a.beta).map(a=>a.name),e=b&&b.length>0?b:(0,q.detectInstalledClis)(),f=e.length>0?e:["claude"];await C(d,a,void 0,!1,"web",void 0,!1,f)}async function S(a="user",b){let c=b&&b.length>0?b:(0,q.detectInstalledClis)(),d=c.length>0?c:["claude"];await E(void 0,a,void 0,{source:"web",cli:d})}async function T(a,b){let c=(0,m.readHooksConfig)(),d={...c.policyParams??{},[a]:b};(0,m.writeHooksConfig)({...c,policyParams:d});try{let c=(0,l.getInstanceId)();await (0,k.trackHookEvent)(c,"policy_params_updated",{policy_name:a,param_keys:Object.keys(b),source:"web"})}catch{}}(0,h.ensureServerEntryExports)([J]),(0,d.registerServerReference)(J,"00b6660a2d5a7f3a794f8e6b9cda110dcc52265c04",null),(0,h.ensureServerEntryExports)([K,L]),(0,d.registerServerReference)(K,"60e084da27815943d21b793c9b9e8ccaf6f45f43b1",null),(0,d.registerServerReference)(L,"60d91884595e41a8966ea238bc1a2b8e6c0d7cdb6c",null),(0,h.ensureServerEntryExports)([M,N,O,P,Q]),(0,d.registerServerReference)(M,"603c3f7dc1eb943162936a92f6c876abcad098d8ee",null),(0,d.registerServerReference)(N,"003cf6a2dc33f7bef322871de8a61e1daea1aadeee",null),(0,d.registerServerReference)(O,"40d2a61deeea743561cb54a05d42bbdcb53e238625",null),(0,d.registerServerReference)(P,"70f7431f8131b498c8efeaba333009f346d2ccb07a",null),(0,d.registerServerReference)(Q,"40d9774ab41ed0bcd96f2862d5c80d34c10387556c",null),(0,h.ensureServerEntryExports)([R,S]),(0,d.registerServerReference)(R,"6023a1d93e537af483920f1a8649208aa6c50e50dc",null),(0,d.registerServerReference)(S,"605a17823f43d496bc36092405f15177e68b3e2919",null),(0,h.ensureServerEntryExports)([T]),(0,d.registerServerReference)(T,"60609c640fdbc65da142d91ffdbf1ebfd9e8713cfd",null),a.s([],96801),a.i(96801),a.s(["003b5f3acdf86fb4cbfcd7481e9f1f90e50548ef3f",0,i,"003cf6a2dc33f7bef322871de8a61e1daea1aadeee",0,N,"00b6660a2d5a7f3a794f8e6b9cda110dcc52265c04",0,J,"00c7cb2b7a83c0805daa426cd9ea5ca09d11849939",()=>b.getTelemetryConfig,"406617c7a3c0d21fd723390b2d50480cfc5b57ee57",()=>c.getHookActivityAction,"40d2a61deeea743561cb54a05d42bbdcb53e238625",0,O,"40d9774ab41ed0bcd96f2862d5c80d34c10387556c",0,Q,"6023a1d93e537af483920f1a8649208aa6c50e50dc",0,R,"602b0b0b4f2efa4ff1a1a7045ee50854d8521f10b2",()=>c.searchHookActivityAction,"603c3f7dc1eb943162936a92f6c876abcad098d8ee",0,M,"605a17823f43d496bc36092405f15177e68b3e2919",0,S,"60609c640fdbc65da142d91ffdbf1ebfd9e8713cfd",0,T,"60d91884595e41a8966ea238bc1a2b8e6c0d7cdb6c",0,L,"70f7431f8131b498c8efeaba333009f346d2ccb07a",0,P],73338)}];
|
|
16
|
+
This policy stops an agent from switching off failproofai itself, so it is always on and ships with the package. A guard the agent can disable by the means it is meant to prevent is not a guard.`);if(b.packs.length>0&&0===a.length)return}if(a&&a.length>0&&(1!==a.length||"all"!==a[0])){let e=(0,m.readScopedHooksConfig)(f,c),h=new Set(a),i=e.enabledPolicies.filter(a=>!h.has(a)),j=a.filter(a=>!e.enabledPolicies.includes(a));j.length>0&&console.log(`Warning: policy(ies) not currently enabled: ${j.join(", ")}`);let{policyParams:n,...p}=e,q=n?Object.fromEntries(Object.entries(n).filter(([a])=>!h.has(a))):null,r={...p,enabledPolicies:i,...q&&Object.keys(q).length>0?{policyParams:q}:{}};(0,m.writeScopedHooksConfig)(r,f,c);try{let c=(0,l.getInstanceId)(),f=a.filter(a=>e.enabledPolicies.includes(a));await (0,k.trackHookEvent)(c,"hooks_removed",{scope:b,cli:g,removal_mode:d?.betaOnly?"beta_policies":"policies",beta_only:d?.betaOnly??!1,policies_removed:f,removed_count:f.length,...d?.source?{source:d.source}:{},platform:(0,o.platform)(),arch:(0,o.arch)(),os_release:(0,o.release)(),hostname_hash:(0,l.hashToId)((0,o.hostname)())})}catch{}console.log(`Disabled ${a.length-j.length} policy(ies).`),console.log(`Remaining: ${i.length>0?i.join(", "):"(none)"}`);return}let i=(0,m.readScopedHooksConfig)(f,c),j=0,n=!1;for(let a of g){let d=(0,q.getIntegration)(a);for(let f of"all"===b?[...d.scopes]:d.scopes.includes(b)?[b]:[]){let h=(0,q.settingsPathsFor)(d,f,c),i="hermes"===a?h:h.filter(a=>(0,e.existsSync)(a));if(0===i.length){"all"!==b&&1===g.length&&(console.log("No settings file found. Nothing to remove."),n=!0);continue}let k=0;for(let a of i){let c=d.removeHooksFromFile(a);k+=c,c>0&&"all"!==b&&(console.log(`Removed ${c} failproofai hook(s) from ${d.displayName} settings.`),console.log(`Settings: ${a}`))}if(0===k&&"all"!==b&&1===g.length){console.log("No hooks found in settings. Nothing to remove."),n=!0;continue}j+=k}}if(!n||0!==j){if("all"===b)for(let a of(console.log(`Removed ${j} failproofai hook(s) from all scopes.`),g)){let b=(0,q.getIntegration)(a);for(let a of b.scopes)for(let d of(0,q.settingsPathsFor)(b,a,c))console.log(` ${b.displayName} / ${a}: ${d}`)}try{let a=(0,l.getInstanceId)();await (0,k.trackHookEvent)(a,"hooks_removed",{scope:b,cli:g,removal_mode:"hooks",policies_removed:i.enabledPolicies,removed_count:j,...d?.source?{source:d.source}:{},platform:(0,o.platform)(),arch:(0,o.arch)(),os_release:(0,o.release)(),hostname_hash:(0,l.hashToId)((0,o.hostname)())})}catch{}if("all"===b)for(let a of p.HOOK_SCOPES){let b=(0,m.readScopedHooksConfig)(a,c);if(b.enabledPolicies.length>0||b.customPoliciesPaths?.length||b.customPoliciesPath||b.policyParams){let{customPoliciesPath:d,customPoliciesPaths:e,policyParams:f,...g}=b;(0,m.writeScopedHooksConfig)({...g,enabledPolicies:[]},a,c)}}else if(!p.HOOK_SCOPES.some(a=>B(a,c))){let{customPoliciesPath:a,customPoliciesPaths:b,policyParams:d,...e}=(0,m.readScopedHooksConfig)(f,c);(0,m.writeScopedHooksConfig)({...e,enabledPolicies:[]},f,c)}}}var F=a.i(24282),G=a.i(12714);async function H(a,b){let c=process.env.FAILPROOFAI_LAUNCH_CWD||process.cwd(),d=(0,f.resolve)((0,m.findProjectConfigDir)(c),".failproofai","policies"),e=(0,g.customPoliciesDir)(),h=[];for(let{scope:c,dir:g}of[{scope:"project",dir:d},...e===d?[]:[{scope:"user",dir:e}]]){let d=[];try{d=(0,s.discoverPolicyFiles)(g)}catch{continue}for(let e of d){if(b.has(e))continue;let d=[];try{d=(await I(e)).map(b=>{let d=(0,s.conventionPolicyId)(c,(0,f.basename)(e),b.name);return{...b,id:d,enabled:!a.has(d)}})}catch{}h.push({scope:c,file:(0,f.basename)(e),path:e,policies:d})}}return h}async function I(a){if(!(0,e.existsSync)(a))return[];let b=await (0,G.readFile)(a,"utf-8"),c=[],d=b.split(/customPolicies\.add\s*\(/);for(let a=1;a<d.length;a++){let b=d[a],e=b.match(/name:\s*["'`]([^"'`]+)["'`]/);if(!e)continue;let f=b.match(/description:\s*["'`]([^"'`]+)["'`]/),g=b.match(/events:\s*\[([^\]]+)\]/),h=g?g[1].replace(/["'`\s]/g,"").split(",").filter(Boolean).join(", "):void 0;c.push({name:e[1],description:f?.[1],eventScope:h,id:"",enabled:!0})}return c}async function J(){let a=process.env.FAILPROOFAI_LAUNCH_CWD||process.cwd(),b=(0,m.readMergedHooksConfig)(a),c=new Set(b.disabledCustomPolicies??[]),d=p.HOOK_SCOPES.filter(a=>B(a)),e=y(d[0]??"user"),g=(0,q.listIntegrations)().map(a=>({id:a.id,label:(0,F.getCliLabel)(a.id),installed:a.hooksInstalledInSettings("user"),settingsPath:a.getSettingsPath("user"),detected:a.detectInstalled()})),h=[],i=[];try{let a=(0,v.readInstalledPacks)();h=a.packs,i=a.errors}catch{}let k=[];for(let a of h){let d=a.enabled??a.policies.map(a=>a.name);for(let e of a.policies)k.push({name:e.name,description:e.description,category:e.category,defaultEnabled:e.defaultEnabled,beta:!1,enabled:d.includes(e.name)&&!c.has(`pack:${a.id}@${a.version}:${e.name}`),eventScope:function(a){let b=a.events?.join(", ")??"",c=a.toolNames?` \xb7 ${a.toolNames.join(", ")}`:"";return`${b}${c}`}(e.match),packId:a.id,packVersion:a.version,...e.params?{params:Object.fromEntries(Object.entries(e.params).map(([a,b])=>[a,{type:b.type,description:b.description,default:b.default}])),currentParams:function(a,b,c){if(!a)return;let d=a[`pack/${b}/${c}`];return d||(b.toLowerCase()===j.CORE_SOURCE.toLowerCase()?a[c]:void 0)}(b.policyParams,a.id,e.name)??{}}:{}})}let l=(0,m.configuredCustomPolicyPaths)(b),n=(0,m.findProjectConfigDir)(a),o=l.map(a=>(0,f.resolve)(n,a)),r=(await Promise.all(o.map(async a=>{try{return(await I(a)).map(b=>{let d=(0,s.customPolicyId)(a,b.name);return{...b,id:d,enabled:!c.has(d)}})}catch{return[]}}))).flat(),t=await H(c,new Set(o)),u=h.map(a=>{let b=a.enabled??a.policies.map(a=>a.name);return{id:a.id,version:a.version,source:a.source,effect:a.effect,policies:a.policies.map(d=>({name:d.name,description:d.description,category:d.category,enabled:b.includes(d.name)&&!c.has(`pack:${a.id}@${a.version}:${d.name}`)}))}});for(let a of i)u.push({id:a.id??"(unnamed pack)",version:"",source:"",effect:"enforce",policies:[],error:a.reason});return{enabledPolicies:b.enabledPolicies,installedScopes:d,settingsPath:e,clis:g,policies:k,customPoliciesPaths:l.length?l:void 0,customPoliciesPath:1===l.length?l[0]:void 0,customPolicies:r.length?r:void 0,conventionPolicies:t,packs:u}}async function K(a,b){let c=(0,m.readHooksConfig)(),d=new Set(c.enabledPolicies);b?d.add(a):d.delete(a),(0,m.writeHooksConfig)({...c,enabledPolicies:[...d]});try{let c=(0,l.getInstanceId)();await (0,k.trackHookEvent)(c,"policy_toggled",{policy_name:a,enabled:b,action:b?"enable":"disable",source:"web"})}catch{}}async function L(a,b){if(!a.startsWith("custom:")&&!a.startsWith("convention:"))throw Error("Invalid custom policy ID");let c=process.env.FAILPROOFAI_LAUNCH_CWD||process.cwd();if(b){for(let b of p.HOOK_SCOPES){let d=(0,m.readScopedHooksConfig)(b,c);if(!d.disabledCustomPolicies?.includes(a))continue;let e=d.disabledCustomPolicies.filter(b=>b!==a),f={...d,disabledCustomPolicies:e};e.length||delete f.disabledCustomPolicies,(0,m.writeScopedHooksConfig)(f,b,c)}return}let d=(0,m.readHooksConfig)(),e=new Set(d.disabledCustomPolicies??[]);e.add(a);let f={...d,disabledCustomPolicies:[...e]};e.size||delete f.disabledCustomPolicies,(0,m.writeHooksConfig)(f)}async function M(a,b){let c=a.trim();if(!c)return{ok:!1,error:"Enter a pack source, for example acme/ops"};try{let a=await (0,j.addPackFromSource)(c,b??{});return{ok:!0,id:a.id,version:a.version,enabled:a.enabled,available:a.available}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function N(){try{let a=await (0,j.addPack)(j.CORE_SOURCE);return{ok:!0,id:a.id,version:a.version,enabled:a.enabled,available:a.available}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function O(a){let b;try{b=(0,j.removePack)(a)}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}return b?{ok:!0,id:b}:{ok:!1,error:`No installed pack with id ${a}`}}async function P(a,b,c){let d=(0,j.setPackPolicyEnabled)(a,b,c);if(!d.ok)return{ok:!1,error:d.reason};if(c){let c=(0,v.readInstalledPacks)().packs.find(b=>b.id===a);if(c){let a=`pack:${c.id}@${c.version}:${b}`,d=(0,m.readHooksConfig)(),e=(d.disabledCustomPolicies??[]).filter(b=>b!==a);if(e.length!==(d.disabledCustomPolicies??[]).length){let{disabledCustomPolicies:a,...b}=d;(0,m.writeHooksConfig)(e.length>0?{...b,disabledCustomPolicies:e}:b)}}}return{ok:!0,id:a}}async function Q(a){let b=a.trim();if(!b)return{ok:!1,error:"Enter a pack source, for example acme/ops"};try{let a=await (0,j.fetchPackPreview)(b);return{ok:!0,id:a.id,version:a.version,source:a.source,effect:a.effect,policies:a.policies.map(a=>({name:a.name,description:a.description,category:a.category,defaultEnabled:a.defaultEnabled})),...a.semantic.length>0?{semantic:a.semantic.map(a=>a.name)}:{},...a.minCliVersion?{minCliVersion:a.minCliVersion}:{}}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function R(a="user",b){let c=(0,m.readHooksConfig)(),d=c.enabledPolicies.length>0?c.enabledPolicies:r.BUILTIN_POLICIES.filter(a=>a.defaultEnabled&&!a.beta).map(a=>a.name),e=b&&b.length>0?b:(0,q.detectInstalledClis)(),f=e.length>0?e:["claude"];await C(d,a,void 0,!1,"web",void 0,!1,f)}async function S(a="user",b){let c=b&&b.length>0?b:(0,q.detectInstalledClis)(),d=c.length>0?c:["claude"];await E(void 0,a,void 0,{source:"web",cli:d})}async function T(a,b){let c=(0,m.readHooksConfig)(),d={...c.policyParams??{},[a]:b};(0,m.writeHooksConfig)({...c,policyParams:d});try{let c=(0,l.getInstanceId)();await (0,k.trackHookEvent)(c,"policy_params_updated",{policy_name:a,param_keys:Object.keys(b),source:"web"})}catch{}}(0,h.ensureServerEntryExports)([J]),(0,d.registerServerReference)(J,"005d50a3542dd156e877450e17a1d14a3e13658453",null),(0,h.ensureServerEntryExports)([K,L]),(0,d.registerServerReference)(K,"607615204bc3ae233fcea3424bbee9ca3bab6e9faf",null),(0,d.registerServerReference)(L,"60f610546dfc62d41cc851de7ec63c4c417a75f886",null),(0,h.ensureServerEntryExports)([M,N,O,P,Q]),(0,d.registerServerReference)(M,"60418124647175cf2e77fbbbdcc290a56a9d436862",null),(0,d.registerServerReference)(N,"005c0ce54eeb9aab017ab14bd53f4a1b57ee2d37f9",null),(0,d.registerServerReference)(O,"40a79c2d14b59bc91ca140a1bb81e485e11b0f8da5",null),(0,d.registerServerReference)(P,"703d52bdd80f5fcca2dce83a610727293df45cc65a",null),(0,d.registerServerReference)(Q,"40bf8376d6df82e21ed057e7ef48b9e9be9798e3f4",null),(0,h.ensureServerEntryExports)([R,S]),(0,d.registerServerReference)(R,"60e454ae7780c51cd605770dc46b2eba7eb04c95d0",null),(0,d.registerServerReference)(S,"60466260d9530d9065addd78a16cdc91e789ebb53c",null),(0,h.ensureServerEntryExports)([T]),(0,d.registerServerReference)(T,"60bf363329f35015959cd0689ed4047590c33d139b",null),a.s([],96801),a.i(96801),a.s(["002b3cc50212764fbf57f8ead598d92ef778ab1cb4",()=>b.getTelemetryConfig,"005c0ce54eeb9aab017ab14bd53f4a1b57ee2d37f9",0,N,"005d50a3542dd156e877450e17a1d14a3e13658453",0,J,"0089ea2980918808d33a15d8c1aa19f95f74499a34",0,i,"401699c12f95349d737e04f8915b93ebf2ee5fe3d3",()=>c.getHookActivityAction,"40a79c2d14b59bc91ca140a1bb81e485e11b0f8da5",0,O,"40bf8376d6df82e21ed057e7ef48b9e9be9798e3f4",0,Q,"60109a5b051daeeed9cd6c3657f8eccf314888ae28",()=>c.searchHookActivityAction,"60418124647175cf2e77fbbbdcc290a56a9d436862",0,M,"60466260d9530d9065addd78a16cdc91e789ebb53c",0,S,"60bf363329f35015959cd0689ed4047590c33d139b",0,T,"60e454ae7780c51cd605770dc46b2eba7eb04c95d0",0,R,"60f610546dfc62d41cc851de7ec63c4c417a75f886",0,L,"703d52bdd80f5fcca2dce83a610727293df45cc65a",0,P],73338)}];
|
|
17
17
|
|
|
18
18
|
//# sourceMappingURL=_next-internal_server_app_policies_page_actions_1sp2-yo.js.map
|
package/.next/standalone/.next/server/chunks/ssr/app_actions_get-scheduled-audit_ts_0ei9sni._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[36119,81243,87481,55113,41289,a=>{"use strict";var b=a.i(37936),c=a.i(21572),d=a.i(2157),e=a.i(75818),f=a.i(8284),g=a.i(15501),h=a.i(50227),i=a.i(8674),j=a.i(93328);function k(){return(process.env.FAILPROOF_API_URL??process.env.FAILPROOFAI_API_URL??"https://api.befailproof.ai").replace(/\/+$/,"")}class l extends Error{status;code;retryAfterSecs;constructor(a,b,c,d){super(c),this.status=a,this.code=b,this.retryAfterSecs=d,this.name="AuthApiError"}}async function m(a){let b={};try{b=await a.json()}catch{}let c=b.code??`http_${a.status}`,d=b.message??b.detail??a.statusText??"request failed",e=b.retry_after_secs;if(void 0===e){let b=a.headers.get("retry-after");if(b){let a=Number(b);Number.isFinite(a)&&(e=a)}}return void 0!==e&&(e=Math.max(0,Math.min(86400,e))),new l(a.status,c,d,e)}async function n(a,b){try{return await fetch(a,{...b,signal:function(a){let b=AbortSignal.timeout(1e4);if(!a)return b;let c=AbortSignal.any;if(c)return c([b,a]);let d=new AbortController;if(b.aborted)d.abort(b.reason);else b.addEventListener("abort",()=>d.abort(b.reason),{once:!0});if(a.aborted)d.abort(a.reason);else a.addEventListener("abort",()=>d.abort(a.reason),{once:!0});return d.signal}(b.signal??void 0)})}catch(d){let c=function(a){if(null===a||"object"!=typeof a)return!1;let b=a.name;return"AbortError"===b||"TimeoutError"===b}(d);if((0,j.trackEvent)("api_server_unreachable",{kind:c?"timeout":"network",path:function(a){try{return new URL(a).pathname}catch{return a}}(a),method:"string"==typeof b.method?b.method:"GET"}),c)throw new l(0,"timeout",`request to ${a} timed out after 10000ms`);throw d}}async function o(a,b,c){let d={"content-type":"application/json"};c?.accessToken&&(d.authorization=`Bearer ${c.accessToken}`);let e=await n(`${k()}${a}`,{method:"POST",headers:d,body:JSON.stringify(b)});if(204!==e.status){if(!e.ok)throw await m(e);return await e.json()}}async function p(a,b){let c=await n(`${k()}${a}`,{method:"GET",headers:{authorization:`Bearer ${b}`}});if(!c.ok)throw await m(c);return await c.json()}async function q(a){return o("/v0/auth/token/refresh",{refresh_token:a})}async function r(a){return p("/v0/auth/me",a)}function s(){let a=process.env.FAILPROOFAI_AUTH_DIR;return a?(0,h.join)(a,"session.json"):(0,e.auditSessionFile)()}function t(){let a=s();if(!(0,d.existsSync)(a))return null;try{let b=(0,d.readFileSync)(a,"utf-8"),c=JSON.parse(b);if("string"!=typeof c.access_token||"string"!=typeof c.refresh_token||"number"!=typeof c.access_expires_at||"object"!=typeof c.user||!c.user||"string"!=typeof c.user.id||"string"!=typeof c.user.email)return null;return{access_token:c.access_token,refresh_token:c.refresh_token,access_expires_at:c.access_expires_at,refresh_expires_at:"number"==typeof c.refresh_expires_at?c.refresh_expires_at:c.access_expires_at,user:{id:c.user.id,email:c.user.email}}}catch{return null}}function u(){let a=s();(0,d.existsSync)(a)&&(0,d.rmSync)(a,{force:!0});try{let a=(0,e.migrationsDir)();if(!(0,d.existsSync)(a))return;for(let b of(0,d.readdirSync)(a)){if(!b.startsWith("backup-layout"))continue;let c=(0,h.resolve)(a,b,"auth.json");(0,d.existsSync)(c)&&(0,d.rmSync)(c,{force:!0})}}catch{}}let v=new Map;async function w(a){let b=v.get(a.refresh_token);if(b)return b;let c=(async()=>{let b=function(a,b){let c=Math.floor(Date.now()/1e3),d=a.user??b;if(!d)throw Error("authFromTokenResponse: missing user identity");return{access_token:a.access_token,refresh_token:a.refresh_token,access_expires_at:c+a.access_expires_in,refresh_expires_at:c+a.refresh_expires_in,user:d}}(await q(a.refresh_token),a.user);return(0,i.writeJsonAtomically)(s(),b),b})();v.set(a.refresh_token,c);try{return await c}finally{v.delete(a.refresh_token)}}async function x(){let a=t();if(!a)return null;let b=Math.floor(Date.now()/1e3);if(a.access_expires_at-b>60)return a;try{return await w(a)}catch(a){return a instanceof l&&401===a.status&&u(),null}}async function y(){let a=await x();if(!a)return null;try{return{me:await r(a.access_token),auth:a}}catch(a){if(a instanceof l&&401===a.status){let a=t();if(!a)return null;try{let b=await w(a);return{me:await r(b.access_token),auth:b}}catch(a){a instanceof l&&401===a.status&&u()}}return null}}a.s(["readAuth",0,t,"whoAmI",0,y],81243);var z=a.i(13095);async function A(){let a=(0,c.readConfig)(),b=function(){let a,b;try{a=(0,d.readFileSync)((0,e.auditScheduleFile)(void 0),"utf8")}catch{return null}try{b=JSON.parse(a)}catch{return null}if(!b||"object"!=typeof b||Array.isArray(b))return null;let c=b,f=a=>"number"==typeof a&&Number.isFinite(a)?a:null,g=f(c.schema);return{schema:g,nextDueAtMs:f(c.next_due_at_ms),lastAttemptAtMs:f(c.last_attempt_at_ms),lastRunAtMs:f(c.last_run_at_ms),lastExitCode:f(c.last_exit_code),schemaAhead:null!==g&&g>1}}(),h=(0,g.readDashboardCacheMeta)(),i=t(),j=(0,f.daemonServiceStatus)();return{auto:a.audit.auto,intervalDays:a.audit.intervalDays,signedInAs:i?{id:i.user.id,email:i.user.email}:null,daemon:j,schedule:b?{nextDueAtMs:b.nextDueAtMs,lastAttemptAtMs:b.lastAttemptAtMs,lastRunAtMs:b.lastRunAtMs,lastExitCode:b.lastExitCode,schemaAhead:b.schemaAhead}:null,lastResultAt:h?.cachedAt??null,lastScan:h?{finishedAt:h.cachedAt,findings:h.findings,sessionsScanned:h.sessionsScanned,eventsScanned:h.eventsScanned}:null,daemonStartedAtMs:"running"===j?(0,f.daemonStartedAtMs)():null}}function B(a){return"off"===a||"observe"===a||"enforce"===a?a:null}(0,z.ensureServerEntryExports)([A]),(0,b.registerServerReference)(A,"007cb04a000f802db12d1e2a647f435278fccef0ea",null),a.s(["getScheduledAuditAction",0,A],36119);let C="enforce",D=["typesafe","openrouter","vercel","cloudflare","custom","failproofai"],E="failproofai",F="FAILPROOFAI_JEV_API_KEY",G=d.constants.O_RDONLY|(d.constants.O_NONBLOCK??0);function H(){return(0,e.jevConfigFile)()}let I=/^(?:(?:typesafe|typesafe-ai)\/)?jev-(\d{1,4})\.(\d{1,4})(?:\.(\d{1,6}))?(?:-(\d{8}))?$/,J=/^[0-9a-f]{32}$/,K=/^[\x21-\x7e]{1,4096}$/,L=/^[A-Za-z0-9._:/@~+-]{1,200}$/,M=new Set(["localhost","127.0.0.1","[::1]","::1"]);function N(a){return"string"!=typeof a||0===a.length?"the API key is empty":K.test(a)?null:"the API key must be one line of visible ASCII with no spaces (at most 4096 characters)"}let O=["key","token","secret","password","passwd","credential","auth","signature"],P=new Set(["pw","pass","sig","sid","jwt","bearer","session","code","access"]),Q=/^[A-Za-z0-9._-]{1,40}$/;function R(a){let b;if("string"!=typeof a||""===a.trim())return{ok:!1,problem:"baseUrl must be a non-empty string"};try{b=new URL(a.trim())}catch{return{ok:!1,problem:"baseUrl is not a valid URL"}}if("https:"!==b.protocol&&!("http:"===b.protocol&&M.has(b.hostname)))return{ok:!1,problem:"baseUrl must use https (plain http is accepted only for localhost)"};if(b.username||b.password)return{ok:!1,problem:"baseUrl must not carry credentials; put the key in the key field"};if(b.hash)return{ok:!1,problem:"baseUrl must not have a #fragment"};let c=function(a){for(let[b,c]of a.searchParams){let a=Q.test(b)?`?${b}=`:"one of its query parameters",d=b.toLowerCase().replace(/[^a-z0-9]/g,"");if(O.some(a=>d.includes(a))||P.has(d))return`baseUrl must not carry a credential in its query string, and ${a} is one; put the key in the key field`;if(X(c))return`baseUrl's ${a} value is shaped like a credential (not repeated here); put the key in the key field`}return null}(b);return c?{ok:!1,problem:c}:(b.pathname=b.pathname.replace(/\/+$/,"")||"/",{ok:!0,value:b.toString()})}function S(a){try{let b=new URL(a);if(!b.search&&!b.username&&!b.password)return{url:a,hadQuery:!1};let c=""!==b.search;return b.search="",b.username="",b.password="",{url:b.toString(),hadQuery:c}}catch{let b=a.indexOf("?");return{url:(b<0?a:a.slice(0,b)).replace(/^([^:/?#]+:\/\/)[^/?#]*@/,"$1"),hadQuery:b>=0}}}let T=["/chat/completions","/systemone","/completions","/embeddings","/models"],U={"api.typesafe.ai":"typesafe","openrouter.ai":"openrouter","ai-gateway.vercel.sh":"vercel","api.cloudflare.com":"cloudflare"};function V(a){try{let b=new URL(a);if("https:"!==b.protocol&&!("http:"===b.protocol&&M.has(b.hostname)))return null;return b.origin}catch{return null}}let W=/^(?:(?:sk|rk)[-_]|gh[pousr]_|github_pat_|glpat-|xox[abprs]-|AKIA[0-9A-Z]{12}|AIza[0-9A-Za-z_-]{20}|hf_[A-Za-z0-9]{16}|vck_)/;function X(a){return!!W.test(a)||a.length>=32&&!a.includes("/")&&!/jev/i.test(a)&&/[A-Za-z]/.test(a)&&/[0-9]/.test(a)}function Y(a,b,c){let d;if(!a||"object"!=typeof a||Array.isArray(a))return{ok:!1,problem:"the file must hold a JSON object"};let e=a.provider;if("string"!=typeof e||!D.includes(e))return{ok:!1,problem:`provider must be one of ${D.join(", ")}`};if(e===E){if(void 0!==a.apiKey)return{ok:!1,problem:"provider failproofai takes its key from this machine's FailproofAI Cloud connection (credentials.json), never from jev.json — remove apiKey from the file (not repeated here)"};if(!c)return{ok:!1,problem:"this machine is not connected to FailproofAI Cloud with a key that carries jev:evaluate — connect it with: failproofai config --token <key>",notConnected:!0};let b=N(c.key);if(b)return{ok:!1,problem:`the FailproofAI Cloud key in credentials.json is unusable: ${b}`};d=c.key}else if(void 0!==a.apiKey){let b=N(a.apiKey);if(b)return{ok:!1,problem:b};d=a.apiKey}else{if(null==b||""===b)return{ok:!1,problem:`no API key: set apiKey in the file (failproofai jev setup), or ${F} for this session`,missingKey:!0};let a=N(b);if(a)return{ok:!1,problem:`${F} is set but invalid: ${a}`};d=b}let f={provider:e,apiKey:d,mode:C,timeoutMs:3e3};if(void 0!==a.baseUrl){let b=R(a.baseUrl);if(!b.ok)return b;f.baseUrl=b.value}else if("custom"===e||e===E)return{ok:!1,problem:`provider ${e} needs a baseUrl`};if(e===E&&c){let a=V(c.url),b=V(f.baseUrl);if(null===a)return{ok:!1,problem:"the FailproofAI Cloud credential in credentials.json names no usable origin — reconnect: failproofai config --token <key>"};if(b!==a)return{ok:!1,problem:`baseUrl is on ${b??"an unusable origin"}, but this machine's FailproofAI Cloud key was issued for ${a} — the key is only ever sent to the origin it was issued for. Point jev.json back at it: failproofai jev setup --provider failproofai`};f.credentialOrigin=a}if("cloudflare"===e){if("string"!=typeof a.accountId||!J.test(a.accountId))return{ok:!1,problem:"provider cloudflare needs accountId: 32 lowercase hex characters"};f.accountId=a.accountId}if(void 0!==a.model){let b=function(a){let b;if("string"!=typeof a||!L.test(a))return{ok:!1,problem:"model must be 1–200 characters of letters, digits and . _ : / @ ~ + -"};if(X(a))return{ok:!1,problem:"model looks like an API key, not a model id (not repeated here). The key goes on stdin: failproofai jev setup --key-stdin"};let c=(b=I.exec(a))?{major:Number(b[1]),minor:Number(b[2]),patch:void 0===b[3]?null:Number(b[3]),date:b[4]??null}:null;return c&&(1!==c.major||13!==c.minor)?{ok:!1,problem:`model ${a} names Jev ${c.major}.${c.minor}, but the thresholds are calibrated for Jev 1.13 — every call would fall back to regex`}:{ok:!0,value:a}}(a.model);if(!b.ok)return b;if(b.value===d)return{ok:!1,problem:"model is the API key (not repeated here); give the model id, or leave --model out for the provider's default"};f.model=b.value}if(void 0!==a.timeoutMs){let b=a.timeoutMs;if("number"!=typeof b||!Number.isInteger(b)||b<100||b>1e4)return{ok:!1,problem:"timeoutMs must be a whole number of milliseconds from 100 to 10000"};f.timeoutMs=b}if(void 0!==a.mode){let b=B(a.mode);if(null===b)return{ok:!1,problem:'mode must be "off", "observe" or "enforce"'};f.mode=b}return void 0!==f.baseUrl&&function(a){try{return"http:"===new URL(a).protocol}catch{return!1}}(f.baseUrl)&&"enforce"===f.mode?{ok:!1,problem:"plain http (to localhost) is accepted only with mode observe: in enforce mode Jev's answers can clear a deny, and while the local proxy is down any process on this machine could take its port and answer. "+(f.provider===E?"Reconnect to an https FailproofAI Cloud URL (failproofai config --token <key> --url https://…), or keep mode observe":"Use https, or mode observe")}:{ok:!0,value:f}}function Z(a){if(a.provider!==E)return Y(a);let{apiKey:b,credentialOrigin:c,...d}=a;return"string"!=typeof c||""===c?{ok:!1,problem:"this FailproofAI Cloud config names no credential origin — it did not come from the loader, so its key is not sent anywhere"}:Y(d,null,{url:c,key:b})}let $="supplied-by-the-environment";function _(a){aa();try{let b=511&(0,d.statSync)((0,h.dirname)(a)).mode;return(18&b)!=0?b:null}catch{return null}}function aa(){return"win32"!==process.platform}function ab(){let a,b,e,f,g=H();try{a=(0,d.openSync)(g,G)}catch(b){let a=b.code;if("ENOENT"===a||"ENOTDIR"===a)return{status:"absent",path:g};return{status:"refused",path:g,mode:null,reason:"unreadable",problem:`cannot open it (${a??"error"})`}}let i=null;try{let c=(0,d.fstatSync)(a);if(!c.isFile())return{status:"refused",path:g,mode:null,reason:"unreadable",problem:"it is not a regular file"};i=511&c.mode;let e=()=>{let b=Buffer.alloc(c.size),e=0;for(;e<b.length;){let c=(0,d.readSync)(a,b,e,b.length-e,e);if(0===c)break;e+=c}return b.subarray(0,e).toString("utf8")};if(aa()&&(63&i)!=0){let a=!1;try{a=c.size<=65536&&function(a){try{let b=JSON.parse(a);return null!==b&&"object"==typeof b&&!Array.isArray(b)&&void 0===b.apiKey}catch{return!1}}(e())}catch{}let b=i.toString(8).padStart(4,"0");return{status:"refused",path:g,mode:i,reason:"too-open",problem:a?(18&i)!=0?`its permissions are ${b}; other users could change it, and with it where Jev sends tool calls and prompts, so it must be owner-only (chmod 600 ${g})`:`its permissions are ${b}; it must be owner-only (chmod 600 ${g})`:`its permissions are ${b}; it holds a key, so it must be owner-only (chmod 600 ${g})`,fix:`chmod 600 ${g}`,...a?{keyless:!0}:{}}}let f=_(g);if(null!==f)return{status:"refused",path:g,mode:i,reason:"too-open",problem:`its directory ${(0,h.dirname)(g)} is ${f.toString(8).padStart(4,"0")} — other users can write there, so they can put their own config in its place; it must be owner-only (chmod 700 ${(0,h.dirname)(g)})`,fix:`chmod 700 ${(0,h.dirname)(g)}`};if(c.size>65536)return{status:"refused",path:g,mode:i,reason:"too-large",problem:"it is larger than 65536 bytes"};b=e()}catch(a){return{status:"refused",path:g,mode:i,reason:"unreadable",problem:`cannot read it (${a.code??"error"})`}}finally{try{(0,d.closeSync)(a)}catch{}}try{e=JSON.parse(b)}catch{return{status:"refused",path:g,mode:i,reason:"not-json",problem:"it is not valid JSON"}}let j=null===e||"object"!=typeof e||Array.isArray(e)?null:e;if(j?.mode==="off"){let a=Y(e,$,ae(j));return a.ok?{status:"off",path:g,mode:i,routing:ad(a.value)}:{status:"refused",path:g,mode:i,reason:"invalid",problem:a.problem}}if(j?.provider===E){let a=(0,c.readJevCloudCredential)();if("refused"===a.status)return{status:"refused",path:g,mode:i,reason:"too-open"===a.reason?"too-open":"unreadable",problem:`the FailproofAI Cloud credential was refused: ${a.problem}`,...a.fix?{fix:a.fix}:{},credentialsMode:a.mode};let b=Y(e,null,"ok"===a.status?a.credential:null);if(b.ok)return{status:"ok",path:g,mode:i,keySource:"cloud",config:b.value};if(!0===b.notConnected){let c=Y(e,null,ae(j));return c.ok?"absent"===a.status&&a.connected?{status:"key-lacks-jev",path:g,mode:i,routing:ad(c.value),problem:ac}:{status:"not-connected",path:g,mode:i,routing:ad(c.value),problem:b.problem}:{status:"refused",path:g,mode:i,reason:"invalid",problem:c.problem}}return{status:"refused",path:g,mode:i,reason:"invalid",problem:b.problem}}let k=Y(e,void 0===(f=process.env[F])||""===f?null:f);if(!k.ok){if(!0===k.missingKey){let a=Y(e,$);return a.ok?{status:"key-missing",path:g,mode:i,routing:ad(a.value),problem:`it carries no apiKey, so the key comes from ${F} — which is not set in this environment`}:{status:"refused",path:g,mode:i,reason:"invalid",problem:a.problem}}return{status:"refused",path:g,mode:i,reason:"invalid",problem:k.problem}}return{status:"ok",path:g,mode:i,keySource:void 0!==e.apiKey?"file":"env",config:k.value}}let ac="this machine is connected to FailproofAI Cloud, but no Jev key is stored for that connection (its key lacks jev:evaluate, or the connect could not confirm it)";function ad(a){let b={provider:a.provider,mode:a.mode,timeoutMs:a.timeoutMs};return void 0!==a.baseUrl&&(b.baseUrl=a.baseUrl),void 0!==a.accountId&&(b.accountId=a.accountId),void 0!==a.model&&(b.model=a.model),b}function ae(a){let b="https://stand-in.invalid";if("string"==typeof a.baseUrl)try{b=new URL(a.baseUrl.trim()).origin}catch{}return{url:b,key:$}}function af(){let a,b=H();try{a=(0,d.openSync)(b,G)}catch{return null}try{let c=(0,d.fstatSync)(a);if(!c.isFile()||c.size>65536)return null;let e=Buffer.alloc(c.size),f=0;for(;f<e.length;){let b=(0,d.readSync)(a,e,f,e.length-f,f);if(0===b)break;f+=b}let g=JSON.parse(e.subarray(0,f).toString("utf8"));if(!g||"object"!=typeof g||Array.isArray(g))return null;aa();let h=511&c.mode,i=null!==h&&((63&h)!=0||null!==_(b));return{raw:g,mode:h,tooOpen:i}}catch{return null}finally{try{(0,d.closeSync)(a)}catch{}}}function ag(){return af()?.raw??null}a.s(["CLOUDFLARE_ACCOUNT_ID_RE",0,J,"DEFAULT_JEV_MODE",0,C,"JEV_API_KEY_ENV",0,F,"JEV_CLOUD_PROVIDER",0,E,"JEV_PROVIDER_KINDS",0,D,"baseUrlWithoutQuery",0,S,"endpointGivenAsBase",0,function(a){let b;try{b=new URL(a)}catch{return null}let c=b.pathname.replace(/\/+$/,""),d=T.find(a=>c.toLowerCase().endsWith(a));return void 0===d?null:(b.pathname=c.slice(0,c.length-d.length)||"/",{suffix:d,base:b.toString()})},"inspectJevConfig",0,ab,"jevConfigPath",0,H,"looksLikeCredential",0,X,"parseJevMode",0,B,"providerHostConflict",0,function(a,b){let c=function(a){try{return U[new URL(a).hostname.toLowerCase()]??"custom"}catch{return"custom"}}(b);if("custom"===c||c===a)return null;let d=new URL(b).host;return"custom"!==a?`${d} is ${c}'s endpoint, not ${a}'s`:"cloudflare"===c?`${d} is Cloudflare Workers AI, which provider custom cannot reach — its endpoint is per-account and its answers are wrapped, and a custom endpoint is asked in TypeSafe's own shape at <url>/systemone`:null},"readJevConfigFileForUpdate",0,af,"readJevConfigForUpdate",0,ag,"validateApiKey",0,N,"validateBaseUrl",0,R,"validateJevConfig",0,Y,"validateLoadedJevConfig",0,Z],87481),a.i(60526);let ah={typesafe:{baseUrl:"https://api.typesafe.ai/v1",model:"jev-1.13.0"},openrouter:{baseUrl:"https://openrouter.ai/api/v1",model:"typesafe/jev-1.13"},vercel:{baseUrl:"https://ai-gateway.vercel.sh/typesafe/v1",model:"typesafe-ai/jev"},cloudflare:{baseUrl:"https://api.cloudflare.com/client/v4",model:"typesafe/jev"},custom:{baseUrl:null,model:"jev-1.13.0"},failproofai:{baseUrl:null,model:"jev-1.13.0"}};class ai extends Error{code;retryAfter;constructor(a,b,c={}){super(function(a){return a.replace(/[\u0000-\u001f\u007f-\u009f]/g," ")}(b)),this.name="JevError",this.code=a,this.retryAfter=c.retryAfter??null}}function aj(a){let b=new URL(a);return/\/systemone$/.test(b.pathname)||(b.pathname=`${b.pathname.replace(/\/+$/,"")}/systemone`),b.toString()}function ak(a){let b=function(a){let b=Z(a);if(!b.ok)throw new ai("config",b.problem);return b.value}(a),c=ah[b.provider],d=b.model??c.model,e=void 0===b.model;if("cloudflare"===b.provider)return{via:"cloudflare",endpoint:function(a,b){if(!b)return((a,b=ah.cloudflare.baseUrl)=>`${b.replace(/\/+$/,"")}/accounts/${a}/ai/run`)(a);let c=new URL(b);return/\/ai\/run$/.test(c.pathname)||(c.pathname=`${c.pathname.replace(/\/+$/,"")}/accounts/${a}/ai/run`),c.toString()}(b.accountId,b.baseUrl),model:d,modelIsDefault:e};let f=b.baseUrl??c.baseUrl;if(!f)throw new ai("config",`provider ${b.provider} needs a baseUrl`);return{via:b.provider,endpoint:aj(f),model:d,modelIsDefault:e}}function al(a){try{let b=new URL(a),c=`${b.origin}${b.pathname}`;return b.search?`${c}?…`:c}catch{return"(invalid URL)"}}a.s(["displayEndpoint",0,al,"endpointAsBaseReason",0,function(a){let b=aj(a);return b===new URL(a).toString()?"That is already the Jev endpoint itself: this field takes the base it sits under (where <base>/models is read), and failproofai adds /systemone on its own.":`A Jev request goes to <base>/systemone, and failproofai appends that itself, so ${al(a)} would be asked at ${al(b)}.`},"jevRoute",0,ak],55113);var am=a.i(1144);let an=["evaluator","jevDecision","jevCleared","jevFallbackReason","jevLatencyMs","jevModel","jevMode"],ao=new Set(["jev","jev-fallback"]),ap=new Set(["allow","instruct","deny"]),aq=new Set(["observe","enforce"]),ar=/^([a-z0-9]+(?:-[a-z0-9]+)*)\s*(?:$|[:(])/,as=/^http-\d{3}$/,at="other",au=new Set(["aborted","cloudflare-error","cloudflare-incomplete","config","error","malformed","model-mismatch","network","no-api-key","no-transport","other","out-of-credits","prepare-error","provider-refused","rate-limited","request-cut","request-too-large","timeout","truncated","unavailable","upstream-error"]),av=new Map([["prepare","prepare-error"],["error","error"],["timeout","timeout"],["network","network"],["malformed","malformed"],["truncated","truncated"],["rate-limited","rate-limited"],["out-of-credits","out-of-credits"],["model-mismatch","model-mismatch"],["request-too-large","request-too-large"],["config","config"]]),aw=/^[A-Za-z0-9._:/@~+-]{1,200}$/,ax=/[\u0000-\u001f\u007f-\u009f\u2028\u2029]/,ay=/^(?:custom|pack|cloud|failproofai|\.failproofai-[A-Za-z0-9_-]{1,32})\//;function az(a){return!("string"!=typeof a||0===a.length||[...a].length>200||ax.test(a))&&(!/\s/.test(a)||ay.test(a))}function aA(a){if(!an.some(b=>void 0!==a[b]))return a;let b={...a},c=a=>{delete b[a]};"string"==typeof b.evaluator&&ao.has(b.evaluator)||c("evaluator"),"string"==typeof b.jevDecision&&ap.has(b.jevDecision)||c("jevDecision");let d=void 0!==b.jevMode&&!("string"==typeof b.jevMode&&aq.has(b.jevMode));if("string"==typeof b.jevMode&&aq.has(b.jevMode)||c("jevMode"),d&&c("jevCleared"),Array.isArray(b.jevCleared)){let a=[...new Set(b.jevCleared.filter(az))].slice(0,64);b.jevCleared=a}else c("jevCleared");let e=function(a){if("string"!=typeof a)return;let b=a.trim().toLowerCase();if(0===b.length)return;let c=ar.exec(b)?.[1];if(void 0===c||c.length>40)return at;if(as.test(c))return c;let d=av.get(c)??c;return au.has(d)?d:at}(b.jevFallbackReason);return void 0===e?c("jevFallbackReason"):b.jevFallbackReason=e,"number"==typeof b.jevLatencyMs&&Number.isFinite(b.jevLatencyMs)&&b.jevLatencyMs>=0?b.jevLatencyMs=Math.round(b.jevLatencyMs):c("jevLatencyMs"),"string"==typeof b.jevModel&&aw.test(b.jevModel.trim())?b.jevModel=b.jevModel.trim():c("jevModel"),b}function aB(a){return"number"!=typeof a||Number.isNaN(a)||a<=0?864e5:Math.min(a,7776e6)}function aC(a){return"number"==typeof a&&Number.isFinite(a)?a:Date.now()}function aD(a,b){if(0===a.length)return null;let c=Math.ceil(b/100*a.length);return a[Math.min(a.length,Math.max(1,c))-1]}class aE{counts=new Map;bump(a){this.counts.set(a,(this.counts.get(a)??0)+1)}toRecord(){return Object.fromEntries(this.counts)}}async function aF(a={}){let b=aB(a.windowMs),c=aC(a.now),d=[];try{d=(0,am.getHookActivityEntriesSince)(c-b)}catch{d=[]}return function(a,b={}){let c=aB(b.windowMs),d=aC(b.now),e=d-c,f={windowMs:c,total:0,fallbackRate:0,fallbackReasons:{},latencyP50Ms:null,latencyP95Ms:null,clearsByPolicy:{},since:e,answered:0,fallbacks:0,notConsulted:0,noRequest:0,decisions:{allow:0,instruct:0,deny:0},modes:{observe:0,enforce:0},observeClearsByPolicy:{},models:{}},g=[],h=new aE,i=new aE,j=new aE,k=new aE;for(let b of a){var l;if("number"!=typeof b.timestamp||b.timestamp<e||b.timestamp>d)continue;let a=aA(b),c="jev-fallback"===(l=aA(a)).evaluator?"fallback":"jev"!==l.evaluator?null:void 0!==l.jevCleared||void 0!==l.jevLatencyMs||void 0!==l.jevModel||"deny"===l.jevDecision||"instruct"===l.jevDecision?"answered":"allow"===l.jevDecision?"no-request":"not-consulted";if(null===c)continue;if("not-consulted"===c){f.notConsulted+=1;continue}if("no-request"===c){f.noRequest+=1;continue}if(f.total+=1,a.jevMode&&(f.modes[a.jevMode]+=1),"fallback"===c){f.fallbacks+=1,h.bump(a.jevFallbackReason??"unknown");continue}f.answered+=1,a.jevDecision&&(f.decisions[a.jevDecision]+=1),void 0!==a.jevLatencyMs&&g.push(a.jevLatencyMs),a.jevModel&&k.bump(a.jevModel);let m="observe"===a.jevMode?j:i;for(let b of a.jevCleared??[])m.bump(b)}return f.fallbackReasons=h.toRecord(),f.clearsByPolicy=i.toRecord(),f.observeClearsByPolicy=j.toRecord(),f.models=k.toRecord(),f.fallbackRate=f.total>0?f.fallbacks/f.total:0,g.sort((a,b)=>a-b),f.latencyP50Ms=aD(g,50),f.latencyP95Ms=aD(g,95),f}(d,{windowMs:b,now:c})}var aG=a.i(89790),aH=a.i(86304),aI=a.i(15638),aJ=a.i(28120),aK=a.i(9909),aL=a.i(91609),aM=a.i(65917),aN=a.i(75534),aO=a.i(88673);let aP="display-only";function aQ(a){return a?a.length>40||X(a)?{kind:"withheld"}:{kind:"id",id:a}:{kind:"default"}}function aR(a){if(!a)return{baseUrl:"",baseUrlQueryWithheld:!1};let{url:b,hadQuery:c}=S(a);return{baseUrl:b,baseUrlQueryWithheld:c}}function aS(a){return null===a?null:a.toString(8).padStart(4,"0")}function aT(a){return"string"==typeof a?a:""}function aU(a){try{return al(ak(function(a){if(a.provider!==E||a.credentialOrigin||"string"!=typeof a.baseUrl)return a;try{return{...a,credentialOrigin:new URL(a.baseUrl).origin}}catch{return a}}(a)).endpoint)}catch{return null}}async function aV(a){if(!a)return null;try{let a=await aF();return{windowMs:a.windowMs,total:a.total,answered:a.answered,fallbacks:a.fallbacks,fallbackRate:a.fallbackRate}}catch{return null}}async function aW(){let a=ab(),b={cloud:function(){let a=!1,b=null,d=null;try{let e=(0,c.readCredentials)(),f=e.cloud?.url??e.ingest?.url??null;if(a=null!==f,null!==f)try{d=new URL(f).host}catch{d=null}let g=e.org;b=g?g.name&&g.slug?`${g.name} (${g.slug})`:g.name??g.slug??g.id??null:null}catch{}let e="no";try{let a=(0,c.readJevCloudCredential)().status;e="ok"===a?"yes":"refused"===a?"refused":"no"}catch{e="no"}return{connected:a,org:b,host:d,jev:e}}(),path:a.path,permissions:null,provider:null,baseUrl:"",baseUrlQueryWithheld:!1,accountId:"",model:{kind:"default"},endpoint:null,mode:C,timeoutMs:null,token:null,problem:null,fix:null,reviewable:null};if("ok"===a.status){let c=a.config;return{...b,status:"ok",on:!0,permissions:aS(a.mode),provider:c.provider,...aR(c.baseUrl),accountId:c.accountId??"",model:aQ(c.model??""),endpoint:aU(c),mode:c.mode??C,timeoutMs:c.timeoutMs??null,token:{source:a.keySource},stats:await aV(!0),reviewable:function(a){if(!a)return null;try{let a=function(a){let b,c,d=[],f=!1;try{f=(0,aK.hasInstalledRegexPacks)();let a=(0,aK.readInstalledPacks)().packs;for(let b of a){let a=b.enabled;d.push(...a?b.policies.filter(b=>a.includes(b.name)):b.policies)}let c=(0,aO.semanticPoliciesFromPacks)((0,aH.jevPacks)(a));b=new Set(c.policies.map(a=>a.name))}catch{}try{c=(0,aJ.readMergedHooksConfig)(a)}catch{c={enabledPolicies:[]}}let g=new Set(f?[]:c.enabledPolicies.map(aN.normalizePolicyName));for(let a of aM.POLICY_CATALOG)(a.alwaysOn||g.has((0,aN.normalizePolicyName)(a.name)))&&d.push(a);try{for(let a of(0,aG.readActiveCloudManagedPolicies)())d.push({authority:a.authority,reviewedBy:a.reviewedBy})}catch{}let i=0;try{let b=(0,aJ.findProjectConfigDir)(a??process.cwd()),d=new Set((0,aJ.configuredCustomPolicyPaths)(c).map(a=>(0,h.resolve)(b,a)));if(!1!==c.customPoliciesEnabled)for(let a of[(0,h.resolve)(b,".failproofai","policies"),(0,e.customPoliciesDir)()])for(let b of(0,aI.discoverPolicyFiles)(a))d.add(b);i=d.size}catch{i=0}return{...function(a,b){let c=0,d=0;for(let e of a)c+=1,"reviewable"===(0,aL.resolvePolicyAuthority)(e,b).authority&&(d+=1);return{enabled:c,reviewable:d}}(d,b),customFiles:i,jevChecks:b?.size??0}}(process.env.FAILPROOFAI_LAUNCH_CWD||process.cwd());return{enabled:a.enabled,reviewable:a.reviewable,summary:function(a){let{enabled:b,reviewable:c}=a,d=a.customFiles>0?" (policies from your own files are not counted)":"";if(0===b)return`No policies are enabled here, so there is nothing for Jev to clear${d}.`;let e=1===b?"1 enabled policy is":`${b} enabled policies are`;return 0===c?`0 of ${e} reviewable${d}.`:`${c} of ${e} reviewable: Jev may clear a deny or an instruction from those, and from no others${d}.`}(a),problem:0===a.jevChecks?"Jev has no checks installed, so it asks nothing and clears nothing. To enable it: `failproofai policies add FailproofAI/jev-policies`.":0===a.enabled||a.reviewable>0||a.customFiles>0?null:"Jev can add a deny or an instruction on this machine, but it can never clear one. No enabled policy is marked reviewable — a policy pack published before this release carries no such marks — so re-take the pack (`failproofai policies add FailproofAI/policies`) to get a marked copy, or enforce this build's builtin policies, which carry them."}}catch{return null}}(!0)}}if("key-missing"===a.status){let c=a.routing;return{...b,status:"key-missing",on:!1,permissions:aS(a.mode),provider:c.provider,...aR(c.baseUrl),accountId:c.accountId??"",model:aQ(c.model??""),endpoint:aU({...c,apiKey:aP}),mode:c.mode??C,timeoutMs:c.timeoutMs??null,token:null,problem:a.problem,fix:`set ${F}, or save a token here`,stats:await aV(!0)}}if("off"===a.status||"not-connected"===a.status||"key-lacks-jev"===a.status){let d=a.routing;return{...b,status:a.status,on:!1,permissions:aS(a.mode),provider:d.provider,...aR(d.baseUrl),accountId:d.accountId??"",model:aQ(d.model??""),endpoint:aU({...d,apiKey:aP}),mode:d.mode??C,timeoutMs:d.timeoutMs??null,token:"off"===a.status?function(a){if(a===E)try{return"ok"===(0,c.readJevCloudCredential)().status?{source:"cloud"}:null}catch{return null}let b=ag();return"string"==typeof b?.apiKey&&""!==b.apiKey?{source:"file"}:null}(d.provider):null,problem:"off"===a.status?null:a.problem,fix:"not-connected"===a.status?"connect this machine with a key that carries jev:evaluate: failproofai config --token <key>":"key-lacks-jev"===a.status?"reconnect this machine with a key that carries jev:evaluate: failproofai config --token <key>":null,stats:null}}if("refused"===a.status){var d;let c,e=(d=ag(),c=aT(d?.provider),{provider:D.includes(c)?c:null,baseUrl:aT(d?.baseUrl),accountId:J.test(aT(d?.accountId))?aT(d?.accountId):"",model:aT(d?.model),mode:B(d?.mode)??C});return{...b,status:"refused",on:!1,permissions:aS(a.mode),provider:e.provider,...aR(e.baseUrl),accountId:e.accountId,model:aQ(e.model),endpoint:null===e.provider?null:aU({provider:e.provider,apiKey:aP,...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.accountId?{accountId:e.accountId}:{},mode:e.mode}),mode:e.mode,problem:a.problem,fix:a.fix??null,stats:null}}return{...b,status:"absent",on:!1,stats:null}}(0,z.ensureServerEntryExports)([aW]),(0,b.registerServerReference)(aW,"00854ec9e90b56699593285b0ed4967ff5a920a8f9",null),a.s(["getJevSettingsAction",0,aW],41289)}];
|
|
1
|
+
module.exports=[36119,81243,87481,55113,41289,a=>{"use strict";var b=a.i(37936),c=a.i(21572),d=a.i(2157),e=a.i(75818),f=a.i(8284),g=a.i(15501),h=a.i(50227),i=a.i(8674),j=a.i(93328);function k(){return(process.env.FAILPROOF_API_URL??process.env.FAILPROOFAI_API_URL??"https://api.befailproof.ai").replace(/\/+$/,"")}class l extends Error{status;code;retryAfterSecs;constructor(a,b,c,d){super(c),this.status=a,this.code=b,this.retryAfterSecs=d,this.name="AuthApiError"}}async function m(a){let b={};try{b=await a.json()}catch{}let c=b.code??`http_${a.status}`,d=b.message??b.detail??a.statusText??"request failed",e=b.retry_after_secs;if(void 0===e){let b=a.headers.get("retry-after");if(b){let a=Number(b);Number.isFinite(a)&&(e=a)}}return void 0!==e&&(e=Math.max(0,Math.min(86400,e))),new l(a.status,c,d,e)}async function n(a,b){try{return await fetch(a,{...b,signal:function(a){let b=AbortSignal.timeout(1e4);if(!a)return b;let c=AbortSignal.any;if(c)return c([b,a]);let d=new AbortController;if(b.aborted)d.abort(b.reason);else b.addEventListener("abort",()=>d.abort(b.reason),{once:!0});if(a.aborted)d.abort(a.reason);else a.addEventListener("abort",()=>d.abort(a.reason),{once:!0});return d.signal}(b.signal??void 0)})}catch(d){let c=function(a){if(null===a||"object"!=typeof a)return!1;let b=a.name;return"AbortError"===b||"TimeoutError"===b}(d);if((0,j.trackEvent)("api_server_unreachable",{kind:c?"timeout":"network",path:function(a){try{return new URL(a).pathname}catch{return a}}(a),method:"string"==typeof b.method?b.method:"GET"}),c)throw new l(0,"timeout",`request to ${a} timed out after 10000ms`);throw d}}async function o(a,b,c){let d={"content-type":"application/json"};c?.accessToken&&(d.authorization=`Bearer ${c.accessToken}`);let e=await n(`${k()}${a}`,{method:"POST",headers:d,body:JSON.stringify(b)});if(204!==e.status){if(!e.ok)throw await m(e);return await e.json()}}async function p(a,b){let c=await n(`${k()}${a}`,{method:"GET",headers:{authorization:`Bearer ${b}`}});if(!c.ok)throw await m(c);return await c.json()}async function q(a){return o("/v0/auth/token/refresh",{refresh_token:a})}async function r(a){return p("/v0/auth/me",a)}function s(){let a=process.env.FAILPROOFAI_AUTH_DIR;return a?(0,h.join)(a,"session.json"):(0,e.auditSessionFile)()}function t(){let a=s();if(!(0,d.existsSync)(a))return null;try{let b=(0,d.readFileSync)(a,"utf-8"),c=JSON.parse(b);if("string"!=typeof c.access_token||"string"!=typeof c.refresh_token||"number"!=typeof c.access_expires_at||"object"!=typeof c.user||!c.user||"string"!=typeof c.user.id||"string"!=typeof c.user.email)return null;return{access_token:c.access_token,refresh_token:c.refresh_token,access_expires_at:c.access_expires_at,refresh_expires_at:"number"==typeof c.refresh_expires_at?c.refresh_expires_at:c.access_expires_at,user:{id:c.user.id,email:c.user.email}}}catch{return null}}function u(){let a=s();(0,d.existsSync)(a)&&(0,d.rmSync)(a,{force:!0});try{let a=(0,e.migrationsDir)();if(!(0,d.existsSync)(a))return;for(let b of(0,d.readdirSync)(a)){if(!b.startsWith("backup-layout"))continue;let c=(0,h.resolve)(a,b,"auth.json");(0,d.existsSync)(c)&&(0,d.rmSync)(c,{force:!0})}}catch{}}let v=new Map;async function w(a){let b=v.get(a.refresh_token);if(b)return b;let c=(async()=>{let b=function(a,b){let c=Math.floor(Date.now()/1e3),d=a.user??b;if(!d)throw Error("authFromTokenResponse: missing user identity");return{access_token:a.access_token,refresh_token:a.refresh_token,access_expires_at:c+a.access_expires_in,refresh_expires_at:c+a.refresh_expires_in,user:d}}(await q(a.refresh_token),a.user);return(0,i.writeJsonAtomically)(s(),b),b})();v.set(a.refresh_token,c);try{return await c}finally{v.delete(a.refresh_token)}}async function x(){let a=t();if(!a)return null;let b=Math.floor(Date.now()/1e3);if(a.access_expires_at-b>60)return a;try{return await w(a)}catch(a){return a instanceof l&&401===a.status&&u(),null}}async function y(){let a=await x();if(!a)return null;try{return{me:await r(a.access_token),auth:a}}catch(a){if(a instanceof l&&401===a.status){let a=t();if(!a)return null;try{let b=await w(a);return{me:await r(b.access_token),auth:b}}catch(a){a instanceof l&&401===a.status&&u()}}return null}}a.s(["readAuth",0,t,"whoAmI",0,y],81243);var z=a.i(13095);async function A(){let a=(0,c.readConfig)(),b=function(){let a,b;try{a=(0,d.readFileSync)((0,e.auditScheduleFile)(void 0),"utf8")}catch{return null}try{b=JSON.parse(a)}catch{return null}if(!b||"object"!=typeof b||Array.isArray(b))return null;let c=b,f=a=>"number"==typeof a&&Number.isFinite(a)?a:null,g=f(c.schema);return{schema:g,nextDueAtMs:f(c.next_due_at_ms),lastAttemptAtMs:f(c.last_attempt_at_ms),lastRunAtMs:f(c.last_run_at_ms),lastExitCode:f(c.last_exit_code),schemaAhead:null!==g&&g>1}}(),h=(0,g.readDashboardCacheMeta)(),i=t(),j=(0,f.daemonServiceStatus)();return{auto:a.audit.auto,intervalDays:a.audit.intervalDays,signedInAs:i?{id:i.user.id,email:i.user.email}:null,daemon:j,schedule:b?{nextDueAtMs:b.nextDueAtMs,lastAttemptAtMs:b.lastAttemptAtMs,lastRunAtMs:b.lastRunAtMs,lastExitCode:b.lastExitCode,schemaAhead:b.schemaAhead}:null,lastResultAt:h?.cachedAt??null,lastScan:h?{finishedAt:h.cachedAt,findings:h.findings,sessionsScanned:h.sessionsScanned,eventsScanned:h.eventsScanned}:null,daemonStartedAtMs:"running"===j?(0,f.daemonStartedAtMs)():null}}function B(a){return"off"===a||"observe"===a||"enforce"===a?a:null}(0,z.ensureServerEntryExports)([A]),(0,b.registerServerReference)(A,"00265c36203c0a8354c803cb6be85bd71db9f72fff",null),a.s(["getScheduledAuditAction",0,A],36119);let C="enforce",D=["typesafe","openrouter","vercel","cloudflare","custom","failproofai"],E="failproofai",F="FAILPROOFAI_JEV_API_KEY",G=d.constants.O_RDONLY|(d.constants.O_NONBLOCK??0);function H(){return(0,e.jevConfigFile)()}let I=/^(?:(?:typesafe|typesafe-ai)\/)?jev-(\d{1,4})\.(\d{1,4})(?:\.(\d{1,6}))?(?:-(\d{8}))?$/,J=/^[0-9a-f]{32}$/,K=/^[\x21-\x7e]{1,4096}$/,L=/^[A-Za-z0-9._:/@~+-]{1,200}$/,M=new Set(["localhost","127.0.0.1","[::1]","::1"]);function N(a){return"string"!=typeof a||0===a.length?"the API key is empty":K.test(a)?null:"the API key must be one line of visible ASCII with no spaces (at most 4096 characters)"}let O=["key","token","secret","password","passwd","credential","auth","signature"],P=new Set(["pw","pass","sig","sid","jwt","bearer","session","code","access"]),Q=/^[A-Za-z0-9._-]{1,40}$/;function R(a){let b;if("string"!=typeof a||""===a.trim())return{ok:!1,problem:"baseUrl must be a non-empty string"};try{b=new URL(a.trim())}catch{return{ok:!1,problem:"baseUrl is not a valid URL"}}if("https:"!==b.protocol&&!("http:"===b.protocol&&M.has(b.hostname)))return{ok:!1,problem:"baseUrl must use https (plain http is accepted only for localhost)"};if(b.username||b.password)return{ok:!1,problem:"baseUrl must not carry credentials; put the key in the key field"};if(b.hash)return{ok:!1,problem:"baseUrl must not have a #fragment"};let c=function(a){for(let[b,c]of a.searchParams){let a=Q.test(b)?`?${b}=`:"one of its query parameters",d=b.toLowerCase().replace(/[^a-z0-9]/g,"");if(O.some(a=>d.includes(a))||P.has(d))return`baseUrl must not carry a credential in its query string, and ${a} is one; put the key in the key field`;if(X(c))return`baseUrl's ${a} value is shaped like a credential (not repeated here); put the key in the key field`}return null}(b);return c?{ok:!1,problem:c}:(b.pathname=b.pathname.replace(/\/+$/,"")||"/",{ok:!0,value:b.toString()})}function S(a){try{let b=new URL(a);if(!b.search&&!b.username&&!b.password)return{url:a,hadQuery:!1};let c=""!==b.search;return b.search="",b.username="",b.password="",{url:b.toString(),hadQuery:c}}catch{let b=a.indexOf("?");return{url:(b<0?a:a.slice(0,b)).replace(/^([^:/?#]+:\/\/)[^/?#]*@/,"$1"),hadQuery:b>=0}}}let T=["/chat/completions","/systemone","/completions","/embeddings","/models"],U={"api.typesafe.ai":"typesafe","openrouter.ai":"openrouter","ai-gateway.vercel.sh":"vercel","api.cloudflare.com":"cloudflare"};function V(a){try{let b=new URL(a);if("https:"!==b.protocol&&!("http:"===b.protocol&&M.has(b.hostname)))return null;return b.origin}catch{return null}}let W=/^(?:(?:sk|rk)[-_]|gh[pousr]_|github_pat_|glpat-|xox[abprs]-|AKIA[0-9A-Z]{12}|AIza[0-9A-Za-z_-]{20}|hf_[A-Za-z0-9]{16}|vck_)/;function X(a){return!!W.test(a)||a.length>=32&&!a.includes("/")&&!/jev/i.test(a)&&/[A-Za-z]/.test(a)&&/[0-9]/.test(a)}function Y(a,b,c){let d;if(!a||"object"!=typeof a||Array.isArray(a))return{ok:!1,problem:"the file must hold a JSON object"};let e=a.provider;if("string"!=typeof e||!D.includes(e))return{ok:!1,problem:`provider must be one of ${D.join(", ")}`};if(e===E){if(void 0!==a.apiKey)return{ok:!1,problem:"provider failproofai takes its key from this machine's FailproofAI Cloud connection (credentials.json), never from jev.json — remove apiKey from the file (not repeated here)"};if(!c)return{ok:!1,problem:"this machine is not connected to FailproofAI Cloud with a key that carries jev:evaluate — connect it with: failproofai config --token <key>",notConnected:!0};let b=N(c.key);if(b)return{ok:!1,problem:`the FailproofAI Cloud key in credentials.json is unusable: ${b}`};d=c.key}else if(void 0!==a.apiKey){let b=N(a.apiKey);if(b)return{ok:!1,problem:b};d=a.apiKey}else{if(null==b||""===b)return{ok:!1,problem:`no API key: set apiKey in the file (failproofai jev setup), or ${F} for this session`,missingKey:!0};let a=N(b);if(a)return{ok:!1,problem:`${F} is set but invalid: ${a}`};d=b}let f={provider:e,apiKey:d,mode:C,timeoutMs:3e3};if(void 0!==a.baseUrl){let b=R(a.baseUrl);if(!b.ok)return b;f.baseUrl=b.value}else if("custom"===e||e===E)return{ok:!1,problem:`provider ${e} needs a baseUrl`};if(e===E&&c){let a=V(c.url),b=V(f.baseUrl);if(null===a)return{ok:!1,problem:"the FailproofAI Cloud credential in credentials.json names no usable origin — reconnect: failproofai config --token <key>"};if(b!==a)return{ok:!1,problem:`baseUrl is on ${b??"an unusable origin"}, but this machine's FailproofAI Cloud key was issued for ${a} — the key is only ever sent to the origin it was issued for. Point jev.json back at it: failproofai jev setup --provider failproofai`};f.credentialOrigin=a}if("cloudflare"===e){if("string"!=typeof a.accountId||!J.test(a.accountId))return{ok:!1,problem:"provider cloudflare needs accountId: 32 lowercase hex characters"};f.accountId=a.accountId}if(void 0!==a.model){let b=function(a){let b;if("string"!=typeof a||!L.test(a))return{ok:!1,problem:"model must be 1–200 characters of letters, digits and . _ : / @ ~ + -"};if(X(a))return{ok:!1,problem:"model looks like an API key, not a model id (not repeated here). The key goes on stdin: failproofai jev setup --key-stdin"};let c=(b=I.exec(a))?{major:Number(b[1]),minor:Number(b[2]),patch:void 0===b[3]?null:Number(b[3]),date:b[4]??null}:null;return c&&(1!==c.major||13!==c.minor)?{ok:!1,problem:`model ${a} names Jev ${c.major}.${c.minor}, but the thresholds are calibrated for Jev 1.13 — every call would fall back to regex`}:{ok:!0,value:a}}(a.model);if(!b.ok)return b;if(b.value===d)return{ok:!1,problem:"model is the API key (not repeated here); give the model id, or leave --model out for the provider's default"};f.model=b.value}if(void 0!==a.timeoutMs){let b=a.timeoutMs;if("number"!=typeof b||!Number.isInteger(b)||b<100||b>1e4)return{ok:!1,problem:"timeoutMs must be a whole number of milliseconds from 100 to 10000"};f.timeoutMs=b}if(void 0!==a.mode){let b=B(a.mode);if(null===b)return{ok:!1,problem:'mode must be "off", "observe" or "enforce"'};f.mode=b}return void 0!==f.baseUrl&&function(a){try{return"http:"===new URL(a).protocol}catch{return!1}}(f.baseUrl)&&"enforce"===f.mode?{ok:!1,problem:"plain http (to localhost) is accepted only with mode observe: in enforce mode Jev's answers can clear a deny, and while the local proxy is down any process on this machine could take its port and answer. "+(f.provider===E?"Reconnect to an https FailproofAI Cloud URL (failproofai config --token <key> --url https://…), or keep mode observe":"Use https, or mode observe")}:{ok:!0,value:f}}function Z(a){if(a.provider!==E)return Y(a);let{apiKey:b,credentialOrigin:c,...d}=a;return"string"!=typeof c||""===c?{ok:!1,problem:"this FailproofAI Cloud config names no credential origin — it did not come from the loader, so its key is not sent anywhere"}:Y(d,null,{url:c,key:b})}let $="supplied-by-the-environment";function _(a){aa();try{let b=511&(0,d.statSync)((0,h.dirname)(a)).mode;return(18&b)!=0?b:null}catch{return null}}function aa(){return"win32"!==process.platform}function ab(){let a,b,e,f,g=H();try{a=(0,d.openSync)(g,G)}catch(b){let a=b.code;if("ENOENT"===a||"ENOTDIR"===a)return{status:"absent",path:g};return{status:"refused",path:g,mode:null,reason:"unreadable",problem:`cannot open it (${a??"error"})`}}let i=null;try{let c=(0,d.fstatSync)(a);if(!c.isFile())return{status:"refused",path:g,mode:null,reason:"unreadable",problem:"it is not a regular file"};i=511&c.mode;let e=()=>{let b=Buffer.alloc(c.size),e=0;for(;e<b.length;){let c=(0,d.readSync)(a,b,e,b.length-e,e);if(0===c)break;e+=c}return b.subarray(0,e).toString("utf8")};if(aa()&&(63&i)!=0){let a=!1;try{a=c.size<=65536&&function(a){try{let b=JSON.parse(a);return null!==b&&"object"==typeof b&&!Array.isArray(b)&&void 0===b.apiKey}catch{return!1}}(e())}catch{}let b=i.toString(8).padStart(4,"0");return{status:"refused",path:g,mode:i,reason:"too-open",problem:a?(18&i)!=0?`its permissions are ${b}; other users could change it, and with it where Jev sends tool calls and prompts, so it must be owner-only (chmod 600 ${g})`:`its permissions are ${b}; it must be owner-only (chmod 600 ${g})`:`its permissions are ${b}; it holds a key, so it must be owner-only (chmod 600 ${g})`,fix:`chmod 600 ${g}`,...a?{keyless:!0}:{}}}let f=_(g);if(null!==f)return{status:"refused",path:g,mode:i,reason:"too-open",problem:`its directory ${(0,h.dirname)(g)} is ${f.toString(8).padStart(4,"0")} — other users can write there, so they can put their own config in its place; it must be owner-only (chmod 700 ${(0,h.dirname)(g)})`,fix:`chmod 700 ${(0,h.dirname)(g)}`};if(c.size>65536)return{status:"refused",path:g,mode:i,reason:"too-large",problem:"it is larger than 65536 bytes"};b=e()}catch(a){return{status:"refused",path:g,mode:i,reason:"unreadable",problem:`cannot read it (${a.code??"error"})`}}finally{try{(0,d.closeSync)(a)}catch{}}try{e=JSON.parse(b)}catch{return{status:"refused",path:g,mode:i,reason:"not-json",problem:"it is not valid JSON"}}let j=null===e||"object"!=typeof e||Array.isArray(e)?null:e;if(j?.mode==="off"){let a=Y(e,$,ae(j));return a.ok?{status:"off",path:g,mode:i,routing:ad(a.value)}:{status:"refused",path:g,mode:i,reason:"invalid",problem:a.problem}}if(j?.provider===E){let a=(0,c.readJevCloudCredential)();if("refused"===a.status)return{status:"refused",path:g,mode:i,reason:"too-open"===a.reason?"too-open":"unreadable",problem:`the FailproofAI Cloud credential was refused: ${a.problem}`,...a.fix?{fix:a.fix}:{},credentialsMode:a.mode};let b=Y(e,null,"ok"===a.status?a.credential:null);if(b.ok)return{status:"ok",path:g,mode:i,keySource:"cloud",config:b.value};if(!0===b.notConnected){let c=Y(e,null,ae(j));return c.ok?"absent"===a.status&&a.connected?{status:"key-lacks-jev",path:g,mode:i,routing:ad(c.value),problem:ac}:{status:"not-connected",path:g,mode:i,routing:ad(c.value),problem:b.problem}:{status:"refused",path:g,mode:i,reason:"invalid",problem:c.problem}}return{status:"refused",path:g,mode:i,reason:"invalid",problem:b.problem}}let k=Y(e,void 0===(f=process.env[F])||""===f?null:f);if(!k.ok){if(!0===k.missingKey){let a=Y(e,$);return a.ok?{status:"key-missing",path:g,mode:i,routing:ad(a.value),problem:`it carries no apiKey, so the key comes from ${F} — which is not set in this environment`}:{status:"refused",path:g,mode:i,reason:"invalid",problem:a.problem}}return{status:"refused",path:g,mode:i,reason:"invalid",problem:k.problem}}return{status:"ok",path:g,mode:i,keySource:void 0!==e.apiKey?"file":"env",config:k.value}}let ac="this machine is connected to FailproofAI Cloud, but no Jev key is stored for that connection (its key lacks jev:evaluate, or the connect could not confirm it)";function ad(a){let b={provider:a.provider,mode:a.mode,timeoutMs:a.timeoutMs};return void 0!==a.baseUrl&&(b.baseUrl=a.baseUrl),void 0!==a.accountId&&(b.accountId=a.accountId),void 0!==a.model&&(b.model=a.model),b}function ae(a){let b="https://stand-in.invalid";if("string"==typeof a.baseUrl)try{b=new URL(a.baseUrl.trim()).origin}catch{}return{url:b,key:$}}function af(){let a,b=H();try{a=(0,d.openSync)(b,G)}catch{return null}try{let c=(0,d.fstatSync)(a);if(!c.isFile()||c.size>65536)return null;let e=Buffer.alloc(c.size),f=0;for(;f<e.length;){let b=(0,d.readSync)(a,e,f,e.length-f,f);if(0===b)break;f+=b}let g=JSON.parse(e.subarray(0,f).toString("utf8"));if(!g||"object"!=typeof g||Array.isArray(g))return null;aa();let h=511&c.mode,i=null!==h&&((63&h)!=0||null!==_(b));return{raw:g,mode:h,tooOpen:i}}catch{return null}finally{try{(0,d.closeSync)(a)}catch{}}}function ag(){return af()?.raw??null}a.s(["CLOUDFLARE_ACCOUNT_ID_RE",0,J,"DEFAULT_JEV_MODE",0,C,"JEV_API_KEY_ENV",0,F,"JEV_CLOUD_PROVIDER",0,E,"JEV_PROVIDER_KINDS",0,D,"baseUrlWithoutQuery",0,S,"endpointGivenAsBase",0,function(a){let b;try{b=new URL(a)}catch{return null}let c=b.pathname.replace(/\/+$/,""),d=T.find(a=>c.toLowerCase().endsWith(a));return void 0===d?null:(b.pathname=c.slice(0,c.length-d.length)||"/",{suffix:d,base:b.toString()})},"inspectJevConfig",0,ab,"jevConfigPath",0,H,"looksLikeCredential",0,X,"parseJevMode",0,B,"providerHostConflict",0,function(a,b){let c=function(a){try{return U[new URL(a).hostname.toLowerCase()]??"custom"}catch{return"custom"}}(b);if("custom"===c||c===a)return null;let d=new URL(b).host;return"custom"!==a?`${d} is ${c}'s endpoint, not ${a}'s`:"cloudflare"===c?`${d} is Cloudflare Workers AI, which provider custom cannot reach — its endpoint is per-account and its answers are wrapped, and a custom endpoint is asked in TypeSafe's own shape at <url>/systemone`:null},"readJevConfigFileForUpdate",0,af,"readJevConfigForUpdate",0,ag,"validateApiKey",0,N,"validateBaseUrl",0,R,"validateJevConfig",0,Y,"validateLoadedJevConfig",0,Z],87481),a.i(60526);let ah={typesafe:{baseUrl:"https://api.typesafe.ai/v1",model:"jev-1.13.0"},openrouter:{baseUrl:"https://openrouter.ai/api/v1",model:"typesafe/jev-1.13"},vercel:{baseUrl:"https://ai-gateway.vercel.sh/typesafe/v1",model:"typesafe-ai/jev"},cloudflare:{baseUrl:"https://api.cloudflare.com/client/v4",model:"typesafe/jev"},custom:{baseUrl:null,model:"jev-1.13.0"},failproofai:{baseUrl:null,model:"jev-1.13.0"}};class ai extends Error{code;retryAfter;constructor(a,b,c={}){super(function(a){return a.replace(/[\u0000-\u001f\u007f-\u009f]/g," ")}(b)),this.name="JevError",this.code=a,this.retryAfter=c.retryAfter??null}}function aj(a){let b=new URL(a);return/\/systemone$/.test(b.pathname)||(b.pathname=`${b.pathname.replace(/\/+$/,"")}/systemone`),b.toString()}function ak(a){let b=function(a){let b=Z(a);if(!b.ok)throw new ai("config",b.problem);return b.value}(a),c=ah[b.provider],d=b.model??c.model,e=void 0===b.model;if("cloudflare"===b.provider)return{via:"cloudflare",endpoint:function(a,b){if(!b)return((a,b=ah.cloudflare.baseUrl)=>`${b.replace(/\/+$/,"")}/accounts/${a}/ai/run`)(a);let c=new URL(b);return/\/ai\/run$/.test(c.pathname)||(c.pathname=`${c.pathname.replace(/\/+$/,"")}/accounts/${a}/ai/run`),c.toString()}(b.accountId,b.baseUrl),model:d,modelIsDefault:e};let f=b.baseUrl??c.baseUrl;if(!f)throw new ai("config",`provider ${b.provider} needs a baseUrl`);return{via:b.provider,endpoint:aj(f),model:d,modelIsDefault:e}}function al(a){try{let b=new URL(a),c=`${b.origin}${b.pathname}`;return b.search?`${c}?…`:c}catch{return"(invalid URL)"}}a.s(["displayEndpoint",0,al,"endpointAsBaseReason",0,function(a){let b=aj(a);return b===new URL(a).toString()?"That is already the Jev endpoint itself: this field takes the base it sits under (where <base>/models is read), and failproofai adds /systemone on its own.":`A Jev request goes to <base>/systemone, and failproofai appends that itself, so ${al(a)} would be asked at ${al(b)}.`},"jevRoute",0,ak],55113);var am=a.i(1144);let an=["evaluator","jevDecision","jevCleared","jevFallbackReason","jevLatencyMs","jevModel","jevMode"],ao=new Set(["jev","jev-fallback"]),ap=new Set(["allow","instruct","deny"]),aq=new Set(["observe","enforce"]),ar=/^([a-z0-9]+(?:-[a-z0-9]+)*)\s*(?:$|[:(])/,as=/^http-\d{3}$/,at="other",au=new Set(["aborted","cloudflare-error","cloudflare-incomplete","config","error","malformed","model-mismatch","network","no-api-key","no-transport","other","out-of-credits","prepare-error","provider-refused","rate-limited","request-cut","request-too-large","timeout","truncated","unavailable","upstream-error"]),av=new Map([["prepare","prepare-error"],["error","error"],["timeout","timeout"],["network","network"],["malformed","malformed"],["truncated","truncated"],["rate-limited","rate-limited"],["out-of-credits","out-of-credits"],["model-mismatch","model-mismatch"],["request-too-large","request-too-large"],["config","config"]]),aw=/^[A-Za-z0-9._:/@~+-]{1,200}$/,ax=/[\u0000-\u001f\u007f-\u009f\u2028\u2029]/,ay=/^(?:custom|pack|cloud|failproofai|\.failproofai-[A-Za-z0-9_-]{1,32})\//;function az(a){return!("string"!=typeof a||0===a.length||[...a].length>200||ax.test(a))&&(!/\s/.test(a)||ay.test(a))}function aA(a){if(!an.some(b=>void 0!==a[b]))return a;let b={...a},c=a=>{delete b[a]};"string"==typeof b.evaluator&&ao.has(b.evaluator)||c("evaluator"),"string"==typeof b.jevDecision&&ap.has(b.jevDecision)||c("jevDecision");let d=void 0!==b.jevMode&&!("string"==typeof b.jevMode&&aq.has(b.jevMode));if("string"==typeof b.jevMode&&aq.has(b.jevMode)||c("jevMode"),d&&c("jevCleared"),Array.isArray(b.jevCleared)){let a=[...new Set(b.jevCleared.filter(az))].slice(0,64);b.jevCleared=a}else c("jevCleared");let e=function(a){if("string"!=typeof a)return;let b=a.trim().toLowerCase();if(0===b.length)return;let c=ar.exec(b)?.[1];if(void 0===c||c.length>40)return at;if(as.test(c))return c;let d=av.get(c)??c;return au.has(d)?d:at}(b.jevFallbackReason);return void 0===e?c("jevFallbackReason"):b.jevFallbackReason=e,"number"==typeof b.jevLatencyMs&&Number.isFinite(b.jevLatencyMs)&&b.jevLatencyMs>=0?b.jevLatencyMs=Math.round(b.jevLatencyMs):c("jevLatencyMs"),"string"==typeof b.jevModel&&aw.test(b.jevModel.trim())?b.jevModel=b.jevModel.trim():c("jevModel"),b}function aB(a){return"number"!=typeof a||Number.isNaN(a)||a<=0?864e5:Math.min(a,7776e6)}function aC(a){return"number"==typeof a&&Number.isFinite(a)?a:Date.now()}function aD(a,b){if(0===a.length)return null;let c=Math.ceil(b/100*a.length);return a[Math.min(a.length,Math.max(1,c))-1]}class aE{counts=new Map;bump(a){this.counts.set(a,(this.counts.get(a)??0)+1)}toRecord(){return Object.fromEntries(this.counts)}}async function aF(a={}){let b=aB(a.windowMs),c=aC(a.now),d=[];try{d=(0,am.getHookActivityEntriesSince)(c-b)}catch{d=[]}return function(a,b={}){let c=aB(b.windowMs),d=aC(b.now),e=d-c,f={windowMs:c,total:0,fallbackRate:0,fallbackReasons:{},latencyP50Ms:null,latencyP95Ms:null,clearsByPolicy:{},since:e,answered:0,fallbacks:0,notConsulted:0,noRequest:0,decisions:{allow:0,instruct:0,deny:0},modes:{observe:0,enforce:0},observeClearsByPolicy:{},models:{}},g=[],h=new aE,i=new aE,j=new aE,k=new aE;for(let b of a){var l;if("number"!=typeof b.timestamp||b.timestamp<e||b.timestamp>d)continue;let a=aA(b),c="jev-fallback"===(l=aA(a)).evaluator?"fallback":"jev"!==l.evaluator?null:void 0!==l.jevCleared||void 0!==l.jevLatencyMs||void 0!==l.jevModel||"deny"===l.jevDecision||"instruct"===l.jevDecision?"answered":"allow"===l.jevDecision?"no-request":"not-consulted";if(null===c)continue;if("not-consulted"===c){f.notConsulted+=1;continue}if("no-request"===c){f.noRequest+=1;continue}if(f.total+=1,a.jevMode&&(f.modes[a.jevMode]+=1),"fallback"===c){f.fallbacks+=1,h.bump(a.jevFallbackReason??"unknown");continue}f.answered+=1,a.jevDecision&&(f.decisions[a.jevDecision]+=1),void 0!==a.jevLatencyMs&&g.push(a.jevLatencyMs),a.jevModel&&k.bump(a.jevModel);let m="observe"===a.jevMode?j:i;for(let b of a.jevCleared??[])m.bump(b)}return f.fallbackReasons=h.toRecord(),f.clearsByPolicy=i.toRecord(),f.observeClearsByPolicy=j.toRecord(),f.models=k.toRecord(),f.fallbackRate=f.total>0?f.fallbacks/f.total:0,g.sort((a,b)=>a-b),f.latencyP50Ms=aD(g,50),f.latencyP95Ms=aD(g,95),f}(d,{windowMs:b,now:c})}var aG=a.i(89790),aH=a.i(86304),aI=a.i(15638),aJ=a.i(28120),aK=a.i(9909),aL=a.i(91609),aM=a.i(65917),aN=a.i(75534),aO=a.i(88673);let aP="display-only";function aQ(a){return a?a.length>40||X(a)?{kind:"withheld"}:{kind:"id",id:a}:{kind:"default"}}function aR(a){if(!a)return{baseUrl:"",baseUrlQueryWithheld:!1};let{url:b,hadQuery:c}=S(a);return{baseUrl:b,baseUrlQueryWithheld:c}}function aS(a){return null===a?null:a.toString(8).padStart(4,"0")}function aT(a){return"string"==typeof a?a:""}function aU(a){try{return al(ak(function(a){if(a.provider!==E||a.credentialOrigin||"string"!=typeof a.baseUrl)return a;try{return{...a,credentialOrigin:new URL(a.baseUrl).origin}}catch{return a}}(a)).endpoint)}catch{return null}}async function aV(a){if(!a)return null;try{let a=await aF();return{windowMs:a.windowMs,total:a.total,answered:a.answered,fallbacks:a.fallbacks,fallbackRate:a.fallbackRate}}catch{return null}}async function aW(){let a=ab(),b={cloud:function(){let a=!1,b=null,d=null;try{let e=(0,c.readCredentials)(),f=e.cloud?.url??e.ingest?.url??null;if(a=null!==f,null!==f)try{d=new URL(f).host}catch{d=null}let g=e.org;b=g?g.name&&g.slug?`${g.name} (${g.slug})`:g.name??g.slug??g.id??null:null}catch{}let e="no";try{let a=(0,c.readJevCloudCredential)().status;e="ok"===a?"yes":"refused"===a?"refused":"no"}catch{e="no"}return{connected:a,org:b,host:d,jev:e}}(),path:a.path,permissions:null,provider:null,baseUrl:"",baseUrlQueryWithheld:!1,accountId:"",model:{kind:"default"},endpoint:null,mode:C,timeoutMs:null,token:null,problem:null,fix:null,reviewable:null};if("ok"===a.status){let c=a.config;return{...b,status:"ok",on:!0,permissions:aS(a.mode),provider:c.provider,...aR(c.baseUrl),accountId:c.accountId??"",model:aQ(c.model??""),endpoint:aU(c),mode:c.mode??C,timeoutMs:c.timeoutMs??null,token:{source:a.keySource},stats:await aV(!0),reviewable:function(a){if(!a)return null;try{let a=function(a){let b,c,d=[],f=!1;try{f=(0,aK.hasInstalledRegexPacks)();let a=(0,aK.readInstalledPacks)().packs;for(let b of a){let a=b.enabled;d.push(...a?b.policies.filter(b=>a.includes(b.name)):b.policies)}let c=(0,aO.semanticPoliciesFromPacks)((0,aH.jevPacks)(a));b=new Set(c.policies.map(a=>a.name))}catch{}try{c=(0,aJ.readMergedHooksConfig)(a)}catch{c={enabledPolicies:[]}}let g=new Set(f?[]:c.enabledPolicies.map(aN.normalizePolicyName));for(let a of aM.POLICY_CATALOG)(a.alwaysOn||g.has((0,aN.normalizePolicyName)(a.name)))&&d.push(a);try{for(let a of(0,aG.readActiveCloudManagedPolicies)())d.push({authority:a.authority,reviewedBy:a.reviewedBy})}catch{}let i=0;try{let b=(0,aJ.findProjectConfigDir)(a??process.cwd()),d=new Set((0,aJ.configuredCustomPolicyPaths)(c).map(a=>(0,h.resolve)(b,a)));if(!1!==c.customPoliciesEnabled)for(let a of[(0,h.resolve)(b,".failproofai","policies"),(0,e.customPoliciesDir)()])for(let b of(0,aI.discoverPolicyFiles)(a))d.add(b);i=d.size}catch{i=0}return{...function(a,b){let c=0,d=0;for(let e of a)c+=1,"reviewable"===(0,aL.resolvePolicyAuthority)(e,b).authority&&(d+=1);return{enabled:c,reviewable:d}}(d,b),customFiles:i,jevChecks:b?.size??0}}(process.env.FAILPROOFAI_LAUNCH_CWD||process.cwd());return{enabled:a.enabled,reviewable:a.reviewable,summary:function(a){let{enabled:b,reviewable:c}=a,d=a.customFiles>0?" (policies from your own files are not counted)":"";if(0===b)return`No policies are enabled here, so there is nothing for Jev to clear${d}.`;let e=1===b?"1 enabled policy is":`${b} enabled policies are`;return 0===c?`0 of ${e} reviewable${d}.`:`${c} of ${e} reviewable: Jev may clear a deny or an instruction from those, and from no others${d}.`}(a),problem:0===a.jevChecks?"Jev has no checks installed, so it asks nothing and clears nothing. To enable it: `failproofai policies add FailproofAI/jev-policies`.":0===a.enabled||a.reviewable>0||a.customFiles>0?null:"Jev can add a deny or an instruction on this machine, but it can never clear one. No enabled policy is marked reviewable — a policy pack published before this release carries no such marks — so re-take the pack (`failproofai policies add FailproofAI/policies`) to get a marked copy, or enforce this build's builtin policies, which carry them."}}catch{return null}}(!0)}}if("key-missing"===a.status){let c=a.routing;return{...b,status:"key-missing",on:!1,permissions:aS(a.mode),provider:c.provider,...aR(c.baseUrl),accountId:c.accountId??"",model:aQ(c.model??""),endpoint:aU({...c,apiKey:aP}),mode:c.mode??C,timeoutMs:c.timeoutMs??null,token:null,problem:a.problem,fix:`set ${F}, or save a token here`,stats:await aV(!0)}}if("off"===a.status||"not-connected"===a.status||"key-lacks-jev"===a.status){let d=a.routing;return{...b,status:a.status,on:!1,permissions:aS(a.mode),provider:d.provider,...aR(d.baseUrl),accountId:d.accountId??"",model:aQ(d.model??""),endpoint:aU({...d,apiKey:aP}),mode:d.mode??C,timeoutMs:d.timeoutMs??null,token:"off"===a.status?function(a){if(a===E)try{return"ok"===(0,c.readJevCloudCredential)().status?{source:"cloud"}:null}catch{return null}let b=ag();return"string"==typeof b?.apiKey&&""!==b.apiKey?{source:"file"}:null}(d.provider):null,problem:"off"===a.status?null:a.problem,fix:"not-connected"===a.status?"connect this machine with a key that carries jev:evaluate: failproofai config --token <key>":"key-lacks-jev"===a.status?"reconnect this machine with a key that carries jev:evaluate: failproofai config --token <key>":null,stats:null}}if("refused"===a.status){var d;let c,e=(d=ag(),c=aT(d?.provider),{provider:D.includes(c)?c:null,baseUrl:aT(d?.baseUrl),accountId:J.test(aT(d?.accountId))?aT(d?.accountId):"",model:aT(d?.model),mode:B(d?.mode)??C});return{...b,status:"refused",on:!1,permissions:aS(a.mode),provider:e.provider,...aR(e.baseUrl),accountId:e.accountId,model:aQ(e.model),endpoint:null===e.provider?null:aU({provider:e.provider,apiKey:aP,...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.accountId?{accountId:e.accountId}:{},mode:e.mode}),mode:e.mode,problem:a.problem,fix:a.fix??null,stats:null}}return{...b,status:"absent",on:!1,stats:null}}(0,z.ensureServerEntryExports)([aW]),(0,b.registerServerReference)(aW,"00d5f65b37d57994d102a4795b97639ca80427d9b6",null),a.s(["getJevSettingsAction",0,aW],41289)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=app_actions_get-scheduled-audit_ts_0ei9sni._.js.map
|