failproofai 0.0.2-beta.8 → 0.0.2-beta.9

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 (379) hide show
  1. package/.next/standalone/.claude/settings.json +26 -26
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/build-manifest.json +3 -3
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/required-server-files.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  11. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  12. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  13. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  14. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  15. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  20. package/.next/standalone/.next/server/app/_not-found.rsc +17 -17
  21. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +17 -17
  22. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  23. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
  24. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  25. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  26. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  27. package/.next/standalone/.next/server/app/index.html +1 -1
  28. package/.next/standalone/.next/server/app/index.rsc +16 -16
  29. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  30. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +16 -16
  31. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  32. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +11 -11
  33. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  34. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  35. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  38. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  41. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  44. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  45. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  48. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +3 -0
  51. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0kjo7d_._.js +1 -1
  52. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
  53. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
  54. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
  55. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
  56. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
  57. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
  58. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0.t2266._.js → [root-of-the-server]__0vn1ciw._.js} +2 -2
  59. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +2 -1
  60. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0pjorff._.js → [root-of-the-server]__0z-n~~r._.js} +2 -2
  61. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
  62. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
  63. package/.next/standalone/.next/server/chunks/ssr/_0x..fj-._.js +1 -1
  64. package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +2 -2
  65. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +1 -1
  66. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +1 -1
  67. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  68. package/.next/standalone/.next/server/pages/404.html +2 -2
  69. package/.next/standalone/.next/server/pages/500.html +1 -1
  70. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/server-reference-manifest.json +9 -9
  72. package/.next/standalone/.next/static/chunks/{0qi0ubup__3pj.js → 04wavch6dsfes.js} +1 -1
  73. package/.next/standalone/.next/static/chunks/{121a-0zn-knuy.js → 0drr--vxs_m-c.js} +1 -1
  74. package/.next/standalone/.next/static/chunks/{0jf9lx3rkmqx_.css → 0gu_a.a80ritd.css} +1 -1
  75. package/.next/standalone/.next/static/chunks/{07g0rbtaux_1t.js → 0i1ilz5554nv9.js} +1 -1
  76. package/.next/standalone/.next/static/chunks/{0j752uotyfvjh.js → 0keqg6-cjs8aa.js} +1 -1
  77. package/.next/standalone/.next/static/chunks/{0xyvis4r_y.8o.js → 0myzx7y.rqqi3.js} +2 -2
  78. package/.next/standalone/.next/static/chunks/{0a_xh94bt.y0j.js → 0zfrusm~j404v.js} +1 -1
  79. package/.next/standalone/.next/static/chunks/{0zfyfi1suoteq.js → 10xhknzfyigcu.js} +1 -1
  80. package/.next/standalone/.next/static/chunks/{04xfyqyhdxbxz.js → 16yg3xhkmdb9v.js} +1 -1
  81. package/.next/standalone/CHANGELOG.md +13 -0
  82. package/.next/standalone/CLAUDE.md +14 -0
  83. package/.next/standalone/README.md +16 -0
  84. package/.next/standalone/bun.lock +45 -0
  85. package/.next/standalone/dist/cli.mjs +12 -5
  86. package/.next/standalone/docs/ar/architecture.mdx +333 -0
  87. package/.next/standalone/docs/ar/built-in-policies.mdx +566 -0
  88. package/.next/standalone/docs/ar/cli/dashboard.mdx +28 -0
  89. package/.next/standalone/docs/ar/cli/environment-variables.mdx +34 -0
  90. package/.next/standalone/docs/ar/cli/hook.mdx +31 -0
  91. package/.next/standalone/docs/ar/cli/install-policies.mdx +49 -0
  92. package/.next/standalone/docs/ar/cli/list-policies.mdx +31 -0
  93. package/.next/standalone/docs/ar/cli/remove-policies.mdx +45 -0
  94. package/.next/standalone/docs/ar/cli/version.mdx +13 -0
  95. package/.next/standalone/docs/ar/configuration.mdx +223 -0
  96. package/.next/standalone/docs/ar/custom-policies.mdx +359 -0
  97. package/.next/standalone/docs/ar/dashboard.mdx +142 -0
  98. package/.next/standalone/docs/ar/examples.mdx +254 -0
  99. package/.next/standalone/docs/ar/for-agents.mdx +39 -0
  100. package/.next/standalone/docs/ar/getting-started.mdx +134 -0
  101. package/.next/standalone/docs/ar/introduction.mdx +58 -0
  102. package/.next/standalone/docs/ar/package-aliases.mdx +82 -0
  103. package/.next/standalone/docs/ar/testing.mdx +261 -0
  104. package/.next/standalone/docs/de/architecture.mdx +332 -0
  105. package/.next/standalone/docs/de/built-in-policies.mdx +564 -0
  106. package/.next/standalone/docs/de/cli/dashboard.mdx +28 -0
  107. package/.next/standalone/docs/de/cli/environment-variables.mdx +34 -0
  108. package/.next/standalone/docs/de/cli/hook.mdx +30 -0
  109. package/.next/standalone/docs/de/cli/install-policies.mdx +48 -0
  110. package/.next/standalone/docs/de/cli/list-policies.mdx +31 -0
  111. package/.next/standalone/docs/de/cli/remove-policies.mdx +44 -0
  112. package/.next/standalone/docs/de/cli/version.mdx +12 -0
  113. package/.next/standalone/docs/de/configuration.mdx +222 -0
  114. package/.next/standalone/docs/de/custom-policies.mdx +357 -0
  115. package/.next/standalone/docs/de/dashboard.mdx +142 -0
  116. package/.next/standalone/docs/de/examples.mdx +253 -0
  117. package/.next/standalone/docs/de/for-agents.mdx +38 -0
  118. package/.next/standalone/docs/de/getting-started.mdx +134 -0
  119. package/.next/standalone/docs/de/introduction.mdx +57 -0
  120. package/.next/standalone/docs/de/package-aliases.mdx +82 -0
  121. package/.next/standalone/docs/de/testing.mdx +260 -0
  122. package/.next/standalone/docs/docs.json +922 -35
  123. package/.next/standalone/docs/es/architecture.mdx +332 -0
  124. package/.next/standalone/docs/es/built-in-policies.mdx +564 -0
  125. package/.next/standalone/docs/es/cli/dashboard.mdx +28 -0
  126. package/.next/standalone/docs/es/cli/environment-variables.mdx +34 -0
  127. package/.next/standalone/docs/es/cli/hook.mdx +30 -0
  128. package/.next/standalone/docs/es/cli/install-policies.mdx +48 -0
  129. package/.next/standalone/docs/es/cli/list-policies.mdx +31 -0
  130. package/.next/standalone/docs/es/cli/remove-policies.mdx +44 -0
  131. package/.next/standalone/docs/es/cli/version.mdx +12 -0
  132. package/.next/standalone/docs/es/configuration.mdx +222 -0
  133. package/.next/standalone/docs/es/custom-policies.mdx +357 -0
  134. package/.next/standalone/docs/es/dashboard.mdx +142 -0
  135. package/.next/standalone/docs/es/examples.mdx +253 -0
  136. package/.next/standalone/docs/es/for-agents.mdx +38 -0
  137. package/.next/standalone/docs/es/getting-started.mdx +134 -0
  138. package/.next/standalone/docs/es/introduction.mdx +57 -0
  139. package/.next/standalone/docs/es/package-aliases.mdx +82 -0
  140. package/.next/standalone/docs/es/testing.mdx +260 -0
  141. package/.next/standalone/docs/fr/architecture.mdx +332 -0
  142. package/.next/standalone/docs/fr/built-in-policies.mdx +564 -0
  143. package/.next/standalone/docs/fr/cli/dashboard.mdx +28 -0
  144. package/.next/standalone/docs/fr/cli/environment-variables.mdx +34 -0
  145. package/.next/standalone/docs/fr/cli/hook.mdx +30 -0
  146. package/.next/standalone/docs/fr/cli/install-policies.mdx +48 -0
  147. package/.next/standalone/docs/fr/cli/list-policies.mdx +31 -0
  148. package/.next/standalone/docs/fr/cli/remove-policies.mdx +44 -0
  149. package/.next/standalone/docs/fr/cli/version.mdx +12 -0
  150. package/.next/standalone/docs/fr/configuration.mdx +222 -0
  151. package/.next/standalone/docs/fr/custom-policies.mdx +357 -0
  152. package/.next/standalone/docs/fr/dashboard.mdx +142 -0
  153. package/.next/standalone/docs/fr/examples.mdx +253 -0
  154. package/.next/standalone/docs/fr/for-agents.mdx +38 -0
  155. package/.next/standalone/docs/fr/getting-started.mdx +134 -0
  156. package/.next/standalone/docs/fr/introduction.mdx +57 -0
  157. package/.next/standalone/docs/fr/package-aliases.mdx +82 -0
  158. package/.next/standalone/docs/fr/testing.mdx +260 -0
  159. package/.next/standalone/docs/he/architecture.mdx +333 -0
  160. package/.next/standalone/docs/he/built-in-policies.mdx +564 -0
  161. package/.next/standalone/docs/he/cli/dashboard.mdx +28 -0
  162. package/.next/standalone/docs/he/cli/environment-variables.mdx +34 -0
  163. package/.next/standalone/docs/he/cli/hook.mdx +30 -0
  164. package/.next/standalone/docs/he/cli/install-policies.mdx +48 -0
  165. package/.next/standalone/docs/he/cli/list-policies.mdx +32 -0
  166. package/.next/standalone/docs/he/cli/remove-policies.mdx +44 -0
  167. package/.next/standalone/docs/he/cli/version.mdx +12 -0
  168. package/.next/standalone/docs/he/configuration.mdx +222 -0
  169. package/.next/standalone/docs/he/custom-policies.mdx +357 -0
  170. package/.next/standalone/docs/he/dashboard.mdx +142 -0
  171. package/.next/standalone/docs/he/examples.mdx +253 -0
  172. package/.next/standalone/docs/he/for-agents.mdx +38 -0
  173. package/.next/standalone/docs/he/getting-started.mdx +135 -0
  174. package/.next/standalone/docs/he/introduction.mdx +57 -0
  175. package/.next/standalone/docs/he/package-aliases.mdx +82 -0
  176. package/.next/standalone/docs/he/testing.mdx +260 -0
  177. package/.next/standalone/docs/hi/architecture.mdx +334 -0
  178. package/.next/standalone/docs/hi/built-in-policies.mdx +564 -0
  179. package/.next/standalone/docs/hi/cli/dashboard.mdx +28 -0
  180. package/.next/standalone/docs/hi/cli/environment-variables.mdx +34 -0
  181. package/.next/standalone/docs/hi/cli/hook.mdx +30 -0
  182. package/.next/standalone/docs/hi/cli/install-policies.mdx +48 -0
  183. package/.next/standalone/docs/hi/cli/list-policies.mdx +31 -0
  184. package/.next/standalone/docs/hi/cli/remove-policies.mdx +44 -0
  185. package/.next/standalone/docs/hi/cli/version.mdx +12 -0
  186. package/.next/standalone/docs/hi/configuration.mdx +222 -0
  187. package/.next/standalone/docs/hi/custom-policies.mdx +357 -0
  188. package/.next/standalone/docs/hi/dashboard.mdx +142 -0
  189. package/.next/standalone/docs/hi/examples.mdx +255 -0
  190. package/.next/standalone/docs/hi/for-agents.mdx +38 -0
  191. package/.next/standalone/docs/hi/getting-started.mdx +134 -0
  192. package/.next/standalone/docs/hi/introduction.mdx +57 -0
  193. package/.next/standalone/docs/hi/package-aliases.mdx +82 -0
  194. package/.next/standalone/docs/hi/testing.mdx +260 -0
  195. package/.next/standalone/docs/i18n/README.ar.md +312 -0
  196. package/.next/standalone/docs/i18n/README.de.md +307 -0
  197. package/.next/standalone/docs/i18n/README.es.md +307 -0
  198. package/.next/standalone/docs/i18n/README.fr.md +307 -0
  199. package/.next/standalone/docs/i18n/README.he.md +312 -0
  200. package/.next/standalone/docs/i18n/README.hi.md +307 -0
  201. package/.next/standalone/docs/i18n/README.it.md +307 -0
  202. package/.next/standalone/docs/i18n/README.ja.md +307 -0
  203. package/.next/standalone/docs/i18n/README.ko.md +307 -0
  204. package/.next/standalone/docs/i18n/README.pt-br.md +307 -0
  205. package/.next/standalone/docs/i18n/README.ru.md +308 -0
  206. package/.next/standalone/docs/i18n/README.tr.md +308 -0
  207. package/.next/standalone/docs/i18n/README.vi.md +308 -0
  208. package/.next/standalone/docs/i18n/README.zh.md +307 -0
  209. package/.next/standalone/docs/it/architecture.mdx +333 -0
  210. package/.next/standalone/docs/it/built-in-policies.mdx +564 -0
  211. package/.next/standalone/docs/it/cli/dashboard.mdx +28 -0
  212. package/.next/standalone/docs/it/cli/environment-variables.mdx +34 -0
  213. package/.next/standalone/docs/it/cli/hook.mdx +30 -0
  214. package/.next/standalone/docs/it/cli/install-policies.mdx +48 -0
  215. package/.next/standalone/docs/it/cli/list-policies.mdx +31 -0
  216. package/.next/standalone/docs/it/cli/remove-policies.mdx +44 -0
  217. package/.next/standalone/docs/it/cli/version.mdx +12 -0
  218. package/.next/standalone/docs/it/configuration.mdx +223 -0
  219. package/.next/standalone/docs/it/custom-policies.mdx +358 -0
  220. package/.next/standalone/docs/it/dashboard.mdx +142 -0
  221. package/.next/standalone/docs/it/examples.mdx +253 -0
  222. package/.next/standalone/docs/it/for-agents.mdx +38 -0
  223. package/.next/standalone/docs/it/getting-started.mdx +134 -0
  224. package/.next/standalone/docs/it/introduction.mdx +57 -0
  225. package/.next/standalone/docs/it/package-aliases.mdx +82 -0
  226. package/.next/standalone/docs/it/testing.mdx +260 -0
  227. package/.next/standalone/docs/ja/architecture.mdx +332 -0
  228. package/.next/standalone/docs/ja/built-in-policies.mdx +562 -0
  229. package/.next/standalone/docs/ja/cli/dashboard.mdx +28 -0
  230. package/.next/standalone/docs/ja/cli/environment-variables.mdx +34 -0
  231. package/.next/standalone/docs/ja/cli/hook.mdx +30 -0
  232. package/.next/standalone/docs/ja/cli/install-policies.mdx +48 -0
  233. package/.next/standalone/docs/ja/cli/list-policies.mdx +31 -0
  234. package/.next/standalone/docs/ja/cli/remove-policies.mdx +44 -0
  235. package/.next/standalone/docs/ja/cli/version.mdx +12 -0
  236. package/.next/standalone/docs/ja/configuration.mdx +222 -0
  237. package/.next/standalone/docs/ja/custom-policies.mdx +357 -0
  238. package/.next/standalone/docs/ja/dashboard.mdx +142 -0
  239. package/.next/standalone/docs/ja/examples.mdx +253 -0
  240. package/.next/standalone/docs/ja/for-agents.mdx +38 -0
  241. package/.next/standalone/docs/ja/getting-started.mdx +134 -0
  242. package/.next/standalone/docs/ja/introduction.mdx +57 -0
  243. package/.next/standalone/docs/ja/package-aliases.mdx +82 -0
  244. package/.next/standalone/docs/ja/testing.mdx +260 -0
  245. package/.next/standalone/docs/ko/architecture.mdx +332 -0
  246. package/.next/standalone/docs/ko/built-in-policies.mdx +562 -0
  247. package/.next/standalone/docs/ko/cli/dashboard.mdx +28 -0
  248. package/.next/standalone/docs/ko/cli/environment-variables.mdx +34 -0
  249. package/.next/standalone/docs/ko/cli/hook.mdx +30 -0
  250. package/.next/standalone/docs/ko/cli/install-policies.mdx +48 -0
  251. package/.next/standalone/docs/ko/cli/list-policies.mdx +31 -0
  252. package/.next/standalone/docs/ko/cli/remove-policies.mdx +44 -0
  253. package/.next/standalone/docs/ko/cli/version.mdx +12 -0
  254. package/.next/standalone/docs/ko/configuration.mdx +222 -0
  255. package/.next/standalone/docs/ko/custom-policies.mdx +357 -0
  256. package/.next/standalone/docs/ko/dashboard.mdx +142 -0
  257. package/.next/standalone/docs/ko/examples.mdx +253 -0
  258. package/.next/standalone/docs/ko/for-agents.mdx +38 -0
  259. package/.next/standalone/docs/ko/getting-started.mdx +134 -0
  260. package/.next/standalone/docs/ko/introduction.mdx +57 -0
  261. package/.next/standalone/docs/ko/package-aliases.mdx +82 -0
  262. package/.next/standalone/docs/ko/testing.mdx +260 -0
  263. package/.next/standalone/docs/pt-br/architecture.mdx +332 -0
  264. package/.next/standalone/docs/pt-br/built-in-policies.mdx +564 -0
  265. package/.next/standalone/docs/pt-br/cli/dashboard.mdx +28 -0
  266. package/.next/standalone/docs/pt-br/cli/environment-variables.mdx +34 -0
  267. package/.next/standalone/docs/pt-br/cli/hook.mdx +30 -0
  268. package/.next/standalone/docs/pt-br/cli/install-policies.mdx +48 -0
  269. package/.next/standalone/docs/pt-br/cli/list-policies.mdx +31 -0
  270. package/.next/standalone/docs/pt-br/cli/remove-policies.mdx +44 -0
  271. package/.next/standalone/docs/pt-br/cli/version.mdx +12 -0
  272. package/.next/standalone/docs/pt-br/configuration.mdx +222 -0
  273. package/.next/standalone/docs/pt-br/custom-policies.mdx +357 -0
  274. package/.next/standalone/docs/pt-br/dashboard.mdx +142 -0
  275. package/.next/standalone/docs/pt-br/examples.mdx +253 -0
  276. package/.next/standalone/docs/pt-br/for-agents.mdx +38 -0
  277. package/.next/standalone/docs/pt-br/getting-started.mdx +134 -0
  278. package/.next/standalone/docs/pt-br/introduction.mdx +57 -0
  279. package/.next/standalone/docs/pt-br/package-aliases.mdx +82 -0
  280. package/.next/standalone/docs/pt-br/testing.mdx +260 -0
  281. package/.next/standalone/docs/ru/architecture.mdx +334 -0
  282. package/.next/standalone/docs/ru/built-in-policies.mdx +562 -0
  283. package/.next/standalone/docs/ru/cli/dashboard.mdx +28 -0
  284. package/.next/standalone/docs/ru/cli/environment-variables.mdx +34 -0
  285. package/.next/standalone/docs/ru/cli/hook.mdx +30 -0
  286. package/.next/standalone/docs/ru/cli/install-policies.mdx +48 -0
  287. package/.next/standalone/docs/ru/cli/list-policies.mdx +32 -0
  288. package/.next/standalone/docs/ru/cli/remove-policies.mdx +44 -0
  289. package/.next/standalone/docs/ru/cli/version.mdx +12 -0
  290. package/.next/standalone/docs/ru/configuration.mdx +223 -0
  291. package/.next/standalone/docs/ru/custom-policies.mdx +357 -0
  292. package/.next/standalone/docs/ru/dashboard.mdx +142 -0
  293. package/.next/standalone/docs/ru/examples.mdx +254 -0
  294. package/.next/standalone/docs/ru/for-agents.mdx +38 -0
  295. package/.next/standalone/docs/ru/getting-started.mdx +134 -0
  296. package/.next/standalone/docs/ru/introduction.mdx +57 -0
  297. package/.next/standalone/docs/ru/package-aliases.mdx +82 -0
  298. package/.next/standalone/docs/ru/testing.mdx +260 -0
  299. package/.next/standalone/docs/tr/architecture.mdx +333 -0
  300. package/.next/standalone/docs/tr/built-in-policies.mdx +562 -0
  301. package/.next/standalone/docs/tr/cli/dashboard.mdx +28 -0
  302. package/.next/standalone/docs/tr/cli/environment-variables.mdx +34 -0
  303. package/.next/standalone/docs/tr/cli/hook.mdx +30 -0
  304. package/.next/standalone/docs/tr/cli/install-policies.mdx +48 -0
  305. package/.next/standalone/docs/tr/cli/list-policies.mdx +31 -0
  306. package/.next/standalone/docs/tr/cli/remove-policies.mdx +45 -0
  307. package/.next/standalone/docs/tr/cli/version.mdx +12 -0
  308. package/.next/standalone/docs/tr/configuration.mdx +223 -0
  309. package/.next/standalone/docs/tr/custom-policies.mdx +357 -0
  310. package/.next/standalone/docs/tr/dashboard.mdx +142 -0
  311. package/.next/standalone/docs/tr/examples.mdx +253 -0
  312. package/.next/standalone/docs/tr/for-agents.mdx +38 -0
  313. package/.next/standalone/docs/tr/getting-started.mdx +134 -0
  314. package/.next/standalone/docs/tr/introduction.mdx +57 -0
  315. package/.next/standalone/docs/tr/package-aliases.mdx +82 -0
  316. package/.next/standalone/docs/tr/testing.mdx +260 -0
  317. package/.next/standalone/docs/vi/architecture.mdx +333 -0
  318. package/.next/standalone/docs/vi/built-in-policies.mdx +564 -0
  319. package/.next/standalone/docs/vi/cli/dashboard.mdx +28 -0
  320. package/.next/standalone/docs/vi/cli/environment-variables.mdx +34 -0
  321. package/.next/standalone/docs/vi/cli/hook.mdx +30 -0
  322. package/.next/standalone/docs/vi/cli/install-policies.mdx +48 -0
  323. package/.next/standalone/docs/vi/cli/list-policies.mdx +31 -0
  324. package/.next/standalone/docs/vi/cli/remove-policies.mdx +44 -0
  325. package/.next/standalone/docs/vi/cli/version.mdx +13 -0
  326. package/.next/standalone/docs/vi/configuration.mdx +222 -0
  327. package/.next/standalone/docs/vi/custom-policies.mdx +357 -0
  328. package/.next/standalone/docs/vi/dashboard.mdx +142 -0
  329. package/.next/standalone/docs/vi/examples.mdx +253 -0
  330. package/.next/standalone/docs/vi/for-agents.mdx +38 -0
  331. package/.next/standalone/docs/vi/getting-started.mdx +134 -0
  332. package/.next/standalone/docs/vi/introduction.mdx +57 -0
  333. package/.next/standalone/docs/vi/package-aliases.mdx +82 -0
  334. package/.next/standalone/docs/vi/testing.mdx +260 -0
  335. package/.next/standalone/docs/zh/architecture.mdx +332 -0
  336. package/.next/standalone/docs/zh/built-in-policies.mdx +562 -0
  337. package/.next/standalone/docs/zh/cli/dashboard.mdx +28 -0
  338. package/.next/standalone/docs/zh/cli/environment-variables.mdx +34 -0
  339. package/.next/standalone/docs/zh/cli/hook.mdx +30 -0
  340. package/.next/standalone/docs/zh/cli/install-policies.mdx +48 -0
  341. package/.next/standalone/docs/zh/cli/list-policies.mdx +31 -0
  342. package/.next/standalone/docs/zh/cli/remove-policies.mdx +44 -0
  343. package/.next/standalone/docs/zh/cli/version.mdx +12 -0
  344. package/.next/standalone/docs/zh/configuration.mdx +222 -0
  345. package/.next/standalone/docs/zh/custom-policies.mdx +357 -0
  346. package/.next/standalone/docs/zh/dashboard.mdx +142 -0
  347. package/.next/standalone/docs/zh/examples.mdx +253 -0
  348. package/.next/standalone/docs/zh/for-agents.mdx +38 -0
  349. package/.next/standalone/docs/zh/getting-started.mdx +134 -0
  350. package/.next/standalone/docs/zh/introduction.mdx +57 -0
  351. package/.next/standalone/docs/zh/package-aliases.mdx +82 -0
  352. package/.next/standalone/docs/zh/testing.mdx +260 -0
  353. package/.next/standalone/package.json +8 -2
  354. package/.next/standalone/scripts/translate-docs/cache.ts +62 -0
  355. package/.next/standalone/scripts/translate-docs/cli.ts +357 -0
  356. package/.next/standalone/scripts/translate-docs/config.ts +248 -0
  357. package/.next/standalone/scripts/translate-docs/mdx-translator.ts +153 -0
  358. package/.next/standalone/scripts/translate-docs/mintlify-nav.ts +107 -0
  359. package/.next/standalone/scripts/translate-docs/readme-translator.ts +154 -0
  360. package/.next/standalone/scripts/translate-docs/translator.ts +68 -0
  361. package/.next/standalone/scripts/translate-docs/types.ts +43 -0
  362. package/.next/standalone/server.js +1 -1
  363. package/.next/standalone/src/hooks/manager.ts +10 -2
  364. package/README.md +16 -0
  365. package/dist/cli.mjs +12 -5
  366. package/package.json +8 -2
  367. package/scripts/translate-docs/cache.ts +62 -0
  368. package/scripts/translate-docs/cli.ts +357 -0
  369. package/scripts/translate-docs/config.ts +248 -0
  370. package/scripts/translate-docs/mdx-translator.ts +153 -0
  371. package/scripts/translate-docs/mintlify-nav.ts +107 -0
  372. package/scripts/translate-docs/readme-translator.ts +154 -0
  373. package/scripts/translate-docs/translator.ts +68 -0
  374. package/scripts/translate-docs/types.ts +43 -0
  375. package/src/hooks/manager.ts +10 -2
  376. package/.next/standalone/.next/server/chunks/[root-of-the-server]__02nt~6d._.js +0 -3
  377. /package/.next/standalone/.next/static/{itedhTSyIDln6TUf41j5X → XqGmAwGDuJ6fEQgD-8y60}/_buildManifest.js +0 -0
  378. /package/.next/standalone/.next/static/{itedhTSyIDln6TUf41j5X → XqGmAwGDuJ6fEQgD-8y60}/_clientMiddlewareManifest.js +0 -0
  379. /package/.next/standalone/.next/static/{itedhTSyIDln6TUf41j5X → XqGmAwGDuJ6fEQgD-8y60}/_ssgManifest.js +0 -0
@@ -0,0 +1,31 @@
1
+ ---
2
+ title: Politikaları listele
3
+ description: "Hangi politikaların etkin olduğunu, parametrelerini ve özel politikaları görün"
4
+ ---
5
+
6
+ ```bash
7
+ failproofai policies
8
+ ```
9
+
10
+ Tüm politikaları durumları, yapılandırılmış parametreleri ve özel politikaları ile birlikte gösterir.
11
+
12
+ ## Örnek çıktı
13
+
14
+ ```text
15
+ Failproof AI Hook Policies (user)
16
+
17
+ Status Name Description
18
+ ────── ──────────────────────────────────────────────────────────────
19
+ ✓ block-sudo Block sudo commands
20
+ allowPatterns: ["sudo systemctl status"]
21
+ ✓ block-rm-rf Block recursive deletions
22
+ ✗ block-curl-pipe-sh Block curl|bash patterns
23
+ ✓ sanitize-api-keys Redact API keys from output
24
+ additionalPatterns: [{ regex: "MY_TOKEN_...", label: "..." }]
25
+
26
+ ── Custom Policies (/home/alice/myproject/my-policies.js) ──────────────
27
+ ✓ require-jira-ticket Block commits without ticket
28
+ ✓ approval-gate Approval gate for destructive ops
29
+ ```
30
+
31
+ `policyParams` içindeki bilinmeyen anahtarlar burada işaretlenir, böylece yazım hatalarını erken yakalayabilirsiniz.
@@ -0,0 +1,45 @@
1
+ ---
2
+ ---
3
+ title: Politikaları Kaldır
4
+ description: "Claude Code'un ayarlarından hook girişlerini kaldırın"
5
+ ---
6
+
7
+ ```bash
8
+ failproofai policies --uninstall [policy-names...] [options]
9
+ ```
10
+
11
+ failproofai hook girişlerini Claude Code'un `settings.json` dosyasından kaldırır.
12
+
13
+ Diğer adlar: `failproofai p -u`
14
+
15
+ ## Seçenekler
16
+
17
+ | Bayrak | Açıklama |
18
+ |------|-------------|
19
+ | `--scope user` | Genel ayarlardan kaldırın (varsayılan) |
20
+ | `--scope project` | Proje ayarlarından kaldırın |
21
+ | `--scope local` | Yerel ayarlardan kaldırın |
22
+ | `--scope all` | Tüm kapsamlardan aynı anda kaldırın |
23
+ | `--custom` / `-c` | Yapılandırmadan `customPoliciesPath` değerini temizleyin |
24
+ | `--beta` | Yalnızca beta politikaları yapılandırmadan kaldırın |
25
+
26
+ ## Davranış
27
+
28
+ - **Politika adı yok** - ayar dosyasındaki tüm failproofai hook girişlerini kaldırır
29
+ - **Belirli adlar** - bu politikaları devre dışı bırakır ancak kurulu hook'ları korur
30
+
31
+ ## Örnekler
32
+
33
+ ```bash
34
+ # Tüm hook'ları genel kapsamdan kaldır
35
+ failproofai policies --uninstall
36
+
37
+ # Belirli bir politikayı devre dışı bırak (kurulu hook'ları korur)
38
+ failproofai policies --uninstall block-sudo
39
+
40
+ # Hook'ları tüm kapsamlardan kaldır
41
+ failproofai policies --uninstall --scope all
42
+
43
+ # Özel politikalar yolunu temizle
44
+ failproofai policies --uninstall --custom
45
+ ```
@@ -0,0 +1,12 @@
1
+ ---
2
+ title: Sürümü kontrol et
3
+ description: "Yüklü failproofai sürümünü yazdır"
4
+ ---
5
+
6
+ ```bash
7
+ failproofai --version
8
+ # or
9
+ failproofai -v
10
+ ```
11
+
12
+ Yüklü sürüm numarasını yazdırır.
@@ -0,0 +1,223 @@
1
+ ---
2
+ ---
3
+ title: Yapılandırma
4
+ description: "Yapılandırma dosyası biçimi, üç kapsamlı sistem ve birleştirme kuralları"
5
+ icon: gear
6
+ ---
7
+
8
+ failproofai, hangi politikaların aktif olduğunu, nasıl davrandıklarını ve özel politikaların nereden yüklendiğini kontrol etmek için JSON yapılandırma dosyalarını kullanır. Yapılandırma, takımınızla paylaşmak için kolay olacak şekilde tasarlanmıştır - bunu deponuza gönderin ve her geliştirici aynı agent güvenlik ağını alır.
9
+
10
+ ---
11
+
12
+ ## Yapılandırma kapsamları
13
+
14
+ Üç yapılandırma kapsamı vardır ve öncelik sırasına göre değerlendirilirler:
15
+
16
+ | Kapsam | Dosya yolu | Amaç |
17
+ |-------|-----------|---------|
18
+ | **project** | `.failproofai/policies-config.json` | Depo başına ayarlar, sürüm kontrolüne gönderilir |
19
+ | **local** | `.failproofai/policies-config.local.json` | Kişisel depo başına geçersiz kılmalar, gitignore'da |
20
+ | **global** | `~/.failproofai/policies-config.json` | Tüm projeler genelindeki kullanıcı düzeyindeki varsayılanlar |
21
+
22
+ failproofai bir hook olayı aldığında, geçerli çalışma dizini için var olan üç dosyanın tümünü yükler ve birleştirir.
23
+
24
+ ### Birleştirme kuralları
25
+
26
+ **`enabledPolicies`** - üç kapsamın tümünün birleşimi. Herhangi bir düzeyde etkinleştirilen bir politika etkindir.
27
+
28
+ ```text
29
+ project: ["block-sudo"]
30
+ local: ["block-rm-rf"]
31
+ global: ["block-sudo", "sanitize-api-keys"]
32
+
33
+ resolved: ["block-sudo", "block-rm-rf", "sanitize-api-keys"] ← tekilleştirilmiş birleşim
34
+ ```
35
+
36
+ **`policyParams`** - belirli bir politika için parametreleri tanımlayan ilk kapsam tamamen kazanır. Bir politikanın parametreleri içinde derin birleştirme yoktur.
37
+
38
+ ```text
39
+ project: block-sudo → { allowPatterns: ["sudo apt-get update"] }
40
+ global: block-sudo → { allowPatterns: ["sudo systemctl status"] }
41
+
42
+ resolved: { allowPatterns: ["sudo apt-get update"] } ← project kazanır, global yoksayılır
43
+ ```
44
+
45
+ ```text
46
+ project: (block-sudo girdisi yok)
47
+ local: (block-sudo girdisi yok)
48
+ global: block-sudo → { allowPatterns: ["sudo systemctl status"] }
49
+
50
+ resolved: { allowPatterns: ["sudo systemctl status"] } ← global'e düşer
51
+ ```
52
+
53
+ **`customPoliciesPath`** - onu tanımlayan ilk kapsam kazanır.
54
+
55
+ **`llm`** - onu tanımlayan ilk kapsam kazanır.
56
+
57
+ ---
58
+
59
+ ## Yapılandırma dosyası biçimi
60
+
61
+ ```json
62
+ {
63
+ "enabledPolicies": [
64
+ "block-sudo",
65
+ "block-rm-rf",
66
+ "block-push-master",
67
+ "sanitize-api-keys",
68
+ "sanitize-jwt",
69
+ "block-env-files",
70
+ "block-read-outside-cwd"
71
+ ],
72
+ "policyParams": {
73
+ "block-sudo": {
74
+ "allowPatterns": ["sudo systemctl status", "sudo journalctl"]
75
+ },
76
+ "block-push-master": {
77
+ "protectedBranches": ["main", "release", "prod"]
78
+ },
79
+ "block-rm-rf": {
80
+ "allowPaths": ["/tmp"]
81
+ },
82
+ "block-read-outside-cwd": {
83
+ "allowPaths": ["/shared/data", "/opt/company"]
84
+ },
85
+ "sanitize-api-keys": {
86
+ "additionalPatterns": [
87
+ { "regex": "myco_[A-Za-z0-9]{32}", "label": "MyCo API key" }
88
+ ]
89
+ },
90
+ "warn-large-file-write": {
91
+ "thresholdKb": 512
92
+ }
93
+ },
94
+ "customPoliciesPath": "/home/alice/myproject/my-policies.js"
95
+ }
96
+ ```
97
+
98
+ ---
99
+
100
+ ## Alan başvurusu
101
+
102
+ ### `enabledPolicies`
103
+
104
+ Tür: `string[]`
105
+
106
+ Etkinleştirilecek politika adlarının listesi. Adlar, `failproofai policies` tarafından gösterilen politika tanımlayıcılarıyla tam olarak eşleşmelidir. Tam liste için [Yerleşik Politikalar](/tr/built-in-policies) bölümüne bakın.
107
+
108
+ `enabledPolicies` içinde olmayan politikalar, `policyParams` içinde girdileri olsa bile etkin değildir.
109
+
110
+ ### `policyParams`
111
+
112
+ Tür: `Record<string, Record<string, unknown>>`
113
+
114
+ Politika başına parametre geçersiz kılmaları. Dış anahtar politika adıdır; iç anahtarlar politikaya özgüdür. Her politika, mevcut parametrelerini [Yerleşik Politikalar](/tr/built-in-policies) içinde belgelemir.
115
+
116
+ Bir politikanın parametreleri varsa ancak bunları belirtmezseniz, politikanın yerleşik varsayılanları kullanılır. `policyParams` yapılandırırmayan kullanıcılar önceki sürümlerle aynı davranışı alırlar.
117
+
118
+ Bir politikanın params bloğu içindeki bilinmeyen anahtarlar, hook tetiklendiğinde sessizce yoksayılır ancak `failproofai policies` çalıştırdığınızda uyarılar olarak işaretlenir.
119
+
120
+ #### `hint` (çapraz kesme)
121
+
122
+ Tür: `string` (isteğe bağlı)
123
+
124
+ Bir politika `deny` veya `instruct` döndürdüğünde nedene eklenen bir ileti. Bunu, politikanın kendisini değiştirmeden Claude'a işlem yapılabilir rehberlik sağlamak için kullanın.
125
+
126
+ Herhangi bir politika türüyle çalışır — yerleşik, özel (`custom/`), proje kuralı (`.failproofai-project/`) veya kullanıcı kuralı (`.failproofai-user/`).
127
+
128
+ ```json
129
+ {
130
+ "policyParams": {
131
+ "block-force-push": {
132
+ "hint": "Bunun yerine yeni bir dal oluşturmayı deneyin."
133
+ },
134
+ "block-sudo": {
135
+ "allowPatterns": ["sudo apt-get"],
136
+ "hint": "sudo olmadan apt-get'i doğrudan kullanın."
137
+ },
138
+ "custom/my-policy": {
139
+ "hint": "Önce kullanıcıdan onay alın."
140
+ }
141
+ }
142
+ }
143
+ ```
144
+
145
+ `block-force-push` reddettiğinde, Claude şunu görür: *"Zorla push yapmak engelleniyor. Bunun yerine yeni bir dal oluşturmayı deneyin."*
146
+
147
+ String olmayan değerler ve boş diziler sessizce yoksayılır. `hint` ayarlanmazsa, davranış değişmez (geriye dönük uyumlu).
148
+
149
+ ### `customPoliciesPath`
150
+
151
+ Tür: `string` (mutlak yol)
152
+
153
+ Özel hook politikalarını içeren JavaScript dosyasının yolu. Bu, `failproofai policies --install --custom <path>` tarafından otomatik olarak ayarlanır (yol depolanmadan önce mutlak olarak çözülür).
154
+
155
+ Dosya her hook olayında yeniden yüklenir - önbelleğe alma yoktur. Yazma ayrıntıları için [Özel Politikalar](/tr/custom-policies) bölümüne bakın.
156
+
157
+ ### Kural tabanlı politikalar (v0.0.2-beta.7+)
158
+
159
+ Açık `customPoliciesPath` öğesine ek olarak, failproofai `.failproofai/policies/` dizinlerinden policy dosyalarını otomatik olarak keşfeder ve yükler:
160
+
161
+ | Düzey | Dizin | Kapsam |
162
+ |-------|-----------|-------|
163
+ | Proje | `.failproofai/policies/` | Sürüm kontrolü aracılığıyla takımla paylaşılır |
164
+ | Kullanıcı | `~/.failproofai/policies/` | Kişisel, tüm projelere uygulanır |
165
+
166
+ **Dosya eşleştirmesi:** Yalnızca `*policies.{js,mjs,ts}` ile eşleşen dosyalar yüklenir (ör. `security-policies.mjs`, `workflow-policies.js`). Dizindeki diğer dosyalar yoksayılır.
167
+
168
+ **Yapılandırma gerekli değil:** Kural politikaları `policies-config.json` içinde girdiler gerektirmez. Dosyaları dizine bırakın ve sonraki hook olayında seçilecektir.
169
+
170
+ **Birleşim yükleme:** Hem proje hem de kullanıcı kural dizinleri taranır. Her iki düzeydeki tüm eşleşen dosyalar yüklenir (`customPoliciesPath` ilk kapsam kazanır'ı kullandığından farklı olarak).
171
+
172
+ Daha fazla ayrıntı ve örnek için [Özel Politikalar](/tr/custom-policies) bölümüne bakın.
173
+
174
+ ### `llm`
175
+
176
+ Tür: `object` (isteğe bağlı)
177
+
178
+ AI çağrıları yapan politikalar için LLM istemci yapılandırması. Çoğu kurulum için gerekli değil.
179
+
180
+ ```json
181
+ {
182
+ "llm": {
183
+ "model": "claude-sonnet-4-6",
184
+ "apiKey": "sk-ant-..."
185
+ }
186
+ }
187
+ ```
188
+
189
+ ---
190
+
191
+ ## CLI'dan yapılandırmayı yönetme
192
+
193
+ `policies --install` ve `policies --uninstall` komutları Claude Code'un `settings.json` dosyasına yazarken (hook giriş noktaları), `policies-config.json` doğrudan yönettiğiniz dosyadır. İkisi ayrıdır:
194
+
195
+ - **`settings.json`** - Claude Code'a her tool kullanımında `failproofai --hook <event>` çağırmasını söyler
196
+ - **`policies-config.json`** - failproofai'ye hangi politikaları değerlendireceğini ve hangi parametrelerle değerlendireceğini söyler
197
+
198
+ `policies-config.json` dosyasını herhangi bir zamanda doğrudan düzenleyebilirsiniz; değişiklikler yeniden başlatmaya gerek kalmadan sonraki hook olayında geçerli olur.
199
+
200
+ ---
201
+
202
+ ## Örnek: takım varsayılanları ile proje düzeyindeki yapılandırma
203
+
204
+ `.failproofai/policies-config.json` dosyasını deponuza gönderin:
205
+
206
+ ```json
207
+ {
208
+ "enabledPolicies": [
209
+ "block-sudo",
210
+ "block-rm-rf",
211
+ "block-push-master",
212
+ "sanitize-api-keys",
213
+ "block-env-files"
214
+ ],
215
+ "policyParams": {
216
+ "block-push-master": {
217
+ "protectedBranches": ["main", "release", "hotfix"]
218
+ }
219
+ }
220
+ }
221
+ ```
222
+
223
+ Ardından her geliştirici, takım arkadaşlarını etkilemeden kişisel geçersiz kılmalar için `.failproofai/policies-config.local.json` (gitignore'da) oluşturabilir.
@@ -0,0 +1,357 @@
1
+ ---
2
+ title: Özel Politikalar
3
+ description: "JavaScript'te kendi politikalarınızı yazın - kuralları uygulayın, sapmayı önleyin, hataları algılayın, harici sistemlerle entegre olun"
4
+ icon: code
5
+ ---
6
+
7
+ Özel politikalar, herhangi bir agent davranışı için kurallar yazmanıza izin verir: proje kurallarını uygulayın, sapmayı önleyin, yıkıcı işlemleri engelle, sıkışmış aracıları algılayın veya Slack, onay iş akışları ve daha fazlasıyla entegre olun. Yerleşik politikalarla aynı hook etkinliği sistemini ve `allow`, `deny`, `instruct` kararlarını kullanırlar.
8
+
9
+ ---
10
+
11
+ ## Hızlı örnek
12
+
13
+ ```js
14
+ // my-policies.js
15
+ import { customPolicies, allow, deny, instruct } from "failproofai";
16
+
17
+ customPolicies.add({
18
+ name: "no-production-writes",
19
+ description: "Block writes to paths containing 'production'",
20
+ match: { events: ["PreToolUse"] },
21
+ fn: async (ctx) => {
22
+ if (ctx.toolName !== "Write" && ctx.toolName !== "Edit") return allow();
23
+ const path = ctx.toolInput?.file_path ?? "";
24
+ if (path.includes("production")) {
25
+ return deny("Writes to production paths are blocked");
26
+ }
27
+ return allow();
28
+ },
29
+ });
30
+ ```
31
+
32
+ Yükleyin:
33
+
34
+ ```bash
35
+ failproofai policies --install --custom ./my-policies.js
36
+ ```
37
+
38
+ ---
39
+
40
+ ## Özel politikaları yüklemenin iki yolu
41
+
42
+ ### Seçenek 1: Kural tabanlı (önerilen, v0.0.2-beta.7+)
43
+
44
+ `.failproofai/policies/` dizinine `*policies.{js,mjs,ts}` dosyalarını bırakın ve otomatik olarak yüklenirler — hiçbir bayrak veya yapılandırma değişikliğine gerek yoktur. Bu git hook'ları gibi çalışır: bir dosya bırakın ve çalışır.
45
+
46
+ ```
47
+ # Proje düzeyi — git'e kaydedilir, ekiple paylaşılır
48
+ .failproofai/policies/security-policies.mjs
49
+ .failproofai/policies/workflow-policies.mjs
50
+
51
+ # Kullanıcı düzeyi — kişisel, tüm projelere uygulanır
52
+ ~/.failproofai/policies/my-policies.mjs
53
+ ```
54
+
55
+ **Nasıl çalışır:**
56
+ - Hem proje hem de kullanıcı dizinleri taranır (birleşim — ilk-kapsam-kazanır değil)
57
+ - Dosyalar her dizin içinde alfabetik olarak yüklenir. Sırayı kontrol etmek için `01-`, `02-` ile önekleyin
58
+ - Yalnızca `*policies.{js,mjs,ts}` ile eşleşen dosyalar yüklenir; diğer dosyalar yoksayılır
59
+ - Her dosya bağımsız olarak yüklenir (dosya başına açık-fail)
60
+ - Açık `--custom` ve yerleşik politikalarla birlikte çalışır
61
+
62
+ <Tip>
63
+ Kural politikaları, politikaları bir ekip genelinde paylaşmanın en kolay yoludur. `.failproofai/policies/` öğesini git'e işleyin ve her takım üyesi otomatik olarak bunları alır.
64
+ </Tip>
65
+
66
+ ### Seçenek 2: Açık dosya yolu
67
+
68
+ ```bash
69
+ # Özel politika dosyasıyla yükleyin
70
+ failproofai policies --install --custom ./my-policies.js
71
+
72
+ # Politika dosyasının yolunu değiştirin
73
+ failproofai policies --install --custom ./new-policies.js
74
+
75
+ # Yapılandırmadan özel politika yolunu kaldırın
76
+ failproofai policies --uninstall --custom
77
+ ```
78
+
79
+ Çözümlenen mutlak yol, `policies-config.json` içinde `customPoliciesPath` olarak depolanır. Dosya her hook etkinliğinde yeniden yüklenir - olaylar arasında önbellekleme yoktur.
80
+
81
+ ### Her ikisini birlikte kullanma
82
+
83
+ Kural politikaları ve açık `--custom` dosyası birlikte varolabilir. Yükleme sırası:
84
+
85
+ 1. Açık `customPoliciesPath` dosyası (yapılandırılmışsa)
86
+ 2. Proje kural dosyaları (`{cwd}/.failproofai/policies/`, alfabetik)
87
+ 3. Kullanıcı kural dosyaları (`~/.failproofai/policies/`, alfabetik)
88
+
89
+ ---
90
+
91
+ ## API
92
+
93
+ ### İçe aktarma
94
+
95
+ ```js
96
+ import { customPolicies, allow, deny, instruct } from "failproofai";
97
+ ```
98
+
99
+ ### `customPolicies.add(hook)`
100
+
101
+ Bir politikayı kaydeder. Aynı dosyada birden çok politika için gerektiği kadar çağırın.
102
+
103
+ ```ts
104
+ customPolicies.add({
105
+ name: string; // zorunlu - benzersiz tanımlayıcı
106
+ description?: string; // `failproofai policies` çıktısında gösterilir
107
+ match?: { events?: HookEventType[] }; // etkinlik türüne göre filtrele; tümünü eşleştirmek için atlayın
108
+ fn: (ctx: PolicyContext) => PolicyResult | Promise<PolicyResult>;
109
+ });
110
+ ```
111
+
112
+ ### Karar yardımcıları
113
+
114
+ | İşlev | Etki | Ne zaman kullanılır |
115
+ |----------|--------|----------|
116
+ | `allow()` | İşleme sessizce izin ver | İşlem güvenli, mesaj gerekmez |
117
+ | `deny(message)` | İşlemi engelle | Agent bu işlemi yapmamalı |
118
+ | `instruct(message)` | Bloklamadan bağlam ekle | Agent'a yolunda kalması için ekstra bağlam ver |
119
+
120
+ `deny(message)` - ileti Claude'a `"Blocked by failproofai:"` ön eki ile görünür. Tek bir `deny` tüm diğer değerlendirmeleri kısaltır.
121
+
122
+ `instruct(message)` - ileti, Claude'un geçerli araç çağrısı için bağlamına eklenir. Tüm `instruct` iletileri biriktirilir ve birlikte iletilir.
123
+
124
+ <Tip>
125
+ `policyParams` içinde `hint` alanı ekleyerek herhangi bir `deny` veya `instruct` iletisine ekstra rehberlik ekleyebilirsiniz — kod değişikliğine gerek yoktur. Bu özel (`custom/`), proje kural (`.failproofai-project/`) ve kullanıcı kural (`.failproofai-user/`) politikaları için de çalışır. Ayrıntılar için [Yapılandırma → hint](/tr/configuration#hint-cross-cutting) bölümüne bakın.
126
+ </Tip>
127
+
128
+ ### Bilgilendirici izin iletileri (beta)
129
+
130
+ <Note>
131
+ `allow(message)` v0.0.2-beta.3'ten beri mevcut olan bir beta özelliğidir. API gelecek sürümlerde değişebilir. Önceki sürümler yalnızca `allow()` öğesini argümanlar olmadan destekler.
132
+ </Note>
133
+
134
+ `allow(message)` işleme izin verir **ve** Claude'a bilgilendirici bir ileti gönderir. İleti, hook işleyicisinin stdout yanıtında `additionalContext` olarak iletilir — `instruct` tarafından kullanılan mekanizmayla aynı, ancak anlamsal olarak farklı: bir uyarı değil, bir durum güncellemesidir.
135
+
136
+ | İşlev | Etki | Ne zaman kullanılır |
137
+ |----------|--------|----------|
138
+ | `allow(message)` | İzin ver ve Claude'a bağlam gönder | Bir kontrol geçmesini onaylayın veya bir kontrol neden atlandığını açıklayın |
139
+
140
+ Kullanım örnekleri:
141
+ - **Durum onayları:** `allow("All CI checks passed.")` — Claude'a her şeyin yeşil olduğunu söyler
142
+ - **Fail-open açıklamaları:** `allow("GitHub CLI not installed, skipping CI check.")` — Claude'a bir kontrol neden atlandığını söyler, böylece tam bağlama sahiptir
143
+ - **Birden çok ileti birikir:** birden çok politika `allow(message)` döndürürse, tüm iletiler yeni satırlarla birleştirilir ve birlikte iletilir
144
+
145
+ ```js
146
+ customPolicies.add({
147
+ name: "confirm-branch-status",
148
+ match: { events: ["Stop"] },
149
+ fn: async (ctx) => {
150
+ const cwd = ctx.session?.cwd;
151
+ if (!cwd) return allow("No working directory, skipping branch check.");
152
+
153
+ // ... branch durumunu kontrol et ...
154
+ if (allPushed) {
155
+ return allow("Branch is up to date with remote.");
156
+ }
157
+ return deny("Unpushed changes detected.");
158
+ },
159
+ });
160
+ ```
161
+
162
+ ### `PolicyContext` alanları
163
+
164
+ | Alan | Tür | Açıklama |
165
+ |-------|------|-------------|
166
+ | `eventType` | `string` | `"PreToolUse"`, `"PostToolUse"`, `"Notification"`, `"Stop"` |
167
+ | `toolName` | `string \| undefined` | Çağrılan araç (örn. `"Bash"`, `"Write"`, `"Read"`) |
168
+ | `toolInput` | `Record<string, unknown> \| undefined` | Aracının giriş parametreleri |
169
+ | `payload` | `Record<string, unknown>` | Claude Code'dan tam ham olay yükü |
170
+ | `session` | `SessionMetadata \| undefined` | Oturum bağlamı (aşağıya bakın) |
171
+
172
+ ### `SessionMetadata` alanları
173
+
174
+ | Alan | Tür | Açıklama |
175
+ |-------|------|-------------|
176
+ | `sessionId` | `string` | Claude Code oturum tanımlayıcısı |
177
+ | `cwd` | `string` | Claude Code oturumunun çalışma dizini |
178
+ | `transcriptPath` | `string` | Oturumun JSONL transkript dosyasının yolu |
179
+
180
+ ### Etkinlik türleri
181
+
182
+ | Etkinlik | Ne zaman ateşlenir | `toolInput` içeriği |
183
+ |-------|--------------|----------------------|
184
+ | `PreToolUse` | Claude bir aracı çalıştırmadan önce | Aracının girdisi (örn. Bash için `{ command: "..." }`) |
185
+ | `PostToolUse` | Bir araç tamamlandıktan sonra | Aracının girdisi + `tool_result` (çıktı) |
186
+ | `Notification` | Claude bir bildirim gönderdiğinde | `{ message: "...", notification_type: "idle" \| "permission_prompt" \| ... }` - hook'lar her zaman `allow()` döndürmelidir, bildirimleri bloklamaz |
187
+ | `Stop` | Claude oturumu sona erdiğinde | Boş |
188
+
189
+ ---
190
+
191
+ ## Değerlendirme sırası
192
+
193
+ Politikalar şu sırayla değerlendirilir:
194
+
195
+ 1. Yerleşik politikalar (tanım sırasında)
196
+ 2. `customPoliciesPath` öğesinden açık özel politikalar (`.add()` sırasında)
197
+ 3. Proje `.failproofai/policies/` öğesinden kural politikaları (dosyalar alfabetik, içinde `.add()` sırası)
198
+ 4. Kullanıcı `~/.failproofai/policies/` öğesinden kural politikaları (dosyalar alfabetik, içinde `.add()` sırası)
199
+
200
+ <Note>
201
+ İlk `deny` tüm sonraki politikaları kısaltır. Tüm `instruct` iletileri biriktirilir ve birlikte iletilir.
202
+ </Note>
203
+
204
+ ---
205
+
206
+ ## Geçişli içe aktarmalar
207
+
208
+ Özel politika dosyaları göreli yolları kullanan yerel modülleri içe aktarabilir:
209
+
210
+ ```js
211
+ // my-policies.js
212
+ import { isBlockedPath } from "./utils.js";
213
+ import { checkApproval } from "./approval-client.js";
214
+
215
+ customPolicies.add({
216
+ name: "approval-gate",
217
+ fn: async (ctx) => {
218
+ if (ctx.toolName !== "Bash") return allow();
219
+ const approved = await checkApproval(ctx.toolInput?.command, ctx.session?.sessionId);
220
+ return approved ? allow() : deny("Approval required for this command");
221
+ },
222
+ });
223
+ ```
224
+
225
+ Giriş dosyasından erişilebilen tüm göreli içe aktarmalar çözülür. Bu, `from "failproofai"` içe aktarmalarını gerçek dist yoluna yeniden yazarak ve ESM uyumluluğunu sağlamak için geçici `.mjs` dosyaları oluşturarak uygulanır.
226
+
227
+ ---
228
+
229
+ ## Etkinlik türü filtrelemesi
230
+
231
+ Bir politikanın ne zaman ateşlendiğini sınırlamak için `match.events` öğesini kullanın:
232
+
233
+ ```js
234
+ customPolicies.add({
235
+ name: "require-summary-on-stop",
236
+ match: { events: ["Stop"] },
237
+ fn: async (ctx) => {
238
+ // Yalnızca oturum sona erdiğinde ateşlenir
239
+ // ctx.session.transcriptPath tam oturum günlüğünü içerir
240
+ return allow();
241
+ },
242
+ });
243
+ ```
244
+
245
+ Her etkinlik türünde ateşlemek için `match` öğesini tamamen atlayın.
246
+
247
+ ---
248
+
249
+ ## Hata işleme ve başarısızlık modları
250
+
251
+ Özel politikalar **açık başarısızlık**: hatalar hiçbir zaman yerleşik politikaları bloklamaz veya hook işleyicisini çökmez.
252
+
253
+ | Başarısızlık | Davranış |
254
+ |---------|----------|
255
+ | `customPoliciesPath` ayarlanmadı | Açık özel politika çalışmaz; kural politikaları ve yerleşikler normal şekilde devam eder |
256
+ | Dosya bulunamadı | Uyarı `~/.failproofai/hook.log` öğesine kaydedilir; yerleşikler devam eder |
257
+ | Sözdizimi/içe aktarma hatası (açık) | Hata `~/.failproofai/hook.log` öğesine kaydedilir; açık özel politikalar atlanır |
258
+ | Sözdizimi/içe aktarma hatası (kural) | Hata kaydedilir; bu dosya atlanır, diğer kural dosyaları yine de yüklenir |
259
+ | `fn` çalışma zamanında hatası | Hata kaydedilir; bu hook `allow` olarak kabul edilir; diğer hook'lar devam eder |
260
+ | `fn` 10 saniyeden uzun sürerse | Zaman aşımı kaydedilir; `allow` olarak kabul edilir |
261
+ | Kural dizini eksik | Kural politikası çalışmaz; hata yoktur |
262
+
263
+ <Tip>
264
+ Özel politika hatalarını ayıklamak için günlük dosyasını izleyin:
265
+
266
+ ```bash
267
+ tail -f ~/.failproofai/hook.log
268
+ ```
269
+ </Tip>
270
+
271
+ ---
272
+
273
+ ## Tam örnek: birden çok politika
274
+
275
+ ```js
276
+ // my-policies.js
277
+ import { customPolicies, allow, deny, instruct } from "failproofai";
278
+
279
+ // Agent'i secrets/ dizinine yazmaktan önle
280
+ customPolicies.add({
281
+ name: "block-secrets-dir",
282
+ description: "Prevent agent from writing to secrets/ directory",
283
+ match: { events: ["PreToolUse"] },
284
+ fn: async (ctx) => {
285
+ if (!["Write", "Edit"].includes(ctx.toolName ?? "")) return allow();
286
+ const path = ctx.toolInput?.file_path ?? "";
287
+ if (path.includes("secrets/")) return deny("Writing to secrets/ is not permitted");
288
+ return allow();
289
+ },
290
+ });
291
+
292
+ // Agent'i yolunda tut: işleme atmadan önce testleri doğrula
293
+ customPolicies.add({
294
+ name: "remind-test-before-commit",
295
+ description: "Keep the agent on track: verify tests pass before committing",
296
+ match: { events: ["PreToolUse"] },
297
+ fn: async (ctx) => {
298
+ if (ctx.toolName !== "Bash") return allow();
299
+ const cmd = ctx.toolInput?.command ?? "";
300
+ if (/git\s+commit/.test(cmd)) {
301
+ return instruct("Verify all tests pass before committing. Run `bun test` if you haven't already.");
302
+ }
303
+ return allow();
304
+ },
305
+ });
306
+
307
+ // Dondurma döneminde plansız bağımlılık değişikliklerini önle
308
+ customPolicies.add({
309
+ name: "dependency-freeze",
310
+ description: "Prevent unplanned dependency changes during freeze period",
311
+ match: { events: ["PreToolUse"] },
312
+ fn: async (ctx) => {
313
+ if (ctx.toolName !== "Bash") return allow();
314
+ const cmd = ctx.toolInput?.command ?? "";
315
+ const isInstall = /^(npm install|yarn add|bun add|pnpm add)\s+\S/.test(cmd);
316
+ if (isInstall && process.env.DEPENDENCY_FREEZE === "1") {
317
+ return deny("Package installs are frozen. Unset DEPENDENCY_FREEZE to allow.");
318
+ }
319
+ return allow();
320
+ },
321
+ });
322
+
323
+ export { customPolicies };
324
+ ```
325
+
326
+ ---
327
+
328
+ ## Örnekler
329
+
330
+ `examples/` dizini çalışmaya hazır politika dosyalarını içerir:
331
+
332
+ | Dosya | İçerik |
333
+ |------|----------|
334
+ | `examples/policies-basic.js` | Ortak agent başarısızlık modlarını kapsayan beş başlatıcı politika |
335
+ | `examples/policies-advanced/index.js` | Gelişmiş desenleri: geçişli içe aktarmalar, eşzamansız çağrılar, çıktı temizleme ve oturum sonu hook'ları |
336
+ | `examples/convention-policies/security-policies.mjs` | Kural tabanlı güvenlik politikaları (.env yazılarını blokla, git geçmişini yeniden yazmayı önle) |
337
+ | `examples/convention-policies/workflow-policies.mjs` | Kural tabanlı iş akışı politikaları (test hatırlatmaları, dosya yazma denetimi) |
338
+
339
+ ### Açık dosya örneklerini kullanma
340
+
341
+ ```bash
342
+ failproofai policies --install --custom ./examples/policies-basic.js
343
+ ```
344
+
345
+ ### Kural tabanlı örnekleri kullanma
346
+
347
+ ```bash
348
+ # Proje düzeyine kopyala
349
+ mkdir -p .failproofai/policies
350
+ cp examples/convention-policies/*.mjs .failproofai/policies/
351
+
352
+ # Veya kullanıcı düzeyine kopyala
353
+ mkdir -p ~/.failproofai/policies
354
+ cp examples/convention-policies/*.mjs ~/.failproofai/policies/
355
+ ```
356
+
357
+ Yükleme komutu gerekli değildir — dosyalar sonraki hook etkinliğinde otomatik olarak seçilir.