failproofai 1.0.11 → 1.0.12-beta.1

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 (342) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +23 -23
  3. package/.next/standalone/.next/prerender-manifest.json +4 -4
  4. package/.next/standalone/.next/required-server-files.json +1 -1
  5. package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +3 -3
  6. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page.js +2 -2
  8. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.rsc +2 -2
  12. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  13. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  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/build-manifest.json +3 -3
  16. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page.js +3 -3
  18. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  19. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
  22. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  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/_tree.segment.rsc +1 -1
  25. package/.next/standalone/.next/server/app/api/audit/invite/route.js +5 -6
  26. package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/audit/run/route.js +24 -24
  28. package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/audit/status/route.js +2 -2
  30. package/.next/standalone/.next/server/app/api/audit/status/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/auth/login-request/route.js +4 -5
  32. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js +6 -7
  34. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/auth/logout/route.js +6 -7
  36. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/auth/status/route.js +5 -6
  38. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js +2 -2
  40. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/audit/page/build-manifest.json +3 -3
  42. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
  43. package/.next/standalone/.next/server/app/audit/page.js +4 -4
  44. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/index.html +1 -1
  47. package/.next/standalone/.next/server/app/index.rsc +3 -3
  48. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  49. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  50. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  51. package/.next/standalone/.next/server/app/page/build-manifest.json +3 -3
  52. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  53. package/.next/standalone/.next/server/app/page.js +2 -2
  54. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  55. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/policies/page/build-manifest.json +3 -3
  57. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +14 -14
  58. package/.next/standalone/.next/server/app/policies/page.js +7 -7
  59. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  60. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  61. package/.next/standalone/.next/server/app/project/[name]/page/build-manifest.json +3 -3
  62. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  63. package/.next/standalone/.next/server/app/project/[name]/page.js +7 -7
  64. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  65. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/build-manifest.json +3 -3
  67. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  68. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  69. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js +8 -8
  70. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  71. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/projects/page/build-manifest.json +3 -3
  73. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  74. package/.next/standalone/.next/server/app/projects/page.js +3 -3
  75. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  76. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/settings/page/build-manifest.json +3 -3
  78. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +8 -8
  79. package/.next/standalone/.next/server/app/settings/page.js +10 -10
  80. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  81. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/chunks/{[externals]__0qkp92tjfvw8r._.js → [externals]__0vt9i6fqinjne._.js} +1 -1
  83. package/.next/standalone/.next/server/chunks/[externals]__1x24dzcbbq6-g._.js +3 -0
  84. package/.next/standalone/.next/server/chunks/[root-of-the-server]__02vous7mpi2xm._.js +3 -0
  85. package/.next/standalone/.next/server/chunks/[root-of-the-server]__03i5o4a840guz._.js +3 -0
  86. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0__a_je8fsn65._.js +3 -0
  87. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_hsnj_a2mvl_._.js +3 -0
  88. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__1izwqj_ij_9x_._.js → [root-of-the-server]__0f_4g-vazrvxv._.js} +1 -1
  89. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0l-oi4gdtmlo5._.js +3 -0
  90. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0swiyzbmvja2d._.js → [root-of-the-server]__0t9ufnv5hi2hq._.js} +5 -5
  91. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wg9dk8x8bnau._.js +3 -0
  92. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12kq3x-h7t7i1._.js +3 -0
  93. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1a5zkndjwlc13._.js +3 -0
  94. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__1r7kbfkiw2xmu._.js → [root-of-the-server]__1aaw59g-5uty7._.js} +12 -12
  95. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1hqpg6vgmfexv._.js +3 -0
  96. package/.next/standalone/.next/server/chunks/_09dz7xva4ce_2._.js +1 -1
  97. package/.next/standalone/.next/server/chunks/_0hf5q4xzyg40j._.js +1 -1
  98. package/.next/standalone/.next/server/chunks/_0tovk6q0miud6._.js +1 -1
  99. package/.next/standalone/.next/server/chunks/_0trp3ycqv17cl._.js +1 -1
  100. package/.next/standalone/.next/server/chunks/_19011-u44143j._.js +1 -1
  101. package/.next/standalone/.next/server/chunks/_1ek68lnh2daur._.js +1 -1
  102. package/.next/standalone/.next/server/chunks/_1vslkoe35wok6._.js +1 -1
  103. package/.next/standalone/.next/server/chunks/{_1ixl-kxq_ctsa._.js → _1y590mjzpkbos._.js} +2 -2
  104. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4vkpxxu7._.js +1 -1
  105. package/.next/standalone/.next/server/chunks/src_hooks_0_em82s16zfym._.js +5 -0
  106. package/.next/standalone/.next/server/chunks/src_hooks_builtin-policies_ts_1yq5ybgx1v98e._.js +3 -0
  107. package/.next/standalone/.next/server/chunks/src_hooks_custom-hooks-loader_ts_0lnb3n3h94wnn._.js +1 -1
  108. package/.next/standalone/.next/server/chunks/src_hooks_daemon-client_ts_0il_yu1zc0291._.js +1 -1
  109. package/.next/standalone/.next/server/chunks/src_hooks_fp-home_ts_09kv0bn_4twyh._.js +1 -1
  110. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01j58mdcdw0vn._.js +3 -0
  111. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0588st-tpiuia._.js +3 -0
  112. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__08ch3staq3ejw._.js +1 -1
  113. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0_a8z2ldp2v3n._.js +3 -0
  114. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0vcyntk4snf0f._.js → [root-of-the-server]__0b78b0j8iyv6l._.js} +1 -1
  115. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0bigvy9xmv2ka._.js +1 -1
  116. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ffu2-38y03ic._.js +3 -0
  117. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g8b0kyorya-t._.js +3 -0
  118. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h86bl2qf0k_o._.js +1 -1
  119. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1_xbg2kx30wp-._.js → [root-of-the-server]__0naevg4bcoh54._.js} +1 -1
  120. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pia5h3p8re4c._.js +1 -1
  121. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__075uro8t92s0_._.js → [root-of-the-server]__0pwj2h2efe5f-._.js} +3 -3
  122. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0zn1d4blhd3bu._.js +3 -0
  123. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1-ey9fgesfbc0._.js +1 -1
  124. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__15usvs-ms-0hf._.js +1 -1
  125. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__16gb3_92zvk5x._.js +1 -1
  126. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__17r4zrwanhp6r._.js +3 -0
  127. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1avi2kypusyb_._.js +1 -1
  128. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1lnfv02ucky7m._.js +3 -0
  129. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1mc9-zlnh656_._.js +3 -0
  130. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1r7drlqli-ado._.js +1 -1
  131. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1s2-ck3k3rsoo._.js +3 -0
  132. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1l1qgu5mfapkh._.js → [root-of-the-server]__1vx7o8ukefudh._.js} +1 -1
  133. package/.next/standalone/.next/server/chunks/ssr/_0eoura3_9gjb-._.js +1 -1
  134. package/.next/standalone/.next/server/chunks/ssr/_0pedwblqdoh58._.js +1 -1
  135. package/.next/standalone/.next/server/chunks/ssr/_128ebxr83nk6g._.js +3 -0
  136. package/.next/standalone/.next/server/chunks/ssr/_1_ozgifqv1ssi._.js +1 -1
  137. package/.next/standalone/.next/server/chunks/ssr/{_1gb0ifpkowwub._.js → _1a3tubds7s7ow._.js} +10 -9
  138. package/.next/standalone/.next/server/chunks/ssr/_1djqs9i27e4kg._.js +1 -1
  139. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_policies_page_actions_1sp2-yo5_vm5f.js +2 -2
  140. package/.next/standalone/.next/server/chunks/ssr/app_actions_get-scheduled-audit_ts_0ei9snixb5fd-._.js +1 -1
  141. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47q0xq5w._.js +1 -1
  142. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x33jqb6._.js +1 -1
  143. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpcz0uxur._.js +1 -1
  144. package/.next/standalone/.next/server/chunks/ssr/app_settings_02tf1h47jmhhd._.js +1 -1
  145. package/.next/standalone/.next/server/chunks/ssr/{node_modules_html-to-image_es_index_1f_ymmaonkksc.js → node_modules_html-to-image_es_index_1i8oid1gc7s1f.js} +1 -1
  146. package/.next/standalone/.next/server/chunks/ssr/package_json_[json]_cjs_013tntikdft59._.js +1 -1
  147. package/.next/standalone/.next/server/chunks/ssr/src_hooks_06kzv9ddabn3_._.js +1 -1
  148. package/.next/standalone/.next/server/chunks/ssr/src_hooks_0agdmptetetdt._.js +5 -0
  149. package/.next/standalone/.next/server/chunks/ssr/src_hooks_0mdwgjisv4fub._.js +5 -0
  150. package/.next/standalone/.next/server/chunks/ssr/src_hooks_1cv9_c4l1tzrm._.js +1 -1
  151. package/.next/standalone/.next/server/chunks/ssr/src_hooks_daemon-client_ts_0k41_i7jg6ndv._.js +1 -1
  152. package/.next/standalone/.next/server/chunks/ssr/src_hooks_pack-cli_ts_0t7me658zqmh_._.js +1 -1
  153. package/.next/standalone/.next/server/middleware-build-manifest.js +23 -23
  154. package/.next/standalone/.next/server/middleware.js +2 -2
  155. package/.next/standalone/.next/server/pages/404.html +1 -1
  156. package/.next/standalone/.next/server/pages/500.html +1 -1
  157. package/.next/standalone/.next/server/preview-props.json +3 -3
  158. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  159. package/.next/standalone/.next/server/server-reference-manifest.json +23 -23
  160. package/.next/standalone/.next/static/chunks/{0frxv4_m-m2u5.js → 063al_q720fkj.js} +1 -1
  161. package/.next/standalone/.next/static/chunks/0_zfad4co-t2z.js +1 -0
  162. package/.next/standalone/.next/static/chunks/0jutamwqz8pg5.js +1 -0
  163. package/.next/standalone/.next/static/chunks/114hbolvrv94e.js +1 -0
  164. package/.next/standalone/.next/static/chunks/{37stoe-_yd852.js → 18433qz-8njv3.js} +1 -1
  165. package/.next/standalone/.next/static/chunks/{1kwj8uqxuv85t.js → 1b32-afqacaen.js} +1 -1
  166. package/.next/standalone/.next/static/chunks/{44a7k2_62qc-9.js → 1p-hsi58i-6h0.js} +2 -2
  167. package/.next/standalone/.next/static/chunks/{302llgh97ce6w.js → 2-tf6_7u623kd.js} +1 -1
  168. package/.next/standalone/.next/static/chunks/{1_c0dc7zqj1n7.js → 24w3x2da9sk49.js} +1 -1
  169. package/.next/standalone/.next/static/chunks/2tjfp9dirxnku.js +1 -0
  170. package/.next/standalone/.next/static/chunks/{16z6_d7sp61jm.js → 3-pku9qwv1yfu.js} +1 -1
  171. package/.next/standalone/.next/static/chunks/{15rm15u5a6dua.js → 42e8zab314654.js} +1 -1
  172. package/.next/standalone/fp-cloud-cli/CHANGELOG.md +41 -0
  173. package/.next/standalone/fp-cloud-cli/README.md +42 -1
  174. package/.next/standalone/fp-cloud-cli/fp_cli/client.py +117 -12
  175. package/.next/standalone/fp-cloud-cli/fp_cli/commands/fleet_cmds.py +285 -19
  176. package/.next/standalone/fp-cloud-cli/fp_cli/commands/policies_cmds.py +84 -18
  177. package/.next/standalone/fp-cloud-cli/fp_cli/enforcement.py +170 -6
  178. package/.next/standalone/fp-cloud-cli/fp_cli/models.py +89 -6
  179. package/.next/standalone/fp-cloud-cli/fp_cli/output.py +259 -21
  180. package/.next/standalone/fp-cloud-cli/fp_cli/policy_check.py +8 -5
  181. package/.next/standalone/fp-cloud-cli/skill/SKILL.md +2 -2
  182. package/.next/standalone/fp-cloud-cli/skill/references/commands.md +17 -9
  183. package/.next/standalone/fp-cloud-cli/tests/test_cloud_jev.py +692 -0
  184. package/.next/standalone/fp-cloud-cli/tests/test_enforcement_logic.py +46 -0
  185. package/.next/standalone/fp-cloud-cli/tests/test_output.py +23 -0
  186. package/.next/standalone/fp-cloud-cli/uv.lock +6 -6
  187. package/.next/standalone/hermes-plugin/README.md +6 -4
  188. package/.next/standalone/hermes-plugin/__init__.py +16 -0
  189. package/.next/standalone/hermes-plugin/client.py +5 -1
  190. package/.next/standalone/hermes-plugin/plugin.yaml +1 -1
  191. package/.next/standalone/node_modules/@next/env/package.json +1 -1
  192. package/.next/standalone/node_modules/@opentelemetry/api/build/src/api/context.js +72 -0
  193. package/.next/standalone/node_modules/@opentelemetry/api/build/src/api/diag.js +84 -0
  194. package/.next/standalone/node_modules/@opentelemetry/api/build/src/api/metrics.js +50 -0
  195. package/.next/standalone/node_modules/@opentelemetry/api/build/src/api/propagation.js +80 -0
  196. package/.next/standalone/node_modules/@opentelemetry/api/build/src/api/trace.js +70 -0
  197. package/.next/standalone/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js +52 -0
  198. package/.next/standalone/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js +44 -0
  199. package/.next/standalone/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js +12 -0
  200. package/.next/standalone/node_modules/@opentelemetry/api/build/src/baggage/utils.js +41 -0
  201. package/.next/standalone/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js +27 -0
  202. package/.next/standalone/node_modules/@opentelemetry/api/build/src/context/context.js +52 -0
  203. package/.next/standalone/node_modules/@opentelemetry/api/build/src/context-api.js +16 -0
  204. package/.next/standalone/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js +47 -0
  205. package/.next/standalone/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js +73 -0
  206. package/.next/standalone/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js +34 -0
  207. package/.next/standalone/node_modules/@opentelemetry/api/build/src/diag/types.js +33 -0
  208. package/.next/standalone/node_modules/@opentelemetry/api/build/src/diag-api.js +20 -0
  209. package/.next/standalone/node_modules/@opentelemetry/api/build/src/index.js +71 -0
  210. package/.next/standalone/node_modules/@opentelemetry/api/build/src/internal/global-utils.js +60 -0
  211. package/.next/standalone/node_modules/@opentelemetry/api/build/src/internal/semver.js +111 -0
  212. package/.next/standalone/node_modules/@opentelemetry/api/build/src/metrics/Metric.js +18 -0
  213. package/.next/standalone/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js +118 -0
  214. package/.next/standalone/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js +20 -0
  215. package/.next/standalone/node_modules/@opentelemetry/api/build/src/metrics-api.js +17 -0
  216. package/.next/standalone/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js +23 -0
  217. package/.next/standalone/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js +36 -0
  218. package/.next/standalone/node_modules/@opentelemetry/api/build/src/propagation-api.js +17 -0
  219. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js +58 -0
  220. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js +68 -0
  221. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js +21 -0
  222. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js +46 -0
  223. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js +46 -0
  224. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js +33 -0
  225. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/context-utils.js +71 -0
  226. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js +94 -0
  227. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js +35 -0
  228. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js +16 -0
  229. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js +25 -0
  230. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/span_kind.js +38 -0
  231. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js +66 -0
  232. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/status.js +29 -0
  233. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js +18 -0
  234. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace-api.js +17 -0
  235. package/.next/standalone/node_modules/@opentelemetry/api/build/src/version.js +10 -0
  236. package/.next/standalone/node_modules/@opentelemetry/api/package.json +96 -0
  237. package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  238. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +2 -2
  239. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +2 -2
  240. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +1 -1
  241. package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  242. package/.next/standalone/node_modules/next/dist/server/app-render/async-local-storage.js +1 -1
  243. package/.next/standalone/node_modules/next/dist/server/config.js +1 -1
  244. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  245. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  246. package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  247. package/.next/standalone/node_modules/next/dist/server/lib/generate-agent-files.js +3 -3
  248. package/.next/standalone/node_modules/next/dist/server/lib/router-server.js +1 -1
  249. package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  250. package/.next/standalone/node_modules/next/dist/server/lib/trace/tracer.js +1 -1
  251. package/.next/standalone/node_modules/next/dist/server/typescript/rules/config.js +2 -2
  252. package/.next/standalone/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +1 -1
  253. package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  254. package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  255. package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  256. package/.next/standalone/node_modules/next/package.json +11 -11
  257. package/.next/standalone/package.json +11 -11
  258. package/.next/standalone/sdk/python/CHANGELOG.md +7 -0
  259. package/.next/standalone/sdk/python/failproofai_sdk/_version.py +1 -1
  260. package/.next/standalone/sdk/python/pyproject.toml +19 -0
  261. package/.next/standalone/sdk/python/uv.lock +520 -301
  262. package/.next/standalone/sdk/typescript/CHANGELOG.md +13 -0
  263. package/.next/standalone/sdk/typescript/integration/fixtures/mastra-1/package-lock.json +4 -13
  264. package/.next/standalone/sdk/typescript/integration/fixtures/mastra-1/package.json +2 -1
  265. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/package-lock.json +4 -13
  266. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/package.json +3 -0
  267. package/.next/standalone/sdk/typescript/package-lock.json +178 -162
  268. package/.next/standalone/sdk/typescript/package.json +1 -1
  269. package/.next/standalone/sdk/typescript/src/version.ts +1 -1
  270. package/.next/standalone/server.js +1 -1
  271. package/bin/failproofai.mjs +17 -1
  272. package/dist/cli.mjs +2866 -1124
  273. package/dist/worker.mjs +1450 -145
  274. package/hermes-plugin/README.md +6 -4
  275. package/hermes-plugin/__init__.py +16 -0
  276. package/hermes-plugin/client.py +5 -1
  277. package/hermes-plugin/plugin.yaml +1 -1
  278. package/package.json +11 -11
  279. package/src/hooks/agent-roster.ts +172 -0
  280. package/src/hooks/agent-targets.ts +60 -0
  281. package/src/hooks/cloud-connection.ts +97 -27
  282. package/src/hooks/cloud-enrollment-cli.ts +7 -4
  283. package/src/hooks/cloud-managed-policies.ts +380 -20
  284. package/src/hooks/cloud-policy-errors.ts +481 -0
  285. package/src/hooks/config-status.ts +1 -1
  286. package/src/hooks/custom-hooks-loader.ts +26 -3
  287. package/src/hooks/daemon-client.ts +9 -4
  288. package/src/hooks/daemon-service.ts +2 -1
  289. package/src/hooks/effective-reviewers.ts +22 -1
  290. package/src/hooks/fp-home.ts +6 -0
  291. package/src/hooks/handler.ts +235 -18
  292. package/src/hooks/health-probe.ts +15 -0
  293. package/src/hooks/integrations.ts +18 -11
  294. package/src/hooks/jev-cli.ts +197 -0
  295. package/src/hooks/jev-cloud-connection.ts +92 -0
  296. package/src/hooks/manager.ts +122 -16
  297. package/src/hooks/pack-failclosed.ts +2 -0
  298. package/src/hooks/pack-manifest.ts +8 -1
  299. package/src/hooks/policy-evaluator.ts +5 -1
  300. package/src/hooks/policy-registry.ts +3 -2
  301. package/src/hooks/policy-reviewability.ts +21 -5
  302. package/src/hooks/semantic/cloud-jev-health.ts +227 -0
  303. package/src/hooks/semantic/cloud-jev.ts +677 -0
  304. package/src/hooks/semantic/jev-client.ts +18 -1
  305. package/src/hooks/semantic/jev-config.ts +173 -3
  306. package/src/hooks/semantic/jev-review.ts +129 -10
  307. package/src/hooks/semantic/pack-policies.ts +2 -1
  308. package/src/hooks/semantic/types.ts +8 -0
  309. package/src/hooks/session-pause-cli.ts +1 -1
  310. package/src/hooks/worker-server.ts +5 -1
  311. package/.next/standalone/.next/server/chunks/[externals]__0hjaw70fchx66._.js +0 -3
  312. package/.next/standalone/.next/server/chunks/[root-of-the-server]__07l68zv0hqdiu._.js +0 -3
  313. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0car70pylmvor._.js +0 -3
  314. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0u3i025_setk_._.js +0 -3
  315. package/.next/standalone/.next/server/chunks/[root-of-the-server]__10a2f6s636yc7._.js +0 -3
  316. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1qt5u58xrcuk6._.js +0 -3
  317. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_077n_4ip5__fu._.js +0 -3
  318. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_0mqvvxcn6v0op._.js +0 -3
  319. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_0pb7ds5g0vzgn._.js +0 -3
  320. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_1gasm5xkeqmm3._.js +0 -3
  321. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_1q1heqmkhh8l4._.js +0 -3
  322. package/.next/standalone/.next/server/chunks/src_hooks_1aveq0uhs2t1b._.js +0 -5
  323. package/.next/standalone/.next/server/chunks/src_hooks_1eem5a7cyqlb2._.js +0 -3
  324. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0888k4s6spfmh._.js +0 -3
  325. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0_bflu046ep5j._.js +0 -3
  326. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0_lbstb5x2t15._.js +0 -3
  327. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0fdwgktjfhedo._.js +0 -3
  328. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s4deza787asx._.js +0 -3
  329. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__18qe-hu0gwqm4._.js +0 -3
  330. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1_p_9xe520fex._.js +0 -3
  331. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1fmhm8_s9i4re._.js +0 -3
  332. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1g76awtnmimd1._.js +0 -3
  333. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1pczevlpk5lxh._.js +0 -3
  334. package/.next/standalone/.next/server/chunks/ssr/_0dc-of_bn0cim._.js +0 -3
  335. package/.next/standalone/.next/server/chunks/ssr/src_hooks_effective-reviewers_ts_1h4wtvo55j16x._.js +0 -5
  336. package/.next/standalone/.next/static/chunks/0m-tv1y6ghhtk.js +0 -1
  337. package/.next/standalone/.next/static/chunks/0ol2gj4ntfn56.js +0 -1
  338. package/.next/standalone/.next/static/chunks/3hj5_7i3nw4zj.js +0 -1
  339. package/.next/standalone/.next/static/chunks/3iyoapeoq_hup.js +0 -1
  340. /package/.next/standalone/.next/static/{kEFP3ybXwZdriNEQmWwlH → xq8UgF5yFxty1VWxY2hyn}/_buildManifest.js +0 -0
  341. /package/.next/standalone/.next/static/{kEFP3ybXwZdriNEQmWwlH → xq8UgF5yFxty1VWxY2hyn}/_clientMiddlewareManifest.js +0 -0
  342. /package/.next/standalone/.next/static/{kEFP3ybXwZdriNEQmWwlH → xq8UgF5yFxty1VWxY2hyn}/_ssgManifest.js +0 -0
@@ -141,6 +141,52 @@ def test_set_replaces_the_whole_set():
141
141
  assert plan.result[0].version == 5
142
142
 
143
143
 
144
+ def test_agent_targets_round_trip_and_survive_an_unrelated_add():
145
+ scoped = PolicyRef.from_dict({
146
+ "id": "guard", "version": 2, "effect": "enforce",
147
+ "agentTargets": [{"integration": "hermes", "instanceId": "agt_1234567890abcdef"}],
148
+ })
149
+ assert scoped.to_dict()["agentTargets"] == [
150
+ {"integration": "hermes", "instanceId": "agt_1234567890abcdef"},
151
+ ]
152
+ plan = plan_deploy("machine", current=[scoped], base=2, add=["guard@3"], latest={"guard": 3})
153
+ assert plan.result[0].agent_targets == scoped.agent_targets
154
+ assert plan.result[0].version == 3
155
+ assert scoped.version == 2
156
+
157
+
158
+ def test_target_changes_are_a_diff_and_clearing_is_explicit():
159
+ initial = ref("guard")
160
+ narrowed = plan_deploy(
161
+ "machine", current=[initial], base=1,
162
+ targets=["guard=hermes/agt_1234567890abcdef", "guard=codex"],
163
+ )
164
+ assert narrowed.changed == [(initial, narrowed.result[0])]
165
+ assert narrowed.result[0].agent_targets == [
166
+ {"integration": "hermes", "instanceId": "agt_1234567890abcdef"},
167
+ {"integration": "codex"},
168
+ ]
169
+ cleared = plan_deploy(
170
+ "machine", current=narrowed.result, base=2, all_agents=["guard"],
171
+ )
172
+ assert cleared.result[0].agent_targets is None
173
+ assert cleared.set_changes
174
+
175
+
176
+ @pytest.mark.parametrize("targets,clears", [
177
+ (["guard=stranger"], []),
178
+ (["guard=hermes/bad"], []),
179
+ (["guard=hermes", "guard=hermes"], []),
180
+ (["guard=hermes"], ["guard"]),
181
+ (["missing=codex"], []),
182
+ (["guard@1=codex"], []),
183
+ ])
184
+ def test_invalid_agent_target_request_cannot_write(targets, clears):
185
+ with pytest.raises(RefError):
186
+ plan_deploy("machine", current=[ref("guard")], base=1,
187
+ targets=targets, all_agents=clears)
188
+
189
+
144
190
  def test_set_cannot_be_mixed_with_add_or_remove():
145
191
  """"exactly these" and "these as well" have no single reading."""
146
192
  with pytest.raises(RefError, match="cannot be combined"):
@@ -1590,6 +1590,29 @@ def test_history_says_no_change_only_when_nothing_moved(capsys):
1590
1590
  assert "no change" in capsys.readouterr().out
1591
1591
 
1592
1592
 
1593
+ def test_history_keeps_gen_when_and_jev_on_an_80_column_terminal(capsys):
1594
+ """At 80 columns every no_wrap cell got shaved at once and `gen`, `when` and
1595
+ `jev` vanished — but `gen` is what `fp fleet rollback` takes."""
1596
+ _wide_stdout(80)
1597
+ pols = [{"id": f"long-policy-name-{i:02d}", "version": 1, "effect": "enforce",
1598
+ "agentTargets": [{"integration": "claude", "instanceId": "agt_" + "ab" * 16}]}
1599
+ for i in range(4)]
1600
+ entries = [{"deployment": g, "updatedAt": f"2026-08-{10 + g:02d}T13:49:00Z",
1601
+ "jevMode": "observe" if g % 2 else None, "policies": pols[:g]}
1602
+ for g in range(1, 5)]
1603
+ output.render_deployment_history("m", entries)
1604
+ out = capsys.readouterr().out
1605
+ assert max(len(ln) for ln in out.splitlines()) <= 80
1606
+ header = next(ln for ln in out.splitlines() if "change" in ln)
1607
+ for col in ("gen", "when", "jev"):
1608
+ assert col in header, (col, out)
1609
+ for g in range(1, 5):
1610
+ row = next((ln for ln in out.splitlines() if f"#{g} " in ln), None)
1611
+ assert row is not None, (g, out)
1612
+ assert f"08-{10 + g:02d} 13:49:00" in row, out
1613
+ assert ("observe" if g % 2 else "local") in row, out
1614
+
1615
+
1593
1616
  def test_clearing_a_label_is_not_reported_as_renaming_to_blank(capsys):
1594
1617
  """`fp fleet rename m ""` clears the override server-side, and the card
1595
1618
  said `labelled m as ` — a sentence with a hole in it, describing neither
@@ -36,11 +36,11 @@ wheels = [
36
36
 
37
37
  [[package]]
38
38
  name = "certifi"
39
- version = "2026.7.22"
39
+ version = "2026.10.19"
40
40
  source = { registry = "https://pypi.org/simple" }
41
- sdist = { url = "https://files.pythonhosted.org/packages/a3/c2/24167ea9858356b47a87a50d39908bfdb72ceeefe0041586e704e5376b3a/certifi-2026.7.22.tar.gz", hash = "sha256:741e2c3b351ddf169a738da9f2c048608ff7f2c5cc02f1ebc6b118bb090d5d55", size = 138112, upload-time = "2026-07-22T03:35:12.644Z" }
41
+ sdist = { url = "https://files.pythonhosted.org/packages/a6/bd/1436c50cc46699de0230fbaacc1d1de7bfec413176099949e9d5112e88f2/certifi-2026.10.19.tar.gz", hash = "sha256:035c1e85572b141bf1c3a3eff0e33a8eb74917522f2559075ff8d2fea780a1ae", size = 137598, upload-time = "2026-10-20T02:24:16.604Z" }
42
42
  wheels = [
43
- { url = "https://files.pythonhosted.org/packages/0b/a7/71ac2cff56fec219ed242bb11b8efb69fcc4bec75db06fb7bfe35de520e6/certifi-2026.7.22-py3-none-any.whl", hash = "sha256:62f22742b58a1a33014a2b6b706588a8d7e2a88ae7bd1a6ebe8c992928483775", size = 136983, upload-time = "2026-07-22T03:35:11.276Z" },
43
+ { url = "https://files.pythonhosted.org/packages/c4/51/29046e48f693c54e5b7412216d447a1d8362c9653148d98c02cdf65fa733/certifi-2026.10.19-py3-none-any.whl", hash = "sha256:42d35340cc5b9ba78e818ddbff0c5b1c2b779de448a340fd1b989f5fa8670e1b", size = 136464, upload-time = "2026-10-20T02:24:15.072Z" },
44
44
  ]
45
45
 
46
46
  [[package]]
@@ -372,7 +372,7 @@ wheels = [
372
372
 
373
373
  [[package]]
374
374
  name = "posthog"
375
- version = "7.67.0"
375
+ version = "7.71.0"
376
376
  source = { registry = "https://pypi.org/simple" }
377
377
  dependencies = [
378
378
  { name = "backoff" },
@@ -380,9 +380,9 @@ dependencies = [
380
380
  { name = "requests" },
381
381
  { name = "typing-extensions" },
382
382
  ]
383
- sdist = { url = "https://files.pythonhosted.org/packages/34/1d/bb4b6538c94b63c32bbe32a4782393ae0560d49f9517f51b04fe3e970d4a/posthog-7.67.0.tar.gz", hash = "sha256:37feb3c125f067ca077800dd986a5a9f1d264a3d92d75ca3061047c4db93565e", size = 751479, upload-time = "2026-10-09T09:33:04.975Z" }
383
+ sdist = { url = "https://files.pythonhosted.org/packages/c6/9b/12e2e82fbbf5d70f554cfd1930631a6d1cce8975721ad50b5d7b47e580ff/posthog-7.71.0.tar.gz", hash = "sha256:00950999edf7f613a90015126bacc431d3ab3964a70d91c2f792e6a0dc81f358", size = 763019, upload-time = "2026-10-16T19:24:33.765Z" }
384
384
  wheels = [
385
- { url = "https://files.pythonhosted.org/packages/8e/57/9ff310d3e7f141bc6900ad1befb493bcd48f7b7934a825f4b523c33ebc09/posthog-7.67.0-py3-none-any.whl", hash = "sha256:88ebf5810f83f338f400ab15743640548f0585075687bc9166bc2f1e3fcf036f", size = 879016, upload-time = "2026-10-09T09:33:02.916Z" },
385
+ { url = "https://files.pythonhosted.org/packages/f5/8e/9b185e665800a922e95fb965fb9c17d2a54cee575cf5e425308250663393/posthog-7.71.0-py3-none-any.whl", hash = "sha256:52cb1320b7e178b36ef7594cf15b4a8c492c24d4d1c46700f5bee0089ba5c6ac", size = 892234, upload-time = "2026-10-16T19:24:31.706Z" },
386
386
  ]
387
387
 
388
388
  [[package]]
@@ -165,23 +165,25 @@ decision, because otherwise corrupted retry state could block a turn forever.
165
165
  ## Local protocol
166
166
 
167
167
  Requests and responses use the existing length-prefixed failproofaid Unix
168
- socket protocol, version 1.
168
+ socket protocol, version 2. A v1 daemon must be upgraded before it can safely
169
+ evaluate agent/profile-scoped policies.
169
170
 
170
171
  ```json
171
172
  {
172
173
  "type": "policyEvaluation",
173
- "protocolVersion": 1,
174
+ "protocolVersion": 2,
174
175
  "integration": "hermes",
175
176
  "event": "pre_tool_call",
176
177
  "payload": {},
177
- "cwd": "/workspace/project"
178
+ "cwd": "/workspace/project",
179
+ "agentSettingsPath": "/path/to/the/hermes/profile"
178
180
  }
179
181
  ```
180
182
 
181
183
  ```json
182
184
  {
183
185
  "type": "policyResult",
184
- "protocolVersion": 1,
186
+ "protocolVersion": 2,
185
187
  "decision": "instruct",
186
188
  "policyNames": ["custom/approved-write-route"],
187
189
  "reason": "Use the approved write route.",
@@ -102,6 +102,21 @@ def _profile_name() -> str:
102
102
  return "default"
103
103
 
104
104
 
105
+ def _profile_settings_path(profile: str) -> str | None:
106
+ """Evidence of the profile running this plugin, not a transcript guess."""
107
+ configured = os.environ.get("HERMES_HOME", "").strip()
108
+ if configured:
109
+ selected = Path(configured).expanduser() / "config.yaml"
110
+ elif profile == "default":
111
+ selected = Path.home() / ".hermes" / "config.yaml"
112
+ elif re.fullmatch(r"[A-Za-z0-9._-]{1,80}", profile):
113
+ selected = Path.home() / ".hermes" / "profiles" / profile / "config.yaml"
114
+ else:
115
+ return None
116
+ # An unresolvable profile does not acquire some other profile's ID.
117
+ return str(selected.absolute()) if selected.is_file() else None
118
+
119
+
105
120
  def _string(value: object) -> str:
106
121
  return value if isinstance(value, str) else ""
107
122
 
@@ -660,6 +675,7 @@ class FailproofAIPlugin:
660
675
  event=event,
661
676
  payload=payload,
662
677
  cwd=cwd,
678
+ agent_settings_path=_profile_settings_path(self.profile),
663
679
  connect_timeout_ms=self.connect_timeout_ms,
664
680
  evaluation_timeout_ms=timeout_ms or self.evaluation_timeout_ms,
665
681
  )
@@ -11,7 +11,7 @@ from dataclasses import dataclass
11
11
  from pathlib import Path
12
12
  from typing import Any, Mapping, Sequence
13
13
 
14
- PROTOCOL_VERSION = 1
14
+ PROTOCOL_VERSION = 2
15
15
  MAX_FRAME_BYTES = 16 * 1024 * 1024
16
16
  MAX_REQUEST_BYTES = 1024 * 1024
17
17
 
@@ -75,6 +75,7 @@ def evaluate_policy(
75
75
  event: str,
76
76
  payload: Mapping[str, Any],
77
77
  cwd: str | None,
78
+ agent_settings_path: str | None = None,
78
79
  connect_timeout_ms: int = 250,
79
80
  evaluation_timeout_ms: int = 12_000,
80
81
  ) -> PolicyVerdict:
@@ -85,6 +86,9 @@ def evaluate_policy(
85
86
  "event": event,
86
87
  "payload": dict(payload),
87
88
  "cwd": cwd,
89
+ # An unknown profile is explicit. Omitting this field would let a new
90
+ # daemon's warm worker attribute the call to its own Hermes home.
91
+ "agentSettingsPath": agent_settings_path or "",
88
92
  }
89
93
  try:
90
94
  body = json.dumps(
@@ -1,5 +1,5 @@
1
1
  name: failproofai
2
- version: 1.0.11
2
+ version: 1.0.12-beta.1
3
3
  description: Real-time FailproofAI policy enforcement for Hermes
4
4
  manifest_version: 2
5
5
  api_version: 1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next/env",
3
- "version": "16.4.0",
3
+ "version": "16.4.2",
4
4
  "keywords": [
5
5
  "react",
6
6
  "next",
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright The OpenTelemetry Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ContextAPI = void 0;
8
+ const NoopContextManager_1 = require("../context/NoopContextManager");
9
+ const global_utils_1 = require("../internal/global-utils");
10
+ const diag_1 = require("./diag");
11
+ const API_NAME = 'context';
12
+ const NOOP_CONTEXT_MANAGER = new NoopContextManager_1.NoopContextManager();
13
+ /**
14
+ * Singleton object which represents the entry point to the OpenTelemetry Context API
15
+ *
16
+ * @since 1.0.0
17
+ */
18
+ class ContextAPI {
19
+ /** Empty private constructor prevents end users from constructing a new instance of the API */
20
+ constructor() { }
21
+ /** Get the singleton instance of the Context API */
22
+ static getInstance() {
23
+ if (!this._instance) {
24
+ this._instance = new ContextAPI();
25
+ }
26
+ return this._instance;
27
+ }
28
+ /**
29
+ * Set the current context manager.
30
+ *
31
+ * @returns true if the context manager was successfully registered, else false
32
+ */
33
+ setGlobalContextManager(contextManager) {
34
+ return (0, global_utils_1.registerGlobal)(API_NAME, contextManager, diag_1.DiagAPI.instance());
35
+ }
36
+ /**
37
+ * Get the currently active context
38
+ */
39
+ active() {
40
+ return this._getContextManager().active();
41
+ }
42
+ /**
43
+ * Execute a function with an active context
44
+ *
45
+ * @param context context to be active during function execution
46
+ * @param fn function to execute in a context
47
+ * @param thisArg optional receiver to be used for calling fn
48
+ * @param args optional arguments forwarded to fn
49
+ */
50
+ with(context, fn, thisArg, ...args) {
51
+ return this._getContextManager().with(context, fn, thisArg, ...args);
52
+ }
53
+ /**
54
+ * Bind a context to a target function or event emitter
55
+ *
56
+ * @param context context to bind to the event emitter or function. Defaults to the currently active context
57
+ * @param target function or event emitter to bind
58
+ */
59
+ bind(context, target) {
60
+ return this._getContextManager().bind(context, target);
61
+ }
62
+ _getContextManager() {
63
+ return (0, global_utils_1.getGlobal)(API_NAME) || NOOP_CONTEXT_MANAGER;
64
+ }
65
+ /** Disable and remove the global context manager */
66
+ disable() {
67
+ this._getContextManager().disable();
68
+ (0, global_utils_1.unregisterGlobal)(API_NAME, diag_1.DiagAPI.instance());
69
+ }
70
+ }
71
+ exports.ContextAPI = ContextAPI;
72
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright The OpenTelemetry Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DiagAPI = void 0;
8
+ const ComponentLogger_1 = require("../diag/ComponentLogger");
9
+ const logLevelLogger_1 = require("../diag/internal/logLevelLogger");
10
+ const types_1 = require("../diag/types");
11
+ const global_utils_1 = require("../internal/global-utils");
12
+ const API_NAME = 'diag';
13
+ /**
14
+ * Singleton object which represents the entry point to the OpenTelemetry internal
15
+ * diagnostic API
16
+ *
17
+ * @since 1.0.0
18
+ */
19
+ class DiagAPI {
20
+ /** Get the singleton instance of the DiagAPI API */
21
+ static instance() {
22
+ if (!this._instance) {
23
+ this._instance = new DiagAPI();
24
+ }
25
+ return this._instance;
26
+ }
27
+ /**
28
+ * Private internal constructor
29
+ * @private
30
+ */
31
+ constructor() {
32
+ function _logProxy(funcName) {
33
+ return function (...args) {
34
+ const logger = (0, global_utils_1.getGlobal)('diag');
35
+ // shortcut if logger not set
36
+ if (!logger)
37
+ return;
38
+ return logger[funcName](...args);
39
+ };
40
+ }
41
+ // Using self local variable for minification purposes as 'this' cannot be minified
42
+ const self = this;
43
+ // DiagAPI specific functions
44
+ const setLogger = (logger, optionsOrLogLevel = { logLevel: types_1.DiagLogLevel.INFO }) => {
45
+ var _a, _b, _c;
46
+ if (logger === self) {
47
+ // There isn't much we can do here.
48
+ // Logging to the console might break the user application.
49
+ // Try to log to self. If a logger was previously registered it will receive the log.
50
+ const err = new Error('Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation');
51
+ self.error((_a = err.stack) !== null && _a !== void 0 ? _a : err.message);
52
+ return false;
53
+ }
54
+ if (typeof optionsOrLogLevel === 'number') {
55
+ optionsOrLogLevel = {
56
+ logLevel: optionsOrLogLevel,
57
+ };
58
+ }
59
+ const oldLogger = (0, global_utils_1.getGlobal)('diag');
60
+ const newLogger = (0, logLevelLogger_1.createLogLevelDiagLogger)((_b = optionsOrLogLevel.logLevel) !== null && _b !== void 0 ? _b : types_1.DiagLogLevel.INFO, logger);
61
+ // There already is an logger registered. We'll let it know before overwriting it.
62
+ if (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) {
63
+ const stack = (_c = new Error().stack) !== null && _c !== void 0 ? _c : '<failed to generate stacktrace>';
64
+ oldLogger.warn(`Current logger will be overwritten from ${stack}`);
65
+ newLogger.warn(`Current logger will overwrite one already registered from ${stack}`);
66
+ }
67
+ return (0, global_utils_1.registerGlobal)('diag', newLogger, self, true);
68
+ };
69
+ self.setLogger = setLogger;
70
+ self.disable = () => {
71
+ (0, global_utils_1.unregisterGlobal)(API_NAME, self);
72
+ };
73
+ self.createComponentLogger = (options) => {
74
+ return new ComponentLogger_1.DiagComponentLogger(options);
75
+ };
76
+ self.verbose = _logProxy('verbose');
77
+ self.debug = _logProxy('debug');
78
+ self.info = _logProxy('info');
79
+ self.warn = _logProxy('warn');
80
+ self.error = _logProxy('error');
81
+ }
82
+ }
83
+ exports.DiagAPI = DiagAPI;
84
+ //# sourceMappingURL=diag.js.map
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright The OpenTelemetry Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.MetricsAPI = void 0;
8
+ const NoopMeterProvider_1 = require("../metrics/NoopMeterProvider");
9
+ const global_utils_1 = require("../internal/global-utils");
10
+ const diag_1 = require("./diag");
11
+ const API_NAME = 'metrics';
12
+ /**
13
+ * Singleton object which represents the entry point to the OpenTelemetry Metrics API
14
+ */
15
+ class MetricsAPI {
16
+ /** Empty private constructor prevents end users from constructing a new instance of the API */
17
+ constructor() { }
18
+ /** Get the singleton instance of the Metrics API */
19
+ static getInstance() {
20
+ if (!this._instance) {
21
+ this._instance = new MetricsAPI();
22
+ }
23
+ return this._instance;
24
+ }
25
+ /**
26
+ * Set the current global meter provider.
27
+ * Returns true if the meter provider was successfully registered, else false.
28
+ */
29
+ setGlobalMeterProvider(provider) {
30
+ return (0, global_utils_1.registerGlobal)(API_NAME, provider, diag_1.DiagAPI.instance());
31
+ }
32
+ /**
33
+ * Returns the global meter provider.
34
+ */
35
+ getMeterProvider() {
36
+ return (0, global_utils_1.getGlobal)(API_NAME) || NoopMeterProvider_1.NOOP_METER_PROVIDER;
37
+ }
38
+ /**
39
+ * Returns a meter from the global meter provider.
40
+ */
41
+ getMeter(name, version, options) {
42
+ return this.getMeterProvider().getMeter(name, version, options);
43
+ }
44
+ /** Remove the global meter provider */
45
+ disable() {
46
+ (0, global_utils_1.unregisterGlobal)(API_NAME, diag_1.DiagAPI.instance());
47
+ }
48
+ }
49
+ exports.MetricsAPI = MetricsAPI;
50
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright The OpenTelemetry Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.PropagationAPI = void 0;
8
+ const global_utils_1 = require("../internal/global-utils");
9
+ const NoopTextMapPropagator_1 = require("../propagation/NoopTextMapPropagator");
10
+ const TextMapPropagator_1 = require("../propagation/TextMapPropagator");
11
+ const context_helpers_1 = require("../baggage/context-helpers");
12
+ const utils_1 = require("../baggage/utils");
13
+ const diag_1 = require("./diag");
14
+ const API_NAME = 'propagation';
15
+ const NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator_1.NoopTextMapPropagator();
16
+ /**
17
+ * Singleton object which represents the entry point to the OpenTelemetry Propagation API
18
+ *
19
+ * @since 1.0.0
20
+ */
21
+ class PropagationAPI {
22
+ /** Empty private constructor prevents end users from constructing a new instance of the API */
23
+ constructor() {
24
+ this.createBaggage = utils_1.createBaggage;
25
+ this.getBaggage = context_helpers_1.getBaggage;
26
+ this.getActiveBaggage = context_helpers_1.getActiveBaggage;
27
+ this.setBaggage = context_helpers_1.setBaggage;
28
+ this.deleteBaggage = context_helpers_1.deleteBaggage;
29
+ }
30
+ /** Get the singleton instance of the Propagator API */
31
+ static getInstance() {
32
+ if (!this._instance) {
33
+ this._instance = new PropagationAPI();
34
+ }
35
+ return this._instance;
36
+ }
37
+ /**
38
+ * Set the current propagator.
39
+ *
40
+ * @returns true if the propagator was successfully registered, else false
41
+ */
42
+ setGlobalPropagator(propagator) {
43
+ return (0, global_utils_1.registerGlobal)(API_NAME, propagator, diag_1.DiagAPI.instance());
44
+ }
45
+ /**
46
+ * Inject context into a carrier to be propagated inter-process
47
+ *
48
+ * @param context Context carrying tracing data to inject
49
+ * @param carrier carrier to inject context into
50
+ * @param setter Function used to set values on the carrier
51
+ */
52
+ inject(context, carrier, setter = TextMapPropagator_1.defaultTextMapSetter) {
53
+ return this._getGlobalPropagator().inject(context, carrier, setter);
54
+ }
55
+ /**
56
+ * Extract context from a carrier
57
+ *
58
+ * @param context Context which the newly created context will inherit from
59
+ * @param carrier Carrier to extract context from
60
+ * @param getter Function used to extract keys from a carrier
61
+ */
62
+ extract(context, carrier, getter = TextMapPropagator_1.defaultTextMapGetter) {
63
+ return this._getGlobalPropagator().extract(context, carrier, getter);
64
+ }
65
+ /**
66
+ * Return a list of all fields which may be used by the propagator.
67
+ */
68
+ fields() {
69
+ return this._getGlobalPropagator().fields();
70
+ }
71
+ /** Remove the global propagator */
72
+ disable() {
73
+ (0, global_utils_1.unregisterGlobal)(API_NAME, diag_1.DiagAPI.instance());
74
+ }
75
+ _getGlobalPropagator() {
76
+ return (0, global_utils_1.getGlobal)(API_NAME) || NOOP_TEXT_MAP_PROPAGATOR;
77
+ }
78
+ }
79
+ exports.PropagationAPI = PropagationAPI;
80
+ //# sourceMappingURL=propagation.js.map
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright The OpenTelemetry Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.TraceAPI = void 0;
8
+ const global_utils_1 = require("../internal/global-utils");
9
+ const ProxyTracerProvider_1 = require("../trace/ProxyTracerProvider");
10
+ const spancontext_utils_1 = require("../trace/spancontext-utils");
11
+ const context_utils_1 = require("../trace/context-utils");
12
+ const diag_1 = require("./diag");
13
+ const API_NAME = 'trace';
14
+ /**
15
+ * Singleton object which represents the entry point to the OpenTelemetry Tracing API
16
+ *
17
+ * @since 1.0.0
18
+ */
19
+ class TraceAPI {
20
+ /** Empty private constructor prevents end users from constructing a new instance of the API */
21
+ constructor() {
22
+ this._proxyTracerProvider = new ProxyTracerProvider_1.ProxyTracerProvider();
23
+ this.wrapSpanContext = spancontext_utils_1.wrapSpanContext;
24
+ this.isSpanContextValid = spancontext_utils_1.isSpanContextValid;
25
+ this.deleteSpan = context_utils_1.deleteSpan;
26
+ this.getSpan = context_utils_1.getSpan;
27
+ this.getActiveSpan = context_utils_1.getActiveSpan;
28
+ this.getSpanContext = context_utils_1.getSpanContext;
29
+ this.setSpan = context_utils_1.setSpan;
30
+ this.setSpanContext = context_utils_1.setSpanContext;
31
+ }
32
+ /** Get the singleton instance of the Trace API */
33
+ static getInstance() {
34
+ if (!this._instance) {
35
+ this._instance = new TraceAPI();
36
+ }
37
+ return this._instance;
38
+ }
39
+ /**
40
+ * Set the current global tracer.
41
+ *
42
+ * @returns true if the tracer provider was successfully registered, else false
43
+ */
44
+ setGlobalTracerProvider(provider) {
45
+ const success = (0, global_utils_1.registerGlobal)(API_NAME, this._proxyTracerProvider, diag_1.DiagAPI.instance());
46
+ if (success) {
47
+ this._proxyTracerProvider.setDelegate(provider);
48
+ }
49
+ return success;
50
+ }
51
+ /**
52
+ * Returns the global tracer provider.
53
+ */
54
+ getTracerProvider() {
55
+ return (0, global_utils_1.getGlobal)(API_NAME) || this._proxyTracerProvider;
56
+ }
57
+ /**
58
+ * Returns a tracer from the global tracer provider.
59
+ */
60
+ getTracer(name, version) {
61
+ return this.getTracerProvider().getTracer(name, version);
62
+ }
63
+ /** Remove the global tracer provider */
64
+ disable() {
65
+ (0, global_utils_1.unregisterGlobal)(API_NAME, diag_1.DiagAPI.instance());
66
+ this._proxyTracerProvider = new ProxyTracerProvider_1.ProxyTracerProvider();
67
+ }
68
+ }
69
+ exports.TraceAPI = TraceAPI;
70
+ //# sourceMappingURL=trace.js.map
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright The OpenTelemetry Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.deleteBaggage = exports.setBaggage = exports.getActiveBaggage = exports.getBaggage = void 0;
8
+ const context_1 = require("../api/context");
9
+ const context_2 = require("../context/context");
10
+ /**
11
+ * Baggage key
12
+ */
13
+ const BAGGAGE_KEY = (0, context_2.createContextKey)('OpenTelemetry Baggage Key');
14
+ /**
15
+ * Retrieve the current baggage from the given context
16
+ *
17
+ * @param {Context} Context that manage all context values
18
+ * @returns {Baggage} Extracted baggage from the context
19
+ */
20
+ function getBaggage(context) {
21
+ return context.getValue(BAGGAGE_KEY) || undefined;
22
+ }
23
+ exports.getBaggage = getBaggage;
24
+ /**
25
+ * Retrieve the current baggage from the active/current context
26
+ *
27
+ * @returns {Baggage} Extracted baggage from the context
28
+ */
29
+ function getActiveBaggage() {
30
+ return getBaggage(context_1.ContextAPI.getInstance().active());
31
+ }
32
+ exports.getActiveBaggage = getActiveBaggage;
33
+ /**
34
+ * Store a baggage in the given context
35
+ *
36
+ * @param {Context} Context that manage all context values
37
+ * @param {Baggage} baggage that will be set in the actual context
38
+ */
39
+ function setBaggage(context, baggage) {
40
+ return context.setValue(BAGGAGE_KEY, baggage);
41
+ }
42
+ exports.setBaggage = setBaggage;
43
+ /**
44
+ * Delete the baggage stored in the given context
45
+ *
46
+ * @param {Context} Context that manage all context values
47
+ */
48
+ function deleteBaggage(context) {
49
+ return context.deleteValue(BAGGAGE_KEY);
50
+ }
51
+ exports.deleteBaggage = deleteBaggage;
52
+ //# sourceMappingURL=context-helpers.js.map