failproofai 1.0.6-beta.0 → 1.0.6-beta.1
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 +3 -3
- 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 +4 -4
- package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/audit/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
- package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +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 +6 -5
- 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 +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 +1 -1
- 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 +4 -4
- package/.next/standalone/.next/server/app/settings/page.js +3 -2
- 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/[root-of-the-server]__0zlqo2t._.js +1 -1
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__112b4go._.js → [root-of-the-server]__1_r2rbg._.js} +4 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1anxb5k._.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]__0-_ki57._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__013jr2b._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01wy8d-._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02npjtd._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0576iuy._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0bym1os._.js → [root-of-the-server]__0cg-bgc._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0da85px._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ftmoxc._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0p-5p8u._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__00y9ww2._.js → [root-of-the-server]__0u3w0ll._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1p2otjt._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1py795m._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1i26dsw._.js → [root-of-the-server]__1x3j9mj._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_06imw3p._.js +5 -0
- package/.next/standalone/.next/server/chunks/ssr/_08x1r5t._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0lbwa8m._.js → _0qlygw6._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_09hs6ms._.js → _1_ddpm3._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_14c6q09._.js → _1_qswah._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_1es2j7i._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_1u8-lu2._.js +1 -1
- 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 +12 -11
- 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_settings-client_tsx_20lq-mq._.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 +19 -19
- package/.next/standalone/.next/static/chunks/{03n_qjih7-w6q.js → 02vwr5js1x28j.js} +1 -1
- package/.next/standalone/.next/static/chunks/{3d3hzhcnns6ww.js → 06fjx8-0_qufs.js} +1 -1
- package/.next/standalone/.next/static/chunks/{17pjz_h45j10c.js → 0cbvytf8epn34.js} +1 -1
- package/.next/standalone/.next/static/chunks/{1ekh-hj_iom84.js → 0y227_ohdqwvn.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0vanab2g65op_.js → 1p4xauf-zu6zk.js} +1 -1
- package/.next/standalone/.next/static/chunks/{1so_3s0q4c4j1.js → 1qf2uiipatr80.js} +1 -1
- package/.next/standalone/.next/static/chunks/{3iasus89n8mg1.js → 1uc_s_dftgxiq.js} +1 -1
- package/.next/standalone/.next/static/chunks/{44_cj1_i_aa2z.js → 27_bwbg8sv6vj.js} +1 -1
- package/.next/standalone/.next/static/chunks/{2u0kol_boahtv.js → 2x776s0x3n_tu.js} +1 -1
- package/.next/standalone/.next/static/chunks/{3_vesf83-0903.js → 3ht0xsco46pul.js} +1 -1
- package/.next/standalone/hermes-plugin/README.md +6 -1
- package/.next/standalone/hermes-plugin/client.py +22 -6
- package/.next/standalone/lib/hermes-profiles.ts +67 -19
- package/.next/standalone/lib/hermes-sessions.ts +3 -2
- package/.next/standalone/package.json +9 -9
- package/.next/standalone/server.js +1 -1
- package/dist/cli.mjs +273 -220
- package/dist/worker.mjs +62 -32
- package/hermes-plugin/README.md +6 -1
- package/hermes-plugin/client.py +22 -6
- package/lib/hermes-profiles.ts +67 -19
- package/lib/hermes-sessions.ts +3 -2
- package/package.json +9 -9
- package/src/hooks/integrations.ts +7 -0
- package/src/hooks/manager.ts +24 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0oa1lav._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s740oi._.js +0 -6
- /package/.next/standalone/.next/static/{-7OT2NwGPxAu-skEL_Xee → QCNYz2yCxxdeggg1k0iEq}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{-7OT2NwGPxAu-skEL_Xee → QCNYz2yCxxdeggg1k0iEq}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{-7OT2NwGPxAu-skEL_Xee → QCNYz2yCxxdeggg1k0iEq}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[
|
|
1
|
+
module.exports=[16455,a=>{"use strict";var b=a.i(5050);let c=(0,b.createServerReference)("001139a640df70946c798e3e09d4dae96d5e9be36c",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(16455),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
|
|
|
@@ -20,4 +20,4 @@ Ways to fix this:
|
|
|
20
20
|
|
|
21
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=_0qlygw6._.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=_1_ddpm3._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[99910,a=>{"use strict";var b=a.i(12714),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(34900),g=a.i(83397),h=a.i(92246);let i=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,j=new Set(["CONVERSATION_HISTORY","CHECKPOINT"]);function k(){return process.env.ANTIGRAVITY_HOME||(0,e.join)((0,d.homedir)(),".gemini","antigravity-cli")}function l(){return(0,e.join)(k(),"brain")}function m(){return(0,e.join)(".system_generated","logs","transcript_full.jsonl")}function n(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}async function o(a){let d,f=function(a){if(!i.test(a))return null;let b=(0,e.join)(l(),a,m());try{if((0,c.statSync)(b).isFile())return b}catch{}return null}(a);if(!f)return null;try{d=await (0,b.readFile)(f,"utf-8")}catch{return null}let k=(0,g.parseRawLines)(d,"session"),o=function(a,b="session"){let c=[],d=new Map,e=Date.now();for(let f=0;f<a.length;f++){let i=a[f];if(!n(i))continue;let k="string"==typeof i.type?i.type:"";if(!k||j.has(k))continue;let l=function(a,b){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return new Date(a);if(a>1e9)return new Date(1e3*a)}if("string"==typeof a){let b=Date.parse(a);if(!Number.isNaN(b))return new Date(b)}return new Date(b)}(i.created_at,e+f),m=l.toISOString(),o="number"==typeof i.step_index?i.step_index:f,p={uuid:`antigravity-${o}`,parentUuid:null},q=(0,g.baseEntry)(p,m,l,b);if("USER_INPUT"===k){let a="string"==typeof i.content?i.content:"";c.push({type:"user",...q,message:{role:"user",content:a}});continue}if("PLANNER_RESPONSE"===k){let a=[];if("string"==typeof i.content&&i.content.length>0&&a.push({type:"text",text:i.content}),Array.isArray(i.tool_calls))for(let b=0;b<i.tool_calls.length;b++){let c=i.tool_calls[b];if(!n(c))continue;let e="string"==typeof c.name?c.name:"tool",f={type:"tool_use",id:`${e}-${o}-${b}`,name:e,input:n(c.args)?c.args:{}};a.push(f);let g=e.toUpperCase(),h=d.get(g)??[];h.push({block:f,startMs:l.getTime()}),d.set(g,h)}if(0===a.length)continue;c.push({type:"assistant",...q,message:{role:"assistant",content:a}});continue}let r=d.get(k);if(r&&r.length>0){let{block:a,startMs:b}=r.shift(),c=Math.max(0,l.getTime()-b);a.result={timestamp:m,timestampFormatted:(0,g.formatTimestamp)(l),content:"string"==typeof i.content?i.content:"",durationMs:c,durationFormatted:(0,h.formatDuration)(c)};continue}c.push({type:"system",...q,raw:p})}return c.sort((a,b)=>a.timestampMs-b.timestampMs),c}(k,"session"),p=function(a){for(let b of a)if(n(b)&&Array.isArray(b.tool_calls))for(let a of b.tool_calls){if(!n(a)||!n(a.args))continue;let b=a.args.Cwd??a.args.cwd;if("string"==typeof b&&b.length>0)return b}}(k);return{entries:o,rawLines:k,cwd:p,filePath:f}}let p=(0,f.runtimeCache)(a=>o(a),60,{maxSize:50});a.s(["antigravityHome",0,k,"getAntigravitySessionLog",0,o,"getCachedAntigravitySessionLog",0,p,"listAntigravityTranscripts",0,function(){let a,b=l(),d=m(),f=[];try{a=(0,c.readdirSync)(b,{withFileTypes:!0}).filter(a=>a.isDirectory())}catch{return f}for(let g of a){let a=g.name;if(!i.test(a))continue;let h=(0,e.join)(b,a,d);try{let b=(0,c.statSync)(h);if(!b.isFile())continue;f.push({conversationId:a,transcriptPath:h,mtimeMs:b.mtimeMs,sizeBytes:b.size})}catch{}}return f}])},33559,a=>{"use strict";var b=a.i(60526),c=a.i(50227),d=a.i(94431),e=a.i(34900),f=a.i(83397),g=a.i(92246);let h=/^[A-Za-z0-9_-]+$/;function i(){return process.env.DEVIN_DB_PATH||(0,c.join)(process.env.DEVIN_HOME||(0,c.join)((0,b.homedir)(),".local","share","devin"),"cli","sessions.db")}function j(a){if("string"==typeof a&&0!==a.length)try{return JSON.parse(a)}catch{return}}function k(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function l(a){return"string"==typeof a?a:Array.isArray(a)?a.map(a=>k(a)&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"):""}function m(a,b){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return new Date(a);if(a>1e9)return new Date(1e3*a)}if("string"==typeof a){let b=Date.parse(a);if(!Number.isNaN(b))return new Date(b)}return new Date(b)}async function n(a){if(!a||!h.test(a))return null;let b=await (0,d.openSqliteReadonly)(i());if(!b)return null;try{let c=b.query("SELECT working_directory FROM sessions WHERE id = ?",[a]);if(0===c.length)return null;let d=c[0].working_directory,e=b.query("SELECT node_id, parent_node_id, chat_message, created_at FROM message_nodes WHERE session_id = ? ORDER BY node_id ASC",[a]),h=function(a){let b=[];for(let c of a){let a=j(c.chat_message);k(a)&&(null!=c.created_at&&null==a._created_at&&(a._created_at=c.created_at),b.push(a))}return b}(function(a){if(0===a.length)return a;let b=new Map;for(let c of a)"number"==typeof c.node_id&&b.set(c.node_id,c);let c=a.reduce((a,b)=>(a.node_id??-1)>(b.node_id??-1)?a:b),d=[],e=new Set;for(;c&&"number"==typeof c.node_id&&!e.has(c.node_id);)e.add(c.node_id),d.push(c),c=null!=c.parent_node_id?b.get(c.parent_node_id):void 0;return d.reverse()}(e)),i=function(a,b="session"){let c=[],d=new Map,e=new Map,h=Date.now();for(let i=0;i<a.length;i++){let n=a[i];if(!k(n))continue;let o="string"==typeof n.role?n.role:"system",p=function(a,b){let c=k(a.metadata)?a.metadata:void 0;return c&&null!=c.created_at?m(c.created_at,b):null!=a._created_at?m(a._created_at,b):new Date(b)}(n,h+i),q=p.toISOString(),r={uuid:null!=n.message_id?String(n.message_id):`devin-${i}`,parentUuid:null},s=(0,f.baseEntry)(r,q,p,b);if("user"===o){c.push({type:"user",...s,message:{role:"user",content:l(n.content)}});continue}if("assistant"===o){let a=[],b=l(n.content);for(let c of(b&&a.push({type:"text",text:b}),function(a){let b=Array.isArray(a)?a:j(a);if(!Array.isArray(b))return[];let c=[];for(let a of b){if(!k(a))continue;let b=k(a.function)?a.function:{},d="string"==typeof a.name?a.name:"string"==typeof b.name?b.name:"tool",e="string"==typeof a.id&&a.id||"string"==typeof a.call_id&&a.call_id||`${d}-${c.length}`,f=a.arguments??b.arguments,g=k(f)?f:j(f);c.push({id:e,name:d,input:k(g)?g:{}})}return c}(n.tool_calls))){let b={type:"tool_use",id:c.id,name:c.name,input:c.input};a.push(b),d.set(c.id,b),e.set(c.id,p.getTime())}if(0===a.length)continue;c.push({type:"assistant",...s,message:{role:"assistant",content:a,model:"string"==typeof n.model?n.model:void 0}});continue}if("tool"===o){let a="string"==typeof n.tool_call_id?n.tool_call_id:void 0,b=a?d.get(a):void 0;if(b){let c=a&&e.get(a)||p.getTime(),d=Math.max(0,p.getTime()-c);b.result={timestamp:q,timestampFormatted:(0,f.formatTimestamp)(p),content:l(n.content),durationMs:d,durationFormatted:(0,g.formatDuration)(d)};continue}}c.push({type:"system",...s,raw:r})}return c.sort((a,b)=>a.timestampMs-b.timestampMs),c}(h,"session"),n=d&&d.length>0?d:void 0;return{entries:i,rawLines:h,cwd:n,filePath:`devin-db://${a}`}}catch{return null}finally{b.close()}}let o=(0,e.runtimeCache)(a=>n(a),2,{maxSize:50});a.s(["devinDbPath",0,i,"devinEpochToMs",0,function(a){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return a;if(a>1e9)return 1e3*a}return Date.now()},"getCachedDevinSessionLog",0,o])},89901,a=>{"use strict";var b=a.i(12714),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(90798),g=a.i(34900),h=a.i(83397),i=a.i(92246);let j=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;function k(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function l(a){return"string"==typeof a?a:Array.isArray(a)?a.map(a=>k(a)&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"):""}function m(){let a,b=(0,e.join)(process.env.FACTORY_HOME||(0,e.join)((0,d.homedir)(),".factory"),"sessions"),g=[];try{a=(0,c.readdirSync)(b,{withFileTypes:!0}).filter(a=>a.isDirectory())}catch{return g}for(let d of a){let a,h=d.name,i=(0,f.decodeFolderName)(h),k=(0,e.join)(b,h);try{a=(0,c.readdirSync)(k)}catch{continue}for(let b of a){if(!b.endsWith(".jsonl"))continue;let a=b.slice(0,-6);if(!j.test(a))continue;let d=(0,e.join)(k,b);try{let b=(0,c.statSync)(d);g.push({projectName:h,cwd:i,sessionId:a,transcriptPath:d,mtimeMs:b.mtimeMs,sizeBytes:b.size})}catch{}}}return g}async function n(a){let c,d,e=function(a){if(!j.test(a))return null;for(let b of m())if(b.sessionId===a)return b.transcriptPath;return null}(a);if(!e)return null;try{c=await (0,b.readFile)(e,"utf-8")}catch{return null}let f=(0,h.parseRawLines)(c,"session"),g=function(a,b="session"){let c=[],d=new Map,e=new Map,f=Date.now();for(let g=0;g<a.length;g++){let j=a[g];if(!k(j)||"message"!==j.type)continue;let m=k(j.message)?j.message:void 0;if(!m)continue;let n="string"==typeof m.role?m.role:"system",o=function(a,b){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return new Date(a);if(a>1e9)return new Date(1e3*a)}if("string"==typeof a){let b=Date.parse(a);if(!Number.isNaN(b))return new Date(b)}return new Date(b)}(j.timestamp??m.timestamp,f+g),p=o.toISOString(),q={uuid:null!=j.id?String(j.id):`factory-${g}`,parentUuid:null!=j.parentId?String(j.parentId):null},r=(0,h.baseEntry)(q,p,o,b),s=m.content;if("assistant"===n){let a=[];if(Array.isArray(s)){for(let b of s)if(k(b)){if("text"===b.type&&"string"==typeof b.text)a.push({type:"text",text:b.text});else if("tool_use"===b.type){let c="string"==typeof b.id?b.id:`${String(b.name??"tool")}-${a.length}`,f={type:"tool_use",id:c,name:"string"==typeof b.name?b.name:"tool",input:k(b.input)?b.input:{}};a.push(f),d.set(c,f),e.set(c,o.getTime())}}}else{let b=l(s);b&&a.push({type:"text",text:b})}if(0===a.length)continue;c.push({type:"assistant",...r,message:{role:"assistant",content:a,model:"string"==typeof m.model?m.model:void 0}});continue}if(Array.isArray(s)){let a=!1,b=[];for(let c of s)if(k(c)){if("tool_result"===c.type){let b="string"==typeof c.tool_use_id?c.tool_use_id:"string"==typeof c.toolUseId?c.toolUseId:void 0,f=b?d.get(b):void 0;if(f){let d=b&&e.get(b)||o.getTime(),g=Math.max(0,o.getTime()-d);f.result={timestamp:p,timestampFormatted:(0,h.formatTimestamp)(o),content:l(c.content),durationMs:g,durationFormatted:(0,i.formatDuration)(g)},a=!0;continue}}"text"===c.type&&"string"==typeof c.text&&b.push(c.text)}b.length>0?c.push({type:"user",...r,message:{role:"user",content:b.join("\n")}}):a||c.push({type:"system",...r,raw:q});continue}if("user"===n){c.push({type:"user",...r,message:{role:"user",content:l(s)}});continue}c.push({type:"system",...r,raw:q})}return c.sort((a,b)=>a.timestampMs-b.timestampMs),c}(f,"session");for(let a of f)if(k(a)&&"session_start"===a.type&&"string"==typeof a.cwd&&a.cwd.length>0){d=a.cwd;break}return{entries:g,rawLines:f,cwd:d,filePath:e}}let o=(0,g.runtimeCache)(a=>n(a),60,{maxSize:50});a.s(["getCachedFactorySessionLog",0,o,"getFactorySessionLog",0,n,"listFactoryTranscripts",0,m])},74615,a=>{"use strict";var b=a.i(60526),c=a.i(50227),d=a.i(94431),e=a.i(34900),f=a.i(83397),g=a.i(92246);let h=/^\d{8}_\d+$/;function i(){return process.env.GOOSE_DB_PATH||(0,c.join)(function(){if(process.env.GOOSE_HOME)return process.env.GOOSE_HOME;let a=process.env.XDG_DATA_HOME;return(0,c.join)(a&&a.length>0?a:(0,c.join)((0,b.homedir)(),".local","share"),"goose")}(),"sessions","sessions.db")}function j(a){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return a;if(a>1e9)return 1e3*a}if("string"==typeof a&&a.length>0){let b=Date.parse(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(a)?a.replace(" ","T")+"Z":a);if(!Number.isNaN(b))return b}return Date.now()}function k(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function l(a){return"string"==typeof a?a:Array.isArray(a)?a.map(a=>k(a)&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"):""}async function m(a){if(!a||!h.test(a))return null;let b=await (0,d.openSqliteReadonly)(i());if(!b)return null;try{let c=b.query("SELECT working_dir FROM sessions WHERE id = ?",[a]);if(0===c.length)return null;let d=c[0].working_dir,e=b.query("SELECT role, content_json, created_timestamp FROM messages WHERE session_id = ? ORDER BY id ASC",[a]),h=function(a,b="session"){let c=[],d=new Map,e=new Map,h=Date.now();for(let i=0;i<a.length;i++){let m=a[i],n=function(a){if("string"==typeof a&&0!==a.length)try{return JSON.parse(a)}catch{return}}(m.content_json);if(!Array.isArray(n))continue;let o="string"==typeof m.role?m.role:"system",p=function(a,b){let c="number"==typeof a||"string"==typeof a?j(a):NaN;return new Date(Number.isNaN(c)?b:c)}(m.created_timestamp,h+i),q=p.toISOString(),r={uuid:`goose-${i}`,parentUuid:null},s=(0,f.baseEntry)(r,q,p,b),t=[],u=[],v=[];for(let a of n)k(a)&&("text"===a.type&&"string"==typeof a.text?t.push(a.text):"toolRequest"===a.type?u.push(a):"toolResponse"===a.type&&v.push(a));for(let a of v){let b="string"==typeof a.id?a.id:void 0,c=b?d.get(b):void 0;if(!c)continue;let h=b&&e.get(b)||p.getTime(),i=Math.max(0,p.getTime()-h);c.result={timestamp:q,timestampFormatted:(0,f.formatTimestamp)(p),content:function(a){let b=(k(a.toolResult)?a.toolResult:{}).value;return k(b)&&Array.isArray(b.content)?l(b.content):"string"==typeof b?b:Array.isArray(b)?l(b):""}(a),durationMs:i,durationFormatted:(0,g.formatDuration)(i)}}let w=t.join("\n").trim();if(u.length>0||"assistant"===o&&w){let a=[];for(let b of(w&&a.push({type:"text",text:w}),u)){let{id:c,name:f,input:g}=function(a,b){let c="string"==typeof a.id&&a.id?a.id:`goose-tool-${b}`,d=k(a.toolCall)?a.toolCall:{},e=k(d.value)?d.value:{},f="string"==typeof e.name?e.name:"tool";return{id:c,name:f,input:k(e.arguments)?e.arguments:{}}}(b,a.length),h={type:"tool_use",id:c,name:f,input:g};a.push(h),d.set(c,h),e.set(c,p.getTime())}if(0===a.length)continue;c.push({type:"assistant",...s,message:{role:"assistant",content:a}});continue}if("user"===o&&w){c.push({type:"user",...s,message:{role:"user",content:w}});continue}w&&c.push({type:"system",...s,raw:r})}return c.sort((a,b)=>a.timestampMs-b.timestampMs),c}(e,"session"),i=d&&d.length>0?d:void 0;return{entries:h,rawLines:e,cwd:i,filePath:`goose-db://${a}`}}catch{return null}finally{b.close()}}let n=(0,e.runtimeCache)(a=>m(a),2,{maxSize:50});a.s(["getCachedGooseSessionLog",0,n,"gooseDbPath",0,i,"gooseTimestampToMs",0,j])},43600,a=>{"use strict";var b=a.i(2157),c=a.i(60526),d=a.i(50227);let e="profiles",f="default";function g(){let a=(process.env.HERMES_HOME||"").trim();if(a){let b=(0,d.resolve)(a),c=(0,d.dirname)(b);return(0,d.basename)(c)===e?(0,d.dirname)(c):b}return(0,d.join)((0,c.homedir)(),".hermes")}function h(){let a,c=g(),h=[{name:f,home:c}],i=new Set([f]);try{a=(0,b.readdirSync)((0,d.join)(c,e),{withFileTypes:!0}).filter(a=>(a.isDirectory()||a.isSymbolicLink())&&!a.name.startsWith(".")).map(a=>a.name).sort()}catch{return h}for(let b of a)i.has(b)||(i.add(b),h.push({name:b,home:(0,d.join)(c,e,b)}));return h}a.s(["HERMES_DEFAULT_PROFILE",0,f,"hermesProjectName",0,function(a,b){return`hermes-${a}-${b}`},"hermesProjectNameCandidates",0,function(a){if(!a.startsWith("hermes-"))return[];let b=a.slice(7);if(!b)return[];let c=[];for(let a of h().map(a=>a.name).sort((a,b)=>b.length-a.length)){let d=`${a}-`;b.startsWith(d)&&b.length>d.length&&c.push({profile:a,source:b.slice(d.length)})}return c.push({profile:f,source:b}),c},"hermesProjectPath",0,function(a,b){return`hermes:${a}:${b}`},"hermesRoot",0,g,"listHermesProfiles",0,h])},54563,a=>{"use strict";var b=a.i(50227),c=a.i(94431),d=a.i(43600),e=a.i(34900),f=a.i(83397),g=a.i(92246);function h(){let a=process.env.HERMES_DB_PATH;return a?[{profile:d.HERMES_DEFAULT_PROFILE,dbPath:a}]:(0,d.listHermesProfiles)().map(a=>({profile:a.name,dbPath:(0,b.join)(a.home,"state.db")}))}function i(a){if("string"==typeof a&&0!==a.length)try{return JSON.parse(a)}catch{return}}function j(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function k(a){return"string"==typeof a?a:Array.isArray(a)?a.map(a=>j(a)&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"):""}async function l(a){if(!a||!/^[A-Za-z0-9_-]+$/.test(a))return null;for(let{profile:b,dbPath:c}of h()){let d=await m(c,b,a);if(d)return d}return null}async function m(a,b,e){let h=await (0,c.openSqliteReadonly)(a);if(!h)return null;try{let a=h.query("SELECT source, cwd FROM sessions WHERE id = ?",[e]);if(0===a.length)return null;let{source:c,cwd:l}=a[0],m=h.query("SELECT id, role, content, tool_call_id, tool_calls, tool_name, timestamp FROM messages WHERE session_id = ? ORDER BY timestamp ASC",[e]),n=function(a,b="session"){let c=[],d=new Map,e=new Map,h=Date.now();for(let l=0;l<a.length;l++){let m=a[l];if(!j(m))continue;let n="string"==typeof m.role?m.role:"system",o=function(a,b){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return new Date(a);if(a>1e9)return new Date(1e3*a)}if("string"==typeof a){let b=Date.parse(a);if(!Number.isNaN(b))return new Date(b)}return new Date(b)}(m.timestamp??m.time_created,h+l),p=o.toISOString(),q={uuid:null!=m.id?String(m.id):`hermes-${l}`,parentUuid:null},r=(0,f.baseEntry)(q,p,o,b);if("user"===n){c.push({type:"user",...r,message:{role:"user",content:k(m.content)}});continue}if("assistant"===n){let a=[],b=k(m.content);for(let c of(b&&a.push({type:"text",text:b}),function(a){let b=Array.isArray(a)?a:i(a);if(!Array.isArray(b))return[];let c=[];for(let a of b){if(!j(a))continue;let b=j(a.function)?a.function:{},d="string"==typeof b.name?b.name:"string"==typeof a.name?a.name:"tool",e="string"==typeof a.id&&a.id||"string"==typeof a.call_id&&a.call_id||`${d}-${c.length}`,f=j(b.arguments)?b.arguments:i(b.arguments);c.push({id:e,name:d,input:j(f)?f:{}})}return c}(m.tool_calls))){let b={type:"tool_use",id:c.id,name:c.name,input:c.input};a.push(b),d.set(c.id,b),e.set(c.id,o.getTime())}if(0===a.length)continue;c.push({type:"assistant",...r,message:{role:"assistant",content:a}});continue}if("tool"===n){let a="string"==typeof m.tool_call_id?m.tool_call_id:void 0,b=a?d.get(a):void 0;if(b){let c=a&&e.get(a)||o.getTime(),d=Math.max(0,o.getTime()-c);b.result={timestamp:p,timestampFormatted:(0,f.formatTimestamp)(o),content:k(m.content),durationMs:d,durationFormatted:(0,g.formatDuration)(d)};continue}}c.push({type:"system",...r,raw:q})}return c.sort((a,b)=>a.timestampMs-b.timestampMs),c}(m,"session"),o=l&&l.length>0?l:c?(0,d.hermesProjectPath)(b,c):void 0;return{entries:n,rawLines:m,cwd:o,filePath:`hermes://${e}`,profile:b}}catch{return null}finally{h.close()}}let n=(0,e.runtimeCache)(a=>l(a),2,{maxSize:50});a.s(["epochToMs",0,function(a){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return a;if(a>1e9)return 1e3*a}return Date.now()},"getCachedHermesSessionLog",0,n,"hermesDbPaths",0,h])},87488,32460,a=>{"use strict";var b=a.i(12714),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(34900),g=a.i(83397),h=a.i(92246),i=a.i(94431);function j(a){return"string"==typeof a&&a.length>0?a:void 0}function k(a){try{let b=JSON.parse(a);return b&&"object"==typeof b&&!Array.isArray(b)?b:void 0}catch{return}}function l(a,b){return`openclaw-sqlite://${encodeURIComponent(a)}/${b}`}function m(a,b){let d=[];for(let f of b){let b=(0,e.join)(a,"agents",f,"agent","openclaw-agent.sqlite");(0,c.existsSync)(b)&&d.push({agentId:f,dbPath:b})}return d}async function n(a,b){let c=[];for(let{agentId:d,dbPath:e}of m(a,b)){let a=await (0,i.openSqliteReadonly)(e);if(a)try{let b;try{b=a.query(`SELECT w.session_id, w.session_key, w.updated_at,
|
|
1
|
+
module.exports=[99910,a=>{"use strict";var b=a.i(12714),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(34900),g=a.i(83397),h=a.i(92246);let i=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,j=new Set(["CONVERSATION_HISTORY","CHECKPOINT"]);function k(){return process.env.ANTIGRAVITY_HOME||(0,e.join)((0,d.homedir)(),".gemini","antigravity-cli")}function l(){return(0,e.join)(k(),"brain")}function m(){return(0,e.join)(".system_generated","logs","transcript_full.jsonl")}function n(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}async function o(a){let d,f=function(a){if(!i.test(a))return null;let b=(0,e.join)(l(),a,m());try{if((0,c.statSync)(b).isFile())return b}catch{}return null}(a);if(!f)return null;try{d=await (0,b.readFile)(f,"utf-8")}catch{return null}let k=(0,g.parseRawLines)(d,"session"),o=function(a,b="session"){let c=[],d=new Map,e=Date.now();for(let f=0;f<a.length;f++){let i=a[f];if(!n(i))continue;let k="string"==typeof i.type?i.type:"";if(!k||j.has(k))continue;let l=function(a,b){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return new Date(a);if(a>1e9)return new Date(1e3*a)}if("string"==typeof a){let b=Date.parse(a);if(!Number.isNaN(b))return new Date(b)}return new Date(b)}(i.created_at,e+f),m=l.toISOString(),o="number"==typeof i.step_index?i.step_index:f,p={uuid:`antigravity-${o}`,parentUuid:null},q=(0,g.baseEntry)(p,m,l,b);if("USER_INPUT"===k){let a="string"==typeof i.content?i.content:"";c.push({type:"user",...q,message:{role:"user",content:a}});continue}if("PLANNER_RESPONSE"===k){let a=[];if("string"==typeof i.content&&i.content.length>0&&a.push({type:"text",text:i.content}),Array.isArray(i.tool_calls))for(let b=0;b<i.tool_calls.length;b++){let c=i.tool_calls[b];if(!n(c))continue;let e="string"==typeof c.name?c.name:"tool",f={type:"tool_use",id:`${e}-${o}-${b}`,name:e,input:n(c.args)?c.args:{}};a.push(f);let g=e.toUpperCase(),h=d.get(g)??[];h.push({block:f,startMs:l.getTime()}),d.set(g,h)}if(0===a.length)continue;c.push({type:"assistant",...q,message:{role:"assistant",content:a}});continue}let r=d.get(k);if(r&&r.length>0){let{block:a,startMs:b}=r.shift(),c=Math.max(0,l.getTime()-b);a.result={timestamp:m,timestampFormatted:(0,g.formatTimestamp)(l),content:"string"==typeof i.content?i.content:"",durationMs:c,durationFormatted:(0,h.formatDuration)(c)};continue}c.push({type:"system",...q,raw:p})}return c.sort((a,b)=>a.timestampMs-b.timestampMs),c}(k,"session"),p=function(a){for(let b of a)if(n(b)&&Array.isArray(b.tool_calls))for(let a of b.tool_calls){if(!n(a)||!n(a.args))continue;let b=a.args.Cwd??a.args.cwd;if("string"==typeof b&&b.length>0)return b}}(k);return{entries:o,rawLines:k,cwd:p,filePath:f}}let p=(0,f.runtimeCache)(a=>o(a),60,{maxSize:50});a.s(["antigravityHome",0,k,"getAntigravitySessionLog",0,o,"getCachedAntigravitySessionLog",0,p,"listAntigravityTranscripts",0,function(){let a,b=l(),d=m(),f=[];try{a=(0,c.readdirSync)(b,{withFileTypes:!0}).filter(a=>a.isDirectory())}catch{return f}for(let g of a){let a=g.name;if(!i.test(a))continue;let h=(0,e.join)(b,a,d);try{let b=(0,c.statSync)(h);if(!b.isFile())continue;f.push({conversationId:a,transcriptPath:h,mtimeMs:b.mtimeMs,sizeBytes:b.size})}catch{}}return f}])},33559,a=>{"use strict";var b=a.i(60526),c=a.i(50227),d=a.i(94431),e=a.i(34900),f=a.i(83397),g=a.i(92246);let h=/^[A-Za-z0-9_-]+$/;function i(){return process.env.DEVIN_DB_PATH||(0,c.join)(process.env.DEVIN_HOME||(0,c.join)((0,b.homedir)(),".local","share","devin"),"cli","sessions.db")}function j(a){if("string"==typeof a&&0!==a.length)try{return JSON.parse(a)}catch{return}}function k(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function l(a){return"string"==typeof a?a:Array.isArray(a)?a.map(a=>k(a)&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"):""}function m(a,b){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return new Date(a);if(a>1e9)return new Date(1e3*a)}if("string"==typeof a){let b=Date.parse(a);if(!Number.isNaN(b))return new Date(b)}return new Date(b)}async function n(a){if(!a||!h.test(a))return null;let b=await (0,d.openSqliteReadonly)(i());if(!b)return null;try{let c=b.query("SELECT working_directory FROM sessions WHERE id = ?",[a]);if(0===c.length)return null;let d=c[0].working_directory,e=b.query("SELECT node_id, parent_node_id, chat_message, created_at FROM message_nodes WHERE session_id = ? ORDER BY node_id ASC",[a]),h=function(a){let b=[];for(let c of a){let a=j(c.chat_message);k(a)&&(null!=c.created_at&&null==a._created_at&&(a._created_at=c.created_at),b.push(a))}return b}(function(a){if(0===a.length)return a;let b=new Map;for(let c of a)"number"==typeof c.node_id&&b.set(c.node_id,c);let c=a.reduce((a,b)=>(a.node_id??-1)>(b.node_id??-1)?a:b),d=[],e=new Set;for(;c&&"number"==typeof c.node_id&&!e.has(c.node_id);)e.add(c.node_id),d.push(c),c=null!=c.parent_node_id?b.get(c.parent_node_id):void 0;return d.reverse()}(e)),i=function(a,b="session"){let c=[],d=new Map,e=new Map,h=Date.now();for(let i=0;i<a.length;i++){let n=a[i];if(!k(n))continue;let o="string"==typeof n.role?n.role:"system",p=function(a,b){let c=k(a.metadata)?a.metadata:void 0;return c&&null!=c.created_at?m(c.created_at,b):null!=a._created_at?m(a._created_at,b):new Date(b)}(n,h+i),q=p.toISOString(),r={uuid:null!=n.message_id?String(n.message_id):`devin-${i}`,parentUuid:null},s=(0,f.baseEntry)(r,q,p,b);if("user"===o){c.push({type:"user",...s,message:{role:"user",content:l(n.content)}});continue}if("assistant"===o){let a=[],b=l(n.content);for(let c of(b&&a.push({type:"text",text:b}),function(a){let b=Array.isArray(a)?a:j(a);if(!Array.isArray(b))return[];let c=[];for(let a of b){if(!k(a))continue;let b=k(a.function)?a.function:{},d="string"==typeof a.name?a.name:"string"==typeof b.name?b.name:"tool",e="string"==typeof a.id&&a.id||"string"==typeof a.call_id&&a.call_id||`${d}-${c.length}`,f=a.arguments??b.arguments,g=k(f)?f:j(f);c.push({id:e,name:d,input:k(g)?g:{}})}return c}(n.tool_calls))){let b={type:"tool_use",id:c.id,name:c.name,input:c.input};a.push(b),d.set(c.id,b),e.set(c.id,p.getTime())}if(0===a.length)continue;c.push({type:"assistant",...s,message:{role:"assistant",content:a,model:"string"==typeof n.model?n.model:void 0}});continue}if("tool"===o){let a="string"==typeof n.tool_call_id?n.tool_call_id:void 0,b=a?d.get(a):void 0;if(b){let c=a&&e.get(a)||p.getTime(),d=Math.max(0,p.getTime()-c);b.result={timestamp:q,timestampFormatted:(0,f.formatTimestamp)(p),content:l(n.content),durationMs:d,durationFormatted:(0,g.formatDuration)(d)};continue}}c.push({type:"system",...s,raw:r})}return c.sort((a,b)=>a.timestampMs-b.timestampMs),c}(h,"session"),n=d&&d.length>0?d:void 0;return{entries:i,rawLines:h,cwd:n,filePath:`devin-db://${a}`}}catch{return null}finally{b.close()}}let o=(0,e.runtimeCache)(a=>n(a),2,{maxSize:50});a.s(["devinDbPath",0,i,"devinEpochToMs",0,function(a){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return a;if(a>1e9)return 1e3*a}return Date.now()},"getCachedDevinSessionLog",0,o])},89901,a=>{"use strict";var b=a.i(12714),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(90798),g=a.i(34900),h=a.i(83397),i=a.i(92246);let j=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;function k(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function l(a){return"string"==typeof a?a:Array.isArray(a)?a.map(a=>k(a)&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"):""}function m(){let a,b=(0,e.join)(process.env.FACTORY_HOME||(0,e.join)((0,d.homedir)(),".factory"),"sessions"),g=[];try{a=(0,c.readdirSync)(b,{withFileTypes:!0}).filter(a=>a.isDirectory())}catch{return g}for(let d of a){let a,h=d.name,i=(0,f.decodeFolderName)(h),k=(0,e.join)(b,h);try{a=(0,c.readdirSync)(k)}catch{continue}for(let b of a){if(!b.endsWith(".jsonl"))continue;let a=b.slice(0,-6);if(!j.test(a))continue;let d=(0,e.join)(k,b);try{let b=(0,c.statSync)(d);g.push({projectName:h,cwd:i,sessionId:a,transcriptPath:d,mtimeMs:b.mtimeMs,sizeBytes:b.size})}catch{}}}return g}async function n(a){let c,d,e=function(a){if(!j.test(a))return null;for(let b of m())if(b.sessionId===a)return b.transcriptPath;return null}(a);if(!e)return null;try{c=await (0,b.readFile)(e,"utf-8")}catch{return null}let f=(0,h.parseRawLines)(c,"session"),g=function(a,b="session"){let c=[],d=new Map,e=new Map,f=Date.now();for(let g=0;g<a.length;g++){let j=a[g];if(!k(j)||"message"!==j.type)continue;let m=k(j.message)?j.message:void 0;if(!m)continue;let n="string"==typeof m.role?m.role:"system",o=function(a,b){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return new Date(a);if(a>1e9)return new Date(1e3*a)}if("string"==typeof a){let b=Date.parse(a);if(!Number.isNaN(b))return new Date(b)}return new Date(b)}(j.timestamp??m.timestamp,f+g),p=o.toISOString(),q={uuid:null!=j.id?String(j.id):`factory-${g}`,parentUuid:null!=j.parentId?String(j.parentId):null},r=(0,h.baseEntry)(q,p,o,b),s=m.content;if("assistant"===n){let a=[];if(Array.isArray(s)){for(let b of s)if(k(b)){if("text"===b.type&&"string"==typeof b.text)a.push({type:"text",text:b.text});else if("tool_use"===b.type){let c="string"==typeof b.id?b.id:`${String(b.name??"tool")}-${a.length}`,f={type:"tool_use",id:c,name:"string"==typeof b.name?b.name:"tool",input:k(b.input)?b.input:{}};a.push(f),d.set(c,f),e.set(c,o.getTime())}}}else{let b=l(s);b&&a.push({type:"text",text:b})}if(0===a.length)continue;c.push({type:"assistant",...r,message:{role:"assistant",content:a,model:"string"==typeof m.model?m.model:void 0}});continue}if(Array.isArray(s)){let a=!1,b=[];for(let c of s)if(k(c)){if("tool_result"===c.type){let b="string"==typeof c.tool_use_id?c.tool_use_id:"string"==typeof c.toolUseId?c.toolUseId:void 0,f=b?d.get(b):void 0;if(f){let d=b&&e.get(b)||o.getTime(),g=Math.max(0,o.getTime()-d);f.result={timestamp:p,timestampFormatted:(0,h.formatTimestamp)(o),content:l(c.content),durationMs:g,durationFormatted:(0,i.formatDuration)(g)},a=!0;continue}}"text"===c.type&&"string"==typeof c.text&&b.push(c.text)}b.length>0?c.push({type:"user",...r,message:{role:"user",content:b.join("\n")}}):a||c.push({type:"system",...r,raw:q});continue}if("user"===n){c.push({type:"user",...r,message:{role:"user",content:l(s)}});continue}c.push({type:"system",...r,raw:q})}return c.sort((a,b)=>a.timestampMs-b.timestampMs),c}(f,"session");for(let a of f)if(k(a)&&"session_start"===a.type&&"string"==typeof a.cwd&&a.cwd.length>0){d=a.cwd;break}return{entries:g,rawLines:f,cwd:d,filePath:e}}let o=(0,g.runtimeCache)(a=>n(a),60,{maxSize:50});a.s(["getCachedFactorySessionLog",0,o,"getFactorySessionLog",0,n,"listFactoryTranscripts",0,m])},74615,a=>{"use strict";var b=a.i(60526),c=a.i(50227),d=a.i(94431),e=a.i(34900),f=a.i(83397),g=a.i(92246);let h=/^\d{8}_\d+$/;function i(){return process.env.GOOSE_DB_PATH||(0,c.join)(function(){if(process.env.GOOSE_HOME)return process.env.GOOSE_HOME;let a=process.env.XDG_DATA_HOME;return(0,c.join)(a&&a.length>0?a:(0,c.join)((0,b.homedir)(),".local","share"),"goose")}(),"sessions","sessions.db")}function j(a){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return a;if(a>1e9)return 1e3*a}if("string"==typeof a&&a.length>0){let b=Date.parse(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(a)?a.replace(" ","T")+"Z":a);if(!Number.isNaN(b))return b}return Date.now()}function k(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function l(a){return"string"==typeof a?a:Array.isArray(a)?a.map(a=>k(a)&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"):""}async function m(a){if(!a||!h.test(a))return null;let b=await (0,d.openSqliteReadonly)(i());if(!b)return null;try{let c=b.query("SELECT working_dir FROM sessions WHERE id = ?",[a]);if(0===c.length)return null;let d=c[0].working_dir,e=b.query("SELECT role, content_json, created_timestamp FROM messages WHERE session_id = ? ORDER BY id ASC",[a]),h=function(a,b="session"){let c=[],d=new Map,e=new Map,h=Date.now();for(let i=0;i<a.length;i++){let m=a[i],n=function(a){if("string"==typeof a&&0!==a.length)try{return JSON.parse(a)}catch{return}}(m.content_json);if(!Array.isArray(n))continue;let o="string"==typeof m.role?m.role:"system",p=function(a,b){let c="number"==typeof a||"string"==typeof a?j(a):NaN;return new Date(Number.isNaN(c)?b:c)}(m.created_timestamp,h+i),q=p.toISOString(),r={uuid:`goose-${i}`,parentUuid:null},s=(0,f.baseEntry)(r,q,p,b),t=[],u=[],v=[];for(let a of n)k(a)&&("text"===a.type&&"string"==typeof a.text?t.push(a.text):"toolRequest"===a.type?u.push(a):"toolResponse"===a.type&&v.push(a));for(let a of v){let b="string"==typeof a.id?a.id:void 0,c=b?d.get(b):void 0;if(!c)continue;let h=b&&e.get(b)||p.getTime(),i=Math.max(0,p.getTime()-h);c.result={timestamp:q,timestampFormatted:(0,f.formatTimestamp)(p),content:function(a){let b=(k(a.toolResult)?a.toolResult:{}).value;return k(b)&&Array.isArray(b.content)?l(b.content):"string"==typeof b?b:Array.isArray(b)?l(b):""}(a),durationMs:i,durationFormatted:(0,g.formatDuration)(i)}}let w=t.join("\n").trim();if(u.length>0||"assistant"===o&&w){let a=[];for(let b of(w&&a.push({type:"text",text:w}),u)){let{id:c,name:f,input:g}=function(a,b){let c="string"==typeof a.id&&a.id?a.id:`goose-tool-${b}`,d=k(a.toolCall)?a.toolCall:{},e=k(d.value)?d.value:{},f="string"==typeof e.name?e.name:"tool";return{id:c,name:f,input:k(e.arguments)?e.arguments:{}}}(b,a.length),h={type:"tool_use",id:c,name:f,input:g};a.push(h),d.set(c,h),e.set(c,p.getTime())}if(0===a.length)continue;c.push({type:"assistant",...s,message:{role:"assistant",content:a}});continue}if("user"===o&&w){c.push({type:"user",...s,message:{role:"user",content:w}});continue}w&&c.push({type:"system",...s,raw:r})}return c.sort((a,b)=>a.timestampMs-b.timestampMs),c}(e,"session"),i=d&&d.length>0?d:void 0;return{entries:h,rawLines:e,cwd:i,filePath:`goose-db://${a}`}}catch{return null}finally{b.close()}}let n=(0,e.runtimeCache)(a=>m(a),2,{maxSize:50});a.s(["getCachedGooseSessionLog",0,n,"gooseDbPath",0,i,"gooseTimestampToMs",0,j])},43600,a=>{"use strict";var b=a.i(2157),c=a.i(60526),d=a.i(50227);let e="profiles",f=".hermes",g=".hermes-",h="default";function i(){let a=(process.env.HERMES_HOME||"").trim();if(a){let b=(0,d.resolve)(a),c=(0,d.dirname)(b);(0,d.basename)(c)===e&&(b=(0,d.dirname)(c));let h=(0,d.basename)(b);return h===f||h.startsWith(g)?(0,d.join)((0,d.dirname)(b),f):b}return(0,d.join)((0,c.homedir)(),f)}function j(){let a=i(),c=[{name:h,home:a}],j=new Set([h]),k=[];try{k=(0,b.readdirSync)((0,d.join)(a,e),{withFileTypes:!0}).filter(a=>(a.isDirectory()||a.isSymbolicLink())&&!a.name.startsWith(".")).map(a=>a.name).sort()}catch{}for(let b of k)j.has(b)||(j.add(b),c.push({name:b,home:(0,d.join)(a,e,b)}));if((0,d.basename)(a)!==f)return c;let l=[],m=(0,d.dirname)(a);try{l=(0,b.readdirSync)(m,{withFileTypes:!0}).filter(a=>(a.isDirectory()||a.isSymbolicLink())&&a.name.startsWith(g)&&a.name.length>g.length&&(0,b.existsSync)((0,d.join)(m,a.name,"config.yaml"))).map(a=>({name:a.name.slice(g.length),home:(0,d.join)(m,a.name)})).sort((a,b)=>a.name.localeCompare(b.name))}catch{return c}for(let a of l){let b=function(a,b){if(!b.has(a))return a;let c=`${a}-home`;if(!b.has(c))return c;let d=2;for(;b.has(`${c}-${d}`);)d+=1;return`${c}-${d}`}(a.name,j);j.add(b),c.push({name:b,home:a.home})}return c}a.s(["HERMES_DEFAULT_PROFILE",0,h,"hermesProjectName",0,function(a,b){return`hermes-${a}-${b}`},"hermesProjectNameCandidates",0,function(a){if(!a.startsWith("hermes-"))return[];let b=a.slice(7);if(!b)return[];let c=[];for(let a of j().map(a=>a.name).sort((a,b)=>b.length-a.length)){let d=`${a}-`;b.startsWith(d)&&b.length>d.length&&c.push({profile:a,source:b.slice(d.length)})}return c.push({profile:h,source:b}),c},"hermesProjectPath",0,function(a,b){return`hermes:${a}:${b}`},"hermesRoot",0,i,"listHermesProfiles",0,j])},54563,a=>{"use strict";var b=a.i(50227),c=a.i(94431),d=a.i(43600),e=a.i(34900),f=a.i(83397),g=a.i(92246);function h(){let a=process.env.HERMES_DB_PATH;return a?[{profile:d.HERMES_DEFAULT_PROFILE,dbPath:a}]:(0,d.listHermesProfiles)().map(a=>({profile:a.name,dbPath:(0,b.join)(a.home,"state.db")}))}function i(a){if("string"==typeof a&&0!==a.length)try{return JSON.parse(a)}catch{return}}function j(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function k(a){return"string"==typeof a?a:Array.isArray(a)?a.map(a=>j(a)&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"):""}async function l(a){if(!a||!/^[A-Za-z0-9_-]+$/.test(a))return null;for(let{profile:b,dbPath:c}of h()){let d=await m(c,b,a);if(d)return d}return null}async function m(a,b,e){let h=await (0,c.openSqliteReadonly)(a);if(!h)return null;try{let a=h.query("SELECT source, cwd FROM sessions WHERE id = ?",[e]);if(0===a.length)return null;let{source:c,cwd:l}=a[0],m=h.query("SELECT id, role, content, tool_call_id, tool_calls, tool_name, timestamp FROM messages WHERE session_id = ? ORDER BY timestamp ASC",[e]),n=function(a,b="session"){let c=[],d=new Map,e=new Map,h=Date.now();for(let l=0;l<a.length;l++){let m=a[l];if(!j(m))continue;let n="string"==typeof m.role?m.role:"system",o=function(a,b){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return new Date(a);if(a>1e9)return new Date(1e3*a)}if("string"==typeof a){let b=Date.parse(a);if(!Number.isNaN(b))return new Date(b)}return new Date(b)}(m.timestamp??m.time_created,h+l),p=o.toISOString(),q={uuid:null!=m.id?String(m.id):`hermes-${l}`,parentUuid:null},r=(0,f.baseEntry)(q,p,o,b);if("user"===n){c.push({type:"user",...r,message:{role:"user",content:k(m.content)}});continue}if("assistant"===n){let a=[],b=k(m.content);for(let c of(b&&a.push({type:"text",text:b}),function(a){let b=Array.isArray(a)?a:i(a);if(!Array.isArray(b))return[];let c=[];for(let a of b){if(!j(a))continue;let b=j(a.function)?a.function:{},d="string"==typeof b.name?b.name:"string"==typeof a.name?a.name:"tool",e="string"==typeof a.id&&a.id||"string"==typeof a.call_id&&a.call_id||`${d}-${c.length}`,f=j(b.arguments)?b.arguments:i(b.arguments);c.push({id:e,name:d,input:j(f)?f:{}})}return c}(m.tool_calls))){let b={type:"tool_use",id:c.id,name:c.name,input:c.input};a.push(b),d.set(c.id,b),e.set(c.id,o.getTime())}if(0===a.length)continue;c.push({type:"assistant",...r,message:{role:"assistant",content:a}});continue}if("tool"===n){let a="string"==typeof m.tool_call_id?m.tool_call_id:void 0,b=a?d.get(a):void 0;if(b){let c=a&&e.get(a)||o.getTime(),d=Math.max(0,o.getTime()-c);b.result={timestamp:p,timestampFormatted:(0,f.formatTimestamp)(o),content:k(m.content),durationMs:d,durationFormatted:(0,g.formatDuration)(d)};continue}}c.push({type:"system",...r,raw:q})}return c.sort((a,b)=>a.timestampMs-b.timestampMs),c}(m,"session"),o=l&&l.length>0?l:c?(0,d.hermesProjectPath)(b,c):void 0;return{entries:n,rawLines:m,cwd:o,filePath:`hermes://${e}`,profile:b}}catch{return null}finally{h.close()}}let n=(0,e.runtimeCache)(a=>l(a),2,{maxSize:50});a.s(["epochToMs",0,function(a){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return a;if(a>1e9)return 1e3*a}return Date.now()},"getCachedHermesSessionLog",0,n,"hermesDbPaths",0,h])},87488,32460,a=>{"use strict";var b=a.i(12714),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(34900),g=a.i(83397),h=a.i(92246),i=a.i(94431);function j(a){return"string"==typeof a&&a.length>0?a:void 0}function k(a){try{let b=JSON.parse(a);return b&&"object"==typeof b&&!Array.isArray(b)?b:void 0}catch{return}}function l(a,b){return`openclaw-sqlite://${encodeURIComponent(a)}/${b}`}function m(a,b){let d=[];for(let f of b){let b=(0,e.join)(a,"agents",f,"agent","openclaw-agent.sqlite");(0,c.existsSync)(b)&&d.push({agentId:f,dbPath:b})}return d}async function n(a,b){let c=[];for(let{agentId:d,dbPath:e}of m(a,b)){let a=await (0,i.openSqliteReadonly)(e);if(a)try{let b;try{b=a.query(`SELECT w.session_id, w.session_key, w.updated_at,
|
|
2
2
|
w.transcript_updated_at, w.ended_at, w.channel,
|
|
3
3
|
w.chat_type, w.display_name,
|
|
4
4
|
COALESCE((SELECT MAX(e.created_at)
|
|
@@ -19,4 +19,4 @@ module.exports=[99910,a=>{"use strict";var b=a.i(12714),c=a.i(2157),d=a.i(60526)
|
|
|
19
19
|
WHERE session_id = ?
|
|
20
20
|
ORDER BY seq ASC`,[c])}catch{continue}if(0===b.length)continue;let f=b.map(a=>a.event_json),g=f.map(k).filter(a=>void 0!==a);return{agentId:d,dbPath:e,filePath:l(d,c),rawLines:g,eventJsonLines:f}}finally{a.close()}}return null}a.s(["listOpenClawSqliteSessions",0,n,"readOpenClawSqliteTranscript",0,o],32460);let p=/^[0-9a-fA-F-]{36}$/;function q(){return process.env.OPENCLAW_STATE_DIR||process.env.OPENCLAW_HOME||(0,e.join)((0,d.homedir)(),".openclaw")}function r(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function s(a){return"string"==typeof a?a:Array.isArray(a)?a.map(a=>r(a)&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"):""}function t(a,b="session"){let c=[],d=new Map,e=new Map,f=Date.now();for(let i=0;i<a.length;i++){let j=a[i];if(!r(j)||"message"!==j.type)continue;let k=r(j.message)?j.message:void 0;if(!k)continue;let l="string"==typeof k.role?k.role:"system",m=function(a,b){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return new Date(a);if(a>1e9)return new Date(1e3*a)}if("string"==typeof a){let b=Date.parse(a);if(!Number.isNaN(b))return new Date(b)}return new Date(b)}(j.timestamp??k.timestamp,f+i),n=m.toISOString(),o={uuid:null!=j.id?String(j.id):`openclaw-${i}`,parentUuid:null!=j.parentId?String(j.parentId):null},p=(0,g.baseEntry)(o,n,m,b);if("user"===l){c.push({type:"user",...p,message:{role:"user",content:s(k.content)}});continue}if("assistant"===l){let a=[],b=k.content;if(Array.isArray(b)){for(let c of b)if(r(c)){if("text"===c.type&&"string"==typeof c.text)a.push({type:"text",text:c.text});else if("toolCall"===c.type){let b="string"==typeof c.id?c.id:`${String(c.name??"tool")}-${a.length}`,f={type:"tool_use",id:b,name:"string"==typeof c.name?c.name:"tool",input:r(c.arguments)?c.arguments:{}};a.push(f),d.set(b,f),e.set(b,m.getTime())}}}else{let c=s(b);c&&a.push({type:"text",text:c})}if(0===a.length)continue;c.push({type:"assistant",...p,message:{role:"assistant",content:a,model:"string"==typeof k.model?k.model:void 0}});continue}if("toolResult"===l){let a="string"==typeof k.toolCallId?k.toolCallId:void 0,b=a?d.get(a):void 0;if(b){let c=r(k.details)?k.details:void 0,d=a&&e.get(a)||m.getTime(),f=c&&"number"==typeof c.durationMs?c.durationMs:Math.max(0,m.getTime()-d);b.result={timestamp:n,timestampFormatted:(0,g.formatTimestamp)(m),content:s(k.content),durationMs:f,durationFormatted:(0,h.formatDuration)(f)};continue}}c.push({type:"system",...p,raw:o})}return c.sort((a,b)=>a.timestampMs-b.timestampMs),c}function u(){try{return(0,c.readdirSync)((0,e.join)(q(),"agents"),{withFileTypes:!0}).filter(a=>a.isDirectory()&&!a.name.startsWith(".")).map(a=>a.name).sort()}catch{return[]}}function v(){let a,b=(0,e.join)(q(),"agents"),d=[];try{a=(0,c.readdirSync)(b,{withFileTypes:!0}).filter(a=>a.isDirectory()).map(a=>a.name)}catch{return d}for(let f of a){let a,g=(0,e.join)(b,f,"sessions");try{a=(0,c.readdirSync)(g)}catch{continue}for(let b of a){if(!b.endsWith(".jsonl")||b.endsWith(".trajectory.jsonl"))continue;let a=b.slice(0,-6);if(!p.test(a))continue;let h=(0,e.join)(g,b);try{let b=(0,c.statSync)(h);d.push({agentId:f,sessionId:a,transcriptPath:h,mtimeMs:b.mtimeMs,sizeBytes:b.size})}catch{}}}return d}async function w(a){let c,d;if(!p.test(a))return null;let e=await o(q(),u(),a);if(e){let a,b=t(e.rawLines,"session");for(let b of e.rawLines)if("session"===b.type&&"string"==typeof b.cwd&&b.cwd.length>0){a=b.cwd;break}return{entries:b,rawLines:e.rawLines,cwd:a,filePath:e.filePath}}let f=function(a){if(!p.test(a))return null;for(let b of v())if(b.sessionId===a)return b.transcriptPath;return null}(a);if(!f)return null;try{c=await (0,b.readFile)(f,"utf-8")}catch{return null}let h=(0,g.parseRawLines)(c,"session"),i=t(h,"session");for(let a of h)if(r(a)&&"session"===a.type&&"string"==typeof a.cwd&&a.cwd.length>0){d=a.cwd;break}return{entries:i,rawLines:h,cwd:d,filePath:f}}let x=(0,f.runtimeCache)(a=>w(a),2,{maxSize:50});a.s(["getCachedOpenClawSessionLog",0,x,"listOpenClawAgents",0,u,"listOpenClawTranscripts",0,v,"openclawHome",0,q],87488)},84794,a=>{"use strict";var b=a.i(60526),c=a.i(50227),d=a.i(94431);async function e(a){let e=await (0,d.openSqliteReadonly)(function(){if(process.env.OPENCODE_DB_PATH)return process.env.OPENCODE_DB_PATH;let a=process.env.OPENCODE_HOME??(0,c.join)((0,b.homedir)(),".local","share","opencode");return(0,c.join)(a,"opencode.db")}());if(!e)return null;try{return a(e)}catch{return null}finally{try{e.close()}catch{}}}async function f(a,b=[]){return e(c=>c.query(a,b))}a.s(["queryOpenCodeDb",0,f,"withOpenCodeDb",0,e])},64240,(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}},84707,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js"))},97647,a=>{"use strict";var b=a.i(84707);a.n(b)},95936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(64240),g=a.r(7997),h=f._(a.r(97647));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("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)}];
|
|
21
21
|
|
|
22
|
-
//# sourceMappingURL=
|
|
22
|
+
//# sourceMappingURL=_1_qswah._.js.map
|
|
@@ -227,6 +227,6 @@ export default async function failproofaiPlugin({ client, directory }) {
|
|
|
227
227
|
},
|
|
228
228
|
};
|
|
229
229
|
}
|
|
230
|
-
`),"utf8"),Array.isArray(a.plugin)||(a.plugin=[]);let l="user"===i?`file://${j}`:z,m=a.plugin.findIndex(a=>this.isFailproofaiHook(a));m>=0?a.plugin[m]=l:a.plugin.push(l)},removeHooksFromFile(a){let b=0,d=this.readSettings(a);if(Array.isArray(d.plugin)){let a=d.plugin.length;d.plugin=d.plugin.filter(a=>!this.isFailproofaiHook(a)),b+=a-d.plugin.length,0===d.plugin.length&&delete d.plugin}this.writeSettings(a,d);let e=A(a);if((0,c.existsSync)(e))try{(0,c.readFileSync)(e,"utf8").includes(k.FAILPROOFAI_HOOK_MARKER)&&((0,c.unlinkSync)(e),0===b&&(b=1))}catch{}return b},hooksInstalledInSettings(a,b){let d=this.getSettingsPath(a,b);if(!(0,c.existsSync)(d))return!1;try{let a=this.readSettings(d);if(!Array.isArray(a.plugin)||!a.plugin.some(a=>this.isFailproofaiHook(a)))return!1;let b=A(d);if(!(0,c.existsSync)(b))return!1;return(0,c.readFileSync)(b,"utf8").includes(k.FAILPROOFAI_HOOK_MARKER)}catch{return!1}},detectInstalled:()=>s("opencode")};function C(){let a=process.env.FAILPROOFAI_PACKAGE_ROOT;return a?(0,d.resolve)(a,"pi-extension"):(0,d.resolve)((0,e.fileURLToPath)(l.url),"..","..","..","pi-extension")}function D(a){return"string"==typeof a&&(!!/(?:^|\/)pi-extension\/?$/.test(a)||a.includes("pi-extension")&&a.includes("failproofai"))}let E={id:"pi",displayName:"Pi",scopes:k.PI_HOOK_SCOPES,eventTypes:k.PI_HOOK_EVENT_TYPES,getSettingsPath(a,b){let c=b?(0,d.resolve)(b):process.cwd();switch(a){case"user":return(0,d.resolve)((0,f.homedir)(),".pi","agent","settings.json");case"project":case"local":return(0,d.resolve)(c,".pi","settings.json")}},readSettings:a=>m(a),writeSettings(a,b){n(a,b)},buildHookEntry:(a,b,c)=>({[k.FAILPROOFAI_HOOK_MARKER]:!0,_piPackagePath:C(),_piScope:c}),isFailproofaiHook:a=>"string"==typeof a?D(a):!!a&&"object"==typeof a&&(!0===a[k.FAILPROOFAI_HOOK_MARKER]||"string"==typeof a.source&&D(a.source)),writeHookEntries(a,b,c){var e;let f,g,h;Array.isArray(a.packages)||(a.packages=[]);let i=C(),j="project"===c?(e=i,f=process.cwd(),g=(0,d.resolve)(f),(h=(0,d.resolve)(e)).startsWith(g+"/")||h===g?"../"+h.slice(g.length+1):h):i,k=a.packages.findIndex(a=>D(a));k>=0?a.packages[k]=j:a.packages.push(j)},removeHooksFromFile(a){if(!(0,c.existsSync)(a))return 0;let b=this.readSettings(a);if(!Array.isArray(b.packages))return 0;let d=b.packages.length;b.packages=b.packages.filter(a=>!D(a));let e=d-b.packages.length;return 0===b.packages.length&&delete b.packages,this.writeSettings(a,b),e},hooksInstalledInSettings(a,b){let d=this.getSettingsPath(a,b);if(!(0,c.existsSync)(d))return!1;try{let a=this.readSettings(d);if(!Array.isArray(a.packages))return!1;return a.packages.some(a=>D(a))}catch{return!1}},detectInstalled:()=>s("pi")},F="failproofai",G=".failproofai-managed",H=["plugin.yaml","__init__.py","client.py","ledger.py"];function I(){let a=process.env.FAILPROOFAI_PACKAGE_ROOT;return a?(0,d.resolve)(a,"hermes-plugin"):(0,d.resolve)((0,e.fileURLToPath)(l.url),"..","..","..","hermes-plugin")}function J(a){return(0,d.resolve)((0,d.dirname)(a),"plugins",F)}function K(a){let b=(a.toJS()??{}).hooks,c=0;if(b&&"object"==typeof b){for(let a of Object.keys(b)){let d=b[a];if(!Array.isArray(d))continue;let e=d.length,f=d.filter(a=>!q(a));c+=e-f.length,0===f.length?delete b[a]:b[a]=f}0===Object.keys(b).length?(a.delete("hooks"),c>0&&a.delete("hooks_auto_accept")):a.set("hooks",b)}return c}let L={id:"hermes",displayName:"Hermes",scopes:k.HERMES_HOOK_SCOPES,eventTypes:k.HERMES_HOOK_EVENT_TYPES,getSettingsPath:()=>(0,d.resolve)((0,h.hermesRoot)(),"config.yaml"),getSettingsPaths:()=>(0,h.listHermesProfiles)().map(a=>(0,d.resolve)(a.home,"config.yaml")),readSettings:a=>o(a),writeSettings(a,b){p(a,b)},prepareInstall(a){!function(a){let b=I();for(let a of H)if(!(0,c.existsSync)((0,d.resolve)(b,a)))throw Error(`Hermes plugin asset is missing from the failproofai package: ${a}`);let e=J(a);if((0,c.existsSync)(e)&&((0,c.lstatSync)(e).isSymbolicLink()||!(0,c.existsSync)((0,d.resolve)(e,G))))throw Error(`Refusing to overwrite an unmanaged Hermes plugin at ${e}. Move it aside or install FailproofAI under a different Hermes profile.`);(0,c.mkdirSync)((0,d.dirname)(e),{recursive:!0});let f=`${process.pid}-${Date.now()}`,g=`${e}.install-${f}`,h=`${e}.backup-${f}`,i=!1;try{for(let a of((0,c.mkdirSync)(g,{recursive:!0}),H))(0,c.cpSync)((0,d.resolve)(b,a),(0,d.resolve)(g,a));(0,c.writeFileSync)((0,d.resolve)(g,G),"Managed by failproofai. Remove with `failproofai policies --uninstall --cli hermes`.\n",{encoding:"utf8",mode:384}),(0,c.existsSync)(e)&&((0,c.renameSync)(e,h),i=!0),(0,c.renameSync)(g,e),i&&(0,c.rmSync)(h,{recursive:!0,force:!0})}catch(a){throw(0,c.rmSync)(g,{recursive:!0,force:!0}),i&&!(0,c.existsSync)(e)&&(0,c.existsSync)(h)&&(0,c.renameSync)(h,e),a}}(a)},buildHookEntry:(a,b,c)=>({[k.FAILPROOFAI_HOOK_MARKER]:!0,_hermesPluginPath:I()}),isFailproofaiHook:q,writeHookEntries(a){K(a);let b=a.toJS()??{},c=b.plugins&&"object"==typeof b.plugins?b.plugins:{},d=Array.isArray(c.enabled)?[...c.enabled]:[];d.includes(F)||d.push(F),c.enabled=d,Array.isArray(c.disabled)&&(c.disabled=c.disabled.filter(a=>a!==F),0===c.disabled.length&&delete c.disabled),a.set("plugins",c)},removeHooksFromFile(a){let b,e=o(a),f=K(e),g=(e.toJS()??{}).plugins,h=f>0;if(g&&"object"==typeof g){if(Array.isArray(g.enabled)){let a=g.enabled.length;g.enabled=g.enabled.filter(a=>a!==F),g.enabled.length!==a&&(f+=1,h=!0),0===g.enabled.length&&delete g.enabled}g.entries&&F in g.entries&&(delete g.entries[F],h=!0),0===Object.keys(g).length?e.delete("plugins"):e.set("plugins",g)}return h&&p(a,e),b=J(a),function(a){let b=J(a);try{return!(0,c.lstatSync)(b).isSymbolicLink()&&(0,c.existsSync)((0,d.resolve)(b,G))}catch{return!1}}(a)&&((0,c.rmSync)(b,{recursive:!0,force:!0}),1)&&(f+=1),f},hooksInstalledInSettings(a,b){let e=t(this,a,b);return e.length>0&&e.every(a=>(function(a){try{let b=function(a){if(!(0,c.existsSync)(a))return{pluginEnabled:!1,legacyShellHookPresent:!1};let b=o(a).toJS()??{},d=b.plugins?.enabled,e=!!b.hooks&&"object"==typeof b.hooks&&Object.values(b.hooks).some(a=>Array.isArray(a)&&a.some(a=>q(a)));return{pluginEnabled:Array.isArray(d)&&d.includes(F),legacyShellHookPresent:e}}(a);return b.pluginEnabled&&function(a){let b=J(a);try{if((0,c.lstatSync)(b).isSymbolicLink()||!(0,c.existsSync)((0,d.resolve)(b,G)))return!1;return H.every(a=>(0,c.existsSync)((0,d.resolve)(b,a)))}catch{return!1}}(a)&&!b.legacyShellHookPresent}catch{}return!1})(a))},detectInstalled:()=>s("hermes")},M="failproofai";function N(){let a=process.env.FAILPROOFAI_PACKAGE_ROOT;return a?(0,d.resolve)(a,"openclaw-plugin"):(0,d.resolve)((0,e.fileURLToPath)(l.url),"..","..","..","openclaw-plugin")}function O(a){return"string"==typeof a&&(/(?:^|\/)openclaw-plugin\/?$/.test(a)||a.includes("openclaw-plugin")&&a.includes("failproofai"))}let P={id:"openclaw",displayName:"OpenClaw",scopes:k.OPENCLAW_HOOK_SCOPES,eventTypes:k.OPENCLAW_HOOK_EVENT_TYPES,getSettingsPath:()=>(0,d.resolve)(j()[0].home,"openclaw.json"),getSettingsPaths:()=>j().map(a=>(0,d.resolve)(a.home,"openclaw.json")),readSettings:a=>m(a),writeSettings(a,b){n(a,b)},buildHookEntry:()=>({[k.FAILPROOFAI_HOOK_MARKER]:!0,_openclawPluginPath:N()}),isFailproofaiHook:a=>"string"==typeof a?O(a):!!a&&"object"==typeof a&&(!0===a[k.FAILPROOFAI_HOOK_MARKER]||"string"==typeof a.source&&O(a.source)),writeHookEntries(a){let b=a.plugins??={},c=b.load??={};Array.isArray(c.paths)||(c.paths=[]);let d=N(),e=c.paths.findIndex(a=>O(a));e>=0?c.paths[e]=d:c.paths.push(d);let f=b.entries??={},g=f[M]??={};g.enabled=!0,(g.hooks??={}).allowConversationAccess=!0},removeHooksFromFile(a){if(!(0,c.existsSync)(a))return 0;let b=this.readSettings(a),d=b.plugins;if(!d)return 0;let e=0;if(Array.isArray(d.load?.paths)){let a=d.load.paths.length;d.load.paths=d.load.paths.filter(a=>!O(a)),e+=a-d.load.paths.length,0===d.load.paths.length&&delete d.load.paths,d.load&&0===Object.keys(d.load).length&&delete d.load}return d.entries&&M in d.entries&&(delete d.entries[M],e+=1,0===Object.keys(d.entries).length&&delete d.entries),0===Object.keys(d).length&&delete b.plugins,this.writeSettings(a,b),e},hooksInstalledInSettings(a,b){let d=t(this,a,b);return d.length>0&&d.every(a=>{if(!(0,c.existsSync)(a))return!1;try{let b=this.readSettings(a),c=b.plugins?.load?.paths,d=Array.isArray(c)&&c.some(a=>O(a)),e=b.plugins?.entries?.[M]?.enabled===!0;return d&&e}catch{return!1}})},detectInstalled:()=>s("openclaw")},Q={id:"factory",displayName:"Factory Droid",scopes:k.FACTORY_HOOK_SCOPES,eventTypes:k.FACTORY_HOOK_EVENT_TYPES,getSettingsPath(a,b){let c=b?(0,d.resolve)(b):process.cwd();switch(a){case"user":return(0,d.resolve)((0,f.homedir)(),".factory","hooks.json");case"project":case"local":return(0,d.resolve)(c,".factory","hooks.json")}},readSettings:a=>m(a),writeSettings(a,b){n(a,b)},buildHookEntry:(a,b,c)=>({type:"command",command:"project"===c?`npx -y failproofai --hook ${b} --cli factory`:`"${a}" --hook ${b} --cli factory`,timeout:30,[k.FAILPROOFAI_HOOK_MARKER]:!0}),isFailproofaiHook:q,writeHookEntries(a,b,c){for(let d of k.FACTORY_HOOK_EVENT_TYPES){let e=this.buildHookEntry(b,d,c);Array.isArray(a[d])||(a[d]=[]);let f=a[d],g=!1;for(let a of f){if(!a.hooks)continue;let b=a.hooks.findIndex(a=>q(a));if(b>=0){a.hooks[b]=e,g=!0;break}}if(!g){let a="PreToolUse"===d||"PostToolUse"===d;f.push(a?{matcher:"*",hooks:[e]}:{hooks:[e]})}}},removeHooksFromFile(a){let b=this.readSettings(a),c=0;for(let a of Object.keys(b)){let d=b[a];if(Array.isArray(d)){for(let a=d.length-1;a>=0;a--){let b=d[a];if(!b||!b.hooks)continue;let e=b.hooks.length;b.hooks=b.hooks.filter(a=>!q(a)),c+=e-b.hooks.length,0===b.hooks.length&&d.splice(a,1)}0===d.length&&delete b[a]}}return this.writeSettings(a,b),c},hooksInstalledInSettings(a,b){let d=this.getSettingsPath(a,b);if(!(0,c.existsSync)(d))return!1;try{let a=this.readSettings(d);for(let b of Object.values(a))if(Array.isArray(b)){for(let a of b)if(a&&a.hooks&&a.hooks.some(a=>q(a)))return!0}}catch{}return!1},detectInstalled:()=>s("droid")},R={id:"devin",displayName:"Devin CLI",scopes:k.DEVIN_HOOK_SCOPES,eventTypes:k.DEVIN_HOOK_EVENT_TYPES,getSettingsPath(a,b){let c=b?(0,d.resolve)(b):process.cwd();switch(a){case"user":return(0,d.resolve)((0,f.homedir)(),".config","devin","config.json");case"project":case"local":return(0,d.resolve)(c,".devin","config.json")}},readSettings:a=>m(a),writeSettings(a,b){n(a,b)},buildHookEntry:(a,b,c)=>({type:"command",command:"project"===c?`npx -y failproofai --hook ${b} --cli devin`:`"${a}" --hook ${b} --cli devin`,timeout:60,[k.FAILPROOFAI_HOOK_MARKER]:!0}),isFailproofaiHook:q,writeHookEntries(a,b,c){for(let d of(a.hooks||(a.hooks={}),k.DEVIN_HOOK_EVENT_TYPES)){let e=this.buildHookEntry(b,d,c);a.hooks[d]||(a.hooks[d]=[]);let f=a.hooks[d],g=!1;for(let a of f){if(!a.hooks)continue;let b=a.hooks.findIndex(a=>q(a));if(b>=0){a.hooks[b]=e,g=!0;break}}g||f.push({hooks:[e]})}},removeHooksFromFile(a){let b=this.readSettings(a);if(!b.hooks)return 0;let c=0;for(let a of Object.keys(b.hooks)){let d=b.hooks[a];if(Array.isArray(d)){for(let a=d.length-1;a>=0;a--){let b=d[a];if(!b.hooks)continue;let e=b.hooks.length;b.hooks=b.hooks.filter(a=>!q(a)),c+=e-b.hooks.length,0===b.hooks.length&&d.splice(a,1)}0===d.length&&delete b.hooks[a]}}return 0===Object.keys(b.hooks).length&&delete b.hooks,this.writeSettings(a,b),c},hooksInstalledInSettings(a,b){let d=this.getSettingsPath(a,b);if(!(0,c.existsSync)(d))return!1;try{let a=this.readSettings(d);if(!a.hooks)return!1;for(let b of Object.values(a.hooks))if(Array.isArray(b)){for(let a of b)if(a.hooks&&a.hooks.some(a=>q(a)))return!0}}catch{}return!1},detectInstalled:()=>s("devin")},S="failproofai",T=new Set(["PreToolUse","PostToolUse"]);function U(a){if(!a||"object"!=typeof a)return!1;let b=a.command;return"string"==typeof b&&b.includes("failproofai")&&b.includes("--cli goose")}let V={claude:u,codex:v,copilot:x,cursor:y,opencode:B,pi:E,hermes:L,openclaw:P,factory:Q,devin:R,antigravity:{id:"antigravity",displayName:"Antigravity CLI",scopes:k.ANTIGRAVITY_HOOK_SCOPES,eventTypes:k.ANTIGRAVITY_HOOK_EVENT_TYPES,getSettingsPath(a,b){let c=b?(0,d.resolve)(b):process.cwd();switch(a){case"user":return(0,d.resolve)((0,f.homedir)(),".gemini","config","hooks.json");case"project":case"local":return(0,d.resolve)(c,".agents","hooks.json")}},readSettings:a=>m(a),writeSettings(a,b){n(a,b)},buildHookEntry:(a,b,c)=>({type:"command",command:"project"===c?`npx -y failproofai --hook ${b} --cli antigravity`:`"${a}" --hook ${b} --cli antigravity`,timeout:30,[k.FAILPROOFAI_HOOK_MARKER]:!0}),isFailproofaiHook:q,writeHookEntries(a,b,c){a[S]&&"object"==typeof a[S]||(a[S]={});let d=a[S];for(let a of k.ANTIGRAVITY_HOOK_EVENT_TYPES){let e=this.buildHookEntry(b,a,c);if(T.has(a)){Array.isArray(d[a])||(d[a]=[]);let b=d[a],c=!1;for(let a of b){if(!a.hooks)continue;let b=a.hooks.findIndex(a=>q(a));if(b>=0){a.hooks[b]=e,c=!0;break}}c||b.push({matcher:"*",hooks:[e]})}else{Array.isArray(d[a])||(d[a]=[]);let b=d[a],c=b.findIndex(a=>q(a));c>=0?b[c]=e:b.push(e)}}},removeHooksFromFile(a){let b=this.readSettings(a),c=b[S];if(!c||"object"!=typeof c)return this.writeSettings(a,b),0;let d=0;for(let a of Object.keys(c)){let b=c[a];if(Array.isArray(b))if(T.has(a)){for(let a=b.length-1;a>=0;a--){let c=b[a];if(!c||!c.hooks)continue;let e=c.hooks.length;c.hooks=c.hooks.filter(a=>!q(a)),d+=e-c.hooks.length,0===c.hooks.length&&b.splice(a,1)}0===b.length&&delete c[a]}else{let e=b.length,f=b.filter(a=>!q(a));d+=e-f.length,0===f.length?delete c[a]:c[a]=f}}return 0===Object.keys(c).length&&delete b[S],this.writeSettings(a,b),d},hooksInstalledInSettings(a,b){let d=this.getSettingsPath(a,b);if(!(0,c.existsSync)(d))return!1;try{let a=this.readSettings(d)[S];if(!a||"object"!=typeof a)return!1;for(let b of Object.values(a))if(Array.isArray(b)){for(let a of b)if(q(a)||a&&Array.isArray(a.hooks)&&a.hooks.some(a=>q(a)))return!0}}catch{}return!1},detectInstalled:()=>s("agy")},goose:{id:"goose",displayName:"Goose",scopes:k.GOOSE_HOOK_SCOPES,eventTypes:k.GOOSE_HOOK_EVENT_TYPES,getSettingsPath(a,b){let c=b?(0,d.resolve)(b):process.cwd();switch(a){case"user":return(0,d.resolve)((0,f.homedir)(),".agents","plugins","failproofai","hooks","hooks.json");case"project":case"local":return(0,d.resolve)(c,".agents","plugins","failproofai","hooks","hooks.json")}},readSettings:a=>m(a),writeSettings(a,b){n(a,b)},buildHookEntry:(a,b,c)=>({type:"command",command:"project"===c?`npx -y failproofai --hook ${b} --cli goose`:`"${a}" --hook ${b} --cli goose`}),isFailproofaiHook:U,writeHookEntries(a,b,c){for(let d of(a.hooks||(a.hooks={}),k.GOOSE_HOOK_EVENT_TYPES)){let e=this.buildHookEntry(b,d,c);Array.isArray(a.hooks[d])||(a.hooks[d]=[]);let f=a.hooks[d],g=!1;for(let a of f){if(!a.hooks)continue;let b=a.hooks.findIndex(a=>U(a));if(b>=0){a.hooks[b]=e,g=!0;break}}g||f.push({hooks:[e]})}},removeHooksFromFile(a){let b=this.readSettings(a);if(!b.hooks)return 0;let c=0;for(let a of Object.keys(b.hooks)){let d=b.hooks[a];if(Array.isArray(d)){for(let a=d.length-1;a>=0;a--){let b=d[a];if(!b||!b.hooks)continue;let e=b.hooks.length;b.hooks=b.hooks.filter(a=>!U(a)),c+=e-b.hooks.length,0===b.hooks.length&&d.splice(a,1)}0===d.length&&delete b.hooks[a]}}return 0===Object.keys(b.hooks).length&&delete b.hooks,this.writeSettings(a,b),c},hooksInstalledInSettings(a,b){let d=this.getSettingsPath(a,b);if(!(0,c.existsSync)(d))return!1;try{let a=this.readSettings(d);if(!a.hooks)return!1;for(let b of Object.values(a.hooks))if(Array.isArray(b)){for(let a of b)if(a&&a.hooks&&a.hooks.some(a=>U(a)))return!0}}catch{}return!1},detectInstalled:()=>s("goose")}};a.s(["claudeCode",0,u,"detectInstalledClis",0,function(){return k.INTEGRATION_TYPES.filter(a=>V[a]?.detectInstalled())},"getIntegration",0,function(a){let b=V[a];if(!b)throw Error(`"${a}" is audit-only — live-hook install is not supported for it yet. Installable: ${k.INTEGRATION_TYPES.filter(a=>void 0!==V[a]).join(", ")}`);return b},"listIntegrations",0,function(){return k.INTEGRATION_TYPES.map(a=>V[a]).filter(a=>void 0!==a)},"settingsPathsFor",0,t],67121)},9909,89790,a=>{"use strict";var b=a.i(66680),c=a.i(2157),d=a.i(50227),e=a.i(75818);function f(a,b){if(!b||(0,d.isAbsolute)(b))throw Error(`unsafe managed policy path ${JSON.stringify(b)}`);let e=(0,d.resolve)(a,b),f=(0,d.relative)(a,e);if(f.startsWith("..")||(0,d.isAbsolute)(f))throw Error(`managed policy path escapes its root: ${JSON.stringify(b)}`);let g=(0,c.realpathSync)(a),h=(0,c.realpathSync)(e),i=(0,d.relative)(g,h);if(i.startsWith("..")||(0,d.isAbsolute)(i))throw Error(`managed policy symlink escapes its root: ${JSON.stringify(b)}`);return h}a.s(["resolveManagedPath",0,f],89790);let g=[1],h=/^[a-f0-9]{64}$/,i=/^[A-Za-z0-9._-]{1,64}\/[A-Za-z0-9._-]{1,64}$/,j=/^[A-Za-z0-9][A-Za-z0-9._+-]{0,63}$/,k=/^[0-9a-f]{7,40}$/,l=/^[A-Za-z0-9._-]{1,128}$/;function m(){return process.env.FAILPROOFAI_PACK_DIR??(0,e.packsDir)()}function n(a){if("string"!=typeof a.id||!i.test(a.id))throw Error(`unsafe pack id ${JSON.stringify(a.id)}`);if("string"!=typeof a.version||!j.test(a.version))throw Error(`invalid version for pack ${a.id}`);if(void 0!==a.effect&&"enforce"!==a.effect&&"observe"!==a.effect)throw Error(`unknown effect ${JSON.stringify(a.effect)} for pack ${a.id}`);let b="string"==typeof a.commit&&k.test(a.commit.trim().toLowerCase())?a.commit.trim().toLowerCase():void 0;return{id:a.id,version:a.version,effect:a.effect??"enforce",...b?{commit:b}:{}}}function o(){return process.env.FAILPROOFAI_PACK_DIR?(0,d.resolve)(process.env.FAILPROOFAI_PACK_DIR,"installed.json"):(0,e.packsInstalledFile)()}function p(a,b,c){let d=`${a} policy #${c}`;if(!b||"object"!=typeof b)throw Error(`${d} is not an object`);let e=b.name;if("string"!=typeof e||!l.test(e))throw Error(`${d} has an unsafe name ${JSON.stringify(e)}`);if("alwaysOn"in b)throw Error(`${d} declares alwaysOn, which packs may not set`);if("string"!=typeof b.description||0===b.description.length)throw Error(`${d} is missing a description`);if("string"!=typeof b.category||0===b.category.length)throw Error(`${d} is missing a category`);if("boolean"!=typeof b.defaultEnabled)throw Error(`${d} is missing defaultEnabled`);if(!b.match||"object"!=typeof b.match)throw Error(`${d} is missing a match`);let f=b.match;for(let a of["events","toolNames"]){let b=f[a];if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a||0===a.length)))throw Error(`${d} has a match.${a} that is not a list of names`)}return b}function q(a){return a instanceof Error?a.message:String(a)}a.s(["PACK_COMMIT_RE",0,k,"hasInstalledPacks",0,function(){try{let a=JSON.parse((0,c.readFileSync)(o(),"utf8"));return Array.isArray(a.packs)&&a.packs.length>0}catch{return!1}},"packsRoot",0,m,"parsePackIdentity",0,n,"parsePackPolicy",0,p,"readInstalledPacks",0,function(){let a,d=o();if(!(0,c.existsSync)(d))return{packs:[],errors:[]};try{a=JSON.parse((0,c.readFileSync)(d,"utf8"))}catch(a){return{packs:[],errors:[{id:null,reason:`unreadable pack manifest: ${q(a)}`}]}}if(!a||"object"!=typeof a)return{packs:[],errors:[{id:null,reason:"pack manifest is not an object"}]};let e=a;if(!g.includes(e.schemaVersion))return{packs:[],errors:[{id:null,reason:`unsupported pack manifest schema ${String(e.schemaVersion)} (supported: ${g.join(", ")})`}]};if(!Array.isArray(e.packs))return{packs:[],errors:[{id:null,reason:"pack manifest packs is not an array"}]};let i=m(),j=[],k=[],l=new Set;for(let a of e.packs){let d=a&&"object"==typeof a&&"string"==typeof a.id?a.id:null;try{let d=function(a,d){if(!d||"object"!=typeof d)throw Error("pack entry is not an object");let e=n(d);if("string"!=typeof d.source||0===d.source.length)throw Error(`pack ${d.id} has no source`);if("string"!=typeof d.sha256||!h.test(d.sha256))throw Error(`invalid SHA-256 for pack ${d.id}`);let g=e.effect,i=f(a,d.entry),j=(0,b.createHash)("sha256").update((0,c.readFileSync)(i)).digest("hex");if(j!==d.sha256)throw Error(`pack ${d.id} failed integrity verification: expected ${d.sha256}, got ${j}`);if(!Array.isArray(d.policies))throw Error(`pack ${d.id} policies is not an array`);let k=d.policies.map((a,b)=>p(d.id,a,b)),l=new Set;for(let a of k){if(l.has(a.name))throw Error(`pack ${d.id} declares ${a.name} twice`);l.add(a.name)}let m=null;if(void 0!==d.enabled){if(!Array.isArray(d.enabled)||d.enabled.some(a=>"string"!=typeof a))throw Error(`pack ${d.id} enabled is not an array of names`);m=d.enabled.filter(a=>l.has(a))}let o=null;if(void 0!==d.clis){if(!Array.isArray(d.clis)||d.clis.some(a=>"string"!=typeof a))throw Error(`pack ${d.id} clis is not an array of agent names`);o=d.clis}return{clis:o,id:e.id,version:e.version,source:d.source,path:i,sha256:d.sha256,effect:g,policies:k,enabled:m}}(i,a);if(l.has(d.id))throw Error(`duplicate pack id ${d.id}`);l.add(d.id),j.push(d)}catch(c){let b=a&&("observe"===a.effect||"enforce"===a.effect)?a.effect:"enforce";k.push({id:d,reason:q(c),effect:b,...Array.isArray(a?.policies)?{declared:function(a){let b=[];for(let c of a)c&&"object"==typeof c&&"string"==typeof c.name&&c.match&&"object"==typeof c.match&&b.push(c);return b}(a.policies)}:{},...Array.isArray(a?.clis)&&a.clis.every(a=>"string"==typeof a)?{clis:a.clis}:{}})}}return{packs:j,errors:k}}],9909)},17280,a=>{"use strict";var b=a.i(66680),c=a.i(2157),d=a.i(50227),e=a.i(9909);let f="failproofai-pack.json",g="failproofai-pack.mjs",h="SHA256SUMS";function i(){return(process.env.FAILPROOFAI_PACK_BASE_URL||"https://github.com").replace(/\/+$/,"")}let j=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/,k=/^[A-Za-z0-9][A-Za-z0-9._/-]{0,127}$/,l="FailproofAI/policies",m=new Set(["core","failproofai","official"]);function n(a){let b=a.trim();if(0===b.length)throw Error("pack source is empty");let c=b.match(/^(?:https?:\/\/)?(?:www\.)?github\.com\/(.+)$/i);if(c){let[a,b,...d]=c[1].replace(/\/+$/,"").split("/"),e=null;if("releases"===d[0]&&("tag"===d[1]||"download"===d[1])){let a=d.slice(2);e=("download"===d[1]?a.slice(0,-1):a).join("/")||null}else"releases"===d[0]&&"latest"===d[1]&&(e=null);return o(a,b,e)}let d=b.replace(/^github:/i,""),e=d.lastIndexOf("@"),f=e>0?d.slice(0,e):d,g=e>0?d.slice(e+1):null,h=f.indexOf("/");if(h<=0||h===f.length-1){if(m.has(f.trim().toLowerCase()))throw Error(`${JSON.stringify(a)} is no longer a pack name — ours is a pack like anyone else's now. Use ${l} instead.`);throw Error(`pack source must be owner/repo, owner/repo@tag, or a github.com URL — got ${JSON.stringify(a)}`)}return o(f.slice(0,h),f.slice(h+1),g)}function o(a,b,c){if(!a||!j.test(a))throw Error(`unsafe owner ${JSON.stringify(a)}`);if(!b||!j.test(b))throw Error(`unsafe repo ${JSON.stringify(b)}`);if(null!==c&&!k.test(c))throw Error(`unsafe tag ${JSON.stringify(c)}`);return{owner:a,repo:b,tag:c}}async function p(a){let b=`${i()}/${a.owner}/${a.repo}/releases/latest`,c=await fetch(b,{signal:AbortSignal.timeout(3e4),redirect:"manual"}),d=c.headers.get("location");if(!d)throw Error(`could not resolve the newest release of ${a.owner}/${a.repo} (GET ${b} returned ${c.status} with no redirect). That redirect is issued only for a published, non-prerelease release, so either the repository has no releases at all or every release it has is a prerelease or a draft. Name a tag explicitly.`);let e=d.match(/\/releases\/tag\/(.+)$/);if(!e)throw Error(`unexpected redirect from ${b}: ${d}`);let f=decodeURIComponent(e[1]).replace(/\/+$/,"");if(!k.test(f))throw Error(`unsafe tag ${JSON.stringify(f)} from ${b}`);return f}async function q(b,c){let d,e=c.toLowerCase(),f=`${(process.env.FAILPROOFAI_GITHUB_API??"https://api.github.com").replace(/\/+$/,"")}/repos/${b.owner}/${b.repo}/releases?per_page=100`;try{let a=(process.env.GITHUB_TOKEN||process.env.GH_TOKEN||"").trim(),b=await fetch(f,{headers:{...a?{Authorization:`Bearer ${a}`}:{},Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28","User-Agent":"failproofai"},signal:AbortSignal.timeout(3e4),redirect:"follow"});if(!b.ok)throw Error(`GET ${f} returned ${b.status}`);d=await b.json()}catch(a){throw Error(`could not resolve commit ${c} in ${b.owner}/${b.repo}: ${G(a)}. Name the release tag instead if you know it.`)}let{parseReleaseBody:g}=await a.A(49679),h=Array.isArray(d)?d:[],i=[];for(let a of h){let b="string"==typeof a.tag_name?a.tag_name:"";if(!b||!k.test(b))continue;let c=g("string"==typeof a.body?a.body:"");c.commit&&c.commit.startsWith(e)&&i.push({tag:b,commit:c.commit})}if(i.length>1)throw Error(`commit ${c} matches ${i.length} releases of ${b.owner}/${b.repo}: `+i.map(a=>`${a.tag} (${a.commit})`).join(", ")+". Name one of those tags, or type more of the commit.");return 1===i.length?i[0].tag:null}async function r(a){return null===a.tag?p(a):e.PACK_COMMIT_RE.test(a.tag)?await q(a,a.tag)??a.tag:a.tag}function s(a){return`github:${a.owner}/${a.repo}@${a.tag}`}function t(a,b){return`${i()}/${a.owner}/${a.repo}/releases/download/${a.tag}/${b}`}async function u(a){let b=await fetch(a,{signal:AbortSignal.timeout(3e4),redirect:"follow"});if(!b.ok)throw Error(`GET ${a} returned ${b.status}`);let c=b.headers.get("content-length");if(null!==c){let d=Number(c);if(Number.isFinite(d)&&d>8388608)throw await b.body?.cancel(),Error(`${a} declares ${d} bytes, over the 8388608 limit`)}if(!b.body)return Buffer.alloc(0);let d=[],e=b.body.getReader(),f=0;try{for(;;){let{done:b,value:c}=await e.read();if(b)break;if((f+=c.byteLength)>8388608)throw await e.cancel(),Error(`${a} is over the 8388608 byte limit`);d.push(Buffer.from(c))}}finally{e.releaseLock()}return Buffer.concat(d,f)}function v(a,b){for(let c of a.split("\n")){let a=c.trim().match(/^([0-9a-f]{64})\s+\*?(.+)$/i);if(a&&a[2].trim()===b)return a[1].toLowerCase()}return null}function w(a){return(0,b.createHash)("sha256").update(a).digest("hex")}function x(a,b){let e=`${a}.${process.pid}.tmp`;try{(0,c.mkdirSync)((0,d.dirname)(a),{recursive:!0}),(0,c.writeFileSync)(e,b),(0,c.renameSync)(e,a)}catch(a){throw(0,c.rmSync)(e,{force:!0}),a}}async function y(a,b={}){let c=await D(a,b);return{id:c.id,version:c.version,enabled:c.enabled,available:c.available,bundled:!1,source:c.source,tag:c.tag,resolvedFromLatest:c.resolvedFromLatest,selection:c.selection,categories:c.categories}}async function z(a){let b;if("1"===process.env.FAILPROOFAI_NO_DOWNLOAD)throw Error("FAILPROOFAI_NO_DOWNLOAD is set, so nothing can be fetched to preview");let c=n(a),d=null===c.tag,g={...c,tag:await r(c)},i=(await u(t(g,h))).toString("utf8"),j=await u(t(g,f)),k=v(i,f);if(!k)throw Error(`${h} has no entry for ${f}`);if(w(j)!==k)throw Error(`${f} failed integrity verification`);try{b=JSON.parse(j.toString("utf8"))}catch(a){throw Error(`${f} is not valid JSON: ${G(a)}`)}if(!b||"object"!=typeof b)throw Error(`${f} is not an object`);let l=b,m=(0,e.parsePackIdentity)(l);if(!Array.isArray(l.policies)||0===l.policies.length)throw Error("pack manifest declares no policies");return{id:m.id,version:m.version,effect:m.effect,...m.commit?{commit:m.commit}:{},policies:l.policies.map((a,b)=>(0,e.parsePackPolicy)(m.id,a,b)),source:s(g),resolvedFromLatest:d}}async function A(a){let b,c=(await u(t(a,h))).toString("utf8"),d=await u(t(a,f)),i=v(c,f);if(!i)throw Error(`${h} has no entry for ${f}`);if(w(d)!==i)throw Error(`${f} failed integrity verification`);let j=await u(t(a,g)),k=v(c,g);if(!k)throw Error(`${h} has no entry for ${g}`);let l=w(j);if(l!==k)throw Error(`${g} failed integrity verification`);try{b=JSON.parse(d.toString("utf8"))}catch(a){throw Error(`${f} is not valid JSON: ${G(a)}`)}if(!b||"object"!=typeof b)throw Error(`${f} is not an object`);let m=b,n=(0,e.parsePackIdentity)(m);if(!Array.isArray(m.policies)||0===m.policies.length)throw Error("pack manifest declares no policies");let o=m.policies.map((a,b)=>(0,e.parsePackPolicy)(n.id,a,b));return{id:n.id,version:n.version,policies:o,...void 0!==m.effect?{effect:n.effect}:{},...n.commit?{commit:n.commit}:{},artifact:j,artifactDigest:l}}function B(a){return a.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}async function C(b,c){let d,{loadCustomHooks:e}=await a.A(6188);try{d=(await e(b,{strict:!0})).map(a=>a.name)}catch(a){throw Error(`its artifact could not be loaded: ${a instanceof Error?a.message:String(a)}`)}let f=c.filter(a=>!d.includes(a)),g=d.filter(a=>!c.includes(a));if(f.length>0)throw Error(`its manifest declares ${f.join(", ")} but the artifact does not register ${1===f.length?"it":"them"} — that would install as protection that never runs`);if(g.length>0)throw Error(`its artifact registers undeclared ${g.join(", ")} — a policy that enforces but appears in no listing cannot be reviewed or switched off`)}async function D(a,b){var f,g,h,i;let j,k;if(process.env.FAILPROOFAI_NO_DOWNLOAD)throw Error("pack downloads are disabled (FAILPROOFAI_NO_DOWNLOAD). Already-installed packs keep enforcing.");let l=n(a),m={...l,tag:await r(l)},o=null===l.tag,p=await A(m);if(f=m.tag,g=p.version,(j=f.slice(f.lastIndexOf("/")+1))!==g&&j!==`v${g}`){let a=m.tag.slice(m.tag.lastIndexOf("/")+1).replace(/^v/,""),b=`re-tag the release ${p.version} (a leading v is fine), or rebuild the pack with --version ${a}`;throw Error(`${p.id} was not installed: release tag ${m.tag} does not match the version its manifest declares (${p.version}). `+(o?`That is the newest release of ${m.owner}/${m.repo}, so the release and the pack disagree at the source — ask the publisher to ${b}.`:`Name the tag whose manifest says ${p.version}, or fix the pack: ${b}.`))}let q=p.policies.map(a=>a.name),t=(h=p.id,i=p.artifactDigest,(k=(0,e.readInstalledPacks)().packs).find(a=>a.id===h)??k.find(a=>a.sha256===i)),{enabled:u,reason:v}=function(a,b,c,d){let e=a.map(a=>a.name);if(b?.all)return{enabled:null,reason:"all"};let f=new Set;if(b?.categories?.length){let c=new Set(b.categories.map(B)),d=new Map(a.map(a=>[B(a.category),a.category])),e=[...c].filter(a=>!d.has(a));if(e.length>0)throw Error(`no such categor${1===e.length?"y":"ies"}: ${e.join(", ")} (has: ${[...new Set(a.map(a=>B(a.category)))].join(", ")})`);for(let b of a)c.has(B(b.category))&&f.add(b.name)}if(b?.only?.length){let a=b.only.filter(a=>!e.includes(a));if(a.length>0)throw Error(`pack does not contain ${a.join(", ")}`);for(let a of b.only)f.add(a)}if(b?.only!==void 0||b?.categories?.length){if(b.merge&&d){if(null===c)return{enabled:null,reason:"carried"};for(let a of c??[])f.add(a);return{enabled:e.filter(a=>f.has(a)),reason:"added"}}return{enabled:e.filter(a=>f.has(a)),reason:"selected"}}return d?{enabled:null===c?null:c??null,reason:"carried"}:{enabled:a.filter(a=>a.defaultEnabled).map(a=>a.name),reason:"defaults"}}(p.policies,b,t?.enabled?t.enabled.filter(a=>q.includes(a)):t?.enabled,!!t),w=(0,e.packsRoot)(),y=`artifacts/${p.artifactDigest}.mjs`,z=(0,d.resolve)(w,y);(0,c.existsSync)(z)||x(z,p.artifact);try{await C(z,q)}catch(a){throw Error(`${p.id}@${p.version} was not installed: ${a instanceof Error?a.message:String(a)}`)}let D=a=>{let b=a.lastIndexOf("@");return b>a.indexOf(":")?a.slice(0,b):a};if(t&&t.id===p.id&&!t.source.startsWith("bundled:")&&D(t.source)!==D(s(m)))throw Error(`pack id ${p.id} is already installed from ${t.source}. Refusing to replace it with ${s(m)} — remove it first if that is what you mean.`);let E={id:p.id,version:p.version,source:s(m),entry:y,sha256:p.artifactDigest,policies:p.policies,...p.commit?{commit:p.commit}:{},...p.effect?{effect:p.effect}:{},...u?{enabled:u}:{},...b?.clis?{clis:b.clis}:b?.merge!==!1&&t?.clis?{clis:t.clis}:{}};return{replaced:function(a,b=!0){let f=(0,d.resolve)((0,e.packsRoot)(),"installed.json"),g=[];if((0,c.existsSync)(f))try{let a=JSON.parse((0,c.readFileSync)(f,"utf8"));Array.isArray(a.packs)&&(g=a.packs)}catch{throw Error(`existing pack manifest at ${f} is unreadable; move it aside and re-add`)}let h=g.filter(b=>b?.sha256===a.sha256&&b?.id!==a.id).map(a=>a.id);if(b&&!a.enabled){let b=g.find(a=>h.includes(a?.id)),c=b?.enabled?.filter(b=>a.policies?.some(a=>a?.name===b));c&&c.length>0&&(a.enabled=c)}let i=g.filter(a=>!h.includes(a?.id)),j=i.findIndex(b=>b?.id===a.id);return j>=0?i[j]=a:i.push(a),x(f,JSON.stringify({schemaVersion:1,packs:i},null,2)+"\n"),h}(E,"all"!==v),id:p.id,version:p.version,source:E.source,tag:m.tag,resolvedFromLatest:o,enabled:u??q,available:q,selection:v,categories:[...new Set(p.policies.map(a=>B(a.category)))],artifact:z}}function E(a){let b=a.trim(),c=b.lastIndexOf("@");return(c>0?b.slice(0,c):b).trim()}class F extends Error{candidates;constructor(a,b){super(`${b} matches ${a.length} installed packs: ${a.join(", ")}. Name one of them exactly.`),this.candidates=a,this.name="AmbiguousPackId"}}function G(a){return a instanceof Error?a.message:String(a)}a.s(["CORE_SOURCE",0,l,"PACK_CHECKSUMS_ASSET",0,h,"PACK_ENTRY_ASSET",0,g,"PACK_MANIFEST_ASSET",0,f,"addPack",0,D,"addPackFromSource",0,y,"fetchPackPreview",0,z,"removePack",0,function(a){let b,f=(0,d.resolve)((0,e.packsRoot)(),"installed.json");if(!(0,c.existsSync)(f))return null;try{b=JSON.parse((0,c.readFileSync)(f,"utf8"))}catch{return null}let g=Array.isArray(b.packs)?b.packs:[],h=g.find(b=>b?.id===E(a)),i=g.filter(b=>{var c;return b?.id&&(c=b.id,E(c).toLowerCase()===E(a).toLowerCase())});if(!h&&i.length>1)throw new F(i.map(a=>a.id).filter(a=>"string"==typeof a),a);let j=h??i[0],k=g.filter(a=>a!==j);return j&&k.length!==g.length?(x(f,JSON.stringify({schemaVersion:1,packs:k},null,2)+"\n"),j.id):null},"setPackPolicyEnabled",0,function(a,b,f){let g,h=(0,d.resolve)((0,e.packsRoot)(),"installed.json");if(!(0,c.existsSync)(h))return{ok:!1,reason:"no packs are installed"};try{g=JSON.parse((0,c.readFileSync)(h,"utf8"))}catch{return{ok:!1,reason:`pack manifest at ${h} is unreadable`}}let i=Array.isArray(g.packs)?g.packs:[],j=i.find(b=>b?.id===a);if(!j)return{ok:!1,reason:`no installed pack with id ${a}`};let k=(Array.isArray(j.policies)?j.policies:[]).map(a=>"string"==typeof a?.name?a.name:null).filter(a=>null!==a);if(!k.includes(b))return{ok:!1,reason:`pack ${a} declares no policy named ${b}`};let l=j.enabled??k,m=f?[...new Set([...l,b])]:l.filter(a=>a!==b);return j.enabled=k.filter(a=>m.includes(a)),x(h,JSON.stringify({schemaVersion:1,packs:i},null,2)+"\n"),{ok:!0}}])},1459,a=>{"use strict";a.i(1457);Symbol("failproofai.back"),Object.values({on:"✓ ON",off:"· OFF",mixed:"◐ MIXED",locked:"✓ LOCK",cloud:"✓ CLOUD",pack:"✓ PACK",failed:"▲ FAIL",observe:"◉ OBS"}).map(a=>a.length),a.s([])},91997,a=>{"use strict";let b=["SessionStart","SessionEnd","UserPromptSubmit","PreToolUse","PermissionRequest","PermissionDenied","PostToolUse","PostToolUseFailure","Notification","SubagentStart","SubagentStop","TaskCreated","TaskCompleted","Stop","StopFailure","TeammateIdle","InstructionsLoaded","ConfigChange","CwdChanged","FileChanged","WorktreeCreate","WorktreeRemove","PreCompact","PostCompact","Elicitation","ElicitationResult","UserPromptExpansion","PostToolBatch","Setup"].filter(a=>"WorktreeCreate"!==a);a.s(["ANTIGRAVITY_HOOK_EVENT_TYPES",0,["PreToolUse","PostToolUse","PreInvocation","Stop"],"ANTIGRAVITY_HOOK_SCOPES",0,["user","project"],"CLAUDE_INSTALL_EVENT_TYPES",0,b,"CODEX_EVENT_MAP",0,{session_start:"SessionStart",pre_tool_use:"PreToolUse",permission_request:"PermissionRequest",post_tool_use:"PostToolUse",user_prompt_submit:"UserPromptSubmit",stop:"Stop",subagent_start:"SubagentStart",pre_compact:"PreCompact",post_compact:"PostCompact",subagent_stop:"SubagentStop"},"CODEX_HOOK_EVENT_TYPES",0,["session_start","pre_tool_use","permission_request","post_tool_use","user_prompt_submit","stop","subagent_start","pre_compact","post_compact","subagent_stop"],"CODEX_HOOK_SCOPES",0,["user","project"],"COPILOT_HOOK_EVENT_TYPES",0,["SessionStart","SessionEnd","UserPromptSubmit","PreToolUse","PostToolUse","Stop","SubagentStop","PostToolUseFailure","ErrorOccurred","PreCompact","PermissionRequest","Notification"],"COPILOT_HOOK_SCOPES",0,["user","project"],"CURSOR_HOOK_EVENT_TYPES",0,["sessionStart","sessionEnd","beforeSubmitPrompt","preToolUse","postToolUse","stop","subagentStop"],"CURSOR_HOOK_SCOPES",0,["user","project"],"DEVIN_HOOK_EVENT_TYPES",0,["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","PermissionRequest","Stop","SessionEnd"],"DEVIN_HOOK_SCOPES",0,["user","project"],"FACTORY_HOOK_EVENT_TYPES",0,["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","Notification","Stop","SubagentStop","PreCompact","SessionEnd"],"FACTORY_HOOK_SCOPES",0,["user","project"],"FAILPROOFAI_HOOK_MARKER",0,"__failproofai_hook__","GOOSE_HOOK_EVENT_TYPES",0,["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","SessionEnd"],"GOOSE_HOOK_SCOPES",0,["user","project"],"HERMES_HOOK_EVENT_TYPES",0,["pre_tool_call","post_tool_call","on_session_start","on_session_end","subagent_stop"],"HERMES_HOOK_SCOPES",0,["user"],"HOOK_SCOPES",0,["user","project","local"],"INTEGRATION_TYPES",0,["claude","codex","copilot","cursor","opencode","pi","hermes","openclaw","factory","devin","antigravity","goose"],"OPENCLAW_HOOK_EVENT_TYPES",0,["before_tool_call","after_tool_call","before_agent_run","before_agent_finalize","session_start","session_end","subagent_ended","before_compaction"],"OPENCLAW_HOOK_SCOPES",0,["user"],"OPENCODE_HOOK_EVENT_TYPES",0,["tool.execute.before","tool.execute.after","session.created","session.deleted","session.idle","message.updated","permission.ask"],"OPENCODE_HOOK_SCOPES",0,["user","project"],"PI_HOOK_EVENT_TYPES",0,["session_start","session_shutdown","input","tool_call","user_bash","tool_result","agent_end"],"PI_HOOK_SCOPES",0,["user","project"]])}];
|
|
230
|
+
`),"utf8"),Array.isArray(a.plugin)||(a.plugin=[]);let l="user"===i?`file://${j}`:z,m=a.plugin.findIndex(a=>this.isFailproofaiHook(a));m>=0?a.plugin[m]=l:a.plugin.push(l)},removeHooksFromFile(a){let b=0,d=this.readSettings(a);if(Array.isArray(d.plugin)){let a=d.plugin.length;d.plugin=d.plugin.filter(a=>!this.isFailproofaiHook(a)),b+=a-d.plugin.length,0===d.plugin.length&&delete d.plugin}this.writeSettings(a,d);let e=A(a);if((0,c.existsSync)(e))try{(0,c.readFileSync)(e,"utf8").includes(k.FAILPROOFAI_HOOK_MARKER)&&((0,c.unlinkSync)(e),0===b&&(b=1))}catch{}return b},hooksInstalledInSettings(a,b){let d=this.getSettingsPath(a,b);if(!(0,c.existsSync)(d))return!1;try{let a=this.readSettings(d);if(!Array.isArray(a.plugin)||!a.plugin.some(a=>this.isFailproofaiHook(a)))return!1;let b=A(d);if(!(0,c.existsSync)(b))return!1;return(0,c.readFileSync)(b,"utf8").includes(k.FAILPROOFAI_HOOK_MARKER)}catch{return!1}},detectInstalled:()=>s("opencode")};function C(){let a=process.env.FAILPROOFAI_PACKAGE_ROOT;return a?(0,d.resolve)(a,"pi-extension"):(0,d.resolve)((0,e.fileURLToPath)(l.url),"..","..","..","pi-extension")}function D(a){return"string"==typeof a&&(!!/(?:^|\/)pi-extension\/?$/.test(a)||a.includes("pi-extension")&&a.includes("failproofai"))}let E={id:"pi",displayName:"Pi",scopes:k.PI_HOOK_SCOPES,eventTypes:k.PI_HOOK_EVENT_TYPES,getSettingsPath(a,b){let c=b?(0,d.resolve)(b):process.cwd();switch(a){case"user":return(0,d.resolve)((0,f.homedir)(),".pi","agent","settings.json");case"project":case"local":return(0,d.resolve)(c,".pi","settings.json")}},readSettings:a=>m(a),writeSettings(a,b){n(a,b)},buildHookEntry:(a,b,c)=>({[k.FAILPROOFAI_HOOK_MARKER]:!0,_piPackagePath:C(),_piScope:c}),isFailproofaiHook:a=>"string"==typeof a?D(a):!!a&&"object"==typeof a&&(!0===a[k.FAILPROOFAI_HOOK_MARKER]||"string"==typeof a.source&&D(a.source)),writeHookEntries(a,b,c){var e;let f,g,h;Array.isArray(a.packages)||(a.packages=[]);let i=C(),j="project"===c?(e=i,f=process.cwd(),g=(0,d.resolve)(f),(h=(0,d.resolve)(e)).startsWith(g+"/")||h===g?"../"+h.slice(g.length+1):h):i,k=a.packages.findIndex(a=>D(a));k>=0?a.packages[k]=j:a.packages.push(j)},removeHooksFromFile(a){if(!(0,c.existsSync)(a))return 0;let b=this.readSettings(a);if(!Array.isArray(b.packages))return 0;let d=b.packages.length;b.packages=b.packages.filter(a=>!D(a));let e=d-b.packages.length;return 0===b.packages.length&&delete b.packages,this.writeSettings(a,b),e},hooksInstalledInSettings(a,b){let d=this.getSettingsPath(a,b);if(!(0,c.existsSync)(d))return!1;try{let a=this.readSettings(d);if(!Array.isArray(a.packages))return!1;return a.packages.some(a=>D(a))}catch{return!1}},detectInstalled:()=>s("pi")},F="failproofai",G=".failproofai-managed",H=["plugin.yaml","__init__.py","client.py","ledger.py"];function I(){let a=process.env.FAILPROOFAI_PACKAGE_ROOT;return a?(0,d.resolve)(a,"hermes-plugin"):(0,d.resolve)((0,e.fileURLToPath)(l.url),"..","..","..","hermes-plugin")}function J(a){return(0,d.resolve)((0,d.dirname)(a),"plugins",F)}function K(a){let b=(a.toJS()??{}).hooks,c=0;if(b&&"object"==typeof b){for(let a of Object.keys(b)){let d=b[a];if(!Array.isArray(d))continue;let e=d.length,f=d.filter(a=>!q(a));c+=e-f.length,0===f.length?delete b[a]:b[a]=f}0===Object.keys(b).length?(a.delete("hooks"),c>0&&a.delete("hooks_auto_accept")):a.set("hooks",b)}return c}let L={id:"hermes",displayName:"Hermes",requiresHealthyDaemon:!0,scopes:k.HERMES_HOOK_SCOPES,eventTypes:k.HERMES_HOOK_EVENT_TYPES,getSettingsPath:()=>(0,d.resolve)((0,h.hermesRoot)(),"config.yaml"),getSettingsPaths:()=>(0,h.listHermesProfiles)().map(a=>(0,d.resolve)(a.home,"config.yaml")),readSettings:a=>o(a),writeSettings(a,b){p(a,b)},prepareInstall(a){!function(a){let b=I();for(let a of H)if(!(0,c.existsSync)((0,d.resolve)(b,a)))throw Error(`Hermes plugin asset is missing from the failproofai package: ${a}`);let e=J(a);if((0,c.existsSync)(e)&&((0,c.lstatSync)(e).isSymbolicLink()||!(0,c.existsSync)((0,d.resolve)(e,G))))throw Error(`Refusing to overwrite an unmanaged Hermes plugin at ${e}. Move it aside or install FailproofAI under a different Hermes profile.`);(0,c.mkdirSync)((0,d.dirname)(e),{recursive:!0});let f=`${process.pid}-${Date.now()}`,g=`${e}.install-${f}`,h=`${e}.backup-${f}`,i=!1;try{for(let a of((0,c.mkdirSync)(g,{recursive:!0}),H))(0,c.cpSync)((0,d.resolve)(b,a),(0,d.resolve)(g,a));(0,c.writeFileSync)((0,d.resolve)(g,G),"Managed by failproofai. Remove with `failproofai policies --uninstall --cli hermes`.\n",{encoding:"utf8",mode:384}),(0,c.existsSync)(e)&&((0,c.renameSync)(e,h),i=!0),(0,c.renameSync)(g,e),i&&(0,c.rmSync)(h,{recursive:!0,force:!0})}catch(a){throw(0,c.rmSync)(g,{recursive:!0,force:!0}),i&&!(0,c.existsSync)(e)&&(0,c.existsSync)(h)&&(0,c.renameSync)(h,e),a}}(a)},buildHookEntry:(a,b,c)=>({[k.FAILPROOFAI_HOOK_MARKER]:!0,_hermesPluginPath:I()}),isFailproofaiHook:q,writeHookEntries(a){K(a);let b=a.toJS()??{},c=b.plugins&&"object"==typeof b.plugins?b.plugins:{},d=Array.isArray(c.enabled)?[...c.enabled]:[];d.includes(F)||d.push(F),c.enabled=d,Array.isArray(c.disabled)&&(c.disabled=c.disabled.filter(a=>a!==F),0===c.disabled.length&&delete c.disabled),a.set("plugins",c)},removeHooksFromFile(a){let b,e=o(a),f=K(e),g=(e.toJS()??{}).plugins,h=f>0;if(g&&"object"==typeof g){if(Array.isArray(g.enabled)){let a=g.enabled.length;g.enabled=g.enabled.filter(a=>a!==F),g.enabled.length!==a&&(f+=1,h=!0),0===g.enabled.length&&delete g.enabled}g.entries&&F in g.entries&&(delete g.entries[F],h=!0),0===Object.keys(g).length?e.delete("plugins"):e.set("plugins",g)}return h&&p(a,e),b=J(a),function(a){let b=J(a);try{return!(0,c.lstatSync)(b).isSymbolicLink()&&(0,c.existsSync)((0,d.resolve)(b,G))}catch{return!1}}(a)&&((0,c.rmSync)(b,{recursive:!0,force:!0}),1)&&(f+=1),f},hooksInstalledInSettings(a,b){let e=t(this,a,b);return e.length>0&&e.every(a=>(function(a){try{let b=function(a){if(!(0,c.existsSync)(a))return{pluginEnabled:!1,legacyShellHookPresent:!1};let b=o(a).toJS()??{},d=b.plugins?.enabled,e=!!b.hooks&&"object"==typeof b.hooks&&Object.values(b.hooks).some(a=>Array.isArray(a)&&a.some(a=>q(a)));return{pluginEnabled:Array.isArray(d)&&d.includes(F),legacyShellHookPresent:e}}(a);return b.pluginEnabled&&function(a){let b=J(a);try{if((0,c.lstatSync)(b).isSymbolicLink()||!(0,c.existsSync)((0,d.resolve)(b,G)))return!1;return H.every(a=>(0,c.existsSync)((0,d.resolve)(b,a)))}catch{return!1}}(a)&&!b.legacyShellHookPresent}catch{}return!1})(a))},detectInstalled:()=>s("hermes")},M="failproofai";function N(){let a=process.env.FAILPROOFAI_PACKAGE_ROOT;return a?(0,d.resolve)(a,"openclaw-plugin"):(0,d.resolve)((0,e.fileURLToPath)(l.url),"..","..","..","openclaw-plugin")}function O(a){return"string"==typeof a&&(/(?:^|\/)openclaw-plugin\/?$/.test(a)||a.includes("openclaw-plugin")&&a.includes("failproofai"))}let P={id:"openclaw",displayName:"OpenClaw",scopes:k.OPENCLAW_HOOK_SCOPES,eventTypes:k.OPENCLAW_HOOK_EVENT_TYPES,getSettingsPath:()=>(0,d.resolve)(j()[0].home,"openclaw.json"),getSettingsPaths:()=>j().map(a=>(0,d.resolve)(a.home,"openclaw.json")),readSettings:a=>m(a),writeSettings(a,b){n(a,b)},buildHookEntry:()=>({[k.FAILPROOFAI_HOOK_MARKER]:!0,_openclawPluginPath:N()}),isFailproofaiHook:a=>"string"==typeof a?O(a):!!a&&"object"==typeof a&&(!0===a[k.FAILPROOFAI_HOOK_MARKER]||"string"==typeof a.source&&O(a.source)),writeHookEntries(a){let b=a.plugins??={},c=b.load??={};Array.isArray(c.paths)||(c.paths=[]);let d=N(),e=c.paths.findIndex(a=>O(a));e>=0?c.paths[e]=d:c.paths.push(d);let f=b.entries??={},g=f[M]??={};g.enabled=!0,(g.hooks??={}).allowConversationAccess=!0},removeHooksFromFile(a){if(!(0,c.existsSync)(a))return 0;let b=this.readSettings(a),d=b.plugins;if(!d)return 0;let e=0;if(Array.isArray(d.load?.paths)){let a=d.load.paths.length;d.load.paths=d.load.paths.filter(a=>!O(a)),e+=a-d.load.paths.length,0===d.load.paths.length&&delete d.load.paths,d.load&&0===Object.keys(d.load).length&&delete d.load}return d.entries&&M in d.entries&&(delete d.entries[M],e+=1,0===Object.keys(d.entries).length&&delete d.entries),0===Object.keys(d).length&&delete b.plugins,this.writeSettings(a,b),e},hooksInstalledInSettings(a,b){let d=t(this,a,b);return d.length>0&&d.every(a=>{if(!(0,c.existsSync)(a))return!1;try{let b=this.readSettings(a),c=b.plugins?.load?.paths,d=Array.isArray(c)&&c.some(a=>O(a)),e=b.plugins?.entries?.[M]?.enabled===!0;return d&&e}catch{return!1}})},detectInstalled:()=>s("openclaw")},Q={id:"factory",displayName:"Factory Droid",scopes:k.FACTORY_HOOK_SCOPES,eventTypes:k.FACTORY_HOOK_EVENT_TYPES,getSettingsPath(a,b){let c=b?(0,d.resolve)(b):process.cwd();switch(a){case"user":return(0,d.resolve)((0,f.homedir)(),".factory","hooks.json");case"project":case"local":return(0,d.resolve)(c,".factory","hooks.json")}},readSettings:a=>m(a),writeSettings(a,b){n(a,b)},buildHookEntry:(a,b,c)=>({type:"command",command:"project"===c?`npx -y failproofai --hook ${b} --cli factory`:`"${a}" --hook ${b} --cli factory`,timeout:30,[k.FAILPROOFAI_HOOK_MARKER]:!0}),isFailproofaiHook:q,writeHookEntries(a,b,c){for(let d of k.FACTORY_HOOK_EVENT_TYPES){let e=this.buildHookEntry(b,d,c);Array.isArray(a[d])||(a[d]=[]);let f=a[d],g=!1;for(let a of f){if(!a.hooks)continue;let b=a.hooks.findIndex(a=>q(a));if(b>=0){a.hooks[b]=e,g=!0;break}}if(!g){let a="PreToolUse"===d||"PostToolUse"===d;f.push(a?{matcher:"*",hooks:[e]}:{hooks:[e]})}}},removeHooksFromFile(a){let b=this.readSettings(a),c=0;for(let a of Object.keys(b)){let d=b[a];if(Array.isArray(d)){for(let a=d.length-1;a>=0;a--){let b=d[a];if(!b||!b.hooks)continue;let e=b.hooks.length;b.hooks=b.hooks.filter(a=>!q(a)),c+=e-b.hooks.length,0===b.hooks.length&&d.splice(a,1)}0===d.length&&delete b[a]}}return this.writeSettings(a,b),c},hooksInstalledInSettings(a,b){let d=this.getSettingsPath(a,b);if(!(0,c.existsSync)(d))return!1;try{let a=this.readSettings(d);for(let b of Object.values(a))if(Array.isArray(b)){for(let a of b)if(a&&a.hooks&&a.hooks.some(a=>q(a)))return!0}}catch{}return!1},detectInstalled:()=>s("droid")},R={id:"devin",displayName:"Devin CLI",scopes:k.DEVIN_HOOK_SCOPES,eventTypes:k.DEVIN_HOOK_EVENT_TYPES,getSettingsPath(a,b){let c=b?(0,d.resolve)(b):process.cwd();switch(a){case"user":return(0,d.resolve)((0,f.homedir)(),".config","devin","config.json");case"project":case"local":return(0,d.resolve)(c,".devin","config.json")}},readSettings:a=>m(a),writeSettings(a,b){n(a,b)},buildHookEntry:(a,b,c)=>({type:"command",command:"project"===c?`npx -y failproofai --hook ${b} --cli devin`:`"${a}" --hook ${b} --cli devin`,timeout:60,[k.FAILPROOFAI_HOOK_MARKER]:!0}),isFailproofaiHook:q,writeHookEntries(a,b,c){for(let d of(a.hooks||(a.hooks={}),k.DEVIN_HOOK_EVENT_TYPES)){let e=this.buildHookEntry(b,d,c);a.hooks[d]||(a.hooks[d]=[]);let f=a.hooks[d],g=!1;for(let a of f){if(!a.hooks)continue;let b=a.hooks.findIndex(a=>q(a));if(b>=0){a.hooks[b]=e,g=!0;break}}g||f.push({hooks:[e]})}},removeHooksFromFile(a){let b=this.readSettings(a);if(!b.hooks)return 0;let c=0;for(let a of Object.keys(b.hooks)){let d=b.hooks[a];if(Array.isArray(d)){for(let a=d.length-1;a>=0;a--){let b=d[a];if(!b.hooks)continue;let e=b.hooks.length;b.hooks=b.hooks.filter(a=>!q(a)),c+=e-b.hooks.length,0===b.hooks.length&&d.splice(a,1)}0===d.length&&delete b.hooks[a]}}return 0===Object.keys(b.hooks).length&&delete b.hooks,this.writeSettings(a,b),c},hooksInstalledInSettings(a,b){let d=this.getSettingsPath(a,b);if(!(0,c.existsSync)(d))return!1;try{let a=this.readSettings(d);if(!a.hooks)return!1;for(let b of Object.values(a.hooks))if(Array.isArray(b)){for(let a of b)if(a.hooks&&a.hooks.some(a=>q(a)))return!0}}catch{}return!1},detectInstalled:()=>s("devin")},S="failproofai",T=new Set(["PreToolUse","PostToolUse"]);function U(a){if(!a||"object"!=typeof a)return!1;let b=a.command;return"string"==typeof b&&b.includes("failproofai")&&b.includes("--cli goose")}let V={claude:u,codex:v,copilot:x,cursor:y,opencode:B,pi:E,hermes:L,openclaw:P,factory:Q,devin:R,antigravity:{id:"antigravity",displayName:"Antigravity CLI",scopes:k.ANTIGRAVITY_HOOK_SCOPES,eventTypes:k.ANTIGRAVITY_HOOK_EVENT_TYPES,getSettingsPath(a,b){let c=b?(0,d.resolve)(b):process.cwd();switch(a){case"user":return(0,d.resolve)((0,f.homedir)(),".gemini","config","hooks.json");case"project":case"local":return(0,d.resolve)(c,".agents","hooks.json")}},readSettings:a=>m(a),writeSettings(a,b){n(a,b)},buildHookEntry:(a,b,c)=>({type:"command",command:"project"===c?`npx -y failproofai --hook ${b} --cli antigravity`:`"${a}" --hook ${b} --cli antigravity`,timeout:30,[k.FAILPROOFAI_HOOK_MARKER]:!0}),isFailproofaiHook:q,writeHookEntries(a,b,c){a[S]&&"object"==typeof a[S]||(a[S]={});let d=a[S];for(let a of k.ANTIGRAVITY_HOOK_EVENT_TYPES){let e=this.buildHookEntry(b,a,c);if(T.has(a)){Array.isArray(d[a])||(d[a]=[]);let b=d[a],c=!1;for(let a of b){if(!a.hooks)continue;let b=a.hooks.findIndex(a=>q(a));if(b>=0){a.hooks[b]=e,c=!0;break}}c||b.push({matcher:"*",hooks:[e]})}else{Array.isArray(d[a])||(d[a]=[]);let b=d[a],c=b.findIndex(a=>q(a));c>=0?b[c]=e:b.push(e)}}},removeHooksFromFile(a){let b=this.readSettings(a),c=b[S];if(!c||"object"!=typeof c)return this.writeSettings(a,b),0;let d=0;for(let a of Object.keys(c)){let b=c[a];if(Array.isArray(b))if(T.has(a)){for(let a=b.length-1;a>=0;a--){let c=b[a];if(!c||!c.hooks)continue;let e=c.hooks.length;c.hooks=c.hooks.filter(a=>!q(a)),d+=e-c.hooks.length,0===c.hooks.length&&b.splice(a,1)}0===b.length&&delete c[a]}else{let e=b.length,f=b.filter(a=>!q(a));d+=e-f.length,0===f.length?delete c[a]:c[a]=f}}return 0===Object.keys(c).length&&delete b[S],this.writeSettings(a,b),d},hooksInstalledInSettings(a,b){let d=this.getSettingsPath(a,b);if(!(0,c.existsSync)(d))return!1;try{let a=this.readSettings(d)[S];if(!a||"object"!=typeof a)return!1;for(let b of Object.values(a))if(Array.isArray(b)){for(let a of b)if(q(a)||a&&Array.isArray(a.hooks)&&a.hooks.some(a=>q(a)))return!0}}catch{}return!1},detectInstalled:()=>s("agy")},goose:{id:"goose",displayName:"Goose",scopes:k.GOOSE_HOOK_SCOPES,eventTypes:k.GOOSE_HOOK_EVENT_TYPES,getSettingsPath(a,b){let c=b?(0,d.resolve)(b):process.cwd();switch(a){case"user":return(0,d.resolve)((0,f.homedir)(),".agents","plugins","failproofai","hooks","hooks.json");case"project":case"local":return(0,d.resolve)(c,".agents","plugins","failproofai","hooks","hooks.json")}},readSettings:a=>m(a),writeSettings(a,b){n(a,b)},buildHookEntry:(a,b,c)=>({type:"command",command:"project"===c?`npx -y failproofai --hook ${b} --cli goose`:`"${a}" --hook ${b} --cli goose`}),isFailproofaiHook:U,writeHookEntries(a,b,c){for(let d of(a.hooks||(a.hooks={}),k.GOOSE_HOOK_EVENT_TYPES)){let e=this.buildHookEntry(b,d,c);Array.isArray(a.hooks[d])||(a.hooks[d]=[]);let f=a.hooks[d],g=!1;for(let a of f){if(!a.hooks)continue;let b=a.hooks.findIndex(a=>U(a));if(b>=0){a.hooks[b]=e,g=!0;break}}g||f.push({hooks:[e]})}},removeHooksFromFile(a){let b=this.readSettings(a);if(!b.hooks)return 0;let c=0;for(let a of Object.keys(b.hooks)){let d=b.hooks[a];if(Array.isArray(d)){for(let a=d.length-1;a>=0;a--){let b=d[a];if(!b||!b.hooks)continue;let e=b.hooks.length;b.hooks=b.hooks.filter(a=>!U(a)),c+=e-b.hooks.length,0===b.hooks.length&&d.splice(a,1)}0===d.length&&delete b.hooks[a]}}return 0===Object.keys(b.hooks).length&&delete b.hooks,this.writeSettings(a,b),c},hooksInstalledInSettings(a,b){let d=this.getSettingsPath(a,b);if(!(0,c.existsSync)(d))return!1;try{let a=this.readSettings(d);if(!a.hooks)return!1;for(let b of Object.values(a.hooks))if(Array.isArray(b)){for(let a of b)if(a&&a.hooks&&a.hooks.some(a=>U(a)))return!0}}catch{}return!1},detectInstalled:()=>s("goose")}};a.s(["claudeCode",0,u,"detectInstalledClis",0,function(){return k.INTEGRATION_TYPES.filter(a=>V[a]?.detectInstalled())},"getIntegration",0,function(a){let b=V[a];if(!b)throw Error(`"${a}" is audit-only — live-hook install is not supported for it yet. Installable: ${k.INTEGRATION_TYPES.filter(a=>void 0!==V[a]).join(", ")}`);return b},"listIntegrations",0,function(){return k.INTEGRATION_TYPES.map(a=>V[a]).filter(a=>void 0!==a)},"settingsPathsFor",0,t],67121)},9909,89790,a=>{"use strict";var b=a.i(66680),c=a.i(2157),d=a.i(50227),e=a.i(75818);function f(a,b){if(!b||(0,d.isAbsolute)(b))throw Error(`unsafe managed policy path ${JSON.stringify(b)}`);let e=(0,d.resolve)(a,b),f=(0,d.relative)(a,e);if(f.startsWith("..")||(0,d.isAbsolute)(f))throw Error(`managed policy path escapes its root: ${JSON.stringify(b)}`);let g=(0,c.realpathSync)(a),h=(0,c.realpathSync)(e),i=(0,d.relative)(g,h);if(i.startsWith("..")||(0,d.isAbsolute)(i))throw Error(`managed policy symlink escapes its root: ${JSON.stringify(b)}`);return h}a.s(["resolveManagedPath",0,f],89790);let g=[1],h=/^[a-f0-9]{64}$/,i=/^[A-Za-z0-9._-]{1,64}\/[A-Za-z0-9._-]{1,64}$/,j=/^[A-Za-z0-9][A-Za-z0-9._+-]{0,63}$/,k=/^[0-9a-f]{7,40}$/,l=/^[A-Za-z0-9._-]{1,128}$/;function m(){return process.env.FAILPROOFAI_PACK_DIR??(0,e.packsDir)()}function n(a){if("string"!=typeof a.id||!i.test(a.id))throw Error(`unsafe pack id ${JSON.stringify(a.id)}`);if("string"!=typeof a.version||!j.test(a.version))throw Error(`invalid version for pack ${a.id}`);if(void 0!==a.effect&&"enforce"!==a.effect&&"observe"!==a.effect)throw Error(`unknown effect ${JSON.stringify(a.effect)} for pack ${a.id}`);let b="string"==typeof a.commit&&k.test(a.commit.trim().toLowerCase())?a.commit.trim().toLowerCase():void 0;return{id:a.id,version:a.version,effect:a.effect??"enforce",...b?{commit:b}:{}}}function o(){return process.env.FAILPROOFAI_PACK_DIR?(0,d.resolve)(process.env.FAILPROOFAI_PACK_DIR,"installed.json"):(0,e.packsInstalledFile)()}function p(a,b,c){let d=`${a} policy #${c}`;if(!b||"object"!=typeof b)throw Error(`${d} is not an object`);let e=b.name;if("string"!=typeof e||!l.test(e))throw Error(`${d} has an unsafe name ${JSON.stringify(e)}`);if("alwaysOn"in b)throw Error(`${d} declares alwaysOn, which packs may not set`);if("string"!=typeof b.description||0===b.description.length)throw Error(`${d} is missing a description`);if("string"!=typeof b.category||0===b.category.length)throw Error(`${d} is missing a category`);if("boolean"!=typeof b.defaultEnabled)throw Error(`${d} is missing defaultEnabled`);if(!b.match||"object"!=typeof b.match)throw Error(`${d} is missing a match`);let f=b.match;for(let a of["events","toolNames"]){let b=f[a];if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a||0===a.length)))throw Error(`${d} has a match.${a} that is not a list of names`)}return b}function q(a){return a instanceof Error?a.message:String(a)}a.s(["PACK_COMMIT_RE",0,k,"hasInstalledPacks",0,function(){try{let a=JSON.parse((0,c.readFileSync)(o(),"utf8"));return Array.isArray(a.packs)&&a.packs.length>0}catch{return!1}},"packsRoot",0,m,"parsePackIdentity",0,n,"parsePackPolicy",0,p,"readInstalledPacks",0,function(){let a,d=o();if(!(0,c.existsSync)(d))return{packs:[],errors:[]};try{a=JSON.parse((0,c.readFileSync)(d,"utf8"))}catch(a){return{packs:[],errors:[{id:null,reason:`unreadable pack manifest: ${q(a)}`}]}}if(!a||"object"!=typeof a)return{packs:[],errors:[{id:null,reason:"pack manifest is not an object"}]};let e=a;if(!g.includes(e.schemaVersion))return{packs:[],errors:[{id:null,reason:`unsupported pack manifest schema ${String(e.schemaVersion)} (supported: ${g.join(", ")})`}]};if(!Array.isArray(e.packs))return{packs:[],errors:[{id:null,reason:"pack manifest packs is not an array"}]};let i=m(),j=[],k=[],l=new Set;for(let a of e.packs){let d=a&&"object"==typeof a&&"string"==typeof a.id?a.id:null;try{let d=function(a,d){if(!d||"object"!=typeof d)throw Error("pack entry is not an object");let e=n(d);if("string"!=typeof d.source||0===d.source.length)throw Error(`pack ${d.id} has no source`);if("string"!=typeof d.sha256||!h.test(d.sha256))throw Error(`invalid SHA-256 for pack ${d.id}`);let g=e.effect,i=f(a,d.entry),j=(0,b.createHash)("sha256").update((0,c.readFileSync)(i)).digest("hex");if(j!==d.sha256)throw Error(`pack ${d.id} failed integrity verification: expected ${d.sha256}, got ${j}`);if(!Array.isArray(d.policies))throw Error(`pack ${d.id} policies is not an array`);let k=d.policies.map((a,b)=>p(d.id,a,b)),l=new Set;for(let a of k){if(l.has(a.name))throw Error(`pack ${d.id} declares ${a.name} twice`);l.add(a.name)}let m=null;if(void 0!==d.enabled){if(!Array.isArray(d.enabled)||d.enabled.some(a=>"string"!=typeof a))throw Error(`pack ${d.id} enabled is not an array of names`);m=d.enabled.filter(a=>l.has(a))}let o=null;if(void 0!==d.clis){if(!Array.isArray(d.clis)||d.clis.some(a=>"string"!=typeof a))throw Error(`pack ${d.id} clis is not an array of agent names`);o=d.clis}return{clis:o,id:e.id,version:e.version,source:d.source,path:i,sha256:d.sha256,effect:g,policies:k,enabled:m}}(i,a);if(l.has(d.id))throw Error(`duplicate pack id ${d.id}`);l.add(d.id),j.push(d)}catch(c){let b=a&&("observe"===a.effect||"enforce"===a.effect)?a.effect:"enforce";k.push({id:d,reason:q(c),effect:b,...Array.isArray(a?.policies)?{declared:function(a){let b=[];for(let c of a)c&&"object"==typeof c&&"string"==typeof c.name&&c.match&&"object"==typeof c.match&&b.push(c);return b}(a.policies)}:{},...Array.isArray(a?.clis)&&a.clis.every(a=>"string"==typeof a)?{clis:a.clis}:{}})}}return{packs:j,errors:k}}],9909)},17280,a=>{"use strict";var b=a.i(66680),c=a.i(2157),d=a.i(50227),e=a.i(9909);let f="failproofai-pack.json",g="failproofai-pack.mjs",h="SHA256SUMS";function i(){return(process.env.FAILPROOFAI_PACK_BASE_URL||"https://github.com").replace(/\/+$/,"")}let j=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/,k=/^[A-Za-z0-9][A-Za-z0-9._/-]{0,127}$/,l="FailproofAI/policies",m=new Set(["core","failproofai","official"]);function n(a){let b=a.trim();if(0===b.length)throw Error("pack source is empty");let c=b.match(/^(?:https?:\/\/)?(?:www\.)?github\.com\/(.+)$/i);if(c){let[a,b,...d]=c[1].replace(/\/+$/,"").split("/"),e=null;if("releases"===d[0]&&("tag"===d[1]||"download"===d[1])){let a=d.slice(2);e=("download"===d[1]?a.slice(0,-1):a).join("/")||null}else"releases"===d[0]&&"latest"===d[1]&&(e=null);return o(a,b,e)}let d=b.replace(/^github:/i,""),e=d.lastIndexOf("@"),f=e>0?d.slice(0,e):d,g=e>0?d.slice(e+1):null,h=f.indexOf("/");if(h<=0||h===f.length-1){if(m.has(f.trim().toLowerCase()))throw Error(`${JSON.stringify(a)} is no longer a pack name — ours is a pack like anyone else's now. Use ${l} instead.`);throw Error(`pack source must be owner/repo, owner/repo@tag, or a github.com URL — got ${JSON.stringify(a)}`)}return o(f.slice(0,h),f.slice(h+1),g)}function o(a,b,c){if(!a||!j.test(a))throw Error(`unsafe owner ${JSON.stringify(a)}`);if(!b||!j.test(b))throw Error(`unsafe repo ${JSON.stringify(b)}`);if(null!==c&&!k.test(c))throw Error(`unsafe tag ${JSON.stringify(c)}`);return{owner:a,repo:b,tag:c}}async function p(a){let b=`${i()}/${a.owner}/${a.repo}/releases/latest`,c=await fetch(b,{signal:AbortSignal.timeout(3e4),redirect:"manual"}),d=c.headers.get("location");if(!d)throw Error(`could not resolve the newest release of ${a.owner}/${a.repo} (GET ${b} returned ${c.status} with no redirect). That redirect is issued only for a published, non-prerelease release, so either the repository has no releases at all or every release it has is a prerelease or a draft. Name a tag explicitly.`);let e=d.match(/\/releases\/tag\/(.+)$/);if(!e)throw Error(`unexpected redirect from ${b}: ${d}`);let f=decodeURIComponent(e[1]).replace(/\/+$/,"");if(!k.test(f))throw Error(`unsafe tag ${JSON.stringify(f)} from ${b}`);return f}async function q(b,c){let d,e=c.toLowerCase(),f=`${(process.env.FAILPROOFAI_GITHUB_API??"https://api.github.com").replace(/\/+$/,"")}/repos/${b.owner}/${b.repo}/releases?per_page=100`;try{let a=(process.env.GITHUB_TOKEN||process.env.GH_TOKEN||"").trim(),b=await fetch(f,{headers:{...a?{Authorization:`Bearer ${a}`}:{},Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28","User-Agent":"failproofai"},signal:AbortSignal.timeout(3e4),redirect:"follow"});if(!b.ok)throw Error(`GET ${f} returned ${b.status}`);d=await b.json()}catch(a){throw Error(`could not resolve commit ${c} in ${b.owner}/${b.repo}: ${G(a)}. Name the release tag instead if you know it.`)}let{parseReleaseBody:g}=await a.A(49679),h=Array.isArray(d)?d:[],i=[];for(let a of h){let b="string"==typeof a.tag_name?a.tag_name:"";if(!b||!k.test(b))continue;let c=g("string"==typeof a.body?a.body:"");c.commit&&c.commit.startsWith(e)&&i.push({tag:b,commit:c.commit})}if(i.length>1)throw Error(`commit ${c} matches ${i.length} releases of ${b.owner}/${b.repo}: `+i.map(a=>`${a.tag} (${a.commit})`).join(", ")+". Name one of those tags, or type more of the commit.");return 1===i.length?i[0].tag:null}async function r(a){return null===a.tag?p(a):e.PACK_COMMIT_RE.test(a.tag)?await q(a,a.tag)??a.tag:a.tag}function s(a){return`github:${a.owner}/${a.repo}@${a.tag}`}function t(a,b){return`${i()}/${a.owner}/${a.repo}/releases/download/${a.tag}/${b}`}async function u(a){let b=await fetch(a,{signal:AbortSignal.timeout(3e4),redirect:"follow"});if(!b.ok)throw Error(`GET ${a} returned ${b.status}`);let c=b.headers.get("content-length");if(null!==c){let d=Number(c);if(Number.isFinite(d)&&d>8388608)throw await b.body?.cancel(),Error(`${a} declares ${d} bytes, over the 8388608 limit`)}if(!b.body)return Buffer.alloc(0);let d=[],e=b.body.getReader(),f=0;try{for(;;){let{done:b,value:c}=await e.read();if(b)break;if((f+=c.byteLength)>8388608)throw await e.cancel(),Error(`${a} is over the 8388608 byte limit`);d.push(Buffer.from(c))}}finally{e.releaseLock()}return Buffer.concat(d,f)}function v(a,b){for(let c of a.split("\n")){let a=c.trim().match(/^([0-9a-f]{64})\s+\*?(.+)$/i);if(a&&a[2].trim()===b)return a[1].toLowerCase()}return null}function w(a){return(0,b.createHash)("sha256").update(a).digest("hex")}function x(a,b){let e=`${a}.${process.pid}.tmp`;try{(0,c.mkdirSync)((0,d.dirname)(a),{recursive:!0}),(0,c.writeFileSync)(e,b),(0,c.renameSync)(e,a)}catch(a){throw(0,c.rmSync)(e,{force:!0}),a}}async function y(a,b={}){let c=await D(a,b);return{id:c.id,version:c.version,enabled:c.enabled,available:c.available,bundled:!1,source:c.source,tag:c.tag,resolvedFromLatest:c.resolvedFromLatest,selection:c.selection,categories:c.categories}}async function z(a){let b;if("1"===process.env.FAILPROOFAI_NO_DOWNLOAD)throw Error("FAILPROOFAI_NO_DOWNLOAD is set, so nothing can be fetched to preview");let c=n(a),d=null===c.tag,g={...c,tag:await r(c)},i=(await u(t(g,h))).toString("utf8"),j=await u(t(g,f)),k=v(i,f);if(!k)throw Error(`${h} has no entry for ${f}`);if(w(j)!==k)throw Error(`${f} failed integrity verification`);try{b=JSON.parse(j.toString("utf8"))}catch(a){throw Error(`${f} is not valid JSON: ${G(a)}`)}if(!b||"object"!=typeof b)throw Error(`${f} is not an object`);let l=b,m=(0,e.parsePackIdentity)(l);if(!Array.isArray(l.policies)||0===l.policies.length)throw Error("pack manifest declares no policies");return{id:m.id,version:m.version,effect:m.effect,...m.commit?{commit:m.commit}:{},policies:l.policies.map((a,b)=>(0,e.parsePackPolicy)(m.id,a,b)),source:s(g),resolvedFromLatest:d}}async function A(a){let b,c=(await u(t(a,h))).toString("utf8"),d=await u(t(a,f)),i=v(c,f);if(!i)throw Error(`${h} has no entry for ${f}`);if(w(d)!==i)throw Error(`${f} failed integrity verification`);let j=await u(t(a,g)),k=v(c,g);if(!k)throw Error(`${h} has no entry for ${g}`);let l=w(j);if(l!==k)throw Error(`${g} failed integrity verification`);try{b=JSON.parse(d.toString("utf8"))}catch(a){throw Error(`${f} is not valid JSON: ${G(a)}`)}if(!b||"object"!=typeof b)throw Error(`${f} is not an object`);let m=b,n=(0,e.parsePackIdentity)(m);if(!Array.isArray(m.policies)||0===m.policies.length)throw Error("pack manifest declares no policies");let o=m.policies.map((a,b)=>(0,e.parsePackPolicy)(n.id,a,b));return{id:n.id,version:n.version,policies:o,...void 0!==m.effect?{effect:n.effect}:{},...n.commit?{commit:n.commit}:{},artifact:j,artifactDigest:l}}function B(a){return a.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}async function C(b,c){let d,{loadCustomHooks:e}=await a.A(6188);try{d=(await e(b,{strict:!0})).map(a=>a.name)}catch(a){throw Error(`its artifact could not be loaded: ${a instanceof Error?a.message:String(a)}`)}let f=c.filter(a=>!d.includes(a)),g=d.filter(a=>!c.includes(a));if(f.length>0)throw Error(`its manifest declares ${f.join(", ")} but the artifact does not register ${1===f.length?"it":"them"} — that would install as protection that never runs`);if(g.length>0)throw Error(`its artifact registers undeclared ${g.join(", ")} — a policy that enforces but appears in no listing cannot be reviewed or switched off`)}async function D(a,b){var f,g,h,i;let j,k;if(process.env.FAILPROOFAI_NO_DOWNLOAD)throw Error("pack downloads are disabled (FAILPROOFAI_NO_DOWNLOAD). Already-installed packs keep enforcing.");let l=n(a),m={...l,tag:await r(l)},o=null===l.tag,p=await A(m);if(f=m.tag,g=p.version,(j=f.slice(f.lastIndexOf("/")+1))!==g&&j!==`v${g}`){let a=m.tag.slice(m.tag.lastIndexOf("/")+1).replace(/^v/,""),b=`re-tag the release ${p.version} (a leading v is fine), or rebuild the pack with --version ${a}`;throw Error(`${p.id} was not installed: release tag ${m.tag} does not match the version its manifest declares (${p.version}). `+(o?`That is the newest release of ${m.owner}/${m.repo}, so the release and the pack disagree at the source — ask the publisher to ${b}.`:`Name the tag whose manifest says ${p.version}, or fix the pack: ${b}.`))}let q=p.policies.map(a=>a.name),t=(h=p.id,i=p.artifactDigest,(k=(0,e.readInstalledPacks)().packs).find(a=>a.id===h)??k.find(a=>a.sha256===i)),{enabled:u,reason:v}=function(a,b,c,d){let e=a.map(a=>a.name);if(b?.all)return{enabled:null,reason:"all"};let f=new Set;if(b?.categories?.length){let c=new Set(b.categories.map(B)),d=new Map(a.map(a=>[B(a.category),a.category])),e=[...c].filter(a=>!d.has(a));if(e.length>0)throw Error(`no such categor${1===e.length?"y":"ies"}: ${e.join(", ")} (has: ${[...new Set(a.map(a=>B(a.category)))].join(", ")})`);for(let b of a)c.has(B(b.category))&&f.add(b.name)}if(b?.only?.length){let a=b.only.filter(a=>!e.includes(a));if(a.length>0)throw Error(`pack does not contain ${a.join(", ")}`);for(let a of b.only)f.add(a)}if(b?.only!==void 0||b?.categories?.length){if(b.merge&&d){if(null===c)return{enabled:null,reason:"carried"};for(let a of c??[])f.add(a);return{enabled:e.filter(a=>f.has(a)),reason:"added"}}return{enabled:e.filter(a=>f.has(a)),reason:"selected"}}return d?{enabled:null===c?null:c??null,reason:"carried"}:{enabled:a.filter(a=>a.defaultEnabled).map(a=>a.name),reason:"defaults"}}(p.policies,b,t?.enabled?t.enabled.filter(a=>q.includes(a)):t?.enabled,!!t),w=(0,e.packsRoot)(),y=`artifacts/${p.artifactDigest}.mjs`,z=(0,d.resolve)(w,y);(0,c.existsSync)(z)||x(z,p.artifact);try{await C(z,q)}catch(a){throw Error(`${p.id}@${p.version} was not installed: ${a instanceof Error?a.message:String(a)}`)}let D=a=>{let b=a.lastIndexOf("@");return b>a.indexOf(":")?a.slice(0,b):a};if(t&&t.id===p.id&&!t.source.startsWith("bundled:")&&D(t.source)!==D(s(m)))throw Error(`pack id ${p.id} is already installed from ${t.source}. Refusing to replace it with ${s(m)} — remove it first if that is what you mean.`);let E={id:p.id,version:p.version,source:s(m),entry:y,sha256:p.artifactDigest,policies:p.policies,...p.commit?{commit:p.commit}:{},...p.effect?{effect:p.effect}:{},...u?{enabled:u}:{},...b?.clis?{clis:b.clis}:b?.merge!==!1&&t?.clis?{clis:t.clis}:{}};return{replaced:function(a,b=!0){let f=(0,d.resolve)((0,e.packsRoot)(),"installed.json"),g=[];if((0,c.existsSync)(f))try{let a=JSON.parse((0,c.readFileSync)(f,"utf8"));Array.isArray(a.packs)&&(g=a.packs)}catch{throw Error(`existing pack manifest at ${f} is unreadable; move it aside and re-add`)}let h=g.filter(b=>b?.sha256===a.sha256&&b?.id!==a.id).map(a=>a.id);if(b&&!a.enabled){let b=g.find(a=>h.includes(a?.id)),c=b?.enabled?.filter(b=>a.policies?.some(a=>a?.name===b));c&&c.length>0&&(a.enabled=c)}let i=g.filter(a=>!h.includes(a?.id)),j=i.findIndex(b=>b?.id===a.id);return j>=0?i[j]=a:i.push(a),x(f,JSON.stringify({schemaVersion:1,packs:i},null,2)+"\n"),h}(E,"all"!==v),id:p.id,version:p.version,source:E.source,tag:m.tag,resolvedFromLatest:o,enabled:u??q,available:q,selection:v,categories:[...new Set(p.policies.map(a=>B(a.category)))],artifact:z}}function E(a){let b=a.trim(),c=b.lastIndexOf("@");return(c>0?b.slice(0,c):b).trim()}class F extends Error{candidates;constructor(a,b){super(`${b} matches ${a.length} installed packs: ${a.join(", ")}. Name one of them exactly.`),this.candidates=a,this.name="AmbiguousPackId"}}function G(a){return a instanceof Error?a.message:String(a)}a.s(["CORE_SOURCE",0,l,"PACK_CHECKSUMS_ASSET",0,h,"PACK_ENTRY_ASSET",0,g,"PACK_MANIFEST_ASSET",0,f,"addPack",0,D,"addPackFromSource",0,y,"fetchPackPreview",0,z,"removePack",0,function(a){let b,f=(0,d.resolve)((0,e.packsRoot)(),"installed.json");if(!(0,c.existsSync)(f))return null;try{b=JSON.parse((0,c.readFileSync)(f,"utf8"))}catch{return null}let g=Array.isArray(b.packs)?b.packs:[],h=g.find(b=>b?.id===E(a)),i=g.filter(b=>{var c;return b?.id&&(c=b.id,E(c).toLowerCase()===E(a).toLowerCase())});if(!h&&i.length>1)throw new F(i.map(a=>a.id).filter(a=>"string"==typeof a),a);let j=h??i[0],k=g.filter(a=>a!==j);return j&&k.length!==g.length?(x(f,JSON.stringify({schemaVersion:1,packs:k},null,2)+"\n"),j.id):null},"setPackPolicyEnabled",0,function(a,b,f){let g,h=(0,d.resolve)((0,e.packsRoot)(),"installed.json");if(!(0,c.existsSync)(h))return{ok:!1,reason:"no packs are installed"};try{g=JSON.parse((0,c.readFileSync)(h,"utf8"))}catch{return{ok:!1,reason:`pack manifest at ${h} is unreadable`}}let i=Array.isArray(g.packs)?g.packs:[],j=i.find(b=>b?.id===a);if(!j)return{ok:!1,reason:`no installed pack with id ${a}`};let k=(Array.isArray(j.policies)?j.policies:[]).map(a=>"string"==typeof a?.name?a.name:null).filter(a=>null!==a);if(!k.includes(b))return{ok:!1,reason:`pack ${a} declares no policy named ${b}`};let l=j.enabled??k,m=f?[...new Set([...l,b])]:l.filter(a=>a!==b);return j.enabled=k.filter(a=>m.includes(a)),x(h,JSON.stringify({schemaVersion:1,packs:i},null,2)+"\n"),{ok:!0}}])},1459,a=>{"use strict";a.i(1457);Symbol("failproofai.back"),Object.values({on:"✓ ON",off:"· OFF",mixed:"◐ MIXED",locked:"✓ LOCK",cloud:"✓ CLOUD",pack:"✓ PACK",failed:"▲ FAIL",observe:"◉ OBS"}).map(a=>a.length),a.s([])},91997,a=>{"use strict";let b=["SessionStart","SessionEnd","UserPromptSubmit","PreToolUse","PermissionRequest","PermissionDenied","PostToolUse","PostToolUseFailure","Notification","SubagentStart","SubagentStop","TaskCreated","TaskCompleted","Stop","StopFailure","TeammateIdle","InstructionsLoaded","ConfigChange","CwdChanged","FileChanged","WorktreeCreate","WorktreeRemove","PreCompact","PostCompact","Elicitation","ElicitationResult","UserPromptExpansion","PostToolBatch","Setup"].filter(a=>"WorktreeCreate"!==a);a.s(["ANTIGRAVITY_HOOK_EVENT_TYPES",0,["PreToolUse","PostToolUse","PreInvocation","Stop"],"ANTIGRAVITY_HOOK_SCOPES",0,["user","project"],"CLAUDE_INSTALL_EVENT_TYPES",0,b,"CODEX_EVENT_MAP",0,{session_start:"SessionStart",pre_tool_use:"PreToolUse",permission_request:"PermissionRequest",post_tool_use:"PostToolUse",user_prompt_submit:"UserPromptSubmit",stop:"Stop",subagent_start:"SubagentStart",pre_compact:"PreCompact",post_compact:"PostCompact",subagent_stop:"SubagentStop"},"CODEX_HOOK_EVENT_TYPES",0,["session_start","pre_tool_use","permission_request","post_tool_use","user_prompt_submit","stop","subagent_start","pre_compact","post_compact","subagent_stop"],"CODEX_HOOK_SCOPES",0,["user","project"],"COPILOT_HOOK_EVENT_TYPES",0,["SessionStart","SessionEnd","UserPromptSubmit","PreToolUse","PostToolUse","Stop","SubagentStop","PostToolUseFailure","ErrorOccurred","PreCompact","PermissionRequest","Notification"],"COPILOT_HOOK_SCOPES",0,["user","project"],"CURSOR_HOOK_EVENT_TYPES",0,["sessionStart","sessionEnd","beforeSubmitPrompt","preToolUse","postToolUse","stop","subagentStop"],"CURSOR_HOOK_SCOPES",0,["user","project"],"DEVIN_HOOK_EVENT_TYPES",0,["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","PermissionRequest","Stop","SessionEnd"],"DEVIN_HOOK_SCOPES",0,["user","project"],"FACTORY_HOOK_EVENT_TYPES",0,["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","Notification","Stop","SubagentStop","PreCompact","SessionEnd"],"FACTORY_HOOK_SCOPES",0,["user","project"],"FAILPROOFAI_HOOK_MARKER",0,"__failproofai_hook__","GOOSE_HOOK_EVENT_TYPES",0,["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","SessionEnd"],"GOOSE_HOOK_SCOPES",0,["user","project"],"HERMES_HOOK_EVENT_TYPES",0,["pre_tool_call","post_tool_call","on_session_start","on_session_end","subagent_stop"],"HERMES_HOOK_SCOPES",0,["user"],"HOOK_SCOPES",0,["user","project","local"],"INTEGRATION_TYPES",0,["claude","codex","copilot","cursor","opencode","pi","hermes","openclaw","factory","devin","antigravity","goose"],"OPENCLAW_HOOK_EVENT_TYPES",0,["before_tool_call","after_tool_call","before_agent_run","before_agent_finalize","session_start","session_end","subagent_ended","before_compaction"],"OPENCLAW_HOOK_SCOPES",0,["user"],"OPENCODE_HOOK_EVENT_TYPES",0,["tool.execute.before","tool.execute.after","session.created","session.deleted","session.idle","message.updated","permission.ask"],"OPENCODE_HOOK_SCOPES",0,["user","project"],"PI_HOOK_EVENT_TYPES",0,["session_start","session_shutdown","input","tool_call","user_bash","tool_result","agent_end"],"PI_HOOK_SCOPES",0,["user","project"]])}];
|
|
231
231
|
|
|
232
232
|
//# sourceMappingURL=_1es2j7i._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[21776,a=>{"use strict";var b=a.i(36359),c=a.i(7292);a.s([],84740),a.i(84740),a.s(["
|
|
1
|
+
module.exports=[21776,a=>{"use strict";var b=a.i(36359),c=a.i(7292);a.s([],84740),a.i(84740),a.s(["001139a640df70946c798e3e09d4dae96d5e9be36c",()=>b.getTelemetryConfig,"604274cf2520d92ced15f4e2c8ded45d484e5745fc",()=>c.searchHookActivityAction],21776)},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=_1u8-lu2._.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,"00ca6bd853e6e789f892eb7854c1e89a4c4ba33e45",null),a.s([],62946),a.i(62946),a.s(["001139a640df70946c798e3e09d4dae96d5e9be36c",()=>b.getTelemetryConfig,"00ca6bd853e6e789f892eb7854c1e89a4c4ba33e45",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,17 +1,18 @@
|
|
|
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,"0089603e270ccc765d9a40598c7dd8805df579f36d",null);var j=a.i(17280);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);class t extends Error{exitCode;constructor(a,b=1){super(a),this.name="CliError",this.exitCode=b}}a.i(89790);var u=a.i(9909),v=a.i(8284);a.i(1459);let w=new Set(r.BUILTIN_POLICIES.map(a=>a.name));function x(a,b){return q.claudeCode.getSettingsPath(a,b)}function y(a){let b=[],c=[],d=[],e=[];try{e=(0,u.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 t(`"${e}" is declared by ${a.length} installed packs.
|
|
2
2
|
Name the one you mean:
|
|
3
|
-
`+a.map(a=>` ${a.packId}:${a.name}`).join("\n"));if(
|
|
3
|
+
`+a.map(a=>` ${a.packId}:${a.name}`).join("\n"));if(w.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 t(`"${e}" is declared by ${i.length} installed packs.
|
|
4
4
|
Name the one you mean:
|
|
5
5
|
`+i.map(a=>` ${a.packId}:${a.name}`).join("\n"));d.push(e)}if(d.length>0){let a=e.flatMap(a=>a.policies.map(b=>`${a.id}:${b.name}`));throw new t(`Unknown policy name(s): ${d.join(", ")}
|
|
6
|
-
Valid policies: ${[...
|
|
7
|
-
From installed packs: ${a.join(", ")}`:""))}return{builtins:b,packs:c}}function
|
|
8
|
-
Use either: --install all or --install block-sudo sanitize-jwt ...`)}let
|
|
9
|
-
|
|
6
|
+
Valid policies: ${[...w].join(", ")}`+(a.length>0?`
|
|
7
|
+
From installed packs: ${a.join(", ")}`:""))}return{builtins:b,packs:c}}function z(a,b,c,d){if(0!==a.length){for(let c of a){let a=(0,j.setPackPolicyEnabled)(c.packId,c.name,b);if(!a.ok)throw new t(`Could not ${b?"enable":"disable"} ${c.name}: ${a.reason}`)}if(b){let b=(0,m.readScopedHooksConfig)(c,d),e=new Set(a.map(a=>a.disabledKey)),f=(b.disabledCustomPolicies??[]).filter(a=>!e.has(a));if(f.length!==(b.disabledCustomPolicies??[]).length){let a={...b,disabledCustomPolicies:f};0===f.length&&delete a.disabledCustomPolicies,(0,m.writeScopedHooksConfig)(a,c,d)}}for(let c of a)console.log(`${b?"Enabled":"Disabled"} ${c.name} from pack ${c.packId}@${c.packVersion}.`)}}function A(a,b){var c,d;return(c=a,d=b,p.INTEGRATION_TYPES.filter(a=>{try{let b=(0,q.getIntegration)(a);if(!b.scopes.includes(c)||!b.hooksInstalledInSettings(c,d))return!1;let e=b.getSettingsPath(c,d);return!p.HOOK_SCOPES.some(a=>a!==c&&p.HOOK_SCOPES.indexOf(a)<p.HOOK_SCOPES.indexOf(c)&&b.scopes.includes(a)&&function(a,b,c){try{return a.getSettingsPath(b,c)}catch{return null}}(b,a,d)===e)}catch{return!1}})).length>0}async function B(a,b="user",c,d=!1,e,f,g=!1,h,i={}){let{replace:j=!1,quiet:k=!1}=i;if(!k)return C(a,b,c,d,e,f,g,h,j);let l=console.log;console.log=()=>{};try{return await C(a,b,c,d,e,f,g,h,j)}finally{console.log=l}}async function C(a,b="user",c,d=!1,g,h,i=!1,B,D=!1){var E;let F,G;if(void 0!==a&&a.length>0){let d=a.filter(a=>"all"!==a),e=!1;if(d.length>0){let f=y(d);if(z(f.packs,!0,b,c),f.packs.length>0&&0===(a=a.filter(a=>"all"===a||f.builtins.includes(a))).length){if(!d.some(a=>w.has(a)))return;e=!0}}if(e)a=void 0;else if(a.includes("all")&&d.length>0)throw new t(`"all" cannot be combined with specific policy names.
|
|
8
|
+
Use either: --install all or --install block-sudo sanitize-jwt ...`)}let H=B&&B.length>0?[...new Set(B)]:["claude"],I=H.map(a=>({cliId:a,integration:(0,q.getIntegration)(a)}));for(let{cliId:a,integration:c}of I)if(!c.scopes.includes(b)){try{await (0,k.trackHookEvent)((0,l.getInstanceId)(),"scope_validation_failed",{cli:a,scope:b,supported_scopes:c.scopes})}catch{}throw new t(`Scope "${b}" is not supported by ${c.displayName}. Valid scopes: ${c.scopes.join(", ")}`)}let J=I.map(({integration:a})=>a).filter(a=>a.requiresHealthyDaemon);if(J.length>0&&!await (0,v.probeDaemonEndToEnd)()){let a=J.map(a=>a.displayName).join(", "),b=1===J.length?"requires":"require";throw new t(`${a} ${b} a healthy failproofaid daemon before FailproofAI enforcement can be enabled.
|
|
9
|
+
Run \`failproofai config\` to install and configure the daemon, then retry.`)}let K=function(){let a=process.env.FAILPROOFAI_BINARY_OVERRIDE;if(a&&a.trim())return a.trim();try{return(0,n.execSync)("which failproofai",{encoding:"utf8"}).trim().split("\n")[0].trim()}catch{throw new t("failproofai binary not found in PATH.\nInstall it globally first: npm install -g failproofai")}}(),L=(0,m.readScopedHooksConfig)(b,c),M=new Set(L.enabledPolicies);if(void 0!==a){let b;b=1===a.length&&"all"===a[0]?r.BUILTIN_POLICIES.filter(a=>d||!a.beta).map(a=>a.name):a,F=D?[...new Set(b)]:[...new Set([...L.enabledPolicies,...b])]}else F=L.enabledPolicies;let N={...L,enabledPolicies:F};if(i)delete N.customPoliciesPath,delete N.customPoliciesPaths;else if(h&&("string"==typeof h||h.length>0)){let a=("string"==typeof h?[h]:h).map(a=>(0,f.resolve)(a)),c=(L.customPoliciesPaths??(L.customPoliciesPath?[L.customPoliciesPath]:[])).map(a=>(0,f.resolve)(a)).filter(a=>!!(0,e.existsSync)(a)||(console.log(`Dropping custom policies path (file no longer exists): ${a}`),!1));for(let d of(N.customPoliciesPaths=D?[...new Set(a)]:[...new Set([...c,...a])],delete N.customPoliciesPath,a)){let a=[];try{a=await (0,s.loadCustomHooks)(d,{strict:!0})}catch(c){let a=c instanceof Error?c.message:String(c);try{await (0,k.trackHookEvent)((0,l.getInstanceId)(),"custom_policy_validation_failed",{scope:b,error_type:/not found/i.test(a)?"file_not_found":"load_error"})}catch{}console.error(`Error: ${a}`),process.exit(1)}if(0===a.length){try{await (0,k.trackHookEvent)((0,l.getInstanceId)(),"custom_policy_validation_failed",{scope:b,error_type:"no_hooks_registered"})}catch{}console.error(`Error: no hooks registered in ${d}. Make sure your file calls customPolicies.add(...) at least once.`),process.exit(1)}console.log(`
|
|
10
|
+
Validated ${a.length} custom hook(s) from ${d}: ${a.map(a=>a.name).join(", ")}`)}}(0,m.writeScopedHooksConfig)(N,b,c);let O=new Set(r.BUILTIN_POLICIES.filter(a=>a.alwaysOn).map(a=>a.name)),P=void 0===a?[]:F.filter(a=>!O.has(a));if(P.length>0)if((0,u.hasInstalledPacks)()){for(let a of P)for(let b of(0,u.readInstalledPacks)().packs)if(b.policies.some(b=>b.name===a)){(0,j.setPackPolicyEnabled)(b.id,a,!0);break}}else try{await (0,j.addPack)(j.CORE_SOURCE,{only:P})}catch(a){console.log(`
|
|
10
11
|
Warning: could not fetch the policy pack (${a instanceof Error?a.message:String(a)}).
|
|
11
|
-
Run \`failproofai policies add FailproofAI/policies\` once you are online.`)}if(void 0!==a&&
|
|
12
|
-
Enabled ${
|
|
13
|
-
`),i)console.log("Custom hooks path cleared.");else if(
|
|
14
|
-
This file can be committed to git — no machine-specific paths.`)):console.log(`Binary: ${
|
|
15
|
-
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=>z(a,c))){let{customPoliciesPath:a,customPoliciesPaths:b,policyParams:d,...e}=(0,m.readScopedHooksConfig)(f,c);(0,m.writeScopedHooksConfig)({...e,enabledPolicies:[]},f,c)}}}var D=a.i(24282),E=a.i(12714);async function F(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 G(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 G(a){if(!(0,e.existsSync)(a))return[];let b=await (0,E.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 H(){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=>z(a)),e=w(d[0]??"user"),g=(0,q.listIntegrations)().map(a=>({id:a.id,label:(0,D.getCliLabel)(a.id),installed:a.hooksInstalledInSettings("user"),settingsPath:a.getSettingsPath("user"),detected:a.detectInstalled()})),h=[],i=[];try{let a=(0,u.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 G(a)).map(b=>{let d=(0,s.customPolicyId)(a,b.name);return{...b,id:d,enabled:!c.has(d)}})}catch{return[]}}))).flat(),t=await F(c,new Set(o)),v=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)v.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:v}}async function I(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 J(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 K(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 L(){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 M(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 N(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,u.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 O(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}))}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function P(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 A(d,a,void 0,!1,"web",void 0,!1,f)}async function Q(a="user",b){let c=b&&b.length>0?b:(0,q.detectInstalledClis)(),d=c.length>0?c:["claude"];await C(void 0,a,void 0,{source:"web",cli:d})}async function R(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)([H]),(0,d.registerServerReference)(H,"00ef029721744d6f329eed42443ed3450e35f75b67",null),(0,h.ensureServerEntryExports)([I,J]),(0,d.registerServerReference)(I,"6036e9174d3eefe04571ad666ccf40944f7fd522ea",null),(0,d.registerServerReference)(J,"607d9cdb0b8fc60baa48ac252880ffbed1bb637c73",null),(0,h.ensureServerEntryExports)([K,L,M,N,O]),(0,d.registerServerReference)(K,"60a0229449033e52545f76faccaff7025309bef2f5",null),(0,d.registerServerReference)(L,"00a06c7017a64bd0db9aad067caf2b86b382606a11",null),(0,d.registerServerReference)(M,"40906ea77ce7511334150b81b17268c8c7aa47fd5b",null),(0,d.registerServerReference)(N,"7041fca661304e8bee753fe53d4e3ff6fcfbf92687",null),(0,d.registerServerReference)(O,"40b52c9f57a3769b9ccbe800f357b35a4b217e915d",null),(0,h.ensureServerEntryExports)([P,Q]),(0,d.registerServerReference)(P,"6031e0ad25096598f6a88dd50ccc45c3293546f5c8",null),(0,d.registerServerReference)(Q,"6079e88852ecb551e1b2c8bb951c4d879238f89523",null),(0,h.ensureServerEntryExports)([R]),(0,d.registerServerReference)(R,"60e54da9e5303bed1de93e660419fd3704c23a1da2",null),a.s([],96801),a.i(96801),a.s(["0063ba1faacd4a7cc66db2f7fccfcddfbe72075409",()=>b.getTelemetryConfig,"009b1afad4943362501b9b33f03e4a2770b4ca38e0",0,i,"00a06c7017a64bd0db9aad067caf2b86b382606a11",0,L,"00ef029721744d6f329eed42443ed3450e35f75b67",0,H,"40906ea77ce7511334150b81b17268c8c7aa47fd5b",0,M,"4092d6d3d1bf35aab569e969cccc4cedceff02cf22",()=>c.getHookActivityAction,"40b52c9f57a3769b9ccbe800f357b35a4b217e915d",0,O,"6031e0ad25096598f6a88dd50ccc45c3293546f5c8",0,P,"6079e88852ecb551e1b2c8bb951c4d879238f89523",0,Q,"607d9cdb0b8fc60baa48ac252880ffbed1bb637c73",0,J,"60919da84d588b64e3316bc6c331b436bf613d0424",()=>c.searchHookActivityAction,"60a0229449033e52545f76faccaff7025309bef2f5",0,K,"60e54da9e5303bed1de93e660419fd3704c23a1da2",0,R,"7041fca661304e8bee753fe53d4e3ff6fcfbf92687",0,N],73338)}];
|
|
12
|
+
Run \`failproofai policies add FailproofAI/policies\` once you are online.`)}if(void 0!==a&&F.length>0&&console.log(`
|
|
13
|
+
Enabled ${F.length} policy(ies): ${F.join(", ")}
|
|
14
|
+
`),i)console.log("Custom hooks path cleared.");else if(N.customPoliciesPaths?.length||N.customPoliciesPath){let a=N.customPoliciesPaths??[N.customPoliciesPath];console.log(`Custom hooks paths: ${a.join(", ")}`)}let Q=[];for(let a of H){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,K,b),d.writeSettings(c,e),Q.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(F),c=F.filter(a=>!M.has(a)),e=[...M].filter(b=>!a.has(b)),f=(0,l.getInstanceId)();if(await (0,k.trackHookEvent)(f,"hooks_installed",{scope:b,cli:H,cli_count:H.length,policies:F,policy_count:F.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:!!(N.customPoliciesPaths?.length||N.customPoliciesPath),has_policy_params:!!(N.policyParams&&Object.keys(N.policyParams).length>0),param_policy_names:N.policyParams?Object.keys(N.policyParams):[],command_format:"project"===b?"npx":"absolute"}),d){let a=new Set(r.BUILTIN_POLICIES.filter(a=>a.beta).map(a=>a.name)),c=F.filter(b=>a.has(b));c.length>0&&await (0,k.trackHookEvent)(f,"beta_policies_installed",{scope:b,cli:H,beta_count:c.length,beta_policy_names:c,...g?{source:g}:{}})}}catch{}for(let{cli:a,path:c}of Q){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
|
+
This file can be committed to git — no machine-specific paths.`)):console.log(`Binary: ${K}`);let R=(E=p.HOOK_SCOPES,G=new Set,E.filter(a=>{let b=x(a,c);return!G.has(b)&&(G.add(b),!0)})).filter(a=>a!==b).filter(a=>A(a,c));if(R.length>0){let a=R.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 ${R[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:R,cli:H})}catch{}}}async function D(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=y(a);z(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 t(`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=>A(a,c))){let{customPoliciesPath:a,customPoliciesPaths:b,policyParams:d,...e}=(0,m.readScopedHooksConfig)(f,c);(0,m.writeScopedHooksConfig)({...e,enabledPolicies:[]},f,c)}}}var E=a.i(24282),F=a.i(12714);async function G(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 H(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 H(a){if(!(0,e.existsSync)(a))return[];let b=await (0,F.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 I(){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=>A(a)),e=x(d[0]??"user"),g=(0,q.listIntegrations)().map(a=>({id:a.id,label:(0,E.getCliLabel)(a.id),installed:a.hooksInstalledInSettings("user"),settingsPath:a.getSettingsPath("user"),detected:a.detectInstalled()})),h=[],i=[];try{let a=(0,u.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 H(a)).map(b=>{let d=(0,s.customPolicyId)(a,b.name);return{...b,id:d,enabled:!c.has(d)}})}catch{return[]}}))).flat(),t=await G(c,new Set(o)),v=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)v.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:v}}async function J(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 K(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 L(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 M(){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 N(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 O(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,u.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 P(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}))}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function Q(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 B(d,a,void 0,!1,"web",void 0,!1,f)}async function R(a="user",b){let c=b&&b.length>0?b:(0,q.detectInstalledClis)(),d=c.length>0?c:["claude"];await D(void 0,a,void 0,{source:"web",cli:d})}async function S(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)([I]),(0,d.registerServerReference)(I,"002fb0542ce347b773cc0e0a9b40334d472d7f48ba",null),(0,h.ensureServerEntryExports)([J,K]),(0,d.registerServerReference)(J,"6072b67ffe2d79ad2435cb4db78192f31a02d20d23",null),(0,d.registerServerReference)(K,"60c2d2c0cc6517407f8d43fde660ce7ad87ea551a8",null),(0,h.ensureServerEntryExports)([L,M,N,O,P]),(0,d.registerServerReference)(L,"600301b3e5ec965416658463875e0221c64988c0c6",null),(0,d.registerServerReference)(M,"00da3aaa1f28412a39b8af3929b4a888208be2e67d",null),(0,d.registerServerReference)(N,"4063ef2d71433bff84681cdd9fb708dde3b8bc5001",null),(0,d.registerServerReference)(O,"702d205655642f0899ca80e9a2f8fea3f056e8f393",null),(0,d.registerServerReference)(P,"4064280246c6d1275d147d60a36b91141d86657464",null),(0,h.ensureServerEntryExports)([Q,R]),(0,d.registerServerReference)(Q,"605a7434af83cde3855330dd35d3d412055c372e36",null),(0,d.registerServerReference)(R,"60786ba6f193b3e5e06d62ab92d101d41265e350f7",null),(0,h.ensureServerEntryExports)([S]),(0,d.registerServerReference)(S,"60ead58d43a260fcd0f76fc0fc87f7ae355e7768fd",null),a.s([],96801),a.i(96801),a.s(["001139a640df70946c798e3e09d4dae96d5e9be36c",()=>b.getTelemetryConfig,"002fb0542ce347b773cc0e0a9b40334d472d7f48ba",0,I,"0089603e270ccc765d9a40598c7dd8805df579f36d",0,i,"00da3aaa1f28412a39b8af3929b4a888208be2e67d",0,M,"4063ef2d71433bff84681cdd9fb708dde3b8bc5001",0,N,"4064280246c6d1275d147d60a36b91141d86657464",0,P,"4093265e7eb79cdf55c6f5ceda0908a48451c3a0a4",()=>c.getHookActivityAction,"600301b3e5ec965416658463875e0221c64988c0c6",0,L,"604274cf2520d92ced15f4e2c8ded45d484e5745fc",()=>c.searchHookActivityAction,"605a7434af83cde3855330dd35d3d412055c372e36",0,Q,"60786ba6f193b3e5e06d62ab92d101d41265e350f7",0,R,"60c2d2c0cc6517407f8d43fde660ce7ad87ea551a8",0,K,"60ead58d43a260fcd0f76fc0fc87f7ae355e7768fd",0,S,"702d205655642f0899ca80e9a2f8fea3f056e8f393",0,O],73338)}];
|
|
16
17
|
|
|
17
18
|
//# sourceMappingURL=_next-internal_server_app_policies_page_actions_1sp2-yo.js.map
|