failproofai 1.0.2-beta.8 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/prerender-manifest.json +4 -4
  4. package/.next/standalone/.next/required-server-files.json +1 -1
  5. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  10. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +6 -6
  11. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  12. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  14. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.rsc +14 -14
  18. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
  19. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +13 -13
  20. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  21. package/.next/standalone/.next/server/app/api/audit/invite/route.js +3 -2
  22. package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
  23. package/.next/standalone/.next/server/app/api/audit/run/route.js +4 -3
  24. package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/audit/status/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/auth/login-request/route.js +2 -2
  27. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js +4 -3
  29. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/auth/logout/route.js +4 -4
  31. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/auth/status/route.js +4 -4
  33. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
  36. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/index.html +1 -1
  39. package/.next/standalone/.next/server/app/index.rsc +14 -14
  40. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +13 -13
  41. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +14 -14
  42. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  43. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  44. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +14 -14
  47. package/.next/standalone/.next/server/app/policies/page.js +4 -4
  48. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  51. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  54. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  55. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  58. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +4 -4
  61. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  62. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/chunks/[externals]__0-9ti7z._.js +3 -0
  64. package/.next/standalone/.next/server/chunks/{[externals]__1lt47k4._.js → [externals]__0sg9-3p._.js} +1 -1
  65. package/.next/standalone/.next/server/chunks/[externals]__0u3wrvq._.js +3 -0
  66. package/.next/standalone/.next/server/chunks/[root-of-the-server]__01eqny5._.js +3 -0
  67. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__1p8poxd._.js → [root-of-the-server]__0igxt32._.js} +2 -2
  68. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o07qi9._.js +1 -1
  69. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0zlqo2t._.js +3 -0
  70. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1anxb5k._.js +3 -0
  71. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1le9jqc._.js +1 -1
  72. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1p-qi2t._.js +5 -0
  73. package/.next/standalone/.next/server/chunks/_09dz7xv._.js +27 -0
  74. package/.next/standalone/.next/server/chunks/_0bs-v8p._.js +3 -0
  75. package/.next/standalone/.next/server/chunks/_0tovk6q._.js +3 -0
  76. package/.next/standalone/.next/server/chunks/_0trp3yc._.js +3 -0
  77. package/.next/standalone/.next/server/chunks/{_19uwam-._.js → _1-akg6w._.js} +2 -2
  78. package/.next/standalone/.next/server/chunks/_185gyk9._.js +3 -0
  79. package/.next/standalone/.next/server/chunks/_1ek68ln._.js +5 -7
  80. package/.next/standalone/.next/server/chunks/{node_modules_posthog-node_dist_entrypoints_index_node_mjs_09d5c79._.js → node_modules_posthog-node_dist_entrypoints_index_node_mjs_04op_ou._.js} +1 -1
  81. package/.next/standalone/.next/server/chunks/{node_modules_posthog-node_dist_entrypoints_index_node_mjs_1d2g73o._.js → node_modules_posthog-node_dist_entrypoints_index_node_mjs_0dr20uz._.js} +1 -1
  82. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
  83. package/.next/standalone/.next/server/chunks/src_hooks_0iu54mz._.js +3 -0
  84. package/.next/standalone/.next/server/chunks/src_hooks_custom-hooks-loader_ts_0lnb3n3._.js +10 -0
  85. package/.next/standalone/.next/server/chunks/src_hooks_fp-home_ts_09kv0bn._.js +1 -1
  86. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__013jr2b._.js +2 -2
  87. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01wy8d-._.js +2 -2
  88. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02npjtd._.js +2 -2
  89. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0da85px._.js +2 -2
  90. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ftmoxc._.js +2 -2
  91. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0n_lxhg._.js +5 -0
  92. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0oa1lav._.js +1 -1
  93. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0p-5p8u._.js +2 -2
  94. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s740oi._.js +2 -2
  95. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1p2otjt._.js +2 -2
  96. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1yh7hlv._.js +3 -0
  97. package/.next/standalone/.next/server/chunks/ssr/_08x1r5t._.js +1 -1
  98. package/.next/standalone/.next/server/chunks/ssr/_0ehudfr._.js +23 -0
  99. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1n2ywfz._.js → _1es2j7i._.js} +4 -4
  100. package/.next/standalone/.next/server/chunks/ssr/_1u8-lu2._.js +1 -1
  101. package/.next/standalone/.next/server/chunks/ssr/{_1h33neq._.js → _1un1pug._.js} +1 -1
  102. package/.next/standalone/.next/server/chunks/ssr/_1zopuov._.js +1 -1
  103. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_policies_page_actions_1sp2-yo.js +9 -9
  104. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +1 -1
  105. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
  106. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +2 -2
  107. package/.next/standalone/.next/server/chunks/ssr/app_settings_settings-client_tsx_20lq-mq._.js +1 -1
  108. package/.next/standalone/.next/server/chunks/ssr/src_hooks_1cv9_c4._.js +10 -0
  109. package/.next/standalone/.next/server/chunks/ssr/src_hooks_builtin-policies_ts_09j2ndl._.js +1 -1
  110. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  111. package/.next/standalone/.next/server/middleware.js +1 -1
  112. package/.next/standalone/.next/server/pages/404.html +1 -1
  113. package/.next/standalone/.next/server/pages/500.html +1 -1
  114. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/server-reference-manifest.json +19 -19
  116. package/.next/standalone/.next/static/chunks/0nkpwjk01ei3t.js +1 -0
  117. package/.next/standalone/.next/static/chunks/{2iryw37qfqy5y.js → 0ofdelz65_517.js} +1 -1
  118. package/.next/standalone/.next/static/chunks/{34j7nmidlcuni.js → 12uhnpwgsmcev.js} +1 -1
  119. package/.next/standalone/.next/static/chunks/{0i3a6wf-f_yky.js → 1_1eb_149xyt9.js} +1 -1
  120. package/.next/standalone/.next/static/chunks/{3927pu4ss_l4k.js → 1tx9pnxyjrkoj.js} +1 -1
  121. package/.next/standalone/.next/static/chunks/{1n04wzsaes73g.js → 1x0jrl3a4_i2m.js} +1 -1
  122. package/.next/standalone/.next/static/chunks/{3r0udrtpn78-e.js → 1zpv6omeln7al.js} +1 -1
  123. package/.next/standalone/.next/static/chunks/{416zumre3fvfw.js → 20hbg-r3io_ip.js} +1 -1
  124. package/.next/standalone/.next/static/chunks/{11a_m8yksthtf.js → 32bhi32ym8yrz.js} +2 -2
  125. package/.next/standalone/.next/static/chunks/{0u2ojcw25c_np.js → 3fr78ugeb4tjc.js} +1 -1
  126. package/.next/standalone/app/actions/get-hooks-config.ts +8 -1
  127. package/.next/standalone/app/actions/pack-actions.ts +12 -1
  128. package/.next/standalone/app/policies/hooks-client.tsx +41 -4
  129. package/.next/standalone/fp-cloud-cli/tests/test_pagination.py +204 -0
  130. package/.next/standalone/package.json +9 -9
  131. package/.next/standalone/server.js +1 -1
  132. package/README.md +58 -13
  133. package/bin/failproofai.mjs +10 -1
  134. package/dist/cli.mjs +22429 -21292
  135. package/dist/worker.mjs +1247 -540
  136. package/package.json +9 -9
  137. package/src/audit/index.ts +24 -4
  138. package/src/hooks/builtin-policies.ts +933 -8
  139. package/src/hooks/custom-hooks-loader.ts +98 -8
  140. package/src/hooks/handler.ts +26 -14
  141. package/src/hooks/manager.ts +36 -2
  142. package/src/hooks/pack-cli.ts +415 -42
  143. package/src/hooks/pack-failclosed.ts +100 -4
  144. package/src/hooks/pack-manifest.ts +29 -0
  145. package/src/hooks/pack-param-key.ts +36 -0
  146. package/src/hooks/pack-store.ts +101 -9
  147. package/src/hooks/policy-catalog.ts +9 -1
  148. package/src/hooks/policy-evaluator.ts +77 -1
  149. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06cuf1y._.js +0 -3
  150. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_usx0j._.js +0 -3
  151. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_zk340._.js +0 -3
  152. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jnjf2t._.js +0 -3
  153. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0oy4kxb._.js +0 -3
  154. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0zf034w._.js +0 -3
  155. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1tg4pu6._.js +0 -3
  156. package/.next/standalone/.next/server/chunks/_0lxbzdq._.js +0 -3
  157. package/.next/standalone/.next/server/chunks/_1zuiiy3._.js +0 -3
  158. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0mgrjnx._.js +0 -10
  159. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1-wzs7f._.js +0 -3
  160. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1wlvpe5._.js +0 -5
  161. package/.next/standalone/.next/server/chunks/ssr/_0l7zv8b._.js +0 -23
  162. package/.next/standalone/.next/static/chunks/1ch5l9t2p16y4.js +0 -1
  163. /package/.next/standalone/.next/static/{NgD5HvuyPxwgrpeIiafJL → 5-xDMxcnrcXDFPQiy3yhg}/_buildManifest.js +0 -0
  164. /package/.next/standalone/.next/static/{NgD5HvuyPxwgrpeIiafJL → 5-xDMxcnrcXDFPQiy3yhg}/_clientMiddlewareManifest.js +0 -0
  165. /package/.next/standalone/.next/static/{NgD5HvuyPxwgrpeIiafJL → 5-xDMxcnrcXDFPQiy3yhg}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- module.exports=[5365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},27267,(a,b,c)=>{"use strict";let d=Symbol.for("yaml.alias"),e=Symbol.for("yaml.document"),f=Symbol.for("yaml.map"),g=Symbol.for("yaml.pair"),h=Symbol.for("yaml.scalar"),i=Symbol.for("yaml.seq"),j=Symbol.for("yaml.node.type"),k=a=>!!a&&"object"==typeof a&&a[j]===h;function l(a){if(a&&"object"==typeof a)switch(a[j]){case f:case i:return!0}return!1}c.ALIAS=d,c.DOC=e,c.MAP=f,c.NODE_TYPE=j,c.PAIR=g,c.SCALAR=h,c.SEQ=i,c.hasAnchor=a=>(k(a)||l(a))&&!!a.anchor,c.isAlias=a=>!!a&&"object"==typeof a&&a[j]===d,c.isCollection=l,c.isDocument=a=>!!a&&"object"==typeof a&&a[j]===e,c.isMap=a=>!!a&&"object"==typeof a&&a[j]===f,c.isNode=function(a){if(a&&"object"==typeof a)switch(a[j]){case d:case f:case h:case i:return!0}return!1},c.isPair=a=>!!a&&"object"==typeof a&&a[j]===g,c.isScalar=k,c.isSeq=a=>!!a&&"object"==typeof a&&a[j]===i},85927,(a,b,c)=>{"use strict";var d=a.r(27267);let e=Symbol("break visit"),f=Symbol("skip children"),g=Symbol("remove node");function h(a,b){let c=l(b);d.isDocument(a)?i(null,a.contents,c,Object.freeze([a]))===g&&(a.contents=null):i(null,a,c,Object.freeze([]))}function i(a,b,c,f){let h=m(a,b,c,f);if(d.isNode(h)||d.isPair(h))return n(a,f,h),i(a,h,c,f);if("symbol"!=typeof h){if(d.isCollection(b)){f=Object.freeze(f.concat(b));for(let a=0;a<b.items.length;++a){let d=i(a,b.items[a],c,f);if("number"==typeof d)a=d-1;else{if(d===e)return e;d===g&&(b.items.splice(a,1),a-=1)}}}else if(d.isPair(b)){f=Object.freeze(f.concat(b));let a=i("key",b.key,c,f);if(a===e)return e;a===g&&(b.key=null);let d=i("value",b.value,c,f);if(d===e)return e;d===g&&(b.value=null)}}return h}async function j(a,b){let c=l(b);d.isDocument(a)?await k(null,a.contents,c,Object.freeze([a]))===g&&(a.contents=null):await k(null,a,c,Object.freeze([]))}async function k(a,b,c,f){let h=await m(a,b,c,f);if(d.isNode(h)||d.isPair(h))return n(a,f,h),k(a,h,c,f);if("symbol"!=typeof h){if(d.isCollection(b)){f=Object.freeze(f.concat(b));for(let a=0;a<b.items.length;++a){let d=await k(a,b.items[a],c,f);if("number"==typeof d)a=d-1;else{if(d===e)return e;d===g&&(b.items.splice(a,1),a-=1)}}}else if(d.isPair(b)){f=Object.freeze(f.concat(b));let a=await k("key",b.key,c,f);if(a===e)return e;a===g&&(b.key=null);let d=await k("value",b.value,c,f);if(d===e)return e;d===g&&(b.value=null)}}return h}function l(a){return"object"==typeof a&&(a.Collection||a.Node||a.Value)?Object.assign({Alias:a.Node,Map:a.Node,Scalar:a.Node,Seq:a.Node},a.Value&&{Map:a.Value,Scalar:a.Value,Seq:a.Value},a.Collection&&{Map:a.Collection,Seq:a.Collection},a):a}function m(a,b,c,e){return"function"==typeof c?c(a,b,e):d.isMap(b)?c.Map?.(a,b,e):d.isSeq(b)?c.Seq?.(a,b,e):d.isPair(b)?c.Pair?.(a,b,e):d.isScalar(b)?c.Scalar?.(a,b,e):d.isAlias(b)?c.Alias?.(a,b,e):void 0}function n(a,b,c){let e=b[b.length-1];if(d.isCollection(e))e.items[a]=c;else if(d.isPair(e))"key"===a?e.key=c:e.value=c;else if(d.isDocument(e))e.contents=c;else{let a=d.isAlias(e)?"alias":"scalar";throw Error(`Cannot replace node with ${a} parent`)}}h.BREAK=e,h.SKIP=f,h.REMOVE=g,j.BREAK=e,j.SKIP=f,j.REMOVE=g,c.visit=h,c.visitAsync=j},74957,(a,b,c)=>{"use strict";var d=a.r(27267),e=a.r(85927);let f={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},g=a=>a.replace(/[!,[\]{}]/g,a=>f[a]);class h{constructor(a,b){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},h.defaultYaml,a),this.tags=Object.assign({},h.defaultTags,b)}clone(){let a=new h(this.yaml,this.tags);return a.docStart=this.docStart,a}atDocument(){let a=new h(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:h.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},h.defaultTags)}return a}add(a,b){this.atNextDocument&&(this.yaml={explicit:h.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},h.defaultTags),this.atNextDocument=!1);let c=a.trim().split(/[ \t]+/),d=c.shift();switch(d){case"%TAG":{if(2!==c.length&&(b(0,"%TAG directive should contain exactly two parts"),c.length<2))return!1;let[a,d]=c;return this.tags[a]=d,!0}case"%YAML":{if(this.yaml.explicit=!0,1!==c.length)return b(0,"%YAML directive should contain exactly one part"),!1;let[a]=c;if("1.1"===a||"1.2"===a)return this.yaml.version=a,!0;{let c=/^\d+\.\d+$/.test(a);return b(6,`Unsupported YAML version ${a}`,c),!1}}default:return b(0,`Unknown directive ${d}`,!0),!1}}tagName(a,b){if("!"===a)return"!";if("!"!==a[0])return b(`Not a valid tag: ${a}`),null;if("<"===a[1]){let c=a.slice(2,-1);return"!"===c||"!!"===c?(b(`Verbatim tags aren't resolved, so ${a} is invalid.`),null):(">"!==a[a.length-1]&&b("Verbatim tags must end with a >"),c)}let[,c,d]=a.match(/^(.*!)([^!]*)$/s);d||b(`The ${a} tag has no suffix`);let e=this.tags[c];if(e)try{return e+decodeURIComponent(d)}catch(a){return b(String(a)),null}return"!"===c?a:(b(`Could not resolve tag: ${a}`),null)}tagString(a){for(let[b,c]of Object.entries(this.tags))if(a.startsWith(c))return b+g(a.substring(c.length));return"!"===a[0]?a:`!<${a}>`}toString(a){let b,c=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],f=Object.entries(this.tags);if(a&&f.length>0&&d.isNode(a.contents)){let c={};e.visit(a.contents,(a,b)=>{d.isNode(b)&&b.tag&&(c[b.tag]=!0)}),b=Object.keys(c)}else b=[];for(let[d,e]of f)("!!"!==d||"tag:yaml.org,2002:"!==e)&&(!a||b.some(a=>a.startsWith(e)))&&c.push(`%TAG ${d} ${e}`);return c.join("\n")}}h.defaultYaml={explicit:!1,version:"1.2"},h.defaultTags={"!!":"tag:yaml.org,2002:"},c.Directives=h},10937,(a,b,c)=>{"use strict";var d=a.r(27267),e=a.r(85927);function f(a){let b=new Set;return e.visit(a,{Value(a,c){c.anchor&&b.add(c.anchor)}}),b}function g(a,b){for(let c=1;;++c){let d=`${a}${c}`;if(!b.has(d))return d}}c.anchorIsValid=function(a){if(/[\x00-\x19\s,[\]{}]/.test(a)){let b=JSON.stringify(a);throw Error(`Anchor must not contain whitespace or control characters: ${b}`)}return!0},c.anchorNames=f,c.createNodeAnchors=function(a,b){let c=[],e=new Map,h=null;return{onAnchor:d=>{c.push(d),h??(h=f(a));let e=g(b,h);return h.add(e),e},setAnchors:()=>{for(let a of c){let b=e.get(a);if("object"==typeof b&&b.anchor&&(d.isScalar(b.node)||d.isCollection(b.node)))b.node.anchor=b.anchor;else{let b=Error("Failed to resolve repeated object (this should not happen)");throw b.source=a,b}}},sourceObjects:e}},c.findNewAnchor=g},59588,(a,b,c)=>{"use strict";c.applyReviver=function a(b,c,d,e){if(e&&"object"==typeof e)if(Array.isArray(e))for(let c=0,d=e.length;c<d;++c){let d=e[c],f=a(b,e,String(c),d);void 0===f?delete e[c]:f!==d&&(e[c]=f)}else if(e instanceof Map)for(let c of Array.from(e.keys())){let d=e.get(c),f=a(b,e,c,d);void 0===f?e.delete(c):f!==d&&e.set(c,f)}else if(e instanceof Set)for(let c of Array.from(e)){let d=a(b,e,c,c);void 0===d?e.delete(c):d!==c&&(e.delete(c),e.add(d))}else for(let[c,d]of Object.entries(e)){let f=a(b,e,c,d);void 0===f?delete e[c]:f!==d&&(e[c]=f)}return b.call(c,d,e)}},94,(a,b,c)=>{"use strict";var d=a.r(27267);c.toJS=function a(b,c,e){if(Array.isArray(b))return b.map((b,c)=>a(b,String(c),e));if(b&&"function"==typeof b.toJSON){if(!e||!d.hasAnchor(b))return b.toJSON(c,e);let a={aliasCount:0,count:1,res:void 0};e.anchors.set(b,a),e.onCreate=b=>{a.res=b,delete e.onCreate};let f=b.toJSON(c,e);return e.onCreate&&e.onCreate(f),f}return"bigint"!=typeof b||e?.keep?b:Number(b)}},25154,(a,b,c)=>{"use strict";var d=a.r(59588),e=a.r(27267),f=a.r(94);c.NodeBase=class{constructor(a){Object.defineProperty(this,e.NODE_TYPE,{value:a})}clone(){let a=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(a.range=this.range.slice()),a}toJS(a,{mapAsMap:b,maxAliasCount:c,onAnchor:g,reviver:h}={}){if(!e.isDocument(a))throw TypeError("A document argument is required");let i={anchors:new Map,doc:a,keep:!0,mapAsMap:!0===b,mapKeyWarned:!1,maxAliasCount:"number"==typeof c?c:100},j=f.toJS(this,"",i);if("function"==typeof g)for(let{count:a,res:b}of i.anchors.values())g(b,a);return"function"==typeof h?d.applyReviver(h,{"":j},"",j):j}}},21562,(a,b,c)=>{"use strict";var d=a.r(10937),e=a.r(85927),f=a.r(27267),g=a.r(25154),h=a.r(94);class i extends g.NodeBase{constructor(a){super(f.ALIAS),this.source=a,Object.defineProperty(this,"tag",{set(){throw Error("Alias nodes cannot have tags")}})}resolve(a,b){let c,d;if(b?.maxAliasCount===0)throw ReferenceError("Alias resolution is disabled");for(let g of(b?.aliasResolveCache?c=b.aliasResolveCache:(c=[],e.visit(a,{Node:(a,b)=>{(f.isAlias(b)||f.hasAnchor(b))&&c.push(b)}}),b&&(b.aliasResolveCache=c)),c)){if(g===this)break;g.anchor===this.source&&(d=g)}return d}toJSON(a,b){if(!b)return{source:this.source};let{anchors:c,doc:d,maxAliasCount:e}=b,g=this.resolve(d,b);if(!g)throw ReferenceError(`Unresolved alias (the anchor must be set before the alias): ${this.source}`);let i=c.get(g);if(i||(h.toJS(g,null,b),i=c.get(g)),i?.res===void 0)throw ReferenceError("This should not happen: Alias anchor was not resolved?");if(e>=0&&(i.count+=1,0===i.aliasCount&&(i.aliasCount=function a(b,c,d){if(f.isAlias(c)){let a=c.resolve(b),e=d&&a&&d.get(a);return e?e.count*e.aliasCount:0}if(f.isCollection(c)){let e=0;for(let f of c.items){let c=a(b,f,d);c>e&&(e=c)}return e}return f.isPair(c)?Math.max(a(b,c.key,d),a(b,c.value,d)):1}(d,g,c)),i.count*i.aliasCount>e))throw ReferenceError("Excessive alias count indicates a resource exhaustion attack");return i.res}toString(a,b,c){let e=`*${this.source}`;if(a){if(d.anchorIsValid(this.source),a.options.verifyAliasOrder&&!a.anchors.has(this.source))throw Error(`Unresolved alias (the anchor must be set before the alias): ${this.source}`);if(a.implicitKey)return`${e} `}return e}}c.Alias=i},27853,(a,b,c)=>{"use strict";var d=a.r(27267),e=a.r(25154),f=a.r(94);class g extends e.NodeBase{constructor(a){super(d.SCALAR),this.value=a}toJSON(a,b){return b?.keep?this.value:f.toJS(this.value,a,b)}toString(){return String(this.value)}}g.BLOCK_FOLDED="BLOCK_FOLDED",g.BLOCK_LITERAL="BLOCK_LITERAL",g.PLAIN="PLAIN",g.QUOTE_DOUBLE="QUOTE_DOUBLE",g.QUOTE_SINGLE="QUOTE_SINGLE",c.Scalar=g,c.isScalarValue=a=>!a||"function"!=typeof a&&"object"!=typeof a},10882,(a,b,c)=>{"use strict";var d=a.r(21562),e=a.r(27267),f=a.r(27853);c.createNode=function(a,b,c){let g;if(e.isDocument(a)&&(a=a.contents),e.isNode(a))return a;if(e.isPair(a)){let b=c.schema[e.MAP].createNode?.(c.schema,null,c);return b.items.push(a),b}(a instanceof String||a instanceof Number||a instanceof Boolean||"u">typeof BigInt&&a instanceof BigInt)&&(a=a.valueOf());let{aliasDuplicateObjects:h,onAnchor:i,onTagObj:j,schema:k,sourceObjects:l}=c;if(h&&a&&"object"==typeof a){if(g=l.get(a))return g.anchor??(g.anchor=i(a)),new d.Alias(g.anchor);g={anchor:null,node:null},l.set(a,g)}b?.startsWith("!!")&&(b="tag:yaml.org,2002:"+b.slice(2));let m=function(a,b,c){if(b){let a=c.filter(a=>a.tag===b),d=a.find(a=>!a.format)??a[0];if(!d)throw Error(`Tag ${b} not found`);return d}return c.find(b=>b.identify?.(a)&&!b.format)}(a,b,k.tags);if(!m){if(a&&"function"==typeof a.toJSON&&(a=a.toJSON()),!a||"object"!=typeof a){let b=new f.Scalar(a);return g&&(g.node=b),b}m=a instanceof Map?k[e.MAP]:Symbol.iterator in Object(a)?k[e.SEQ]:k[e.MAP]}j&&(j(m),delete c.onTagObj);let n=m?.createNode?m.createNode(c.schema,a,c):"function"==typeof m?.nodeClass?.from?m.nodeClass.from(c.schema,a,c):new f.Scalar(a);return b?n.tag=b:m.default||(n.tag=m.tag),g&&(g.node=n),n}},35249,(a,b,c)=>{"use strict";var d=a.r(10882),e=a.r(27267),f=a.r(25154);function g(a,b,c){let e=c;for(let a=b.length-1;a>=0;--a){let c=b[a];if("number"==typeof c&&Number.isInteger(c)&&c>=0){let a=[];a[c]=e,e=a}else e=new Map([[c,e]])}return d.createNode(e,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error("This should not happen, please report a bug.")},schema:a,sourceObjects:new Map})}let h=a=>null==a||"object"==typeof a&&!!a[Symbol.iterator]().next().done;class i extends f.NodeBase{constructor(a,b){super(a),Object.defineProperty(this,"schema",{value:b,configurable:!0,enumerable:!1,writable:!0})}clone(a){let b=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return a&&(b.schema=a),b.items=b.items.map(b=>e.isNode(b)||e.isPair(b)?b.clone(a):b),this.range&&(b.range=this.range.slice()),b}addIn(a,b){if(h(a))this.add(b);else{let[c,...d]=a,f=this.get(c,!0);if(e.isCollection(f))f.addIn(d,b);else if(void 0===f&&this.schema)this.set(c,g(this.schema,d,b));else throw Error(`Expected YAML collection at ${c}. Remaining path: ${d}`)}}deleteIn(a){let[b,...c]=a;if(0===c.length)return this.delete(b);let d=this.get(b,!0);if(e.isCollection(d))return d.deleteIn(c);throw Error(`Expected YAML collection at ${b}. Remaining path: ${c}`)}getIn(a,b){let[c,...d]=a,f=this.get(c,!0);return 0===d.length?!b&&e.isScalar(f)?f.value:f:e.isCollection(f)?f.getIn(d,b):void 0}hasAllNullValues(a){return this.items.every(b=>{if(!e.isPair(b))return!1;let c=b.value;return null==c||a&&e.isScalar(c)&&null==c.value&&!c.commentBefore&&!c.comment&&!c.tag})}hasIn(a){let[b,...c]=a;if(0===c.length)return this.has(b);let d=this.get(b,!0);return!!e.isCollection(d)&&d.hasIn(c)}setIn(a,b){let[c,...d]=a;if(0===d.length)this.set(c,b);else{let a=this.get(c,!0);if(e.isCollection(a))a.setIn(d,b);else if(void 0===a&&this.schema)this.set(c,g(this.schema,d,b));else throw Error(`Expected YAML collection at ${c}. Remaining path: ${d}`)}}}c.Collection=i,c.collectionFromPath=g,c.isEmptyPath=h},53074,(a,b,c)=>{"use strict";function d(a,b){return/^\n+$/.test(a)?a.substring(1):b?a.replace(/^(?! *$)/gm,b):a}c.indentComment=d,c.lineComment=(a,b,c)=>a.endsWith("\n")?d(c,b):c.includes("\n")?"\n"+d(c,b):(a.endsWith(" ")?"":" ")+c,c.stringifyComment=a=>a.replace(/^(?!$)(?: $)?/gm,"#")},59245,(a,b,c)=>{"use strict";let d="block",e="quoted";function f(a,b,c){let d=b,e=b+1,f=a[e];for(;" "===f||" "===f;)if(b<e+c)f=a[++b];else{do f=a[++b];while(f&&"\n"!==f)d=b,f=a[e=b+1]}return d}c.FOLD_BLOCK=d,c.FOLD_FLOW="flow",c.FOLD_QUOTED=e,c.foldFlowLines=function(a,b,c="flow",{indentAtStart:g,lineWidth:h=80,minContentWidth:i=20,onFold:j,onOverflow:k}={}){let l,m,n;if(!h||h<0)return a;h<i&&(i=0);let o=Math.max(1+i,1+h-b.length);if(a.length<=o)return a;let p=[],q={},r=h-b.length;"number"==typeof g&&(g>h-Math.max(2,i)?p.push(0):r=h-g);let s=!1,t=-1,u=-1,v=-1;for(c===d&&-1!==(t=f(a,t,b.length))&&(r=t+o);n=a[t+=1];){if(c===e&&"\\"===n){switch(u=t,a[t+1]){case"x":t+=3;break;case"u":t+=5;break;case"U":t+=9;break;default:t+=1}v=t}if("\n"===n)c===d&&(t=f(a,t,b.length)),r=t+b.length+o,l=void 0;else{if(" "===n&&m&&" "!==m&&"\n"!==m&&" "!==m){let b=a[t+1];b&&" "!==b&&"\n"!==b&&" "!==b&&(l=t)}if(t>=r)if(l)p.push(l),r=l+o,l=void 0;else if(c===e){for(;" "===m||" "===m;)m=n,n=a[t+=1],s=!0;let b=t>v+1?t-2:u-1;if(q[b])return a;p.push(b),q[b]=!0,r=b+o,l=void 0}else s=!0}m=n}if(s&&k&&k(),0===p.length)return a;j&&j();let w=a.slice(0,p[0]);for(let d=0;d<p.length;++d){let f=p[d],g=p[d+1]||a.length;0===f?w=`
1
+ module.exports=[27267,(a,b,c)=>{"use strict";let d=Symbol.for("yaml.alias"),e=Symbol.for("yaml.document"),f=Symbol.for("yaml.map"),g=Symbol.for("yaml.pair"),h=Symbol.for("yaml.scalar"),i=Symbol.for("yaml.seq"),j=Symbol.for("yaml.node.type"),k=a=>!!a&&"object"==typeof a&&a[j]===h;function l(a){if(a&&"object"==typeof a)switch(a[j]){case f:case i:return!0}return!1}c.ALIAS=d,c.DOC=e,c.MAP=f,c.NODE_TYPE=j,c.PAIR=g,c.SCALAR=h,c.SEQ=i,c.hasAnchor=a=>(k(a)||l(a))&&!!a.anchor,c.isAlias=a=>!!a&&"object"==typeof a&&a[j]===d,c.isCollection=l,c.isDocument=a=>!!a&&"object"==typeof a&&a[j]===e,c.isMap=a=>!!a&&"object"==typeof a&&a[j]===f,c.isNode=function(a){if(a&&"object"==typeof a)switch(a[j]){case d:case f:case h:case i:return!0}return!1},c.isPair=a=>!!a&&"object"==typeof a&&a[j]===g,c.isScalar=k,c.isSeq=a=>!!a&&"object"==typeof a&&a[j]===i},85927,(a,b,c)=>{"use strict";var d=a.r(27267);let e=Symbol("break visit"),f=Symbol("skip children"),g=Symbol("remove node");function h(a,b){let c=l(b);d.isDocument(a)?i(null,a.contents,c,Object.freeze([a]))===g&&(a.contents=null):i(null,a,c,Object.freeze([]))}function i(a,b,c,f){let h=m(a,b,c,f);if(d.isNode(h)||d.isPair(h))return n(a,f,h),i(a,h,c,f);if("symbol"!=typeof h){if(d.isCollection(b)){f=Object.freeze(f.concat(b));for(let a=0;a<b.items.length;++a){let d=i(a,b.items[a],c,f);if("number"==typeof d)a=d-1;else{if(d===e)return e;d===g&&(b.items.splice(a,1),a-=1)}}}else if(d.isPair(b)){f=Object.freeze(f.concat(b));let a=i("key",b.key,c,f);if(a===e)return e;a===g&&(b.key=null);let d=i("value",b.value,c,f);if(d===e)return e;d===g&&(b.value=null)}}return h}async function j(a,b){let c=l(b);d.isDocument(a)?await k(null,a.contents,c,Object.freeze([a]))===g&&(a.contents=null):await k(null,a,c,Object.freeze([]))}async function k(a,b,c,f){let h=await m(a,b,c,f);if(d.isNode(h)||d.isPair(h))return n(a,f,h),k(a,h,c,f);if("symbol"!=typeof h){if(d.isCollection(b)){f=Object.freeze(f.concat(b));for(let a=0;a<b.items.length;++a){let d=await k(a,b.items[a],c,f);if("number"==typeof d)a=d-1;else{if(d===e)return e;d===g&&(b.items.splice(a,1),a-=1)}}}else if(d.isPair(b)){f=Object.freeze(f.concat(b));let a=await k("key",b.key,c,f);if(a===e)return e;a===g&&(b.key=null);let d=await k("value",b.value,c,f);if(d===e)return e;d===g&&(b.value=null)}}return h}function l(a){return"object"==typeof a&&(a.Collection||a.Node||a.Value)?Object.assign({Alias:a.Node,Map:a.Node,Scalar:a.Node,Seq:a.Node},a.Value&&{Map:a.Value,Scalar:a.Value,Seq:a.Value},a.Collection&&{Map:a.Collection,Seq:a.Collection},a):a}function m(a,b,c,e){return"function"==typeof c?c(a,b,e):d.isMap(b)?c.Map?.(a,b,e):d.isSeq(b)?c.Seq?.(a,b,e):d.isPair(b)?c.Pair?.(a,b,e):d.isScalar(b)?c.Scalar?.(a,b,e):d.isAlias(b)?c.Alias?.(a,b,e):void 0}function n(a,b,c){let e=b[b.length-1];if(d.isCollection(e))e.items[a]=c;else if(d.isPair(e))"key"===a?e.key=c:e.value=c;else if(d.isDocument(e))e.contents=c;else{let a=d.isAlias(e)?"alias":"scalar";throw Error(`Cannot replace node with ${a} parent`)}}h.BREAK=e,h.SKIP=f,h.REMOVE=g,j.BREAK=e,j.SKIP=f,j.REMOVE=g,c.visit=h,c.visitAsync=j},74957,(a,b,c)=>{"use strict";var d=a.r(27267),e=a.r(85927);let f={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},g=a=>a.replace(/[!,[\]{}]/g,a=>f[a]);class h{constructor(a,b){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},h.defaultYaml,a),this.tags=Object.assign({},h.defaultTags,b)}clone(){let a=new h(this.yaml,this.tags);return a.docStart=this.docStart,a}atDocument(){let a=new h(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:h.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},h.defaultTags)}return a}add(a,b){this.atNextDocument&&(this.yaml={explicit:h.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},h.defaultTags),this.atNextDocument=!1);let c=a.trim().split(/[ \t]+/),d=c.shift();switch(d){case"%TAG":{if(2!==c.length&&(b(0,"%TAG directive should contain exactly two parts"),c.length<2))return!1;let[a,d]=c;return this.tags[a]=d,!0}case"%YAML":{if(this.yaml.explicit=!0,1!==c.length)return b(0,"%YAML directive should contain exactly one part"),!1;let[a]=c;if("1.1"===a||"1.2"===a)return this.yaml.version=a,!0;{let c=/^\d+\.\d+$/.test(a);return b(6,`Unsupported YAML version ${a}`,c),!1}}default:return b(0,`Unknown directive ${d}`,!0),!1}}tagName(a,b){if("!"===a)return"!";if("!"!==a[0])return b(`Not a valid tag: ${a}`),null;if("<"===a[1]){let c=a.slice(2,-1);return"!"===c||"!!"===c?(b(`Verbatim tags aren't resolved, so ${a} is invalid.`),null):(">"!==a[a.length-1]&&b("Verbatim tags must end with a >"),c)}let[,c,d]=a.match(/^(.*!)([^!]*)$/s);d||b(`The ${a} tag has no suffix`);let e=this.tags[c];if(e)try{return e+decodeURIComponent(d)}catch(a){return b(String(a)),null}return"!"===c?a:(b(`Could not resolve tag: ${a}`),null)}tagString(a){for(let[b,c]of Object.entries(this.tags))if(a.startsWith(c))return b+g(a.substring(c.length));return"!"===a[0]?a:`!<${a}>`}toString(a){let b,c=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],f=Object.entries(this.tags);if(a&&f.length>0&&d.isNode(a.contents)){let c={};e.visit(a.contents,(a,b)=>{d.isNode(b)&&b.tag&&(c[b.tag]=!0)}),b=Object.keys(c)}else b=[];for(let[d,e]of f)("!!"!==d||"tag:yaml.org,2002:"!==e)&&(!a||b.some(a=>a.startsWith(e)))&&c.push(`%TAG ${d} ${e}`);return c.join("\n")}}h.defaultYaml={explicit:!1,version:"1.2"},h.defaultTags={"!!":"tag:yaml.org,2002:"},c.Directives=h},10937,(a,b,c)=>{"use strict";var d=a.r(27267),e=a.r(85927);function f(a){let b=new Set;return e.visit(a,{Value(a,c){c.anchor&&b.add(c.anchor)}}),b}function g(a,b){for(let c=1;;++c){let d=`${a}${c}`;if(!b.has(d))return d}}c.anchorIsValid=function(a){if(/[\x00-\x19\s,[\]{}]/.test(a)){let b=JSON.stringify(a);throw Error(`Anchor must not contain whitespace or control characters: ${b}`)}return!0},c.anchorNames=f,c.createNodeAnchors=function(a,b){let c=[],e=new Map,h=null;return{onAnchor:d=>{c.push(d),h??(h=f(a));let e=g(b,h);return h.add(e),e},setAnchors:()=>{for(let a of c){let b=e.get(a);if("object"==typeof b&&b.anchor&&(d.isScalar(b.node)||d.isCollection(b.node)))b.node.anchor=b.anchor;else{let b=Error("Failed to resolve repeated object (this should not happen)");throw b.source=a,b}}},sourceObjects:e}},c.findNewAnchor=g},59588,(a,b,c)=>{"use strict";c.applyReviver=function a(b,c,d,e){if(e&&"object"==typeof e)if(Array.isArray(e))for(let c=0,d=e.length;c<d;++c){let d=e[c],f=a(b,e,String(c),d);void 0===f?delete e[c]:f!==d&&(e[c]=f)}else if(e instanceof Map)for(let c of Array.from(e.keys())){let d=e.get(c),f=a(b,e,c,d);void 0===f?e.delete(c):f!==d&&e.set(c,f)}else if(e instanceof Set)for(let c of Array.from(e)){let d=a(b,e,c,c);void 0===d?e.delete(c):d!==c&&(e.delete(c),e.add(d))}else for(let[c,d]of Object.entries(e)){let f=a(b,e,c,d);void 0===f?delete e[c]:f!==d&&(e[c]=f)}return b.call(c,d,e)}},94,(a,b,c)=>{"use strict";var d=a.r(27267);c.toJS=function a(b,c,e){if(Array.isArray(b))return b.map((b,c)=>a(b,String(c),e));if(b&&"function"==typeof b.toJSON){if(!e||!d.hasAnchor(b))return b.toJSON(c,e);let a={aliasCount:0,count:1,res:void 0};e.anchors.set(b,a),e.onCreate=b=>{a.res=b,delete e.onCreate};let f=b.toJSON(c,e);return e.onCreate&&e.onCreate(f),f}return"bigint"!=typeof b||e?.keep?b:Number(b)}},25154,(a,b,c)=>{"use strict";var d=a.r(59588),e=a.r(27267),f=a.r(94);c.NodeBase=class{constructor(a){Object.defineProperty(this,e.NODE_TYPE,{value:a})}clone(){let a=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(a.range=this.range.slice()),a}toJS(a,{mapAsMap:b,maxAliasCount:c,onAnchor:g,reviver:h}={}){if(!e.isDocument(a))throw TypeError("A document argument is required");let i={anchors:new Map,doc:a,keep:!0,mapAsMap:!0===b,mapKeyWarned:!1,maxAliasCount:"number"==typeof c?c:100},j=f.toJS(this,"",i);if("function"==typeof g)for(let{count:a,res:b}of i.anchors.values())g(b,a);return"function"==typeof h?d.applyReviver(h,{"":j},"",j):j}}},21562,(a,b,c)=>{"use strict";var d=a.r(10937),e=a.r(85927),f=a.r(27267),g=a.r(25154),h=a.r(94);class i extends g.NodeBase{constructor(a){super(f.ALIAS),this.source=a,Object.defineProperty(this,"tag",{set(){throw Error("Alias nodes cannot have tags")}})}resolve(a,b){let c,d;if(b?.maxAliasCount===0)throw ReferenceError("Alias resolution is disabled");for(let g of(b?.aliasResolveCache?c=b.aliasResolveCache:(c=[],e.visit(a,{Node:(a,b)=>{(f.isAlias(b)||f.hasAnchor(b))&&c.push(b)}}),b&&(b.aliasResolveCache=c)),c)){if(g===this)break;g.anchor===this.source&&(d=g)}return d}toJSON(a,b){if(!b)return{source:this.source};let{anchors:c,doc:d,maxAliasCount:e}=b,g=this.resolve(d,b);if(!g)throw ReferenceError(`Unresolved alias (the anchor must be set before the alias): ${this.source}`);let i=c.get(g);if(i||(h.toJS(g,null,b),i=c.get(g)),i?.res===void 0)throw ReferenceError("This should not happen: Alias anchor was not resolved?");if(e>=0&&(i.count+=1,0===i.aliasCount&&(i.aliasCount=function a(b,c,d){if(f.isAlias(c)){let a=c.resolve(b),e=d&&a&&d.get(a);return e?e.count*e.aliasCount:0}if(f.isCollection(c)){let e=0;for(let f of c.items){let c=a(b,f,d);c>e&&(e=c)}return e}return f.isPair(c)?Math.max(a(b,c.key,d),a(b,c.value,d)):1}(d,g,c)),i.count*i.aliasCount>e))throw ReferenceError("Excessive alias count indicates a resource exhaustion attack");return i.res}toString(a,b,c){let e=`*${this.source}`;if(a){if(d.anchorIsValid(this.source),a.options.verifyAliasOrder&&!a.anchors.has(this.source))throw Error(`Unresolved alias (the anchor must be set before the alias): ${this.source}`);if(a.implicitKey)return`${e} `}return e}}c.Alias=i},27853,(a,b,c)=>{"use strict";var d=a.r(27267),e=a.r(25154),f=a.r(94);class g extends e.NodeBase{constructor(a){super(d.SCALAR),this.value=a}toJSON(a,b){return b?.keep?this.value:f.toJS(this.value,a,b)}toString(){return String(this.value)}}g.BLOCK_FOLDED="BLOCK_FOLDED",g.BLOCK_LITERAL="BLOCK_LITERAL",g.PLAIN="PLAIN",g.QUOTE_DOUBLE="QUOTE_DOUBLE",g.QUOTE_SINGLE="QUOTE_SINGLE",c.Scalar=g,c.isScalarValue=a=>!a||"function"!=typeof a&&"object"!=typeof a},10882,(a,b,c)=>{"use strict";var d=a.r(21562),e=a.r(27267),f=a.r(27853);c.createNode=function(a,b,c){let g;if(e.isDocument(a)&&(a=a.contents),e.isNode(a))return a;if(e.isPair(a)){let b=c.schema[e.MAP].createNode?.(c.schema,null,c);return b.items.push(a),b}(a instanceof String||a instanceof Number||a instanceof Boolean||"u">typeof BigInt&&a instanceof BigInt)&&(a=a.valueOf());let{aliasDuplicateObjects:h,onAnchor:i,onTagObj:j,schema:k,sourceObjects:l}=c;if(h&&a&&"object"==typeof a){if(g=l.get(a))return g.anchor??(g.anchor=i(a)),new d.Alias(g.anchor);g={anchor:null,node:null},l.set(a,g)}b?.startsWith("!!")&&(b="tag:yaml.org,2002:"+b.slice(2));let m=function(a,b,c){if(b){let a=c.filter(a=>a.tag===b),d=a.find(a=>!a.format)??a[0];if(!d)throw Error(`Tag ${b} not found`);return d}return c.find(b=>b.identify?.(a)&&!b.format)}(a,b,k.tags);if(!m){if(a&&"function"==typeof a.toJSON&&(a=a.toJSON()),!a||"object"!=typeof a){let b=new f.Scalar(a);return g&&(g.node=b),b}m=a instanceof Map?k[e.MAP]:Symbol.iterator in Object(a)?k[e.SEQ]:k[e.MAP]}j&&(j(m),delete c.onTagObj);let n=m?.createNode?m.createNode(c.schema,a,c):"function"==typeof m?.nodeClass?.from?m.nodeClass.from(c.schema,a,c):new f.Scalar(a);return b?n.tag=b:m.default||(n.tag=m.tag),g&&(g.node=n),n}},35249,(a,b,c)=>{"use strict";var d=a.r(10882),e=a.r(27267),f=a.r(25154);function g(a,b,c){let e=c;for(let a=b.length-1;a>=0;--a){let c=b[a];if("number"==typeof c&&Number.isInteger(c)&&c>=0){let a=[];a[c]=e,e=a}else e=new Map([[c,e]])}return d.createNode(e,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error("This should not happen, please report a bug.")},schema:a,sourceObjects:new Map})}let h=a=>null==a||"object"==typeof a&&!!a[Symbol.iterator]().next().done;class i extends f.NodeBase{constructor(a,b){super(a),Object.defineProperty(this,"schema",{value:b,configurable:!0,enumerable:!1,writable:!0})}clone(a){let b=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return a&&(b.schema=a),b.items=b.items.map(b=>e.isNode(b)||e.isPair(b)?b.clone(a):b),this.range&&(b.range=this.range.slice()),b}addIn(a,b){if(h(a))this.add(b);else{let[c,...d]=a,f=this.get(c,!0);if(e.isCollection(f))f.addIn(d,b);else if(void 0===f&&this.schema)this.set(c,g(this.schema,d,b));else throw Error(`Expected YAML collection at ${c}. Remaining path: ${d}`)}}deleteIn(a){let[b,...c]=a;if(0===c.length)return this.delete(b);let d=this.get(b,!0);if(e.isCollection(d))return d.deleteIn(c);throw Error(`Expected YAML collection at ${b}. Remaining path: ${c}`)}getIn(a,b){let[c,...d]=a,f=this.get(c,!0);return 0===d.length?!b&&e.isScalar(f)?f.value:f:e.isCollection(f)?f.getIn(d,b):void 0}hasAllNullValues(a){return this.items.every(b=>{if(!e.isPair(b))return!1;let c=b.value;return null==c||a&&e.isScalar(c)&&null==c.value&&!c.commentBefore&&!c.comment&&!c.tag})}hasIn(a){let[b,...c]=a;if(0===c.length)return this.has(b);let d=this.get(b,!0);return!!e.isCollection(d)&&d.hasIn(c)}setIn(a,b){let[c,...d]=a;if(0===d.length)this.set(c,b);else{let a=this.get(c,!0);if(e.isCollection(a))a.setIn(d,b);else if(void 0===a&&this.schema)this.set(c,g(this.schema,d,b));else throw Error(`Expected YAML collection at ${c}. Remaining path: ${d}`)}}}c.Collection=i,c.collectionFromPath=g,c.isEmptyPath=h},53074,(a,b,c)=>{"use strict";function d(a,b){return/^\n+$/.test(a)?a.substring(1):b?a.replace(/^(?! *$)/gm,b):a}c.indentComment=d,c.lineComment=(a,b,c)=>a.endsWith("\n")?d(c,b):c.includes("\n")?"\n"+d(c,b):(a.endsWith(" ")?"":" ")+c,c.stringifyComment=a=>a.replace(/^(?!$)(?: $)?/gm,"#")},59245,(a,b,c)=>{"use strict";let d="block",e="quoted";function f(a,b,c){let d=b,e=b+1,f=a[e];for(;" "===f||" "===f;)if(b<e+c)f=a[++b];else{do f=a[++b];while(f&&"\n"!==f)d=b,f=a[e=b+1]}return d}c.FOLD_BLOCK=d,c.FOLD_FLOW="flow",c.FOLD_QUOTED=e,c.foldFlowLines=function(a,b,c="flow",{indentAtStart:g,lineWidth:h=80,minContentWidth:i=20,onFold:j,onOverflow:k}={}){let l,m,n;if(!h||h<0)return a;h<i&&(i=0);let o=Math.max(1+i,1+h-b.length);if(a.length<=o)return a;let p=[],q={},r=h-b.length;"number"==typeof g&&(g>h-Math.max(2,i)?p.push(0):r=h-g);let s=!1,t=-1,u=-1,v=-1;for(c===d&&-1!==(t=f(a,t,b.length))&&(r=t+o);n=a[t+=1];){if(c===e&&"\\"===n){switch(u=t,a[t+1]){case"x":t+=3;break;case"u":t+=5;break;case"U":t+=9;break;default:t+=1}v=t}if("\n"===n)c===d&&(t=f(a,t,b.length)),r=t+b.length+o,l=void 0;else{if(" "===n&&m&&" "!==m&&"\n"!==m&&" "!==m){let b=a[t+1];b&&" "!==b&&"\n"!==b&&" "!==b&&(l=t)}if(t>=r)if(l)p.push(l),r=l+o,l=void 0;else if(c===e){for(;" "===m||" "===m;)m=n,n=a[t+=1],s=!0;let b=t>v+1?t-2:u-1;if(q[b])return a;p.push(b),q[b]=!0,r=b+o,l=void 0}else s=!0}m=n}if(s&&k&&k(),0===p.length)return a;j&&j();let w=a.slice(0,p[0]);for(let d=0;d<p.length;++d){let f=p[d],g=p[d+1]||a.length;0===f?w=`
2
2
  ${b}${a.slice(0,g)}`:(c===e&&q[f]&&(w+=`${a[f]}\\`),w+=`
3
3
  ${b}${a.slice(f+1,g)}`)}return w}},88583,(a,b,c)=>{"use strict";let d;var e=a.r(27853),f=a.r(59245);let g=(a,b)=>({indentAtStart:b?a.indent.length:a.indentAtStart,lineWidth:a.options.lineWidth,minContentWidth:a.options.minContentWidth});function h(a,b){let c=JSON.stringify(a);if(b.options.doubleQuotedAsJSON)return c;let{implicitKey:d}=b,e=b.options.doubleQuotedMinMultiLineLength,h=b.indent||(/^(%|---|\.\.\.)/m.test(a)?" ":""),i="",j=0;for(let a=0,b=c[a];b;b=c[++a])if(" "===b&&"\\"===c[a+1]&&"n"===c[a+2]&&(i+=c.slice(j,a)+"\\ ",a+=1,j=a,b="\\"),"\\"===b)switch(c[a+1]){case"u":{i+=c.slice(j,a);let b=c.substr(a+2,4);switch(b){case"0000":i+="\\0";break;case"0007":i+="\\a";break;case"000b":i+="\\v";break;case"001b":i+="\\e";break;case"0085":i+="\\N";break;case"00a0":i+="\\_";break;case"2028":i+="\\L";break;case"2029":i+="\\P";break;default:"00"===b.substr(0,2)?i+="\\x"+b.substr(2):i+=c.substr(a,6)}a+=5,j=a+1}break;case"n":if(d||'"'===c[a+2]||c.length<e)a+=1;else{for(i+=c.slice(j,a)+"\n\n";"\\"===c[a+2]&&"n"===c[a+3]&&'"'!==c[a+4];)i+="\n",a+=2;i+=h," "===c[a+2]&&(i+="\\"),a+=1,j=a+1}break;default:a+=1}return i=j?i+c.slice(j):c,d?i:f.foldFlowLines(i,h,f.FOLD_QUOTED,g(b,!1))}function i(a,b){if(!1===b.options.singleQuote||b.implicitKey&&a.includes("\n")||/[ \t]\n|\n[ \t]/.test(a))return h(a,b);let c=b.indent||(/^(%|---|\.\.\.)/m.test(a)?" ":""),d="'"+a.replace(/'/g,"''").replace(/\n+/g,`$&
4
4
  ${c}`)+"'";return b.implicitKey?d:f.foldFlowLines(d,c,f.FOLD_FLOW,g(b,!1))}function j(a,b){let c,{singleQuote:d}=b.options;if(!1===d)c=h;else{let b=a.includes('"'),e=a.includes("'");c=b&&!e?i:e&&!b?h:d?i:h}return c(a,b)}try{d=RegExp("(^|(?<!\n))\n+(?!\n|$)","g")}catch{d=/\n+(?!\n|$)/g}function k({comment:a,type:b,value:c},h,i,l){let m,n,o,p,{blockQuote:q,commentString:r,lineWidth:s}=h.options;if(!q||/\n[\t ]+$/.test(c))return j(c,h);let t=h.indent||(h.forceBlockIndent||(p=c,/^(%|---|\.\.\.)/m.test(p))?" ":""),u="literal"===q||"folded"!==q&&b!==e.Scalar.BLOCK_FOLDED&&(b===e.Scalar.BLOCK_LITERAL||!function(a,b,c){if(!b||b<0)return!1;let d=b-c,e=a.length;if(e<=d)return!1;for(let b=0,c=0;b<e;++b)if("\n"===a[b]){if(b-c>d)return!0;if(e-(c=b+1)<=d)return!1}return!0}(c,s,t.length));if(!c)return u?"|\n":">\n";for(n=c.length;n>0;--n){let a=c[n-1];if("\n"!==a&&" "!==a&&" "!==a)break}let v=c.substring(n),w=v.indexOf("\n");-1===w?m="-":c===v||w!==v.length-1?(m="+",l&&l()):m="",v&&(c=c.slice(0,-v.length),"\n"===v[v.length-1]&&(v=v.slice(0,-1)),v=v.replace(d,`$&${t}`));let x=!1,y=-1;for(o=0;o<c.length;++o){let a=c[o];if(" "===a)x=!0;else if("\n"===a)y=o;else break}let z=c.substring(0,y<o?y+1:o);z&&(c=c.substring(z.length),z=z.replace(/\n+/g,`$&${t}`));let A=t?"2":"1",B=(x?A:"")+m;if(a&&(B+=" "+r(a.replace(/ ?[\r\n]+/g," ")),i&&i()),!u){let a=c.replace(/\n+/g,"\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${t}`),d=!1,i=g(h,!0);"folded"!==q&&b!==e.Scalar.BLOCK_FOLDED&&(i.onOverflow=()=>{d=!0});let j=f.foldFlowLines(`${z}${a}${v}`,t,f.FOLD_BLOCK,i);if(!d)return`>${B}
@@ -12,7 +12,7 @@ ${c.indent}`:"\n"===A&&l&&(A="\n\n")}else if(!u&&d.isCollection(b)){let a=z[0],d
12
12
  ${c.indent}`)}}else(""===z||"\n"===z[0])&&(A="");return x+=A+z,c.inFlow?y&&h&&h():l&&!y?x+=g.lineComment(x,c.indent,q(l)):w&&i&&i(),x}},18114,(a,b,c)=>{"use strict";var d=a.r(5365);c.debug=function(a,...b){"debug"===a&&console.log(...b)},c.warn=function(a,b){("debug"===a||"warn"===a)&&("function"==typeof d.emitWarning?d.emitWarning(b):console.warn(b))}},57876,(a,b,c)=>{"use strict";var d=a.r(27267),e=a.r(27853);let f={identify:a=>"<<"===a||"symbol"==typeof a&&"<<"===a.description,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new e.Scalar(Symbol("<<")),{addToJSMap:g}),stringify:()=>"<<"};function g(a,b,c){let e=i(a,c);if(d.isSeq(e))for(let c of e.items)h(a,b,c);else if(Array.isArray(e))for(let c of e)h(a,b,c);else h(a,b,e)}function h(a,b,c){let e=i(a,c);if(!d.isMap(e))throw Error("Merge sources must be maps or map aliases");for(let[c,d]of e.toJSON(null,a,Map))b instanceof Map?b.has(c)||b.set(c,d):b instanceof Set?b.add(c):Object.prototype.hasOwnProperty.call(b,c)||Object.defineProperty(b,c,{value:d,writable:!0,enumerable:!0,configurable:!0});return b}function i(a,b){return a&&d.isAlias(b)?b.resolve(a.doc,a):b}c.addMergeToJSMap=g,c.isMergeKey=(a,b)=>(f.identify(b)||d.isScalar(b)&&(!b.type||b.type===e.Scalar.PLAIN)&&f.identify(b.value))&&a?.doc.schema.tags.some(a=>a.tag===f.tag&&a.default),c.merge=f},98155,(a,b,c)=>{"use strict";var d=a.r(18114),e=a.r(57876),f=a.r(7687),g=a.r(27267),h=a.r(94);c.addPairToJSMap=function(a,b,{key:c,value:i}){if(g.isNode(c)&&c.addToJSMap)c.addToJSMap(a,b,i);else if(e.isMergeKey(a,c))e.addMergeToJSMap(a,b,i);else{let e=h.toJS(c,"",a);if(b instanceof Map)b.set(e,h.toJS(i,e,a));else if(b instanceof Set)b.add(e);else{let j=function(a,b,c){if(null===b)return"";if("object"!=typeof b)return String(b);if(g.isNode(a)&&c?.doc){let b=f.createStringifyContext(c.doc,{});for(let a of(b.anchors=new Set,c.anchors.keys()))b.anchors.add(a.anchor);b.inFlow=!0,b.inStringifyKey=!0;let e=a.toString(b);if(!c.mapKeyWarned){let a=JSON.stringify(e);a.length>40&&(a=a.substring(0,36)+'..."'),d.warn(c.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${a}. Set mapAsMap: true to use object keys.`),c.mapKeyWarned=!0}return e}return JSON.stringify(b)}(c,e,a),k=h.toJS(i,j,a);j in b?Object.defineProperty(b,j,{value:k,writable:!0,enumerable:!0,configurable:!0}):b[j]=k}}return b}},17602,(a,b,c)=>{"use strict";var d=a.r(10882),e=a.r(5850),f=a.r(98155),g=a.r(27267);class h{constructor(a,b=null){Object.defineProperty(this,g.NODE_TYPE,{value:g.PAIR}),this.key=a,this.value=b}clone(a){let{key:b,value:c}=this;return g.isNode(b)&&(b=b.clone(a)),g.isNode(c)&&(c=c.clone(a)),new h(b,c)}toJSON(a,b){let c=b?.mapAsMap?new Map:{};return f.addPairToJSMap(b,c,this)}toString(a,b,c){return a?.doc?e.stringifyPair(this,a,b,c):JSON.stringify(this)}}c.Pair=h,c.createPair=function(a,b,c){return new h(d.createNode(a,void 0,c),d.createNode(b,void 0,c))}},11144,(a,b,c)=>{"use strict";var d=a.r(27267),e=a.r(7687),f=a.r(53074);function g({indent:a,options:{commentString:b}},c,d,e){if(d&&e&&(d=d.replace(/^\n+/,"")),d){let e=f.indentComment(b(d),a);c.push(e.trimStart())}}c.stringifyCollection=function(a,b,c){return(b.inFlow??a.flow?function({items:a},b,{flowChars:c,itemIndent:h}){let{indent:i,indentStep:j,flowCollectionPadding:k,options:{commentString:l}}=b,m=Object.assign({},b,{indent:h+=j,inFlow:!0,type:null}),n=!1,o=0,p=[];for(let c=0;c<a.length;++c){let i=a[c],j=null;if(d.isNode(i))i.spaceBefore&&p.push(""),g(b,p,i.commentBefore,!1),i.comment&&(j=i.comment);else if(d.isPair(i)){let a=d.isNode(i.key)?i.key:null;a&&(a.spaceBefore&&p.push(""),g(b,p,a.commentBefore,!1),a.comment&&(n=!0));let c=d.isNode(i.value)?i.value:null;c?(c.comment&&(j=c.comment),c.commentBefore&&(n=!0)):null==i.value&&a?.comment&&(j=a.comment)}j&&(n=!0);let k=e.stringify(i,m,()=>j=null);n||(n=p.length>o||k.includes("\n")),c<a.length-1?k+=",":b.options.trailingComma&&(b.options.lineWidth>0&&(n||(n=p.reduce((a,b)=>a+b.length+2,2)+(k.length+2)>b.options.lineWidth)),n&&(k+=",")),j&&(k+=f.lineComment(k,h,l(j))),p.push(k),o=p.length}let{start:q,end:r}=c;if(0===p.length)return q+r;if(!n){let a=p.reduce((a,b)=>a+b.length+2,2);n=b.options.lineWidth>0&&a>b.options.lineWidth}if(!n)return`${q}${k}${p.join(" ")}${k}${r}`;{let a=q;for(let b of p)a+=b?`
13
13
  ${j}${i}${b}`:"\n";return`${a}
14
14
  ${i}${r}`}}:function({comment:a,items:b},c,{blockItemPrefix:h,flowChars:i,itemIndent:j,onChompKeep:k,onComment:l}){let m,{indent:n,options:{commentString:o}}=c,p=Object.assign({},c,{indent:j,type:null}),q=!1,r=[];for(let a=0;a<b.length;++a){let i=b[a],k=null;if(d.isNode(i))!q&&i.spaceBefore&&r.push(""),g(c,r,i.commentBefore,q),i.comment&&(k=i.comment);else if(d.isPair(i)){let a=d.isNode(i.key)?i.key:null;a&&(!q&&a.spaceBefore&&r.push(""),g(c,r,a.commentBefore,q))}q=!1;let l=e.stringify(i,p,()=>k=null,()=>q=!0);k&&(l+=f.lineComment(l,j,o(k))),q&&k&&(q=!1),r.push(h+l)}if(0===r.length)m=i.start+i.end;else{m=r[0];for(let a=1;a<r.length;++a){let b=r[a];m+=b?`
15
- ${n}${b}`:"\n"}}return a?(m+="\n"+f.indentComment(o(a),n),l&&l()):q&&k&&k(),m})(a,b,c)}},47544,(a,b,c)=>{"use strict";var d=a.r(11144),e=a.r(98155),f=a.r(35249),g=a.r(27267),h=a.r(17602),i=a.r(27853);function j(a,b){let c=g.isScalar(b)?b.value:b;for(let d of a)if(g.isPair(d)&&(d.key===b||d.key===c||g.isScalar(d.key)&&d.key.value===c))return d}class k extends f.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(a){super(g.MAP,a),this.items=[]}static from(a,b,c){let{keepUndefined:d,replacer:e}=c,f=new this(a),g=(a,g)=>{if("function"==typeof e)g=e.call(b,a,g);else if(Array.isArray(e)&&!e.includes(a))return;(void 0!==g||d)&&f.items.push(h.createPair(a,g,c))};if(b instanceof Map)for(let[a,c]of b)g(a,c);else if(b&&"object"==typeof b)for(let a of Object.keys(b))g(a,b[a]);return"function"==typeof a.sortMapEntries&&f.items.sort(a.sortMapEntries),f}add(a,b){let c;c=g.isPair(a)?a:a&&"object"==typeof a&&"key"in a?new h.Pair(a.key,a.value):new h.Pair(a,a?.value);let d=j(this.items,c.key),e=this.schema?.sortMapEntries;if(d){if(!b)throw Error(`Key ${c.key} already set`);g.isScalar(d.value)&&i.isScalarValue(c.value)?d.value.value=c.value:d.value=c.value}else if(e){let a=this.items.findIndex(a=>0>e(c,a));-1===a?this.items.push(c):this.items.splice(a,0,c)}else this.items.push(c)}delete(a){let b=j(this.items,a);return!!b&&this.items.splice(this.items.indexOf(b),1).length>0}get(a,b){let c=j(this.items,a),d=c?.value;return(!b&&g.isScalar(d)?d.value:d)??void 0}has(a){return!!j(this.items,a)}set(a,b){this.add(new h.Pair(a,b),!0)}toJSON(a,b,c){let d=c?new c:b?.mapAsMap?new Map:{};for(let a of(b?.onCreate&&b.onCreate(d),this.items))e.addPairToJSMap(b,d,a);return d}toString(a,b,c){if(!a)return JSON.stringify(this);for(let a of this.items)if(!g.isPair(a))throw Error(`Map items must all be pairs; found ${JSON.stringify(a)} instead`);return!a.allNullValues&&this.hasAllNullValues(!1)&&(a=Object.assign({},a,{allNullValues:!0})),d.stringifyCollection(this,a,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:a.indent||"",onChompKeep:c,onComment:b})}}c.YAMLMap=k,c.findPair=j},62709,(a,b,c)=>{"use strict";var d=a.r(27267),e=a.r(47544);c.map={collection:"map",default:!0,nodeClass:e.YAMLMap,tag:"tag:yaml.org,2002:map",resolve:(a,b)=>(d.isMap(a)||b("Expected a mapping for this tag"),a),createNode:(a,b,c)=>e.YAMLMap.from(a,b,c)}},7621,(a,b,c)=>{"use strict";var d=a.r(10882),e=a.r(11144),f=a.r(35249),g=a.r(27267),h=a.r(27853),i=a.r(94);class j extends f.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(a){super(g.SEQ,a),this.items=[]}add(a){this.items.push(a)}delete(a){let b=k(a);return"number"==typeof b&&this.items.splice(b,1).length>0}get(a,b){let c=k(a);if("number"!=typeof c)return;let d=this.items[c];return!b&&g.isScalar(d)?d.value:d}has(a){let b=k(a);return"number"==typeof b&&b<this.items.length}set(a,b){let c=k(a);if("number"!=typeof c)throw Error(`Expected a valid index, not ${a}.`);let d=this.items[c];g.isScalar(d)&&h.isScalarValue(b)?d.value=b:this.items[c]=b}toJSON(a,b){let c=[];b?.onCreate&&b.onCreate(c);let d=0;for(let a of this.items)c.push(i.toJS(a,String(d++),b));return c}toString(a,b,c){return a?e.stringifyCollection(this,a,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(a.indent||"")+" ",onChompKeep:c,onComment:b}):JSON.stringify(this)}static from(a,b,c){let{replacer:e}=c,f=new this(a);if(b&&Symbol.iterator in Object(b)){let a=0;for(let g of b){if("function"==typeof e){let c=b instanceof Set?g:String(a++);g=e.call(b,c,g)}f.items.push(d.createNode(g,void 0,c))}}return f}}function k(a){let b=g.isScalar(a)?a.value:a;return b&&"string"==typeof b&&(b=Number(b)),"number"==typeof b&&Number.isInteger(b)&&b>=0?b:null}c.YAMLSeq=j},33507,(a,b,c)=>{"use strict";var d=a.r(27267),e=a.r(7621);c.seq={collection:"seq",default:!0,nodeClass:e.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve:(a,b)=>(d.isSeq(a)||b("Expected a sequence for this tag"),a),createNode:(a,b,c)=>e.YAMLSeq.from(a,b,c)}},50357,(a,b,c)=>{"use strict";var d=a.r(88583);c.string={identify:a=>"string"==typeof a,default:!0,tag:"tag:yaml.org,2002:str",resolve:a=>a,stringify:(a,b,c,e)=>(b=Object.assign({actualString:!0},b),d.stringifyString(a,b,c,e))}},70833,(a,b,c)=>{"use strict";var d=a.r(27853);let e={identify:a=>null==a,createNode:()=>new d.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new d.Scalar(null),stringify:({source:a},b)=>"string"==typeof a&&e.test.test(a)?a:b.options.nullStr};c.nullTag=e},91642,(a,b,c)=>{"use strict";var d=a.r(27853);let e={identify:a=>"boolean"==typeof a,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:a=>new d.Scalar("t"===a[0]||"T"===a[0]),stringify:({source:a,value:b},c)=>a&&e.test.test(a)&&b===("t"===a[0]||"T"===a[0])?a:b?c.options.trueStr:c.options.falseStr};c.boolTag=e},66050,(a,b,c)=>{"use strict";c.stringifyNumber=function({format:a,minFractionDigits:b,tag:c,value:d}){if("bigint"==typeof d)return String(d);let e="number"==typeof d?d:Number(d);if(!isFinite(e))return isNaN(e)?".nan":e<0?"-.inf":".inf";let f=Object.is(d,-0)?"-0":JSON.stringify(d);if(!a&&b&&(!c||"tag:yaml.org,2002:float"===c)&&/^-?\d/.test(f)&&!f.includes("e")){let a=f.indexOf(".");a<0&&(a=f.length,f+=".");let c=b-(f.length-a-1);for(;c-- >0;)f+="0"}return f}},40967,(a,b,c)=>{"use strict";var d=a.r(27853),e=a.r(66050);let f={identify:a=>"number"==typeof a,default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:a=>"nan"===a.slice(-3).toLowerCase()?NaN:"-"===a[0]?-1/0:1/0,stringify:e.stringifyNumber};c.float={identify:a=>"number"==typeof a,default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(a){let b=new d.Scalar(parseFloat(a)),c=a.indexOf(".");return -1!==c&&"0"===a[a.length-1]&&(b.minFractionDigits=a.length-c-1),b},stringify:e.stringifyNumber},c.floatExp={identify:a=>"number"==typeof a,default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:a=>parseFloat(a),stringify(a){let b=Number(a.value);return isFinite(b)?b.toExponential():e.stringifyNumber(a)}},c.floatNaN=f},41069,(a,b,c)=>{"use strict";var d=a.r(66050);let e=a=>"bigint"==typeof a||Number.isInteger(a),f=(a,b,c,{intAsBigInt:d})=>d?BigInt(a):parseInt(a.substring(b),c);function g(a,b,c){let{value:f}=a;return e(f)&&f>=0?c+f.toString(b):d.stringifyNumber(a)}c.int={identify:e,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(a,b,c)=>f(a,0,10,c),stringify:d.stringifyNumber},c.intHex={identify:a=>e(a)&&a>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(a,b,c)=>f(a,2,16,c),stringify:a=>g(a,16,"0x")},c.intOct={identify:a=>e(a)&&a>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(a,b,c)=>f(a,2,8,c),stringify:a=>g(a,8,"0o")}},46145,(a,b,c)=>{"use strict";var d=a.r(62709),e=a.r(70833),f=a.r(33507),g=a.r(50357),h=a.r(91642),i=a.r(40967),j=a.r(41069);c.schema=[d.map,f.seq,g.string,e.nullTag,h.boolTag,j.intOct,j.int,j.intHex,i.floatNaN,i.floatExp,i.float]},35501,(a,b,c)=>{"use strict";var d=a.r(27853),e=a.r(62709),f=a.r(33507);function g(a){return"bigint"==typeof a||Number.isInteger(a)}let h=({value:a})=>JSON.stringify(a),i=[{identify:a=>"string"==typeof a,default:!0,tag:"tag:yaml.org,2002:str",resolve:a=>a,stringify:h},{identify:a=>null==a,createNode:()=>new d.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:h},{identify:a=>"boolean"==typeof a,default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:a=>"true"===a,stringify:h},{identify:g,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(a,b,{intAsBigInt:c})=>c?BigInt(a):parseInt(a,10),stringify:({value:a})=>g(a)?a.toString():JSON.stringify(a)},{identify:a=>"number"==typeof a,default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:a=>parseFloat(a),stringify:h}];c.schema=[e.map,f.seq].concat(i,{default:!0,tag:"",test:/^/,resolve:(a,b)=>(b(`Unresolved plain scalar ${JSON.stringify(a)}`),a)})},874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},81475,(a,b,c)=>{"use strict";var d=a.r(874),e=a.r(27853),f=a.r(88583);c.binary={identify:a=>a instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(a,b){if("function"==typeof d.Buffer)return d.Buffer.from(a,"base64");if("function"!=typeof atob)return b("This environment does not support reading binary tags; either Buffer or atob is required"),a;{let b=atob(a.replace(/[\n\r]/g,"")),c=new Uint8Array(b.length);for(let a=0;a<b.length;++a)c[a]=b.charCodeAt(a);return c}},stringify({comment:a,type:b,value:c},g,h,i){let j;if(!c)return"";if("function"==typeof d.Buffer)j=c instanceof d.Buffer?c.toString("base64"):d.Buffer.from(c.buffer).toString("base64");else if("function"==typeof btoa){let a="";for(let b=0;b<c.length;++b)a+=String.fromCharCode(c[b]);j=btoa(a)}else throw Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(b??(b=e.Scalar.BLOCK_LITERAL),b!==e.Scalar.QUOTE_DOUBLE){let a=Math.max(g.options.lineWidth-g.indent.length,g.options.minContentWidth),c=Math.ceil(j.length/a),d=Array(c);for(let b=0,e=0;b<c;++b,e+=a)d[b]=j.substr(e,a);j=d.join(b===e.Scalar.BLOCK_LITERAL?"\n":" ")}return f.stringifyString({comment:a,type:b,value:j},g,h,i)}}},26609,(a,b,c)=>{"use strict";var d=a.r(27267),e=a.r(17602),f=a.r(27853),g=a.r(7621);function h(a,b){if(d.isSeq(a))for(let c=0;c<a.items.length;++c){let g=a.items[c];if(!d.isPair(g)){if(d.isMap(g)){g.items.length>1&&b("Each pair must have its own sequence indicator");let a=g.items[0]||new e.Pair(new f.Scalar(null));if(g.commentBefore&&(a.key.commentBefore=a.key.commentBefore?`${g.commentBefore}
15
+ ${n}${b}`:"\n"}}return a?(m+="\n"+f.indentComment(o(a),n),l&&l()):q&&k&&k(),m})(a,b,c)}},47544,(a,b,c)=>{"use strict";var d=a.r(11144),e=a.r(98155),f=a.r(35249),g=a.r(27267),h=a.r(17602),i=a.r(27853);function j(a,b){let c=g.isScalar(b)?b.value:b;for(let d of a)if(g.isPair(d)&&(d.key===b||d.key===c||g.isScalar(d.key)&&d.key.value===c))return d}class k extends f.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(a){super(g.MAP,a),this.items=[]}static from(a,b,c){let{keepUndefined:d,replacer:e}=c,f=new this(a),g=(a,g)=>{if("function"==typeof e)g=e.call(b,a,g);else if(Array.isArray(e)&&!e.includes(a))return;(void 0!==g||d)&&f.items.push(h.createPair(a,g,c))};if(b instanceof Map)for(let[a,c]of b)g(a,c);else if(b&&"object"==typeof b)for(let a of Object.keys(b))g(a,b[a]);return"function"==typeof a.sortMapEntries&&f.items.sort(a.sortMapEntries),f}add(a,b){let c;c=g.isPair(a)?a:a&&"object"==typeof a&&"key"in a?new h.Pair(a.key,a.value):new h.Pair(a,a?.value);let d=j(this.items,c.key),e=this.schema?.sortMapEntries;if(d){if(!b)throw Error(`Key ${c.key} already set`);g.isScalar(d.value)&&i.isScalarValue(c.value)?d.value.value=c.value:d.value=c.value}else if(e){let a=this.items.findIndex(a=>0>e(c,a));-1===a?this.items.push(c):this.items.splice(a,0,c)}else this.items.push(c)}delete(a){let b=j(this.items,a);return!!b&&this.items.splice(this.items.indexOf(b),1).length>0}get(a,b){let c=j(this.items,a),d=c?.value;return(!b&&g.isScalar(d)?d.value:d)??void 0}has(a){return!!j(this.items,a)}set(a,b){this.add(new h.Pair(a,b),!0)}toJSON(a,b,c){let d=c?new c:b?.mapAsMap?new Map:{};for(let a of(b?.onCreate&&b.onCreate(d),this.items))e.addPairToJSMap(b,d,a);return d}toString(a,b,c){if(!a)return JSON.stringify(this);for(let a of this.items)if(!g.isPair(a))throw Error(`Map items must all be pairs; found ${JSON.stringify(a)} instead`);return!a.allNullValues&&this.hasAllNullValues(!1)&&(a=Object.assign({},a,{allNullValues:!0})),d.stringifyCollection(this,a,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:a.indent||"",onChompKeep:c,onComment:b})}}c.YAMLMap=k,c.findPair=j},62709,(a,b,c)=>{"use strict";var d=a.r(27267),e=a.r(47544);c.map={collection:"map",default:!0,nodeClass:e.YAMLMap,tag:"tag:yaml.org,2002:map",resolve:(a,b)=>(d.isMap(a)||b("Expected a mapping for this tag"),a),createNode:(a,b,c)=>e.YAMLMap.from(a,b,c)}},7621,(a,b,c)=>{"use strict";var d=a.r(10882),e=a.r(11144),f=a.r(35249),g=a.r(27267),h=a.r(27853),i=a.r(94);class j extends f.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(a){super(g.SEQ,a),this.items=[]}add(a){this.items.push(a)}delete(a){let b=k(a);return"number"==typeof b&&this.items.splice(b,1).length>0}get(a,b){let c=k(a);if("number"!=typeof c)return;let d=this.items[c];return!b&&g.isScalar(d)?d.value:d}has(a){let b=k(a);return"number"==typeof b&&b<this.items.length}set(a,b){let c=k(a);if("number"!=typeof c)throw Error(`Expected a valid index, not ${a}.`);let d=this.items[c];g.isScalar(d)&&h.isScalarValue(b)?d.value=b:this.items[c]=b}toJSON(a,b){let c=[];b?.onCreate&&b.onCreate(c);let d=0;for(let a of this.items)c.push(i.toJS(a,String(d++),b));return c}toString(a,b,c){return a?e.stringifyCollection(this,a,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(a.indent||"")+" ",onChompKeep:c,onComment:b}):JSON.stringify(this)}static from(a,b,c){let{replacer:e}=c,f=new this(a);if(b&&Symbol.iterator in Object(b)){let a=0;for(let g of b){if("function"==typeof e){let c=b instanceof Set?g:String(a++);g=e.call(b,c,g)}f.items.push(d.createNode(g,void 0,c))}}return f}}function k(a){let b=g.isScalar(a)?a.value:a;return b&&"string"==typeof b&&(b=Number(b)),"number"==typeof b&&Number.isInteger(b)&&b>=0?b:null}c.YAMLSeq=j},33507,(a,b,c)=>{"use strict";var d=a.r(27267),e=a.r(7621);c.seq={collection:"seq",default:!0,nodeClass:e.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve:(a,b)=>(d.isSeq(a)||b("Expected a sequence for this tag"),a),createNode:(a,b,c)=>e.YAMLSeq.from(a,b,c)}},50357,(a,b,c)=>{"use strict";var d=a.r(88583);c.string={identify:a=>"string"==typeof a,default:!0,tag:"tag:yaml.org,2002:str",resolve:a=>a,stringify:(a,b,c,e)=>(b=Object.assign({actualString:!0},b),d.stringifyString(a,b,c,e))}},70833,(a,b,c)=>{"use strict";var d=a.r(27853);let e={identify:a=>null==a,createNode:()=>new d.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new d.Scalar(null),stringify:({source:a},b)=>"string"==typeof a&&e.test.test(a)?a:b.options.nullStr};c.nullTag=e},91642,(a,b,c)=>{"use strict";var d=a.r(27853);let e={identify:a=>"boolean"==typeof a,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:a=>new d.Scalar("t"===a[0]||"T"===a[0]),stringify:({source:a,value:b},c)=>a&&e.test.test(a)&&b===("t"===a[0]||"T"===a[0])?a:b?c.options.trueStr:c.options.falseStr};c.boolTag=e},66050,(a,b,c)=>{"use strict";c.stringifyNumber=function({format:a,minFractionDigits:b,tag:c,value:d}){if("bigint"==typeof d)return String(d);let e="number"==typeof d?d:Number(d);if(!isFinite(e))return isNaN(e)?".nan":e<0?"-.inf":".inf";let f=Object.is(d,-0)?"-0":JSON.stringify(d);if(!a&&b&&(!c||"tag:yaml.org,2002:float"===c)&&/^-?\d/.test(f)&&!f.includes("e")){let a=f.indexOf(".");a<0&&(a=f.length,f+=".");let c=b-(f.length-a-1);for(;c-- >0;)f+="0"}return f}},40967,(a,b,c)=>{"use strict";var d=a.r(27853),e=a.r(66050);let f={identify:a=>"number"==typeof a,default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:a=>"nan"===a.slice(-3).toLowerCase()?NaN:"-"===a[0]?-1/0:1/0,stringify:e.stringifyNumber};c.float={identify:a=>"number"==typeof a,default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(a){let b=new d.Scalar(parseFloat(a)),c=a.indexOf(".");return -1!==c&&"0"===a[a.length-1]&&(b.minFractionDigits=a.length-c-1),b},stringify:e.stringifyNumber},c.floatExp={identify:a=>"number"==typeof a,default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:a=>parseFloat(a),stringify(a){let b=Number(a.value);return isFinite(b)?b.toExponential():e.stringifyNumber(a)}},c.floatNaN=f},41069,(a,b,c)=>{"use strict";var d=a.r(66050);let e=a=>"bigint"==typeof a||Number.isInteger(a),f=(a,b,c,{intAsBigInt:d})=>d?BigInt(a):parseInt(a.substring(b),c);function g(a,b,c){let{value:f}=a;return e(f)&&f>=0?c+f.toString(b):d.stringifyNumber(a)}c.int={identify:e,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(a,b,c)=>f(a,0,10,c),stringify:d.stringifyNumber},c.intHex={identify:a=>e(a)&&a>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(a,b,c)=>f(a,2,16,c),stringify:a=>g(a,16,"0x")},c.intOct={identify:a=>e(a)&&a>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(a,b,c)=>f(a,2,8,c),stringify:a=>g(a,8,"0o")}},46145,(a,b,c)=>{"use strict";var d=a.r(62709),e=a.r(70833),f=a.r(33507),g=a.r(50357),h=a.r(91642),i=a.r(40967),j=a.r(41069);c.schema=[d.map,f.seq,g.string,e.nullTag,h.boolTag,j.intOct,j.int,j.intHex,i.floatNaN,i.floatExp,i.float]},35501,(a,b,c)=>{"use strict";var d=a.r(27853),e=a.r(62709),f=a.r(33507);function g(a){return"bigint"==typeof a||Number.isInteger(a)}let h=({value:a})=>JSON.stringify(a),i=[{identify:a=>"string"==typeof a,default:!0,tag:"tag:yaml.org,2002:str",resolve:a=>a,stringify:h},{identify:a=>null==a,createNode:()=>new d.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:h},{identify:a=>"boolean"==typeof a,default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:a=>"true"===a,stringify:h},{identify:g,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(a,b,{intAsBigInt:c})=>c?BigInt(a):parseInt(a,10),stringify:({value:a})=>g(a)?a.toString():JSON.stringify(a)},{identify:a=>"number"==typeof a,default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:a=>parseFloat(a),stringify:h}];c.schema=[e.map,f.seq].concat(i,{default:!0,tag:"",test:/^/,resolve:(a,b)=>(b(`Unresolved plain scalar ${JSON.stringify(a)}`),a)})},81475,(a,b,c)=>{"use strict";var d=a.r(874),e=a.r(27853),f=a.r(88583);c.binary={identify:a=>a instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(a,b){if("function"==typeof d.Buffer)return d.Buffer.from(a,"base64");if("function"!=typeof atob)return b("This environment does not support reading binary tags; either Buffer or atob is required"),a;{let b=atob(a.replace(/[\n\r]/g,"")),c=new Uint8Array(b.length);for(let a=0;a<b.length;++a)c[a]=b.charCodeAt(a);return c}},stringify({comment:a,type:b,value:c},g,h,i){let j;if(!c)return"";if("function"==typeof d.Buffer)j=c instanceof d.Buffer?c.toString("base64"):d.Buffer.from(c.buffer).toString("base64");else if("function"==typeof btoa){let a="";for(let b=0;b<c.length;++b)a+=String.fromCharCode(c[b]);j=btoa(a)}else throw Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(b??(b=e.Scalar.BLOCK_LITERAL),b!==e.Scalar.QUOTE_DOUBLE){let a=Math.max(g.options.lineWidth-g.indent.length,g.options.minContentWidth),c=Math.ceil(j.length/a),d=Array(c);for(let b=0,e=0;b<c;++b,e+=a)d[b]=j.substr(e,a);j=d.join(b===e.Scalar.BLOCK_LITERAL?"\n":" ")}return f.stringifyString({comment:a,type:b,value:j},g,h,i)}}},26609,(a,b,c)=>{"use strict";var d=a.r(27267),e=a.r(17602),f=a.r(27853),g=a.r(7621);function h(a,b){if(d.isSeq(a))for(let c=0;c<a.items.length;++c){let g=a.items[c];if(!d.isPair(g)){if(d.isMap(g)){g.items.length>1&&b("Each pair must have its own sequence indicator");let a=g.items[0]||new e.Pair(new f.Scalar(null));if(g.commentBefore&&(a.key.commentBefore=a.key.commentBefore?`${g.commentBefore}
16
16
  ${a.key.commentBefore}`:g.commentBefore),g.comment){let b=a.value??a.key;b.comment=b.comment?`${g.comment}
17
17
  ${b.comment}`:g.comment}g=a}a.items[c]=d.isPair(g)?g:new e.Pair(g)}}else b("Expected a sequence for this tag");return a}function i(a,b,c){let{replacer:d}=c,f=new g.YAMLSeq(a);f.tag="tag:yaml.org,2002:pairs";let h=0;if(b&&Symbol.iterator in Object(b))for(let a of b){let g,i;if("function"==typeof d&&(a=d.call(b,String(h++),a)),Array.isArray(a))if(2===a.length)g=a[0],i=a[1];else throw TypeError(`Expected [key, value] tuple: ${a}`);else if(a&&a instanceof Object){let b=Object.keys(a);if(1===b.length)i=a[g=b[0]];else throw TypeError(`Expected tuple with one key, not ${b.length} keys`)}else g=a;f.items.push(e.createPair(g,i,c))}return f}c.createPairs=i,c.pairs={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:h,createNode:i},c.resolvePairs=h},85441,(a,b,c)=>{"use strict";var d=a.r(27267),e=a.r(94),f=a.r(47544),g=a.r(7621),h=a.r(26609);class i extends g.YAMLSeq{constructor(){super(),this.add=f.YAMLMap.prototype.add.bind(this),this.delete=f.YAMLMap.prototype.delete.bind(this),this.get=f.YAMLMap.prototype.get.bind(this),this.has=f.YAMLMap.prototype.has.bind(this),this.set=f.YAMLMap.prototype.set.bind(this),this.tag=i.tag}toJSON(a,b){if(!b)return super.toJSON(a);let c=new Map;for(let a of(b?.onCreate&&b.onCreate(c),this.items)){let f,g;if(d.isPair(a)?(f=e.toJS(a.key,"",b),g=e.toJS(a.value,f,b)):f=e.toJS(a,"",b),c.has(f))throw Error("Ordered maps must not include duplicate keys");c.set(f,g)}return c}static from(a,b,c){let d=h.createPairs(a,b,c),e=new this;return e.items=d.items,e}}i.tag="tag:yaml.org,2002:omap",c.YAMLOMap=i,c.omap={collection:"seq",identify:a=>a instanceof Map,nodeClass:i,default:!1,tag:"tag:yaml.org,2002:omap",resolve(a,b){let c=h.resolvePairs(a,b),e=[];for(let{key:a}of c.items)d.isScalar(a)&&(e.includes(a.value)?b(`Ordered maps must not include duplicate keys: ${a.value}`):e.push(a.value));return Object.assign(new i,c)},createNode:(a,b,c)=>i.from(a,b,c)}},16616,(a,b,c)=>{"use strict";var d=a.r(27853);function e({value:a,source:b},c){let d=a?f:g;return b&&d.test.test(b)?b:a?c.options.trueStr:c.options.falseStr}let f={identify:a=>!0===a,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new d.Scalar(!0),stringify:e},g={identify:a=>!1===a,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new d.Scalar(!1),stringify:e};c.falseTag=g,c.trueTag=f},22577,(a,b,c)=>{"use strict";var d=a.r(27853),e=a.r(66050);let f={identify:a=>"number"==typeof a,default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:a=>"nan"===a.slice(-3).toLowerCase()?NaN:"-"===a[0]?-1/0:1/0,stringify:e.stringifyNumber};c.float={identify:a=>"number"==typeof a,default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(a){let b=new d.Scalar(parseFloat(a.replace(/_/g,""))),c=a.indexOf(".");if(-1!==c){let d=a.substring(c+1).replace(/_/g,"");"0"===d[d.length-1]&&(b.minFractionDigits=d.length)}return b},stringify:e.stringifyNumber},c.floatExp={identify:a=>"number"==typeof a,default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:a=>parseFloat(a.replace(/_/g,"")),stringify(a){let b=Number(a.value);return isFinite(b)?b.toExponential():e.stringifyNumber(a)}},c.floatNaN=f},67915,(a,b,c)=>{"use strict";var d=a.r(66050);let e=a=>"bigint"==typeof a||Number.isInteger(a);function f(a,b,c,{intAsBigInt:d}){let e=a[0];if(("-"===e||"+"===e)&&(b+=1),a=a.substring(b).replace(/_/g,""),d){switch(c){case 2:a=`0b${a}`;break;case 8:a=`0o${a}`;break;case 16:a=`0x${a}`}let b=BigInt(a);return"-"===e?BigInt(-1)*b:b}let g=parseInt(a,c);return"-"===e?-1*g:g}function g(a,b,c){let{value:f}=a;if(e(f)){let a=f.toString(b);return f<0?"-"+c+a.substr(1):c+a}return d.stringifyNumber(a)}c.int={identify:e,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(a,b,c)=>f(a,0,10,c),stringify:d.stringifyNumber},c.intBin={identify:e,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(a,b,c)=>f(a,2,2,c),stringify:a=>g(a,2,"0b")},c.intHex={identify:e,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(a,b,c)=>f(a,2,16,c),stringify:a=>g(a,16,"0x")},c.intOct={identify:e,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(a,b,c)=>f(a,1,8,c),stringify:a=>g(a,8,"0")}},83720,(a,b,c)=>{"use strict";var d=a.r(27267),e=a.r(17602),f=a.r(47544);class g extends f.YAMLMap{constructor(a){super(a),this.tag=g.tag}add(a){let b;b=d.isPair(a)?a:a&&"object"==typeof a&&"key"in a&&"value"in a&&null===a.value?new e.Pair(a.key,null):new e.Pair(a,null),f.findPair(this.items,b.key)||this.items.push(b)}get(a,b){let c=f.findPair(this.items,a);return!b&&d.isPair(c)?d.isScalar(c.key)?c.key.value:c.key:c}set(a,b){if("boolean"!=typeof b)throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof b}`);let c=f.findPair(this.items,a);c&&!b?this.items.splice(this.items.indexOf(c),1):!c&&b&&this.items.push(new e.Pair(a))}toJSON(a,b){return super.toJSON(a,b,Set)}toString(a,b,c){if(!a)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},a,{allNullValues:!0}),b,c);throw Error("Set items must all have null values")}static from(a,b,c){let{replacer:d}=c,f=new this(a);if(b&&Symbol.iterator in Object(b))for(let a of b)"function"==typeof d&&(a=d.call(b,a,a)),f.items.push(e.createPair(a,null,c));return f}}g.tag="tag:yaml.org,2002:set",c.YAMLSet=g,c.set={collection:"map",identify:a=>a instanceof Set,nodeClass:g,default:!1,tag:"tag:yaml.org,2002:set",createNode:(a,b,c)=>g.from(a,b,c),resolve(a,b){if(d.isMap(a))if(a.hasAllNullValues(!0))return Object.assign(new g,a);else b("Set items must all have null values");else b("Expected a mapping for this tag");return a}}},3599,(a,b,c)=>{"use strict";var d=a.r(66050);function e(a,b){let c=a[0],d="-"===c||"+"===c?a.substring(1):a,e=a=>b?BigInt(a):Number(a),f=d.replace(/_/g,"").split(":").reduce((a,b)=>a*e(60)+e(b),e(0));return"-"===c?e(-1)*f:f}function f(a){let{value:b}=a,c=a=>a;if("bigint"==typeof b)c=a=>BigInt(a);else if(isNaN(b)||!isFinite(b))return d.stringifyNumber(a);let e="";b<0&&(e="-",b*=c(-1));let f=c(60),g=[b%f];return b<60?g.unshift(0):(b=(b-g[0])/f,g.unshift(b%f),b>=60&&(b=(b-g[0])/f,g.unshift(b))),e+g.map(a=>String(a).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}let g={identify:a=>a instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(a){let b=a.match(g.test);if(!b)throw Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,c,d,f,h,i,j]=b.map(Number),k=Date.UTC(c,d-1,f,h||0,i||0,j||0,b[7]?Number((b[7]+"00").substr(1,3)):0),l=b[8];if(l&&"Z"!==l){let a=e(l,!1);30>Math.abs(a)&&(a*=60),k-=6e4*a}return new Date(k)},stringify:({value:a})=>a?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};c.floatTime={identify:a=>"number"==typeof a,default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:a=>e(a,!1),stringify:f},c.intTime={identify:a=>"bigint"==typeof a||Number.isInteger(a),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(a,b,{intAsBigInt:c})=>e(a,c),stringify:f},c.timestamp=g},7049,(a,b,c)=>{"use strict";var d=a.r(62709),e=a.r(70833),f=a.r(33507),g=a.r(50357),h=a.r(81475),i=a.r(16616),j=a.r(22577),k=a.r(67915),l=a.r(57876),m=a.r(85441),n=a.r(26609),o=a.r(83720),p=a.r(3599);c.schema=[d.map,f.seq,g.string,e.nullTag,i.trueTag,i.falseTag,k.intBin,k.intOct,k.int,k.intHex,j.floatNaN,j.floatExp,j.float,h.binary,l.merge,m.omap,n.pairs,o.set,p.intTime,p.floatTime,p.timestamp]},33572,(a,b,c)=>{"use strict";var d=a.r(62709),e=a.r(70833),f=a.r(33507),g=a.r(50357),h=a.r(91642),i=a.r(40967),j=a.r(41069),k=a.r(46145),l=a.r(35501),m=a.r(81475),n=a.r(57876),o=a.r(85441),p=a.r(26609),q=a.r(7049),r=a.r(83720),s=a.r(3599);let t=new Map([["core",k.schema],["failsafe",[d.map,f.seq,g.string]],["json",l.schema],["yaml11",q.schema],["yaml-1.1",q.schema]]),u={binary:m.binary,bool:h.boolTag,float:i.float,floatExp:i.floatExp,floatNaN:i.floatNaN,floatTime:s.floatTime,int:j.int,intHex:j.intHex,intOct:j.intOct,intTime:s.intTime,map:d.map,merge:n.merge,null:e.nullTag,omap:o.omap,pairs:p.pairs,seq:f.seq,set:r.set,timestamp:s.timestamp};c.coreKnownTags={"tag:yaml.org,2002:binary":m.binary,"tag:yaml.org,2002:merge":n.merge,"tag:yaml.org,2002:omap":o.omap,"tag:yaml.org,2002:pairs":p.pairs,"tag:yaml.org,2002:set":r.set,"tag:yaml.org,2002:timestamp":s.timestamp},c.getTags=function(a,b,c){let d=t.get(b);if(d&&!a)return c&&!d.includes(n.merge)?d.concat(n.merge):d.slice();let e=d;if(!e)if(Array.isArray(a))e=[];else{let a=Array.from(t.keys()).filter(a=>"yaml11"!==a).map(a=>JSON.stringify(a)).join(", ");throw Error(`Unknown schema "${b}"; use one of ${a} or define customTags array`)}if(Array.isArray(a))for(let b of a)e=e.concat(b);else"function"==typeof a&&(e=a(e.slice()));return c&&(e=e.concat(n.merge)),e.reduce((a,b)=>{let c="string"==typeof b?u[b]:b;if(!c){let a=JSON.stringify(b),c=Object.keys(u).map(a=>JSON.stringify(a)).join(", ");throw Error(`Unknown custom tag ${a}; use one of ${c}`)}return a.includes(c)||a.push(c),a},[])}},98027,(a,b,c)=>{"use strict";var d=a.r(27267),e=a.r(62709),f=a.r(33507),g=a.r(50357),h=a.r(33572);let i=(a,b)=>a.key<b.key?-1:+(a.key>b.key);c.Schema=class a{constructor({compat:a,customTags:b,merge:c,resolveKnownTags:j,schema:k,sortMapEntries:l,toStringDefaults:m}){this.compat=Array.isArray(a)?h.getTags(a,"compat"):a?h.getTags(null,a):null,this.name="string"==typeof k&&k||"core",this.knownTags=j?h.coreKnownTags:{},this.tags=h.getTags(b,this.name,c),this.toStringOptions=m??null,Object.defineProperty(this,d.MAP,{value:e.map}),Object.defineProperty(this,d.SCALAR,{value:g.string}),Object.defineProperty(this,d.SEQ,{value:f.seq}),this.sortMapEntries="function"==typeof l?l:!0===l?i:null}clone(){let b=Object.create(a.prototype,Object.getOwnPropertyDescriptors(this));return b.tags=this.tags.slice(),b}}},5950,(a,b,c)=>{"use strict";var d=a.r(27267),e=a.r(7687),f=a.r(53074);c.stringifyDocument=function(a,b){let c=[],g=!0===b.directives;if(!1!==b.directives&&a.directives){let b=a.directives.toString(a);b?(c.push(b),g=!0):a.directives.docStart&&(g=!0)}g&&c.push("---");let h=e.createStringifyContext(a,b),{commentString:i}=h.options;if(a.commentBefore){1!==c.length&&c.unshift("");let b=i(a.commentBefore);c.unshift(f.indentComment(b,""))}let j=!1,k=null;if(a.contents){if(d.isNode(a.contents)){if(a.contents.spaceBefore&&g&&c.push(""),a.contents.commentBefore){let b=i(a.contents.commentBefore);c.push(f.indentComment(b,""))}h.forceBlockIndent=!!a.comment,k=a.contents.comment}let b=k?void 0:()=>j=!0,l=e.stringify(a.contents,h,()=>k=null,b);k&&(l+=f.lineComment(l,"",i(k))),("|"===l[0]||">"===l[0])&&"---"===c[c.length-1]?c[c.length-1]=`--- ${l}`:c.push(l)}else c.push(e.stringify(a.contents,h));if(a.directives?.docEnd)if(a.comment){let b=i(a.comment);b.includes("\n")?(c.push("..."),c.push(f.indentComment(b,""))):c.push(`... ${b}`)}else c.push("...");else{let b=a.comment;b&&j&&(b=b.replace(/^\n+/,"")),b&&((!j||k)&&""!==c[c.length-1]&&c.push(""),c.push(f.indentComment(i(b),"")))}return c.join("\n")+"\n"}},85774,(a,b,c)=>{"use strict";var d=a.r(21562),e=a.r(35249),f=a.r(27267),g=a.r(17602),h=a.r(94),i=a.r(98027),j=a.r(5950),k=a.r(10937),l=a.r(59588),m=a.r(10882),n=a.r(74957);function o(a){if(f.isCollection(a))return!0;throw Error("Expected a YAML collection as document contents")}c.Document=class a{constructor(a,b,c){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,f.NODE_TYPE,{value:f.DOC});let d=null;"function"==typeof b||Array.isArray(b)?d=b:void 0===c&&b&&(c=b,b=void 0);const e=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},c);this.options=e;let{version:g}=e;c?._directives?(this.directives=c._directives.atDocument(),this.directives.yaml.explicit&&(g=this.directives.yaml.version)):this.directives=new n.Directives({version:g}),this.setSchema(g,c),this.contents=void 0===a?null:this.createNode(a,d,c)}clone(){let b=Object.create(a.prototype,{[f.NODE_TYPE]:{value:f.DOC}});return b.commentBefore=this.commentBefore,b.comment=this.comment,b.errors=this.errors.slice(),b.warnings=this.warnings.slice(),b.options=Object.assign({},this.options),this.directives&&(b.directives=this.directives.clone()),b.schema=this.schema.clone(),b.contents=f.isNode(this.contents)?this.contents.clone(b.schema):this.contents,this.range&&(b.range=this.range.slice()),b}add(a){o(this.contents)&&this.contents.add(a)}addIn(a,b){o(this.contents)&&this.contents.addIn(a,b)}createAlias(a,b){if(!a.anchor){let c=k.anchorNames(this);a.anchor=!b||c.has(b)?k.findNewAnchor(b||"a",c):b}return new d.Alias(a.anchor)}createNode(a,b,c){let d;if("function"==typeof b)a=b.call({"":a},"",a),d=b;else if(Array.isArray(b)){let a=b.filter(a=>"number"==typeof a||a instanceof String||a instanceof Number).map(String);a.length>0&&(b=b.concat(a)),d=b}else void 0===c&&b&&(c=b,b=void 0);let{aliasDuplicateObjects:e,anchorPrefix:g,flow:h,keepUndefined:i,onTagObj:j,tag:l}=c??{},{onAnchor:n,setAnchors:o,sourceObjects:p}=k.createNodeAnchors(this,g||"a"),q={aliasDuplicateObjects:e??!0,keepUndefined:i??!1,onAnchor:n,onTagObj:j,replacer:d,schema:this.schema,sourceObjects:p},r=m.createNode(a,l,q);return h&&f.isCollection(r)&&(r.flow=!0),o(),r}createPair(a,b,c={}){let d=this.createNode(a,null,c),e=this.createNode(b,null,c);return new g.Pair(d,e)}delete(a){return!!o(this.contents)&&this.contents.delete(a)}deleteIn(a){return e.isEmptyPath(a)?null!=this.contents&&(this.contents=null,!0):!!o(this.contents)&&this.contents.deleteIn(a)}get(a,b){return f.isCollection(this.contents)?this.contents.get(a,b):void 0}getIn(a,b){return e.isEmptyPath(a)?!b&&f.isScalar(this.contents)?this.contents.value:this.contents:f.isCollection(this.contents)?this.contents.getIn(a,b):void 0}has(a){return!!f.isCollection(this.contents)&&this.contents.has(a)}hasIn(a){return e.isEmptyPath(a)?void 0!==this.contents:!!f.isCollection(this.contents)&&this.contents.hasIn(a)}set(a,b){null==this.contents?this.contents=e.collectionFromPath(this.schema,[a],b):o(this.contents)&&this.contents.set(a,b)}setIn(a,b){e.isEmptyPath(a)?this.contents=b:null==this.contents?this.contents=e.collectionFromPath(this.schema,Array.from(a),b):o(this.contents)&&this.contents.setIn(a,b)}setSchema(a,b={}){let c;switch("number"==typeof a&&(a=String(a)),a){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new n.Directives({version:"1.1"}),c={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=a:this.directives=new n.Directives({version:a}),c={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,c=null;break;default:{let b=JSON.stringify(a);throw Error(`Expected '1.1', '1.2' or null as first argument, but found: ${b}`)}}if(b.schema instanceof Object)this.schema=b.schema;else if(c)this.schema=new i.Schema(Object.assign(c,b));else throw Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:a,jsonArg:b,mapAsMap:c,maxAliasCount:d,onAnchor:e,reviver:f}={}){let g={anchors:new Map,doc:this,keep:!a,mapAsMap:!0===c,mapKeyWarned:!1,maxAliasCount:"number"==typeof d?d:100},i=h.toJS(this.contents,b??"",g);if("function"==typeof e)for(let{count:a,res:b}of g.anchors.values())e(b,a);return"function"==typeof f?l.applyReviver(f,{"":i},"",i):i}toJSON(a,b){return this.toJS({json:!0,jsonArg:a,mapAsMap:!1,onAnchor:b})}toString(a={}){if(this.errors.length>0)throw Error("Document with errors cannot be stringified");if("indent"in a&&(!Number.isInteger(a.indent)||0>=Number(a.indent))){let b=JSON.stringify(a.indent);throw Error(`"indent" option must be a positive integer, not ${b}`)}return j.stringifyDocument(this,a)}}},25717,(a,b,c)=>{"use strict";class d extends Error{constructor(a,b,c,d){super(),this.name=a,this.code=c,this.message=d,this.pos=b}}c.YAMLError=d,c.YAMLParseError=class extends d{constructor(a,b,c){super("YAMLParseError",a,b,c)}},c.YAMLWarning=class extends d{constructor(a,b,c){super("YAMLWarning",a,b,c)}},c.prettifyError=(a,b)=>c=>{if(-1===c.pos[0])return;c.linePos=c.pos.map(a=>b.linePos(a));let{line:d,col:e}=c.linePos[0];c.message+=` at line ${d}, column ${e}`;let f=e-1,g=a.substring(b.lineStarts[d-1],b.lineStarts[d]).replace(/[\n\r]+$/,"");if(f>=60&&g.length>80){let a=Math.min(f-39,g.length-79);g="…"+g.substring(a),f-=a-1}if(g.length>80&&(g=g.substring(0,79)+"…"),d>1&&/^ *$/.test(g.substring(0,f))){let c=a.substring(b.lineStarts[d-2],b.lineStarts[d-1]);c.length>80&&(c=c.substring(0,79)+"…\n"),g=c+g}if(/[^ ]/.test(g)){let a=1,b=c.linePos[1];b?.line===d&&b.col>e&&(a=Math.max(1,Math.min(b.col-e,80-f)));let h=" ".repeat(f)+"^".repeat(a);c.message+=`:
18
18
 
@@ -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"===j?`file://${k}`:x,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=y(a);if((0,c.existsSync)(e))try{(0,c.readFileSync)(e,"utf8").includes(i.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=y(d);if(!(0,c.existsSync)(b))return!1;return(0,c.readFileSync)(b,"utf8").includes(i.FAILPROOFAI_HOOK_MARKER)}catch{return!1}},detectInstalled:()=>q("opencode")};function A(){let a=process.env.FAILPROOFAI_PACKAGE_ROOT;return a?(0,d.resolve)(a,"pi-extension"):(0,d.resolve)((0,e.fileURLToPath)(j.url),"..","..","..","pi-extension")}function B(a){return"string"==typeof a&&(!!/(?:^|\/)pi-extension\/?$/.test(a)||a.includes("pi-extension")&&a.includes("failproofai"))}let C={id:"pi",displayName:"Pi",scopes:i.PI_HOOK_SCOPES,eventTypes:i.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=>k(a),writeSettings(a,b){l(a,b)},buildHookEntry:(a,b,c)=>({[i.FAILPROOFAI_HOOK_MARKER]:!0,_piPackagePath:A(),_piScope:c}),isFailproofaiHook:a=>"string"==typeof a?B(a):!!a&&"object"==typeof a&&(!0===a[i.FAILPROOFAI_HOOK_MARKER]||"string"==typeof a.source&&B(a.source)),writeHookEntries(a,b,c){var e;let f,g,h;Array.isArray(a.packages)||(a.packages=[]);let i=A(),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=>B(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=>!B(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=>B(a))}catch{return!1}},detectInstalled:()=>q("pi")},D={id:"hermes",displayName:"Hermes",scopes:i.HERMES_HOOK_SCOPES,eventTypes:i.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=>m(a),writeSettings(a,b){n(a,b)},buildHookEntry:(a,b,c)=>({command:"project"===c?`npx -y failproofai --hook ${b} --cli hermes`:`"${a}" --hook ${b} --cli hermes`,timeout:30,[i.FAILPROOFAI_HOOK_MARKER]:!0}),isFailproofaiHook:o,writeHookEntries(a,b,c){let d=a.toJS()??{},e=d.hooks&&"object"==typeof d.hooks?d.hooks:{};for(let a of i.HERMES_HOOK_EVENT_TYPES){let d=this.buildHookEntry(b,a,c),f=Array.isArray(e[a])?e[a]:[],g=f.findIndex(a=>o(a));g>=0?f[g]=d:f.push(d),e[a]=f}a.set("hooks",e),a.set("hooks_auto_accept",!0)},removeHooksFromFile(a){if(!(0,c.existsSync)(a))return 0;let b=m(a),d=(b.toJS()??{}).hooks,e=0;if(d&&"object"==typeof d){for(let a of Object.keys(d)){let b=d[a];if(!Array.isArray(b))continue;let c=b.length,f=b.filter(a=>!o(a));e+=c-f.length,0===f.length?delete d[a]:d[a]=f}e>0&&(0===Object.keys(d).length?b.delete("hooks"):b.set("hooks",d))}let f=b.delete("hooks_auto_accept");return(e>0||f)&&n(a,b),e},hooksInstalledInSettings(a,b){let d=r(this,a,b);return d.length>0&&d.every(a=>(function(a){if(!(0,c.existsSync)(a))return!1;try{let b=(m(a).toJS()??{}).hooks;if(!b||"object"!=typeof b)return!1;for(let a of Object.values(b))if(Array.isArray(a)&&a.some(a=>o(a)))return!0}catch{}return!1})(a))},detectInstalled:()=>q("hermes")},E="failproofai";function F(){let a=process.env.FAILPROOFAI_PACKAGE_ROOT;return a?(0,d.resolve)(a,"openclaw-plugin"):(0,d.resolve)((0,e.fileURLToPath)(j.url),"..","..","..","openclaw-plugin")}function G(a){return"string"==typeof a&&(/(?:^|\/)openclaw-plugin\/?$/.test(a)||a.includes("openclaw-plugin")&&a.includes("failproofai"))}let H={id:"openclaw",displayName:"OpenClaw",scopes:i.OPENCLAW_HOOK_SCOPES,eventTypes:i.OPENCLAW_HOOK_EVENT_TYPES,getSettingsPath:()=>(0,d.resolve)((0,f.homedir)(),".openclaw","openclaw.json"),readSettings:a=>k(a),writeSettings(a,b){l(a,b)},buildHookEntry:()=>({[i.FAILPROOFAI_HOOK_MARKER]:!0,_openclawPluginPath:F()}),isFailproofaiHook:a=>"string"==typeof a?G(a):!!a&&"object"==typeof a&&(!0===a[i.FAILPROOFAI_HOOK_MARKER]||"string"==typeof a.source&&G(a.source)),writeHookEntries(a){let b=a.plugins??={},c=b.load??={};Array.isArray(c.paths)||(c.paths=[]);let d=F(),e=c.paths.findIndex(a=>G(a));e>=0?c.paths[e]=d:c.paths.push(d);let f=b.entries??={},g=f[E]??={};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=>!G(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&&E in d.entries&&(delete d.entries[E],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=this.getSettingsPath(a,b);if(!(0,c.existsSync)(d))return!1;try{let a=this.readSettings(d),b=a.plugins?.load?.paths,c=Array.isArray(b)&&b.some(a=>G(a)),e=a.plugins?.entries?.[E]?.enabled===!0;return c&&e}catch{return!1}},detectInstalled:()=>q("openclaw")},I={id:"factory",displayName:"Factory Droid",scopes:i.FACTORY_HOOK_SCOPES,eventTypes:i.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=>k(a),writeSettings(a,b){l(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,[i.FAILPROOFAI_HOOK_MARKER]:!0}),isFailproofaiHook:o,writeHookEntries(a,b,c){for(let d of i.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=>o(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=>!o(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=>o(a)))return!0}}catch{}return!1},detectInstalled:()=>q("droid")},J={id:"devin",displayName:"Devin CLI",scopes:i.DEVIN_HOOK_SCOPES,eventTypes:i.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=>k(a),writeSettings(a,b){l(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,[i.FAILPROOFAI_HOOK_MARKER]:!0}),isFailproofaiHook:o,writeHookEntries(a,b,c){for(let d of(a.hooks||(a.hooks={}),i.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=>o(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=>!o(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=>o(a)))return!0}}catch{}return!1},detectInstalled:()=>q("devin")},K="failproofai",L=new Set(["PreToolUse","PostToolUse"]);function M(a){if(!a||"object"!=typeof a)return!1;let b=a.command;return"string"==typeof b&&b.includes("failproofai")&&b.includes("--cli goose")}let N={claude:s,codex:t,copilot:v,cursor:w,opencode:z,pi:C,hermes:D,openclaw:H,factory:I,devin:J,antigravity:{id:"antigravity",displayName:"Antigravity CLI",scopes:i.ANTIGRAVITY_HOOK_SCOPES,eventTypes:i.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=>k(a),writeSettings(a,b){l(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,[i.FAILPROOFAI_HOOK_MARKER]:!0}),isFailproofaiHook:o,writeHookEntries(a,b,c){a[K]&&"object"==typeof a[K]||(a[K]={});let d=a[K];for(let a of i.ANTIGRAVITY_HOOK_EVENT_TYPES){let e=this.buildHookEntry(b,a,c);if(L.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=>o(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=>o(a));c>=0?b[c]=e:b.push(e)}}},removeHooksFromFile(a){let b=this.readSettings(a),c=b[K];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(L.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=>!o(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=>!o(a));d+=e-f.length,0===f.length?delete c[a]:c[a]=f}}return 0===Object.keys(c).length&&delete b[K],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)[K];if(!a||"object"!=typeof a)return!1;for(let b of Object.values(a))if(Array.isArray(b)){for(let a of b)if(o(a)||a&&Array.isArray(a.hooks)&&a.hooks.some(a=>o(a)))return!0}}catch{}return!1},detectInstalled:()=>q("agy")},goose:{id:"goose",displayName:"Goose",scopes:i.GOOSE_HOOK_SCOPES,eventTypes:i.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=>k(a),writeSettings(a,b){l(a,b)},buildHookEntry:(a,b,c)=>({type:"command",command:"project"===c?`npx -y failproofai --hook ${b} --cli goose`:`"${a}" --hook ${b} --cli goose`}),isFailproofaiHook:M,writeHookEntries(a,b,c){for(let d of(a.hooks||(a.hooks={}),i.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=>M(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=>!M(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=>M(a)))return!0}}catch{}return!1},detectInstalled:()=>q("goose")}};a.s(["claudeCode",0,s,"detectInstalledClis",0,function(){return i.INTEGRATION_TYPES.filter(a=>N[a]?.detectInstalled())},"getIntegration",0,function(a){let b=N[a];if(!b)throw Error(`"${a}" is audit-only — live-hook install is not supported for it yet. Installable: ${i.INTEGRATION_TYPES.filter(a=>void 0!==N[a]).join(", ")}`);return b},"listIntegrations",0,function(){return i.INTEGRATION_TYPES.map(a=>N[a]).filter(a=>void 0!==a)},"settingsPathsFor",0,r])},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`);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)}:{}})}}return{packs:j,errors:k}}],9909)},17280,1459,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}: ${E(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: ${E(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: ${E(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.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){let b=(0,d.resolve)((0,e.packsRoot)(),"installed.json"),f=[];if((0,c.existsSync)(b))try{let a=JSON.parse((0,c.readFileSync)(b,"utf8"));Array.isArray(a.packs)&&(f=a.packs)}catch{throw Error(`existing pack manifest at ${b} is unreadable; move it aside and re-add`)}let g=f.filter(b=>b?.sha256===a.sha256&&b?.id!==a.id).map(a=>a.id);if(!a.enabled){let b=f.find(a=>g.includes(a?.id)),c=b?.enabled?.filter(b=>a.policies?.some(a=>a?.name===b));c&&c.length>0&&(a.enabled=c)}let h=f.filter(a=>!g.includes(a?.id)),i=h.findIndex(b=>b?.id===a.id);return i>=0?h[i]=a:h.push(a),x(b,JSON.stringify({schemaVersion:1,packs:h},null,2)+"\n"),g}(E),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){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!1;try{b=JSON.parse((0,c.readFileSync)(f,"utf8"))}catch{return!1}let g=Array.isArray(b.packs)?b.packs:[],h=g.filter(b=>b?.id!==a);return h.length!==g.length&&(x(f,JSON.stringify({schemaVersion:1,packs:h},null,2)+"\n"),!0)},"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}}],17280),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([],1459)},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"===j?`file://${k}`:x,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=y(a);if((0,c.existsSync)(e))try{(0,c.readFileSync)(e,"utf8").includes(i.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=y(d);if(!(0,c.existsSync)(b))return!1;return(0,c.readFileSync)(b,"utf8").includes(i.FAILPROOFAI_HOOK_MARKER)}catch{return!1}},detectInstalled:()=>q("opencode")};function A(){let a=process.env.FAILPROOFAI_PACKAGE_ROOT;return a?(0,d.resolve)(a,"pi-extension"):(0,d.resolve)((0,e.fileURLToPath)(j.url),"..","..","..","pi-extension")}function B(a){return"string"==typeof a&&(!!/(?:^|\/)pi-extension\/?$/.test(a)||a.includes("pi-extension")&&a.includes("failproofai"))}let C={id:"pi",displayName:"Pi",scopes:i.PI_HOOK_SCOPES,eventTypes:i.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=>k(a),writeSettings(a,b){l(a,b)},buildHookEntry:(a,b,c)=>({[i.FAILPROOFAI_HOOK_MARKER]:!0,_piPackagePath:A(),_piScope:c}),isFailproofaiHook:a=>"string"==typeof a?B(a):!!a&&"object"==typeof a&&(!0===a[i.FAILPROOFAI_HOOK_MARKER]||"string"==typeof a.source&&B(a.source)),writeHookEntries(a,b,c){var e;let f,g,h;Array.isArray(a.packages)||(a.packages=[]);let i=A(),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=>B(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=>!B(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=>B(a))}catch{return!1}},detectInstalled:()=>q("pi")},D={id:"hermes",displayName:"Hermes",scopes:i.HERMES_HOOK_SCOPES,eventTypes:i.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=>m(a),writeSettings(a,b){n(a,b)},buildHookEntry:(a,b,c)=>({command:"project"===c?`npx -y failproofai --hook ${b} --cli hermes`:`"${a}" --hook ${b} --cli hermes`,timeout:30,[i.FAILPROOFAI_HOOK_MARKER]:!0}),isFailproofaiHook:o,writeHookEntries(a,b,c){let d=a.toJS()??{},e=d.hooks&&"object"==typeof d.hooks?d.hooks:{};for(let a of i.HERMES_HOOK_EVENT_TYPES){let d=this.buildHookEntry(b,a,c),f=Array.isArray(e[a])?e[a]:[],g=f.findIndex(a=>o(a));g>=0?f[g]=d:f.push(d),e[a]=f}a.set("hooks",e),a.set("hooks_auto_accept",!0)},removeHooksFromFile(a){if(!(0,c.existsSync)(a))return 0;let b=m(a),d=(b.toJS()??{}).hooks,e=0;if(d&&"object"==typeof d){for(let a of Object.keys(d)){let b=d[a];if(!Array.isArray(b))continue;let c=b.length,f=b.filter(a=>!o(a));e+=c-f.length,0===f.length?delete d[a]:d[a]=f}e>0&&(0===Object.keys(d).length?b.delete("hooks"):b.set("hooks",d))}let f=b.delete("hooks_auto_accept");return(e>0||f)&&n(a,b),e},hooksInstalledInSettings(a,b){let d=r(this,a,b);return d.length>0&&d.every(a=>(function(a){if(!(0,c.existsSync)(a))return!1;try{let b=(m(a).toJS()??{}).hooks;if(!b||"object"!=typeof b)return!1;for(let a of Object.values(b))if(Array.isArray(a)&&a.some(a=>o(a)))return!0}catch{}return!1})(a))},detectInstalled:()=>q("hermes")},E="failproofai";function F(){let a=process.env.FAILPROOFAI_PACKAGE_ROOT;return a?(0,d.resolve)(a,"openclaw-plugin"):(0,d.resolve)((0,e.fileURLToPath)(j.url),"..","..","..","openclaw-plugin")}function G(a){return"string"==typeof a&&(/(?:^|\/)openclaw-plugin\/?$/.test(a)||a.includes("openclaw-plugin")&&a.includes("failproofai"))}let H={id:"openclaw",displayName:"OpenClaw",scopes:i.OPENCLAW_HOOK_SCOPES,eventTypes:i.OPENCLAW_HOOK_EVENT_TYPES,getSettingsPath:()=>(0,d.resolve)((0,f.homedir)(),".openclaw","openclaw.json"),readSettings:a=>k(a),writeSettings(a,b){l(a,b)},buildHookEntry:()=>({[i.FAILPROOFAI_HOOK_MARKER]:!0,_openclawPluginPath:F()}),isFailproofaiHook:a=>"string"==typeof a?G(a):!!a&&"object"==typeof a&&(!0===a[i.FAILPROOFAI_HOOK_MARKER]||"string"==typeof a.source&&G(a.source)),writeHookEntries(a){let b=a.plugins??={},c=b.load??={};Array.isArray(c.paths)||(c.paths=[]);let d=F(),e=c.paths.findIndex(a=>G(a));e>=0?c.paths[e]=d:c.paths.push(d);let f=b.entries??={},g=f[E]??={};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=>!G(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&&E in d.entries&&(delete d.entries[E],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=this.getSettingsPath(a,b);if(!(0,c.existsSync)(d))return!1;try{let a=this.readSettings(d),b=a.plugins?.load?.paths,c=Array.isArray(b)&&b.some(a=>G(a)),e=a.plugins?.entries?.[E]?.enabled===!0;return c&&e}catch{return!1}},detectInstalled:()=>q("openclaw")},I={id:"factory",displayName:"Factory Droid",scopes:i.FACTORY_HOOK_SCOPES,eventTypes:i.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=>k(a),writeSettings(a,b){l(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,[i.FAILPROOFAI_HOOK_MARKER]:!0}),isFailproofaiHook:o,writeHookEntries(a,b,c){for(let d of i.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=>o(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=>!o(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=>o(a)))return!0}}catch{}return!1},detectInstalled:()=>q("droid")},J={id:"devin",displayName:"Devin CLI",scopes:i.DEVIN_HOOK_SCOPES,eventTypes:i.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=>k(a),writeSettings(a,b){l(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,[i.FAILPROOFAI_HOOK_MARKER]:!0}),isFailproofaiHook:o,writeHookEntries(a,b,c){for(let d of(a.hooks||(a.hooks={}),i.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=>o(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=>!o(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=>o(a)))return!0}}catch{}return!1},detectInstalled:()=>q("devin")},K="failproofai",L=new Set(["PreToolUse","PostToolUse"]);function M(a){if(!a||"object"!=typeof a)return!1;let b=a.command;return"string"==typeof b&&b.includes("failproofai")&&b.includes("--cli goose")}let N={claude:s,codex:t,copilot:v,cursor:w,opencode:z,pi:C,hermes:D,openclaw:H,factory:I,devin:J,antigravity:{id:"antigravity",displayName:"Antigravity CLI",scopes:i.ANTIGRAVITY_HOOK_SCOPES,eventTypes:i.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=>k(a),writeSettings(a,b){l(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,[i.FAILPROOFAI_HOOK_MARKER]:!0}),isFailproofaiHook:o,writeHookEntries(a,b,c){a[K]&&"object"==typeof a[K]||(a[K]={});let d=a[K];for(let a of i.ANTIGRAVITY_HOOK_EVENT_TYPES){let e=this.buildHookEntry(b,a,c);if(L.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=>o(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=>o(a));c>=0?b[c]=e:b.push(e)}}},removeHooksFromFile(a){let b=this.readSettings(a),c=b[K];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(L.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=>!o(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=>!o(a));d+=e-f.length,0===f.length?delete c[a]:c[a]=f}}return 0===Object.keys(c).length&&delete b[K],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)[K];if(!a||"object"!=typeof a)return!1;for(let b of Object.values(a))if(Array.isArray(b)){for(let a of b)if(o(a)||a&&Array.isArray(a.hooks)&&a.hooks.some(a=>o(a)))return!0}}catch{}return!1},detectInstalled:()=>q("agy")},goose:{id:"goose",displayName:"Goose",scopes:i.GOOSE_HOOK_SCOPES,eventTypes:i.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=>k(a),writeSettings(a,b){l(a,b)},buildHookEntry:(a,b,c)=>({type:"command",command:"project"===c?`npx -y failproofai --hook ${b} --cli goose`:`"${a}" --hook ${b} --cli goose`}),isFailproofaiHook:M,writeHookEntries(a,b,c){for(let d of(a.hooks||(a.hooks={}),i.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=>M(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=>!M(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=>M(a)))return!0}}catch{}return!1},detectInstalled:()=>q("goose")}};a.s(["claudeCode",0,s,"detectInstalledClis",0,function(){return i.INTEGRATION_TYPES.filter(a=>N[a]?.detectInstalled())},"getIntegration",0,function(a){let b=N[a];if(!b)throw Error(`"${a}" is audit-only — live-hook install is not supported for it yet. Installable: ${i.INTEGRATION_TYPES.filter(a=>void 0!==N[a]).join(", ")}`);return b},"listIntegrations",0,function(){return i.INTEGRATION_TYPES.map(a=>N[a]).filter(a=>void 0!==a)},"settingsPathsFor",0,r])},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
- //# sourceMappingURL=%5Broot-of-the-server%5D__1n2ywfz._.js.map
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(["00d32b75705d175d1df30e9cb95249f2fde5dfa4fb",()=>b.getTelemetryConfig,"60396bb1e351760a369c0b60afb2184343351dd5da",()=>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)))}];
1
+ module.exports=[21776,a=>{"use strict";var b=a.i(36359),c=a.i(7292);a.s([],84740),a.i(84740),a.s(["00d97e8fc87765b4425f447fa894a7db0d3da72bcd",()=>b.getTelemetryConfig,"60224d7a734788f9cd429a331a1796d3e8cf5c723a",()=>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
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=_1h33neq._.js.map
3
+ //# sourceMappingURL=_1un1pug._.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,"00fc9eb81c9e658e5d3afcf061feef9d6a1e0d0f47",null),a.s([],62946),a.i(62946),a.s(["00d32b75705d175d1df30e9cb95249f2fde5dfa4fb",()=>b.getTelemetryConfig,"00fc9eb81c9e658e5d3afcf061feef9d6a1e0d0f47",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)))}];
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,"00812be216fe944bed93d3c9bdab0cd9af8f4b5fe9",null),a.s([],62946),a.i(62946),a.s(["00812be216fe944bed93d3c9bdab0cd9af8f4b5fe9",0,e,"00d97e8fc87765b4425f447fa894a7db0d3da72bcd",()=>b.getTelemetryConfig],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,17 @@
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,"00c43b8e7c113f31ebd7b3e020ccad0d6b00c5b016",null);var j=a.i(28120),k=a.i(74533),l=a.i(60526),m=a.i(91997),n=a.i(67121),o=a.i(92956),p=a.i(15638),q=a.i(98378),r=a.i(69839);class s extends Error{exitCode;constructor(a,b=1){super(a),this.name="CliError",this.exitCode=b}}a.i(10695),a.i(89790);var t=a.i(17280),u=a.i(9909);a.i(1459);let v=new Set(o.BUILTIN_POLICIES.map(a=>a.name));function w(a,b){return n.claudeCode.getSettingsPath(a,b)}function x(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 s(`"${e}" is declared by ${a.length} installed packs.
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,"008708709e55a7563e038b0d2f851db312a7c35fb4",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);a.i(1459);let v=new Set(r.BUILTIN_POLICIES.map(a=>a.name));function w(a,b){return q.claudeCode.getSettingsPath(a,b)}function x(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(v.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 s(`"${e}" is declared by ${i.length} installed packs.
3
+ `+a.map(a=>` ${a.packId}:${a.name}`).join("\n"));if(v.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
- `+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 s(`Unknown policy name(s): ${d.join(", ")}
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
6
  Valid policies: ${[...v].join(", ")}`+(a.length>0?`
7
- From installed packs: ${a.join(", ")}`:""))}return{builtins:b,packs:c}}function y(a,b,c,d){if(0!==a.length){for(let c of a){let a=(0,t.setPackPolicyEnabled)(c.packId,c.name,b);if(!a.ok)throw new s(`Could not ${b?"enable":"disable"} ${c.name}: ${a.reason}`)}if(b){let b=(0,j.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,j.writeScopedHooksConfig)(a,c,d)}}for(let c of a)console.log(`${b?"Enabled":"Disabled"} ${c.name} from pack ${c.packId}@${c.packVersion}.`)}}function z(a,b){var c,d;return(c=a,d=b,m.INTEGRATION_TYPES.filter(a=>{try{let b=(0,n.getIntegration)(a);if(!b.scopes.includes(c)||!b.hooksInstalledInSettings(c,d))return!1;let e=b.getSettingsPath(c,d);return!m.HOOK_SCOPES.some(a=>a!==c&&m.HOOK_SCOPES.indexOf(a)<m.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 A(a,b="user",c,d=!1,e,f,g=!1,h,i={}){let{replace:j=!1,quiet:k=!1}=i;if(!k)return B(a,b,c,d,e,f,g,h,j);let l=console.log;console.log=()=>{};try{return await B(a,b,c,d,e,f,g,h,j)}finally{console.log=l}}async function B(a,b="user",c,d=!1,g,h,i=!1,v,A=!1){var C;let D,E;if(void 0!==a&&a.length>0){let d=a.filter(a=>"all"!==a);if(d.length>0){let e=x(d);if(y(e.packs,!0,b,c),e.packs.length>0&&0===(a=a.filter(a=>"all"===a||e.builtins.includes(a))).length)return}if(a.includes("all")&&d.length>0)throw new s(`"all" cannot be combined with specific policy names.
8
- Use either: --install all or --install block-sudo sanitize-jwt ...`)}let F=v&&v.length>0?[...new Set(v)]:["claude"];for(let a of F){let c=(0,n.getIntegration)(a);if(!c.scopes.includes(b)){try{await (0,q.trackHookEvent)((0,r.getInstanceId)(),"scope_validation_failed",{cli:a,scope:b,supported_scopes:c.scopes})}catch{}throw new s(`Scope "${b}" is not supported by ${c.displayName}. Valid scopes: ${c.scopes.join(", ")}`)}}let G=function(){let a=process.env.FAILPROOFAI_BINARY_OVERRIDE;if(a&&a.trim())return a.trim();try{return(0,k.execSync)("which failproofai",{encoding:"utf8"}).trim().split("\n")[0].trim()}catch{throw new s("failproofai binary not found in PATH.\nInstall it globally first: npm install -g failproofai")}}(),H=(0,j.readScopedHooksConfig)(b,c),I=new Set(H.enabledPolicies);if(void 0!==a){let b;b=1===a.length&&"all"===a[0]?o.BUILTIN_POLICIES.filter(a=>d||!a.beta).map(a=>a.name):a,D=A?[...new Set(b)]:[...new Set([...H.enabledPolicies,...b])]}else D=H.enabledPolicies;let J={...H,enabledPolicies:D};if(i)delete J.customPoliciesPath,delete J.customPoliciesPaths;else if(h&&("string"==typeof h||h.length>0)){let a=("string"==typeof h?[h]:h).map(a=>(0,f.resolve)(a)),c=(H.customPoliciesPaths??(H.customPoliciesPath?[H.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(J.customPoliciesPaths=A?[...new Set(a)]:[...new Set([...c,...a])],delete J.customPoliciesPath,a)){let a=[];try{a=await (0,p.loadCustomHooks)(d,{strict:!0})}catch(c){let a=c instanceof Error?c.message:String(c);try{await (0,q.trackHookEvent)((0,r.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,q.trackHookEvent)((0,r.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(`
9
- Validated ${a.length} custom hook(s) from ${d}: ${a.map(a=>a.name).join(", ")}`)}}(0,j.writeScopedHooksConfig)(J,b,c);let K=new Set(o.BUILTIN_POLICIES.filter(a=>a.alwaysOn).map(a=>a.name)),L=void 0===a?[]:D.filter(a=>!K.has(a));if(L.length>0)if((0,u.hasInstalledPacks)()){for(let a of L)for(let b of(0,u.readInstalledPacks)().packs)if(b.policies.some(b=>b.name===a)){(0,t.setPackPolicyEnabled)(b.id,a,!0);break}}else try{await (0,t.addPack)(t.CORE_SOURCE,{only:L})}catch(a){console.log(`
7
+ From installed packs: ${a.join(", ")}`:""))}return{builtins:b,packs:c}}function y(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 z(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 A(a,b="user",c,d=!1,e,f,g=!1,h,i={}){let{replace:j=!1,quiet:k=!1}=i;if(!k)return B(a,b,c,d,e,f,g,h,j);let l=console.log;console.log=()=>{};try{return await B(a,b,c,d,e,f,g,h,j)}finally{console.log=l}}async function B(a,b="user",c,d=!1,g,h,i=!1,v,A=!1){var C;let D,E;if(void 0!==a&&a.length>0){let d=a.filter(a=>"all"!==a);if(d.length>0){let e=x(d);if(y(e.packs,!0,b,c),e.packs.length>0&&0===(a=a.filter(a=>"all"===a||e.builtins.includes(a))).length)return}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 F=v&&v.length>0?[...new Set(v)]:["claude"];for(let a of F){let c=(0,q.getIntegration)(a);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 G=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")}}(),H=(0,m.readScopedHooksConfig)(b,c),I=new Set(H.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,D=A?[...new Set(b)]:[...new Set([...H.enabledPolicies,...b])]}else D=H.enabledPolicies;let J={...H,enabledPolicies:D};if(i)delete J.customPoliciesPath,delete J.customPoliciesPaths;else if(h&&("string"==typeof h||h.length>0)){let a=("string"==typeof h?[h]:h).map(a=>(0,f.resolve)(a)),c=(H.customPoliciesPaths??(H.customPoliciesPath?[H.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(J.customPoliciesPaths=A?[...new Set(a)]:[...new Set([...c,...a])],delete J.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(`
9
+ Validated ${a.length} custom hook(s) from ${d}: ${a.map(a=>a.name).join(", ")}`)}}(0,m.writeScopedHooksConfig)(J,b,c);let K=new Set(r.BUILTIN_POLICIES.filter(a=>a.alwaysOn).map(a=>a.name)),L=void 0===a?[]:D.filter(a=>!K.has(a));if(L.length>0)if((0,u.hasInstalledPacks)()){for(let a of L)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:L})}catch(a){console.log(`
10
10
  Warning: could not fetch the policy pack (${a instanceof Error?a.message:String(a)}).
11
11
  Run \`failproofai policies add FailproofAI/policies\` once you are online.`)}if(void 0!==a&&D.length>0&&console.log(`
12
12
  Enabled ${D.length} policy(ies): ${D.join(", ")}
13
- `),i)console.log("Custom hooks path cleared.");else if(J.customPoliciesPaths?.length||J.customPoliciesPath){let a=J.customPoliciesPaths??[J.customPoliciesPath];console.log(`Custom hooks paths: ${a.join(", ")}`)}let M=[];for(let a of F){let d=(0,n.getIntegration)(a),e=(0,n.settingsPathsFor)(d,b,c);try{for(let c of e){let e=d.readSettings(c);d.writeHookEntries(e,G,b),d.writeSettings(c,e),M.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,q.trackHookEvent)((0,r.getInstanceId)(),"hook_write_failed",{cli:a,scope:b,error_type:c})}catch{}throw d}}try{let a=new Set(D),c=D.filter(a=>!I.has(a)),e=[...I].filter(b=>!a.has(b)),f=(0,r.getInstanceId)();if(await (0,q.trackHookEvent)(f,"hooks_installed",{scope:b,cli:F,cli_count:F.length,policies:D,policy_count:D.length,policies_added:c,policies_removed:e,...g?{source:g}:{},platform:(0,l.platform)(),arch:(0,l.arch)(),os_release:(0,l.release)(),hostname_hash:(0,r.hashToId)((0,l.hostname)()),has_custom_hooks_path:!!(J.customPoliciesPaths?.length||J.customPoliciesPath),has_policy_params:!!(J.policyParams&&Object.keys(J.policyParams).length>0),param_policy_names:J.policyParams?Object.keys(J.policyParams):[],command_format:"project"===b?"npx":"absolute"}),d){let a=new Set(o.BUILTIN_POLICIES.filter(a=>a.beta).map(a=>a.name)),c=D.filter(b=>a.has(b));c.length>0&&await (0,q.trackHookEvent)(f,"beta_policies_installed",{scope:b,cli:F,beta_count:c.length,beta_policy_names:c,...g?{source:g}:{}})}}catch{}for(let{cli:a,path:c}of M){let d=(0,n.getIntegration)(a);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(`
14
- This file can be committed to git — no machine-specific paths.`)):console.log(`Binary: ${G}`);let N=(C=m.HOOK_SCOPES,E=new Set,C.filter(a=>{let b=w(a,c);return!E.has(b)&&(E.add(b),!0)})).filter(a=>a!==b).filter(a=>z(a,c));if(N.length>0){let a=N.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 ${N[0]}\` to remove the other installation,`),console.log("or `failproofai policies` to see all scopes.");try{await (0,q.trackHookEvent)((0,r.getInstanceId)(),"multi_scope_warning_shown",{new_scope:b,existing_scopes:N,cli:F})}catch{}}}async function C(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,j.readScopedHooksConfig)(f,c);delete a.customPoliciesPath,delete a.customPoliciesPaths,(0,j.writeScopedHooksConfig)(a,f,c),console.log("Custom hooks path cleared.")}if(a&&a.length>0&&(1!==a.length||"all"!==a[0])){let b=x(a);y(b.packs,!1,f,c);var h=a=b.builtins;let d=new Set(o.BUILTIN_POLICIES.filter(a=>a.alwaysOn).map(a=>a.name)),e=h.filter(a=>d.has(a));if(e.length>0)throw new s(`Cannot disable: ${e.join(", ")}
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,j.readScopedHooksConfig)(f,c),h=new Set(a),i=e.enabledPolicies.filter(a=>!h.has(a)),k=a.filter(a=>!e.enabledPolicies.includes(a));k.length>0&&console.log(`Warning: policy(ies) not currently enabled: ${k.join(", ")}`);let{policyParams:m,...n}=e,o=m?Object.fromEntries(Object.entries(m).filter(([a])=>!h.has(a))):null,p={...n,enabledPolicies:i,...o&&Object.keys(o).length>0?{policyParams:o}:{}};(0,j.writeScopedHooksConfig)(p,f,c);try{let c=(0,r.getInstanceId)(),f=a.filter(a=>e.enabledPolicies.includes(a));await (0,q.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,l.platform)(),arch:(0,l.arch)(),os_release:(0,l.release)(),hostname_hash:(0,r.hashToId)((0,l.hostname)())})}catch{}console.log(`Disabled ${a.length-k.length} policy(ies).`),console.log(`Remaining: ${i.length>0?i.join(", "):"(none)"}`);return}let i=(0,j.readScopedHooksConfig)(f,c),k=0,p=!1;for(let a of g){let d=(0,n.getIntegration)(a);for(let a of"all"===b?[...d.scopes]:d.scopes.includes(b)?[b]:[]){let f=(0,n.settingsPathsFor)(d,a,c).filter(a=>(0,e.existsSync)(a));if(0===f.length){"all"!==b&&1===g.length&&(console.log("No settings file found. Nothing to remove."),p=!0);continue}let h=0;for(let a of f){let c=d.removeHooksFromFile(a);h+=c,c>0&&"all"!==b&&(console.log(`Removed ${c} failproofai hook(s) from ${d.displayName} settings.`),console.log(`Settings: ${a}`))}if(0===h&&"all"!==b&&1===g.length){console.log("No hooks found in settings. Nothing to remove."),p=!0;continue}k+=h}}if(!p||0!==k){if("all"===b)for(let a of(console.log(`Removed ${k} failproofai hook(s) from all scopes.`),g)){let b=(0,n.getIntegration)(a);for(let a of b.scopes)for(let d of(0,n.settingsPathsFor)(b,a,c))console.log(` ${b.displayName} / ${a}: ${d}`)}try{let a=(0,r.getInstanceId)();await (0,q.trackHookEvent)(a,"hooks_removed",{scope:b,cli:g,removal_mode:"hooks",policies_removed:i.enabledPolicies,removed_count:k,...d?.source?{source:d.source}:{},platform:(0,l.platform)(),arch:(0,l.arch)(),os_release:(0,l.release)(),hostname_hash:(0,r.hashToId)((0,l.hostname)())})}catch{}if("all"===b)for(let a of m.HOOK_SCOPES){let b=(0,j.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,j.writeScopedHooksConfig)({...g,enabledPolicies:[]},a,c)}}else if(!m.HOOK_SCOPES.some(a=>z(a,c))){let{customPoliciesPath:a,customPoliciesPaths:b,policyParams:d,...e}=(0,j.readScopedHooksConfig)(f,c);(0,j.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,j.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,p.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,p.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,j.readMergedHooksConfig)(a),c=new Set(b.disabledCustomPolicies??[]),d=m.HOOK_SCOPES.filter(a=>z(a)),e=w(d[0]??"user"),g=(0,n.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:b.policyParams?.[e.name]??{}}:{}})}let l=(0,j.configuredCustomPolicyPaths)(b),o=(0,j.findProjectConfigDir)(a),q=l.map(a=>(0,f.resolve)(o,a)),r=(await Promise.all(q.map(async a=>{try{return(await G(a)).map(b=>{let d=(0,p.customPolicyId)(a,b.name);return{...b,id:d,enabled:!c.has(d)}})}catch{return[]}}))).flat(),s=await F(c,new Set(q)),t=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)t.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:s,packs:t}}async function I(a,b){let c=(0,j.readHooksConfig)(),d=new Set(c.enabledPolicies);b?d.add(a):d.delete(a),(0,j.writeHooksConfig)({...c,enabledPolicies:[...d]});try{let c=(0,r.getInstanceId)();await (0,q.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 m.HOOK_SCOPES){let d=(0,j.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,j.writeScopedHooksConfig)(f,b,c)}return}let d=(0,j.readHooksConfig)(),e=new Set(d.disabledCustomPolicies??[]);e.add(a);let f={...d,disabledCustomPolicies:[...e]};e.size||delete f.disabledCustomPolicies,(0,j.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,t.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,t.addPack)(t.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){return(0,t.removePack)(a)?{ok:!0,id:a}:{ok:!1,error:`No installed pack with id ${a}`}}async function N(a,b,c){let d=(0,t.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,j.readHooksConfig)(),e=(d.disabledCustomPolicies??[]).filter(b=>b!==a);if(e.length!==(d.disabledCustomPolicies??[]).length){let{disabledCustomPolicies:a,...b}=d;(0,j.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,t.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,j.readHooksConfig)(),d=c.enabledPolicies.length>0?c.enabledPolicies:o.BUILTIN_POLICIES.filter(a=>a.defaultEnabled&&!a.beta).map(a=>a.name),e=b&&b.length>0?b:(0,n.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,n.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,j.readHooksConfig)(),d={...c.policyParams??{},[a]:b};(0,j.writeHooksConfig)({...c,policyParams:d});try{let c=(0,r.getInstanceId)();await (0,q.trackHookEvent)(c,"policy_params_updated",{policy_name:a,param_keys:Object.keys(b),source:"web"})}catch{}}(0,h.ensureServerEntryExports)([H]),(0,d.registerServerReference)(H,"0045245821d5fa379ec4f6984839ad459f7fd31aa9",null),(0,h.ensureServerEntryExports)([I,J]),(0,d.registerServerReference)(I,"60ba01aad6efca8efd3d93340172ccfcc36b3d1e24",null),(0,d.registerServerReference)(J,"60af7a14ec5e9d40867dd57a601864e996bcf688c4",null),(0,h.ensureServerEntryExports)([K,L,M,N,O]),(0,d.registerServerReference)(K,"60f4fbb247d558c4565ec43d90581ab578fadc7eac",null),(0,d.registerServerReference)(L,"0036b57b2077ecba95f0efc1287c0920346d09a6bb",null),(0,d.registerServerReference)(M,"406395da8dc847a3a7142e6b7e1f88b42800d311fc",null),(0,d.registerServerReference)(N,"7061de6390bc26e79c569c9b09b6576846aa13e6e4",null),(0,d.registerServerReference)(O,"40c911afc62e67cac4f0775030ee93c7102476dc0d",null),(0,h.ensureServerEntryExports)([P,Q]),(0,d.registerServerReference)(P,"606697c0d76e6337755a33f897c61448242e46e0ed",null),(0,d.registerServerReference)(Q,"609850fd7f3ff102f3165256c7fc4b4433d67fa89f",null),(0,h.ensureServerEntryExports)([R]),(0,d.registerServerReference)(R,"606efc2d5df43e5a1df1cba1ca69d025db75413928",null),a.s([],96801),a.i(96801),a.s(["0036b57b2077ecba95f0efc1287c0920346d09a6bb",0,L,"0045245821d5fa379ec4f6984839ad459f7fd31aa9",0,H,"00c43b8e7c113f31ebd7b3e020ccad0d6b00c5b016",0,i,"00d32b75705d175d1df30e9cb95249f2fde5dfa4fb",()=>b.getTelemetryConfig,"406395da8dc847a3a7142e6b7e1f88b42800d311fc",0,M,"40c911afc62e67cac4f0775030ee93c7102476dc0d",0,O,"40d845904971e2c2447db0c7babcad414d256286da",()=>c.getHookActivityAction,"60396bb1e351760a369c0b60afb2184343351dd5da",()=>c.searchHookActivityAction,"606697c0d76e6337755a33f897c61448242e46e0ed",0,P,"606efc2d5df43e5a1df1cba1ca69d025db75413928",0,R,"609850fd7f3ff102f3165256c7fc4b4433d67fa89f",0,Q,"60af7a14ec5e9d40867dd57a601864e996bcf688c4",0,J,"60f4fbb247d558c4565ec43d90581ab578fadc7eac",0,K,"7061de6390bc26e79c569c9b09b6576846aa13e6e4",0,N],73338)}];
13
+ `),i)console.log("Custom hooks path cleared.");else if(J.customPoliciesPaths?.length||J.customPoliciesPath){let a=J.customPoliciesPaths??[J.customPoliciesPath];console.log(`Custom hooks paths: ${a.join(", ")}`)}let M=[];for(let a of F){let d=(0,q.getIntegration)(a),e=(0,q.settingsPathsFor)(d,b,c);try{for(let c of e){let e=d.readSettings(c);d.writeHookEntries(e,G,b),d.writeSettings(c,e),M.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(D),c=D.filter(a=>!I.has(a)),e=[...I].filter(b=>!a.has(b)),f=(0,l.getInstanceId)();if(await (0,k.trackHookEvent)(f,"hooks_installed",{scope:b,cli:F,cli_count:F.length,policies:D,policy_count:D.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:!!(J.customPoliciesPaths?.length||J.customPoliciesPath),has_policy_params:!!(J.policyParams&&Object.keys(J.policyParams).length>0),param_policy_names:J.policyParams?Object.keys(J.policyParams):[],command_format:"project"===b?"npx":"absolute"}),d){let a=new Set(r.BUILTIN_POLICIES.filter(a=>a.beta).map(a=>a.name)),c=D.filter(b=>a.has(b));c.length>0&&await (0,k.trackHookEvent)(f,"beta_policies_installed",{scope:b,cli:F,beta_count:c.length,beta_policy_names:c,...g?{source:g}:{}})}}catch{}for(let{cli:a,path:c}of M){let d=(0,q.getIntegration)(a);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(`
14
+ This file can be committed to git — no machine-specific paths.`)):console.log(`Binary: ${G}`);let N=(C=p.HOOK_SCOPES,E=new Set,C.filter(a=>{let b=w(a,c);return!E.has(b)&&(E.add(b),!0)})).filter(a=>a!==b).filter(a=>z(a,c));if(N.length>0){let a=N.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 ${N[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:N,cli:F})}catch{}}}async function C(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=x(a);y(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(", ")}
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 a of"all"===b?[...d.scopes]:d.scopes.includes(b)?[b]:[]){let f=(0,q.settingsPathsFor)(d,a,c).filter(a=>(0,e.existsSync)(a));if(0===f.length){"all"!==b&&1===g.length&&(console.log("No settings file found. Nothing to remove."),n=!0);continue}let h=0;for(let a of f){let c=d.removeHooksFromFile(a);h+=c,c>0&&"all"!==b&&(console.log(`Removed ${c} failproofai hook(s) from ${d.displayName} settings.`),console.log(`Settings: ${a}`))}if(0===h&&"all"!==b&&1===g.length){console.log("No hooks found in settings. Nothing to remove."),n=!0;continue}j+=h}}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,"00d55eca2c530ee167dc8bfae59edfb632c949f94c",null),(0,h.ensureServerEntryExports)([I,J]),(0,d.registerServerReference)(I,"60475fb58fc53c3d1f9f17347b5eaf272d7b8261f0",null),(0,d.registerServerReference)(J,"607dc07af2fa5dbd0794565f0271bd9a148bde88f8",null),(0,h.ensureServerEntryExports)([K,L,M,N,O]),(0,d.registerServerReference)(K,"60527de16160bf47bae463c54299c65dd3754bcdaa",null),(0,d.registerServerReference)(L,"004a956ee569aecbe4f8c22a2e2219bfb699bb1076",null),(0,d.registerServerReference)(M,"40e10932309e736311f25b278a8dc7e00e9805cf49",null),(0,d.registerServerReference)(N,"704faed3414c1e47c0f6c2a75ec52aa5c8b4021992",null),(0,d.registerServerReference)(O,"40aa5c5f859d152d56d662b4ff52630494f178ef54",null),(0,h.ensureServerEntryExports)([P,Q]),(0,d.registerServerReference)(P,"60d7e6ec234c2f9dd135c187fde82138fe9cff6608",null),(0,d.registerServerReference)(Q,"603307051c148c1ad888f6d8977ac928f8f3239d4c",null),(0,h.ensureServerEntryExports)([R]),(0,d.registerServerReference)(R,"60b48ba21e36e522f8b8df30a87f945cb21fe5fd7a",null),a.s([],96801),a.i(96801),a.s(["004a956ee569aecbe4f8c22a2e2219bfb699bb1076",0,L,"008708709e55a7563e038b0d2f851db312a7c35fb4",0,i,"00d55eca2c530ee167dc8bfae59edfb632c949f94c",0,H,"00d97e8fc87765b4425f447fa894a7db0d3da72bcd",()=>b.getTelemetryConfig,"403b20a4869750d09a473954af76f127b1bcf868c6",()=>c.getHookActivityAction,"40aa5c5f859d152d56d662b4ff52630494f178ef54",0,O,"40e10932309e736311f25b278a8dc7e00e9805cf49",0,M,"60224d7a734788f9cd429a331a1796d3e8cf5c723a",()=>c.searchHookActivityAction,"603307051c148c1ad888f6d8977ac928f8f3239d4c",0,Q,"60527de16160bf47bae463c54299c65dd3754bcdaa",0,K,"607dc07af2fa5dbd0794565f0271bd9a148bde88f8",0,J,"60b48ba21e36e522f8b8df30a87f945cb21fe5fd7a",0,R,"60d7e6ec234c2f9dd135c187fde82138fe9cff6608",0,P,"704faed3414c1e47c0f6c2a75ec52aa5c8b4021992",0,N],73338)}];
16
16
 
17
17
  //# sourceMappingURL=_next-internal_server_app_policies_page_actions_1sp2-yo.js.map