failproofai 0.0.6-beta.2 → 0.0.6-beta.4

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 (511) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/required-server-files.json +7 -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 +2 -2
  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/_head.segment.rsc +3 -3
  13. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  14. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  16. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  19. package/.next/standalone/.next/server/app/_not-found.rsc +17 -17
  20. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +17 -17
  21. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  22. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
  23. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  24. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  25. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  26. package/.next/standalone/.next/server/app/index.html +1 -1
  27. package/.next/standalone/.next/server/app/index.rsc +16 -16
  28. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  29. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +16 -16
  30. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  31. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +11 -11
  32. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  33. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  34. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  37. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  40. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  43. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  44. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  47. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +1 -1
  50. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
  51. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
  52. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
  53. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
  54. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
  55. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
  56. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0i5kvry._.js → [root-of-the-server]__0om-5pe._.js} +2 -2
  57. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +2 -2
  58. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__05akje6._.js → [root-of-the-server]__111.vxi._.js} +2 -2
  59. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
  60. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
  61. package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +2 -2
  62. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +1 -1
  63. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +1 -1
  64. package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_0mebn66._.js +1 -1
  65. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  66. package/.next/standalone/.next/server/pages/404.html +2 -2
  67. package/.next/standalone/.next/server/pages/500.html +1 -1
  68. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/server-reference-manifest.json +9 -9
  70. package/.next/standalone/.next/static/chunks/{05j1px0r8yzh6.js → 02dqjyv6_9mhq.js} +2 -2
  71. package/.next/standalone/.next/static/chunks/{14cl9poem30dq.js → 070orfsl6.xal.js} +1 -1
  72. package/.next/standalone/.next/static/chunks/0mir9jdxn35~s.css +1 -0
  73. package/.next/standalone/.next/static/chunks/{00j0rr7rh8ef8.js → 0o547jv-k_k35.js} +1 -1
  74. package/.next/standalone/.next/static/chunks/{0ijk_kek9_wyx.js → 0pk2h2.mjxy.m.js} +1 -1
  75. package/.next/standalone/.next/static/chunks/{0xpl.oscrakvx.js → 0rcwkbh24w38b.js} +1 -1
  76. package/.next/standalone/.next/static/chunks/{1052sguyd-.ka.js → 140xx_tfr~lm_.js} +1 -1
  77. package/.next/standalone/.next/static/chunks/{0npb~873.wvg3.js → 169_e4dq~1~b6.js} +1 -1
  78. package/.next/standalone/.next/static/chunks/{0badv41uxa56..js → 17ne4p.1sw1jy.js} +1 -1
  79. package/.next/standalone/next.config.ts +6 -0
  80. package/.next/standalone/package.json +2 -2
  81. package/.next/standalone/server.js +1 -1
  82. package/bin/failproofai.mjs +91 -4
  83. package/dist/cli.mjs +1155 -54
  84. package/package.json +2 -2
  85. package/scripts/prune-standalone.mjs +128 -0
  86. package/src/auth/login.ts +104 -0
  87. package/src/auth/logout.ts +50 -0
  88. package/src/auth/token-store.ts +64 -0
  89. package/src/hooks/builtin-policies.ts +22 -20
  90. package/src/hooks/handler.ts +35 -15
  91. package/src/relay/daemon.ts +362 -0
  92. package/src/relay/pid.ts +76 -0
  93. package/src/relay/queue.ts +225 -0
  94. package/.next/standalone/.claude/settings.json +0 -316
  95. package/.next/standalone/.failproofai/policies/review-policies.mjs +0 -113
  96. package/.next/standalone/.failproofai/policies/workflow-policies.mjs +0 -63
  97. package/.next/standalone/.failproofai/policies-config.json +0 -39
  98. package/.next/standalone/.next/static/chunks/0gu_a.a80ritd.css +0 -1
  99. package/.next/standalone/AGENTS.md +0 -80
  100. package/.next/standalone/CHANGELOG.md +0 -151
  101. package/.next/standalone/CLAUDE.md +0 -165
  102. package/.next/standalone/CONTRIBUTING.md +0 -76
  103. package/.next/standalone/Dockerfile.docs +0 -12
  104. package/.next/standalone/LICENSE +0 -42
  105. package/.next/standalone/README.md +0 -301
  106. package/.next/standalone/bin/failproofai.mjs +0 -352
  107. package/.next/standalone/bun.lock +0 -1119
  108. package/.next/standalone/components.json +0 -23
  109. package/.next/standalone/dist/cli.mjs +0 -3595
  110. package/.next/standalone/dist/index.js +0 -80
  111. package/.next/standalone/docs/ar/architecture.mdx +0 -334
  112. package/.next/standalone/docs/ar/built-in-policies.mdx +0 -574
  113. package/.next/standalone/docs/ar/cli/dashboard.mdx +0 -28
  114. package/.next/standalone/docs/ar/cli/environment-variables.mdx +0 -34
  115. package/.next/standalone/docs/ar/cli/hook.mdx +0 -31
  116. package/.next/standalone/docs/ar/cli/install-policies.mdx +0 -48
  117. package/.next/standalone/docs/ar/cli/list-policies.mdx +0 -31
  118. package/.next/standalone/docs/ar/cli/remove-policies.mdx +0 -43
  119. package/.next/standalone/docs/ar/cli/version.mdx +0 -13
  120. package/.next/standalone/docs/ar/configuration.mdx +0 -223
  121. package/.next/standalone/docs/ar/custom-policies.mdx +0 -354
  122. package/.next/standalone/docs/ar/dashboard.mdx +0 -142
  123. package/.next/standalone/docs/ar/examples.mdx +0 -307
  124. package/.next/standalone/docs/ar/for-agents.mdx +0 -39
  125. package/.next/standalone/docs/ar/getting-started.mdx +0 -187
  126. package/.next/standalone/docs/ar/introduction.mdx +0 -58
  127. package/.next/standalone/docs/ar/package-aliases.mdx +0 -82
  128. package/.next/standalone/docs/ar/testing.mdx +0 -261
  129. package/.next/standalone/docs/architecture.mdx +0 -332
  130. package/.next/standalone/docs/built-in-policies.mdx +0 -574
  131. package/.next/standalone/docs/cli/dashboard.mdx +0 -28
  132. package/.next/standalone/docs/cli/environment-variables.mdx +0 -34
  133. package/.next/standalone/docs/cli/hook.mdx +0 -30
  134. package/.next/standalone/docs/cli/install-policies.mdx +0 -47
  135. package/.next/standalone/docs/cli/list-policies.mdx +0 -31
  136. package/.next/standalone/docs/cli/remove-policies.mdx +0 -43
  137. package/.next/standalone/docs/cli/version.mdx +0 -12
  138. package/.next/standalone/docs/configuration.mdx +0 -222
  139. package/.next/standalone/docs/custom-policies.mdx +0 -353
  140. package/.next/standalone/docs/dashboard.mdx +0 -142
  141. package/.next/standalone/docs/de/architecture.mdx +0 -332
  142. package/.next/standalone/docs/de/built-in-policies.mdx +0 -574
  143. package/.next/standalone/docs/de/cli/dashboard.mdx +0 -28
  144. package/.next/standalone/docs/de/cli/environment-variables.mdx +0 -34
  145. package/.next/standalone/docs/de/cli/hook.mdx +0 -30
  146. package/.next/standalone/docs/de/cli/install-policies.mdx +0 -47
  147. package/.next/standalone/docs/de/cli/list-policies.mdx +0 -31
  148. package/.next/standalone/docs/de/cli/remove-policies.mdx +0 -43
  149. package/.next/standalone/docs/de/cli/version.mdx +0 -12
  150. package/.next/standalone/docs/de/configuration.mdx +0 -222
  151. package/.next/standalone/docs/de/custom-policies.mdx +0 -353
  152. package/.next/standalone/docs/de/dashboard.mdx +0 -142
  153. package/.next/standalone/docs/de/examples.mdx +0 -307
  154. package/.next/standalone/docs/de/for-agents.mdx +0 -38
  155. package/.next/standalone/docs/de/getting-started.mdx +0 -186
  156. package/.next/standalone/docs/de/introduction.mdx +0 -57
  157. package/.next/standalone/docs/de/package-aliases.mdx +0 -82
  158. package/.next/standalone/docs/de/testing.mdx +0 -260
  159. package/.next/standalone/docs/docs.json +0 -1002
  160. package/.next/standalone/docs/es/architecture.mdx +0 -332
  161. package/.next/standalone/docs/es/built-in-policies.mdx +0 -574
  162. package/.next/standalone/docs/es/cli/dashboard.mdx +0 -28
  163. package/.next/standalone/docs/es/cli/environment-variables.mdx +0 -34
  164. package/.next/standalone/docs/es/cli/hook.mdx +0 -30
  165. package/.next/standalone/docs/es/cli/install-policies.mdx +0 -47
  166. package/.next/standalone/docs/es/cli/list-policies.mdx +0 -31
  167. package/.next/standalone/docs/es/cli/remove-policies.mdx +0 -43
  168. package/.next/standalone/docs/es/cli/version.mdx +0 -12
  169. package/.next/standalone/docs/es/configuration.mdx +0 -222
  170. package/.next/standalone/docs/es/custom-policies.mdx +0 -353
  171. package/.next/standalone/docs/es/dashboard.mdx +0 -142
  172. package/.next/standalone/docs/es/examples.mdx +0 -307
  173. package/.next/standalone/docs/es/for-agents.mdx +0 -38
  174. package/.next/standalone/docs/es/getting-started.mdx +0 -186
  175. package/.next/standalone/docs/es/introduction.mdx +0 -57
  176. package/.next/standalone/docs/es/package-aliases.mdx +0 -82
  177. package/.next/standalone/docs/es/testing.mdx +0 -260
  178. package/.next/standalone/docs/examples.mdx +0 -307
  179. package/.next/standalone/docs/favicon.ico +0 -0
  180. package/.next/standalone/docs/for-agents.mdx +0 -38
  181. package/.next/standalone/docs/fr/architecture.mdx +0 -332
  182. package/.next/standalone/docs/fr/built-in-policies.mdx +0 -574
  183. package/.next/standalone/docs/fr/cli/dashboard.mdx +0 -28
  184. package/.next/standalone/docs/fr/cli/environment-variables.mdx +0 -34
  185. package/.next/standalone/docs/fr/cli/hook.mdx +0 -30
  186. package/.next/standalone/docs/fr/cli/install-policies.mdx +0 -47
  187. package/.next/standalone/docs/fr/cli/list-policies.mdx +0 -31
  188. package/.next/standalone/docs/fr/cli/remove-policies.mdx +0 -43
  189. package/.next/standalone/docs/fr/cli/version.mdx +0 -12
  190. package/.next/standalone/docs/fr/configuration.mdx +0 -222
  191. package/.next/standalone/docs/fr/custom-policies.mdx +0 -353
  192. package/.next/standalone/docs/fr/dashboard.mdx +0 -142
  193. package/.next/standalone/docs/fr/examples.mdx +0 -307
  194. package/.next/standalone/docs/fr/for-agents.mdx +0 -38
  195. package/.next/standalone/docs/fr/getting-started.mdx +0 -186
  196. package/.next/standalone/docs/fr/introduction.mdx +0 -57
  197. package/.next/standalone/docs/fr/package-aliases.mdx +0 -82
  198. package/.next/standalone/docs/fr/testing.mdx +0 -260
  199. package/.next/standalone/docs/getting-started.mdx +0 -186
  200. package/.next/standalone/docs/he/architecture.mdx +0 -333
  201. package/.next/standalone/docs/he/built-in-policies.mdx +0 -574
  202. package/.next/standalone/docs/he/cli/dashboard.mdx +0 -28
  203. package/.next/standalone/docs/he/cli/environment-variables.mdx +0 -34
  204. package/.next/standalone/docs/he/cli/hook.mdx +0 -30
  205. package/.next/standalone/docs/he/cli/install-policies.mdx +0 -47
  206. package/.next/standalone/docs/he/cli/list-policies.mdx +0 -32
  207. package/.next/standalone/docs/he/cli/remove-policies.mdx +0 -43
  208. package/.next/standalone/docs/he/cli/version.mdx +0 -12
  209. package/.next/standalone/docs/he/configuration.mdx +0 -223
  210. package/.next/standalone/docs/he/custom-policies.mdx +0 -353
  211. package/.next/standalone/docs/he/dashboard.mdx +0 -142
  212. package/.next/standalone/docs/he/examples.mdx +0 -307
  213. package/.next/standalone/docs/he/for-agents.mdx +0 -38
  214. package/.next/standalone/docs/he/getting-started.mdx +0 -186
  215. package/.next/standalone/docs/he/introduction.mdx +0 -57
  216. package/.next/standalone/docs/he/package-aliases.mdx +0 -82
  217. package/.next/standalone/docs/he/testing.mdx +0 -260
  218. package/.next/standalone/docs/hi/architecture.mdx +0 -334
  219. package/.next/standalone/docs/hi/built-in-policies.mdx +0 -576
  220. package/.next/standalone/docs/hi/cli/dashboard.mdx +0 -28
  221. package/.next/standalone/docs/hi/cli/environment-variables.mdx +0 -34
  222. package/.next/standalone/docs/hi/cli/hook.mdx +0 -30
  223. package/.next/standalone/docs/hi/cli/install-policies.mdx +0 -47
  224. package/.next/standalone/docs/hi/cli/list-policies.mdx +0 -31
  225. package/.next/standalone/docs/hi/cli/remove-policies.mdx +0 -43
  226. package/.next/standalone/docs/hi/cli/version.mdx +0 -12
  227. package/.next/standalone/docs/hi/configuration.mdx +0 -222
  228. package/.next/standalone/docs/hi/custom-policies.mdx +0 -354
  229. package/.next/standalone/docs/hi/dashboard.mdx +0 -142
  230. package/.next/standalone/docs/hi/examples.mdx +0 -309
  231. package/.next/standalone/docs/hi/for-agents.mdx +0 -38
  232. package/.next/standalone/docs/hi/getting-started.mdx +0 -187
  233. package/.next/standalone/docs/hi/introduction.mdx +0 -57
  234. package/.next/standalone/docs/hi/package-aliases.mdx +0 -82
  235. package/.next/standalone/docs/hi/testing.mdx +0 -260
  236. package/.next/standalone/docs/i18n/README.ar.md +0 -312
  237. package/.next/standalone/docs/i18n/README.de.md +0 -307
  238. package/.next/standalone/docs/i18n/README.es.md +0 -307
  239. package/.next/standalone/docs/i18n/README.fr.md +0 -307
  240. package/.next/standalone/docs/i18n/README.he.md +0 -312
  241. package/.next/standalone/docs/i18n/README.hi.md +0 -307
  242. package/.next/standalone/docs/i18n/README.it.md +0 -307
  243. package/.next/standalone/docs/i18n/README.ja.md +0 -307
  244. package/.next/standalone/docs/i18n/README.ko.md +0 -307
  245. package/.next/standalone/docs/i18n/README.pt-br.md +0 -307
  246. package/.next/standalone/docs/i18n/README.ru.md +0 -308
  247. package/.next/standalone/docs/i18n/README.tr.md +0 -307
  248. package/.next/standalone/docs/i18n/README.vi.md +0 -307
  249. package/.next/standalone/docs/i18n/README.zh.md +0 -307
  250. package/.next/standalone/docs/introduction.mdx +0 -57
  251. package/.next/standalone/docs/it/architecture.mdx +0 -334
  252. package/.next/standalone/docs/it/built-in-policies.mdx +0 -574
  253. package/.next/standalone/docs/it/cli/dashboard.mdx +0 -28
  254. package/.next/standalone/docs/it/cli/environment-variables.mdx +0 -34
  255. package/.next/standalone/docs/it/cli/hook.mdx +0 -30
  256. package/.next/standalone/docs/it/cli/install-policies.mdx +0 -47
  257. package/.next/standalone/docs/it/cli/list-policies.mdx +0 -31
  258. package/.next/standalone/docs/it/cli/remove-policies.mdx +0 -43
  259. package/.next/standalone/docs/it/cli/version.mdx +0 -12
  260. package/.next/standalone/docs/it/configuration.mdx +0 -222
  261. package/.next/standalone/docs/it/custom-policies.mdx +0 -353
  262. package/.next/standalone/docs/it/dashboard.mdx +0 -142
  263. package/.next/standalone/docs/it/examples.mdx +0 -307
  264. package/.next/standalone/docs/it/for-agents.mdx +0 -38
  265. package/.next/standalone/docs/it/getting-started.mdx +0 -186
  266. package/.next/standalone/docs/it/introduction.mdx +0 -57
  267. package/.next/standalone/docs/it/package-aliases.mdx +0 -82
  268. package/.next/standalone/docs/it/testing.mdx +0 -260
  269. package/.next/standalone/docs/ja/architecture.mdx +0 -332
  270. package/.next/standalone/docs/ja/built-in-policies.mdx +0 -572
  271. package/.next/standalone/docs/ja/cli/dashboard.mdx +0 -28
  272. package/.next/standalone/docs/ja/cli/environment-variables.mdx +0 -34
  273. package/.next/standalone/docs/ja/cli/hook.mdx +0 -30
  274. package/.next/standalone/docs/ja/cli/install-policies.mdx +0 -47
  275. package/.next/standalone/docs/ja/cli/list-policies.mdx +0 -31
  276. package/.next/standalone/docs/ja/cli/remove-policies.mdx +0 -43
  277. package/.next/standalone/docs/ja/cli/version.mdx +0 -12
  278. package/.next/standalone/docs/ja/configuration.mdx +0 -222
  279. package/.next/standalone/docs/ja/custom-policies.mdx +0 -353
  280. package/.next/standalone/docs/ja/dashboard.mdx +0 -142
  281. package/.next/standalone/docs/ja/examples.mdx +0 -307
  282. package/.next/standalone/docs/ja/for-agents.mdx +0 -38
  283. package/.next/standalone/docs/ja/getting-started.mdx +0 -186
  284. package/.next/standalone/docs/ja/introduction.mdx +0 -57
  285. package/.next/standalone/docs/ja/package-aliases.mdx +0 -82
  286. package/.next/standalone/docs/ja/testing.mdx +0 -260
  287. package/.next/standalone/docs/ko/architecture.mdx +0 -332
  288. package/.next/standalone/docs/ko/built-in-policies.mdx +0 -572
  289. package/.next/standalone/docs/ko/cli/dashboard.mdx +0 -28
  290. package/.next/standalone/docs/ko/cli/environment-variables.mdx +0 -34
  291. package/.next/standalone/docs/ko/cli/hook.mdx +0 -30
  292. package/.next/standalone/docs/ko/cli/install-policies.mdx +0 -47
  293. package/.next/standalone/docs/ko/cli/list-policies.mdx +0 -31
  294. package/.next/standalone/docs/ko/cli/remove-policies.mdx +0 -43
  295. package/.next/standalone/docs/ko/cli/version.mdx +0 -12
  296. package/.next/standalone/docs/ko/configuration.mdx +0 -222
  297. package/.next/standalone/docs/ko/custom-policies.mdx +0 -353
  298. package/.next/standalone/docs/ko/dashboard.mdx +0 -142
  299. package/.next/standalone/docs/ko/examples.mdx +0 -307
  300. package/.next/standalone/docs/ko/for-agents.mdx +0 -38
  301. package/.next/standalone/docs/ko/getting-started.mdx +0 -186
  302. package/.next/standalone/docs/ko/introduction.mdx +0 -57
  303. package/.next/standalone/docs/ko/package-aliases.mdx +0 -82
  304. package/.next/standalone/docs/ko/testing.mdx +0 -260
  305. package/.next/standalone/docs/logo/dark.svg +0 -21
  306. package/.next/standalone/docs/logo/exosphere-dark.png +0 -0
  307. package/.next/standalone/docs/logo/exosphere-light.png +0 -0
  308. package/.next/standalone/docs/logo/light.svg +0 -21
  309. package/.next/standalone/docs/package-aliases.mdx +0 -82
  310. package/.next/standalone/docs/pt-br/architecture.mdx +0 -332
  311. package/.next/standalone/docs/pt-br/built-in-policies.mdx +0 -574
  312. package/.next/standalone/docs/pt-br/cli/dashboard.mdx +0 -28
  313. package/.next/standalone/docs/pt-br/cli/environment-variables.mdx +0 -34
  314. package/.next/standalone/docs/pt-br/cli/hook.mdx +0 -30
  315. package/.next/standalone/docs/pt-br/cli/install-policies.mdx +0 -47
  316. package/.next/standalone/docs/pt-br/cli/list-policies.mdx +0 -31
  317. package/.next/standalone/docs/pt-br/cli/remove-policies.mdx +0 -43
  318. package/.next/standalone/docs/pt-br/cli/version.mdx +0 -12
  319. package/.next/standalone/docs/pt-br/configuration.mdx +0 -222
  320. package/.next/standalone/docs/pt-br/custom-policies.mdx +0 -353
  321. package/.next/standalone/docs/pt-br/dashboard.mdx +0 -142
  322. package/.next/standalone/docs/pt-br/examples.mdx +0 -307
  323. package/.next/standalone/docs/pt-br/for-agents.mdx +0 -38
  324. package/.next/standalone/docs/pt-br/getting-started.mdx +0 -186
  325. package/.next/standalone/docs/pt-br/introduction.mdx +0 -57
  326. package/.next/standalone/docs/pt-br/package-aliases.mdx +0 -82
  327. package/.next/standalone/docs/pt-br/testing.mdx +0 -260
  328. package/.next/standalone/docs/ru/architecture.mdx +0 -333
  329. package/.next/standalone/docs/ru/built-in-policies.mdx +0 -574
  330. package/.next/standalone/docs/ru/cli/dashboard.mdx +0 -28
  331. package/.next/standalone/docs/ru/cli/environment-variables.mdx +0 -34
  332. package/.next/standalone/docs/ru/cli/hook.mdx +0 -30
  333. package/.next/standalone/docs/ru/cli/install-policies.mdx +0 -48
  334. package/.next/standalone/docs/ru/cli/list-policies.mdx +0 -32
  335. package/.next/standalone/docs/ru/cli/remove-policies.mdx +0 -43
  336. package/.next/standalone/docs/ru/cli/version.mdx +0 -12
  337. package/.next/standalone/docs/ru/configuration.mdx +0 -222
  338. package/.next/standalone/docs/ru/custom-policies.mdx +0 -354
  339. package/.next/standalone/docs/ru/dashboard.mdx +0 -142
  340. package/.next/standalone/docs/ru/examples.mdx +0 -309
  341. package/.next/standalone/docs/ru/for-agents.mdx +0 -38
  342. package/.next/standalone/docs/ru/getting-started.mdx +0 -186
  343. package/.next/standalone/docs/ru/introduction.mdx +0 -57
  344. package/.next/standalone/docs/ru/package-aliases.mdx +0 -82
  345. package/.next/standalone/docs/ru/testing.mdx +0 -260
  346. package/.next/standalone/docs/testing.mdx +0 -260
  347. package/.next/standalone/docs/tr/architecture.mdx +0 -333
  348. package/.next/standalone/docs/tr/built-in-policies.mdx +0 -574
  349. package/.next/standalone/docs/tr/cli/dashboard.mdx +0 -28
  350. package/.next/standalone/docs/tr/cli/environment-variables.mdx +0 -34
  351. package/.next/standalone/docs/tr/cli/hook.mdx +0 -30
  352. package/.next/standalone/docs/tr/cli/install-policies.mdx +0 -47
  353. package/.next/standalone/docs/tr/cli/list-policies.mdx +0 -31
  354. package/.next/standalone/docs/tr/cli/remove-policies.mdx +0 -44
  355. package/.next/standalone/docs/tr/cli/version.mdx +0 -12
  356. package/.next/standalone/docs/tr/configuration.mdx +0 -222
  357. package/.next/standalone/docs/tr/custom-policies.mdx +0 -353
  358. package/.next/standalone/docs/tr/dashboard.mdx +0 -142
  359. package/.next/standalone/docs/tr/examples.mdx +0 -308
  360. package/.next/standalone/docs/tr/for-agents.mdx +0 -38
  361. package/.next/standalone/docs/tr/getting-started.mdx +0 -186
  362. package/.next/standalone/docs/tr/introduction.mdx +0 -57
  363. package/.next/standalone/docs/tr/package-aliases.mdx +0 -82
  364. package/.next/standalone/docs/tr/testing.mdx +0 -260
  365. package/.next/standalone/docs/vi/architecture.mdx +0 -334
  366. package/.next/standalone/docs/vi/built-in-policies.mdx +0 -575
  367. package/.next/standalone/docs/vi/cli/dashboard.mdx +0 -28
  368. package/.next/standalone/docs/vi/cli/environment-variables.mdx +0 -34
  369. package/.next/standalone/docs/vi/cli/hook.mdx +0 -30
  370. package/.next/standalone/docs/vi/cli/install-policies.mdx +0 -47
  371. package/.next/standalone/docs/vi/cli/list-policies.mdx +0 -31
  372. package/.next/standalone/docs/vi/cli/remove-policies.mdx +0 -43
  373. package/.next/standalone/docs/vi/cli/version.mdx +0 -13
  374. package/.next/standalone/docs/vi/configuration.mdx +0 -222
  375. package/.next/standalone/docs/vi/custom-policies.mdx +0 -353
  376. package/.next/standalone/docs/vi/dashboard.mdx +0 -142
  377. package/.next/standalone/docs/vi/examples.mdx +0 -308
  378. package/.next/standalone/docs/vi/for-agents.mdx +0 -38
  379. package/.next/standalone/docs/vi/getting-started.mdx +0 -186
  380. package/.next/standalone/docs/vi/introduction.mdx +0 -57
  381. package/.next/standalone/docs/vi/package-aliases.mdx +0 -82
  382. package/.next/standalone/docs/vi/testing.mdx +0 -260
  383. package/.next/standalone/docs/zh/architecture.mdx +0 -332
  384. package/.next/standalone/docs/zh/built-in-policies.mdx +0 -572
  385. package/.next/standalone/docs/zh/cli/dashboard.mdx +0 -28
  386. package/.next/standalone/docs/zh/cli/environment-variables.mdx +0 -34
  387. package/.next/standalone/docs/zh/cli/hook.mdx +0 -30
  388. package/.next/standalone/docs/zh/cli/install-policies.mdx +0 -47
  389. package/.next/standalone/docs/zh/cli/list-policies.mdx +0 -31
  390. package/.next/standalone/docs/zh/cli/remove-policies.mdx +0 -43
  391. package/.next/standalone/docs/zh/cli/version.mdx +0 -12
  392. package/.next/standalone/docs/zh/configuration.mdx +0 -222
  393. package/.next/standalone/docs/zh/custom-policies.mdx +0 -353
  394. package/.next/standalone/docs/zh/dashboard.mdx +0 -142
  395. package/.next/standalone/docs/zh/examples.mdx +0 -307
  396. package/.next/standalone/docs/zh/for-agents.mdx +0 -38
  397. package/.next/standalone/docs/zh/getting-started.mdx +0 -186
  398. package/.next/standalone/docs/zh/introduction.mdx +0 -57
  399. package/.next/standalone/docs/zh/package-aliases.mdx +0 -82
  400. package/.next/standalone/docs/zh/testing.mdx +0 -260
  401. package/.next/standalone/eslint.config.mjs +0 -15
  402. package/.next/standalone/examples/convention-policies/security-policies.mjs +0 -40
  403. package/.next/standalone/examples/convention-policies/workflow-policies.mjs +0 -41
  404. package/.next/standalone/examples/policies-advanced/index.js +0 -103
  405. package/.next/standalone/examples/policies-advanced/utils.js +0 -35
  406. package/.next/standalone/examples/policies-basic.js +0 -77
  407. package/.next/standalone/examples/policies-notification.js +0 -104
  408. package/.next/standalone/node_modules/@img/colour/color.cjs +0 -1594
  409. package/.next/standalone/node_modules/@img/colour/index.cjs +0 -1
  410. package/.next/standalone/node_modules/@img/colour/package.json +0 -45
  411. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/README.md +0 -46
  412. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/glib-2.0/include/glibconfig.h +0 -221
  413. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/index.js +0 -1
  414. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  415. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/package.json +0 -42
  416. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/versions.json +0 -30
  417. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +0 -46
  418. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +0 -221
  419. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +0 -1
  420. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  421. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
  422. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +0 -30
  423. package/.next/standalone/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  424. package/.next/standalone/node_modules/@img/sharp-linux-x64/package.json +0 -46
  425. package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  426. package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
  427. package/.next/standalone/node_modules/detect-libc/lib/detect-libc.js +0 -313
  428. package/.next/standalone/node_modules/detect-libc/lib/elf.js +0 -39
  429. package/.next/standalone/node_modules/detect-libc/lib/filesystem.js +0 -51
  430. package/.next/standalone/node_modules/detect-libc/lib/process.js +0 -24
  431. package/.next/standalone/node_modules/detect-libc/package.json +0 -44
  432. package/.next/standalone/node_modules/sharp/lib/channel.js +0 -177
  433. package/.next/standalone/node_modules/sharp/lib/colour.js +0 -195
  434. package/.next/standalone/node_modules/sharp/lib/composite.js +0 -212
  435. package/.next/standalone/node_modules/sharp/lib/constructor.js +0 -499
  436. package/.next/standalone/node_modules/sharp/lib/index.js +0 -16
  437. package/.next/standalone/node_modules/sharp/lib/input.js +0 -809
  438. package/.next/standalone/node_modules/sharp/lib/is.js +0 -143
  439. package/.next/standalone/node_modules/sharp/lib/libvips.js +0 -207
  440. package/.next/standalone/node_modules/sharp/lib/operation.js +0 -1016
  441. package/.next/standalone/node_modules/sharp/lib/output.js +0 -1666
  442. package/.next/standalone/node_modules/sharp/lib/resize.js +0 -595
  443. package/.next/standalone/node_modules/sharp/lib/sharp.js +0 -121
  444. package/.next/standalone/node_modules/sharp/lib/utility.js +0 -291
  445. package/.next/standalone/node_modules/sharp/node_modules/semver/classes/comparator.js +0 -143
  446. package/.next/standalone/node_modules/sharp/node_modules/semver/classes/range.js +0 -557
  447. package/.next/standalone/node_modules/sharp/node_modules/semver/classes/semver.js +0 -333
  448. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/cmp.js +0 -54
  449. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/coerce.js +0 -62
  450. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/compare.js +0 -7
  451. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/eq.js +0 -5
  452. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/gt.js +0 -5
  453. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/gte.js +0 -5
  454. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/lt.js +0 -5
  455. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/lte.js +0 -5
  456. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/neq.js +0 -5
  457. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/parse.js +0 -18
  458. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/satisfies.js +0 -12
  459. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/constants.js +0 -37
  460. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/debug.js +0 -11
  461. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/identifiers.js +0 -29
  462. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/lrucache.js +0 -42
  463. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/parse-options.js +0 -17
  464. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/re.js +0 -223
  465. package/.next/standalone/node_modules/sharp/node_modules/semver/package.json +0 -78
  466. package/.next/standalone/node_modules/sharp/package.json +0 -202
  467. package/.next/standalone/scripts/alias-proxy.js +0 -18
  468. package/.next/standalone/scripts/dev.ts +0 -3
  469. package/.next/standalone/scripts/install-telemetry.mjs +0 -108
  470. package/.next/standalone/scripts/launch.ts +0 -83
  471. package/.next/standalone/scripts/parse-script-args.ts +0 -87
  472. package/.next/standalone/scripts/postinstall.mjs +0 -121
  473. package/.next/standalone/scripts/preuninstall.mjs +0 -131
  474. package/.next/standalone/scripts/publish-aliases.mjs +0 -87
  475. package/.next/standalone/scripts/start.ts +0 -3
  476. package/.next/standalone/scripts/sync-hook-events-prompt.md +0 -60
  477. package/.next/standalone/scripts/translate-docs/cache.ts +0 -62
  478. package/.next/standalone/scripts/translate-docs/cli.ts +0 -357
  479. package/.next/standalone/scripts/translate-docs/config.ts +0 -248
  480. package/.next/standalone/scripts/translate-docs/mdx-translator.ts +0 -153
  481. package/.next/standalone/scripts/translate-docs/mintlify-nav.ts +0 -107
  482. package/.next/standalone/scripts/translate-docs/readme-translator.ts +0 -154
  483. package/.next/standalone/scripts/translate-docs/translator.ts +0 -68
  484. package/.next/standalone/scripts/translate-docs/types.ts +0 -43
  485. package/.next/standalone/src/cli-error.ts +0 -18
  486. package/.next/standalone/src/hooks/builtin-policies.ts +0 -1613
  487. package/.next/standalone/src/hooks/custom-hooks-loader.ts +0 -205
  488. package/.next/standalone/src/hooks/custom-hooks-registry.ts +0 -30
  489. package/.next/standalone/src/hooks/handler.ts +0 -202
  490. package/.next/standalone/src/hooks/hook-activity-store.ts +0 -349
  491. package/.next/standalone/src/hooks/hook-logger.ts +0 -133
  492. package/.next/standalone/src/hooks/hook-telemetry.ts +0 -43
  493. package/.next/standalone/src/hooks/hooks-config.ts +0 -166
  494. package/.next/standalone/src/hooks/install-prompt.ts +0 -357
  495. package/.next/standalone/src/hooks/llm-client.ts +0 -90
  496. package/.next/standalone/src/hooks/loader-utils.ts +0 -178
  497. package/.next/standalone/src/hooks/manager.ts +0 -692
  498. package/.next/standalone/src/hooks/policy-evaluator.ts +0 -224
  499. package/.next/standalone/src/hooks/policy-helpers.ts +0 -16
  500. package/.next/standalone/src/hooks/policy-registry.ts +0 -90
  501. package/.next/standalone/src/hooks/policy-types.ts +0 -77
  502. package/.next/standalone/src/hooks/types.ts +0 -63
  503. package/.next/standalone/src/index.ts +0 -19
  504. package/.next/standalone/src/posthog-key.ts +0 -5
  505. package/.next/standalone/tailwind.config.ts +0 -11
  506. package/.next/standalone/tsconfig.json +0 -42
  507. package/.next/standalone/vitest.config.e2e.mts +0 -24
  508. package/.next/standalone/vitest.config.mts +0 -23
  509. /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → wOkJXoch1UmRAmyIuKZWc}/_buildManifest.js +0 -0
  510. /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → wOkJXoch1UmRAmyIuKZWc}/_clientMiddlewareManifest.js +0 -0
  511. /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → wOkJXoch1UmRAmyIuKZWc}/_ssgManifest.js +0 -0
@@ -1,307 +0,0 @@
1
- ---
2
- title: 예시
3
- description: "Claude Code 및 Agents SDK를 위한 훅 설정 방법"
4
- icon: book-open
5
- ---
6
-
7
- 일반적인 시나리오에 바로 사용할 수 있는 예시 모음입니다. 각 예시에는 설치 방법과 기대 동작이 포함되어 있습니다.
8
-
9
- ---
10
-
11
- ## Claude Code를 위한 훅 설정
12
-
13
- Failproof AI는 Claude Code의 [훅 시스템](https://docs.anthropic.com/en/docs/claude-code/hooks)을 통해 통합됩니다. `failproofai policies --install`을 실행하면, 모든 도구 호출 시 실행되는 훅 명령어가 Claude Code의 `settings.json`에 등록됩니다.
14
-
15
- <Steps>
16
- <Step title="failproofai 설치">
17
- ```bash
18
- npm install -g failproofai
19
- ```
20
- </Step>
21
- <Step title="내장 정책 전체 활성화">
22
- ```bash
23
- failproofai policies --install
24
- ```
25
- </Step>
26
- <Step title="훅 등록 확인">
27
- ```bash
28
- cat ~/.claude/settings.json | grep failproofai
29
- ```
30
-
31
- `PreToolUse`, `PostToolUse`, `Notification`, `Stop` 이벤트에 대한 훅 항목이 표시되어야 합니다.
32
- </Step>
33
- <Step title="Claude Code 실행">
34
- ```bash
35
- claude
36
- ```
37
-
38
- 이제 모든 도구 호출 시 정책이 자동으로 실행됩니다. Claude에게 `sudo rm -rf /` 실행을 요청해 보세요 — 차단됩니다.
39
- </Step>
40
- </Steps>
41
-
42
- ---
43
-
44
- ## Agents SDK를 위한 훅 설정
45
-
46
- [Agents SDK](https://docs.anthropic.com/en/docs/agents-sdk)로 개발 중이라면, 동일한 훅 시스템을 프로그래밍 방식으로 사용할 수 있습니다.
47
-
48
- <Steps>
49
- <Step title="프로젝트에 failproofai 설치">
50
- ```bash
51
- npm install failproofai
52
- ```
53
- </Step>
54
- <Step title="에이전트에 훅 설정">
55
- 에이전트 프로세스 생성 시 훅 명령어를 전달합니다. Claude Code에서와 동일하게 stdin/stdout JSON 방식으로 훅이 실행됩니다:
56
-
57
- ```bash
58
- failproofai --hook PreToolUse # 각 도구 실행 전 호출
59
- failproofai --hook PostToolUse # 각 도구 실행 후 호출
60
- ```
61
- </Step>
62
- <Step title="에이전트용 커스텀 정책 작성">
63
- ```javascript
64
- import { customPolicies, allow, deny } from "failproofai";
65
-
66
- customPolicies.add({
67
- name: "limit-to-project-dir",
68
- description: "에이전트를 프로젝트 디렉터리 내로 제한",
69
- match: { events: ["PreToolUse"] },
70
- fn: async (ctx) => {
71
- const path = String(ctx.toolInput?.file_path ?? "");
72
- if (path.startsWith("/") && !path.startsWith(ctx.session?.cwd ?? "")) {
73
- return deny("에이전트는 프로젝트 디렉터리로 제한됩니다");
74
- }
75
- return allow();
76
- },
77
- });
78
- ```
79
- </Step>
80
- <Step title="커스텀 정책 설치">
81
- ```bash
82
- failproofai policies --install --custom ./my-agent-policies.js
83
- ```
84
- </Step>
85
- </Steps>
86
-
87
- ---
88
-
89
- ## 파괴적인 명령어 차단
90
-
91
- 가장 일반적인 설정 — 에이전트가 되돌릴 수 없는 손상을 입히지 못하도록 방지합니다.
92
-
93
- ```bash
94
- failproofai policies --install block-sudo block-rm-rf block-force-push block-curl-pipe-sh
95
- ```
96
-
97
- 각 정책의 역할:
98
- - `block-sudo` - 모든 `sudo` 명령어 차단
99
- - `block-rm-rf` - 재귀적 파일 삭제 차단
100
- - `block-force-push` - `git push --force` 차단
101
- - `block-curl-pipe-sh` - 원격 스크립트를 셸로 파이프하는 명령 차단
102
-
103
- ---
104
-
105
- ## 시크릿 유출 방지
106
-
107
- 에이전트가 도구 출력에서 자격 증명을 확인하거나 유출하지 못하도록 차단합니다.
108
-
109
- ```bash
110
- failproofai policies --install sanitize-api-keys sanitize-jwt sanitize-connection-strings sanitize-bearer-tokens
111
- ```
112
-
113
- 이 정책들은 `PostToolUse` 시점에 실행됩니다 — 도구 실행 후 에이전트가 출력을 보기 전에 민감한 정보를 제거합니다.
114
-
115
- ---
116
-
117
- ## 에이전트가 대기 중일 때 Slack 알림 받기
118
-
119
- 알림 훅을 사용하여 유휴 알림을 Slack으로 전달합니다.
120
-
121
- ```javascript
122
- import { customPolicies, allow, instruct } from "failproofai";
123
-
124
- customPolicies.add({
125
- name: "slack-on-idle",
126
- description: "에이전트가 입력을 기다릴 때 Slack에 알림 전송",
127
- match: { events: ["Notification"] },
128
- fn: async (ctx) => {
129
- const webhookUrl = process.env.SLACK_WEBHOOK_URL;
130
- if (!webhookUrl) return allow();
131
-
132
- const message = String(ctx.payload?.message ?? "Agent is waiting");
133
- const project = ctx.session?.cwd ?? "unknown";
134
-
135
- try {
136
- await fetch(webhookUrl, {
137
- method: "POST",
138
- headers: { "Content-Type": "application/json" },
139
- body: JSON.stringify({
140
- text: `*${message}*\nProject: \`${project}\``,
141
- }),
142
- signal: AbortSignal.timeout(5000),
143
- });
144
- } catch {
145
- // Slack에 연결할 수 없어도 에이전트를 절대 차단하지 않음
146
- }
147
-
148
- return allow();
149
- },
150
- });
151
- ```
152
-
153
- 설치:
154
-
155
- ```bash
156
- SLACK_WEBHOOK_URL=https://hooks.slack.com/... failproofai policies --install --custom ./slack-alerts.js
157
- ```
158
-
159
- ---
160
-
161
- ## 에이전트를 특정 브랜치에 고정
162
-
163
- 에이전트가 브랜치를 전환하거나 보호된 브랜치에 푸시하지 못하도록 방지합니다.
164
-
165
- ```javascript
166
- import { customPolicies, allow, deny } from "failproofai";
167
-
168
- customPolicies.add({
169
- name: "stay-on-branch",
170
- description: "에이전트가 다른 브랜치로 체크아웃하지 못하도록 방지",
171
- match: { events: ["PreToolUse"] },
172
- fn: async (ctx) => {
173
- if (ctx.toolName !== "Bash") return allow();
174
- const cmd = String(ctx.toolInput?.command ?? "");
175
- if (/git\s+checkout\s+(?!-b)/.test(cmd)) {
176
- return deny("현재 브랜치를 유지하세요. 새 브랜치가 필요하면 -b 옵션을 사용하세요.");
177
- }
178
- return allow();
179
- },
180
- });
181
- ```
182
-
183
- ---
184
-
185
- ## 커밋 전 테스트 실행 요구
186
-
187
- 에이전트에게 커밋 전 테스트를 실행하도록 상기시킵니다.
188
-
189
- ```javascript
190
- import { customPolicies, allow, instruct } from "failproofai";
191
-
192
- customPolicies.add({
193
- name: "test-before-commit",
194
- description: "에이전트에게 커밋 전 테스트 실행을 상기",
195
- match: { events: ["PreToolUse"] },
196
- fn: async (ctx) => {
197
- if (ctx.toolName !== "Bash") return allow();
198
- const cmd = String(ctx.toolInput?.command ?? "");
199
- if (/git\s+commit/.test(cmd)) {
200
- return instruct("커밋 전에 테스트를 실행하세요. 먼저 `npm test` 또는 `bun test`를 사용하세요.");
201
- }
202
- return allow();
203
- },
204
- });
205
- ```
206
-
207
- ---
208
-
209
- ## 프로덕션 저장소 잠금
210
-
211
- 프로젝트 수준 설정을 커밋하여 팀의 모든 개발자가 동일한 정책을 적용받도록 합니다.
212
-
213
- 저장소에 `.failproofai/policies-config.json` 파일을 생성합니다:
214
-
215
- ```json
216
- {
217
- "enabledPolicies": [
218
- "block-sudo",
219
- "block-rm-rf",
220
- "block-force-push",
221
- "block-push-master",
222
- "block-env-files",
223
- "sanitize-api-keys",
224
- "sanitize-jwt"
225
- ],
226
- "policyParams": {
227
- "block-push-master": {
228
- "protectedBranches": ["main", "release", "production"]
229
- }
230
- }
231
- }
232
- ```
233
-
234
- 커밋합니다:
235
-
236
- ```bash
237
- git add .failproofai/policies-config.json
238
- git commit -m "Add failproofai team policies"
239
- ```
240
-
241
- failproofai를 설치한 모든 팀원이 이 규칙을 자동으로 적용받게 됩니다.
242
-
243
- ---
244
-
245
- ## 컨벤션 정책으로 조직 전체 품질 기준 구축
246
-
247
- 가장 효과적인 설정: 프로젝트에 맞게 조정된 정책을 담은 `.failproofai/policies/` 디렉터리를 저장소에 커밋합니다. 모든 팀원이 별도의 설치 명령이나 설정 변경 없이 자동으로 적용받습니다.
248
-
249
- <Steps>
250
- <Step title="디렉터리 생성 후 정책 추가">
251
- ```bash
252
- mkdir -p .failproofai/policies
253
- ```
254
-
255
- ```js
256
- // .failproofai/policies/team-policies.mjs
257
- import { customPolicies, allow, deny, instruct } from "failproofai";
258
-
259
- // 팀이 선호하는 패키지 매니저 강제 적용
260
- // (또는 내장 prefer-package-manager 정책을 활성화하세요)
261
- customPolicies.add({
262
- name: "enforce-bun",
263
- match: { events: ["PreToolUse"] },
264
- fn: async (ctx) => {
265
- if (ctx.toolName !== "Bash") return allow();
266
- const cmd = String(ctx.toolInput?.command ?? "");
267
- if (/\bnpm\b/.test(cmd)) return deny("npm 대신 bun을 사용하세요.");
268
- return allow();
269
- },
270
- });
271
-
272
- // 에이전트에게 커밋 전 테스트 실행을 상기
273
- customPolicies.add({
274
- name: "test-before-commit",
275
- match: { events: ["PreToolUse"] },
276
- fn: async (ctx) => {
277
- if (ctx.toolName !== "Bash") return allow();
278
- if (/git\s+commit/.test(ctx.toolInput?.command ?? "")) {
279
- return instruct("커밋 전에 테스트를 실행하세요.");
280
- }
281
- return allow();
282
- },
283
- });
284
- ```
285
- </Step>
286
- <Step title="git에 커밋">
287
- ```bash
288
- git add .failproofai/policies/
289
- git commit -m "Add team quality policies"
290
- ```
291
- </Step>
292
- <Step title="지속적으로 개선하기">
293
- 팀에서 새로운 장애 패턴을 발견할 때마다 정책을 추가하고 푸시하세요. 모든 팀원이 다음 `git pull` 시 업데이트를 받게 됩니다. 이 정책들은 팀과 함께 성장하는 살아있는 품질 기준이 됩니다.
294
- </Step>
295
- </Steps>
296
-
297
- ---
298
-
299
- ## 추가 예시
300
-
301
- 저장소의 [`examples/`](https://github.com/exospherehost/failproofai/tree/main/examples) 디렉터리에는 다음이 포함되어 있습니다:
302
-
303
- | 파일 | 내용 |
304
- |------|---------------|
305
- | `policies-basic.js` | 기본 정책 — 프로덕션 쓰기, 강제 푸시, 파이프 스크립트 차단 |
306
- | `policies-notification.js` | 유휴 알림 및 세션 종료 시 Slack 알림 |
307
- | `policies-advanced/index.js` | 전이적 임포트, 비동기 훅, PostToolUse 출력 스크러빙, Stop 이벤트 처리 |
@@ -1,38 +0,0 @@
1
- ---
2
- title: "에이전트용"
3
- description: "한 번의 명령으로 코딩 에이전트에 Failproof AI 지식을 추가하세요. Claude Code, Cursor, Windsurf 등과 호환됩니다."
4
- ---
5
-
6
- 한 번의 명령으로 Failproof AI 전체 레퍼런스를 코딩 에이전트에 추가하세요. Claude Code, Cursor, Windsurf, 그리고 스킬을 지원하는 모든 에이전트와 호환됩니다.
7
-
8
- ```bash
9
- npx skills add https://docs.befailproof.ai
10
- ```
11
-
12
- `npx skills`는 설치된 에이전트를 자동으로 감지하고, 각 에이전트에 맞는 형식으로 스킬을 추가합니다.
13
-
14
- ## 스킬이 다루는 내용
15
-
16
- | 영역 | 포함 내용 |
17
- |------|----------------|
18
- | Policies | 기본 제공 정책 이름, 이벤트 타입, 파라미터, 활성화/비활성화 |
19
- | Custom policies | `customPolicies.add()`, 매치 필터, `allow`/`deny`/`instruct` API |
20
- | Context object | `ctx.eventType`, `ctx.toolName`, `ctx.toolInput`, `ctx.session` |
21
- | Configuration | `policies-config.json` 구조, 스코프 병합, `policyParams` |
22
- | CLI | `failproofai policies --install`, `--uninstall`, `--custom`, 스코프 |
23
- | Dashboard | 세션 뷰어, 정책 활동, 환경 변수 |
24
- | Architecture | 훅 핸들러 플로우, 종료 코드, stdin/stdout 계약 |
25
-
26
- ## 스킬이 완전한가요?
27
-
28
- Mintlify는 내비게이션의 모든 페이지에서 `llms.txt`를 생성합니다. Failproof AI 문서는 전체 API를 다루고 있으며, 모든 정책, 옵션, 예제가 포함되어 있습니다. 누락된 내용이 발견되면 소스는 `https://docs.befailproof.ai/llms-full.txt`에서 확인할 수 있습니다.
29
-
30
- 특정 맥락만 필요한 경우, 특정 페이지로 직접 링크할 수 있습니다:
31
-
32
- ```bash
33
- # 커스텀 정책 API만 추가
34
- npx skills add https://docs.befailproof.ai/custom-policies
35
-
36
- # 기본 제공 정책만 추가
37
- npx skills add https://docs.befailproof.ai/built-in-policies
38
- ```
@@ -1,186 +0,0 @@
1
- ---
2
- title: 시작하기
3
- description: "failproofai를 설치하고, 정책을 활성화하여 에이전트를 안정적으로 실행하세요"
4
- icon: rocket
5
- ---
6
-
7
- ## 요구 사항
8
-
9
- - **Node.js** >= 20.9.0
10
- - **Bun** >= 1.3.0 (선택 사항 - 소스에서 직접 빌드할 때만 필요)
11
-
12
- ---
13
-
14
- ## 설치
15
-
16
- <CodeGroup>
17
-
18
- ```bash npm
19
- npm install -g failproofai
20
- ```
21
-
22
- ```bash bun
23
- bun add -g failproofai
24
- ```
25
-
26
- </CodeGroup>
27
-
28
- ---
29
-
30
- ## 빠른 시작
31
-
32
- <Steps>
33
- <Step title="정책 활성화">
34
- 정책은 에이전트의 모든 도구 호출 전후에 실행되는 규칙입니다. 파괴적인 명령, 비밀 정보 유출, 그 밖의 실패 패턴을 피해가 발생하기 전에 차단합니다.
35
-
36
- ```bash
37
- failproofai policies --install
38
- ```
39
-
40
- 이 명령은 Claude Code의 `settings.json`에 훅 항목을 작성합니다. 단일 프로젝트에만 설치하거나 특정 정책만 선택할 수도 있습니다:
41
-
42
- ```bash
43
- failproofai policies --install --scope project
44
- failproofai policies --install block-sudo block-rm-rf sanitize-api-keys
45
- ```
46
- </Step>
47
- <Step title="확인">
48
- ```bash
49
- failproofai policies
50
- ```
51
-
52
- 모든 정책의 활성화 여부와 설정된 파라미터를 표시합니다.
53
- </Step>
54
- <Step title="대시보드 실행">
55
- ```bash
56
- failproofai
57
- ```
58
-
59
- `http://localhost:8020`에 로컬 대시보드를 엽니다. 여기서 세션을 탐색하고, 도구 호출을 검사하며, 정책을 관리할 수 있습니다.
60
- </Step>
61
- <Step title="에이전트 실행">
62
- 평소처럼 Claude Code를 시작하세요. 에이전트가 위험한 작업을 시도하면 failproofai가 자동으로 가로챕니다. 에이전트를 무인 상태로 두고 대시보드에서 결과를 나중에 확인하세요.
63
- </Step>
64
- </Steps>
65
-
66
- ---
67
-
68
- ## 정책 동작 방식
69
-
70
- 에이전트가 도구를 실행할 때마다 Claude Code는 failproofai를 서브프로세스로 호출합니다:
71
-
72
- ```text
73
- Claude Code → failproofai --hook PreToolUse → reads stdin JSON
74
- evaluates policies
75
- writes decision to stdout
76
- ```
77
-
78
- 각 정책은 다음 세 가지 결정 중 하나를 반환합니다:
79
-
80
- - **allow** - 에이전트가 정상적으로 진행됩니다
81
- - **deny** - 동작이 차단되고 에이전트에게 이유가 전달됩니다
82
- - **instruct** - 에이전트의 프롬프트에 추가 컨텍스트가 삽입됩니다
83
-
84
- <Note>
85
- 정책은 로컬 프로세스에서 실행됩니다. 원격 서비스로 전송되는 데이터는 없습니다.
86
- </Note>
87
-
88
- ---
89
-
90
- ## 컨벤션 기반 정책으로 팀 정책 설정하기
91
-
92
- 팀 전체에 품질 기준을 빠르게 도입하는 방법은 `.failproofai/policies/` 컨벤션을 활용하는 것입니다. 이 디렉터리에 정책 파일을 넣기만 하면 자동으로 로드됩니다 — 별도의 플래그, 설정 변경, 설치 명령이 필요 없습니다.
93
-
94
- <Steps>
95
- <Step title="정책 디렉터리 생성">
96
- ```bash
97
- mkdir -p .failproofai/policies
98
- ```
99
- </Step>
100
- <Step title="정책 파일 추가">
101
- 스타터 예제를 복사하거나 직접 작성하세요:
102
-
103
- ```bash
104
- cp node_modules/failproofai/examples/convention-policies/*.mjs .failproofai/policies/
105
- ```
106
-
107
- 또는 새로 만들기:
108
-
109
- ```js
110
- // .failproofai/policies/team-policies.mjs
111
- import { customPolicies, allow, deny, instruct } from "failproofai";
112
-
113
- customPolicies.add({
114
- name: "test-before-commit",
115
- match: { events: ["PreToolUse"] },
116
- fn: async (ctx) => {
117
- if (ctx.toolName !== "Bash") return allow();
118
- if (/git\s+commit/.test(ctx.toolInput?.command ?? "")) {
119
- return instruct("Run tests before committing.");
120
- }
121
- return allow();
122
- },
123
- });
124
- ```
125
- </Step>
126
- <Step title="git에 커밋">
127
- ```bash
128
- git add .failproofai/policies/
129
- git commit -m "Add team quality policies"
130
- ```
131
-
132
- failproofai가 설치된 팀원이라면 누구나 이 정책을 자동으로 적용받습니다. 개발자별 별도 설정이 필요 없습니다.
133
- </Step>
134
- </Steps>
135
-
136
- <Tip>
137
- `.failproofai/policies/`를 저장소에 커밋하면 팀 전체가 동일한 기준을 공유할 수 있습니다. 팀이 새로운 실패 패턴을 발견할 때마다 정책을 추가하고 푸시하면 — 모든 팀원이 다음 `git pull` 시 업데이트를 받게 됩니다. 시간이 지남에 따라 이 정책들은 지속적으로 발전하는 살아있는 품질 기준이 됩니다.
138
- </Tip>
139
-
140
- ---
141
-
142
- ## 데이터 저장
143
-
144
- 모든 설정과 로그는 로컬 머신에 저장됩니다:
145
-
146
- | 경로 | 저장 내용 |
147
- |------|----------------|
148
- | `~/.failproofai/policies-config.json` | 전역 정책 설정 |
149
- | `~/.failproofai/hook-activity.jsonl` | 훅 실행 이력 |
150
- | `~/.failproofai/hook.log` | 커스텀 훅 오류 디버그 로그 |
151
- | `.failproofai/policies-config.json` | 프로젝트별 설정 (커밋됨) |
152
- | `.failproofai/policies-config.local.json` | 개인 오버라이드 (gitignore 처리됨) |
153
-
154
- ---
155
-
156
- ## 제거
157
-
158
- ```bash
159
- failproofai policies --uninstall
160
- ```
161
-
162
- `~/.claude/settings.json`에서 훅 항목을 제거합니다. `~/.failproofai/`의 설정 파일은 유지됩니다.
163
-
164
- ---
165
-
166
- ## 다음 단계
167
-
168
- <CardGroup cols={2}>
169
-
170
- <Card title="설정" icon="gear" href="/ko/configuration">
171
- 스코프 및 설정 파일 형식
172
- </Card>
173
-
174
- <Card title="기본 제공 정책" icon="shield" href="/ko/built-in-policies">
175
- 파라미터를 포함한 26가지 정책 전체 목록
176
- </Card>
177
-
178
- <Card title="커스텀 정책" icon="code" href="/ko/custom-policies">
179
- JavaScript로 나만의 정책 작성하기
180
- </Card>
181
-
182
- <Card title="에이전트 모니터" icon="chart-line" href="/ko/dashboard">
183
- 세션 모니터링 및 정책 활동 검토
184
- </Card>
185
-
186
- </CardGroup>
@@ -1,57 +0,0 @@
1
- ---
2
- title: Failproof AI
3
- description: "AI 에이전트를 안정적으로 자율 운영할 수 있도록 훅과 정책을 관리합니다"
4
- ---
5
-
6
- [![npm weekly downloads](https://img.shields.io/npm/dw/failproofai?style=flat-square&color=2ea44f)](https://www.npmjs.com/package/failproofai)
7
-
8
- **Claude Code** 및 **Agents SDK**를 위한 훅과 정책으로 AI 에이전트를 안정적으로 자율 운영하세요.
9
-
10
- AI 에이전트는 예측 가능한 방식으로 실패합니다. 파괴적인 명령을 실행하거나, 시크릿을 유출하거나, 작업 범위를 벗어나거나, 루프에 빠지거나, main 브랜치에 직접 푸시하기도 합니다. 방치하면 작은 실패가 연쇄적으로 커집니다.
11
-
12
- Failproof AI는 **정책(policies)** 으로 이 문제를 해결합니다. 정책은 에이전트의 모든 도구 호출에 훅으로 연결되어 **장애를 감지**하고, **완화 조치**(차단, 지시, 정제)를 취하며, 주의가 필요한 상황이 발생하면 **알림을 보냅니다**. 로컬 대시보드에서 이후에 모든 내용을 검토할 수 있습니다.
13
-
14
- 모든 처리는 로컬에서 이루어집니다. 데이터가 외부로 전송되지 않습니다.
15
-
16
- ## 시작하기
17
-
18
- <CardGroup cols={2}>
19
-
20
- <Card title="26개의 내장 정책" icon="shield" href="/ko/built-in-policies">
21
- 파괴적인 명령 차단, 시크릿 유출 방지, 에이전트를 프로젝트 범위 내로 제한하는 등 다양한 기능을 즉시 사용할 수 있습니다.
22
- </Card>
23
-
24
- <Card title="커스텀 정책" icon="code" href="/ko/custom-policies">
25
- 간단한 allow / deny / instruct API를 사용해 JavaScript로 나만의 규칙을 작성하세요.
26
- </Card>
27
-
28
- <Card title="에이전트 모니터" icon="chart-line" href="/ko/dashboard">
29
- 자리를 비운 사이 에이전트가 무엇을 했는지 확인하세요. 세션을 탐색하고, 도구 호출을 검사하며, 정책이 발동된 지점을 검토할 수 있습니다.
30
- </Card>
31
-
32
- <Card title="간편한 설정" icon="gear" href="/ko/configuration">
33
- 코드 없이 모든 정책을 조정하세요. 프로젝트별 또는 전역으로 허용 목록, 보호 브랜치, 임계값을 설정할 수 있습니다.
34
- </Card>
35
-
36
- </CardGroup>
37
-
38
- ## 빠른 시작
39
-
40
- <CodeGroup>
41
-
42
- ```bash npm
43
- npm install -g failproofai
44
- ```
45
-
46
- ```bash bun
47
- bun add -g failproofai
48
- ```
49
-
50
- </CodeGroup>
51
-
52
- ```bash
53
- failproofai policies --install # 정책 활성화
54
- failproofai # 대시보드 실행
55
- ```
56
-
57
- 전체 안내는 [시작 가이드](/ko/getting-started)를 참고하세요.
@@ -1,82 +0,0 @@
1
- ---
2
- title: 패키지 별칭
3
- description: "등록된 오타 방지 별칭과 그 작동 방식"
4
- icon: copy
5
- ---
6
-
7
- ## 공식 패키지
8
-
9
- npm의 정식 패키지명은 **`failproofai`**입니다:
10
-
11
- ```bash
12
- npm install -g failproofai
13
- # or
14
- bun add -g failproofai
15
- ```
16
-
17
- ---
18
-
19
- ## 별칭 이름을 직접 소유하는 이유
20
-
21
- 타이포스쿼팅(typosquatting)은 공급망 공격의 일반적인 유형으로, 악의적인 공격자가 인기 패키지명에서 한 글자만 다른 패키지를 등록합니다. 설치 명령어를 잘못 입력한 사용자는 자신도 모르게 공격자가 제어하는 코드를 전체 시스템 접근 권한으로 실행하게 됩니다. 이는 바로 Failproof AI가 막아내고자 하는 위협입니다.
22
-
23
- 이 공격 표면을 없애기 위해, **npm에서 `failproofai`의 모든 일반적인 오타 및 표기 변형을 선제적으로 소유**하고 있습니다. 이 이름들은 제3자가 등록할 수 없으며, 각각은 실제 `failproofai` 패키지를 설치하고 위임하는 얇은 프록시입니다.
24
-
25
- ---
26
-
27
- ## 등록된 별칭
28
-
29
- **표기 변형** - "failproof ai"를 작성하는 다양한 방식:
30
-
31
- | 패키지 | 상태 |
32
- |---------|--------|
33
- | `failproof` | ✅ 게시됨 |
34
- | `failproof-ai` | ⏳ npm 승인 대기 중 |
35
- | `fail-proof-ai` | ⏳ npm 승인 대기 중 |
36
- | `failproof_ai` | ⏳ npm 승인 대기 중 |
37
- | `fail_proof_ai` | ⏳ npm 승인 대기 중 |
38
- | `fail-proofai` | ⏳ npm 승인 대기 중 |
39
-
40
- **`failprof*` 오타** - "proof"에서 `o` 하나가 빠진 경우:
41
-
42
- | 패키지 | 상태 |
43
- |---------|--------|
44
- | `failprof` | ✅ 게시됨 |
45
- | `failprof-ai` | ✅ 게시됨 |
46
- | `failprofai` | ⏳ npm 승인 대기 중 |
47
- | `fail-prof-ai` | ⏳ npm 승인 대기 중 |
48
- | `failprof_ai` | ⏳ npm 승인 대기 중 |
49
-
50
- **`faliproof*` 오타** - `a`와 `i`가 뒤바뀐 경우:
51
-
52
- | 패키지 | 상태 |
53
- |---------|--------|
54
- | `faliproof` | ✅ 게시됨 |
55
- | `faliproof-ai` | ✅ 게시됨 |
56
- | `faliproofai` | ⏳ npm 승인 대기 중 |
57
-
58
- > **왜 대기 중인가요?** npm의 스팸 방지 정책은 구두점을 제거하고 유사도 검사를 수행한 후 기존 패키지와 동일한 문자열로 정규화되는 이름의 등록을 차단합니다. 현재 스쿼팅 방지 목적으로 이 이름들을 예약하기 위해 npm 지원팀에 문의한 상태이며, 승인 후 활성화될 예정입니다.
59
-
60
- 게시된 별칭이 저희 소유인지 다음 명령어로 확인할 수 있습니다:
61
-
62
- ```bash
63
- npm info failproof
64
- # Look for: "ExosphereHost Inc." in the maintainers field
65
- ```
66
-
67
- ---
68
-
69
- ## 별칭의 작동 방식
70
-
71
- 각 별칭 패키지는:
72
-
73
- 1. `failproofai`를 의존성으로 등록하여, 설치 시 실제 패키지(및 해당 `postinstall` 훅 설정)가 실행됩니다.
74
- 2. 자체 이름(예: `failprof-ai`)에 해당하는 바이너리를 노출하며, 모든 인수를 `failproofai` 바이너리로 프록시합니다.
75
-
76
- 프록시는 두 줄짜리 Node 스크립트로, 로직도 없고 네트워크 호출도 없으며, `failproofai` 자체가 수행하는 것 이상의 데이터 수집도 없습니다.
77
-
78
- ---
79
-
80
- ## 누락된 이름을 발견했다면
81
-
82
- [exospherehost/failproofai](https://github.com/exospherehost/failproofai/issues)에 이슈를 등록해 주시면 등록하겠습니다.