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,82 +0,0 @@
1
- ---
2
- title: पैकेज एलियास
3
- description: "पंजीकृत typosquat-prevention एलियास और वे कैसे काम करते हैं"
4
- icon: copy
5
- ---
6
-
7
- ## आधिकारिक पैकेज
8
-
9
- canonical npm पैकेज **`failproofai`** है:
10
-
11
- ```bash
12
- npm install -g failproofai
13
- # या
14
- bun add -g failproofai
15
- ```
16
-
17
- ---
18
-
19
- ## हम एलियास नामों को क्यों मालिकाना करते हैं
20
-
21
- Typosquatting एक सामान्य supply-chain हमला है जहां एक दुर्भावनापूर्ण अभिनेता एक पैकेज नाम पंजीकृत करता है जो एक लोकप्रिय पैकेज से केवल एक कीस्ट्रोक दूर है। जो उपयोगकर्ता install कमांड को गलत तरीके से टाइप करते हैं, वे आक्रमणकारी-नियंत्रित कोड चलाते हुए समाप्त होते हैं जिसमें पूर्ण सिस्टम एक्सेस होता है - यह बिल्कुल वही खतरा है जिसके खिलाफ Failproof AI की रक्षा करने के लिए डिज़ाइन किया गया है।
22
-
23
- इस सतह को समाप्त करने के लिए, **हम `failproofai` के सभी सामान्य गलतियों और फॉर्मेटिंग वेरिएंट को npm पर proactively मालिकाना करते हैं**। इनमें से कोई भी नाम एक तीसरे पक्ष द्वारा पंजीकृत नहीं किया जा सकता। प्रत्येक एक पतला proxy है जो real `failproofai` पैकेज को install करता है और delegate करता है।
24
-
25
- ---
26
-
27
- ## पंजीकृत एलियास
28
-
29
- **फॉर्मेटिंग वेरिएंट** - "failproof ai" लिखने के विभिन्न तरीके:
30
-
31
- | पैकेज | स्थिति |
32
- |---------|--------|
33
- | `failproof` | ✅ Published |
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*` typos** - "proof" से एक `o` छूट गया:
41
-
42
- | पैकेज | स्थिति |
43
- |---------|--------|
44
- | `failprof` | ✅ Published |
45
- | `failprof-ai` | ✅ Published |
46
- | `failprofai` | ⏳ npm समर्थन की प्रतीक्षा |
47
- | `fail-prof-ai` | ⏳ npm समर्थन की प्रतीक्षा |
48
- | `failprof_ai` | ⏳ npm समर्थन की प्रतीक्षा |
49
-
50
- **`faliproof*` typos** - `a` और `i` को स्थानांतरित किया गया:
51
-
52
- | पैकेज | स्थिति |
53
- |---------|--------|
54
- | `faliproof` | ✅ Published |
55
- | `faliproof-ai` | ✅ Published |
56
- | `faliproofai` | ⏳ npm समर्थन की प्रतीक्षा |
57
-
58
- > **क्यों pending है?** npm की spam-prevention नीति उन नामों को ब्लॉक करती है जो punctuation को हटाने और similarity checks चलाने के बाद किसी existing पैकेज के समान normalize होते हैं। हमने इन नामों को anti-squatting उद्देश्यों के लिए आरक्षित करने के लिए npm समर्थन से संपर्क किया है। वे approval के बाद सक्रिय किए जाएंगे।
59
-
60
- आप किसी भी प्रकाशित alias को सत्यापित कर सकते हैं कि यह हमारे द्वारा मालिकाना है:
61
-
62
- ```bash
63
- npm info failproof
64
- # देखें: maintainers फील्ड में "ExosphereHost Inc."
65
- ```
66
-
67
- ---
68
-
69
- ## एलियास कैसे काम करते हैं
70
-
71
- प्रत्येक alias पैकेज:
72
-
73
- 1. `failproofai` को एक dependency के रूप में सूचीबद्ध करता है - इसलिए real पैकेज (इसके `postinstall` hook setup सहित) install पर चलता है
74
- 2. अपने स्वयं के नाम से मेल खाने वाला एक binary expose करता है (उदाहरण के लिए `failprof-ai`) जो सभी arguments को `failproofai` binary में proxy करता है
75
-
76
- proxy एक दो-पंक्ति Node स्क्रिप्ट है; कोई logic नहीं है, कोई network calls नहीं है, और `failproofai` स्वयं जो करता है उससे परे कोई data collection नहीं है।
77
-
78
- ---
79
-
80
- ## यदि आपको कोई नाम मिल जाता है जिसे हमने मिस किया है
81
-
82
- [exospherehost/failproofai](https://github.com/exospherehost/failproofai/issues) पर एक issue खोलें और हम इसे पंजीकृत करेंगे।
@@ -1,260 +0,0 @@
1
- ---
2
- title: परीक्षण
3
- description: "यूनिट टेस्ट, E2E टेस्ट, और टेस्ट हेल्पर्स"
4
- icon: flask-vial
5
- ---
6
-
7
- failproofai के दो टेस्ट सूट हैं: **यूनिट टेस्ट** (तेज़, मॉक किए गए) और **एंड-टू-एंड टेस्ट** (वास्तविक सबप्रोसेस आमंत्रण)।
8
-
9
- ---
10
-
11
- ## टेस्ट चलाना
12
-
13
- ```bash
14
- # सभी यूनिट टेस्ट एक बार चलाएं
15
- bun run test:run
16
-
17
- # यूनिट टेस्ट को वॉच मोड में चलाएं
18
- bun run test
19
-
20
- # E2E टेस्ट चलाएं (सेटअप की आवश्यकता है - नीचे देखें)
21
- bun run test:e2e
22
-
23
- # बिल्ड किए बिना टाइप-चेक करें
24
- bunx tsc --noEmit
25
-
26
- # लिंट करें
27
- bun run lint
28
- ```
29
-
30
- ---
31
-
32
- ## यूनिट टेस्ट
33
-
34
- यूनिट टेस्ट `__tests__/` में रहते हैं और [Vitest](https://vitest.dev) के साथ `happy-dom` का उपयोग करते हैं।
35
-
36
- ```text
37
- __tests__/
38
- hooks/
39
- builtin-policies.test.ts # प्रत्येक बिल्टइन के लिए पॉलिसी लॉजिक
40
- hooks-config.test.ts # कॉन्फ़िग लोडिंग और स्कोप मर्जिंग
41
- policy-evaluator.test.ts # पैरम इंजेक्शन और मूल्यांकन क्रम
42
- custom-hooks-registry.test.ts # globalThis रजिस्ट्री add/get/clear
43
- custom-hooks-loader.test.ts # ESM लोडर, ट्रांजिटिव इम्पोर्ट, त्रुटि प्रबंधन
44
- manager.test.ts # install/remove/list ऑपरेशन
45
- components/
46
- sessions-list.test.tsx # सेशन लिस्ट कंपोनेंट
47
- project-list.test.tsx # प्रोजेक्ट लिस्ट कंपोनेंट
48
- ...
49
- lib/
50
- logger.test.ts
51
- paths.test.ts
52
- date-filters.test.ts
53
- telemetry.test.ts
54
- ...
55
- actions/
56
- get-hooks-config.test.ts
57
- get-hook-activity.test.ts
58
- ...
59
- contexts/
60
- ThemeContext.test.tsx
61
- AutoRefreshContext.test.tsx
62
- ```
63
-
64
- ### पॉलिसी यूनिट टेस्ट लिखना
65
-
66
- ```typescript
67
- import { describe, it, expect, beforeEach } from "vitest";
68
- import { getBuiltinPolicies } from "../../src/hooks/builtin-policies";
69
- import { allow, deny } from "../../src/hooks/policy-types";
70
-
71
- describe("block-sudo", () => {
72
- const policy = getBuiltinPolicies().find((p) => p.name === "block-sudo")!;
73
-
74
- it("denies sudo commands", () => {
75
- const ctx = {
76
- eventType: "PreToolUse" as const,
77
- payload: {},
78
- toolName: "Bash",
79
- toolInput: { command: "sudo apt install nodejs" },
80
- params: { allowPatterns: [] },
81
- };
82
- expect(policy.fn(ctx)).toEqual(deny("sudo command blocked by failproofai"));
83
- });
84
-
85
- it("allows non-sudo commands", () => {
86
- const ctx = {
87
- eventType: "PreToolUse" as const,
88
- payload: {},
89
- toolName: "Bash",
90
- toolInput: { command: "ls -la" },
91
- params: { allowPatterns: [] },
92
- };
93
- expect(policy.fn(ctx)).toEqual(allow());
94
- });
95
-
96
- it("allows patterns in allowPatterns", () => {
97
- const ctx = {
98
- eventType: "PreToolUse" as const,
99
- payload: {},
100
- toolName: "Bash",
101
- toolInput: { command: "sudo systemctl status nginx" },
102
- params: { allowPatterns: ["sudo systemctl status"] },
103
- };
104
- expect(policy.fn(ctx)).toEqual(allow());
105
- });
106
- });
107
- ```
108
-
109
- ---
110
-
111
- ## एंड-टू-एंड टेस्ट
112
-
113
- E2E टेस्ट वास्तविक `failproofai` बाइनरी को सबप्रोसेस के रूप में आमंत्रित करते हैं, stdin को JSON पेलोड पाइप करते हैं, और stdout आउटपुट और एक्जिट कोड पर दावे लगाते हैं। यह पूर्ण इंटीग्रेशन पथ का परीक्षण करता है जो Claude Code उपयोग करता है।
114
-
115
- ### सेटअप
116
-
117
- E2E टेस्ट बाइनरी को रेपो सोर्स से सीधे चलाते हैं। पहली बार चलाने से पहले, CJS बंडल बनाएं जो कस्टम हुक फाइलें `'failproofai'` से इम्पोर्ट करते समय उपयोग करती हैं:
118
-
119
- ```bash
120
- bun build src/index.ts --outdir dist --target node --format cjs
121
- ```
122
-
123
- फिर टेस्ट चलाएं:
124
-
125
- ```bash
126
- bun run test:e2e
127
- ```
128
-
129
- जब भी आप सार्वजनिक हुक API (`src/hooks/custom-hooks-registry.ts`, `src/hooks/policy-helpers.ts`, या `src/hooks/policy-types.ts`) में बदलाव करें तो `dist/` को फिर से बनाएं।
130
-
131
- ### E2E टेस्ट संरचना
132
-
133
- ```text
134
- __tests__/e2e/
135
- helpers/
136
- hook-runner.ts # बाइनरी स्पॉन करें, पेलोड JSON पाइप करें, एक्जिट कोड + stdout + stderr कैप्चर करें
137
- fixture-env.ts # कॉन्फ़िग फाइलों के साथ प्रति-टेस्ट अलग-थलग अस्थायी निर्देशिकाएं
138
- payloads.ts # प्रत्येक इवेंट टाइप के लिए Claude-सटीक पेलोड फैक्ट्रीज़
139
- hooks/
140
- builtin-policies.e2e.test.ts # वास्तविक सबप्रोसेस के साथ प्रत्येक बिल्टइन पॉलिसी
141
- custom-hooks.e2e.test.ts # कस्टम हुक लोडिंग और मूल्यांकन
142
- config-scopes.e2e.test.ts # प्रोजेक्ट/स्थानीय/वैश्विक में कॉन्फ़िग मर्जिंग
143
- policy-params.e2e.test.ts # प्रत्येक पैरामीटराइज्ड पॉलिसी के लिए पैरामीटर इंजेक्शन
144
- ```
145
-
146
- ### E2E हेल्पर्स का उपयोग करना
147
-
148
- **`FixtureEnv`** - प्रति-टेस्ट अलग-थलग वातावरण:
149
-
150
- ```typescript
151
- import { createFixtureEnv } from "../helpers/fixture-env";
152
-
153
- const env = createFixtureEnv();
154
- // env.cwd - अस्थायी निर्देशिका; .failproofai/policies-config.json पिक अप करने के लिए payload.cwd के रूप में पास करें
155
- // env.home - अलग-थलग होम निर्देशिका; कोई वास्तविक ~/.failproofai लीक नहीं
156
-
157
- env.writeConfig({
158
- enabledPolicies: ["block-sudo"],
159
- policyParams: {
160
- "block-sudo": { allowPatterns: ["sudo systemctl status"] },
161
- },
162
- });
163
- ```
164
-
165
- `createFixtureEnv()` स्वचालित रूप से `afterEach` क्लीनअप पंजीकृत करता है।
166
-
167
- **`runHook`** - बाइनरी को आमंत्रित करें:
168
-
169
- ```typescript
170
- import { runHook } from "../helpers/hook-runner";
171
- import { Payloads } from "../helpers/payloads";
172
-
173
- const result = await runHook(
174
- "PreToolUse",
175
- Payloads.preToolUse.bash("sudo apt install nodejs", env.cwd),
176
- { homeDir: env.home }
177
- );
178
-
179
- expect(result.exitCode).toBe(0);
180
- expect(result.parsed?.hookSpecificOutput?.permissionDecision).toBe("deny");
181
- ```
182
-
183
- **`Payloads`** - तैयार पेलोड फैक्ट्रीज़:
184
-
185
- ```typescript
186
- Payloads.preToolUse.bash(command, cwd)
187
- Payloads.preToolUse.write(filePath, content, cwd)
188
- Payloads.preToolUse.read(filePath, cwd)
189
- Payloads.postToolUse.bash(command, output, cwd)
190
- Payloads.postToolUse.read(filePath, content, cwd)
191
- Payloads.notification(message, cwd)
192
- Payloads.stop(cwd)
193
- ```
194
-
195
- ### E2E टेस्ट लिखना
196
-
197
- ```typescript
198
- import { describe, it, expect } from "vitest";
199
- import { createFixtureEnv } from "../helpers/fixture-env";
200
- import { runHook } from "../helpers/hook-runner";
201
- import { Payloads } from "../helpers/payloads";
202
-
203
- describe("block-rm-rf (E2E)", () => {
204
- it("denies rm -rf", async () => {
205
- const env = createFixtureEnv();
206
- env.writeConfig({ enabledPolicies: ["block-rm-rf"] });
207
-
208
- const result = await runHook(
209
- "PreToolUse",
210
- Payloads.preToolUse.bash("rm -rf /", env.cwd),
211
- { homeDir: env.home }
212
- );
213
-
214
- expect(result.exitCode).toBe(0);
215
- expect(result.parsed?.hookSpecificOutput?.permissionDecision).toBe("deny");
216
- });
217
-
218
- it("allows non-recursive rm", async () => {
219
- const env = createFixtureEnv();
220
- env.writeConfig({ enabledPolicies: ["block-rm-rf"] });
221
-
222
- const result = await runHook(
223
- "PreToolUse",
224
- Payloads.preToolUse.bash("rm /tmp/file.txt", env.cwd),
225
- { homeDir: env.home }
226
- );
227
-
228
- expect(result.exitCode).toBe(0);
229
- expect(result.stdout).toBe(""); // allow → empty stdout
230
- });
231
- });
232
- ```
233
-
234
- ### E2E प्रतिक्रिया आकार
235
-
236
- | निर्णय | एक्जिट कोड | stdout |
237
- |----------|-----------|--------|
238
- | `PreToolUse` deny | `0` | `{"hookSpecificOutput":{"permissionDecision":"deny","permissionDecisionReason":"..."}}` |
239
- | `PostToolUse` deny | `0` | `{"hookSpecificOutput":{"additionalContext":"Blocked ... because: ..."}}` |
240
- | Instruct (गैर-Stop) | `0` | `{"hookSpecificOutput":{"additionalContext":"Instruction from failproofai: ..."}}` |
241
- | Stop instruct | `2` | खाली stdout; stderr में कारण |
242
- | Allow | `0` | खाली स्ट्रिंग |
243
-
244
- ### Vitest कॉन्फ़िग
245
-
246
- E2E टेस्ट `vitest.config.e2e.mts` का उपयोग करते हैं:
247
-
248
- - `environment: "node"` - कोई ब्राउजर ग्लोबल्स की आवश्यकता नहीं
249
- - `pool: "forks"` - सच्चा प्रोसेस इसोलेशन (टेस्ट सबप्रोसेस स्पॉन करते हैं)
250
- - `testTimeout: 20_000` - प्रति टेस्ट 20 सेकंड (बाइनरी स्टार्टअप + हुक eval)
251
-
252
- `forks` पूल महत्वपूर्ण है: थ्रेड-आधारित वर्कर्स `globalThis` साझा करते हैं, जो सबप्रोसेस-स्पॉनिंग टेस्ट में हस्तक्षेप कर सकता है। प्रोसेस-आधारित फोर्क इससे बचते हैं।
253
-
254
- ---
255
-
256
- ## CI
257
-
258
- पूर्ण CI रन (`bun run lint && bunx tsc --noEmit && bun run test:run && bun run build`) मर्ज करने से पहले पास होना आवश्यक है। E2E सूट समानांतर में एक अलग CI जॉब के रूप में चलता है।
259
-
260
- पूर्ण प्री-मर्ज चेकलिस्ट के लिए [Contributing](../CONTRIBUTING.md) देखें।
@@ -1,312 +0,0 @@
1
- > **⚠️** هذه ترجمة آلية. للاطلاع على أحدث إصدار، راجع [English README](../../README.md).
2
-
3
- [🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇪🇸 Español](README.es.md) | [🇧🇷 Português](README.pt-br.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | [🇷🇺 Русский](README.ru.md) | [🇮🇳 हिन्दी](README.hi.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇹 Italiano](README.it.md) | **🇸🇦 العربية** | [🇮🇱 עברית](README.he.md)
4
-
5
- ---
6
- <div dir="rtl">
7
-
8
-
9
- ```
10
- ______ _ __ ____ ___ ____
11
- / ____/___ _(_) /___ _________ ____ / __/ / | / _/
12
- / /_ / __ `/ / / __ \/ ___/ __ \/ __ \/ /_ / /| | / /
13
- / __/ / /_/ / / / /_/ / / / /_/ / /_/ / __/ / ___ |_/ /
14
- /_/ \__,_/_/_/ .___/_/ \____/\____/_/ /_/ |_/___/
15
- /_/
16
- ```
17
-
18
- # Failproof AI
19
-
20
- [![Docs](https://img.shields.io/badge/docs-befailproof.ai-002CA7?style=flat-square)](https://befailproof.ai)
21
- [![npm](https://img.shields.io/npm/v/failproofai?style=flat-square&color=CB3837)](https://www.npmjs.com/package/failproofai)
22
- [![License](https://img.shields.io/badge/license-MIT%20%2B%20Commons%20Clause-blue?style=flat-square)](LICENSE)
23
- [![CI](https://img.shields.io/github/actions/workflow/status/exospherehost/failproofai/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/exospherehost/failproofai/actions)
24
- [![Slack](https://img.shields.io/badge/Slack-join%20us-4A154B?style=flat-square&logo=slack)](https://join.slack.com/t/failproofai/shared_invite/zt-3v63b7k5e-O3NBHmj8X6n9gZSGDx6ggQ)
25
-
26
- **الترجمات**: [简体中文](docs/i18n/README.zh.md) | [日本語](docs/i18n/README.ja.md) | [한국어](docs/i18n/README.ko.md) | [Español](docs/i18n/README.es.md) | [Português](docs/i18n/README.pt-br.md) | [Deutsch](docs/i18n/README.de.md) | [Français](docs/i18n/README.fr.md) | [Русский](docs/i18n/README.ru.md) | [हिन्दी](docs/i18n/README.hi.md) | [Türkçe](docs/i18n/README.tr.md) | [Tiếng Việt](docs/i18n/README.vi.md) | [Italiano](docs/i18n/README.it.md) | [العربية](docs/i18n/README.ar.md) | [עברית](docs/i18n/README.he.md)
27
-
28
- الطريقة الأسهل لإدارة السياسات التي تحافظ على موثوقية عملاء الذكاء الاصطناعي الخاصة بك وتركيز مهامهم وتشغيلهم بشكل مستقل - لـ **Claude Code** و **Agents SDK**.
29
-
30
- - **30 سياسة مدمجة** - التقط أنماط فشل الوكيل الشائعة فوراً. حجب الأوامر المدمرة، ومنع تسرب الأسرار، والحفاظ على الوكلاء داخل حدود المشروع، والكشف عن الحلقات، والمزيد.
31
- - **السياسات المخصصة** - اكتب قواعد موثوقية خاصة بك في JavaScript. استخدم واجهة برمجية التطبيقات `allow`/`deny`/`instruct` لفرض الاتفاقيات ومنع الانجراف وقفل العمليات أو التكامل مع الأنظمة الخارجية.
32
- - **إعدادات سهلة** - اضبط أي سياسة بدون كتابة أكواد. قم بتعيين قوائم السماح والفروع المحمية والحدود لكل مشروع أو عمومياً. يتم دمج تكوين ثلاثة نطاقات تلقائياً.
33
- - **مراقب الوكيل** - شاهد ما فعله وكلاؤك أثناء غيابك. تصفح الجلسات وافحص كل استدعاء أداة وراجع بالضبط مكان تفعيل السياسات.
34
-
35
- كل شيء يعمل محلياً - لا تترك أي بيانات جهازك.
36
-
37
- ---
38
-
39
- ## المتطلبات
40
-
41
- - Node.js >= 20.9.0
42
- - Bun >= 1.3.0 (اختياري - مطلوب فقط للتطوير / البناء من المصدر)
43
-
44
- ---
45
-
46
- ## التثبيت
47
-
48
- ```bash
49
- npm install -g failproofai
50
- # أو
51
- bun add -g failproofai
52
- ```
53
-
54
- ---
55
-
56
- ## البدء السريع
57
-
58
- ### 1. تفعيل السياسات عمومياً
59
-
60
- ```bash
61
- failproofai policies --install
62
- ```
63
-
64
- يكتب إدخالات hook في `~/.claude/settings.json`. الآن سيستدعي Claude Code failproofai قبل وبعد كل استدعاء أداة.
65
-
66
- ### 2. تشغيل لوحة المعلومات
67
-
68
- ```bash
69
- failproofai
70
- ```
71
-
72
- يفتح `http://localhost:8020` - تصفح الجلسات وافحص السجلات وأدر السياسات.
73
-
74
- ### 3. تحقق مما هو نشط
75
-
76
- ```bash
77
- failproofai policies
78
- ```
79
-
80
- ---
81
-
82
- ## تثبيت السياسة
83
-
84
- ### النطاقات
85
-
86
- | النطاق | الأمر | حيث يكتب |
87
- |-------|---------|-----------------|
88
- | عمومي (الافتراضي) | `failproofai policies --install` | `~/.claude/settings.json` |
89
- | المشروع | `failproofai policies --install --scope project` | `.claude/settings.json` |
90
- | محلي | `failproofai policies --install --scope local` | `.claude/settings.local.json` |
91
-
92
- ### تثبيت سياسات محددة
93
-
94
- ```bash
95
- failproofai policies --install block-sudo block-rm-rf sanitize-api-keys
96
- ```
97
-
98
- ### إزالة السياسات
99
-
100
- ```bash
101
- failproofai policies --uninstall
102
- # أو لنطاق محدد:
103
- failproofai policies --uninstall --scope project
104
- ```
105
-
106
- ---
107
-
108
- ## التكوين
109
-
110
- يوجد تكوين السياسة في `~/.failproofai/policies-config.json` (عمومي) أو `.failproofai/policies-config.json` في مشروعك (حسب المشروع).
111
-
112
- ```json
113
- {
114
- "enabledPolicies": [
115
- "block-sudo",
116
- "block-rm-rf",
117
- "sanitize-api-keys",
118
- "block-push-master",
119
- "block-env-files",
120
- "block-read-outside-cwd"
121
- ],
122
- "policyParams": {
123
- "block-sudo": {
124
- "allowPatterns": ["sudo systemctl status", "sudo journalctl"],
125
- "hint": "Use apt-get directly without sudo."
126
- },
127
- "block-push-master": {
128
- "protectedBranches": ["main", "release", "prod"],
129
- "hint": "Try creating a fresh branch instead."
130
- },
131
- "sanitize-api-keys": {
132
- "additionalPatterns": [
133
- { "regex": "myco_[A-Za-z0-9]{32}", "label": "MyCo API key" }
134
- ]
135
- },
136
- "warn-large-file-write": {
137
- "thresholdKb": 512
138
- }
139
- }
140
- }
141
- ```
142
-
143
- **يتم دمج ثلاثة نطاقات تكوين** تلقائياً (المشروع → المحلي → العمومي). راجع [docs/configuration.mdx](docs/configuration.mdx) للحصول على قواعد الدمج الكاملة.
144
-
145
- ---
146
-
147
- ## السياسات المدمجة
148
-
149
- | السياسة | الوصف | قابلة للتكوين |
150
- |--------|-------------|:---:|
151
- | `block-sudo` | منع الوكلاء من تشغيل أوامر النظام الممتازة | `allowPatterns` |
152
- | `block-rm-rf` | منع حذف الملفات العودية العرضية | `allowPaths` |
153
- | `block-curl-pipe-sh` | منع الوكلاء من إرسال البرامج غير الموثوقة إلى shell | |
154
- | `block-failproofai-commands` | منع إلغاء التثبيت الذاتي | |
155
- | `sanitize-jwt` | منع رموز JWT من التسرب إلى سياق الوكيل | |
156
- | `sanitize-api-keys` | منع مفاتيح API من التسرب إلى سياق الوكيل | `additionalPatterns` |
157
- | `sanitize-connection-strings` | منع بيانات اعتماد قاعدة البيانات من التسرب إلى سياق الوكيل | |
158
- | `sanitize-private-key-content` | تحرير كتل مفاتيح PEM الخاصة من الإخراج | |
159
- | `sanitize-bearer-tokens` | تحرير رموز Authorization Bearer من الإخراج | |
160
- | `block-env-files` | منع الوكلاء من قراءة ملفات .env | |
161
- | `protect-env-vars` | منع الوكلاء من طباعة متغيرات البيئة | |
162
- | `block-read-outside-cwd` | الحفاظ على الوكلاء داخل حدود المشروع | `allowPaths` |
163
- | `block-secrets-write` | منع الكتابة إلى ملفات المفاتيح والشهادات الخاصة | `additionalPatterns` |
164
- | `block-push-master` | منع الدفع العرضي إلى main/master | `protectedBranches` |
165
- | `block-work-on-main` | إبقاء الوكلاء بعيداً عن الفروع المحمية | `protectedBranches` |
166
- | `block-force-push` | منع `git push --force` | |
167
- | `warn-git-amend` | تذكير الوكلاء قبل تعديل الالتزامات | |
168
- | `warn-git-stash-drop` | تذكير الوكلاء قبل حذف النسخ الاحتياطية | |
169
- | `warn-all-files-staged` | التقط `git add -A` العرضية | |
170
- | `warn-destructive-sql` | التقط DROP/DELETE SQL قبل التنفيذ | |
171
- | `warn-schema-alteration` | التقط ALTER TABLE قبل التنفيذ | |
172
- | `warn-large-file-write` | التقط عمليات الكتابة إلى ملفات كبيرة بشكل غير متوقع | `thresholdKb` |
173
- | `warn-package-publish` | التقط `npm publish` العرضية | |
174
- | `warn-background-process` | التقط إطلاقات العمليات الخلفية غير المقصودة | |
175
- | `warn-global-package-install` | التقط التثبيتات العامة للحزم غير المقصودة | |
176
- | …والمزيد | | |
177
-
178
- تفاصيل السياسة الكاملة ومرجع المعاملات: [docs/built-in-policies.mdx](docs/built-in-policies.mdx)
179
-
180
- ---
181
-
182
- ## السياسات المخصصة
183
-
184
- اكتب سياساتك الخاصة للحفاظ على موثوقية الوكلاء وتركيزهم على المهام:
185
-
186
- ```js
187
- import { customPolicies, allow, deny, instruct } from "failproofai";
188
-
189
- customPolicies.add({
190
- name: "no-production-writes",
191
- description: "Block writes to paths containing 'production'",
192
- match: { events: ["PreToolUse"] },
193
- fn: async (ctx) => {
194
- if (!["Write", "Edit"].includes(ctx.toolName ?? "")) return allow();
195
- const path = ctx.toolInput?.file_path ?? "";
196
- if (path.includes("production")) return deny("Writes to production paths are blocked");
197
- return allow();
198
- },
199
- });
200
- ```
201
-
202
- ثبّت مع:
203
-
204
- ```bash
205
- failproofai policies --install --custom ./my-policies.js
206
- ```
207
-
208
- ### مساعدات القرار
209
-
210
- | الدالة | التأثير |
211
- |----------|--------|
212
- | `allow()` | السماح بالعملية |
213
- | `allow(message)` | السماح وإرسال السياق المعلوماتي إلى Claude |
214
- | `deny(message)` | حجب العملية؛ الرسالة مُعروضة على Claude |
215
- | `instruct(message)` | إضافة السياق إلى موجه Claude؛ لا تحجب |
216
-
217
- ### كائن السياق (`ctx`)
218
-
219
- | الحقل | النوع | الوصف |
220
- |-------|------|-------------|
221
- | `eventType` | `string` | `"PreToolUse"`, `"PostToolUse"`, `"Notification"`, `"Stop"` |
222
- | `toolName` | `string` | الأداة التي يتم استدعاؤها (`"Bash"`, `"Write"`, `"Read"`, …) |
223
- | `toolInput` | `object` | معاملات إدخال الأداة |
224
- | `payload` | `object` | حمل الحدث الخام الكامل |
225
- | `session.cwd` | `string` | دليل العمل لجلسة Claude Code |
226
- | `session.sessionId` | `string` | معرّف الجلسة |
227
- | `session.transcriptPath` | `string` | المسار إلى ملف نسخة الجلسة |
228
-
229
- تدعم الخطافات المخصصة الاستيراد المحلي العابر والانتظار غير المتزامن والوصول إلى `process.env`. الأخطاء فشل مفتوح (تسجل في `~/.failproofai/hook.log`، السياسات المدمجة تستمر). راجع [docs/custom-hooks.mdx](docs/custom-hooks.mdx) للحصول على الدليل الكامل.
230
-
231
- ### السياسات المستندة إلى الاتفاقية
232
-
233
- أسقط ملفات `*policies.{js,mjs,ts}` في `.failproofai/policies/` وسيتم تحميلها تلقائياً - لا توجد أعلام أو تغييرات تكوين مطلوبة. التزم بالدليل إلى git وكل عضو في الفريق يحصل على نفس معايير الجودة تلقائياً.
234
-
235
- ```text
236
- # مستوى المشروع — ملتزم بـ git، مشاركة مع الفريق
237
- .failproofai/policies/security-policies.mjs
238
- .failproofai/policies/workflow-policies.mjs
239
-
240
- # مستوى المستخدم — شخصي، ينطبق على جميع المشاريع
241
- ~/.failproofai/policies/my-policies.mjs
242
- ```
243
-
244
- يتم تحميل كلا المستويين (اتحاد). يتم تحميل الملفات أبجدياً داخل كل دليل. بادئة مع `01-`, `02-`, إلخ. للتحكم في الترتيب. عندما يكتشف فريقك أنماط فشل جديدة، أضف سياسة واضغط - يحصل الجميع على التحديث عند الاستخراج التالي. راجع [examples/convention-policies/](examples/convention-policies/) للحصول على أمثلة جاهزة للاستخدام.
245
-
246
- ---
247
-
248
- ## القياس
249
-
250
- يجمع Failproof AI بيانات القياس المجهولة عبر PostHog لفهم استخدام الميزات. لا يتم أبداً إرسال محتوى الجلسة أو أسماء الملفات أو مدخلات الأدوات أو المعلومات الشخصية.
251
-
252
- عطّلها:
253
-
254
- ```bash
255
- FAILPROOFAI_TELEMETRY_DISABLED=1 failproofai
256
- ```
257
-
258
- ---
259
-
260
- ## التوثيق
261
-
262
- | الدليل | الوصف |
263
- |-------|-------------|
264
- | [Getting Started](docs/getting-started.mdx) | التثبيت والخطوات الأولى |
265
- | [Built-in Policies](docs/built-in-policies.mdx) | جميع 30 سياسة مدمجة مع معاملات |
266
- | [Custom Policies](docs/custom-policies.mdx) | اكتب سياساتك الخاصة |
267
- | [Configuration](docs/configuration.mdx) | تنسيق ملف التكوين ودمج النطاق |
268
- | [Dashboard](docs/dashboard.mdx) | راقب الجلسات وراجع نشاط السياسة |
269
- | [Architecture](docs/architecture.mdx) | كيفية عمل نظام الخطاف |
270
- | [Testing](docs/testing.mdx) | تشغيل الاختبارات وكتابة اختبارات جديدة |
271
-
272
- ### قم بتشغيل التوثيق محلياً
273
-
274
- ```bash
275
- docker build -f Dockerfile.docs -t failproofai-docs .
276
- docker run --rm -p 3000:3000 failproofai-docs
277
- ```
278
-
279
- يفتح موقع Mintlify docs في `http://localhost:3000`. يراقب الحاوية التغييرات إذا قمت بتحميل دليل docs:
280
-
281
- ```bash
282
- docker run --rm -p 3000:3000 -v $(pwd)/docs:/app/docs failproofai-docs
283
- ```
284
-
285
- ---
286
-
287
- ## ملاحظة لمساهمي failproofai
288
-
289
- يستخدم `.claude/settings.json` في هذا المستودع `bun ./bin/failproofai.mjs --hook <EventType>` بدلاً من أمر `npx -y failproofai` القياسي. هذا لأن تشغيل `npx -y failproofai` داخل مشروع failproofai نفسه ينشئ تضارباً مرجعياً ذاتياً.
290
-
291
- بالنسبة لجميع المستودعات الأخرى، الطريقة الموصى بها هي `npx -y failproofai`، المثبتة عبر:
292
-
293
- ```bash
294
- failproofai policies --install --scope project
295
- ```
296
-
297
- ## المساهمة
298
-
299
- راجع [CONTRIBUTING.md](CONTRIBUTING.md).
300
-
301
- ---
302
-
303
- ## الترخيص
304
-
305
- راجع [LICENSE](LICENSE).
306
-
307
- ---
308
-
309
- تم البناء والصيانة بواسطة **ExosphereHost: مختبر أبحاث الموثوقية لوكلائك**. نساعد الشركات والشركات الناشئة على تحسين موثوقية عملائهم من الذكاء الاصطناعي من خلال وكلائنا وبرامجنا وخبرتنا. تعرف على المزيد في [exosphere.host](https://exosphere.host).
310
-
311
-
312
- </div>