failproofai 0.0.6-beta.3 → 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 (509) 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]__0kyh86x._.js → [root-of-the-server]__0om-5pe._.js} +2 -2
  57. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +1 -1
  58. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__096k.db._.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/{01pmw1-asbek~.js → 02dqjyv6_9mhq.js} +2 -2
  71. package/.next/standalone/.next/static/chunks/{051m32nx~n5yr.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/{0mazj-p-~2kc6.js → 0o547jv-k_k35.js} +1 -1
  74. package/.next/standalone/.next/static/chunks/0pk2h2.mjxy.m.js +6 -0
  75. package/.next/standalone/.next/static/chunks/{0l-mu4okl-cj1.js → 0rcwkbh24w38b.js} +1 -1
  76. package/.next/standalone/.next/static/chunks/{0-dm_9a6nsc2l.js → 140xx_tfr~lm_.js} +1 -1
  77. package/.next/standalone/.next/static/chunks/{156zca6aewyr-.js → 169_e4dq~1~b6.js} +1 -1
  78. package/.next/standalone/.next/static/chunks/{0a-yctdwn368y.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/dist/cli.mjs +2 -2
  83. package/package.json +2 -2
  84. package/scripts/prune-standalone.mjs +128 -0
  85. package/.next/standalone/.claude/settings.json +0 -316
  86. package/.next/standalone/.failproofai/policies/review-policies.mjs +0 -113
  87. package/.next/standalone/.failproofai/policies/workflow-policies.mjs +0 -63
  88. package/.next/standalone/.failproofai/policies-config.json +0 -39
  89. package/.next/standalone/.next/static/chunks/0gu_a.a80ritd.css +0 -1
  90. package/.next/standalone/.next/static/chunks/0qakntsrpc~1j.js +0 -6
  91. package/.next/standalone/AGENTS.md +0 -80
  92. package/.next/standalone/CHANGELOG.md +0 -158
  93. package/.next/standalone/CLAUDE.md +0 -165
  94. package/.next/standalone/CONTRIBUTING.md +0 -76
  95. package/.next/standalone/Dockerfile.docs +0 -12
  96. package/.next/standalone/LICENSE +0 -42
  97. package/.next/standalone/README.md +0 -301
  98. package/.next/standalone/bin/failproofai.mjs +0 -439
  99. package/.next/standalone/bun.lock +0 -1119
  100. package/.next/standalone/components.json +0 -23
  101. package/.next/standalone/dist/cli.mjs +0 -4696
  102. package/.next/standalone/dist/index.js +0 -80
  103. package/.next/standalone/docs/ar/architecture.mdx +0 -334
  104. package/.next/standalone/docs/ar/built-in-policies.mdx +0 -574
  105. package/.next/standalone/docs/ar/cli/dashboard.mdx +0 -28
  106. package/.next/standalone/docs/ar/cli/environment-variables.mdx +0 -34
  107. package/.next/standalone/docs/ar/cli/hook.mdx +0 -31
  108. package/.next/standalone/docs/ar/cli/install-policies.mdx +0 -48
  109. package/.next/standalone/docs/ar/cli/list-policies.mdx +0 -31
  110. package/.next/standalone/docs/ar/cli/remove-policies.mdx +0 -43
  111. package/.next/standalone/docs/ar/cli/version.mdx +0 -13
  112. package/.next/standalone/docs/ar/configuration.mdx +0 -223
  113. package/.next/standalone/docs/ar/custom-policies.mdx +0 -354
  114. package/.next/standalone/docs/ar/dashboard.mdx +0 -142
  115. package/.next/standalone/docs/ar/examples.mdx +0 -307
  116. package/.next/standalone/docs/ar/for-agents.mdx +0 -39
  117. package/.next/standalone/docs/ar/getting-started.mdx +0 -187
  118. package/.next/standalone/docs/ar/introduction.mdx +0 -58
  119. package/.next/standalone/docs/ar/package-aliases.mdx +0 -82
  120. package/.next/standalone/docs/ar/testing.mdx +0 -261
  121. package/.next/standalone/docs/architecture.mdx +0 -332
  122. package/.next/standalone/docs/built-in-policies.mdx +0 -574
  123. package/.next/standalone/docs/cli/dashboard.mdx +0 -28
  124. package/.next/standalone/docs/cli/environment-variables.mdx +0 -34
  125. package/.next/standalone/docs/cli/hook.mdx +0 -30
  126. package/.next/standalone/docs/cli/install-policies.mdx +0 -47
  127. package/.next/standalone/docs/cli/list-policies.mdx +0 -31
  128. package/.next/standalone/docs/cli/remove-policies.mdx +0 -43
  129. package/.next/standalone/docs/cli/version.mdx +0 -12
  130. package/.next/standalone/docs/configuration.mdx +0 -222
  131. package/.next/standalone/docs/custom-policies.mdx +0 -353
  132. package/.next/standalone/docs/dashboard.mdx +0 -142
  133. package/.next/standalone/docs/de/architecture.mdx +0 -332
  134. package/.next/standalone/docs/de/built-in-policies.mdx +0 -574
  135. package/.next/standalone/docs/de/cli/dashboard.mdx +0 -28
  136. package/.next/standalone/docs/de/cli/environment-variables.mdx +0 -34
  137. package/.next/standalone/docs/de/cli/hook.mdx +0 -30
  138. package/.next/standalone/docs/de/cli/install-policies.mdx +0 -47
  139. package/.next/standalone/docs/de/cli/list-policies.mdx +0 -31
  140. package/.next/standalone/docs/de/cli/remove-policies.mdx +0 -43
  141. package/.next/standalone/docs/de/cli/version.mdx +0 -12
  142. package/.next/standalone/docs/de/configuration.mdx +0 -222
  143. package/.next/standalone/docs/de/custom-policies.mdx +0 -353
  144. package/.next/standalone/docs/de/dashboard.mdx +0 -142
  145. package/.next/standalone/docs/de/examples.mdx +0 -307
  146. package/.next/standalone/docs/de/for-agents.mdx +0 -38
  147. package/.next/standalone/docs/de/getting-started.mdx +0 -186
  148. package/.next/standalone/docs/de/introduction.mdx +0 -57
  149. package/.next/standalone/docs/de/package-aliases.mdx +0 -82
  150. package/.next/standalone/docs/de/testing.mdx +0 -260
  151. package/.next/standalone/docs/docs.json +0 -1002
  152. package/.next/standalone/docs/es/architecture.mdx +0 -332
  153. package/.next/standalone/docs/es/built-in-policies.mdx +0 -574
  154. package/.next/standalone/docs/es/cli/dashboard.mdx +0 -28
  155. package/.next/standalone/docs/es/cli/environment-variables.mdx +0 -34
  156. package/.next/standalone/docs/es/cli/hook.mdx +0 -30
  157. package/.next/standalone/docs/es/cli/install-policies.mdx +0 -47
  158. package/.next/standalone/docs/es/cli/list-policies.mdx +0 -31
  159. package/.next/standalone/docs/es/cli/remove-policies.mdx +0 -43
  160. package/.next/standalone/docs/es/cli/version.mdx +0 -12
  161. package/.next/standalone/docs/es/configuration.mdx +0 -222
  162. package/.next/standalone/docs/es/custom-policies.mdx +0 -353
  163. package/.next/standalone/docs/es/dashboard.mdx +0 -142
  164. package/.next/standalone/docs/es/examples.mdx +0 -307
  165. package/.next/standalone/docs/es/for-agents.mdx +0 -38
  166. package/.next/standalone/docs/es/getting-started.mdx +0 -186
  167. package/.next/standalone/docs/es/introduction.mdx +0 -57
  168. package/.next/standalone/docs/es/package-aliases.mdx +0 -82
  169. package/.next/standalone/docs/es/testing.mdx +0 -260
  170. package/.next/standalone/docs/examples.mdx +0 -307
  171. package/.next/standalone/docs/favicon.ico +0 -0
  172. package/.next/standalone/docs/for-agents.mdx +0 -38
  173. package/.next/standalone/docs/fr/architecture.mdx +0 -332
  174. package/.next/standalone/docs/fr/built-in-policies.mdx +0 -574
  175. package/.next/standalone/docs/fr/cli/dashboard.mdx +0 -28
  176. package/.next/standalone/docs/fr/cli/environment-variables.mdx +0 -34
  177. package/.next/standalone/docs/fr/cli/hook.mdx +0 -30
  178. package/.next/standalone/docs/fr/cli/install-policies.mdx +0 -47
  179. package/.next/standalone/docs/fr/cli/list-policies.mdx +0 -31
  180. package/.next/standalone/docs/fr/cli/remove-policies.mdx +0 -43
  181. package/.next/standalone/docs/fr/cli/version.mdx +0 -12
  182. package/.next/standalone/docs/fr/configuration.mdx +0 -222
  183. package/.next/standalone/docs/fr/custom-policies.mdx +0 -353
  184. package/.next/standalone/docs/fr/dashboard.mdx +0 -142
  185. package/.next/standalone/docs/fr/examples.mdx +0 -307
  186. package/.next/standalone/docs/fr/for-agents.mdx +0 -38
  187. package/.next/standalone/docs/fr/getting-started.mdx +0 -186
  188. package/.next/standalone/docs/fr/introduction.mdx +0 -57
  189. package/.next/standalone/docs/fr/package-aliases.mdx +0 -82
  190. package/.next/standalone/docs/fr/testing.mdx +0 -260
  191. package/.next/standalone/docs/getting-started.mdx +0 -186
  192. package/.next/standalone/docs/he/architecture.mdx +0 -333
  193. package/.next/standalone/docs/he/built-in-policies.mdx +0 -575
  194. package/.next/standalone/docs/he/cli/dashboard.mdx +0 -28
  195. package/.next/standalone/docs/he/cli/environment-variables.mdx +0 -34
  196. package/.next/standalone/docs/he/cli/hook.mdx +0 -30
  197. package/.next/standalone/docs/he/cli/install-policies.mdx +0 -47
  198. package/.next/standalone/docs/he/cli/list-policies.mdx +0 -32
  199. package/.next/standalone/docs/he/cli/remove-policies.mdx +0 -43
  200. package/.next/standalone/docs/he/cli/version.mdx +0 -12
  201. package/.next/standalone/docs/he/configuration.mdx +0 -223
  202. package/.next/standalone/docs/he/custom-policies.mdx +0 -353
  203. package/.next/standalone/docs/he/dashboard.mdx +0 -142
  204. package/.next/standalone/docs/he/examples.mdx +0 -307
  205. package/.next/standalone/docs/he/for-agents.mdx +0 -38
  206. package/.next/standalone/docs/he/getting-started.mdx +0 -186
  207. package/.next/standalone/docs/he/introduction.mdx +0 -57
  208. package/.next/standalone/docs/he/package-aliases.mdx +0 -82
  209. package/.next/standalone/docs/he/testing.mdx +0 -260
  210. package/.next/standalone/docs/hi/architecture.mdx +0 -334
  211. package/.next/standalone/docs/hi/built-in-policies.mdx +0 -572
  212. package/.next/standalone/docs/hi/cli/dashboard.mdx +0 -28
  213. package/.next/standalone/docs/hi/cli/environment-variables.mdx +0 -34
  214. package/.next/standalone/docs/hi/cli/hook.mdx +0 -30
  215. package/.next/standalone/docs/hi/cli/install-policies.mdx +0 -47
  216. package/.next/standalone/docs/hi/cli/list-policies.mdx +0 -31
  217. package/.next/standalone/docs/hi/cli/remove-policies.mdx +0 -43
  218. package/.next/standalone/docs/hi/cli/version.mdx +0 -12
  219. package/.next/standalone/docs/hi/configuration.mdx +0 -222
  220. package/.next/standalone/docs/hi/custom-policies.mdx +0 -354
  221. package/.next/standalone/docs/hi/dashboard.mdx +0 -142
  222. package/.next/standalone/docs/hi/examples.mdx +0 -309
  223. package/.next/standalone/docs/hi/for-agents.mdx +0 -38
  224. package/.next/standalone/docs/hi/getting-started.mdx +0 -187
  225. package/.next/standalone/docs/hi/introduction.mdx +0 -57
  226. package/.next/standalone/docs/hi/package-aliases.mdx +0 -82
  227. package/.next/standalone/docs/hi/testing.mdx +0 -260
  228. package/.next/standalone/docs/i18n/README.ar.md +0 -312
  229. package/.next/standalone/docs/i18n/README.de.md +0 -307
  230. package/.next/standalone/docs/i18n/README.es.md +0 -307
  231. package/.next/standalone/docs/i18n/README.fr.md +0 -307
  232. package/.next/standalone/docs/i18n/README.he.md +0 -312
  233. package/.next/standalone/docs/i18n/README.hi.md +0 -307
  234. package/.next/standalone/docs/i18n/README.it.md +0 -307
  235. package/.next/standalone/docs/i18n/README.ja.md +0 -307
  236. package/.next/standalone/docs/i18n/README.ko.md +0 -307
  237. package/.next/standalone/docs/i18n/README.pt-br.md +0 -307
  238. package/.next/standalone/docs/i18n/README.ru.md +0 -308
  239. package/.next/standalone/docs/i18n/README.tr.md +0 -307
  240. package/.next/standalone/docs/i18n/README.vi.md +0 -307
  241. package/.next/standalone/docs/i18n/README.zh.md +0 -307
  242. package/.next/standalone/docs/introduction.mdx +0 -57
  243. package/.next/standalone/docs/it/architecture.mdx +0 -334
  244. package/.next/standalone/docs/it/built-in-policies.mdx +0 -574
  245. package/.next/standalone/docs/it/cli/dashboard.mdx +0 -28
  246. package/.next/standalone/docs/it/cli/environment-variables.mdx +0 -34
  247. package/.next/standalone/docs/it/cli/hook.mdx +0 -30
  248. package/.next/standalone/docs/it/cli/install-policies.mdx +0 -47
  249. package/.next/standalone/docs/it/cli/list-policies.mdx +0 -31
  250. package/.next/standalone/docs/it/cli/remove-policies.mdx +0 -43
  251. package/.next/standalone/docs/it/cli/version.mdx +0 -12
  252. package/.next/standalone/docs/it/configuration.mdx +0 -222
  253. package/.next/standalone/docs/it/custom-policies.mdx +0 -353
  254. package/.next/standalone/docs/it/dashboard.mdx +0 -142
  255. package/.next/standalone/docs/it/examples.mdx +0 -307
  256. package/.next/standalone/docs/it/for-agents.mdx +0 -38
  257. package/.next/standalone/docs/it/getting-started.mdx +0 -186
  258. package/.next/standalone/docs/it/introduction.mdx +0 -57
  259. package/.next/standalone/docs/it/package-aliases.mdx +0 -82
  260. package/.next/standalone/docs/it/testing.mdx +0 -260
  261. package/.next/standalone/docs/ja/architecture.mdx +0 -332
  262. package/.next/standalone/docs/ja/built-in-policies.mdx +0 -572
  263. package/.next/standalone/docs/ja/cli/dashboard.mdx +0 -28
  264. package/.next/standalone/docs/ja/cli/environment-variables.mdx +0 -34
  265. package/.next/standalone/docs/ja/cli/hook.mdx +0 -30
  266. package/.next/standalone/docs/ja/cli/install-policies.mdx +0 -47
  267. package/.next/standalone/docs/ja/cli/list-policies.mdx +0 -31
  268. package/.next/standalone/docs/ja/cli/remove-policies.mdx +0 -43
  269. package/.next/standalone/docs/ja/cli/version.mdx +0 -12
  270. package/.next/standalone/docs/ja/configuration.mdx +0 -222
  271. package/.next/standalone/docs/ja/custom-policies.mdx +0 -353
  272. package/.next/standalone/docs/ja/dashboard.mdx +0 -142
  273. package/.next/standalone/docs/ja/examples.mdx +0 -307
  274. package/.next/standalone/docs/ja/for-agents.mdx +0 -38
  275. package/.next/standalone/docs/ja/getting-started.mdx +0 -186
  276. package/.next/standalone/docs/ja/introduction.mdx +0 -57
  277. package/.next/standalone/docs/ja/package-aliases.mdx +0 -82
  278. package/.next/standalone/docs/ja/testing.mdx +0 -260
  279. package/.next/standalone/docs/ko/architecture.mdx +0 -332
  280. package/.next/standalone/docs/ko/built-in-policies.mdx +0 -572
  281. package/.next/standalone/docs/ko/cli/dashboard.mdx +0 -28
  282. package/.next/standalone/docs/ko/cli/environment-variables.mdx +0 -34
  283. package/.next/standalone/docs/ko/cli/hook.mdx +0 -30
  284. package/.next/standalone/docs/ko/cli/install-policies.mdx +0 -47
  285. package/.next/standalone/docs/ko/cli/list-policies.mdx +0 -31
  286. package/.next/standalone/docs/ko/cli/remove-policies.mdx +0 -43
  287. package/.next/standalone/docs/ko/cli/version.mdx +0 -12
  288. package/.next/standalone/docs/ko/configuration.mdx +0 -222
  289. package/.next/standalone/docs/ko/custom-policies.mdx +0 -353
  290. package/.next/standalone/docs/ko/dashboard.mdx +0 -142
  291. package/.next/standalone/docs/ko/examples.mdx +0 -307
  292. package/.next/standalone/docs/ko/for-agents.mdx +0 -38
  293. package/.next/standalone/docs/ko/getting-started.mdx +0 -186
  294. package/.next/standalone/docs/ko/introduction.mdx +0 -57
  295. package/.next/standalone/docs/ko/package-aliases.mdx +0 -82
  296. package/.next/standalone/docs/ko/testing.mdx +0 -260
  297. package/.next/standalone/docs/logo/dark.svg +0 -21
  298. package/.next/standalone/docs/logo/exosphere-dark.png +0 -0
  299. package/.next/standalone/docs/logo/exosphere-light.png +0 -0
  300. package/.next/standalone/docs/logo/light.svg +0 -21
  301. package/.next/standalone/docs/package-aliases.mdx +0 -82
  302. package/.next/standalone/docs/pt-br/architecture.mdx +0 -332
  303. package/.next/standalone/docs/pt-br/built-in-policies.mdx +0 -574
  304. package/.next/standalone/docs/pt-br/cli/dashboard.mdx +0 -28
  305. package/.next/standalone/docs/pt-br/cli/environment-variables.mdx +0 -34
  306. package/.next/standalone/docs/pt-br/cli/hook.mdx +0 -30
  307. package/.next/standalone/docs/pt-br/cli/install-policies.mdx +0 -47
  308. package/.next/standalone/docs/pt-br/cli/list-policies.mdx +0 -31
  309. package/.next/standalone/docs/pt-br/cli/remove-policies.mdx +0 -43
  310. package/.next/standalone/docs/pt-br/cli/version.mdx +0 -12
  311. package/.next/standalone/docs/pt-br/configuration.mdx +0 -222
  312. package/.next/standalone/docs/pt-br/custom-policies.mdx +0 -353
  313. package/.next/standalone/docs/pt-br/dashboard.mdx +0 -142
  314. package/.next/standalone/docs/pt-br/examples.mdx +0 -307
  315. package/.next/standalone/docs/pt-br/for-agents.mdx +0 -38
  316. package/.next/standalone/docs/pt-br/getting-started.mdx +0 -186
  317. package/.next/standalone/docs/pt-br/introduction.mdx +0 -57
  318. package/.next/standalone/docs/pt-br/package-aliases.mdx +0 -82
  319. package/.next/standalone/docs/pt-br/testing.mdx +0 -260
  320. package/.next/standalone/docs/ru/architecture.mdx +0 -333
  321. package/.next/standalone/docs/ru/built-in-policies.mdx +0 -574
  322. package/.next/standalone/docs/ru/cli/dashboard.mdx +0 -28
  323. package/.next/standalone/docs/ru/cli/environment-variables.mdx +0 -34
  324. package/.next/standalone/docs/ru/cli/hook.mdx +0 -30
  325. package/.next/standalone/docs/ru/cli/install-policies.mdx +0 -48
  326. package/.next/standalone/docs/ru/cli/list-policies.mdx +0 -32
  327. package/.next/standalone/docs/ru/cli/remove-policies.mdx +0 -43
  328. package/.next/standalone/docs/ru/cli/version.mdx +0 -12
  329. package/.next/standalone/docs/ru/configuration.mdx +0 -222
  330. package/.next/standalone/docs/ru/custom-policies.mdx +0 -354
  331. package/.next/standalone/docs/ru/dashboard.mdx +0 -142
  332. package/.next/standalone/docs/ru/examples.mdx +0 -309
  333. package/.next/standalone/docs/ru/for-agents.mdx +0 -38
  334. package/.next/standalone/docs/ru/getting-started.mdx +0 -186
  335. package/.next/standalone/docs/ru/introduction.mdx +0 -57
  336. package/.next/standalone/docs/ru/package-aliases.mdx +0 -82
  337. package/.next/standalone/docs/ru/testing.mdx +0 -260
  338. package/.next/standalone/docs/testing.mdx +0 -260
  339. package/.next/standalone/docs/tr/architecture.mdx +0 -333
  340. package/.next/standalone/docs/tr/built-in-policies.mdx +0 -574
  341. package/.next/standalone/docs/tr/cli/dashboard.mdx +0 -28
  342. package/.next/standalone/docs/tr/cli/environment-variables.mdx +0 -34
  343. package/.next/standalone/docs/tr/cli/hook.mdx +0 -30
  344. package/.next/standalone/docs/tr/cli/install-policies.mdx +0 -47
  345. package/.next/standalone/docs/tr/cli/list-policies.mdx +0 -31
  346. package/.next/standalone/docs/tr/cli/remove-policies.mdx +0 -44
  347. package/.next/standalone/docs/tr/cli/version.mdx +0 -12
  348. package/.next/standalone/docs/tr/configuration.mdx +0 -222
  349. package/.next/standalone/docs/tr/custom-policies.mdx +0 -353
  350. package/.next/standalone/docs/tr/dashboard.mdx +0 -142
  351. package/.next/standalone/docs/tr/examples.mdx +0 -308
  352. package/.next/standalone/docs/tr/for-agents.mdx +0 -38
  353. package/.next/standalone/docs/tr/getting-started.mdx +0 -186
  354. package/.next/standalone/docs/tr/introduction.mdx +0 -57
  355. package/.next/standalone/docs/tr/package-aliases.mdx +0 -82
  356. package/.next/standalone/docs/tr/testing.mdx +0 -260
  357. package/.next/standalone/docs/vi/architecture.mdx +0 -334
  358. package/.next/standalone/docs/vi/built-in-policies.mdx +0 -572
  359. package/.next/standalone/docs/vi/cli/dashboard.mdx +0 -28
  360. package/.next/standalone/docs/vi/cli/environment-variables.mdx +0 -34
  361. package/.next/standalone/docs/vi/cli/hook.mdx +0 -30
  362. package/.next/standalone/docs/vi/cli/install-policies.mdx +0 -47
  363. package/.next/standalone/docs/vi/cli/list-policies.mdx +0 -31
  364. package/.next/standalone/docs/vi/cli/remove-policies.mdx +0 -43
  365. package/.next/standalone/docs/vi/cli/version.mdx +0 -13
  366. package/.next/standalone/docs/vi/configuration.mdx +0 -222
  367. package/.next/standalone/docs/vi/custom-policies.mdx +0 -353
  368. package/.next/standalone/docs/vi/dashboard.mdx +0 -142
  369. package/.next/standalone/docs/vi/examples.mdx +0 -308
  370. package/.next/standalone/docs/vi/for-agents.mdx +0 -38
  371. package/.next/standalone/docs/vi/getting-started.mdx +0 -186
  372. package/.next/standalone/docs/vi/introduction.mdx +0 -57
  373. package/.next/standalone/docs/vi/package-aliases.mdx +0 -82
  374. package/.next/standalone/docs/vi/testing.mdx +0 -260
  375. package/.next/standalone/docs/zh/architecture.mdx +0 -332
  376. package/.next/standalone/docs/zh/built-in-policies.mdx +0 -570
  377. package/.next/standalone/docs/zh/cli/dashboard.mdx +0 -28
  378. package/.next/standalone/docs/zh/cli/environment-variables.mdx +0 -34
  379. package/.next/standalone/docs/zh/cli/hook.mdx +0 -30
  380. package/.next/standalone/docs/zh/cli/install-policies.mdx +0 -47
  381. package/.next/standalone/docs/zh/cli/list-policies.mdx +0 -31
  382. package/.next/standalone/docs/zh/cli/remove-policies.mdx +0 -43
  383. package/.next/standalone/docs/zh/cli/version.mdx +0 -12
  384. package/.next/standalone/docs/zh/configuration.mdx +0 -222
  385. package/.next/standalone/docs/zh/custom-policies.mdx +0 -353
  386. package/.next/standalone/docs/zh/dashboard.mdx +0 -142
  387. package/.next/standalone/docs/zh/examples.mdx +0 -307
  388. package/.next/standalone/docs/zh/for-agents.mdx +0 -38
  389. package/.next/standalone/docs/zh/getting-started.mdx +0 -186
  390. package/.next/standalone/docs/zh/introduction.mdx +0 -57
  391. package/.next/standalone/docs/zh/package-aliases.mdx +0 -82
  392. package/.next/standalone/docs/zh/testing.mdx +0 -260
  393. package/.next/standalone/eslint.config.mjs +0 -15
  394. package/.next/standalone/examples/convention-policies/security-policies.mjs +0 -40
  395. package/.next/standalone/examples/convention-policies/workflow-policies.mjs +0 -41
  396. package/.next/standalone/examples/policies-advanced/index.js +0 -103
  397. package/.next/standalone/examples/policies-advanced/utils.js +0 -35
  398. package/.next/standalone/examples/policies-basic.js +0 -77
  399. package/.next/standalone/examples/policies-notification.js +0 -104
  400. package/.next/standalone/node_modules/@img/colour/color.cjs +0 -1594
  401. package/.next/standalone/node_modules/@img/colour/index.cjs +0 -1
  402. package/.next/standalone/node_modules/@img/colour/package.json +0 -45
  403. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/README.md +0 -46
  404. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/glib-2.0/include/glibconfig.h +0 -221
  405. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/index.js +0 -1
  406. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  407. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/package.json +0 -42
  408. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/versions.json +0 -30
  409. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +0 -46
  410. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +0 -221
  411. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +0 -1
  412. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  413. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
  414. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +0 -30
  415. package/.next/standalone/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  416. package/.next/standalone/node_modules/@img/sharp-linux-x64/package.json +0 -46
  417. package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  418. package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
  419. package/.next/standalone/node_modules/detect-libc/lib/detect-libc.js +0 -313
  420. package/.next/standalone/node_modules/detect-libc/lib/elf.js +0 -39
  421. package/.next/standalone/node_modules/detect-libc/lib/filesystem.js +0 -51
  422. package/.next/standalone/node_modules/detect-libc/lib/process.js +0 -24
  423. package/.next/standalone/node_modules/detect-libc/package.json +0 -44
  424. package/.next/standalone/node_modules/sharp/lib/channel.js +0 -177
  425. package/.next/standalone/node_modules/sharp/lib/colour.js +0 -195
  426. package/.next/standalone/node_modules/sharp/lib/composite.js +0 -212
  427. package/.next/standalone/node_modules/sharp/lib/constructor.js +0 -499
  428. package/.next/standalone/node_modules/sharp/lib/index.js +0 -16
  429. package/.next/standalone/node_modules/sharp/lib/input.js +0 -809
  430. package/.next/standalone/node_modules/sharp/lib/is.js +0 -143
  431. package/.next/standalone/node_modules/sharp/lib/libvips.js +0 -207
  432. package/.next/standalone/node_modules/sharp/lib/operation.js +0 -1016
  433. package/.next/standalone/node_modules/sharp/lib/output.js +0 -1666
  434. package/.next/standalone/node_modules/sharp/lib/resize.js +0 -595
  435. package/.next/standalone/node_modules/sharp/lib/sharp.js +0 -121
  436. package/.next/standalone/node_modules/sharp/lib/utility.js +0 -291
  437. package/.next/standalone/node_modules/sharp/node_modules/semver/classes/comparator.js +0 -143
  438. package/.next/standalone/node_modules/sharp/node_modules/semver/classes/range.js +0 -557
  439. package/.next/standalone/node_modules/sharp/node_modules/semver/classes/semver.js +0 -333
  440. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/cmp.js +0 -54
  441. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/coerce.js +0 -62
  442. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/compare.js +0 -7
  443. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/eq.js +0 -5
  444. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/gt.js +0 -5
  445. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/gte.js +0 -5
  446. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/lt.js +0 -5
  447. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/lte.js +0 -5
  448. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/neq.js +0 -5
  449. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/parse.js +0 -18
  450. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/satisfies.js +0 -12
  451. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/constants.js +0 -37
  452. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/debug.js +0 -11
  453. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/identifiers.js +0 -29
  454. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/lrucache.js +0 -42
  455. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/parse-options.js +0 -17
  456. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/re.js +0 -223
  457. package/.next/standalone/node_modules/sharp/node_modules/semver/package.json +0 -78
  458. package/.next/standalone/node_modules/sharp/package.json +0 -202
  459. package/.next/standalone/scripts/alias-proxy.js +0 -18
  460. package/.next/standalone/scripts/dev.ts +0 -3
  461. package/.next/standalone/scripts/install-telemetry.mjs +0 -108
  462. package/.next/standalone/scripts/launch.ts +0 -83
  463. package/.next/standalone/scripts/parse-script-args.ts +0 -87
  464. package/.next/standalone/scripts/postinstall.mjs +0 -121
  465. package/.next/standalone/scripts/preuninstall.mjs +0 -131
  466. package/.next/standalone/scripts/publish-aliases.mjs +0 -87
  467. package/.next/standalone/scripts/start.ts +0 -3
  468. package/.next/standalone/scripts/sync-hook-events-prompt.md +0 -60
  469. package/.next/standalone/scripts/translate-docs/cache.ts +0 -62
  470. package/.next/standalone/scripts/translate-docs/cli.ts +0 -357
  471. package/.next/standalone/scripts/translate-docs/config.ts +0 -248
  472. package/.next/standalone/scripts/translate-docs/mdx-translator.ts +0 -153
  473. package/.next/standalone/scripts/translate-docs/mintlify-nav.ts +0 -107
  474. package/.next/standalone/scripts/translate-docs/readme-translator.ts +0 -154
  475. package/.next/standalone/scripts/translate-docs/translator.ts +0 -68
  476. package/.next/standalone/scripts/translate-docs/types.ts +0 -43
  477. package/.next/standalone/src/auth/login.ts +0 -104
  478. package/.next/standalone/src/auth/logout.ts +0 -50
  479. package/.next/standalone/src/auth/token-store.ts +0 -64
  480. package/.next/standalone/src/cli-error.ts +0 -18
  481. package/.next/standalone/src/hooks/builtin-policies.ts +0 -1615
  482. package/.next/standalone/src/hooks/custom-hooks-loader.ts +0 -205
  483. package/.next/standalone/src/hooks/custom-hooks-registry.ts +0 -30
  484. package/.next/standalone/src/hooks/handler.ts +0 -222
  485. package/.next/standalone/src/hooks/hook-activity-store.ts +0 -349
  486. package/.next/standalone/src/hooks/hook-logger.ts +0 -133
  487. package/.next/standalone/src/hooks/hook-telemetry.ts +0 -43
  488. package/.next/standalone/src/hooks/hooks-config.ts +0 -166
  489. package/.next/standalone/src/hooks/install-prompt.ts +0 -357
  490. package/.next/standalone/src/hooks/llm-client.ts +0 -90
  491. package/.next/standalone/src/hooks/loader-utils.ts +0 -178
  492. package/.next/standalone/src/hooks/manager.ts +0 -692
  493. package/.next/standalone/src/hooks/policy-evaluator.ts +0 -224
  494. package/.next/standalone/src/hooks/policy-helpers.ts +0 -16
  495. package/.next/standalone/src/hooks/policy-registry.ts +0 -90
  496. package/.next/standalone/src/hooks/policy-types.ts +0 -77
  497. package/.next/standalone/src/hooks/types.ts +0 -63
  498. package/.next/standalone/src/index.ts +0 -19
  499. package/.next/standalone/src/posthog-key.ts +0 -5
  500. package/.next/standalone/src/relay/daemon.ts +0 -362
  501. package/.next/standalone/src/relay/pid.ts +0 -76
  502. package/.next/standalone/src/relay/queue.ts +0 -225
  503. package/.next/standalone/tailwind.config.ts +0 -11
  504. package/.next/standalone/tsconfig.json +0 -42
  505. package/.next/standalone/vitest.config.e2e.mts +0 -24
  506. package/.next/standalone/vitest.config.mts +0 -23
  507. /package/.next/standalone/.next/static/{r-wX0MuAfCjbhJm3phQc8 → wOkJXoch1UmRAmyIuKZWc}/_buildManifest.js +0 -0
  508. /package/.next/standalone/.next/static/{r-wX0MuAfCjbhJm3phQc8 → wOkJXoch1UmRAmyIuKZWc}/_clientMiddlewareManifest.js +0 -0
  509. /package/.next/standalone/.next/static/{r-wX0MuAfCjbhJm3phQc8 → wOkJXoch1UmRAmyIuKZWc}/_ssgManifest.js +0 -0
@@ -1,153 +0,0 @@
1
- import { readFileSync, writeFileSync, mkdirSync, readdirSync, statSync } from "node:fs";
2
- import { dirname, join, relative } from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- import { getLanguageByCode } from "./config";
5
- import { translateContent } from "./translator";
6
- import {
7
- readCache,
8
- writeCache,
9
- isCached,
10
- setCacheEntry,
11
- } from "./cache";
12
- import type { TranslationResult, TranslationCache } from "./types";
13
-
14
- const __dirname = dirname(fileURLToPath(import.meta.url));
15
- const DOCS_DIR = join(__dirname, "..", "..", "docs");
16
-
17
- /**
18
- * Rewrite internal doc links to include the language prefix.
19
- * e.g. href="/built-in-policies" -> href="/es/built-in-policies"
20
- * [Getting started](/getting-started) -> [Getting started](/es/getting-started)
21
- */
22
- export function rewriteInternalLinks(
23
- content: string,
24
- lang: string,
25
- ): string {
26
- // Rewrite MDX component href attributes pointing to internal paths
27
- let result = content.replace(
28
- /href="(\/[^"]*?)"/g,
29
- (_match, path: string) => {
30
- // Skip external URLs and anchors
31
- if (path.startsWith("/http") || path === "/") return `href="${path}"`;
32
- return `href="/${lang}${path}"`;
33
- },
34
- );
35
-
36
- // Rewrite Markdown links with internal paths
37
- result = result.replace(
38
- /\]\((\/[^)]*?)\)/g,
39
- (_match, path: string) => {
40
- if (path.startsWith("/http") || path === "/") return `](${path})`;
41
- return `](/${lang}${path})`;
42
- },
43
- );
44
-
45
- return result;
46
- }
47
-
48
- /**
49
- * Translate a single MDX doc page for a given language.
50
- */
51
- export async function translateMdxPage(
52
- sourcePath: string,
53
- lang: string,
54
- options: { force?: boolean; dryRun?: boolean; model?: string; cache?: TranslationCache } = {},
55
- ): Promise<TranslationResult> {
56
- const relPath = relative(DOCS_DIR, sourcePath);
57
- const outputPath = join(DOCS_DIR, lang, relPath);
58
- const sourceContent = readFileSync(sourcePath, "utf-8");
59
-
60
- const langConfig = getLanguageByCode(lang);
61
- if (!langConfig) throw new Error(`Unknown language: ${lang}`);
62
-
63
- // Check cache — use provided cache object or read from disk
64
- if (!options.force && !options.dryRun) {
65
- const cache = options.cache ?? readCache();
66
- if (isCached(cache, relPath, lang, sourceContent)) {
67
- return {
68
- lang,
69
- sourcePath,
70
- outputPath,
71
- inputTokens: 0,
72
- outputTokens: 0,
73
- cached: true,
74
- };
75
- }
76
- }
77
-
78
- if (options.dryRun) {
79
- return {
80
- lang,
81
- sourcePath,
82
- outputPath,
83
- inputTokens: 0,
84
- outputTokens: 0,
85
- cached: false,
86
- };
87
- }
88
-
89
- // Translate
90
- const { translated, inputTokens, outputTokens } = await translateContent(
91
- sourceContent,
92
- lang,
93
- langConfig.name,
94
- options.model,
95
- );
96
-
97
- // Rewrite internal links
98
- const withLinks = rewriteInternalLinks(translated, lang);
99
-
100
- // Write output
101
- mkdirSync(dirname(outputPath), { recursive: true });
102
- writeFileSync(outputPath, withLinks);
103
-
104
- // Update cache — skip if caller manages the cache (batch write)
105
- if (!options.cache) {
106
- const cache = readCache();
107
- setCacheEntry(cache, relPath, lang, sourceContent, inputTokens, outputTokens);
108
- writeCache(cache);
109
- }
110
-
111
- return {
112
- lang,
113
- sourcePath,
114
- outputPath,
115
- inputTokens,
116
- outputTokens,
117
- cached: false,
118
- };
119
- }
120
-
121
- /**
122
- * Get all MDX page paths from the docs directory (English only, no language subdirs).
123
- */
124
- export function getEnglishMdxPages(): string[] {
125
- const results: string[] = [];
126
-
127
- function walk(dir: string, prefix: string = "") {
128
- for (const entry of readdirSync(dir)) {
129
- const full = join(dir, entry);
130
- const rel = prefix ? `${prefix}/${entry}` : entry;
131
- if (statSync(full).isDirectory()) {
132
- // Skip language directories at the top level
133
- if (!prefix && isLanguageDir(entry)) continue;
134
- // Skip non-doc directories like logo, i18n
135
- if (!prefix && (entry === "logo" || entry === "i18n")) continue;
136
- walk(full, rel);
137
- } else if (entry.endsWith(".mdx")) {
138
- results.push(full);
139
- }
140
- }
141
- }
142
-
143
- walk(DOCS_DIR);
144
- return results.sort();
145
- }
146
-
147
- function isLanguageDir(name: string): boolean {
148
- const langCodes = [
149
- "zh", "ja", "ko", "es", "pt-br", "de", "fr",
150
- "ru", "hi", "tr", "vi", "it", "ar", "he",
151
- ];
152
- return langCodes.includes(name);
153
- }
@@ -1,107 +0,0 @@
1
- import { readFileSync, writeFileSync } from "node:fs";
2
- import { dirname, join } from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- import { NAV_TRANSLATIONS, LANGUAGES } from "./config";
5
-
6
- const __dirname = dirname(fileURLToPath(import.meta.url));
7
- const DOCS_JSON_PATH = join(__dirname, "..", "..", "docs", "docs.json");
8
-
9
- interface NavGroup {
10
- group: string;
11
- pages: string[];
12
- }
13
-
14
- interface NavTab {
15
- tab: string;
16
- groups: NavGroup[];
17
- }
18
-
19
- interface LanguageNav {
20
- language: string;
21
- tabs: NavTab[];
22
- }
23
-
24
- /**
25
- * Build a navigation entry for a specific language by transforming the
26
- * English navigation structure.
27
- */
28
- export function buildLanguageNav(
29
- englishTabs: NavTab[],
30
- lang: string,
31
- ): LanguageNav {
32
- const t = NAV_TRANSLATIONS[lang];
33
- if (!t) throw new Error(`No nav translations for language: ${lang}`);
34
-
35
- const groupNameMap: Record<string, string> = {
36
- "Getting Started": t.gettingStarted,
37
- "Core Concepts": t.coreConcepts,
38
- CLI: t.cli,
39
- Tools: t.tools,
40
- Advanced: t.advanced,
41
- Examples: t.examples,
42
- };
43
-
44
- const tabNameMap: Record<string, string> = {
45
- Docs: t.docs,
46
- Examples: t.examples,
47
- };
48
-
49
- const tabs: NavTab[] = englishTabs.map((tab) => ({
50
- tab: tabNameMap[tab.tab] || tab.tab,
51
- groups: tab.groups.map((group) => ({
52
- group: groupNameMap[group.group] || group.group,
53
- pages: group.pages.map((page) => `${lang}/${page}`),
54
- })),
55
- }));
56
-
57
- return { language: lang, tabs };
58
- }
59
-
60
- /**
61
- * Read the current docs.json config.
62
- */
63
- export function readDocsConfig(): Record<string, unknown> {
64
- return JSON.parse(readFileSync(DOCS_JSON_PATH, "utf-8"));
65
- }
66
-
67
- /**
68
- * Generate the full languages array for docs.json from the English nav
69
- * and a list of language codes.
70
- */
71
- export function generateLanguagesArray(
72
- englishTabs: NavTab[],
73
- langCodes: string[],
74
- ): LanguageNav[] {
75
- // English first (default)
76
- const english: LanguageNav = { language: "en", tabs: englishTabs };
77
- const others = langCodes.map((code) => buildLanguageNav(englishTabs, code));
78
- return [english, ...others];
79
- }
80
-
81
- /**
82
- * Update docs.json to use the languages array structure.
83
- */
84
- export function updateDocsJson(langCodes: string[]): void {
85
- const config = readDocsConfig();
86
- const nav = config.navigation as Record<string, unknown>;
87
-
88
- // Extract existing English tabs
89
- const englishTabs = nav.tabs as NavTab[];
90
- if (!englishTabs) {
91
- throw new Error("docs.json navigation.tabs not found — is this already using the languages format?");
92
- }
93
-
94
- // Build languages array
95
- const languages = generateLanguagesArray(englishTabs, langCodes);
96
-
97
- // Replace tabs with languages, preserve global
98
- const newNav: Record<string, unknown> = {
99
- languages,
100
- };
101
- if (nav.global) {
102
- newNav.global = nav.global;
103
- }
104
-
105
- config.navigation = newNav;
106
- writeFileSync(DOCS_JSON_PATH, JSON.stringify(config, null, 2) + "\n");
107
- }
@@ -1,154 +0,0 @@
1
- import { readFileSync, writeFileSync, mkdirSync } from "node:fs";
2
- import { dirname, join } from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- import { LANGUAGES, getLanguageByCode } from "./config";
5
- import { translateContent } from "./translator";
6
- import { readCache, writeCache, isCached, setCacheEntry } from "./cache";
7
- import type { TranslationResult, TranslationCache } from "./types";
8
-
9
- const __dirname = dirname(fileURLToPath(import.meta.url));
10
- const ROOT_DIR = join(__dirname, "..", "..");
11
- const README_PATH = join(ROOT_DIR, "README.md");
12
- const I18N_DIR = join(ROOT_DIR, "docs", "i18n");
13
-
14
- function buildLanguageSelector(currentLang: string): string {
15
- const flags: Record<string, string> = {
16
- en: "\ud83c\uddfa\ud83c\uddf8",
17
- zh: "\ud83c\udde8\ud83c\uddf3",
18
- ja: "\ud83c\uddef\ud83c\uddf5",
19
- ko: "\ud83c\uddf0\ud83c\uddf7",
20
- es: "\ud83c\uddea\ud83c\uddf8",
21
- "pt-br": "\ud83c\udde7\ud83c\uddf7",
22
- de: "\ud83c\udde9\ud83c\uddea",
23
- fr: "\ud83c\uddeb\ud83c\uddf7",
24
- ru: "\ud83c\uddf7\ud83c\uddfa",
25
- hi: "\ud83c\uddee\ud83c\uddf3",
26
- tr: "\ud83c\uddf9\ud83c\uddf7",
27
- vi: "\ud83c\uddfb\ud83c\uddf3",
28
- it: "\ud83c\uddee\ud83c\uddf9",
29
- ar: "\ud83c\uddf8\ud83c\udde6",
30
- he: "\ud83c\uddee\ud83c\uddf1",
31
- };
32
-
33
- const links: string[] = [];
34
-
35
- // English link (to root README)
36
- if (currentLang !== "en") {
37
- links.push(`[${flags.en} English](../../README.md)`);
38
- }
39
-
40
- for (const lang of LANGUAGES) {
41
- const flag = flags[lang.code] || "";
42
- if (lang.code === currentLang) {
43
- links.push(`**${flag} ${lang.nativeName}**`);
44
- } else {
45
- links.push(`[${flag} ${lang.nativeName}](README.${lang.code}.md)`);
46
- }
47
- }
48
-
49
- return links.join(" | ");
50
- }
51
-
52
- export async function translateReadme(
53
- lang: string,
54
- options: { force?: boolean; dryRun?: boolean; model?: string; cache?: TranslationCache } = {},
55
- ): Promise<TranslationResult> {
56
- const outputPath = join(I18N_DIR, `README.${lang}.md`);
57
- const sourceContent = readFileSync(README_PATH, "utf-8");
58
-
59
- const langConfig = getLanguageByCode(lang);
60
- if (!langConfig) throw new Error(`Unknown language: ${lang}`);
61
-
62
- // Check cache — use provided cache object or read from disk
63
- if (!options.force && !options.dryRun) {
64
- const cache = options.cache ?? readCache();
65
- if (isCached(cache, "README.md", lang, sourceContent)) {
66
- return {
67
- lang,
68
- sourcePath: README_PATH,
69
- outputPath,
70
- inputTokens: 0,
71
- outputTokens: 0,
72
- cached: true,
73
- };
74
- }
75
- }
76
-
77
- if (options.dryRun) {
78
- return {
79
- lang,
80
- sourcePath: README_PATH,
81
- outputPath,
82
- inputTokens: 0,
83
- outputTokens: 0,
84
- cached: false,
85
- };
86
- }
87
-
88
- // Translate
89
- const { translated, inputTokens, outputTokens } = await translateContent(
90
- sourceContent,
91
- lang,
92
- langConfig.name,
93
- options.model,
94
- );
95
-
96
- // Build the final output with header
97
- const disclaimer = langConfig.rtl
98
- ? `> **\u26a0\ufe0f** \u0647\u0630\u0647 \u062a\u0631\u062c\u0645\u0629 \u0622\u0644\u064a\u0629. \u0644\u0644\u0627\u0637\u0644\u0627\u0639 \u0639\u0644\u0649 \u0623\u062d\u062f\u062b \u0625\u0635\u062f\u0627\u0631\u060c \u0631\u0627\u062c\u0639 [English README](../../README.md).`
99
- : `> **\u26a0\ufe0f** This is an auto-generated translation. For the latest version, see the [English README](../../README.md). Community corrections welcome!`;
100
-
101
- const langSelector = buildLanguageSelector(lang);
102
- const rtlOpen = langConfig.rtl ? `<div dir="rtl">\n\n` : "";
103
- const rtlClose = langConfig.rtl ? `\n\n</div>` : "";
104
-
105
- const output = `${disclaimer}\n\n${langSelector}\n\n---\n${rtlOpen}\n${translated}\n${rtlClose}`;
106
-
107
- // Write output
108
- mkdirSync(I18N_DIR, { recursive: true });
109
- writeFileSync(outputPath, output);
110
-
111
- // Update cache — skip if caller manages the cache (batch write)
112
- if (!options.cache) {
113
- const cache = readCache();
114
- setCacheEntry(cache, "README.md", lang, sourceContent, inputTokens, outputTokens);
115
- writeCache(cache);
116
- }
117
-
118
- return {
119
- lang,
120
- sourcePath: README_PATH,
121
- outputPath,
122
- inputTokens,
123
- outputTokens,
124
- cached: false,
125
- };
126
- }
127
-
128
- /**
129
- * Build the language selector line to add to the main README.
130
- */
131
- export function buildMainReadmeLanguageLinks(): string {
132
- const flags: Record<string, string> = {
133
- zh: "\ud83c\udde8\ud83c\uddf3",
134
- ja: "\ud83c\uddef\ud83c\uddf5",
135
- ko: "\ud83c\uddf0\ud83c\uddf7",
136
- es: "\ud83c\uddea\ud83c\uddf8",
137
- "pt-br": "\ud83c\udde7\ud83c\uddf7",
138
- de: "\ud83c\udde9\ud83c\uddea",
139
- fr: "\ud83c\uddeb\ud83c\uddf7",
140
- ru: "\ud83c\uddf7\ud83c\uddfa",
141
- hi: "\ud83c\uddee\ud83c\uddf3",
142
- tr: "\ud83c\uddf9\ud83c\uddf7",
143
- vi: "\ud83c\uddfb\ud83c\uddf3",
144
- it: "\ud83c\uddee\ud83c\uddf9",
145
- ar: "\ud83c\uddf8\ud83c\udde6",
146
- he: "\ud83c\uddee\ud83c\uddf1",
147
- };
148
-
149
- const links = LANGUAGES.map(
150
- (l) => `[${flags[l.code] || ""} ${l.nativeName}](docs/i18n/README.${l.code}.md)`,
151
- );
152
-
153
- return `**Translations**: ${links.join(" | ")}`;
154
- }
@@ -1,68 +0,0 @@
1
- import Anthropic from "@anthropic-ai/sdk";
2
- import { DO_NOT_TRANSLATE } from "./config";
3
-
4
- let client: Anthropic | null = null;
5
-
6
- function getClient(): Anthropic {
7
- if (!client) {
8
- client = new Anthropic();
9
- }
10
- return client;
11
- }
12
-
13
- const SYSTEM_PROMPT = `You are a professional technical documentation translator. Your task is to translate documentation content precisely and naturally into the target language.
14
-
15
- ## Rules
16
-
17
- 1. **Preserve all code blocks exactly as-is** — never translate content inside backtick-fenced code blocks (\`\`\`...\`\`\`) or inline code (\`...\`).
18
- 2. **Preserve MDX component syntax** — tags like <Card>, <CardGroup>, <CodeGroup>, <Steps>, <Step>, <Note>, <Tip>, <Tabs>, <Tab>, <Warning> must remain unchanged. Their attribute names (title, icon, href, cols) must remain in English. Only translate the text content of the \`title\` attribute and the text body between tags.
19
- 3. **Preserve YAML frontmatter keys** — only translate the string values of \`title\` and \`description\`. Keep the \`icon\` value unchanged.
20
- 4. **Preserve all URLs and paths** — never modify href values, image paths, or links.
21
- 5. **Preserve Markdown structure** — headers (#, ##), lists (-, *), tables (|), bold (**), italic (*), links ([text](url)) must keep their Markdown formatting.
22
- 6. **Preserve badge/shield URLs** — any [![...](https://img.shields.io/...)](url) pattern must remain completely unchanged.
23
-
24
- ## Do-not-translate list
25
-
26
- The following terms must NEVER be translated — keep them exactly as-is in the output:
27
- ${DO_NOT_TRANSLATE.map((t) => `- ${t}`).join("\n")}
28
-
29
- ## Translation quality
30
-
31
- - Use natural, idiomatic phrasing in the target language — do NOT produce word-for-word literal translations.
32
- - Technical documentation should read as if originally written in the target language by a native-speaking developer.
33
- - Maintain the same level of formality and tone as the source.
34
- - For languages that distinguish formal/informal registers, use a professional but approachable tone.
35
-
36
- ## Output
37
-
38
- Return ONLY the translated content. Do not add explanations, notes, or commentary.`;
39
-
40
- export async function translateContent(
41
- content: string,
42
- targetLang: string,
43
- targetLangName: string,
44
- model: string = "claude-sonnet-4-6",
45
- ): Promise<{ translated: string; inputTokens: number; outputTokens: number }> {
46
- const anthropic = getClient();
47
-
48
- const response = await anthropic.messages.create({
49
- model,
50
- max_tokens: 16384,
51
- system: [{ type: "text", text: SYSTEM_PROMPT, cache_control: { type: "ephemeral" } }],
52
- messages: [
53
- {
54
- role: "user",
55
- content: `Translate the following documentation content into ${targetLangName} (${targetLang}).\n\n---\n\n${content}`,
56
- },
57
- ],
58
- });
59
-
60
- const translated =
61
- response.content[0].type === "text" ? response.content[0].text : "";
62
-
63
- return {
64
- translated,
65
- inputTokens: response.usage.input_tokens,
66
- outputTokens: response.usage.output_tokens,
67
- };
68
- }
@@ -1,43 +0,0 @@
1
- export interface LanguageConfig {
2
- code: string;
3
- name: string;
4
- nativeName: string;
5
- tier: 1 | 2 | 3;
6
- rtl?: boolean;
7
- }
8
-
9
- export interface CacheEntry {
10
- sourceHash: string;
11
- targetLang: string;
12
- translatedAt: string;
13
- inputTokens: number;
14
- outputTokens: number;
15
- }
16
-
17
- export interface TranslationCache {
18
- sourceHash: string;
19
- lastUpdated: string;
20
- translations: Record<string, CacheEntry>;
21
- }
22
-
23
- export interface TranslateOptions {
24
- languages: string[];
25
- tier?: number;
26
- pagesFilter?: string[];
27
- readmeOnly?: boolean;
28
- docsOnly?: boolean;
29
- dryRun?: boolean;
30
- force?: boolean;
31
- updateNav?: boolean;
32
- validate?: boolean;
33
- model?: string;
34
- }
35
-
36
- export interface TranslationResult {
37
- lang: string;
38
- sourcePath: string;
39
- outputPath: string;
40
- inputTokens: number;
41
- outputTokens: number;
42
- cached: boolean;
43
- }
@@ -1,104 +0,0 @@
1
- import { spawn } from "node:child_process";
2
- import { platform } from "node:os";
3
- import { writeTokens, type AuthTokens } from "./token-store";
4
-
5
- const DEFAULT_SERVER_URL = process.env.FAILPROOFAI_SERVER_URL ?? "https://api.befailproof.ai";
6
- const HTTP_TIMEOUT_MS = 10_000;
7
-
8
- interface DeviceCodeResponse {
9
- device_code: string;
10
- user_code: string;
11
- verification_url: string;
12
- expires_in: number;
13
- interval: number;
14
- }
15
-
16
- interface TokenResponse {
17
- access_token: string;
18
- refresh_token: string;
19
- expires_in: number;
20
- user: { id: string; email: string; name?: string };
21
- }
22
-
23
- function openBrowser(url: string): void {
24
- const os = platform();
25
- try {
26
- if (os === "darwin") {
27
- spawn("open", [url], { detached: true, stdio: "ignore" }).unref();
28
- } else if (os === "win32") {
29
- // On cmd's `start`, the first quoted token is treated as a window
30
- // title. Pass an empty title so URLs containing "&" or spaces are
31
- // interpreted as the target, not the title.
32
- spawn("cmd", ["/c", "start", "", url], { detached: true, stdio: "ignore" }).unref();
33
- } else {
34
- spawn("xdg-open", [url], { detached: true, stdio: "ignore" }).unref();
35
- }
36
- } catch {
37
- // Fallback: the URL is already printed above.
38
- }
39
- }
40
-
41
- async function postJson<T>(url: string, body: unknown, timeoutMs = HTTP_TIMEOUT_MS): Promise<T> {
42
- const resp = await fetch(url, {
43
- method: "POST",
44
- headers: { "Content-Type": "application/json" },
45
- body: JSON.stringify(body),
46
- signal: AbortSignal.timeout(timeoutMs),
47
- });
48
- if (!resp.ok) {
49
- throw new Error(`${url} → ${resp.status} ${resp.statusText}`);
50
- }
51
- return (await resp.json()) as T;
52
- }
53
-
54
- export async function login(): Promise<void> {
55
- const serverUrl = DEFAULT_SERVER_URL;
56
-
57
- console.log("Requesting device code...");
58
- const dc = await postJson<DeviceCodeResponse>(`${serverUrl}/api/v1/auth/device-code`, {});
59
-
60
- console.log(`\n Open this URL in your browser (will be opened automatically):`);
61
- console.log(` ${dc.verification_url}\n`);
62
- console.log(` Your code: ${dc.user_code}\n`);
63
-
64
- openBrowser(dc.verification_url);
65
-
66
- const deadline = Date.now() + dc.expires_in * 1000;
67
- const intervalMs = dc.interval * 1000;
68
-
69
- while (Date.now() < deadline) {
70
- await new Promise((r) => setTimeout(r, intervalMs));
71
- try {
72
- const result = await postJson<TokenResponse | { status: string }>(
73
- `${serverUrl}/api/v1/auth/device-token`,
74
- { device_code: dc.device_code },
75
- );
76
- if ("access_token" in result) {
77
- const tokens: AuthTokens = {
78
- access_token: result.access_token,
79
- refresh_token: result.refresh_token,
80
- expires_at: Math.floor(Date.now() / 1000) + result.expires_in,
81
- user_email: result.user.email,
82
- user_id: result.user.id,
83
- server_url: serverUrl,
84
- };
85
- writeTokens(tokens);
86
- console.log(`Logged in as ${result.user.email}`);
87
-
88
- // Auto-start relay daemon
89
- try {
90
- const { ensureRelayRunning } = await import("../relay/daemon");
91
- ensureRelayRunning();
92
- console.log("Relay daemon started.");
93
- } catch (e) {
94
- console.warn("Failed to auto-start relay daemon:", e);
95
- }
96
- return;
97
- }
98
- } catch {
99
- // Pending or transient error — keep polling
100
- }
101
- }
102
-
103
- throw new Error("Login timed out. Run `failproofai login` again.");
104
- }
@@ -1,50 +0,0 @@
1
- import { readTokens, clearTokens } from "./token-store";
2
- import { stopRelay } from "../relay/pid";
3
-
4
- const LOGOUT_TIMEOUT_MS = 3_000;
5
-
6
- export async function logout(): Promise<void> {
7
- const tokens = readTokens();
8
- if (!tokens) {
9
- console.log("Not logged in.");
10
- return;
11
- }
12
-
13
- // Best-effort server revoke with a short timeout — the local logout
14
- // must not block on a slow network.
15
- try {
16
- await fetch(`${tokens.server_url}/api/v1/auth/logout`, {
17
- method: "POST",
18
- headers: { "Content-Type": "application/json" },
19
- body: JSON.stringify({ refresh_token: tokens.refresh_token }),
20
- signal: AbortSignal.timeout(LOGOUT_TIMEOUT_MS),
21
- });
22
- } catch {
23
- // Network or timeout — proceed to local clear anyway
24
- }
25
-
26
- try {
27
- stopRelay();
28
- } catch {
29
- // Best-effort daemon stop
30
- }
31
-
32
- clearTokens();
33
- console.log("Logged out.");
34
- }
35
-
36
- export function whoami(): void {
37
- const tokens = readTokens();
38
- if (!tokens) {
39
- console.log("Not logged in. Run `failproofai login` to authenticate.");
40
- process.exit(1);
41
- }
42
- console.log(`Logged in as ${tokens.user_email}`);
43
- console.log(`Server: ${tokens.server_url}`);
44
- const expiresIn = tokens.expires_at - Math.floor(Date.now() / 1000);
45
- if (expiresIn > 0) {
46
- console.log(`Access token expires in ${Math.floor(expiresIn / 60)} minutes`);
47
- } else {
48
- console.log(`Access token expired (will refresh on next use)`);
49
- }
50
- }