ciris-agent 1.7.7__py3-none-any.whl

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 (986) hide show
  1. ciris_adapters/README.md +113 -0
  2. ciris_adapters/__init__.py +30 -0
  3. ciris_adapters/ciris_covenant_metrics/README.md +144 -0
  4. ciris_adapters/ciris_covenant_metrics/__init__.py +36 -0
  5. ciris_adapters/ciris_covenant_metrics/adapter.py +249 -0
  6. ciris_adapters/ciris_covenant_metrics/manifest.json +152 -0
  7. ciris_adapters/ciris_covenant_metrics/services.py +403 -0
  8. ciris_adapters/ciris_hosted_tools/__init__.py +24 -0
  9. ciris_adapters/ciris_hosted_tools/adapter.py +169 -0
  10. ciris_adapters/ciris_hosted_tools/manifest.json +94 -0
  11. ciris_adapters/ciris_hosted_tools/services.py +744 -0
  12. ciris_adapters/external_data_sql/README.md +559 -0
  13. ciris_adapters/external_data_sql/__init__.py +43 -0
  14. ciris_adapters/external_data_sql/adapter.py +144 -0
  15. ciris_adapters/external_data_sql/configurable.py +315 -0
  16. ciris_adapters/external_data_sql/dialects/__init__.py +37 -0
  17. ciris_adapters/external_data_sql/dialects/base.py +133 -0
  18. ciris_adapters/external_data_sql/dialects/mysql.py +63 -0
  19. ciris_adapters/external_data_sql/dialects/postgresql.py +59 -0
  20. ciris_adapters/external_data_sql/dialects/sqlite.py +62 -0
  21. ciris_adapters/external_data_sql/example_config.json +88 -0
  22. ciris_adapters/external_data_sql/example_privacy_schema.yaml +127 -0
  23. ciris_adapters/external_data_sql/manifest.json +195 -0
  24. ciris_adapters/external_data_sql/privacy_schema_loader.py +189 -0
  25. ciris_adapters/external_data_sql/protocol.py +101 -0
  26. ciris_adapters/external_data_sql/schemas.py +146 -0
  27. ciris_adapters/external_data_sql/service.py +1547 -0
  28. ciris_adapters/external_data_sql/service_old.py +492 -0
  29. ciris_adapters/home_assistant/__init__.py +63 -0
  30. ciris_adapters/home_assistant/adapter.py +201 -0
  31. ciris_adapters/home_assistant/communication_service.py +347 -0
  32. ciris_adapters/home_assistant/configurable.py +667 -0
  33. ciris_adapters/home_assistant/manifest.json +203 -0
  34. ciris_adapters/home_assistant/schemas.py +129 -0
  35. ciris_adapters/home_assistant/service.py +751 -0
  36. ciris_adapters/home_assistant/tool_service.py +441 -0
  37. ciris_adapters/mcp_client/__init__.py +82 -0
  38. ciris_adapters/mcp_client/adapter.py +847 -0
  39. ciris_adapters/mcp_client/config.py +280 -0
  40. ciris_adapters/mcp_client/configurable.py +422 -0
  41. ciris_adapters/mcp_client/manifest.json +185 -0
  42. ciris_adapters/mcp_client/mcp_communication_service.py +393 -0
  43. ciris_adapters/mcp_client/mcp_tool_service.py +463 -0
  44. ciris_adapters/mcp_client/mcp_wise_service.py +394 -0
  45. ciris_adapters/mcp_client/schemas.py +149 -0
  46. ciris_adapters/mcp_client/security.py +592 -0
  47. ciris_adapters/mcp_common/__init__.py +44 -0
  48. ciris_adapters/mcp_common/manifest.json +25 -0
  49. ciris_adapters/mcp_common/protocol.py +315 -0
  50. ciris_adapters/mcp_common/schemas.py +225 -0
  51. ciris_adapters/mcp_server/__init__.py +47 -0
  52. ciris_adapters/mcp_server/adapter.py +581 -0
  53. ciris_adapters/mcp_server/config.py +260 -0
  54. ciris_adapters/mcp_server/configurable.py +393 -0
  55. ciris_adapters/mcp_server/handlers.py +663 -0
  56. ciris_adapters/mcp_server/manifest.json +211 -0
  57. ciris_adapters/mcp_server/security.py +500 -0
  58. ciris_adapters/mock_llm/README.md +117 -0
  59. ciris_adapters/mock_llm/__init__.py +21 -0
  60. ciris_adapters/mock_llm/adapter.py +131 -0
  61. ciris_adapters/mock_llm/configurable.py +237 -0
  62. ciris_adapters/mock_llm/manifest.json +106 -0
  63. ciris_adapters/mock_llm/protocol.py +37 -0
  64. ciris_adapters/mock_llm/responses.py +520 -0
  65. ciris_adapters/mock_llm/responses_action_selection.py +1041 -0
  66. ciris_adapters/mock_llm/responses_epistemic.py +17 -0
  67. ciris_adapters/mock_llm/responses_feedback.py +27 -0
  68. ciris_adapters/mock_llm/schemas.py +35 -0
  69. ciris_adapters/mock_llm/service.py +294 -0
  70. ciris_adapters/navigation/__init__.py +21 -0
  71. ciris_adapters/navigation/adapter.py +129 -0
  72. ciris_adapters/navigation/configurable.py +239 -0
  73. ciris_adapters/navigation/manifest.json +104 -0
  74. ciris_adapters/navigation/service.py +487 -0
  75. ciris_adapters/reddit/README.md +132 -0
  76. ciris_adapters/reddit/REDDIT_ADAPTER_ANALYSIS.md +715 -0
  77. ciris_adapters/reddit/REDDIT_ADAPTER_SUMMARY.txt +278 -0
  78. ciris_adapters/reddit/REDDIT_ANALYSIS_INDEX.md +307 -0
  79. ciris_adapters/reddit/REDDIT_PRODUCTION_READINESS_PLAN.md +518 -0
  80. ciris_adapters/reddit/__init__.py +15 -0
  81. ciris_adapters/reddit/adapter.py +189 -0
  82. ciris_adapters/reddit/configurable.py +274 -0
  83. ciris_adapters/reddit/error_handler.py +307 -0
  84. ciris_adapters/reddit/manifest.json +218 -0
  85. ciris_adapters/reddit/observer.py +532 -0
  86. ciris_adapters/reddit/protocol.py +34 -0
  87. ciris_adapters/reddit/schemas.py +433 -0
  88. ciris_adapters/reddit/service.py +1471 -0
  89. ciris_adapters/sample_adapter/README.md +474 -0
  90. ciris_adapters/sample_adapter/__init__.py +45 -0
  91. ciris_adapters/sample_adapter/adapter.py +208 -0
  92. ciris_adapters/sample_adapter/configurable.py +469 -0
  93. ciris_adapters/sample_adapter/manifest.json +247 -0
  94. ciris_adapters/sample_adapter/services.py +486 -0
  95. ciris_adapters/weather/__init__.py +16 -0
  96. ciris_adapters/weather/adapter.py +130 -0
  97. ciris_adapters/weather/configurable.py +240 -0
  98. ciris_adapters/weather/manifest.json +156 -0
  99. ciris_adapters/weather/service.py +600 -0
  100. ciris_agent-1.7.7.dist-info/METADATA +284 -0
  101. ciris_agent-1.7.7.dist-info/RECORD +986 -0
  102. ciris_agent-1.7.7.dist-info/WHEEL +5 -0
  103. ciris_agent-1.7.7.dist-info/entry_points.txt +15 -0
  104. ciris_agent-1.7.7.dist-info/licenses/LICENSE +205 -0
  105. ciris_agent-1.7.7.dist-info/licenses/NOTICE +82 -0
  106. ciris_agent-1.7.7.dist-info/top_level.txt +4 -0
  107. ciris_engine/__init__.py +15 -0
  108. ciris_engine/ciris_templates/ally.yaml +632 -0
  109. ciris_engine/ciris_templates/default.yaml +411 -0
  110. ciris_engine/ciris_templates/echo-core.yaml +629 -0
  111. ciris_engine/ciris_templates/echo-speculative.yaml +764 -0
  112. ciris_engine/ciris_templates/echo.yaml +647 -0
  113. ciris_engine/ciris_templates/sage.yaml +332 -0
  114. ciris_engine/ciris_templates/scout.yaml +338 -0
  115. ciris_engine/ciris_templates/test.yaml +168 -0
  116. ciris_engine/cli.py +42 -0
  117. ciris_engine/config/CIRIS_SERVICES.json +19 -0
  118. ciris_engine/config/MODEL_CAPABILITIES.json +419 -0
  119. ciris_engine/config/PRICING_DATA.json +179 -0
  120. ciris_engine/config/__init__.py +50 -0
  121. ciris_engine/config/ciris_services.py +113 -0
  122. ciris_engine/config/model_capabilities.py +388 -0
  123. ciris_engine/config/pricing_models.py +276 -0
  124. ciris_engine/constants.py +35 -0
  125. ciris_engine/data/__init__.py +1 -0
  126. ciris_engine/data/covenant_1.0b.txt +978 -0
  127. ciris_engine/gui_static/11steps.svg +107 -0
  128. ciris_engine/gui_static/2x-schematics.png +0 -0
  129. ciris_engine/gui_static/404/index.html +1 -0
  130. ciris_engine/gui_static/404.html +1 -0
  131. ciris_engine/gui_static/_next/static/0edhkwDxd5UccTsCmtaBi/_buildManifest.js +1 -0
  132. ciris_engine/gui_static/_next/static/0edhkwDxd5UccTsCmtaBi/_ssgManifest.js +1 -0
  133. ciris_engine/gui_static/_next/static/U-3xTQao7hc2wnAi-Uekm/_buildManifest.js +1 -0
  134. ciris_engine/gui_static/_next/static/U-3xTQao7hc2wnAi-Uekm/_ssgManifest.js +1 -0
  135. ciris_engine/gui_static/_next/static/chunks/3297-60e86ba0f8a7b040.js +1 -0
  136. ciris_engine/gui_static/_next/static/chunks/3835-2aad4b7f5f8e4643.js +1 -0
  137. ciris_engine/gui_static/_next/static/chunks/4499-99a0bc47de0b8975.js +1 -0
  138. ciris_engine/gui_static/_next/static/chunks/4534-af88cd4ba6e99bff.js +1 -0
  139. ciris_engine/gui_static/_next/static/chunks/4541-84b455f9e0dc4cfe.js +1 -0
  140. ciris_engine/gui_static/_next/static/chunks/4789-61412711484754bb.js +1 -0
  141. ciris_engine/gui_static/_next/static/chunks/6539-c6398bc9d7018430.js +1 -0
  142. ciris_engine/gui_static/_next/static/chunks/704-8e827b26cc8c2d32.js +1 -0
  143. ciris_engine/gui_static/_next/static/chunks/704-fb45d630f3192c6f.js +1 -0
  144. ciris_engine/gui_static/_next/static/chunks/8072-de4952a2e6d2b33f.js +1 -0
  145. ciris_engine/gui_static/_next/static/chunks/8315-b91d03a3949db0af.js +1 -0
  146. ciris_engine/gui_static/_next/static/chunks/8386-f93a83ccbd789bd9.js +1 -0
  147. ciris_engine/gui_static/_next/static/chunks/87c73c54-781a7f35148d5433.js +1 -0
  148. ciris_engine/gui_static/_next/static/chunks/8903-fefea3339a02d41b.js +1 -0
  149. ciris_engine/gui_static/_next/static/chunks/9090-e66485adf8d9d990.js +1 -0
  150. ciris_engine/gui_static/_next/static/chunks/app/_not-found/page-a67d9808462c23b1.js +1 -0
  151. ciris_engine/gui_static/_next/static/chunks/app/account/api-keys/page-2d7ee1583bbbd02e.js +1 -0
  152. ciris_engine/gui_static/_next/static/chunks/app/account/api-keys/page-6a3c2bae6fe92b7b.js +1 -0
  153. ciris_engine/gui_static/_next/static/chunks/app/account/consent/page-2ed3a035136bc4e8.js +1 -0
  154. ciris_engine/gui_static/_next/static/chunks/app/account/consent/page-b2f5c91844a32422.js +1 -0
  155. ciris_engine/gui_static/_next/static/chunks/app/account/page-25b90f89af3ea58c.js +1 -0
  156. ciris_engine/gui_static/_next/static/chunks/app/account/page-b65d16c94ecaf69c.js +1 -0
  157. ciris_engine/gui_static/_next/static/chunks/app/account/privacy/page-675b6d05c8f9184f.js +1 -0
  158. ciris_engine/gui_static/_next/static/chunks/app/account/privacy/page-cbee2e1c8ab52145.js +1 -0
  159. ciris_engine/gui_static/_next/static/chunks/app/account/settings/page-0f44da06697cf9f0.js +1 -0
  160. ciris_engine/gui_static/_next/static/chunks/app/account/settings/page-563420253577edbf.js +1 -0
  161. ciris_engine/gui_static/_next/static/chunks/app/adapters/page-1854631018bc32be.js +1 -0
  162. ciris_engine/gui_static/_next/static/chunks/app/agents/page-8353752c176a7c70.js +1 -0
  163. ciris_engine/gui_static/_next/static/chunks/app/agents/page-f61a529f110a6040.js +1 -0
  164. ciris_engine/gui_static/_next/static/chunks/app/api-demo/page-7f19b9d20d39be28.js +1 -0
  165. ciris_engine/gui_static/_next/static/chunks/app/api-demo/page-d1063938f249b8bd.js +1 -0
  166. ciris_engine/gui_static/_next/static/chunks/app/audit/page-321b6728b8fff0bb.js +1 -0
  167. ciris_engine/gui_static/_next/static/chunks/app/audit/page-ebac35ca961a1277.js +1 -0
  168. ciris_engine/gui_static/_next/static/chunks/app/billing/page-6f3dc3bd02924f8e.js +1 -0
  169. ciris_engine/gui_static/_next/static/chunks/app/billing/page-fa4a469f814c821a.js +1 -0
  170. ciris_engine/gui_static/_next/static/chunks/app/comms/page-0d4f734269addd8f.js +1 -0
  171. ciris_engine/gui_static/_next/static/chunks/app/comms/page-79227d426050089c.js +1 -0
  172. ciris_engine/gui_static/_next/static/chunks/app/config/page-018d21d683b6e5bc.js +1 -0
  173. ciris_engine/gui_static/_next/static/chunks/app/config/page-2aa5a5363ca2a371.js +1 -0
  174. ciris_engine/gui_static/_next/static/chunks/app/consent/page-198373205fd316e2.js +1 -0
  175. ciris_engine/gui_static/_next/static/chunks/app/consent/page-f2ca39e7713b13f8.js +1 -0
  176. ciris_engine/gui_static/_next/static/chunks/app/dashboard/page-1dd5a196f643c60d.js +1 -0
  177. ciris_engine/gui_static/_next/static/chunks/app/dashboard/page-530a04d3abbb8cda.js +1 -0
  178. ciris_engine/gui_static/_next/static/chunks/app/docs/page-3193b06d094ab654.js +1 -0
  179. ciris_engine/gui_static/_next/static/chunks/app/docs/page-330e996dedb87aba.js +1 -0
  180. ciris_engine/gui_static/_next/static/chunks/app/layout-0a70f5fc460298b1.js +1 -0
  181. ciris_engine/gui_static/_next/static/chunks/app/layout-21f2f99dd5b336e9.js +1 -0
  182. ciris_engine/gui_static/_next/static/chunks/app/login/page-33240e6c6034a49d.js +1 -0
  183. ciris_engine/gui_static/_next/static/chunks/app/login/page-68ffab6d54a7fdcd.js +1 -0
  184. ciris_engine/gui_static/_next/static/chunks/app/logs/page-8a6167aecc4a475c.js +1 -0
  185. ciris_engine/gui_static/_next/static/chunks/app/memory/page-9ca8c5d0056de3ff.js +1 -0
  186. ciris_engine/gui_static/_next/static/chunks/app/memory/page-e961226941c18f81.js +1 -0
  187. ciris_engine/gui_static/_next/static/chunks/app/page-6fdb065a787a4974.js +1 -0
  188. ciris_engine/gui_static/_next/static/chunks/app/page-89f87d431be6064a.js +1 -0
  189. ciris_engine/gui_static/_next/static/chunks/app/runtime/page-2e728b9c43aa164d.js +1 -0
  190. ciris_engine/gui_static/_next/static/chunks/app/runtime/page-c7dd033dc40a72f0.js +1 -0
  191. ciris_engine/gui_static/_next/static/chunks/app/services/page-ae9f0bdf11d01a95.js +1 -0
  192. ciris_engine/gui_static/_next/static/chunks/app/services/page-b10feb79ca5d75e5.js +1 -0
  193. ciris_engine/gui_static/_next/static/chunks/app/sessions/page-13ebe7ef1c16ae11.js +1 -0
  194. ciris_engine/gui_static/_next/static/chunks/app/sessions/page-e6c82b16d617f785.js +1 -0
  195. ciris_engine/gui_static/_next/static/chunks/app/setup/page-0beb5f5b5a5c20fc.js +1 -0
  196. ciris_engine/gui_static/_next/static/chunks/app/setup/page-2595e729eae30c0e.js +1 -0
  197. ciris_engine/gui_static/_next/static/chunks/app/status-dashboard/page-1037c987aecc3653.js +1 -0
  198. ciris_engine/gui_static/_next/static/chunks/app/status-dashboard/page-2ffd147f6d3162ff.js +1 -0
  199. ciris_engine/gui_static/_next/static/chunks/app/system/page-2c5798d58cafcd91.js +1 -0
  200. ciris_engine/gui_static/_next/static/chunks/app/system/page-505b1ba4eceb01c3.js +1 -0
  201. ciris_engine/gui_static/_next/static/chunks/app/test-auth/page-b0cad31d5cb1b2fa.js +1 -0
  202. ciris_engine/gui_static/_next/static/chunks/app/test-auth/page-f3ecd7a8012df230.js +1 -0
  203. ciris_engine/gui_static/_next/static/chunks/app/test-login/page-f35117fdc4105801.js +1 -0
  204. ciris_engine/gui_static/_next/static/chunks/app/test-login/page-fb583a7924114906.js +1 -0
  205. ciris_engine/gui_static/_next/static/chunks/app/test-sdk/page-50f116fd76935563.js +1 -0
  206. ciris_engine/gui_static/_next/static/chunks/app/test-sdk/page-c37d8aa5ba623a44.js +1 -0
  207. ciris_engine/gui_static/_next/static/chunks/app/tools/page-429aec7a707777ef.js +1 -0
  208. ciris_engine/gui_static/_next/static/chunks/app/tools/page-5f705aad60e0c04e.js +1 -0
  209. ciris_engine/gui_static/_next/static/chunks/app/users/page-13476b8b0f3808cc.js +1 -0
  210. ciris_engine/gui_static/_next/static/chunks/app/users/page-7e500d154ed5bba4.js +1 -0
  211. ciris_engine/gui_static/_next/static/chunks/app/wa/page-cc4a9d8a5cb44d08.js +1 -0
  212. ciris_engine/gui_static/_next/static/chunks/app/wa/page-ec3e429efbc79230.js +1 -0
  213. ciris_engine/gui_static/_next/static/chunks/framework-9d29490f5ba089ba.js +1 -0
  214. ciris_engine/gui_static/_next/static/chunks/main-1f554952e47a82c4.js +1 -0
  215. ciris_engine/gui_static/_next/static/chunks/main-app-26fa8aed029082e5.js +1 -0
  216. ciris_engine/gui_static/_next/static/chunks/main-app-97b0486ef6bcef25.js +1 -0
  217. ciris_engine/gui_static/_next/static/chunks/pages/_app-6ce685456e616eb2.js +1 -0
  218. ciris_engine/gui_static/_next/static/chunks/pages/_error-d4bce98d93fe21e7.js +1 -0
  219. ciris_engine/gui_static/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  220. ciris_engine/gui_static/_next/static/chunks/webpack-fcebd240b7f8477d.js +1 -0
  221. ciris_engine/gui_static/_next/static/css/16b94b1fe0cc6e37.css +3 -0
  222. ciris_engine/gui_static/_next/static/css/77a24ceaae86deff.css +3 -0
  223. ciris_engine/gui_static/_next/static/media/4cf2300e9c8272f7-s.p.woff2 +0 -0
  224. ciris_engine/gui_static/_next/static/media/747892c23ea88013-s.woff2 +0 -0
  225. ciris_engine/gui_static/_next/static/media/8d697b304b401681-s.woff2 +0 -0
  226. ciris_engine/gui_static/_next/static/media/93f479601ee12b01-s.p.woff2 +0 -0
  227. ciris_engine/gui_static/_next/static/media/9610d9e46709d722-s.woff2 +0 -0
  228. ciris_engine/gui_static/_next/static/media/ba015fad6dcf6784-s.woff2 +0 -0
  229. ciris_engine/gui_static/_next/static/media/d8298875641ec7d4-s.p.woff2 +0 -0
  230. ciris_engine/gui_static/account/api-keys/index.html +1 -0
  231. ciris_engine/gui_static/account/api-keys/index.txt +27 -0
  232. ciris_engine/gui_static/account/consent/index.html +1 -0
  233. ciris_engine/gui_static/account/consent/index.txt +27 -0
  234. ciris_engine/gui_static/account/index.html +1 -0
  235. ciris_engine/gui_static/account/index.txt +27 -0
  236. ciris_engine/gui_static/account/privacy/index.html +1 -0
  237. ciris_engine/gui_static/account/privacy/index.txt +27 -0
  238. ciris_engine/gui_static/account/settings/index.html +1 -0
  239. ciris_engine/gui_static/account/settings/index.txt +27 -0
  240. ciris_engine/gui_static/adapters/index.html +1 -0
  241. ciris_engine/gui_static/adapters/index.txt +27 -0
  242. ciris_engine/gui_static/agents/index.html +1 -0
  243. ciris_engine/gui_static/agents/index.txt +27 -0
  244. ciris_engine/gui_static/andrew-roberts-euBRXcx57T4-unsplash.jpg +0 -0
  245. ciris_engine/gui_static/api-demo/index.html +1 -0
  246. ciris_engine/gui_static/api-demo/index.txt +27 -0
  247. ciris_engine/gui_static/audit/index.html +1 -0
  248. ciris_engine/gui_static/audit/index.txt +27 -0
  249. ciris_engine/gui_static/billing/index.html +1 -0
  250. ciris_engine/gui_static/billing/index.txt +27 -0
  251. ciris_engine/gui_static/blurryinfo.png +0 -0
  252. ciris_engine/gui_static/chip-vincent-PkQDwfl9Flc-unsplash.jpg +0 -0
  253. ciris_engine/gui_static/ciris-architecture.svg +338 -0
  254. ciris_engine/gui_static/comms/index.html +1 -0
  255. ciris_engine/gui_static/comms/index.txt +27 -0
  256. ciris_engine/gui_static/config/index.html +1 -0
  257. ciris_engine/gui_static/config/index.txt +27 -0
  258. ciris_engine/gui_static/consent/index.html +1 -0
  259. ciris_engine/gui_static/consent/index.txt +27 -0
  260. ciris_engine/gui_static/dashboard/index.html +1 -0
  261. ciris_engine/gui_static/dashboard/index.txt +27 -0
  262. ciris_engine/gui_static/docs/index.html +1 -0
  263. ciris_engine/gui_static/docs/index.txt +27 -0
  264. ciris_engine/gui_static/eric.png +0 -0
  265. ciris_engine/gui_static/file.svg +1 -0
  266. ciris_engine/gui_static/globe.svg +1 -0
  267. ciris_engine/gui_static/index.html +1 -0
  268. ciris_engine/gui_static/index.txt +27 -0
  269. ciris_engine/gui_static/infogfx-1@2x.png +0 -0
  270. ciris_engine/gui_static/infogfx-2.png +0 -0
  271. ciris_engine/gui_static/infogfx-dark-1.png +0 -0
  272. ciris_engine/gui_static/kelly-vohs-soSTXmIxTDU-unsplash.jpg +0 -0
  273. ciris_engine/gui_static/login/index.html +1 -0
  274. ciris_engine/gui_static/login/index.txt +27 -0
  275. ciris_engine/gui_static/logs/index.html +1 -0
  276. ciris_engine/gui_static/logs/index.txt +27 -0
  277. ciris_engine/gui_static/memory/index.html +1 -0
  278. ciris_engine/gui_static/memory/index.txt +27 -0
  279. ciris_engine/gui_static/nathan-farrish-ArcTfEoBgzs-unsplash.jpg +0 -0
  280. ciris_engine/gui_static/next.svg +1 -0
  281. ciris_engine/gui_static/overview.svg +512 -0
  282. ciris_engine/gui_static/overview1.svg +407 -0
  283. ciris_engine/gui_static/overview2.svg +370 -0
  284. ciris_engine/gui_static/pipeline-visualization.svg +278 -0
  285. ciris_engine/gui_static/privacy-policy.html +160 -0
  286. ciris_engine/gui_static/runtime/index.html +8 -0
  287. ciris_engine/gui_static/runtime/index.txt +27 -0
  288. ciris_engine/gui_static/services/index.html +1 -0
  289. ciris_engine/gui_static/services/index.txt +27 -0
  290. ciris_engine/gui_static/sessions/index.html +1 -0
  291. ciris_engine/gui_static/sessions/index.txt +27 -0
  292. ciris_engine/gui_static/setup/index.html +1 -0
  293. ciris_engine/gui_static/setup/index.txt +27 -0
  294. ciris_engine/gui_static/status-dashboard/index.html +1 -0
  295. ciris_engine/gui_static/status-dashboard/index.txt +27 -0
  296. ciris_engine/gui_static/system/index.html +1 -0
  297. ciris_engine/gui_static/system/index.txt +27 -0
  298. ciris_engine/gui_static/terms-of-service.html +174 -0
  299. ciris_engine/gui_static/test-auth/index.html +1 -0
  300. ciris_engine/gui_static/test-auth/index.txt +27 -0
  301. ciris_engine/gui_static/test-login/index.html +1 -0
  302. ciris_engine/gui_static/test-login/index.txt +27 -0
  303. ciris_engine/gui_static/test-sdk/index.html +1 -0
  304. ciris_engine/gui_static/test-sdk/index.txt +27 -0
  305. ciris_engine/gui_static/tools/index.html +1 -0
  306. ciris_engine/gui_static/tools/index.txt +27 -0
  307. ciris_engine/gui_static/users/index.html +1 -0
  308. ciris_engine/gui_static/users/index.txt +27 -0
  309. ciris_engine/gui_static/vercel.svg +1 -0
  310. ciris_engine/gui_static/videos/video1.mp4 +0 -0
  311. ciris_engine/gui_static/videos/video3.mp4 +0 -0
  312. ciris_engine/gui_static/wa/index.html +1 -0
  313. ciris_engine/gui_static/wa/index.txt +27 -0
  314. ciris_engine/gui_static/window.svg +1 -0
  315. ciris_engine/logic/__init__.py +8 -0
  316. ciris_engine/logic/adapters/__init__.py +74 -0
  317. ciris_engine/logic/adapters/api/__init__.py +5 -0
  318. ciris_engine/logic/adapters/api/adapter.py +1037 -0
  319. ciris_engine/logic/adapters/api/api_communication.py +370 -0
  320. ciris_engine/logic/adapters/api/api_document.py +330 -0
  321. ciris_engine/logic/adapters/api/api_observer.py +24 -0
  322. ciris_engine/logic/adapters/api/api_runtime_control.py +388 -0
  323. ciris_engine/logic/adapters/api/api_tools.py +299 -0
  324. ciris_engine/logic/adapters/api/api_vision.py +215 -0
  325. ciris_engine/logic/adapters/api/app.py +272 -0
  326. ciris_engine/logic/adapters/api/auth.py +159 -0
  327. ciris_engine/logic/adapters/api/config.py +101 -0
  328. ciris_engine/logic/adapters/api/constants.py +55 -0
  329. ciris_engine/logic/adapters/api/dependencies/__init__.py +1 -0
  330. ciris_engine/logic/adapters/api/dependencies/auth.py +260 -0
  331. ciris_engine/logic/adapters/api/endpoints/__init__.py +1 -0
  332. ciris_engine/logic/adapters/api/endpoints/emergency.py +86 -0
  333. ciris_engine/logic/adapters/api/middleware/__init__.py +1 -0
  334. ciris_engine/logic/adapters/api/middleware/rate_limiter.py +302 -0
  335. ciris_engine/logic/adapters/api/models.py +29 -0
  336. ciris_engine/logic/adapters/api/routes/__init__.py +52 -0
  337. ciris_engine/logic/adapters/api/routes/agent.py +1762 -0
  338. ciris_engine/logic/adapters/api/routes/audit.py +707 -0
  339. ciris_engine/logic/adapters/api/routes/auth.py +1745 -0
  340. ciris_engine/logic/adapters/api/routes/billing.py +895 -0
  341. ciris_engine/logic/adapters/api/routes/config.py +329 -0
  342. ciris_engine/logic/adapters/api/routes/connectors.py +534 -0
  343. ciris_engine/logic/adapters/api/routes/consent.py +637 -0
  344. ciris_engine/logic/adapters/api/routes/dsar.py +637 -0
  345. ciris_engine/logic/adapters/api/routes/dsar_multi_source.py +484 -0
  346. ciris_engine/logic/adapters/api/routes/emergency.py +302 -0
  347. ciris_engine/logic/adapters/api/routes/memory.py +733 -0
  348. ciris_engine/logic/adapters/api/routes/memory_filters.py +230 -0
  349. ciris_engine/logic/adapters/api/routes/memory_models.py +112 -0
  350. ciris_engine/logic/adapters/api/routes/memory_queries.py +236 -0
  351. ciris_engine/logic/adapters/api/routes/memory_query_helpers.py +394 -0
  352. ciris_engine/logic/adapters/api/routes/memory_visualization.py +359 -0
  353. ciris_engine/logic/adapters/api/routes/memory_visualization_helpers.py +110 -0
  354. ciris_engine/logic/adapters/api/routes/partnership.py +541 -0
  355. ciris_engine/logic/adapters/api/routes/setup.py +1374 -0
  356. ciris_engine/logic/adapters/api/routes/system.py +3049 -0
  357. ciris_engine/logic/adapters/api/routes/system_extensions.py +952 -0
  358. ciris_engine/logic/adapters/api/routes/telemetry.py +1987 -0
  359. ciris_engine/logic/adapters/api/routes/telemetry_converters.py +141 -0
  360. ciris_engine/logic/adapters/api/routes/telemetry_helpers.py +111 -0
  361. ciris_engine/logic/adapters/api/routes/telemetry_logs_reader.py +280 -0
  362. ciris_engine/logic/adapters/api/routes/telemetry_metrics.py +131 -0
  363. ciris_engine/logic/adapters/api/routes/telemetry_models.py +190 -0
  364. ciris_engine/logic/adapters/api/routes/telemetry_otlp.py +878 -0
  365. ciris_engine/logic/adapters/api/routes/telemetry_resource_helpers.py +191 -0
  366. ciris_engine/logic/adapters/api/routes/tickets.py +541 -0
  367. ciris_engine/logic/adapters/api/routes/tools.py +556 -0
  368. ciris_engine/logic/adapters/api/routes/transparency.py +281 -0
  369. ciris_engine/logic/adapters/api/routes/users.py +981 -0
  370. ciris_engine/logic/adapters/api/routes/verification.py +373 -0
  371. ciris_engine/logic/adapters/api/routes/wa.py +369 -0
  372. ciris_engine/logic/adapters/api/service_configuration.py +177 -0
  373. ciris_engine/logic/adapters/api/services/__init__.py +1 -0
  374. ciris_engine/logic/adapters/api/services/auth_service.py +1417 -0
  375. ciris_engine/logic/adapters/api/services/oauth_security.py +68 -0
  376. ciris_engine/logic/adapters/base.py +141 -0
  377. ciris_engine/logic/adapters/base_adapter.py +73 -0
  378. ciris_engine/logic/adapters/base_observer.py +1141 -0
  379. ciris_engine/logic/adapters/base_vision.py +312 -0
  380. ciris_engine/logic/adapters/cirisnode_client.py +307 -0
  381. ciris_engine/logic/adapters/cli/__init__.py +3 -0
  382. ciris_engine/logic/adapters/cli/adapter.py +207 -0
  383. ciris_engine/logic/adapters/cli/cli_adapter.py +902 -0
  384. ciris_engine/logic/adapters/cli/cli_observer.py +268 -0
  385. ciris_engine/logic/adapters/cli/cli_tools.py +427 -0
  386. ciris_engine/logic/adapters/cli/cli_wa_service.py +134 -0
  387. ciris_engine/logic/adapters/cli/config.py +73 -0
  388. ciris_engine/logic/adapters/discord/__init__.py +3 -0
  389. ciris_engine/logic/adapters/discord/adapter.py +783 -0
  390. ciris_engine/logic/adapters/discord/ciris_discord_client.py +159 -0
  391. ciris_engine/logic/adapters/discord/config.py +177 -0
  392. ciris_engine/logic/adapters/discord/constants.py +185 -0
  393. ciris_engine/logic/adapters/discord/discord-stubs.pyi +50 -0
  394. ciris_engine/logic/adapters/discord/discord_adapter.py +1584 -0
  395. ciris_engine/logic/adapters/discord/discord_audit.py +150 -0
  396. ciris_engine/logic/adapters/discord/discord_channel_manager.py +351 -0
  397. ciris_engine/logic/adapters/discord/discord_connection_manager.py +313 -0
  398. ciris_engine/logic/adapters/discord/discord_embed_formatter.py +369 -0
  399. ciris_engine/logic/adapters/discord/discord_error_classifier.py +302 -0
  400. ciris_engine/logic/adapters/discord/discord_error_handler.py +316 -0
  401. ciris_engine/logic/adapters/discord/discord_guidance_handler.py +460 -0
  402. ciris_engine/logic/adapters/discord/discord_message_handler.py +207 -0
  403. ciris_engine/logic/adapters/discord/discord_observer.py +670 -0
  404. ciris_engine/logic/adapters/discord/discord_rate_limiter.py +249 -0
  405. ciris_engine/logic/adapters/discord/discord_reaction_handler.py +278 -0
  406. ciris_engine/logic/adapters/discord/discord_tool_handler.py +465 -0
  407. ciris_engine/logic/adapters/discord/discord_tool_service.py +790 -0
  408. ciris_engine/logic/adapters/discord/discord_tools.py +90 -0
  409. ciris_engine/logic/adapters/discord/discord_vision_helper.py +148 -0
  410. ciris_engine/logic/adapters/discord/py.typed +0 -0
  411. ciris_engine/logic/adapters/document_parser.py +320 -0
  412. ciris_engine/logic/audit/__init__.py +10 -0
  413. ciris_engine/logic/audit/hash_chain.py +313 -0
  414. ciris_engine/logic/audit/signature_manager.py +352 -0
  415. ciris_engine/logic/audit/verifier.py +408 -0
  416. ciris_engine/logic/buses/__init__.py +21 -0
  417. ciris_engine/logic/buses/base_bus.py +178 -0
  418. ciris_engine/logic/buses/bus_manager.py +121 -0
  419. ciris_engine/logic/buses/communication_bus.py +387 -0
  420. ciris_engine/logic/buses/llm_bus.py +722 -0
  421. ciris_engine/logic/buses/memory_bus.py +577 -0
  422. ciris_engine/logic/buses/prohibitions.py +502 -0
  423. ciris_engine/logic/buses/runtime_control_bus.py +539 -0
  424. ciris_engine/logic/buses/tool_bus.py +482 -0
  425. ciris_engine/logic/buses/wise_bus.py +684 -0
  426. ciris_engine/logic/config/__init__.py +25 -0
  427. ciris_engine/logic/config/bootstrap.py +255 -0
  428. ciris_engine/logic/config/config_accessor.py +202 -0
  429. ciris_engine/logic/config/db_paths.py +194 -0
  430. ciris_engine/logic/config/env_utils.py +39 -0
  431. ciris_engine/logic/conscience/__init__.py +16 -0
  432. ciris_engine/logic/conscience/build_deferral_package.py +0 -0
  433. ciris_engine/logic/conscience/core.py +688 -0
  434. ciris_engine/logic/conscience/interface.py +33 -0
  435. ciris_engine/logic/conscience/registry.py +76 -0
  436. ciris_engine/logic/conscience/thought_depth_guardrail.py +231 -0
  437. ciris_engine/logic/conscience/updated_status_conscience.py +156 -0
  438. ciris_engine/logic/context/__init__.py +10 -0
  439. ciris_engine/logic/context/batch_context.py +550 -0
  440. ciris_engine/logic/context/builder.py +149 -0
  441. ciris_engine/logic/context/channel_resolution.py +136 -0
  442. ciris_engine/logic/context/secrets_snapshot.py +52 -0
  443. ciris_engine/logic/context/system_snapshot.py +116 -0
  444. ciris_engine/logic/context/system_snapshot_helpers.py +1651 -0
  445. ciris_engine/logic/covenant/__init__.py +33 -0
  446. ciris_engine/logic/covenant/executor.py +303 -0
  447. ciris_engine/logic/covenant/extractor.py +382 -0
  448. ciris_engine/logic/covenant/handler.py +241 -0
  449. ciris_engine/logic/covenant/verifier.py +383 -0
  450. ciris_engine/logic/dma/__init__.py +15 -0
  451. ciris_engine/logic/dma/action_selection/__init__.py +11 -0
  452. ciris_engine/logic/dma/action_selection/action_instruction_generator.py +444 -0
  453. ciris_engine/logic/dma/action_selection/context_builder.py +508 -0
  454. ciris_engine/logic/dma/action_selection/faculty_integration.py +193 -0
  455. ciris_engine/logic/dma/action_selection/special_cases.py +132 -0
  456. ciris_engine/logic/dma/action_selection_pdma.py +365 -0
  457. ciris_engine/logic/dma/base_dma.py +335 -0
  458. ciris_engine/logic/dma/csdma.py +239 -0
  459. ciris_engine/logic/dma/dma_executor.py +575 -0
  460. ciris_engine/logic/dma/dsdma_base.py +410 -0
  461. ciris_engine/logic/dma/exceptions.py +4 -0
  462. ciris_engine/logic/dma/factory.py +150 -0
  463. ciris_engine/logic/dma/pdma.py +120 -0
  464. ciris_engine/logic/dma/prompt_loader.py +189 -0
  465. ciris_engine/logic/dma/prompts/action_selection_pdma.yml +58 -0
  466. ciris_engine/logic/dma/prompts/csdma_common_sense.yml +28 -0
  467. ciris_engine/logic/dma/prompts/dsdma_base.yml +17 -0
  468. ciris_engine/logic/dma/prompts/pdma_ethical.yml +42 -0
  469. ciris_engine/logic/formatters/__init__.py +26 -0
  470. ciris_engine/logic/formatters/crisis_resources.py +80 -0
  471. ciris_engine/logic/formatters/escalation.py +21 -0
  472. ciris_engine/logic/formatters/identity.py +224 -0
  473. ciris_engine/logic/formatters/prompt_blocks.py +64 -0
  474. ciris_engine/logic/formatters/system_snapshot.py +193 -0
  475. ciris_engine/logic/formatters/user_profiles.py +108 -0
  476. ciris_engine/logic/handlers/__init__.py +1 -0
  477. ciris_engine/logic/handlers/control/__init__.py +1 -0
  478. ciris_engine/logic/handlers/control/defer_handler.py +195 -0
  479. ciris_engine/logic/handlers/control/ponder_handler.py +154 -0
  480. ciris_engine/logic/handlers/control/reject_handler.py +81 -0
  481. ciris_engine/logic/handlers/external/__init__.py +1 -0
  482. ciris_engine/logic/handlers/external/observe_handler.py +154 -0
  483. ciris_engine/logic/handlers/external/speak_handler.py +250 -0
  484. ciris_engine/logic/handlers/external/tool_handler.py +148 -0
  485. ciris_engine/logic/handlers/memory/__init__.py +1 -0
  486. ciris_engine/logic/handlers/memory/forget_handler.py +107 -0
  487. ciris_engine/logic/handlers/memory/memorize_handler.py +391 -0
  488. ciris_engine/logic/handlers/memory/recall_handler.py +213 -0
  489. ciris_engine/logic/handlers/terminal/__init__.py +1 -0
  490. ciris_engine/logic/handlers/terminal/task_complete_handler.py +299 -0
  491. ciris_engine/logic/infrastructure/__init__.py +1 -0
  492. ciris_engine/logic/infrastructure/handlers/__init__.py +8 -0
  493. ciris_engine/logic/infrastructure/handlers/action_dispatcher.py +382 -0
  494. ciris_engine/logic/infrastructure/handlers/base_handler.py +450 -0
  495. ciris_engine/logic/infrastructure/handlers/exceptions.py +2 -0
  496. ciris_engine/logic/infrastructure/handlers/handler_registry.py +59 -0
  497. ciris_engine/logic/infrastructure/handlers/helpers.py +55 -0
  498. ciris_engine/logic/infrastructure/step_streaming.py +149 -0
  499. ciris_engine/logic/infrastructure/sub_services/__init__.py +1 -0
  500. ciris_engine/logic/infrastructure/sub_services/identity_variance_monitor.py +1035 -0
  501. ciris_engine/logic/infrastructure/sub_services/pattern_analysis_loop.py +758 -0
  502. ciris_engine/logic/infrastructure/sub_services/wa_cli_bootstrap.py +229 -0
  503. ciris_engine/logic/infrastructure/sub_services/wa_cli_display.py +176 -0
  504. ciris_engine/logic/infrastructure/sub_services/wa_cli_oauth.py +404 -0
  505. ciris_engine/logic/infrastructure/sub_services/wa_cli_wizard.py +181 -0
  506. ciris_engine/logic/persistence/__init__.py +130 -0
  507. ciris_engine/logic/persistence/analytics.py +97 -0
  508. ciris_engine/logic/persistence/db/__init__.py +28 -0
  509. ciris_engine/logic/persistence/db/core.py +520 -0
  510. ciris_engine/logic/persistence/db/dialect.py +380 -0
  511. ciris_engine/logic/persistence/db/execution_helpers.py +216 -0
  512. ciris_engine/logic/persistence/db/migration_runner.py +191 -0
  513. ciris_engine/logic/persistence/db/operations.py +313 -0
  514. ciris_engine/logic/persistence/db/query_builder.py +232 -0
  515. ciris_engine/logic/persistence/db/retry.py +154 -0
  516. ciris_engine/logic/persistence/db/setup.py +18 -0
  517. ciris_engine/logic/persistence/migrations/postgres/001_initial_schema.sql +4 -0
  518. ciris_engine/logic/persistence/migrations/postgres/002_add_retry_status.sql +3 -0
  519. ciris_engine/logic/persistence/migrations/postgres/003_add_task_update_tracking.sql +8 -0
  520. ciris_engine/logic/persistence/migrations/postgres/004_add_occurrence_id.sql +54 -0
  521. ciris_engine/logic/persistence/migrations/postgres/005_add_consolidation_locks.sql +22 -0
  522. ciris_engine/logic/persistence/migrations/postgres/006_add_correlation_id_unique_index.sql +16 -0
  523. ciris_engine/logic/persistence/migrations/postgres/007_add_dsar_tickets.sql +39 -0
  524. ciris_engine/logic/persistence/migrations/postgres/008_rename_to_tickets_add_sop.sql +123 -0
  525. ciris_engine/logic/persistence/migrations/postgres/009_add_ticket_status_columns.sql +39 -0
  526. ciris_engine/logic/persistence/migrations/postgres/010_add_images_to_tasks.sql +5 -0
  527. ciris_engine/logic/persistence/migrations/sqlite/001_initial_schema.sql +357 -0
  528. ciris_engine/logic/persistence/migrations/sqlite/002_add_retry_status.sql +3 -0
  529. ciris_engine/logic/persistence/migrations/sqlite/003_add_task_update_tracking.sql +8 -0
  530. ciris_engine/logic/persistence/migrations/sqlite/004_add_occurrence_id.sql +45 -0
  531. ciris_engine/logic/persistence/migrations/sqlite/005_add_consolidation_locks.sql +22 -0
  532. ciris_engine/logic/persistence/migrations/sqlite/006_add_correlation_id_unique_index.sql +16 -0
  533. ciris_engine/logic/persistence/migrations/sqlite/007_add_dsar_tickets.sql +39 -0
  534. ciris_engine/logic/persistence/migrations/sqlite/008_rename_to_tickets_add_sop.sql +120 -0
  535. ciris_engine/logic/persistence/migrations/sqlite/009_add_ticket_status_columns.sql +129 -0
  536. ciris_engine/logic/persistence/migrations/sqlite/010_add_images_to_tasks.sql +17 -0
  537. ciris_engine/logic/persistence/models/__init__.py +141 -0
  538. ciris_engine/logic/persistence/models/correlations.py +881 -0
  539. ciris_engine/logic/persistence/models/deferral.py +68 -0
  540. ciris_engine/logic/persistence/models/dsar.py +286 -0
  541. ciris_engine/logic/persistence/models/graph.py +362 -0
  542. ciris_engine/logic/persistence/models/identity.py +264 -0
  543. ciris_engine/logic/persistence/models/queue_status.py +139 -0
  544. ciris_engine/logic/persistence/models/tasks.py +1043 -0
  545. ciris_engine/logic/persistence/models/thoughts.py +400 -0
  546. ciris_engine/logic/persistence/models/tickets.py +518 -0
  547. ciris_engine/logic/persistence/stores/__init__.py +13 -0
  548. ciris_engine/logic/persistence/stores/auth_helpers.py +117 -0
  549. ciris_engine/logic/persistence/stores/authentication_store.py +414 -0
  550. ciris_engine/logic/persistence/utils.py +212 -0
  551. ciris_engine/logic/processors/__init__.py +30 -0
  552. ciris_engine/logic/processors/core/__init__.py +1 -0
  553. ciris_engine/logic/processors/core/base_processor.py +280 -0
  554. ciris_engine/logic/processors/core/main_processor.py +1777 -0
  555. ciris_engine/logic/processors/core/step_decorators.py +1583 -0
  556. ciris_engine/logic/processors/core/thought_processor/__init__.py +20 -0
  557. ciris_engine/logic/processors/core/thought_processor/action_execution.py +49 -0
  558. ciris_engine/logic/processors/core/thought_processor/conscience_execution.py +382 -0
  559. ciris_engine/logic/processors/core/thought_processor/finalize_action.py +66 -0
  560. ciris_engine/logic/processors/core/thought_processor/gather_context.py +120 -0
  561. ciris_engine/logic/processors/core/thought_processor/main.py +920 -0
  562. ciris_engine/logic/processors/core/thought_processor/perform_aspdma.py +86 -0
  563. ciris_engine/logic/processors/core/thought_processor/perform_dmas.py +106 -0
  564. ciris_engine/logic/processors/core/thought_processor/recursive_processing.py +237 -0
  565. ciris_engine/logic/processors/core/thought_processor/round_complete.py +52 -0
  566. ciris_engine/logic/processors/core/thought_processor/start_round.py +64 -0
  567. ciris_engine/logic/processors/exceptions.py +59 -0
  568. ciris_engine/logic/processors/states/__init__.py +1 -0
  569. ciris_engine/logic/processors/states/dream_processor.py +1381 -0
  570. ciris_engine/logic/processors/states/play_processor.py +141 -0
  571. ciris_engine/logic/processors/states/shutdown_processor.py +623 -0
  572. ciris_engine/logic/processors/states/solitude_processor.py +305 -0
  573. ciris_engine/logic/processors/states/wakeup_processor.py +802 -0
  574. ciris_engine/logic/processors/states/work_processor.py +742 -0
  575. ciris_engine/logic/processors/support/__init__.py +1 -0
  576. ciris_engine/logic/processors/support/dma_orchestrator.py +336 -0
  577. ciris_engine/logic/processors/support/processing_queue.py +133 -0
  578. ciris_engine/logic/processors/support/shutdown_condition_evaluator.py +294 -0
  579. ciris_engine/logic/processors/support/state_manager.py +358 -0
  580. ciris_engine/logic/processors/support/task_manager.py +303 -0
  581. ciris_engine/logic/processors/support/thought_escalation.py +116 -0
  582. ciris_engine/logic/processors/support/thought_manager.py +328 -0
  583. ciris_engine/logic/processors/support/thought_manager_enhanced.py +105 -0
  584. ciris_engine/logic/registries/__init__.py +34 -0
  585. ciris_engine/logic/registries/base.py +653 -0
  586. ciris_engine/logic/registries/circuit_breaker.py +275 -0
  587. ciris_engine/logic/registries/typed_registries.py +184 -0
  588. ciris_engine/logic/runtime/__init__.py +7 -0
  589. ciris_engine/logic/runtime/adapter_loader.py +261 -0
  590. ciris_engine/logic/runtime/adapter_manager.py +1053 -0
  591. ciris_engine/logic/runtime/ciris_runtime.py +2342 -0
  592. ciris_engine/logic/runtime/ciris_runtime_helpers.py +923 -0
  593. ciris_engine/logic/runtime/component_builder.py +361 -0
  594. ciris_engine/logic/runtime/identity_manager.py +219 -0
  595. ciris_engine/logic/runtime/module_loader.py +207 -0
  596. ciris_engine/logic/runtime/prevent_sideeffects.py +30 -0
  597. ciris_engine/logic/runtime/runtime_interface.py +23 -0
  598. ciris_engine/logic/runtime/service_initializer.py +1623 -0
  599. ciris_engine/logic/secrets/__init__.py +30 -0
  600. ciris_engine/logic/secrets/encryption.py +175 -0
  601. ciris_engine/logic/secrets/filter.py +295 -0
  602. ciris_engine/logic/secrets/service.py +652 -0
  603. ciris_engine/logic/secrets/store.py +669 -0
  604. ciris_engine/logic/services/__init__.py +1 -0
  605. ciris_engine/logic/services/adaptation/__init__.py +3 -0
  606. ciris_engine/logic/services/base_graph_service.py +142 -0
  607. ciris_engine/logic/services/base_infrastructure_service.py +69 -0
  608. ciris_engine/logic/services/base_scheduled_service.py +136 -0
  609. ciris_engine/logic/services/base_service.py +247 -0
  610. ciris_engine/logic/services/governance/__init__.py +3 -0
  611. ciris_engine/logic/services/governance/adaptive_filter/__init__.py +14 -0
  612. ciris_engine/logic/services/governance/adaptive_filter/service.py +818 -0
  613. ciris_engine/logic/services/governance/consent/__init__.py +53 -0
  614. ciris_engine/logic/services/governance/consent/air.py +403 -0
  615. ciris_engine/logic/services/governance/consent/decay.py +324 -0
  616. ciris_engine/logic/services/governance/consent/dsar_automation.py +589 -0
  617. ciris_engine/logic/services/governance/consent/exceptions.py +106 -0
  618. ciris_engine/logic/services/governance/consent/metrics.py +270 -0
  619. ciris_engine/logic/services/governance/consent/partnership.py +533 -0
  620. ciris_engine/logic/services/governance/consent/service.py +1256 -0
  621. ciris_engine/logic/services/governance/dsar/__init__.py +29 -0
  622. ciris_engine/logic/services/governance/dsar/orchestrator.py +977 -0
  623. ciris_engine/logic/services/governance/dsar/schemas.py +141 -0
  624. ciris_engine/logic/services/governance/dsar/signature_service.py +283 -0
  625. ciris_engine/logic/services/governance/self_observation/__init__.py +20 -0
  626. ciris_engine/logic/services/governance/self_observation/service.py +1153 -0
  627. ciris_engine/logic/services/governance/visibility/__init__.py +17 -0
  628. ciris_engine/logic/services/governance/visibility/service.py +512 -0
  629. ciris_engine/logic/services/governance/wise_authority/__init__.py +15 -0
  630. ciris_engine/logic/services/governance/wise_authority/service.py +827 -0
  631. ciris_engine/logic/services/graph/__init__.py +5 -0
  632. ciris_engine/logic/services/graph/audit_service/__init__.py +5 -0
  633. ciris_engine/logic/services/graph/audit_service/service.py +1675 -0
  634. ciris_engine/logic/services/graph/base.py +208 -0
  635. ciris_engine/logic/services/graph/config_service/__init__.py +5 -0
  636. ciris_engine/logic/services/graph/config_service/service.py +372 -0
  637. ciris_engine/logic/services/graph/incident_service/__init__.py +5 -0
  638. ciris_engine/logic/services/graph/incident_service/service.py +803 -0
  639. ciris_engine/logic/services/graph/memory_service.py +1120 -0
  640. ciris_engine/logic/services/graph/telemetry_service/__init__.py +5 -0
  641. ciris_engine/logic/services/graph/telemetry_service/exceptions.py +104 -0
  642. ciris_engine/logic/services/graph/telemetry_service/helpers.py +1337 -0
  643. ciris_engine/logic/services/graph/telemetry_service/service.py +2429 -0
  644. ciris_engine/logic/services/graph/tsdb_consolidation/__init__.py +17 -0
  645. ciris_engine/logic/services/graph/tsdb_consolidation/aggregation_helpers.py +355 -0
  646. ciris_engine/logic/services/graph/tsdb_consolidation/cleanup_helpers.py +438 -0
  647. ciris_engine/logic/services/graph/tsdb_consolidation/compressor.py +260 -0
  648. ciris_engine/logic/services/graph/tsdb_consolidation/consolidators/__init__.py +27 -0
  649. ciris_engine/logic/services/graph/tsdb_consolidation/consolidators/audit.py +326 -0
  650. ciris_engine/logic/services/graph/tsdb_consolidation/consolidators/conversation.py +291 -0
  651. ciris_engine/logic/services/graph/tsdb_consolidation/consolidators/memory.py +197 -0
  652. ciris_engine/logic/services/graph/tsdb_consolidation/consolidators/metrics.py +251 -0
  653. ciris_engine/logic/services/graph/tsdb_consolidation/consolidators/task.py +257 -0
  654. ciris_engine/logic/services/graph/tsdb_consolidation/consolidators/trace.py +363 -0
  655. ciris_engine/logic/services/graph/tsdb_consolidation/data_converter.py +545 -0
  656. ciris_engine/logic/services/graph/tsdb_consolidation/date_calculation_helpers.py +193 -0
  657. ciris_engine/logic/services/graph/tsdb_consolidation/db_query_helpers.py +296 -0
  658. ciris_engine/logic/services/graph/tsdb_consolidation/edge_helpers.py +92 -0
  659. ciris_engine/logic/services/graph/tsdb_consolidation/edge_manager.py +896 -0
  660. ciris_engine/logic/services/graph/tsdb_consolidation/extensive_helpers.py +322 -0
  661. ciris_engine/logic/services/graph/tsdb_consolidation/period_manager.py +152 -0
  662. ciris_engine/logic/services/graph/tsdb_consolidation/profound_helpers.py +277 -0
  663. ciris_engine/logic/services/graph/tsdb_consolidation/query_manager.py +812 -0
  664. ciris_engine/logic/services/graph/tsdb_consolidation/service.py +1692 -0
  665. ciris_engine/logic/services/graph/tsdb_consolidation/sql_builders.py +363 -0
  666. ciris_engine/logic/services/infrastructure/__init__.py +1 -0
  667. ciris_engine/logic/services/infrastructure/authentication/__init__.py +5 -0
  668. ciris_engine/logic/services/infrastructure/authentication/service.py +1634 -0
  669. ciris_engine/logic/services/infrastructure/database_maintenance/__init__.py +15 -0
  670. ciris_engine/logic/services/infrastructure/database_maintenance/service.py +764 -0
  671. ciris_engine/logic/services/infrastructure/resource_monitor/__init__.py +7 -0
  672. ciris_engine/logic/services/infrastructure/resource_monitor/ciris_billing_provider.py +755 -0
  673. ciris_engine/logic/services/infrastructure/resource_monitor/service.py +409 -0
  674. ciris_engine/logic/services/infrastructure/resource_monitor/simple_credit_provider.py +129 -0
  675. ciris_engine/logic/services/lifecycle/__init__.py +3 -0
  676. ciris_engine/logic/services/lifecycle/initialization/__init__.py +10 -0
  677. ciris_engine/logic/services/lifecycle/initialization/service.py +312 -0
  678. ciris_engine/logic/services/lifecycle/scheduler/__init__.py +5 -0
  679. ciris_engine/logic/services/lifecycle/scheduler/service.py +607 -0
  680. ciris_engine/logic/services/lifecycle/shutdown/__init__.py +9 -0
  681. ciris_engine/logic/services/lifecycle/shutdown/service.py +378 -0
  682. ciris_engine/logic/services/lifecycle/time/__init__.py +15 -0
  683. ciris_engine/logic/services/lifecycle/time/service.py +259 -0
  684. ciris_engine/logic/services/memory_service/__init__.py +8 -0
  685. ciris_engine/logic/services/mixins/__init__.py +13 -0
  686. ciris_engine/logic/services/mixins/example_usage.py +200 -0
  687. ciris_engine/logic/services/mixins/request_metrics.py +179 -0
  688. ciris_engine/logic/services/runtime/__init__.py +3 -0
  689. ciris_engine/logic/services/runtime/adapter_configuration/__init__.py +16 -0
  690. ciris_engine/logic/services/runtime/adapter_configuration/service.py +674 -0
  691. ciris_engine/logic/services/runtime/adapter_configuration/session.py +67 -0
  692. ciris_engine/logic/services/runtime/control_service/__init__.py +5 -0
  693. ciris_engine/logic/services/runtime/control_service/service.py +2269 -0
  694. ciris_engine/logic/services/runtime/llm_service/__init__.py +14 -0
  695. ciris_engine/logic/services/runtime/llm_service/pricing_calculator.py +279 -0
  696. ciris_engine/logic/services/runtime/llm_service/service.py +930 -0
  697. ciris_engine/logic/services/tools/__init__.py +5 -0
  698. ciris_engine/logic/services/tools/core_tool_service/__init__.py +8 -0
  699. ciris_engine/logic/services/tools/core_tool_service/service.py +852 -0
  700. ciris_engine/logic/setup/__init__.py +1 -0
  701. ciris_engine/logic/setup/first_run.py +250 -0
  702. ciris_engine/logic/setup/wizard.py +327 -0
  703. ciris_engine/logic/telemetry/__init__.py +46 -0
  704. ciris_engine/logic/telemetry/core.py +239 -0
  705. ciris_engine/logic/telemetry/hot_cold_config.py +133 -0
  706. ciris_engine/logic/telemetry/log_collector.py +190 -0
  707. ciris_engine/logic/telemetry/resource_monitor.py +7 -0
  708. ciris_engine/logic/telemetry/security.py +79 -0
  709. ciris_engine/logic/utils/__init__.py +18 -0
  710. ciris_engine/logic/utils/channel_utils.py +75 -0
  711. ciris_engine/logic/utils/consent/__init__.py +1 -0
  712. ciris_engine/logic/utils/consent/partnership_utils.py +172 -0
  713. ciris_engine/logic/utils/constants.py +92 -0
  714. ciris_engine/logic/utils/context_utils.py +145 -0
  715. ciris_engine/logic/utils/directory_setup.py +533 -0
  716. ciris_engine/logic/utils/graphql_context_provider.py +152 -0
  717. ciris_engine/logic/utils/identity_resolution.py +843 -0
  718. ciris_engine/logic/utils/incident_capture_handler.py +303 -0
  719. ciris_engine/logic/utils/initialization_manager.py +74 -0
  720. ciris_engine/logic/utils/jsondict_helpers.py +290 -0
  721. ciris_engine/logic/utils/log_sanitizer.py +97 -0
  722. ciris_engine/logic/utils/logging_config.py +151 -0
  723. ciris_engine/logic/utils/observability_decorators.py +544 -0
  724. ciris_engine/logic/utils/occurrence_utils.py +155 -0
  725. ciris_engine/logic/utils/path_resolution.py +281 -0
  726. ciris_engine/logic/utils/platform_detection.py +286 -0
  727. ciris_engine/logic/utils/privacy.py +266 -0
  728. ciris_engine/logic/utils/profile_loader.py +124 -0
  729. ciris_engine/logic/utils/profile_manager.py +16 -0
  730. ciris_engine/logic/utils/runtime_utils.py +69 -0
  731. ciris_engine/logic/utils/shutdown_manager.py +107 -0
  732. ciris_engine/logic/utils/task_formatters.py +60 -0
  733. ciris_engine/logic/utils/task_thought_factory.py +404 -0
  734. ciris_engine/logic/utils/thought_utils.py +54 -0
  735. ciris_engine/logic/utils/user_utils.py +70 -0
  736. ciris_engine/protocols/__init__.py +0 -0
  737. ciris_engine/protocols/adapters/__init__.py +35 -0
  738. ciris_engine/protocols/adapters/base.py +149 -0
  739. ciris_engine/protocols/adapters/configurable.py +265 -0
  740. ciris_engine/protocols/adapters/message.py +90 -0
  741. ciris_engine/protocols/audit/__init__.py +1 -0
  742. ciris_engine/protocols/buses/__init__.py +1 -0
  743. ciris_engine/protocols/config/__init__.py +1 -0
  744. ciris_engine/protocols/conscience/__init__.py +1 -0
  745. ciris_engine/protocols/consent.py +88 -0
  746. ciris_engine/protocols/context/__init__.py +1 -0
  747. ciris_engine/protocols/data/__init__.py +1 -0
  748. ciris_engine/protocols/dma/__init__.py +1 -0
  749. ciris_engine/protocols/dma/base.py +107 -0
  750. ciris_engine/protocols/faculties.py +34 -0
  751. ciris_engine/protocols/formatters/__init__.py +1 -0
  752. ciris_engine/protocols/handlers/__init__.py +1 -0
  753. ciris_engine/protocols/infrastructure/__init__.py +25 -0
  754. ciris_engine/protocols/infrastructure/base.py +377 -0
  755. ciris_engine/protocols/persistence/__init__.py +1 -0
  756. ciris_engine/protocols/pipeline_control.py +609 -0
  757. ciris_engine/protocols/processors/__init__.py +19 -0
  758. ciris_engine/protocols/processors/agent.py +299 -0
  759. ciris_engine/protocols/processors/base.py +130 -0
  760. ciris_engine/protocols/processors/orchestration.py +62 -0
  761. ciris_engine/protocols/registries/__init__.py +1 -0
  762. ciris_engine/protocols/runtime/__init__.py +1 -0
  763. ciris_engine/protocols/runtime/base.py +163 -0
  764. ciris_engine/protocols/secrets/__init__.py +1 -0
  765. ciris_engine/protocols/services/__init__.py +80 -0
  766. ciris_engine/protocols/services/adaptation/__init__.py +7 -0
  767. ciris_engine/protocols/services/adaptation/self_observation.py +265 -0
  768. ciris_engine/protocols/services/governance/__init__.py +20 -0
  769. ciris_engine/protocols/services/governance/communication.py +58 -0
  770. ciris_engine/protocols/services/governance/filter.py +56 -0
  771. ciris_engine/protocols/services/governance/visibility.py +32 -0
  772. ciris_engine/protocols/services/governance/wa_auth.py +192 -0
  773. ciris_engine/protocols/services/governance/wise_authority.py +75 -0
  774. ciris_engine/protocols/services/graph/__init__.py +19 -0
  775. ciris_engine/protocols/services/graph/audit.py +92 -0
  776. ciris_engine/protocols/services/graph/config.py +54 -0
  777. ciris_engine/protocols/services/graph/incident_management.py +103 -0
  778. ciris_engine/protocols/services/graph/memory.py +110 -0
  779. ciris_engine/protocols/services/graph/telemetry.py +51 -0
  780. ciris_engine/protocols/services/graph/tsdb_consolidation.py +87 -0
  781. ciris_engine/protocols/services/infrastructure/__init__.py +11 -0
  782. ciris_engine/protocols/services/infrastructure/authentication.py +159 -0
  783. ciris_engine/protocols/services/infrastructure/credit_gate.py +46 -0
  784. ciris_engine/protocols/services/infrastructure/database_maintenance.py +25 -0
  785. ciris_engine/protocols/services/infrastructure/resource_monitor.py +83 -0
  786. ciris_engine/protocols/services/lifecycle/__init__.py +13 -0
  787. ciris_engine/protocols/services/lifecycle/initialization.py +41 -0
  788. ciris_engine/protocols/services/lifecycle/scheduler.py +42 -0
  789. ciris_engine/protocols/services/lifecycle/shutdown.py +50 -0
  790. ciris_engine/protocols/services/lifecycle/time.py +31 -0
  791. ciris_engine/protocols/services/runtime/__init__.py +13 -0
  792. ciris_engine/protocols/services/runtime/llm.py +50 -0
  793. ciris_engine/protocols/services/runtime/runtime_control.py +193 -0
  794. ciris_engine/protocols/services/runtime/secrets.py +100 -0
  795. ciris_engine/protocols/services/runtime/tool.py +123 -0
  796. ciris_engine/protocols/telemetry/__init__.py +1 -0
  797. ciris_engine/protocols/utils/__init__.py +1 -0
  798. ciris_engine/schemas/__init__.py +112 -0
  799. ciris_engine/schemas/actions/__init__.py +37 -0
  800. ciris_engine/schemas/actions/parameters.py +137 -0
  801. ciris_engine/schemas/adapters/__init__.py +13 -0
  802. ciris_engine/schemas/adapters/cirisnode.py +135 -0
  803. ciris_engine/schemas/adapters/cli.py +97 -0
  804. ciris_engine/schemas/adapters/cli_tools.py +98 -0
  805. ciris_engine/schemas/adapters/discord.py +125 -0
  806. ciris_engine/schemas/adapters/graphql_core.py +144 -0
  807. ciris_engine/schemas/adapters/registration.py +47 -0
  808. ciris_engine/schemas/adapters/runtime_context.py +48 -0
  809. ciris_engine/schemas/adapters/tool_execution.py +45 -0
  810. ciris_engine/schemas/adapters/tools.py +96 -0
  811. ciris_engine/schemas/api/__init__.py +1 -0
  812. ciris_engine/schemas/api/agent.py +50 -0
  813. ciris_engine/schemas/api/audit.py +38 -0
  814. ciris_engine/schemas/api/auth.py +351 -0
  815. ciris_engine/schemas/api/config_security.py +242 -0
  816. ciris_engine/schemas/api/emergency.py +111 -0
  817. ciris_engine/schemas/api/responses.py +72 -0
  818. ciris_engine/schemas/api/runtime.py +26 -0
  819. ciris_engine/schemas/api/telemetry.py +109 -0
  820. ciris_engine/schemas/api/wa.py +90 -0
  821. ciris_engine/schemas/audit/__init__.py +13 -0
  822. ciris_engine/schemas/audit/core.py +139 -0
  823. ciris_engine/schemas/audit/hash_chain.py +58 -0
  824. ciris_engine/schemas/audit/verification.py +131 -0
  825. ciris_engine/schemas/buses/__init__.py +1 -0
  826. ciris_engine/schemas/config/__init__.py +41 -0
  827. ciris_engine/schemas/config/agent.py +279 -0
  828. ciris_engine/schemas/config/cognitive_state_behaviors.py +194 -0
  829. ciris_engine/schemas/config/default_dsar_sops.py +178 -0
  830. ciris_engine/schemas/config/essential.py +195 -0
  831. ciris_engine/schemas/config/tickets.py +86 -0
  832. ciris_engine/schemas/conscience/__init__.py +25 -0
  833. ciris_engine/schemas/conscience/context.py +34 -0
  834. ciris_engine/schemas/conscience/core.py +145 -0
  835. ciris_engine/schemas/conscience/results.py +24 -0
  836. ciris_engine/schemas/consent/__init__.py +5 -0
  837. ciris_engine/schemas/consent/core.py +404 -0
  838. ciris_engine/schemas/context/__init__.py +1 -0
  839. ciris_engine/schemas/covenant.py +382 -0
  840. ciris_engine/schemas/data/__init__.py +1 -0
  841. ciris_engine/schemas/dma/__init__.py +16 -0
  842. ciris_engine/schemas/dma/core.py +199 -0
  843. ciris_engine/schemas/dma/faculty.py +192 -0
  844. ciris_engine/schemas/dma/prompts.py +172 -0
  845. ciris_engine/schemas/dma/results.py +103 -0
  846. ciris_engine/schemas/formatters/__init__.py +1 -0
  847. ciris_engine/schemas/handlers/__init__.py +10 -0
  848. ciris_engine/schemas/handlers/context.py +119 -0
  849. ciris_engine/schemas/handlers/contexts.py +100 -0
  850. ciris_engine/schemas/handlers/core.py +167 -0
  851. ciris_engine/schemas/handlers/memory_schemas.py +67 -0
  852. ciris_engine/schemas/handlers/schemas.py +95 -0
  853. ciris_engine/schemas/identity.py +149 -0
  854. ciris_engine/schemas/infrastructure/__init__.py +1 -0
  855. ciris_engine/schemas/infrastructure/base.py +256 -0
  856. ciris_engine/schemas/infrastructure/behavioral_patterns.py +129 -0
  857. ciris_engine/schemas/infrastructure/feedback_loop.py +57 -0
  858. ciris_engine/schemas/infrastructure/identity_variance.py +141 -0
  859. ciris_engine/schemas/infrastructure/oauth.py +175 -0
  860. ciris_engine/schemas/infrastructure/wa_cli_wizard.py +54 -0
  861. ciris_engine/schemas/persistence/__init__.py +34 -0
  862. ciris_engine/schemas/persistence/core.py +140 -0
  863. ciris_engine/schemas/persistence/correlations.py +73 -0
  864. ciris_engine/schemas/persistence/postgres/__init__.py +1 -0
  865. ciris_engine/schemas/persistence/postgres/tables.py +280 -0
  866. ciris_engine/schemas/persistence/sqlite/__init__.py +1 -0
  867. ciris_engine/schemas/persistence/sqlite/tables.py +281 -0
  868. ciris_engine/schemas/platform.py +149 -0
  869. ciris_engine/schemas/processors/__init__.py +26 -0
  870. ciris_engine/schemas/processors/base.py +130 -0
  871. ciris_engine/schemas/processors/cognitive.py +77 -0
  872. ciris_engine/schemas/processors/context.py +35 -0
  873. ciris_engine/schemas/processors/core.py +152 -0
  874. ciris_engine/schemas/processors/dma.py +105 -0
  875. ciris_engine/schemas/processors/error.py +122 -0
  876. ciris_engine/schemas/processors/main.py +109 -0
  877. ciris_engine/schemas/processors/phase_results.py +21 -0
  878. ciris_engine/schemas/processors/results.py +99 -0
  879. ciris_engine/schemas/processors/solitude.py +79 -0
  880. ciris_engine/schemas/processors/state.py +202 -0
  881. ciris_engine/schemas/processors/state_example.py +177 -0
  882. ciris_engine/schemas/processors/states.py +21 -0
  883. ciris_engine/schemas/processors/status.py +34 -0
  884. ciris_engine/schemas/registries/__init__.py +1 -0
  885. ciris_engine/schemas/registries/base.py +66 -0
  886. ciris_engine/schemas/resources/__init__.py +15 -0
  887. ciris_engine/schemas/resources/crisis.py +315 -0
  888. ciris_engine/schemas/runtime/__init__.py +42 -0
  889. ciris_engine/schemas/runtime/adapter_management.py +186 -0
  890. ciris_engine/schemas/runtime/api.py +58 -0
  891. ciris_engine/schemas/runtime/audit.py +50 -0
  892. ciris_engine/schemas/runtime/bootstrap.py +33 -0
  893. ciris_engine/schemas/runtime/contexts.py +61 -0
  894. ciris_engine/schemas/runtime/core.py +161 -0
  895. ciris_engine/schemas/runtime/enums.py +167 -0
  896. ciris_engine/schemas/runtime/extended.py +232 -0
  897. ciris_engine/schemas/runtime/manifest.py +311 -0
  898. ciris_engine/schemas/runtime/memory.py +60 -0
  899. ciris_engine/schemas/runtime/messages.py +108 -0
  900. ciris_engine/schemas/runtime/models.py +156 -0
  901. ciris_engine/schemas/runtime/processing_context.py +43 -0
  902. ciris_engine/schemas/runtime/protocols_core.py +96 -0
  903. ciris_engine/schemas/runtime/resources.py +33 -0
  904. ciris_engine/schemas/runtime/system_context.py +417 -0
  905. ciris_engine/schemas/secrets/__init__.py +1 -0
  906. ciris_engine/schemas/secrets/core.py +267 -0
  907. ciris_engine/schemas/secrets/service.py +95 -0
  908. ciris_engine/schemas/services/__init__.py +33 -0
  909. ciris_engine/schemas/services/audit_summary_node.py +172 -0
  910. ciris_engine/schemas/services/authority/__init__.py +39 -0
  911. ciris_engine/schemas/services/authority/jwt.py +158 -0
  912. ciris_engine/schemas/services/authority/wa_updates.py +138 -0
  913. ciris_engine/schemas/services/authority/wise_authority.py +163 -0
  914. ciris_engine/schemas/services/authority_core.py +370 -0
  915. ciris_engine/schemas/services/capabilities.py +72 -0
  916. ciris_engine/schemas/services/community_core.py +95 -0
  917. ciris_engine/schemas/services/context.py +111 -0
  918. ciris_engine/schemas/services/conversation_summary_node.py +189 -0
  919. ciris_engine/schemas/services/core/__init__.py +153 -0
  920. ciris_engine/schemas/services/core/runtime.py +262 -0
  921. ciris_engine/schemas/services/core/runtime_config.py +117 -0
  922. ciris_engine/schemas/services/core/secrets.py +65 -0
  923. ciris_engine/schemas/services/correlation_node.py +179 -0
  924. ciris_engine/schemas/services/credit_gate.py +92 -0
  925. ciris_engine/schemas/services/discord_nodes.py +299 -0
  926. ciris_engine/schemas/services/feedback_core.py +131 -0
  927. ciris_engine/schemas/services/filters_core.py +270 -0
  928. ciris_engine/schemas/services/governance.py +26 -0
  929. ciris_engine/schemas/services/graph/__init__.py +26 -0
  930. ciris_engine/schemas/services/graph/attributes.py +254 -0
  931. ciris_engine/schemas/services/graph/audit.py +98 -0
  932. ciris_engine/schemas/services/graph/consolidation.py +338 -0
  933. ciris_engine/schemas/services/graph/edge_types.py +43 -0
  934. ciris_engine/schemas/services/graph/edges.py +88 -0
  935. ciris_engine/schemas/services/graph/incident.py +312 -0
  936. ciris_engine/schemas/services/graph/memory.py +84 -0
  937. ciris_engine/schemas/services/graph/node_data.py +174 -0
  938. ciris_engine/schemas/services/graph/query_results.py +82 -0
  939. ciris_engine/schemas/services/graph/telemetry.py +250 -0
  940. ciris_engine/schemas/services/graph/tsdb_consolidation.py +27 -0
  941. ciris_engine/schemas/services/graph/tsdb_models.py +107 -0
  942. ciris_engine/schemas/services/graph_core.py +196 -0
  943. ciris_engine/schemas/services/graph_typed_nodes.py +194 -0
  944. ciris_engine/schemas/services/infrastructure/__init__.py +1 -0
  945. ciris_engine/schemas/services/infrastructure/resource_monitor.py +20 -0
  946. ciris_engine/schemas/services/lifecycle/__init__.py +9 -0
  947. ciris_engine/schemas/services/lifecycle/initialization.py +33 -0
  948. ciris_engine/schemas/services/lifecycle/time.py +50 -0
  949. ciris_engine/schemas/services/llm.py +187 -0
  950. ciris_engine/schemas/services/metadata.py +43 -0
  951. ciris_engine/schemas/services/nodes.py +704 -0
  952. ciris_engine/schemas/services/operations.py +126 -0
  953. ciris_engine/schemas/services/requests.py +128 -0
  954. ciris_engine/schemas/services/resources_core.py +182 -0
  955. ciris_engine/schemas/services/runtime_control.py +1010 -0
  956. ciris_engine/schemas/services/shutdown.py +88 -0
  957. ciris_engine/schemas/services/special/__init__.py +0 -0
  958. ciris_engine/schemas/services/special/self_observation.py +396 -0
  959. ciris_engine/schemas/services/trace_summary_node.py +199 -0
  960. ciris_engine/schemas/services/visibility.py +98 -0
  961. ciris_engine/schemas/streaming/__init__.py +10 -0
  962. ciris_engine/schemas/streaming/reasoning_stream.py +95 -0
  963. ciris_engine/schemas/telemetry/__init__.py +0 -0
  964. ciris_engine/schemas/telemetry/collector.py +67 -0
  965. ciris_engine/schemas/telemetry/core.py +252 -0
  966. ciris_engine/schemas/telemetry/unified.py +59 -0
  967. ciris_engine/schemas/tools.py +72 -0
  968. ciris_engine/schemas/types.py +47 -0
  969. ciris_engine/schemas/utils/__init__.py +1 -0
  970. ciris_engine/schemas/utils/config_validator.py +54 -0
  971. ciris_engine/utils/__init__.py +1 -0
  972. ciris_engine/utils/serialization.py +35 -0
  973. ciris_sdk/__init__.py +124 -0
  974. ciris_sdk/auth_store.py +261 -0
  975. ciris_sdk/client.py +261 -0
  976. ciris_sdk/exceptions.py +73 -0
  977. ciris_sdk/model_types.py +258 -0
  978. ciris_sdk/models.py +354 -0
  979. ciris_sdk/pagination.py +214 -0
  980. ciris_sdk/rate_limiter.py +188 -0
  981. ciris_sdk/setup.py +17 -0
  982. ciris_sdk/telemetry_models.py +257 -0
  983. ciris_sdk/telemetry_responses.py +199 -0
  984. ciris_sdk/transport.py +177 -0
  985. ciris_sdk/websocket.py +400 -0
  986. main.py +766 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5009],{636:(e,s,t)=>{Promise.resolve().then(t.bind(t,4811))},3120:(e,s,t)=>{"use strict";t.d(s,{_:()=>n});var a=t(704);function r(){let e=window.location.hostname,s=window.location.pathname,t=s.startsWith("/agent/");if("agents.ciris.ai"!==e&&!t)return{mode:"standalone",agentId:"default",apiBase:"/v1"};{let e="default";e=t?s.split("/")[2]||"default":localStorage.getItem("selectedAgentId")||"default";let a="/api/".concat(e,"/v1");return{mode:"managed",agentId:e,apiBase:a}}}var l=t(5950);class i{configure(e,s){let t,{mode:a}=r();if("managed"===a)t="".concat(window.location.origin,"/api/").concat(e);else{let s=localStorage.getItem("agent_".concat(e,"_api_url"));t=s||window.location.origin}s||(s=l.a.getAccessToken()||void 0);let i={baseURL:t,authToken:s,agentId:e,mode:a};return this.hasConfigChanged(i)&&this.applyConfiguration(i),i}configureForOAuthCallback(e,s){let t,{mode:a}=r(),l={baseURL:"managed"===a?"".concat(window.location.origin,"/api/").concat(e):window.location.origin,authToken:s,agentId:e,mode:a};return this.applyConfiguration(l),this.storeConfiguration(l),l}getCurrentConfig(){return this.currentConfig}isConfiguredFor(e){return!!this.currentConfig&&this.currentConfig.agentId===e&&!!this.currentConfig.authToken}clear(){this.currentConfig=null,localStorage.removeItem("sdk_config"),this.log("SDK configuration cleared")}applyConfiguration(e){this.log("Applying SDK configuration:",e),a.AQ.setConfig({baseURL:e.baseURL,authToken:e.authToken}),this.currentConfig=e,this.log("SDK configured successfully")}hasConfigChanged(e){return!this.currentConfig||this.currentConfig.baseURL!==e.baseURL||this.currentConfig.authToken!==e.authToken||this.currentConfig.agentId!==e.agentId||this.currentConfig.mode!==e.mode}storeConfiguration(e){let s={baseURL:e.baseURL,agentId:e.agentId,mode:e.mode};localStorage.setItem("sdk_config",JSON.stringify(s)),"standalone"===e.mode&&e.baseURL!==window.location.origin&&localStorage.setItem("agent_".concat(e.agentId,"_api_url"),e.baseURL)}restoreConfiguration(){let e=localStorage.getItem("sdk_config");if(!e)return null;try{let s=JSON.parse(e),t=l.a.getAccessToken()||void 0;return{...s,authToken:t}}catch(e){return null}}log(){for(var e=arguments.length,s=Array(e),t=0;t<e;t++)s[t]=arguments[t];this.debugMode&&console.log("[SDKConfigManager]",...s)}constructor(){this.currentConfig=null,this.debugMode=!1}}let n=new i},4811:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>y});var a=t(4568),r=t(7620),l=t(9484),i=t(6264),n=t(704),o=t(6626),d=t(6081),c=t(4893);function m(e){let{user:s,onClose:t,onPasswordChange:i,onMintWA:m,onUpdate:x}=e,{hasRole:u}=(0,l.A)(),[h,g]=(0,r.useState)(!1),[p,f]=(0,r.useState)(null),[y,v]=(0,r.useState)(!1),[j,b]=(0,r.useState)(s.api_role),w=async()=>{try{g(!0),f(null),await n.AQ.users.update(s.user_id,{api_role:j}),v(!1),x()}catch(e){f(e instanceof Error?e.message:"Failed to update role")}finally{g(!1)}},N=async()=>{if(confirm("Are you sure you want to deactivate this user?"))try{g(!0),f(null),await n.AQ.users.deactivate(s.user_id),x(),t()}catch(e){f(e instanceof Error?e.message:"Failed to deactivate user")}finally{g(!1)}};return(0,a.jsx)(o.e.Root,{show:!0,as:r.Fragment,children:(0,a.jsxs)(d.lG,{as:"div",className:"relative z-10",onClose:t,children:[(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-200",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:(0,a.jsx)("div",{className:"fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"})}),(0,a.jsx)("div",{className:"fixed inset-0 z-10 overflow-y-auto",children:(0,a.jsx)("div",{className:"flex min-h-full items-center justify-center p-4 text-center sm:p-0",children:(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",children:(0,a.jsx)(d.lG.Panel,{className:"relative transform overflow-hidden rounded-lg bg-white text-left shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-2xl",children:(0,a.jsxs)("div",{className:"bg-white px-4 pb-4 pt-5 sm:p-6 sm:pb-4",children:[(0,a.jsx)("div",{className:"absolute right-0 top-0 pr-4 pt-4",children:(0,a.jsxs)("button",{type:"button",className:"rounded-md bg-white text-gray-400 hover:text-gray-500",onClick:t,children:[(0,a.jsx)("span",{className:"sr-only",children:"Close"}),(0,a.jsx)(c.fK,{size:"lg",className:"text-gray-400"})]})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(d.lG.Title,{as:"h3",className:"text-lg font-medium leading-6 text-gray-900 mb-4",children:"User Details"}),p&&(0,a.jsx)("div",{className:"mt-4 bg-red-50 border border-red-200 rounded-md p-4",children:(0,a.jsx)("p",{className:"text-sm text-red-600",children:p})}),(0,a.jsxs)("div",{className:"mt-6 space-y-6",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h4",{className:"text-sm font-medium text-gray-900 mb-3",children:"Basic Information"}),(0,a.jsxs)("dl",{className:"grid grid-cols-1 gap-x-4 gap-y-4 sm:grid-cols-2",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"Username"}),(0,a.jsx)("dd",{className:"mt-1 text-sm text-gray-900",children:s.username})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"User ID"}),(0,a.jsx)("dd",{className:"mt-1 text-sm text-gray-900 font-mono text-xs",children:s.user_id})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"Auth Type"}),(0,a.jsxs)("dd",{className:"mt-1 text-sm text-gray-900",children:[s.auth_type,s.oauth_provider&&" (".concat(s.oauth_provider,")")]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"Email"}),(0,a.jsx)("dd",{className:"mt-1 text-sm text-gray-900",children:s.oauth_email||"—"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"Created"}),(0,a.jsx)("dd",{className:"mt-1 text-sm text-gray-900",children:new Date(s.created_at).toLocaleString()})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"Last Login"}),(0,a.jsx)("dd",{className:"mt-1 text-sm text-gray-900",children:s.last_login?new Date(s.last_login).toLocaleString():"Never"})]})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h4",{className:"text-sm font-medium text-gray-900 mb-3",children:"Roles & Permissions"}),(0,a.jsxs)("dl",{className:"space-y-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"API Role"}),(0,a.jsx)("dd",{className:"mt-1 flex items-center",children:y?(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsxs)("select",{value:j,onChange:e=>b(e.target.value),className:"block rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",children:[(0,a.jsx)("option",{value:"OBSERVER",children:"Observer"}),(0,a.jsx)("option",{value:"ADMIN",children:"Admin"}),(0,a.jsx)("option",{value:"AUTHORITY",children:"Authority"}),(0,a.jsx)("option",{value:"SYSTEM_ADMIN",children:"System Admin"})]}),(0,a.jsx)("button",{onClick:w,disabled:h,className:"inline-flex items-center px-3 py-1 border border-transparent text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 disabled:opacity-50",children:"Save"}),(0,a.jsx)("button",{onClick:()=>{v(!1),b(s.api_role)},className:"inline-flex items-center px-3 py-1 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50",children:"Cancel"})]}):(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)("span",{className:"inline-flex px-2 py-1 text-xs font-semibold rounded-full bg-blue-100 text-blue-800",children:s.api_role}),u("SYSTEM_ADMIN")&&(0,a.jsx)("button",{onClick:()=>v(!0),className:"text-sm text-indigo-600 hover:text-indigo-900",children:"Edit"})]})})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"WA Status"}),(0,a.jsxs)("dd",{className:"mt-1 flex items-center justify-between",children:[s.wa_role?(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(c.Zu,{size:"md",className:"text-purple-600"}),(0,a.jsx)("span",{className:"inline-flex px-2 py-1 text-xs font-semibold rounded-full bg-purple-100 text-purple-800 ring-2 ring-purple-600",children:s.wa_role.toUpperCase()}),s.wa_parent_id&&(0,a.jsxs)("span",{className:"text-xs text-gray-500",children:["Minted by: ",s.wa_parent_id]})]}):(0,a.jsx)("span",{className:"text-sm text-gray-500",children:"Not a Wise Authority"}),(u("SYSTEM_ADMIN")||u("AUTHORITY")||u("ADMIN"))&&!s.wa_role&&(0,a.jsxs)("button",{onClick:m,className:"inline-flex items-center px-3 py-1 border border-transparent text-sm font-medium rounded-md text-purple-700 bg-purple-100 hover:bg-purple-200",children:[(0,a.jsx)(c.Zu,{size:"sm",className:"mr-1"}),"Mint as WA"]})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"API Keys"}),(0,a.jsxs)("dd",{className:"mt-1 text-sm text-gray-900",children:[s.api_keys_count," active keys"]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"Permissions"}),(0,a.jsx)("dd",{className:"mt-1",children:(0,a.jsx)("div",{className:"max-h-32 overflow-y-auto",children:(0,a.jsx)("ul",{className:"text-xs space-y-1",children:s.permissions.map(e=>(0,a.jsxs)("li",{className:"text-gray-600",children:["• ",e]},e))})})})]})]})]}),(0,a.jsx)("div",{className:"border-t pt-6",children:(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:["password"===s.auth_type&&(0,a.jsxs)("button",{onClick:i,className:"inline-flex items-center px-4 py-2 border border-gray-300 rounded-md shadow-sm text-sm font-medium text-gray-700 bg-white hover:bg-gray-50",children:[(0,a.jsx)(c.RY,{size:"sm",className:"mr-2"}),"Change Password"]}),u("SYSTEM_ADMIN")&&s.is_active&&(0,a.jsxs)("button",{onClick:N,disabled:h,className:"inline-flex items-center px-4 py-2 border border-red-300 rounded-md shadow-sm text-sm font-medium text-red-700 bg-white hover:bg-red-50 disabled:opacity-50",children:[(0,a.jsx)(c.uc,{size:"sm",className:"mr-2"}),"Deactivate User"]})]})})]})]})]})})})})})]})})}var x=t(3851),u=t(297);function h(e){let{userId:s,username:t,onClose:i,onSuccess:c}=e,{user:m}=(0,l.A)(),[h,g]=(0,r.useState)(""),[p,f]=(0,r.useState)(""),[y,v]=(0,r.useState)(""),[j,b]=(0,r.useState)(!1),[w,N]=(0,r.useState)(null),C=(null==m?void 0:m.user_id)===s,k=async e=>{if(e.preventDefault(),p!==y)return void N("New passwords do not match");if(p.length<8)return void N("Password must be at least 8 characters long");try{b(!0),N(null),await n.AQ.users.changePassword(s,{current_password:h,new_password:p}),c(),i()}catch(e){N(e instanceof Error?e.message:"Failed to change password")}finally{b(!1)}};return(0,a.jsx)(o.e.Root,{show:!0,as:r.Fragment,children:(0,a.jsxs)(d.lG,{as:"div",className:"relative z-10",onClose:i,children:[(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-200",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:(0,a.jsx)("div",{className:"fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"})}),(0,a.jsx)("div",{className:"fixed inset-0 z-10 overflow-y-auto",children:(0,a.jsx)("div",{className:"flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0",children:(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",children:(0,a.jsxs)(d.lG.Panel,{className:"relative transform overflow-hidden rounded-lg bg-white px-4 pt-5 pb-4 text-left shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-md sm:p-6",children:[(0,a.jsx)("div",{className:"absolute top-0 right-0 pt-4 pr-4",children:(0,a.jsxs)("button",{type:"button",className:"rounded-md bg-white text-gray-400 hover:text-gray-500",onClick:i,children:[(0,a.jsx)("span",{className:"sr-only",children:"Close"}),(0,a.jsx)(x.A,{className:"h-6 w-6"})]})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-indigo-100",children:(0,a.jsx)(u.A,{className:"h-6 w-6 text-indigo-600"})}),(0,a.jsxs)("div",{className:"mt-3 text-center sm:mt-5",children:[(0,a.jsx)(d.lG.Title,{as:"h3",className:"text-lg font-medium leading-6 text-gray-900",children:"Change Password"}),(0,a.jsx)("div",{className:"mt-2",children:(0,a.jsx)("p",{className:"text-sm text-gray-500",children:C?"Enter your current password and choose a new one":"Change password for ".concat(t)})})]})]}),w&&(0,a.jsx)("div",{className:"mt-4 bg-red-50 border border-red-200 rounded-md p-4",children:(0,a.jsx)("p",{className:"text-sm text-red-600",children:w})}),(0,a.jsxs)("form",{onSubmit:k,className:"mt-6 space-y-4",children:[C&&(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"current-password",className:"block text-sm font-medium text-gray-700",children:"Current Password"}),(0,a.jsx)("input",{type:"password",id:"current-password",value:h,onChange:e=>g(e.target.value),required:!0,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"new-password",className:"block text-sm font-medium text-gray-700",children:"New Password"}),(0,a.jsx)("input",{type:"password",id:"new-password",value:p,onChange:e=>f(e.target.value),required:!0,minLength:8,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm"}),(0,a.jsx)("p",{className:"mt-1 text-xs text-gray-500",children:"Must be at least 8 characters long"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"confirm-password",className:"block text-sm font-medium text-gray-700",children:"Confirm New Password"}),(0,a.jsx)("input",{type:"password",id:"confirm-password",value:y,onChange:e=>v(e.target.value),required:!0,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm"})]}),!C&&(0,a.jsx)("div",{className:"bg-yellow-50 border border-yellow-200 rounded-md p-3",children:(0,a.jsxs)("p",{className:"text-xs text-yellow-800",children:[(0,a.jsx)("strong",{children:"Note:"})," As a system administrator, you can change this user's password without knowing their current password."]})}),(0,a.jsxs)("div",{className:"mt-5 sm:mt-6 sm:grid sm:grid-flow-row-dense sm:grid-cols-2 sm:gap-3",children:[(0,a.jsx)("button",{type:"submit",disabled:j,className:"inline-flex w-full justify-center rounded-md border border-transparent bg-indigo-600 px-4 py-2 text-base font-medium text-white shadow-sm hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 sm:col-start-2 sm:text-sm disabled:opacity-50",children:j?"Saving...":"Change Password"}),(0,a.jsx)("button",{type:"button",onClick:i,className:"mt-3 inline-flex w-full justify-center rounded-md border border-gray-300 bg-white px-4 py-2 text-base font-medium text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 sm:col-start-1 sm:mt-0 sm:text-sm",children:"Cancel"})]})]})]})})})})]})})}function g(e){let{user:s,onClose:t,onSuccess:l,isSelfMint:i=!1}=e,[m,x]=(0,r.useState)("observer"),[u,h]=(0,r.useState)(""),[g,p]=(0,r.useState)("~/.ciris/wa_keys/root_wa.key"),[f,y]=(0,r.useState)(!1),[v,j]=(0,r.useState)(null),[b,w]=(0,r.useState)(!1),[N,C]=(0,r.useState)(null),[k,A]=(0,r.useState)(!1),[S,_]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=setTimeout(async()=>{if(g){A(!0);try{let e=await n.AQ.users.checkWAKeyExists(g);C(!!e.exists&&!!e.valid_size),e.exists&&e.valid_size&&_(!0)}catch(e){console.error("Failed to check key:",e),C(!1)}finally{A(!1)}}},500);return()=>clearTimeout(e)},[g]);let M=async e=>{e.preventDefault();try{y(!0),j(null);let e={wa_role:m};if(S&&N)e.private_key_path=g;else{if(!u)throw Error("Please provide a signature or enable auto-signing");e.signature=u}await n.AQ.users.mintWiseAuthority(s.user_id,e),l(),t()}catch(e){j(e instanceof Error?e.message:"Failed to mint as Wise Authority")}finally{y(!1)}};return(0,a.jsx)(o.e.Root,{show:!0,as:r.Fragment,children:(0,a.jsxs)(d.lG,{as:"div",className:"relative z-10",onClose:t,children:[(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-200",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:(0,a.jsx)("div",{className:"fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"})}),(0,a.jsx)("div",{className:"fixed inset-0 z-10 overflow-y-auto",children:(0,a.jsx)("div",{className:"flex min-h-screen items-center justify-center p-4 text-center",children:(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",children:(0,a.jsxs)(d.lG.Panel,{className:"relative w-full max-w-lg max-h-[calc(100vh-2rem)] mx-auto bg-white rounded-lg shadow-xl flex flex-col overflow-hidden",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-4 pt-5 pb-4 sm:p-6 border-b",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,a.jsx)("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-purple-100",children:(0,a.jsx)(c.lm,{size:"md",className:"text-purple-600"})}),(0,a.jsx)(d.lG.Title,{as:"h3",className:"text-lg font-medium leading-6 text-gray-900",children:i?"Bootstrap Wise Authority":"Mint as Wise Authority"})]}),(0,a.jsxs)("button",{type:"button",className:"rounded-md bg-white text-gray-400 hover:text-gray-500",onClick:t,children:[(0,a.jsx)("span",{className:"sr-only",children:"Close"}),(0,a.jsx)(c.fK,{size:"lg",className:"text-gray-400"})]})]}),(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 pt-5 pb-4 sm:p-6",children:[(0,a.jsx)("div",{className:"text-center mb-6",children:(0,a.jsx)("p",{className:"text-sm text-gray-500",children:i?(0,a.jsxs)(a.Fragment,{children:["You are about to mint yourself (",(0,a.jsx)("span",{className:"font-medium",children:s.username}),") as the first Wise Authority.",(0,a.jsx)("br",{}),(0,a.jsx)("span",{className:"text-xs text-amber-600 mt-2 block",children:"This requires the root WA private key to sign the transaction."})]}):(0,a.jsxs)(a.Fragment,{children:["Grant Wise Authority status to ",(0,a.jsx)("span",{className:"font-medium",children:s.username})]})})}),v&&(0,a.jsx)("div",{className:"mt-4 bg-red-50 border border-red-200 rounded-md p-4",children:(0,a.jsx)("p",{className:"text-sm text-red-600",children:v})}),(0,a.jsxs)("form",{onSubmit:M,className:"mt-6 space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"wa-role",className:"block text-sm font-medium text-gray-700",children:"WA Role"}),(0,a.jsxs)("select",{id:"wa-role",value:m,onChange:e=>x(e.target.value),className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",children:[(0,a.jsx)("option",{value:"observer",children:"Observer"}),(0,a.jsx)("option",{value:"authority",children:"Authority"})]}),(0,a.jsx)("p",{className:"mt-1 text-xs text-gray-500",children:"authority"===m?"Can approve deferrals and provide guidance":"Can observe and monitor the system"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"private-key-path",className:"block text-sm font-medium text-gray-700",children:"Private Key Path"}),(0,a.jsx)("input",{type:"text",id:"private-key-path",value:g,onChange:e=>p(e.target.value),className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",placeholder:"Path to your ROOT private key file"}),(0,a.jsx)("p",{className:"mt-1 text-xs text-gray-500",children:"Path to your ROOT private key file (e.g., ~/.ciris/wa_keys/root_wa.key)"}),k&&(0,a.jsx)("p",{className:"mt-1 text-xs text-gray-400",children:"Checking key..."}),!k&&null!==N&&(0,a.jsx)("p",{className:"mt-1 text-xs ".concat(N?"text-green-600":"text-red-600"),children:N?"✓ Key found - auto-signing available":"✗ Key not found at this path"})]}),N&&(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)("input",{type:"checkbox",id:"use-auto-sign",checked:S,onChange:e=>_(e.target.checked),className:"h-4 w-4 rounded border-gray-300 text-indigo-600 focus:ring-indigo-500"}),(0,a.jsx)("label",{htmlFor:"use-auto-sign",className:"ml-2 block text-sm text-gray-700",children:"Use auto-signing (sign on server with private key)"})]}),(!S||!N)&&(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("label",{htmlFor:"root-key",className:"block text-sm font-medium text-gray-700",children:"ROOT Signature"}),(0,a.jsx)("button",{type:"button",onClick:()=>w(!b),className:"text-xs text-indigo-600 hover:text-indigo-500",children:"How to sign?"})]}),(0,a.jsx)("textarea",{id:"root-key",value:u,onChange:e=>h(e.target.value),required:!S||!N,rows:3,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm font-mono text-xs",placeholder:"Paste ONLY the signature value (e.g., EjRdHhbaEySL...) - NOT the 'Signature:' prefix"}),(0,a.jsx)("p",{className:"mt-1 text-xs text-gray-500",children:'Paste the base64 signature from the command output (without "Signature:" prefix)'})]}),b&&(0,a.jsxs)("div",{className:"bg-gray-50 rounded-md p-4 text-xs space-y-3",children:[(0,a.jsx)("h5",{className:"font-medium text-gray-900",children:"How to Generate Your Signature:"}),(0,a.jsxs)("div",{className:"bg-blue-50 border border-blue-200 rounded p-3",children:[(0,a.jsx)("p",{className:"font-semibold text-blue-900 mb-2",children:"Step 1: Run this command in your terminal:"}),(0,a.jsxs)("code",{className:"block bg-white p-2 rounded text-xs font-mono break-all border border-blue-300",children:["python /home/emoore/CIRISAgent/scripts/security/sign_wa_mint.py ",s.user_id," ",m," ",g||"~/.ciris/wa_keys/root_wa.key"]})]}),(0,a.jsxs)("div",{className:"bg-green-50 border border-green-200 rounded p-3",children:[(0,a.jsx)("p",{className:"font-semibold text-green-900 mb-1",children:"Step 2: Copy ONLY the signature line:"}),(0,a.jsxs)("div",{className:"bg-white p-2 rounded border border-green-300",children:[(0,a.jsx)("p",{className:"text-gray-600 text-xs",children:"The output will show:"}),(0,a.jsxs)("p",{className:"font-mono text-xs text-gray-500",children:["Message: MINT_WA:",s.user_id,":",m]}),(0,a.jsxs)("p",{className:"font-mono text-xs text-green-700 font-bold",children:["Signature: ",(0,a.jsx)("span",{className:"bg-yellow-100 px-1",children:"EjRdHhbaEySL...us9AAw=="})]}),(0,a.jsx)("p",{className:"text-green-800 mt-2 font-semibold",children:'↑ Copy this value (without "Signature:")'})]})]}),(0,a.jsxs)("div",{className:"bg-amber-50 border border-amber-200 rounded p-3",children:[(0,a.jsx)("p",{className:"font-semibold text-amber-900 mb-1",children:"Step 3: Paste the signature:"}),(0,a.jsx)("p",{className:"text-amber-800",children:'Paste ONLY the base64 string (like "EjRdHhbaEySL...") into the signature field above'})]}),(0,a.jsx)("div",{className:"bg-red-50 border border-red-200 rounded p-2",children:(0,a.jsxs)("p",{className:"text-red-800 text-xs",children:[(0,a.jsx)("strong",{children:"⚠️ Security:"})," Never share your private key. Only paste the signature."]})})]}),(0,a.jsxs)("div",{className:"mt-5 sm:mt-6 sm:grid sm:grid-flow-row-dense sm:grid-cols-2 sm:gap-3",children:[(0,a.jsx)("button",{type:"submit",disabled:f,className:"inline-flex w-full justify-center rounded-md border border-transparent bg-purple-600 px-4 py-2 text-base font-medium text-white shadow-sm hover:bg-purple-700 focus:outline-none focus:ring-2 focus:ring-purple-500 focus:ring-offset-2 sm:col-start-2 sm:text-sm disabled:opacity-50",children:f?"Minting...":"Mint Authority"}),(0,a.jsx)("button",{type:"button",onClick:t,className:"mt-3 inline-flex w-full justify-center rounded-md border border-gray-300 bg-white px-4 py-2 text-base font-medium text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 sm:col-start-1 sm:mt-0 sm:text-sm",children:"Cancel"})]})]})]})]})})})})]})})}function p(e){let{onClose:s}=e,[t,l]=(0,r.useState)([]),[i,m]=(0,r.useState)(!0),[x,u]=(0,r.useState)(null),[h,g]=(0,r.useState)(!1),[p,f]=(0,r.useState)(""),[y,v]=(0,r.useState)(""),[j,b]=(0,r.useState)(""),[w,N]=(0,r.useState)(!1);(0,r.useEffect)(()=>{C()},[]);let C=async()=>{try{m(!0);let e=await n.AQ.auth.listOAuthProviders();l(e.providers)}catch(e){u(e instanceof Error?e.message:"Failed to load OAuth providers")}finally{m(!1)}},k=async e=>{e.preventDefault();try{N(!0),u(null),await n.AQ.auth.configureOAuthProvider(p,y,j),f(""),v(""),b(""),g(!1),await C()}catch(e){u(e instanceof Error?e.message:"Failed to configure provider")}finally{N(!1)}},A=e=>{switch(e.toLowerCase()){case"google":return"\uD83D\uDD35";case"github":return"\uD83D\uDC19";case"discord":return"\uD83D\uDCAC";default:return"\uD83D\uDD11"}};return(0,a.jsx)(o.e.Root,{show:!0,as:r.Fragment,children:(0,a.jsxs)(d.lG,{as:"div",className:"relative z-10",onClose:s,children:[(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-200",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:(0,a.jsx)("div",{className:"fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"})}),(0,a.jsx)("div",{className:"fixed inset-0 z-10 overflow-y-auto",children:(0,a.jsx)("div",{className:"flex min-h-screen items-center justify-center p-4 text-center",children:(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",children:(0,a.jsxs)(d.lG.Panel,{className:"relative w-full max-w-2xl max-h-[calc(100vh-2rem)] mx-auto bg-white rounded-lg shadow-xl flex flex-col overflow-hidden",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-4 pt-5 pb-4 sm:p-6 border-b",children:[(0,a.jsx)(d.lG.Title,{as:"h3",className:"text-lg font-medium leading-6 text-gray-900",children:"OAuth Provider Configuration"}),(0,a.jsxs)("button",{type:"button",className:"rounded-md bg-white text-gray-400 hover:text-gray-500",onClick:s,children:[(0,a.jsx)("span",{className:"sr-only",children:"Close"}),(0,a.jsx)(c.fK,{size:"lg",className:"text-gray-400"})]})]}),(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 pt-5 pb-4 sm:p-6",children:[x&&(0,a.jsx)("div",{className:"mt-4 bg-red-50 border border-red-200 rounded-md p-4",children:(0,a.jsx)("p",{className:"text-sm text-red-600",children:x})}),(0,a.jsx)("div",{className:"mt-6",children:i?(0,a.jsx)("div",{className:"text-center py-12",children:(0,a.jsxs)("div",{className:"inline-flex items-center",children:[(0,a.jsxs)("svg",{className:"animate-spin h-5 w-5 mr-3 text-indigo-600",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,a.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading providers..."]})}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"space-y-3",children:[t.map(e=>(0,a.jsx)("div",{className:"bg-gray-50 rounded-lg p-4",children:(0,a.jsx)("div",{className:"flex items-start justify-between",children:(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)("span",{className:"text-2xl mr-3",children:A(e.provider)}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h4",{className:"text-sm font-medium text-gray-900 capitalize",children:e.provider}),(0,a.jsxs)("p",{className:"text-xs text-gray-500 mt-1",children:["Client ID: ",e.client_id]})]})]}),(0,a.jsxs)("div",{className:"mt-3 text-xs",children:[(0,a.jsx)("p",{className:"text-gray-600",children:"Callback URL:"}),(0,a.jsx)("code",{className:"block mt-1 p-2 bg-gray-100 rounded text-gray-800",children:"".concat(window.location.origin,"/oauth/{agent}/callback")}),(0,a.jsxs)("p",{className:"text-xs text-gray-500 mt-1",children:["Replace ","{agent}"," with: datum, sage, scout, echo-core, or echo-speculative"]})]})]})})},e.provider)),0===t.length&&!h&&(0,a.jsxs)("div",{className:"text-center py-8",children:[(0,a.jsx)("p",{className:"text-gray-500 mb-4",children:"No OAuth providers configured yet"}),(0,a.jsxs)("div",{className:"bg-gray-50 rounded-lg p-4 max-w-lg mx-auto",children:[(0,a.jsx)("p",{className:"text-xs text-gray-600 mb-2",children:"Callback URL format:"}),(0,a.jsxs)("code",{className:"block text-xs p-2 bg-gray-100 rounded text-gray-800",children:[window.location.origin,"/oauth/","{agent}","/callback"]}),(0,a.jsxs)("p",{className:"text-xs text-gray-500 mt-2",children:["Replace ","{agent}"," with: datum, sage, scout, echo-core, or echo-speculative"]})]})]})]}),h?(0,a.jsxs)("form",{onSubmit:k,className:"mt-6 bg-blue-50 rounded-lg p-4",children:[(0,a.jsx)("h4",{className:"text-sm font-medium text-gray-900 mb-4",children:"Add OAuth Provider"}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"provider",className:"block text-sm font-medium text-gray-700",children:"Provider"}),(0,a.jsxs)("select",{id:"provider",value:p,onChange:e=>f(e.target.value),required:!0,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",children:[(0,a.jsx)("option",{value:"",children:"Select a provider"}),(0,a.jsx)("option",{value:"google",children:"Google"}),(0,a.jsx)("option",{value:"github",children:"GitHub"}),(0,a.jsx)("option",{value:"discord",children:"Discord"})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"client-id",className:"block text-sm font-medium text-gray-700",children:"Client ID"}),(0,a.jsx)("input",{type:"text",id:"client-id",value:y,onChange:e=>v(e.target.value),required:!0,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",placeholder:"Your OAuth app client ID"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"client-secret",className:"block text-sm font-medium text-gray-700",children:"Client Secret"}),(0,a.jsx)("input",{type:"password",id:"client-secret",value:j,onChange:e=>b(e.target.value),required:!0,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",placeholder:"Your OAuth app client secret"})]}),(0,a.jsxs)("div",{className:"flex justify-end space-x-2",children:[(0,a.jsx)("button",{type:"button",onClick:()=>{g(!1),f(""),v(""),b("")},className:"inline-flex items-center px-4 py-2 border border-gray-300 rounded-md shadow-sm text-sm font-medium text-gray-700 bg-white hover:bg-gray-50",children:"Cancel"}),(0,a.jsx)("button",{type:"submit",disabled:w,className:"inline-flex items-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 disabled:opacity-50",children:w?"Saving...":"Add Provider"})]})]})]}):(0,a.jsx)("div",{className:"mt-6",children:(0,a.jsxs)("button",{onClick:()=>g(!0),className:"inline-flex items-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700",children:[(0,a.jsx)(c.c1,{size:"sm",className:"mr-2"}),"Add Provider"]})}),(0,a.jsxs)("div",{className:"mt-6 bg-yellow-50 border border-yellow-200 rounded-md p-4",children:[(0,a.jsx)("h5",{className:"text-sm font-medium text-yellow-800 mb-2",children:"Setup Instructions"}),(0,a.jsxs)("ol",{className:"text-xs text-yellow-700 space-y-1 list-decimal list-inside",children:[(0,a.jsx)("li",{children:"Create an OAuth app in your provider's developer console"}),(0,a.jsx)("li",{children:"Set the redirect URI to the callback URL shown above"}),(0,a.jsx)("li",{children:"Copy the client ID and secret from your OAuth app"}),(0,a.jsx)("li",{children:"Configure the provider here with those credentials"}),(0,a.jsx)("li",{children:"OAuth login buttons will appear on the login page"})]})]})]})})]})]})})})})]})})}function f(e){let{onClose:s,onSuccess:t}=e,[l,i]=(0,r.useState)(""),[m,x]=(0,r.useState)(""),[u,h]=(0,r.useState)(""),[g,p]=(0,r.useState)("OBSERVER"),[f,y]=(0,r.useState)(!1),[v,j]=(0,r.useState)(null),b=async e=>{if(e.preventDefault(),m!==u)return void j("Passwords do not match");if(m.length<8)return void j("Password must be at least 8 characters long");try{y(!0),j(null),await n.AQ.users.create({username:l,password:m,api_role:g}),t(),s()}catch(e){j(e instanceof Error?e.message:"Failed to create user")}finally{y(!1)}};return(0,a.jsx)(o.e.Root,{show:!0,as:r.Fragment,children:(0,a.jsxs)(d.lG,{as:"div",className:"relative z-10",onClose:s,children:[(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-200",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:(0,a.jsx)("div",{className:"fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"})}),(0,a.jsx)("div",{className:"fixed inset-0 z-10 overflow-y-auto",children:(0,a.jsx)("div",{className:"flex min-h-screen items-center justify-center p-4 text-center",children:(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",children:(0,a.jsxs)(d.lG.Panel,{className:"relative w-full max-w-lg max-h-[calc(100vh-2rem)] mx-auto bg-white rounded-lg shadow-xl flex flex-col overflow-hidden",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-4 pt-5 pb-4 sm:p-6 border-b",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,a.jsx)("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-indigo-100",children:(0,a.jsx)(c.Rv,{size:"md",className:"text-indigo-600"})}),(0,a.jsx)(d.lG.Title,{as:"h3",className:"text-lg font-medium leading-6 text-gray-900",children:"Add New User"})]}),(0,a.jsxs)("button",{type:"button",className:"rounded-md bg-white text-gray-400 hover:text-gray-500",onClick:s,children:[(0,a.jsx)("span",{className:"sr-only",children:"Close"}),(0,a.jsx)(c.fK,{size:"lg",className:"text-gray-400"})]})]}),(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 pt-5 pb-4 sm:p-6",children:[(0,a.jsx)("div",{className:"text-center mb-6",children:(0,a.jsx)("p",{className:"text-sm text-gray-500",children:"Create a new user account with password authentication"})}),v&&(0,a.jsx)("div",{className:"mt-4 bg-red-50 border border-red-200 rounded-md p-4",children:(0,a.jsx)("p",{className:"text-sm text-red-600",children:v})}),(0,a.jsxs)("form",{onSubmit:b,className:"mt-6 space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"username",className:"block text-sm font-medium text-gray-700",children:"Username"}),(0,a.jsx)("input",{type:"text",id:"username",value:l,onChange:e=>i(e.target.value),required:!0,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",placeholder:"Enter username"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"password",className:"block text-sm font-medium text-gray-700",children:"Password"}),(0,a.jsx)("input",{type:"password",id:"password",value:m,onChange:e=>x(e.target.value),required:!0,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",placeholder:"Enter password"}),(0,a.jsx)("p",{className:"mt-1 text-xs text-gray-500",children:"Must be at least 8 characters long"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"confirm-password",className:"block text-sm font-medium text-gray-700",children:"Confirm Password"}),(0,a.jsx)("input",{type:"password",id:"confirm-password",value:u,onChange:e=>h(e.target.value),required:!0,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",placeholder:"Confirm password"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"api-role",className:"block text-sm font-medium text-gray-700",children:"API Role"}),(0,a.jsxs)("select",{id:"api-role",value:g,onChange:e=>p(e.target.value),className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",children:[(0,a.jsx)("option",{value:"OBSERVER",children:"Observer"}),(0,a.jsx)("option",{value:"ADMIN",children:"Admin"}),(0,a.jsx)("option",{value:"AUTHORITY",children:"Authority"}),(0,a.jsx)("option",{value:"SYSTEM_ADMIN",children:"System Admin"})]}),(0,a.jsxs)("p",{className:"mt-1 text-xs text-gray-500",children:["OBSERVER"===g&&"Can view data but not make changes","ADMIN"===g&&"Can manage users and configuration","AUTHORITY"===g&&"Can view WA deferrals and guidance","SYSTEM_ADMIN"===g&&"Full system access and control"]})]}),(0,a.jsxs)("div",{className:"mt-5 sm:mt-6 sm:grid sm:grid-flow-row-dense sm:grid-cols-2 sm:gap-3",children:[(0,a.jsx)("button",{type:"submit",disabled:f,className:"inline-flex w-full justify-center rounded-md border border-transparent bg-indigo-600 px-4 py-2 text-base font-medium text-white shadow-sm hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 sm:col-start-2 sm:text-sm disabled:opacity-50",children:f?"Creating...":"Create User"}),(0,a.jsx)("button",{type:"button",onClick:s,className:"mt-3 inline-flex w-full justify-center rounded-md border border-gray-300 bg-white px-4 py-2 text-base font-medium text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 sm:col-start-1 sm:mt-0 sm:text-sm",children:"Cancel"})]})]})]})]})})})})]})})}function y(){let{hasRole:e,user:s}=(0,l.A)(),[t,o]=(0,r.useState)([]),[d,x]=(0,r.useState)(!0),[u,y]=(0,r.useState)(null),[v,j]=(0,r.useState)(null),[b,w]=(0,r.useState)(null),[N,C]=(0,r.useState)(null),[k,A]=(0,r.useState)(!1),[S,_]=(0,r.useState)(!1),[M,R]=(0,r.useState)(!1),[z,T]=(0,r.useState)(null),[F,I]=(0,r.useState)(1),[E,L]=(0,r.useState)(1),[O,P]=(0,r.useState)(""),[D,B]=(0,r.useState)(""),[U,H]=(0,r.useState)("");(0,r.useEffect)(()=>{W()},[F,O,D,U]),(0,r.useEffect)(()=>{(async()=>{if(null==s?void 0:s.user_id)try{let e=await n.AQ.users.get(s.user_id);T(e)}catch(e){console.error("Failed to load current user details:",e)}})()},[s]);let W=async()=>{try{x(!0);let e=await n.AQ.users.list({page:F,page_size:20,search:O||void 0,api_role:D||void 0,auth_type:U||void 0});o(e.items),L(e.pages)}catch(e){y(e instanceof Error?e.message:"Failed to load users")}finally{x(!1)}},Y=t.some(e=>null!==e.wa_role&&void 0!==e.wa_role),V=async e=>{try{let s=await n.AQ.users.get(e);j(s)}catch(e){y(e instanceof Error?e.message:"Failed to load user details")}},G=e=>{switch(e){case"SYSTEM_ADMIN":return"bg-red-100 text-red-800";case"AUTHORITY":return"bg-purple-100 text-purple-800";case"ADMIN":return"bg-blue-100 text-blue-800";default:return"bg-gray-100 text-gray-800"}},Q=e=>{switch(e){case"authority":return"bg-purple-100 text-purple-800 ring-2 ring-purple-600";case"admin":return"bg-blue-100 text-blue-800 ring-2 ring-blue-600";case"root":return"bg-red-100 text-red-800 ring-2 ring-red-600";default:return"bg-green-100 text-green-800"}};return(0,a.jsxs)(i.O,{requiredRole:"ADMIN",children:[(0,a.jsxs)("div",{className:"px-4 sm:px-6 lg:px-8",children:[(0,a.jsxs)("div",{className:"sm:flex sm:items-center",children:[(0,a.jsxs)("div",{className:"sm:flex-auto",children:[(0,a.jsx)("h1",{className:"text-2xl font-semibold text-gray-900",children:"User Management"}),(0,a.jsx)("p",{className:"mt-2 text-sm text-gray-700",children:"Manage users, roles, and Wise Authority assignments"})]}),(0,a.jsxs)("div",{className:"mt-4 sm:mt-0 sm:ml-16 sm:flex-none space-x-2",children:[z&&!z.wa_role&&(!Y||e("SYSTEM_ADMIN")||e("ADMIN"))&&(0,a.jsxs)("button",{onClick:()=>{C(z),R(!0)},className:"inline-flex items-center px-4 py-2 border border-purple-300 rounded-md shadow-sm text-sm font-medium text-purple-700 bg-purple-50 hover:bg-purple-100",title:Y?"Mint yourself as Wise Authority":"Bootstrap first Wise Authority",children:[(0,a.jsx)(c.Zu,{size:"md",className:"-ml-1 mr-2 text-purple-600"}),Y?"Self-Mint as WA":"Bootstrap First WA"]}),e("SYSTEM_ADMIN")&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("button",{onClick:()=>A(!0),className:"inline-flex items-center px-4 py-2 border border-gray-300 rounded-md shadow-sm text-sm font-medium text-gray-700 bg-white hover:bg-gray-50",children:[(0,a.jsx)(c.RY,{size:"md",className:"-ml-1 mr-2 text-gray-500"}),"OAuth Config"]}),(0,a.jsxs)("button",{onClick:()=>_(!0),className:"inline-flex items-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700",children:[(0,a.jsx)(c.Rv,{size:"md",className:"-ml-1 mr-2"}),"Add User"]})]})]})]}),(0,a.jsxs)("div",{className:"mt-6 grid grid-cols-1 gap-4 sm:grid-cols-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"search",className:"block text-sm font-medium text-gray-700",children:"Search"}),(0,a.jsx)("input",{type:"text",id:"search",value:O,onChange:e=>P(e.target.value),className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",placeholder:"Search by name..."})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"role",className:"block text-sm font-medium text-gray-700",children:"API Role"}),(0,a.jsxs)("select",{id:"role",value:D,onChange:e=>B(e.target.value),className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",children:[(0,a.jsx)("option",{value:"",children:"All Roles"}),(0,a.jsx)("option",{value:"OBSERVER",children:"Observer"}),(0,a.jsx)("option",{value:"ADMIN",children:"Admin"}),(0,a.jsx)("option",{value:"AUTHORITY",children:"Authority"}),(0,a.jsx)("option",{value:"SYSTEM_ADMIN",children:"System Admin"})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"auth-type",className:"block text-sm font-medium text-gray-700",children:"Auth Type"}),(0,a.jsxs)("select",{id:"auth-type",value:U,onChange:e=>H(e.target.value),className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",children:[(0,a.jsx)("option",{value:"",children:"All Types"}),(0,a.jsx)("option",{value:"password",children:"Password"}),(0,a.jsx)("option",{value:"oauth",children:"OAuth"}),(0,a.jsx)("option",{value:"api_key",children:"API Key"})]})]})]}),(0,a.jsx)("div",{className:"mt-8 flex flex-col",children:(0,a.jsx)("div",{className:"-my-2 -mx-4 overflow-x-auto sm:-mx-6 lg:-mx-8",children:(0,a.jsx)("div",{className:"inline-block min-w-full py-2 align-middle md:px-6 lg:px-8",children:(0,a.jsx)("div",{className:"overflow-hidden shadow ring-1 ring-black ring-opacity-5 md:rounded-lg",children:d?(0,a.jsx)("div",{className:"text-center py-12",children:(0,a.jsxs)("div",{className:"inline-flex items-center",children:[(0,a.jsxs)("svg",{className:"animate-spin h-5 w-5 mr-3 text-indigo-600",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,a.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading users..."]})}):u?(0,a.jsx)("div",{className:"text-center py-12",children:(0,a.jsx)("p",{className:"text-red-600",children:u})}):(0,a.jsxs)("table",{className:"min-w-full divide-y divide-gray-300",children:[(0,a.jsx)("thead",{className:"bg-gray-50",children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"User"}),(0,a.jsx)("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Auth Type"}),(0,a.jsx)("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"API Role"}),(0,a.jsx)("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"WA Status"}),(0,a.jsx)("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Last Login"}),(0,a.jsx)("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Status"}),(0,a.jsx)("th",{className:"relative px-6 py-3",children:(0,a.jsx)("span",{className:"sr-only",children:"Actions"})})]})}),(0,a.jsx)("tbody",{className:"bg-white divide-y divide-gray-200",children:t.map(e=>(0,a.jsxs)("tr",{className:"hover:bg-gray-50",children:[(0,a.jsx)("td",{className:"px-6 py-4 whitespace-nowrap",children:(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-sm font-medium text-gray-900",children:e.username}),(0,a.jsx)("div",{className:"text-sm text-gray-500",children:e.oauth_email||e.user_id})]})}),(0,a.jsx)("td",{className:"px-6 py-4 whitespace-nowrap",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)("span",{className:"text-sm text-gray-900",children:e.auth_type}),e.oauth_provider&&(0,a.jsxs)("span",{className:"ml-2 text-xs text-gray-500",children:["(",e.oauth_provider,")"]})]})}),(0,a.jsx)("td",{className:"px-6 py-4 whitespace-nowrap",children:(0,a.jsx)("span",{className:"inline-flex px-2 py-1 text-xs font-semibold rounded-full ".concat(G(e.api_role)),children:e.api_role})}),(0,a.jsx)("td",{className:"px-6 py-4 whitespace-nowrap",children:e.wa_role?(0,a.jsxs)("span",{className:"inline-flex px-2 py-1 text-xs font-semibold rounded-full ".concat(Q(e.wa_role)),children:[(0,a.jsx)(c.Zu,{size:"xs",className:"mr-1"}),e.wa_role.toUpperCase()]}):(0,a.jsx)("span",{className:"text-sm text-gray-500",children:"—"})}),(0,a.jsx)("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-500",children:e.last_login?new Date(e.last_login).toLocaleDateString():"Never"}),(0,a.jsx)("td",{className:"px-6 py-4 whitespace-nowrap",children:e.is_active?(0,a.jsx)("span",{className:"inline-flex px-2 py-1 text-xs font-semibold text-green-800 bg-green-100 rounded-full",children:"Active"}):(0,a.jsx)("span",{className:"inline-flex px-2 py-1 text-xs font-semibold text-red-800 bg-red-100 rounded-full",children:"Inactive"})}),(0,a.jsx)("td",{className:"px-6 py-4 whitespace-nowrap text-right text-sm font-medium",children:(0,a.jsx)("button",{onClick:()=>V(e.user_id),className:"text-indigo-600 hover:text-indigo-900",children:(0,a.jsx)(c.vK,{size:"md"})})})]},e.user_id))})]})})})})}),E>1&&(0,a.jsxs)("div",{className:"mt-4 flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex-1 flex justify-between sm:hidden",children:[(0,a.jsx)("button",{onClick:()=>I(Math.max(1,F-1)),disabled:1===F,className:"relative inline-flex items-center px-4 py-2 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 disabled:opacity-50",children:"Previous"}),(0,a.jsx)("button",{onClick:()=>I(Math.min(E,F+1)),disabled:F===E,className:"ml-3 relative inline-flex items-center px-4 py-2 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 disabled:opacity-50",children:"Next"})]}),(0,a.jsxs)("div",{className:"hidden sm:flex-1 sm:flex sm:items-center sm:justify-between",children:[(0,a.jsx)("div",{children:(0,a.jsxs)("p",{className:"text-sm text-gray-700",children:["Page ",(0,a.jsx)("span",{className:"font-medium",children:F})," of"," ",(0,a.jsx)("span",{className:"font-medium",children:E})]})}),(0,a.jsx)("div",{children:(0,a.jsxs)("nav",{className:"relative z-0 inline-flex rounded-md shadow-sm -space-x-px",children:[(0,a.jsx)("button",{onClick:()=>I(Math.max(1,F-1)),disabled:1===F,className:"relative inline-flex items-center px-2 py-2 rounded-l-md border border-gray-300 bg-white text-sm font-medium text-gray-500 hover:bg-gray-50 disabled:opacity-50",children:"Previous"}),(0,a.jsx)("button",{onClick:()=>I(Math.min(E,F+1)),disabled:F===E,className:"relative inline-flex items-center px-2 py-2 rounded-r-md border border-gray-300 bg-white text-sm font-medium text-gray-500 hover:bg-gray-50 disabled:opacity-50",children:"Next"})]})})]})]})]}),v&&(0,a.jsx)(m,{user:v,onClose:()=>j(null),onPasswordChange:()=>{w(v),j(null)},onMintWA:()=>{C(v),j(null)},onUpdate:()=>{W(),V(v.user_id)}}),b&&(0,a.jsx)(h,{userId:b.user_id,username:b.username,onClose:()=>w(null),onSuccess:()=>{w(null),W()}}),N&&(0,a.jsx)(g,{user:N,onClose:()=>{C(null),R(!1)},onSuccess:()=>{C(null),R(!1),W(),M&&(null==s?void 0:s.user_id)&&n.AQ.users.get(s.user_id).then(T)},isSelfMint:M}),k&&(0,a.jsx)(p,{onClose:()=>A(!1)}),S&&(0,a.jsx)(f,{onClose:()=>_(!1),onSuccess:()=>{_(!1),W()}})]})}},4893:(e,s,t)=>{"use strict";t.d(s,{DP:()=>f,HG:()=>m,Nl:()=>o,O4:()=>c,Pi:()=>i,RR:()=>h,RY:()=>u,Rv:()=>y,XR:()=>n,Zu:()=>j,bN:()=>g,c1:()=>w,fC:()=>N,fK:()=>v,lm:()=>p,md:()=>A,mo:()=>l,uc:()=>b,ui:()=>d,vK:()=>x,xZ:()=>C,xm:()=>k});var a=t(4568);t(7620);let r={xs:{width:12,height:12},sm:{width:16,height:16},md:{width:20,height:20},lg:{width:24,height:24}},l=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z",clipRule:"evenodd"})})},i=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})})},n=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{d:"M11 17a1 1 0 001.447.894l4-2A1 1 0 0017 15V9.236a1 1 0 00-1.447-.894l-4 2a1 1 0 00-.553.894V17zM15.211 6.276a1 1 0 000-1.788l-4.764-2.382a1 1 0 00-.894 0L4.789 4.488a1 1 0 000 1.788l4.764 2.382a1 1 0 00.894 0l4.764-2.382zM4.447 8.342A1 1 0 003 9.236V15a1 1 0 00.553.894l4 2A1 1 0 009 17v-5.764a1 1 0 00-.553-.894l-4-2z"})})},o=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsxs)("svg",{className:"animate-spin ".concat(s),width:l,height:i,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,a.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})},d=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"})})},c=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})})},m=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z"})})},x=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",clipRule:"evenodd"})})},u=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M18 8a6 6 0 01-7.743 5.743L10 14l-1 1-1 1H6v2H2v-4l4.257-4.257A6 6 0 1118 8zm-6-4a1 1 0 100 2 2 2 0 012 2 1 1 0 102 0 4 4 0 00-4-4z",clipRule:"evenodd"})})},h=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M2 5a2 2 0 012-2h12a2 2 0 012 2v2a2 2 0 01-2 2H4a2 2 0 01-2-2V5zm14 1a1 1 0 11-2 0 1 1 0 012 0zM2 13a2 2 0 012-2h12a2 2 0 012 2v2a2 2 0 01-2 2H4a2 2 0 01-2-2v-2zm14 1a1 1 0 11-2 0 1 1 0 012 0z",clipRule:"evenodd"})})},g=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsxs)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:[(0,a.jsx)("path",{d:"M3 12v3c0 1.657 3.134 3 7 3s7-1.343 7-3v-3c0 1.657-3.134 3-7 3s-7-1.343-7-3z"}),(0,a.jsx)("path",{d:"M3 7v3c0 1.657 3.134 3 7 3s7-1.343 7-3V7c0 1.657-3.134 3-7 3S3 8.657 3 7z"}),(0,a.jsx)("path",{d:"M17 5c0 1.657-3.134 3-7 3S3 6.657 3 5s3.134-3 7-3 7 1.343 7 3z"})]})},p=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M2.166 4.999A11.954 11.954 0 0010 1.944 11.954 11.954 0 0017.834 5c.11.65.166 1.32.166 2.001 0 5.225-3.34 9.67-8 11.317C5.34 16.67 2 12.225 2 7c0-.682.057-1.35.166-2.001zm11.541 3.708a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})})},f=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M11.49 3.17c-.38-1.56-2.6-1.56-2.98 0a1.532 1.532 0 01-2.286.948c-1.372-.836-2.942.734-2.106 2.106.54.886.061 2.042-.947 2.287-1.561.379-1.561 2.6 0 2.978a1.532 1.532 0 01.947 2.287c-.836 1.372.734 2.942 2.106 2.106a1.532 1.532 0 012.287.947c.379 1.561 2.6 1.561 2.978 0a1.533 1.533 0 012.287-.947c1.372.836 2.942-.734 2.106-2.106a1.533 1.533 0 01.947-2.287c1.561-.379 1.561-2.6 0-2.978a1.532 1.532 0 01-.947-2.287c.836-1.372-.734-2.942-2.106-2.106a1.532 1.532 0 01-2.287-.947zM10 13a3 3 0 100-6 3 3 0 000 6z",clipRule:"evenodd"})})},y=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{d:"M8 9a3 3 0 100-6 3 3 0 000 6zM8 11a6 6 0 016 6H2a6 6 0 016-6zM16 7a1 1 0 10-2 0v1h-1a1 1 0 100 2h1v1a1 1 0 102 0v-1h1a1 1 0 100-2h-1V7z"})})},v=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})})},j=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M2.166 4.999A11.954 11.954 0 0010 1.944 11.954 11.954 0 0017.834 5c.11.65.166 1.32.166 2.001 0 5.225-3.34 9.67-8 11.317C5.34 16.67 2 12.225 2 7c0-.682.057-1.35.166-2.001zm11.541 3.708a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})})},b=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z",clipRule:"evenodd"})})},w=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M10 3a1 1 0 011 1v5h5a1 1 0 110 2h-5v5a1 1 0 11-2 0v-5H4a1 1 0 110-2h5V4a1 1 0 011-1z",clipRule:"evenodd"})})},N=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})})},C=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 10V3L4 14h7v7l9-11h-7z"})})},k=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})})},A=e=>{let{status:s,className:t=""}=e;return(0,a.jsx)("span",{className:"w-3 h-3 rounded-full ".concat({green:"bg-green-500",yellow:"bg-yellow-500",red:"bg-red-500",gray:"bg-gray-500"}[s]," ").concat(t)})}},6264:(e,s,t)=>{"use strict";t.d(s,{O:()=>n});var a=t(4568),r=t(7620),l=t(2942),i=t(9484);function n(e){let{children:s,requiredRole:t,requiredPermission:n}=e,{user:o,loading:d,hasRole:c,hasPermission:m}=(0,i.A)(),x=(0,l.useRouter)();return((0,r.useEffect)(()=>{if(!d){if(!o)return void x.push("/login");if(t&&!c(t)||n&&!m(n))return void x.push("/unauthorized")}},[o,d,t,n,c,m,x]),d)?(0,a.jsx)("div",{className:"flex items-center justify-center min-h-screen",children:(0,a.jsx)("div",{className:"text-lg",children:"Loading..."})}):o&&(!t||c(t))&&(!n||m(n))?(0,a.jsx)(a.Fragment,{children:s}):null}},9484:(e,s,t)=>{"use strict";t.d(s,{A:()=>m,O:()=>c});var a=t(4568),r=t(7620),l=t(2942),i=t(3237),n=t(704),o=t(3120);let d=(0,r.createContext)(void 0);function c(e){let{children:s}=e,[t,c]=(0,r.useState)(null),[m,x]=(0,r.useState)(!0),[u,h]=(0,r.useState)(null),g=(0,l.useRouter)();(0,r.useEffect)(()=>{let e=window.location.pathname;"/login"===e||e.startsWith("/manager")?x(!1):p();let s=localStorage.getItem("manager_token");s&&h(s)},[]);let p=async()=>{try{if(n.AQ.isAuthenticated()){let e=await n.AQ.auth.getMe();c(e)}}catch(e){console.error("Auth check failed:",e)}finally{x(!1)}},f=(0,r.useCallback)(async(e,s)=>{try{let t=localStorage.getItem("selectedAgentId");if(!t)throw Error("No agent selected");o._.configure(t);let a=await n.AQ.login(e,s),r=n.AQ.auth.getAccessToken();r&&o._.configure(t,r),c(a),i.Ay.success("Welcome, ".concat(a.username||a.user_id,"!")),g.push("/")}catch(e){throw i.Ay.error(e.message||"Login failed"),e}},[g]),y=(0,r.useCallback)(async()=>{try{await n.AQ.logout(),c(null),i.Ay.success("Logged out successfully"),g.push("/login")}catch(e){console.error("Logout failed:",e),i.Ay.error("Logout failed")}},[g]),v=(0,r.useCallback)(e=>!!t&&(t.permissions.includes(e)||"SYSTEM_ADMIN"===t.role),[t]),j=(0,r.useCallback)(e=>{if(!t)return!1;let s=["OBSERVER","ADMIN","AUTHORITY","SYSTEM_ADMIN"];return s.indexOf(t.role)>=s.indexOf(e)},[t]),b=(0,r.useCallback)(e=>{n.AQ.setConfig({authToken:e})},[]),w=(0,r.useCallback)(()=>!!u,[u]);return(0,a.jsx)(d.Provider,{value:{user:t,loading:m,login:f,logout:y,hasPermission:v,hasRole:j,setUser:c,setToken:b,managerToken:u,setManagerToken:h,isManagerAuthenticated:w},children:s})}function m(){let e=(0,r.useContext)(d);if(void 0===e)throw Error("useAuth must be used within an AuthProvider");return e}}},e=>{var s=s=>e(e.s=s);e.O(0,[4534,8386,704,587,8315,7358],()=>s(636)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5009],{3120:(e,s,t)=>{"use strict";t.d(s,{_:()=>n});var a=t(704);function r(){let e=window.location.hostname,s=window.location.pathname,t=s.startsWith("/agent/");if("agents.ciris.ai"!==e&&!t)return{mode:"standalone",agentId:"default",apiBase:"/v1"};{let e="default";e=t?s.split("/")[2]||"default":localStorage.getItem("selectedAgentId")||"default";let a="/api/".concat(e,"/v1");return{mode:"managed",agentId:e,apiBase:a}}}var l=t(5950);class i{configure(e,s){let t,{mode:a}=r();if("managed"===a)t="".concat(window.location.origin,"/api/").concat(e);else{let s=localStorage.getItem("agent_".concat(e,"_api_url"));t=s||window.location.origin}s||(s=l.a.getAccessToken()||void 0);let i={baseURL:t,authToken:s,agentId:e,mode:a};return this.hasConfigChanged(i)&&this.applyConfiguration(i),i}configureForOAuthCallback(e,s){let t,{mode:a}=r(),l={baseURL:"managed"===a?"".concat(window.location.origin,"/api/").concat(e):window.location.origin,authToken:s,agentId:e,mode:a};return this.applyConfiguration(l),this.storeConfiguration(l),l}getCurrentConfig(){return this.currentConfig}isConfiguredFor(e){return!!this.currentConfig&&this.currentConfig.agentId===e&&!!this.currentConfig.authToken}clear(){this.currentConfig=null,localStorage.removeItem("sdk_config"),this.log("SDK configuration cleared")}applyConfiguration(e){this.log("Applying SDK configuration:",e),a.AQ.setConfig({baseURL:e.baseURL,authToken:e.authToken}),this.currentConfig=e,this.log("SDK configured successfully")}hasConfigChanged(e){return!this.currentConfig||this.currentConfig.baseURL!==e.baseURL||this.currentConfig.authToken!==e.authToken||this.currentConfig.agentId!==e.agentId||this.currentConfig.mode!==e.mode}storeConfiguration(e){let s={baseURL:e.baseURL,agentId:e.agentId,mode:e.mode};localStorage.setItem("sdk_config",JSON.stringify(s)),"standalone"===e.mode&&e.baseURL!==window.location.origin&&localStorage.setItem("agent_".concat(e.agentId,"_api_url"),e.baseURL)}restoreConfiguration(){let e=localStorage.getItem("sdk_config");if(!e)return null;try{let s=JSON.parse(e),t=l.a.getAccessToken()||void 0;return{...s,authToken:t}}catch(e){return null}}log(){for(var e=arguments.length,s=Array(e),t=0;t<e;t++)s[t]=arguments[t];this.debugMode&&console.log("[SDKConfigManager]",...s)}constructor(){this.currentConfig=null,this.debugMode=!1}}let n=new i},4811:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>y});var a=t(4568),r=t(7620),l=t(9484),i=t(6264),n=t(704),o=t(6626),d=t(6081),c=t(4893);function m(e){let{user:s,onClose:t,onPasswordChange:i,onMintWA:m,onUpdate:x}=e,{hasRole:u}=(0,l.A)(),[h,g]=(0,r.useState)(!1),[p,f]=(0,r.useState)(null),[y,v]=(0,r.useState)(!1),[j,b]=(0,r.useState)(s.api_role),w=async()=>{try{g(!0),f(null),await n.AQ.users.update(s.user_id,{api_role:j}),v(!1),x()}catch(e){f(e instanceof Error?e.message:"Failed to update role")}finally{g(!1)}},N=async()=>{if(confirm("Are you sure you want to deactivate this user?"))try{g(!0),f(null),await n.AQ.users.deactivate(s.user_id),x(),t()}catch(e){f(e instanceof Error?e.message:"Failed to deactivate user")}finally{g(!1)}};return(0,a.jsx)(o.e.Root,{show:!0,as:r.Fragment,children:(0,a.jsxs)(d.lG,{as:"div",className:"relative z-10",onClose:t,children:[(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-200",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:(0,a.jsx)("div",{className:"fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"})}),(0,a.jsx)("div",{className:"fixed inset-0 z-10 overflow-y-auto",children:(0,a.jsx)("div",{className:"flex min-h-full items-center justify-center p-4 text-center sm:p-0",children:(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",children:(0,a.jsx)(d.lG.Panel,{className:"relative transform overflow-hidden rounded-lg bg-white text-left shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-2xl",children:(0,a.jsxs)("div",{className:"bg-white px-4 pb-4 pt-5 sm:p-6 sm:pb-4",children:[(0,a.jsx)("div",{className:"absolute right-0 top-0 pr-4 pt-4",children:(0,a.jsxs)("button",{type:"button",className:"rounded-md bg-white text-gray-400 hover:text-gray-500",onClick:t,children:[(0,a.jsx)("span",{className:"sr-only",children:"Close"}),(0,a.jsx)(c.fK,{size:"lg",className:"text-gray-400"})]})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(d.lG.Title,{as:"h3",className:"text-lg font-medium leading-6 text-gray-900 mb-4",children:"User Details"}),p&&(0,a.jsx)("div",{className:"mt-4 bg-red-50 border border-red-200 rounded-md p-4",children:(0,a.jsx)("p",{className:"text-sm text-red-600",children:p})}),(0,a.jsxs)("div",{className:"mt-6 space-y-6",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h4",{className:"text-sm font-medium text-gray-900 mb-3",children:"Basic Information"}),(0,a.jsxs)("dl",{className:"grid grid-cols-1 gap-x-4 gap-y-4 sm:grid-cols-2",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"Username"}),(0,a.jsx)("dd",{className:"mt-1 text-sm text-gray-900",children:s.username})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"User ID"}),(0,a.jsx)("dd",{className:"mt-1 text-sm text-gray-900 font-mono text-xs",children:s.user_id})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"Auth Type"}),(0,a.jsxs)("dd",{className:"mt-1 text-sm text-gray-900",children:[s.auth_type,s.oauth_provider&&" (".concat(s.oauth_provider,")")]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"Email"}),(0,a.jsx)("dd",{className:"mt-1 text-sm text-gray-900",children:s.oauth_email||"—"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"Created"}),(0,a.jsx)("dd",{className:"mt-1 text-sm text-gray-900",children:new Date(s.created_at).toLocaleString()})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"Last Login"}),(0,a.jsx)("dd",{className:"mt-1 text-sm text-gray-900",children:s.last_login?new Date(s.last_login).toLocaleString():"Never"})]})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h4",{className:"text-sm font-medium text-gray-900 mb-3",children:"Roles & Permissions"}),(0,a.jsxs)("dl",{className:"space-y-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"API Role"}),(0,a.jsx)("dd",{className:"mt-1 flex items-center",children:y?(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsxs)("select",{value:j,onChange:e=>b(e.target.value),className:"block rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",children:[(0,a.jsx)("option",{value:"OBSERVER",children:"Observer"}),(0,a.jsx)("option",{value:"ADMIN",children:"Admin"}),(0,a.jsx)("option",{value:"AUTHORITY",children:"Authority"}),(0,a.jsx)("option",{value:"SYSTEM_ADMIN",children:"System Admin"})]}),(0,a.jsx)("button",{onClick:w,disabled:h,className:"inline-flex items-center px-3 py-1 border border-transparent text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 disabled:opacity-50",children:"Save"}),(0,a.jsx)("button",{onClick:()=>{v(!1),b(s.api_role)},className:"inline-flex items-center px-3 py-1 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50",children:"Cancel"})]}):(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)("span",{className:"inline-flex px-2 py-1 text-xs font-semibold rounded-full bg-blue-100 text-blue-800",children:s.api_role}),u("SYSTEM_ADMIN")&&(0,a.jsx)("button",{onClick:()=>v(!0),className:"text-sm text-indigo-600 hover:text-indigo-900",children:"Edit"})]})})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"WA Status"}),(0,a.jsxs)("dd",{className:"mt-1 flex items-center justify-between",children:[s.wa_role?(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(c.Zu,{size:"md",className:"text-purple-600"}),(0,a.jsx)("span",{className:"inline-flex px-2 py-1 text-xs font-semibold rounded-full bg-purple-100 text-purple-800 ring-2 ring-purple-600",children:s.wa_role.toUpperCase()}),s.wa_parent_id&&(0,a.jsxs)("span",{className:"text-xs text-gray-500",children:["Minted by: ",s.wa_parent_id]})]}):(0,a.jsx)("span",{className:"text-sm text-gray-500",children:"Not a Wise Authority"}),(u("SYSTEM_ADMIN")||u("AUTHORITY")||u("ADMIN"))&&!s.wa_role&&(0,a.jsxs)("button",{onClick:m,className:"inline-flex items-center px-3 py-1 border border-transparent text-sm font-medium rounded-md text-purple-700 bg-purple-100 hover:bg-purple-200",children:[(0,a.jsx)(c.Zu,{size:"sm",className:"mr-1"}),"Mint as WA"]})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"API Keys"}),(0,a.jsxs)("dd",{className:"mt-1 text-sm text-gray-900",children:[s.api_keys_count," active keys"]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("dt",{className:"text-sm font-medium text-gray-500",children:"Permissions"}),(0,a.jsx)("dd",{className:"mt-1",children:(0,a.jsx)("div",{className:"max-h-32 overflow-y-auto",children:(0,a.jsx)("ul",{className:"text-xs space-y-1",children:s.permissions.map(e=>(0,a.jsxs)("li",{className:"text-gray-600",children:["• ",e]},e))})})})]})]})]}),(0,a.jsx)("div",{className:"border-t pt-6",children:(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:["password"===s.auth_type&&(0,a.jsxs)("button",{onClick:i,className:"inline-flex items-center px-4 py-2 border border-gray-300 rounded-md shadow-sm text-sm font-medium text-gray-700 bg-white hover:bg-gray-50",children:[(0,a.jsx)(c.RY,{size:"sm",className:"mr-2"}),"Change Password"]}),u("SYSTEM_ADMIN")&&s.is_active&&(0,a.jsxs)("button",{onClick:N,disabled:h,className:"inline-flex items-center px-4 py-2 border border-red-300 rounded-md shadow-sm text-sm font-medium text-red-700 bg-white hover:bg-red-50 disabled:opacity-50",children:[(0,a.jsx)(c.uc,{size:"sm",className:"mr-2"}),"Deactivate User"]})]})})]})]})]})})})})})]})})}var x=t(3851),u=t(297);function h(e){let{userId:s,username:t,onClose:i,onSuccess:c}=e,{user:m}=(0,l.A)(),[h,g]=(0,r.useState)(""),[p,f]=(0,r.useState)(""),[y,v]=(0,r.useState)(""),[j,b]=(0,r.useState)(!1),[w,N]=(0,r.useState)(null),C=(null==m?void 0:m.user_id)===s,k=async e=>{if(e.preventDefault(),p!==y)return void N("New passwords do not match");if(p.length<8)return void N("Password must be at least 8 characters long");try{b(!0),N(null),await n.AQ.users.changePassword(s,{current_password:h,new_password:p}),c(),i()}catch(e){N(e instanceof Error?e.message:"Failed to change password")}finally{b(!1)}};return(0,a.jsx)(o.e.Root,{show:!0,as:r.Fragment,children:(0,a.jsxs)(d.lG,{as:"div",className:"relative z-10",onClose:i,children:[(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-200",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:(0,a.jsx)("div",{className:"fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"})}),(0,a.jsx)("div",{className:"fixed inset-0 z-10 overflow-y-auto",children:(0,a.jsx)("div",{className:"flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0",children:(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",children:(0,a.jsxs)(d.lG.Panel,{className:"relative transform overflow-hidden rounded-lg bg-white px-4 pt-5 pb-4 text-left shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-md sm:p-6",children:[(0,a.jsx)("div",{className:"absolute top-0 right-0 pt-4 pr-4",children:(0,a.jsxs)("button",{type:"button",className:"rounded-md bg-white text-gray-400 hover:text-gray-500",onClick:i,children:[(0,a.jsx)("span",{className:"sr-only",children:"Close"}),(0,a.jsx)(x.A,{className:"h-6 w-6"})]})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-indigo-100",children:(0,a.jsx)(u.A,{className:"h-6 w-6 text-indigo-600"})}),(0,a.jsxs)("div",{className:"mt-3 text-center sm:mt-5",children:[(0,a.jsx)(d.lG.Title,{as:"h3",className:"text-lg font-medium leading-6 text-gray-900",children:"Change Password"}),(0,a.jsx)("div",{className:"mt-2",children:(0,a.jsx)("p",{className:"text-sm text-gray-500",children:C?"Enter your current password and choose a new one":"Change password for ".concat(t)})})]})]}),w&&(0,a.jsx)("div",{className:"mt-4 bg-red-50 border border-red-200 rounded-md p-4",children:(0,a.jsx)("p",{className:"text-sm text-red-600",children:w})}),(0,a.jsxs)("form",{onSubmit:k,className:"mt-6 space-y-4",children:[C&&(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"current-password",className:"block text-sm font-medium text-gray-700",children:"Current Password"}),(0,a.jsx)("input",{type:"password",id:"current-password",value:h,onChange:e=>g(e.target.value),required:!0,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"new-password",className:"block text-sm font-medium text-gray-700",children:"New Password"}),(0,a.jsx)("input",{type:"password",id:"new-password",value:p,onChange:e=>f(e.target.value),required:!0,minLength:8,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm"}),(0,a.jsx)("p",{className:"mt-1 text-xs text-gray-500",children:"Must be at least 8 characters long"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"confirm-password",className:"block text-sm font-medium text-gray-700",children:"Confirm New Password"}),(0,a.jsx)("input",{type:"password",id:"confirm-password",value:y,onChange:e=>v(e.target.value),required:!0,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm"})]}),!C&&(0,a.jsx)("div",{className:"bg-yellow-50 border border-yellow-200 rounded-md p-3",children:(0,a.jsxs)("p",{className:"text-xs text-yellow-800",children:[(0,a.jsx)("strong",{children:"Note:"})," As a system administrator, you can change this user's password without knowing their current password."]})}),(0,a.jsxs)("div",{className:"mt-5 sm:mt-6 sm:grid sm:grid-flow-row-dense sm:grid-cols-2 sm:gap-3",children:[(0,a.jsx)("button",{type:"submit",disabled:j,className:"inline-flex w-full justify-center rounded-md border border-transparent bg-indigo-600 px-4 py-2 text-base font-medium text-white shadow-sm hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 sm:col-start-2 sm:text-sm disabled:opacity-50",children:j?"Saving...":"Change Password"}),(0,a.jsx)("button",{type:"button",onClick:i,className:"mt-3 inline-flex w-full justify-center rounded-md border border-gray-300 bg-white px-4 py-2 text-base font-medium text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 sm:col-start-1 sm:mt-0 sm:text-sm",children:"Cancel"})]})]})]})})})})]})})}function g(e){let{user:s,onClose:t,onSuccess:l,isSelfMint:i=!1}=e,[m,x]=(0,r.useState)("observer"),[u,h]=(0,r.useState)(""),[g,p]=(0,r.useState)("~/.ciris/wa_keys/root_wa.key"),[f,y]=(0,r.useState)(!1),[v,j]=(0,r.useState)(null),[b,w]=(0,r.useState)(!1),[N,C]=(0,r.useState)(null),[k,A]=(0,r.useState)(!1),[S,_]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=setTimeout(async()=>{if(g){A(!0);try{let e=await n.AQ.users.checkWAKeyExists(g);C(!!e.exists&&!!e.valid_size),e.exists&&e.valid_size&&_(!0)}catch(e){console.error("Failed to check key:",e),C(!1)}finally{A(!1)}}},500);return()=>clearTimeout(e)},[g]);let M=async e=>{e.preventDefault();try{y(!0),j(null);let e={wa_role:m};if(S&&N)e.private_key_path=g;else{if(!u)throw Error("Please provide a signature or enable auto-signing");e.signature=u}await n.AQ.users.mintWiseAuthority(s.user_id,e),l(),t()}catch(e){j(e instanceof Error?e.message:"Failed to mint as Wise Authority")}finally{y(!1)}};return(0,a.jsx)(o.e.Root,{show:!0,as:r.Fragment,children:(0,a.jsxs)(d.lG,{as:"div",className:"relative z-10",onClose:t,children:[(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-200",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:(0,a.jsx)("div",{className:"fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"})}),(0,a.jsx)("div",{className:"fixed inset-0 z-10 overflow-y-auto",children:(0,a.jsx)("div",{className:"flex min-h-screen items-center justify-center p-4 text-center",children:(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",children:(0,a.jsxs)(d.lG.Panel,{className:"relative w-full max-w-lg max-h-[calc(100vh-2rem)] mx-auto bg-white rounded-lg shadow-xl flex flex-col overflow-hidden",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-4 pt-5 pb-4 sm:p-6 border-b",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,a.jsx)("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-purple-100",children:(0,a.jsx)(c.lm,{size:"md",className:"text-purple-600"})}),(0,a.jsx)(d.lG.Title,{as:"h3",className:"text-lg font-medium leading-6 text-gray-900",children:i?"Bootstrap Wise Authority":"Mint as Wise Authority"})]}),(0,a.jsxs)("button",{type:"button",className:"rounded-md bg-white text-gray-400 hover:text-gray-500",onClick:t,children:[(0,a.jsx)("span",{className:"sr-only",children:"Close"}),(0,a.jsx)(c.fK,{size:"lg",className:"text-gray-400"})]})]}),(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 pt-5 pb-4 sm:p-6",children:[(0,a.jsx)("div",{className:"text-center mb-6",children:(0,a.jsx)("p",{className:"text-sm text-gray-500",children:i?(0,a.jsxs)(a.Fragment,{children:["You are about to mint yourself (",(0,a.jsx)("span",{className:"font-medium",children:s.username}),") as the first Wise Authority.",(0,a.jsx)("br",{}),(0,a.jsx)("span",{className:"text-xs text-amber-600 mt-2 block",children:"This requires the root WA private key to sign the transaction."})]}):(0,a.jsxs)(a.Fragment,{children:["Grant Wise Authority status to ",(0,a.jsx)("span",{className:"font-medium",children:s.username})]})})}),v&&(0,a.jsx)("div",{className:"mt-4 bg-red-50 border border-red-200 rounded-md p-4",children:(0,a.jsx)("p",{className:"text-sm text-red-600",children:v})}),(0,a.jsxs)("form",{onSubmit:M,className:"mt-6 space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"wa-role",className:"block text-sm font-medium text-gray-700",children:"WA Role"}),(0,a.jsxs)("select",{id:"wa-role",value:m,onChange:e=>x(e.target.value),className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",children:[(0,a.jsx)("option",{value:"observer",children:"Observer"}),(0,a.jsx)("option",{value:"authority",children:"Authority"})]}),(0,a.jsx)("p",{className:"mt-1 text-xs text-gray-500",children:"authority"===m?"Can approve deferrals and provide guidance":"Can observe and monitor the system"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"private-key-path",className:"block text-sm font-medium text-gray-700",children:"Private Key Path"}),(0,a.jsx)("input",{type:"text",id:"private-key-path",value:g,onChange:e=>p(e.target.value),className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",placeholder:"Path to your ROOT private key file"}),(0,a.jsx)("p",{className:"mt-1 text-xs text-gray-500",children:"Path to your ROOT private key file (e.g., ~/.ciris/wa_keys/root_wa.key)"}),k&&(0,a.jsx)("p",{className:"mt-1 text-xs text-gray-400",children:"Checking key..."}),!k&&null!==N&&(0,a.jsx)("p",{className:"mt-1 text-xs ".concat(N?"text-green-600":"text-red-600"),children:N?"✓ Key found - auto-signing available":"✗ Key not found at this path"})]}),N&&(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)("input",{type:"checkbox",id:"use-auto-sign",checked:S,onChange:e=>_(e.target.checked),className:"h-4 w-4 rounded border-gray-300 text-indigo-600 focus:ring-indigo-500"}),(0,a.jsx)("label",{htmlFor:"use-auto-sign",className:"ml-2 block text-sm text-gray-700",children:"Use auto-signing (sign on server with private key)"})]}),(!S||!N)&&(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("label",{htmlFor:"root-key",className:"block text-sm font-medium text-gray-700",children:"ROOT Signature"}),(0,a.jsx)("button",{type:"button",onClick:()=>w(!b),className:"text-xs text-indigo-600 hover:text-indigo-500",children:"How to sign?"})]}),(0,a.jsx)("textarea",{id:"root-key",value:u,onChange:e=>h(e.target.value),required:!S||!N,rows:3,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm font-mono text-xs",placeholder:"Paste ONLY the signature value (e.g., EjRdHhbaEySL...) - NOT the 'Signature:' prefix"}),(0,a.jsx)("p",{className:"mt-1 text-xs text-gray-500",children:'Paste the base64 signature from the command output (without "Signature:" prefix)'})]}),b&&(0,a.jsxs)("div",{className:"bg-gray-50 rounded-md p-4 text-xs space-y-3",children:[(0,a.jsx)("h5",{className:"font-medium text-gray-900",children:"How to Generate Your Signature:"}),(0,a.jsxs)("div",{className:"bg-blue-50 border border-blue-200 rounded p-3",children:[(0,a.jsx)("p",{className:"font-semibold text-blue-900 mb-2",children:"Step 1: Run this command in your terminal:"}),(0,a.jsxs)("code",{className:"block bg-white p-2 rounded text-xs font-mono break-all border border-blue-300",children:["python /home/emoore/CIRISAgent/scripts/security/sign_wa_mint.py ",s.user_id," ",m," ",g||"~/.ciris/wa_keys/root_wa.key"]})]}),(0,a.jsxs)("div",{className:"bg-green-50 border border-green-200 rounded p-3",children:[(0,a.jsx)("p",{className:"font-semibold text-green-900 mb-1",children:"Step 2: Copy ONLY the signature line:"}),(0,a.jsxs)("div",{className:"bg-white p-2 rounded border border-green-300",children:[(0,a.jsx)("p",{className:"text-gray-600 text-xs",children:"The output will show:"}),(0,a.jsxs)("p",{className:"font-mono text-xs text-gray-500",children:["Message: MINT_WA:",s.user_id,":",m]}),(0,a.jsxs)("p",{className:"font-mono text-xs text-green-700 font-bold",children:["Signature: ",(0,a.jsx)("span",{className:"bg-yellow-100 px-1",children:"EjRdHhbaEySL...us9AAw=="})]}),(0,a.jsx)("p",{className:"text-green-800 mt-2 font-semibold",children:'↑ Copy this value (without "Signature:")'})]})]}),(0,a.jsxs)("div",{className:"bg-amber-50 border border-amber-200 rounded p-3",children:[(0,a.jsx)("p",{className:"font-semibold text-amber-900 mb-1",children:"Step 3: Paste the signature:"}),(0,a.jsx)("p",{className:"text-amber-800",children:'Paste ONLY the base64 string (like "EjRdHhbaEySL...") into the signature field above'})]}),(0,a.jsx)("div",{className:"bg-red-50 border border-red-200 rounded p-2",children:(0,a.jsxs)("p",{className:"text-red-800 text-xs",children:[(0,a.jsx)("strong",{children:"⚠️ Security:"})," Never share your private key. Only paste the signature."]})})]}),(0,a.jsxs)("div",{className:"mt-5 sm:mt-6 sm:grid sm:grid-flow-row-dense sm:grid-cols-2 sm:gap-3",children:[(0,a.jsx)("button",{type:"submit",disabled:f,className:"inline-flex w-full justify-center rounded-md border border-transparent bg-purple-600 px-4 py-2 text-base font-medium text-white shadow-sm hover:bg-purple-700 focus:outline-none focus:ring-2 focus:ring-purple-500 focus:ring-offset-2 sm:col-start-2 sm:text-sm disabled:opacity-50",children:f?"Minting...":"Mint Authority"}),(0,a.jsx)("button",{type:"button",onClick:t,className:"mt-3 inline-flex w-full justify-center rounded-md border border-gray-300 bg-white px-4 py-2 text-base font-medium text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 sm:col-start-1 sm:mt-0 sm:text-sm",children:"Cancel"})]})]})]})]})})})})]})})}function p(e){let{onClose:s}=e,[t,l]=(0,r.useState)([]),[i,m]=(0,r.useState)(!0),[x,u]=(0,r.useState)(null),[h,g]=(0,r.useState)(!1),[p,f]=(0,r.useState)(""),[y,v]=(0,r.useState)(""),[j,b]=(0,r.useState)(""),[w,N]=(0,r.useState)(!1);(0,r.useEffect)(()=>{C()},[]);let C=async()=>{try{m(!0);let e=await n.AQ.auth.listOAuthProviders();l(e.providers)}catch(e){u(e instanceof Error?e.message:"Failed to load OAuth providers")}finally{m(!1)}},k=async e=>{e.preventDefault();try{N(!0),u(null),await n.AQ.auth.configureOAuthProvider(p,y,j),f(""),v(""),b(""),g(!1),await C()}catch(e){u(e instanceof Error?e.message:"Failed to configure provider")}finally{N(!1)}},A=e=>{switch(e.toLowerCase()){case"google":return"\uD83D\uDD35";case"github":return"\uD83D\uDC19";case"discord":return"\uD83D\uDCAC";default:return"\uD83D\uDD11"}};return(0,a.jsx)(o.e.Root,{show:!0,as:r.Fragment,children:(0,a.jsxs)(d.lG,{as:"div",className:"relative z-10",onClose:s,children:[(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-200",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:(0,a.jsx)("div",{className:"fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"})}),(0,a.jsx)("div",{className:"fixed inset-0 z-10 overflow-y-auto",children:(0,a.jsx)("div",{className:"flex min-h-screen items-center justify-center p-4 text-center",children:(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",children:(0,a.jsxs)(d.lG.Panel,{className:"relative w-full max-w-2xl max-h-[calc(100vh-2rem)] mx-auto bg-white rounded-lg shadow-xl flex flex-col overflow-hidden",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-4 pt-5 pb-4 sm:p-6 border-b",children:[(0,a.jsx)(d.lG.Title,{as:"h3",className:"text-lg font-medium leading-6 text-gray-900",children:"OAuth Provider Configuration"}),(0,a.jsxs)("button",{type:"button",className:"rounded-md bg-white text-gray-400 hover:text-gray-500",onClick:s,children:[(0,a.jsx)("span",{className:"sr-only",children:"Close"}),(0,a.jsx)(c.fK,{size:"lg",className:"text-gray-400"})]})]}),(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 pt-5 pb-4 sm:p-6",children:[x&&(0,a.jsx)("div",{className:"mt-4 bg-red-50 border border-red-200 rounded-md p-4",children:(0,a.jsx)("p",{className:"text-sm text-red-600",children:x})}),(0,a.jsx)("div",{className:"mt-6",children:i?(0,a.jsx)("div",{className:"text-center py-12",children:(0,a.jsxs)("div",{className:"inline-flex items-center",children:[(0,a.jsxs)("svg",{className:"animate-spin h-5 w-5 mr-3 text-indigo-600",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,a.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading providers..."]})}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"space-y-3",children:[t.map(e=>(0,a.jsx)("div",{className:"bg-gray-50 rounded-lg p-4",children:(0,a.jsx)("div",{className:"flex items-start justify-between",children:(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)("span",{className:"text-2xl mr-3",children:A(e.provider)}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h4",{className:"text-sm font-medium text-gray-900 capitalize",children:e.provider}),(0,a.jsxs)("p",{className:"text-xs text-gray-500 mt-1",children:["Client ID: ",e.client_id]})]})]}),(0,a.jsxs)("div",{className:"mt-3 text-xs",children:[(0,a.jsx)("p",{className:"text-gray-600",children:"Callback URL:"}),(0,a.jsx)("code",{className:"block mt-1 p-2 bg-gray-100 rounded text-gray-800",children:"".concat(window.location.origin,"/oauth/{agent}/callback")}),(0,a.jsxs)("p",{className:"text-xs text-gray-500 mt-1",children:["Replace ","{agent}"," with: datum, sage, scout, echo-core, or echo-speculative"]})]})]})})},e.provider)),0===t.length&&!h&&(0,a.jsxs)("div",{className:"text-center py-8",children:[(0,a.jsx)("p",{className:"text-gray-500 mb-4",children:"No OAuth providers configured yet"}),(0,a.jsxs)("div",{className:"bg-gray-50 rounded-lg p-4 max-w-lg mx-auto",children:[(0,a.jsx)("p",{className:"text-xs text-gray-600 mb-2",children:"Callback URL format:"}),(0,a.jsxs)("code",{className:"block text-xs p-2 bg-gray-100 rounded text-gray-800",children:[window.location.origin,"/oauth/","{agent}","/callback"]}),(0,a.jsxs)("p",{className:"text-xs text-gray-500 mt-2",children:["Replace ","{agent}"," with: datum, sage, scout, echo-core, or echo-speculative"]})]})]})]}),h?(0,a.jsxs)("form",{onSubmit:k,className:"mt-6 bg-blue-50 rounded-lg p-4",children:[(0,a.jsx)("h4",{className:"text-sm font-medium text-gray-900 mb-4",children:"Add OAuth Provider"}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"provider",className:"block text-sm font-medium text-gray-700",children:"Provider"}),(0,a.jsxs)("select",{id:"provider",value:p,onChange:e=>f(e.target.value),required:!0,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",children:[(0,a.jsx)("option",{value:"",children:"Select a provider"}),(0,a.jsx)("option",{value:"google",children:"Google"}),(0,a.jsx)("option",{value:"github",children:"GitHub"}),(0,a.jsx)("option",{value:"discord",children:"Discord"})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"client-id",className:"block text-sm font-medium text-gray-700",children:"Client ID"}),(0,a.jsx)("input",{type:"text",id:"client-id",value:y,onChange:e=>v(e.target.value),required:!0,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",placeholder:"Your OAuth app client ID"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"client-secret",className:"block text-sm font-medium text-gray-700",children:"Client Secret"}),(0,a.jsx)("input",{type:"password",id:"client-secret",value:j,onChange:e=>b(e.target.value),required:!0,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",placeholder:"Your OAuth app client secret"})]}),(0,a.jsxs)("div",{className:"flex justify-end space-x-2",children:[(0,a.jsx)("button",{type:"button",onClick:()=>{g(!1),f(""),v(""),b("")},className:"inline-flex items-center px-4 py-2 border border-gray-300 rounded-md shadow-sm text-sm font-medium text-gray-700 bg-white hover:bg-gray-50",children:"Cancel"}),(0,a.jsx)("button",{type:"submit",disabled:w,className:"inline-flex items-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 disabled:opacity-50",children:w?"Saving...":"Add Provider"})]})]})]}):(0,a.jsx)("div",{className:"mt-6",children:(0,a.jsxs)("button",{onClick:()=>g(!0),className:"inline-flex items-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700",children:[(0,a.jsx)(c.c1,{size:"sm",className:"mr-2"}),"Add Provider"]})}),(0,a.jsxs)("div",{className:"mt-6 bg-yellow-50 border border-yellow-200 rounded-md p-4",children:[(0,a.jsx)("h5",{className:"text-sm font-medium text-yellow-800 mb-2",children:"Setup Instructions"}),(0,a.jsxs)("ol",{className:"text-xs text-yellow-700 space-y-1 list-decimal list-inside",children:[(0,a.jsx)("li",{children:"Create an OAuth app in your provider's developer console"}),(0,a.jsx)("li",{children:"Set the redirect URI to the callback URL shown above"}),(0,a.jsx)("li",{children:"Copy the client ID and secret from your OAuth app"}),(0,a.jsx)("li",{children:"Configure the provider here with those credentials"}),(0,a.jsx)("li",{children:"OAuth login buttons will appear on the login page"})]})]})]})})]})]})})})})]})})}function f(e){let{onClose:s,onSuccess:t}=e,[l,i]=(0,r.useState)(""),[m,x]=(0,r.useState)(""),[u,h]=(0,r.useState)(""),[g,p]=(0,r.useState)("OBSERVER"),[f,y]=(0,r.useState)(!1),[v,j]=(0,r.useState)(null),b=async e=>{if(e.preventDefault(),m!==u)return void j("Passwords do not match");if(m.length<8)return void j("Password must be at least 8 characters long");try{y(!0),j(null),await n.AQ.users.create({username:l,password:m,api_role:g}),t(),s()}catch(e){j(e instanceof Error?e.message:"Failed to create user")}finally{y(!1)}};return(0,a.jsx)(o.e.Root,{show:!0,as:r.Fragment,children:(0,a.jsxs)(d.lG,{as:"div",className:"relative z-10",onClose:s,children:[(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-200",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:(0,a.jsx)("div",{className:"fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"})}),(0,a.jsx)("div",{className:"fixed inset-0 z-10 overflow-y-auto",children:(0,a.jsx)("div",{className:"flex min-h-screen items-center justify-center p-4 text-center",children:(0,a.jsx)(o.e.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",children:(0,a.jsxs)(d.lG.Panel,{className:"relative w-full max-w-lg max-h-[calc(100vh-2rem)] mx-auto bg-white rounded-lg shadow-xl flex flex-col overflow-hidden",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-4 pt-5 pb-4 sm:p-6 border-b",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,a.jsx)("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-indigo-100",children:(0,a.jsx)(c.Rv,{size:"md",className:"text-indigo-600"})}),(0,a.jsx)(d.lG.Title,{as:"h3",className:"text-lg font-medium leading-6 text-gray-900",children:"Add New User"})]}),(0,a.jsxs)("button",{type:"button",className:"rounded-md bg-white text-gray-400 hover:text-gray-500",onClick:s,children:[(0,a.jsx)("span",{className:"sr-only",children:"Close"}),(0,a.jsx)(c.fK,{size:"lg",className:"text-gray-400"})]})]}),(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 pt-5 pb-4 sm:p-6",children:[(0,a.jsx)("div",{className:"text-center mb-6",children:(0,a.jsx)("p",{className:"text-sm text-gray-500",children:"Create a new user account with password authentication"})}),v&&(0,a.jsx)("div",{className:"mt-4 bg-red-50 border border-red-200 rounded-md p-4",children:(0,a.jsx)("p",{className:"text-sm text-red-600",children:v})}),(0,a.jsxs)("form",{onSubmit:b,className:"mt-6 space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"username",className:"block text-sm font-medium text-gray-700",children:"Username"}),(0,a.jsx)("input",{type:"text",id:"username",value:l,onChange:e=>i(e.target.value),required:!0,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",placeholder:"Enter username"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"password",className:"block text-sm font-medium text-gray-700",children:"Password"}),(0,a.jsx)("input",{type:"password",id:"password",value:m,onChange:e=>x(e.target.value),required:!0,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",placeholder:"Enter password"}),(0,a.jsx)("p",{className:"mt-1 text-xs text-gray-500",children:"Must be at least 8 characters long"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"confirm-password",className:"block text-sm font-medium text-gray-700",children:"Confirm Password"}),(0,a.jsx)("input",{type:"password",id:"confirm-password",value:u,onChange:e=>h(e.target.value),required:!0,className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",placeholder:"Confirm password"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"api-role",className:"block text-sm font-medium text-gray-700",children:"API Role"}),(0,a.jsxs)("select",{id:"api-role",value:g,onChange:e=>p(e.target.value),className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",children:[(0,a.jsx)("option",{value:"OBSERVER",children:"Observer"}),(0,a.jsx)("option",{value:"ADMIN",children:"Admin"}),(0,a.jsx)("option",{value:"AUTHORITY",children:"Authority"}),(0,a.jsx)("option",{value:"SYSTEM_ADMIN",children:"System Admin"})]}),(0,a.jsxs)("p",{className:"mt-1 text-xs text-gray-500",children:["OBSERVER"===g&&"Can view data but not make changes","ADMIN"===g&&"Can manage users and configuration","AUTHORITY"===g&&"Can view WA deferrals and guidance","SYSTEM_ADMIN"===g&&"Full system access and control"]})]}),(0,a.jsxs)("div",{className:"mt-5 sm:mt-6 sm:grid sm:grid-flow-row-dense sm:grid-cols-2 sm:gap-3",children:[(0,a.jsx)("button",{type:"submit",disabled:f,className:"inline-flex w-full justify-center rounded-md border border-transparent bg-indigo-600 px-4 py-2 text-base font-medium text-white shadow-sm hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 sm:col-start-2 sm:text-sm disabled:opacity-50",children:f?"Creating...":"Create User"}),(0,a.jsx)("button",{type:"button",onClick:s,className:"mt-3 inline-flex w-full justify-center rounded-md border border-gray-300 bg-white px-4 py-2 text-base font-medium text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 sm:col-start-1 sm:mt-0 sm:text-sm",children:"Cancel"})]})]})]})]})})})})]})})}function y(){let{hasRole:e,user:s}=(0,l.A)(),[t,o]=(0,r.useState)([]),[d,x]=(0,r.useState)(!0),[u,y]=(0,r.useState)(null),[v,j]=(0,r.useState)(null),[b,w]=(0,r.useState)(null),[N,C]=(0,r.useState)(null),[k,A]=(0,r.useState)(!1),[S,_]=(0,r.useState)(!1),[M,R]=(0,r.useState)(!1),[z,T]=(0,r.useState)(null),[F,I]=(0,r.useState)(1),[E,L]=(0,r.useState)(1),[O,P]=(0,r.useState)(""),[D,B]=(0,r.useState)(""),[U,H]=(0,r.useState)("");(0,r.useEffect)(()=>{W()},[F,O,D,U]),(0,r.useEffect)(()=>{(async()=>{if(null==s?void 0:s.user_id)try{let e=await n.AQ.users.get(s.user_id);T(e)}catch(e){console.error("Failed to load current user details:",e)}})()},[s]);let W=async()=>{try{x(!0);let e=await n.AQ.users.list({page:F,page_size:20,search:O||void 0,api_role:D||void 0,auth_type:U||void 0});o(e.items),L(e.pages)}catch(e){y(e instanceof Error?e.message:"Failed to load users")}finally{x(!1)}},Y=t.some(e=>null!==e.wa_role&&void 0!==e.wa_role),V=async e=>{try{let s=await n.AQ.users.get(e);j(s)}catch(e){y(e instanceof Error?e.message:"Failed to load user details")}},G=e=>{switch(e){case"SYSTEM_ADMIN":return"bg-red-100 text-red-800";case"AUTHORITY":return"bg-purple-100 text-purple-800";case"ADMIN":return"bg-blue-100 text-blue-800";default:return"bg-gray-100 text-gray-800"}},Q=e=>{switch(e){case"authority":return"bg-purple-100 text-purple-800 ring-2 ring-purple-600";case"admin":return"bg-blue-100 text-blue-800 ring-2 ring-blue-600";case"root":return"bg-red-100 text-red-800 ring-2 ring-red-600";default:return"bg-green-100 text-green-800"}};return(0,a.jsxs)(i.O,{requiredRole:"ADMIN",children:[(0,a.jsxs)("div",{className:"px-4 sm:px-6 lg:px-8",children:[(0,a.jsxs)("div",{className:"sm:flex sm:items-center",children:[(0,a.jsxs)("div",{className:"sm:flex-auto",children:[(0,a.jsx)("h1",{className:"text-2xl font-semibold text-gray-900",children:"User Management"}),(0,a.jsx)("p",{className:"mt-2 text-sm text-gray-700",children:"Manage users, roles, and Wise Authority assignments"})]}),(0,a.jsxs)("div",{className:"mt-4 sm:mt-0 sm:ml-16 sm:flex-none space-x-2",children:[z&&!z.wa_role&&(!Y||e("SYSTEM_ADMIN")||e("ADMIN"))&&(0,a.jsxs)("button",{onClick:()=>{C(z),R(!0)},className:"inline-flex items-center px-4 py-2 border border-purple-300 rounded-md shadow-sm text-sm font-medium text-purple-700 bg-purple-50 hover:bg-purple-100",title:Y?"Mint yourself as Wise Authority":"Bootstrap first Wise Authority",children:[(0,a.jsx)(c.Zu,{size:"md",className:"-ml-1 mr-2 text-purple-600"}),Y?"Self-Mint as WA":"Bootstrap First WA"]}),e("SYSTEM_ADMIN")&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("button",{onClick:()=>A(!0),className:"inline-flex items-center px-4 py-2 border border-gray-300 rounded-md shadow-sm text-sm font-medium text-gray-700 bg-white hover:bg-gray-50",children:[(0,a.jsx)(c.RY,{size:"md",className:"-ml-1 mr-2 text-gray-500"}),"OAuth Config"]}),(0,a.jsxs)("button",{onClick:()=>_(!0),className:"inline-flex items-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700",children:[(0,a.jsx)(c.Rv,{size:"md",className:"-ml-1 mr-2"}),"Add User"]})]})]})]}),(0,a.jsxs)("div",{className:"mt-6 grid grid-cols-1 gap-4 sm:grid-cols-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"search",className:"block text-sm font-medium text-gray-700",children:"Search"}),(0,a.jsx)("input",{type:"text",id:"search",value:O,onChange:e=>P(e.target.value),className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",placeholder:"Search by name..."})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"role",className:"block text-sm font-medium text-gray-700",children:"API Role"}),(0,a.jsxs)("select",{id:"role",value:D,onChange:e=>B(e.target.value),className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",children:[(0,a.jsx)("option",{value:"",children:"All Roles"}),(0,a.jsx)("option",{value:"OBSERVER",children:"Observer"}),(0,a.jsx)("option",{value:"ADMIN",children:"Admin"}),(0,a.jsx)("option",{value:"AUTHORITY",children:"Authority"}),(0,a.jsx)("option",{value:"SYSTEM_ADMIN",children:"System Admin"})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"auth-type",className:"block text-sm font-medium text-gray-700",children:"Auth Type"}),(0,a.jsxs)("select",{id:"auth-type",value:U,onChange:e=>H(e.target.value),className:"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",children:[(0,a.jsx)("option",{value:"",children:"All Types"}),(0,a.jsx)("option",{value:"password",children:"Password"}),(0,a.jsx)("option",{value:"oauth",children:"OAuth"}),(0,a.jsx)("option",{value:"api_key",children:"API Key"})]})]})]}),(0,a.jsx)("div",{className:"mt-8 flex flex-col",children:(0,a.jsx)("div",{className:"-my-2 -mx-4 overflow-x-auto sm:-mx-6 lg:-mx-8",children:(0,a.jsx)("div",{className:"inline-block min-w-full py-2 align-middle md:px-6 lg:px-8",children:(0,a.jsx)("div",{className:"overflow-hidden shadow ring-1 ring-black ring-opacity-5 md:rounded-lg",children:d?(0,a.jsx)("div",{className:"text-center py-12",children:(0,a.jsxs)("div",{className:"inline-flex items-center",children:[(0,a.jsxs)("svg",{className:"animate-spin h-5 w-5 mr-3 text-indigo-600",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,a.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading users..."]})}):u?(0,a.jsx)("div",{className:"text-center py-12",children:(0,a.jsx)("p",{className:"text-red-600",children:u})}):(0,a.jsxs)("table",{className:"min-w-full divide-y divide-gray-300",children:[(0,a.jsx)("thead",{className:"bg-gray-50",children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"User"}),(0,a.jsx)("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Auth Type"}),(0,a.jsx)("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"API Role"}),(0,a.jsx)("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"WA Status"}),(0,a.jsx)("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Last Login"}),(0,a.jsx)("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Status"}),(0,a.jsx)("th",{className:"relative px-6 py-3",children:(0,a.jsx)("span",{className:"sr-only",children:"Actions"})})]})}),(0,a.jsx)("tbody",{className:"bg-white divide-y divide-gray-200",children:t.map(e=>(0,a.jsxs)("tr",{className:"hover:bg-gray-50",children:[(0,a.jsx)("td",{className:"px-6 py-4 whitespace-nowrap",children:(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-sm font-medium text-gray-900",children:e.username}),(0,a.jsx)("div",{className:"text-sm text-gray-500",children:e.oauth_email||e.user_id})]})}),(0,a.jsx)("td",{className:"px-6 py-4 whitespace-nowrap",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)("span",{className:"text-sm text-gray-900",children:e.auth_type}),e.oauth_provider&&(0,a.jsxs)("span",{className:"ml-2 text-xs text-gray-500",children:["(",e.oauth_provider,")"]})]})}),(0,a.jsx)("td",{className:"px-6 py-4 whitespace-nowrap",children:(0,a.jsx)("span",{className:"inline-flex px-2 py-1 text-xs font-semibold rounded-full ".concat(G(e.api_role)),children:e.api_role})}),(0,a.jsx)("td",{className:"px-6 py-4 whitespace-nowrap",children:e.wa_role?(0,a.jsxs)("span",{className:"inline-flex px-2 py-1 text-xs font-semibold rounded-full ".concat(Q(e.wa_role)),children:[(0,a.jsx)(c.Zu,{size:"xs",className:"mr-1"}),e.wa_role.toUpperCase()]}):(0,a.jsx)("span",{className:"text-sm text-gray-500",children:"—"})}),(0,a.jsx)("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-500",children:e.last_login?new Date(e.last_login).toLocaleDateString():"Never"}),(0,a.jsx)("td",{className:"px-6 py-4 whitespace-nowrap",children:e.is_active?(0,a.jsx)("span",{className:"inline-flex px-2 py-1 text-xs font-semibold text-green-800 bg-green-100 rounded-full",children:"Active"}):(0,a.jsx)("span",{className:"inline-flex px-2 py-1 text-xs font-semibold text-red-800 bg-red-100 rounded-full",children:"Inactive"})}),(0,a.jsx)("td",{className:"px-6 py-4 whitespace-nowrap text-right text-sm font-medium",children:(0,a.jsx)("button",{onClick:()=>V(e.user_id),className:"text-indigo-600 hover:text-indigo-900",children:(0,a.jsx)(c.vK,{size:"md"})})})]},e.user_id))})]})})})})}),E>1&&(0,a.jsxs)("div",{className:"mt-4 flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex-1 flex justify-between sm:hidden",children:[(0,a.jsx)("button",{onClick:()=>I(Math.max(1,F-1)),disabled:1===F,className:"relative inline-flex items-center px-4 py-2 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 disabled:opacity-50",children:"Previous"}),(0,a.jsx)("button",{onClick:()=>I(Math.min(E,F+1)),disabled:F===E,className:"ml-3 relative inline-flex items-center px-4 py-2 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 disabled:opacity-50",children:"Next"})]}),(0,a.jsxs)("div",{className:"hidden sm:flex-1 sm:flex sm:items-center sm:justify-between",children:[(0,a.jsx)("div",{children:(0,a.jsxs)("p",{className:"text-sm text-gray-700",children:["Page ",(0,a.jsx)("span",{className:"font-medium",children:F})," of"," ",(0,a.jsx)("span",{className:"font-medium",children:E})]})}),(0,a.jsx)("div",{children:(0,a.jsxs)("nav",{className:"relative z-0 inline-flex rounded-md shadow-sm -space-x-px",children:[(0,a.jsx)("button",{onClick:()=>I(Math.max(1,F-1)),disabled:1===F,className:"relative inline-flex items-center px-2 py-2 rounded-l-md border border-gray-300 bg-white text-sm font-medium text-gray-500 hover:bg-gray-50 disabled:opacity-50",children:"Previous"}),(0,a.jsx)("button",{onClick:()=>I(Math.min(E,F+1)),disabled:F===E,className:"relative inline-flex items-center px-2 py-2 rounded-r-md border border-gray-300 bg-white text-sm font-medium text-gray-500 hover:bg-gray-50 disabled:opacity-50",children:"Next"})]})})]})]})]}),v&&(0,a.jsx)(m,{user:v,onClose:()=>j(null),onPasswordChange:()=>{w(v),j(null)},onMintWA:()=>{C(v),j(null)},onUpdate:()=>{W(),V(v.user_id)}}),b&&(0,a.jsx)(h,{userId:b.user_id,username:b.username,onClose:()=>w(null),onSuccess:()=>{w(null),W()}}),N&&(0,a.jsx)(g,{user:N,onClose:()=>{C(null),R(!1)},onSuccess:()=>{C(null),R(!1),W(),M&&(null==s?void 0:s.user_id)&&n.AQ.users.get(s.user_id).then(T)},isSelfMint:M}),k&&(0,a.jsx)(p,{onClose:()=>A(!1)}),S&&(0,a.jsx)(f,{onClose:()=>_(!1),onSuccess:()=>{_(!1),W()}})]})}},4893:(e,s,t)=>{"use strict";t.d(s,{DP:()=>f,HG:()=>m,Nl:()=>o,O4:()=>c,Pi:()=>i,RR:()=>h,RY:()=>u,Rv:()=>y,XR:()=>n,Zu:()=>j,bN:()=>g,c1:()=>w,fC:()=>N,fK:()=>v,lm:()=>p,md:()=>A,mo:()=>l,uc:()=>b,ui:()=>d,vK:()=>x,xZ:()=>C,xm:()=>k});var a=t(4568);t(7620);let r={xs:{width:12,height:12},sm:{width:16,height:16},md:{width:20,height:20},lg:{width:24,height:24}},l=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z",clipRule:"evenodd"})})},i=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})})},n=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{d:"M11 17a1 1 0 001.447.894l4-2A1 1 0 0017 15V9.236a1 1 0 00-1.447-.894l-4 2a1 1 0 00-.553.894V17zM15.211 6.276a1 1 0 000-1.788l-4.764-2.382a1 1 0 00-.894 0L4.789 4.488a1 1 0 000 1.788l4.764 2.382a1 1 0 00.894 0l4.764-2.382zM4.447 8.342A1 1 0 003 9.236V15a1 1 0 00.553.894l4 2A1 1 0 009 17v-5.764a1 1 0 00-.553-.894l-4-2z"})})},o=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsxs)("svg",{className:"animate-spin ".concat(s),width:l,height:i,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,a.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})},d=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"})})},c=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})})},m=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z"})})},x=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",clipRule:"evenodd"})})},u=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M18 8a6 6 0 01-7.743 5.743L10 14l-1 1-1 1H6v2H2v-4l4.257-4.257A6 6 0 1118 8zm-6-4a1 1 0 100 2 2 2 0 012 2 1 1 0 102 0 4 4 0 00-4-4z",clipRule:"evenodd"})})},h=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M2 5a2 2 0 012-2h12a2 2 0 012 2v2a2 2 0 01-2 2H4a2 2 0 01-2-2V5zm14 1a1 1 0 11-2 0 1 1 0 012 0zM2 13a2 2 0 012-2h12a2 2 0 012 2v2a2 2 0 01-2 2H4a2 2 0 01-2-2v-2zm14 1a1 1 0 11-2 0 1 1 0 012 0z",clipRule:"evenodd"})})},g=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsxs)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:[(0,a.jsx)("path",{d:"M3 12v3c0 1.657 3.134 3 7 3s7-1.343 7-3v-3c0 1.657-3.134 3-7 3s-7-1.343-7-3z"}),(0,a.jsx)("path",{d:"M3 7v3c0 1.657 3.134 3 7 3s7-1.343 7-3V7c0 1.657-3.134 3-7 3S3 8.657 3 7z"}),(0,a.jsx)("path",{d:"M17 5c0 1.657-3.134 3-7 3S3 6.657 3 5s3.134-3 7-3 7 1.343 7 3z"})]})},p=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M2.166 4.999A11.954 11.954 0 0010 1.944 11.954 11.954 0 0017.834 5c.11.65.166 1.32.166 2.001 0 5.225-3.34 9.67-8 11.317C5.34 16.67 2 12.225 2 7c0-.682.057-1.35.166-2.001zm11.541 3.708a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})})},f=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M11.49 3.17c-.38-1.56-2.6-1.56-2.98 0a1.532 1.532 0 01-2.286.948c-1.372-.836-2.942.734-2.106 2.106.54.886.061 2.042-.947 2.287-1.561.379-1.561 2.6 0 2.978a1.532 1.532 0 01.947 2.287c-.836 1.372.734 2.942 2.106 2.106a1.532 1.532 0 012.287.947c.379 1.561 2.6 1.561 2.978 0a1.533 1.533 0 012.287-.947c1.372.836 2.942-.734 2.106-2.106a1.533 1.533 0 01.947-2.287c1.561-.379 1.561-2.6 0-2.978a1.532 1.532 0 01-.947-2.287c.836-1.372-.734-2.942-2.106-2.106a1.532 1.532 0 01-2.287-.947zM10 13a3 3 0 100-6 3 3 0 000 6z",clipRule:"evenodd"})})},y=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{d:"M8 9a3 3 0 100-6 3 3 0 000 6zM8 11a6 6 0 016 6H2a6 6 0 016-6zM16 7a1 1 0 10-2 0v1h-1a1 1 0 100 2h1v1a1 1 0 102 0v-1h1a1 1 0 100-2h-1V7z"})})},v=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})})},j=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M2.166 4.999A11.954 11.954 0 0010 1.944 11.954 11.954 0 0017.834 5c.11.65.166 1.32.166 2.001 0 5.225-3.34 9.67-8 11.317C5.34 16.67 2 12.225 2 7c0-.682.057-1.35.166-2.001zm11.541 3.708a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})})},b=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z",clipRule:"evenodd"})})},w=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 20 20",fill:"currentColor",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M10 3a1 1 0 011 1v5h5a1 1 0 110 2h-5v5a1 1 0 11-2 0v-5H4a1 1 0 110-2h5V4a1 1 0 011-1z",clipRule:"evenodd"})})},N=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})})},C=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 10V3L4 14h7v7l9-11h-7z"})})},k=e=>{let{className:s="",size:t="md"}=e,{width:l,height:i}=r[t];return(0,a.jsx)("svg",{className:s,width:l,height:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})})},A=e=>{let{status:s,className:t=""}=e;return(0,a.jsx)("span",{className:"w-3 h-3 rounded-full ".concat({green:"bg-green-500",yellow:"bg-yellow-500",red:"bg-red-500",gray:"bg-gray-500"}[s]," ").concat(t)})}},5666:(e,s,t)=>{Promise.resolve().then(t.bind(t,4811))},6264:(e,s,t)=>{"use strict";t.d(s,{O:()=>n});var a=t(4568),r=t(7620),l=t(2942),i=t(9484);function n(e){let{children:s,requiredRole:t,requiredPermission:n}=e,{user:o,loading:d,hasRole:c,hasPermission:m}=(0,i.A)(),x=(0,l.useRouter)();return((0,r.useEffect)(()=>{if(!d){if(!o)return void x.push("/login");if(t&&!c(t)||n&&!m(n))return void x.push("/unauthorized")}},[o,d,t,n,c,m,x]),d)?(0,a.jsx)("div",{className:"flex items-center justify-center min-h-screen",children:(0,a.jsx)("div",{className:"text-lg",children:"Loading..."})}):o&&(!t||c(t))&&(!n||m(n))?(0,a.jsx)(a.Fragment,{children:s}):null}},9484:(e,s,t)=>{"use strict";t.d(s,{A:()=>m,O:()=>c});var a=t(4568),r=t(7620),l=t(2942),i=t(3237),n=t(704),o=t(3120);let d=(0,r.createContext)(void 0);function c(e){let{children:s}=e,[t,c]=(0,r.useState)(null),[m,x]=(0,r.useState)(!0),[u,h]=(0,r.useState)(null),g=(0,l.useRouter)();(0,r.useEffect)(()=>{let e=window.location.pathname;"/login"===e||e.startsWith("/manager")?x(!1):p();let s=localStorage.getItem("manager_token");s&&h(s)},[]);let p=async()=>{try{if(n.AQ.isAuthenticated()){let e=await n.AQ.auth.getMe();c(e)}}catch(e){console.error("Auth check failed:",e)}finally{x(!1)}},f=(0,r.useCallback)(async(e,s)=>{try{let t=localStorage.getItem("selectedAgentId");if(!t)throw Error("No agent selected");o._.configure(t);let a=await n.AQ.login(e,s),r=n.AQ.auth.getAccessToken();r&&o._.configure(t,r),c(a),i.Ay.success("Welcome, ".concat(a.username||a.user_id,"!")),g.push("/")}catch(e){throw i.Ay.error(e.message||"Login failed"),e}},[g]),y=(0,r.useCallback)(async()=>{try{await n.AQ.logout(),c(null),i.Ay.success("Logged out successfully"),g.push("/login")}catch(e){console.error("Logout failed:",e),i.Ay.error("Logout failed")}},[g]),v=(0,r.useCallback)(e=>!!t&&(t.permissions.includes(e)||"SYSTEM_ADMIN"===t.role),[t]),j=(0,r.useCallback)(e=>{if(!t)return!1;let s=["OBSERVER","ADMIN","AUTHORITY","SYSTEM_ADMIN"];return s.indexOf(t.role)>=s.indexOf(e)},[t]),b=(0,r.useCallback)(e=>{n.AQ.setConfig({authToken:e})},[]),w=(0,r.useCallback)(()=>!!u,[u]);return(0,a.jsx)(d.Provider,{value:{user:t,loading:m,login:f,logout:y,hasPermission:v,hasRole:j,setUser:c,setToken:b,managerToken:u,setManagerToken:h,isManagerAuthenticated:w},children:s})}function m(){let e=(0,r.useContext)(d);if(void 0===e)throw Error("useAuth must be used within an AuthProvider");return e}}},e=>{var s=s=>e(e.s=s);e.O(0,[4534,8386,704,587,8315,7358],()=>s(5666)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1907],{589:(e,t,s)=>{"use strict";s.d(t,{$:()=>l,s:()=>n});var i=s(494),r=s(6759),a=s(1279),n=class extends r.k{#e;#t;#s;constructor(e){super(),this.mutationId=e.mutationId,this.#t=e.mutationCache,this.#e=[],this.state=e.state||l(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#e.includes(e)||(this.#e.push(e),this.clearGcTimeout(),this.#t.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#e=this.#e.filter(t=>t!==e),this.scheduleGc(),this.#t.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#e.length||("pending"===this.state.status?this.scheduleGc():this.#t.remove(this))}continue(){return this.#s?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:"continue"})};this.#s=(0,a.II)({fn:()=>this.options.mutationFn?this.options.mutationFn(e):Promise.reject(Error("No mutationFn found")),onFail:(e,t)=>{this.#i({type:"failed",failureCount:e,error:t})},onPause:()=>{this.#i({type:"pause"})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#t.canRun(this)});let s="pending"===this.state.status,i=!this.#s.canStart();try{if(s)t();else{this.#i({type:"pending",variables:e,isPaused:i}),await this.#t.config.onMutate?.(e,this);let t=await this.options.onMutate?.(e);t!==this.state.context&&this.#i({type:"pending",context:t,variables:e,isPaused:i})}let r=await this.#s.start();return await this.#t.config.onSuccess?.(r,e,this.state.context,this),await this.options.onSuccess?.(r,e,this.state.context),await this.#t.config.onSettled?.(r,null,this.state.variables,this.state.context,this),await this.options.onSettled?.(r,null,e,this.state.context),this.#i({type:"success",data:r}),r}catch(t){try{throw await this.#t.config.onError?.(t,e,this.state.context,this),await this.options.onError?.(t,e,this.state.context),await this.#t.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this),await this.options.onSettled?.(void 0,t,e,this.state.context),t}finally{this.#i({type:"error",error:t})}}finally{this.#t.runNext(this)}}#i(e){this.state=(t=>{switch(e.type){case"failed":return{...t,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...t,isPaused:!0};case"continue":return{...t,isPaused:!1};case"pending":return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}})(this.state),i.jG.batch(()=>{this.#e.forEach(t=>{t.onMutationUpdate(e)}),this.#t.notify({mutation:this,type:"updated",action:e})})}};function l(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}},2740:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>m});var i=s(4568),r=s(7620),a=s(7606),n=s(3297),l=s(6258),o=s(704),d=s(9484),c=s(2942),u=s(3237),h=s(4893);function m(){let{user:e,hasRole:t}=(0,d.A)(),s=(0,c.useRouter)(),m=(0,a.jE)(),[x,g]=(0,r.useState)(null),[p,v]=(0,r.useState)(null),[f,y]=(0,r.useState)("approve"),[j,b]=(0,r.useState)(""),[w,N]=(0,r.useState)("pending"),[C,R]=(0,r.useState)("timestamp"),[M,A]=(0,r.useState)(null),[k,S]=(0,r.useState)(!1),[_,z]=(0,r.useState)("");(0,r.useEffect)(()=>{!e||t("ADMIN")||t("AUTHORITY")||(u.Ay.error("Access denied. Admin or Authority role required."),s.push("/"))},[e,t,s]),(0,r.useEffect)(()=>{e&&L()},[e]);let L=async()=>{try{let t=await o.AQ.users.get(e.user_id);A(t)}catch(e){console.error("Failed to load user details:",e)}},{data:O=[],isLoading:D}=(0,n.I)({queryKey:["deferrals"],queryFn:()=>o.AQ.wiseAuthority.getDeferrals(),refetchInterval:5e3,enabled:t("ADMIN")||t("AUTHORITY")}),I=(null==M?void 0:M.wa_role)==="authority"||(null==M?void 0:M.wa_role)==="admin"||(null==M?void 0:M.wa_role)==="root",P=(0,l.n)({mutationFn:e=>{let{deferral_id:t,decision:s,reasoning:i,signature:r}=e;return o.AQ.wiseAuthority.resolveDeferral(t,s,i,r)},onSuccess:()=>{u.Ay.success("Deferral resolved successfully"),m.invalidateQueries({queryKey:["deferrals"]}),v(null),g(null),b(""),y("approve")},onError:e=>{var t,s;u.Ay.error((null==(s=e.response)||null==(t=s.data)?void 0:t.detail)||"Failed to resolve deferral")}}),T=[...O.filter(e=>"all"===w||("pending"===w?"pending"===e.status:"resolved"!==w||"approved"===e.status||"rejected"===e.status))].sort((e,t)=>"timestamp"===C?new Date(t.created_at).getTime()-new Date(e.created_at).getTime():0),E={total:O.length,pending:O.filter(e=>"pending"===e.status).length,approved:O.filter(e=>"approved"===e.status).length,denied:O.filter(e=>"rejected"===e.status).length,resolutionRate:O.length>0?(O.filter(e=>"approved"===e.status||"rejected"===e.status).length/O.length*100).toFixed(1):0},U=e=>{switch(e){case"pending":return"bg-blue-100 text-blue-800";case"approved":return"bg-green-100 text-green-800";case"denied":return"bg-red-100 text-red-800";default:return"bg-gray-100 text-gray-800"}},B=()=>{if(!x||!j.trim())return void u.Ay.error("Please provide reasoning for your decision");P.mutate({deferral_id:x.deferral_id,decision:f,reasoning:j,signature:"server-will-sign"})};return t("ADMIN")||t("AUTHORITY")?(0,i.jsxs)("div",{className:"space-y-6",children:[(0,i.jsx)("div",{className:"bg-white shadow",children:(0,i.jsx)("div",{className:"px-4 py-5 sm:px-6",children:(0,i.jsxs)("div",{className:"flex items-center justify-between",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("h2",{className:"text-2xl font-bold text-gray-900",children:"Wise Authority Dashboard"}),(0,i.jsx)("p",{className:"mt-1 text-sm text-gray-500",children:"Review and resolve deferred decisions requiring authority oversight"})]}),(0,i.jsx)("div",{className:"flex items-center space-x-2",children:(null==M?void 0:M.wa_role)?(0,i.jsxs)("div",{className:"flex items-center space-x-2 bg-purple-50 px-4 py-2 rounded-lg",children:[(0,i.jsx)(h.lm,{size:"sm",className:"text-purple-600"}),(0,i.jsxs)("span",{className:"text-sm font-medium text-purple-900",children:["WA ",M.wa_role.toUpperCase()]})]}):(0,i.jsxs)("div",{className:"flex items-center space-x-2 bg-yellow-50 px-4 py-2 rounded-lg",children:[(0,i.jsx)(h.Pi,{size:"sm",className:"text-yellow-600"}),(0,i.jsx)("span",{className:"text-sm font-medium text-yellow-900",children:"View Only (Not a WA)"})]})})]})})}),(0,i.jsxs)("div",{className:"grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-5",children:[(0,i.jsx)("div",{className:"bg-white overflow-hidden shadow rounded-lg",children:(0,i.jsxs)("div",{className:"px-4 py-5 sm:p-6",children:[(0,i.jsx)("dt",{className:"text-sm font-medium text-gray-500 truncate",children:"Total Deferrals"}),(0,i.jsx)("dd",{className:"mt-1 text-3xl font-semibold text-gray-900",children:E.total})]})}),(0,i.jsx)("div",{className:"bg-white overflow-hidden shadow rounded-lg",children:(0,i.jsxs)("div",{className:"px-4 py-5 sm:p-6",children:[(0,i.jsx)("dt",{className:"text-sm font-medium text-gray-500 truncate",children:"Pending"}),(0,i.jsx)("dd",{className:"mt-1 text-3xl font-semibold text-blue-600",children:E.pending})]})}),(0,i.jsx)("div",{className:"bg-white overflow-hidden shadow rounded-lg",children:(0,i.jsxs)("div",{className:"px-4 py-5 sm:p-6",children:[(0,i.jsx)("dt",{className:"text-sm font-medium text-gray-500 truncate",children:"Approved"}),(0,i.jsx)("dd",{className:"mt-1 text-3xl font-semibold text-green-600",children:E.approved})]})}),(0,i.jsx)("div",{className:"bg-white overflow-hidden shadow rounded-lg",children:(0,i.jsxs)("div",{className:"px-4 py-5 sm:p-6",children:[(0,i.jsx)("dt",{className:"text-sm font-medium text-gray-500 truncate",children:"Denied"}),(0,i.jsx)("dd",{className:"mt-1 text-3xl font-semibold text-red-600",children:E.denied})]})}),(0,i.jsx)("div",{className:"bg-white overflow-hidden shadow rounded-lg",children:(0,i.jsxs)("div",{className:"px-4 py-5 sm:p-6",children:[(0,i.jsx)("dt",{className:"text-sm font-medium text-gray-500 truncate",children:"Resolution Rate"}),(0,i.jsxs)("dd",{className:"mt-1 text-3xl font-semibold text-gray-900",children:[E.resolutionRate,"%"]})]})})]}),(0,i.jsx)("div",{className:"bg-white shadow rounded-lg",children:(0,i.jsx)("div",{className:"px-4 py-5 sm:p-6",children:(0,i.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[(0,i.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,i.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Filter:"}),(0,i.jsxs)("select",{value:w,onChange:e=>N(e.target.value),className:"rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",children:[(0,i.jsx)("option",{value:"all",children:"All Deferrals"}),(0,i.jsx)("option",{value:"pending",children:"Pending Only"}),(0,i.jsx)("option",{value:"resolved",children:"Resolved Only"})]})]}),(0,i.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,i.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Sort by:"}),(0,i.jsxs)("select",{value:C,onChange:e=>R(e.target.value),className:"rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",children:[(0,i.jsx)("option",{value:"timestamp",children:"Date (Newest First)"}),(0,i.jsx)("option",{value:"urgency",children:"Urgency (Critical First)"}),(0,i.jsx)("option",{value:"type",children:"Type"})]})]})]})})}),(0,i.jsx)("div",{className:"bg-white shadow rounded-lg",children:(0,i.jsxs)("div",{className:"px-4 py-5 sm:p-6",children:[(0,i.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,i.jsx)("h3",{className:"text-lg font-medium text-gray-900",children:"Deferred Decisions"}),!I&&(0,i.jsx)("div",{className:"text-sm text-yellow-600 bg-yellow-50 px-3 py-1 rounded-md",children:"⚠️ Mint yourself as a WA in the Users page to resolve deferrals"})]}),D?(0,i.jsx)("div",{className:"text-center py-8",children:(0,i.jsx)("p",{className:"text-gray-500",children:"Loading deferrals..."})}):0===T.length?(0,i.jsx)("div",{className:"text-center py-8",children:(0,i.jsx)("p",{className:"text-gray-500",children:"No deferrals found matching your criteria."})}):(0,i.jsx)("div",{className:"space-y-4",children:T.map(e=>(0,i.jsxs)("div",{className:"border rounded-lg p-4 hover:shadow-lg transition-shadow cursor-pointer ".concat((null==x?void 0:x.deferral_id)===e.deferral_id?"border-indigo-500 bg-indigo-50":"border-gray-200"),onClick:()=>g(e),children:[(0,i.jsxs)("div",{className:"flex items-start justify-between",children:[(0,i.jsxs)("div",{className:"flex-1",children:[(0,i.jsxs)("div",{className:"flex items-center space-x-3 mb-2",children:[(0,i.jsxs)("h4",{className:"text-sm font-semibold text-gray-900",children:["Thought ID: ",e.thought_id]}),(0,i.jsx)("span",{className:"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium ".concat(U(e.status)),children:e.status.toUpperCase()})]}),(0,i.jsx)("p",{className:"text-sm text-gray-600 mb-2",children:e.question}),(0,i.jsx)("div",{className:"flex items-center text-xs text-gray-500 space-x-4",children:(0,i.jsx)("span",{children:new Date(e.created_at).toLocaleString()})}),e.resolution&&(0,i.jsxs)("div",{className:"mt-3 p-3 bg-gray-50 rounded-md",children:[(0,i.jsxs)("p",{className:"text-xs font-medium text-gray-700",children:["Resolution:"," ",(0,i.jsx)("span",{className:"approve"===e.resolution.decision?"text-green-600":"text-red-600",children:e.resolution.decision.toUpperCase()})]}),(0,i.jsx)("p",{className:"text-xs text-gray-600 mt-1",children:e.resolution.reasoning}),(0,i.jsxs)("p",{className:"text-xs text-gray-500 mt-1",children:["by ",e.resolution.resolved_by," ",e.resolved_at&&"at ".concat(new Date(e.resolved_at).toLocaleString())]})]})]}),"pending"===e.status&&I&&(0,i.jsx)("button",{onClick:t=>{t.stopPropagation(),g(e),v(p===e.deferral_id?null:e.deferral_id)},className:"ml-4 inline-flex items-center px-3 py-1.5 border border-transparent text-xs font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500",children:"Resolve"}),"pending"===e.status&&!I&&(0,i.jsx)("span",{className:"ml-4 text-xs text-gray-500 italic",children:"WA authority required to resolve"})]}),p===e.deferral_id&&I&&(0,i.jsxs)("div",{className:"mt-4 p-4 bg-gray-50 rounded-md border border-gray-200",children:[(0,i.jsx)("h4",{className:"text-sm font-medium text-gray-900 mb-3",children:"Resolve Deferral"}),(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Decision"}),(0,i.jsxs)("div",{className:"mt-1 flex items-center space-x-4",children:[(0,i.jsxs)("label",{className:"inline-flex items-center",children:[(0,i.jsx)("input",{type:"radio",className:"form-radio text-green-600",value:"approve",checked:"approve"===f,onChange:e=>y(e.target.value)}),(0,i.jsx)("span",{className:"ml-2 text-sm text-gray-700",children:"Approve"})]}),(0,i.jsxs)("label",{className:"inline-flex items-center",children:[(0,i.jsx)("input",{type:"radio",className:"form-radio text-red-600",value:"deny",checked:"deny"===f,onChange:e=>y(e.target.value)}),(0,i.jsx)("span",{className:"ml-2 text-sm text-gray-700",children:"Deny"})]})]})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("label",{htmlFor:"reasoning-".concat(e.deferral_id),className:"block text-sm font-medium text-gray-700",children:"Reasoning"}),(0,i.jsx)("textarea",{id:"reasoning-".concat(e.deferral_id),rows:3,className:"mt-1 shadow-sm focus:ring-indigo-500 focus:border-indigo-500 block w-full sm:text-sm border-gray-300 rounded-md",placeholder:"Provide detailed reasoning for your decision...",value:j,onChange:e=>b(e.target.value)})]}),(0,i.jsxs)("div",{className:"flex items-center justify-end space-x-2",children:[(0,i.jsx)("button",{onClick:()=>{v(null),b(""),y("approve")},className:"px-3 py-1.5 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50",children:"Cancel"}),(0,i.jsx)("button",{onClick:()=>B(),disabled:!j.trim()||P.isPending,className:"px-3 py-1.5 border border-transparent text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 disabled:opacity-50",children:P.isPending?"Resolving...":"Submit Resolution"})]})]})]})]},e.deferral_id))})]})}),x&&(0,i.jsx)("div",{className:"bg-white shadow rounded-lg",children:(0,i.jsxs)("div",{className:"px-4 py-5 sm:p-6",children:[(0,i.jsx)("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:"Deferral Details"}),(0,i.jsxs)("div",{className:"space-y-4",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("h4",{className:"text-sm font-medium text-gray-700",children:"Thought ID"}),(0,i.jsx)("p",{className:"mt-1 text-sm font-mono text-gray-600",children:x.thought_id})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("h4",{className:"text-sm font-medium text-gray-700",children:"Question"}),(0,i.jsx)("p",{className:"mt-1 text-sm text-gray-600",children:x.question})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("h4",{className:"text-sm font-medium text-gray-700",children:"Context"}),(0,i.jsx)("pre",{className:"mt-1 text-sm text-gray-600 bg-gray-50 p-3 rounded-md overflow-x-auto",children:JSON.stringify(x.context,null,2)})]}),I&&(0,i.jsx)("div",{className:"mt-4 flex justify-end",children:(0,i.jsx)("button",{onClick:()=>v((null==x?void 0:x.deferral_id)||null),className:"inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700",children:"Resolve Deferral"})})]})]})}),(0,i.jsx)("div",{className:"bg-white shadow rounded-lg",children:(0,i.jsxs)("div",{className:"px-4 py-5 sm:p-6",children:[(0,i.jsx)("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:"Provide Guidance"}),(0,i.jsx)("p",{className:"text-sm text-gray-500 mb-4",children:I?"As a Wise Authority, you can provide guidance on any topic to help the system make better decisions.":"Once you are minted as a Wise Authority, you can provide guidance to help the system."}),I?(0,i.jsx)("button",{className:"inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-purple-600 hover:bg-purple-700",children:"Provide Unsolicited Guidance"}):(0,i.jsx)("button",{onClick:()=>s.push("/users"),className:"inline-flex items-center px-4 py-2 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50",children:"Go to Users Page to Get Minted"})]})}),!1]}):null}},2942:(e,t,s)=>{"use strict";var i=s(2418);s.o(i,"usePathname")&&s.d(t,{usePathname:function(){return i.usePathname}}),s.o(i,"useRouter")&&s.d(t,{useRouter:function(){return i.useRouter}}),s.o(i,"useSearchParams")&&s.d(t,{useSearchParams:function(){return i.useSearchParams}})},3120:(e,t,s)=>{"use strict";s.d(t,{_:()=>l});var i=s(704);function r(){let e=window.location.hostname,t=window.location.pathname,s=t.startsWith("/agent/");if("agents.ciris.ai"!==e&&!s)return{mode:"standalone",agentId:"default",apiBase:"/v1"};{let e="default";e=s?t.split("/")[2]||"default":localStorage.getItem("selectedAgentId")||"default";let i="/api/".concat(e,"/v1");return{mode:"managed",agentId:e,apiBase:i}}}var a=s(5950);class n{configure(e,t){let s,{mode:i}=r();if("managed"===i)s="".concat(window.location.origin,"/api/").concat(e);else{let t=localStorage.getItem("agent_".concat(e,"_api_url"));s=t||window.location.origin}t||(t=a.a.getAccessToken()||void 0);let n={baseURL:s,authToken:t,agentId:e,mode:i};return this.hasConfigChanged(n)&&this.applyConfiguration(n),n}configureForOAuthCallback(e,t){let s,{mode:i}=r(),a={baseURL:"managed"===i?"".concat(window.location.origin,"/api/").concat(e):window.location.origin,authToken:t,agentId:e,mode:i};return this.applyConfiguration(a),this.storeConfiguration(a),a}getCurrentConfig(){return this.currentConfig}isConfiguredFor(e){return!!this.currentConfig&&this.currentConfig.agentId===e&&!!this.currentConfig.authToken}clear(){this.currentConfig=null,localStorage.removeItem("sdk_config"),this.log("SDK configuration cleared")}applyConfiguration(e){this.log("Applying SDK configuration:",e),i.AQ.setConfig({baseURL:e.baseURL,authToken:e.authToken}),this.currentConfig=e,this.log("SDK configured successfully")}hasConfigChanged(e){return!this.currentConfig||this.currentConfig.baseURL!==e.baseURL||this.currentConfig.authToken!==e.authToken||this.currentConfig.agentId!==e.agentId||this.currentConfig.mode!==e.mode}storeConfiguration(e){let t={baseURL:e.baseURL,agentId:e.agentId,mode:e.mode};localStorage.setItem("sdk_config",JSON.stringify(t)),"standalone"===e.mode&&e.baseURL!==window.location.origin&&localStorage.setItem("agent_".concat(e.agentId,"_api_url"),e.baseURL)}restoreConfiguration(){let e=localStorage.getItem("sdk_config");if(!e)return null;try{let t=JSON.parse(e),s=a.a.getAccessToken()||void 0;return{...t,authToken:s}}catch(e){return null}}log(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];this.debugMode&&console.log("[SDKConfigManager]",...t)}constructor(){this.currentConfig=null,this.debugMode=!1}}let l=new n},4893:(e,t,s)=>{"use strict";s.d(t,{DP:()=>v,HG:()=>u,Nl:()=>o,O4:()=>c,Pi:()=>n,RR:()=>x,RY:()=>m,Rv:()=>f,XR:()=>l,Zu:()=>j,bN:()=>g,c1:()=>w,fC:()=>N,fK:()=>y,lm:()=>p,md:()=>M,mo:()=>a,uc:()=>b,ui:()=>d,vK:()=>h,xZ:()=>C,xm:()=>R});var i=s(4568);s(7620);let r={xs:{width:12,height:12},sm:{width:16,height:16},md:{width:20,height:20},lg:{width:24,height:24}},a=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z",clipRule:"evenodd"})})},n=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})})},l=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{d:"M11 17a1 1 0 001.447.894l4-2A1 1 0 0017 15V9.236a1 1 0 00-1.447-.894l-4 2a1 1 0 00-.553.894V17zM15.211 6.276a1 1 0 000-1.788l-4.764-2.382a1 1 0 00-.894 0L4.789 4.488a1 1 0 000 1.788l4.764 2.382a1 1 0 00.894 0l4.764-2.382zM4.447 8.342A1 1 0 003 9.236V15a1 1 0 00.553.894l4 2A1 1 0 009 17v-5.764a1 1 0 00-.553-.894l-4-2z"})})},o=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsxs)("svg",{className:"animate-spin ".concat(t),width:a,height:n,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[(0,i.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,i.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})},d=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,i.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"})})},c=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,i.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})})},u=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,i.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z"})})},h=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",clipRule:"evenodd"})})},m=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M18 8a6 6 0 01-7.743 5.743L10 14l-1 1-1 1H6v2H2v-4l4.257-4.257A6 6 0 1118 8zm-6-4a1 1 0 100 2 2 2 0 012 2 1 1 0 102 0 4 4 0 00-4-4z",clipRule:"evenodd"})})},x=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M2 5a2 2 0 012-2h12a2 2 0 012 2v2a2 2 0 01-2 2H4a2 2 0 01-2-2V5zm14 1a1 1 0 11-2 0 1 1 0 012 0zM2 13a2 2 0 012-2h12a2 2 0 012 2v2a2 2 0 01-2 2H4a2 2 0 01-2-2v-2zm14 1a1 1 0 11-2 0 1 1 0 012 0z",clipRule:"evenodd"})})},g=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsxs)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:[(0,i.jsx)("path",{d:"M3 12v3c0 1.657 3.134 3 7 3s7-1.343 7-3v-3c0 1.657-3.134 3-7 3s-7-1.343-7-3z"}),(0,i.jsx)("path",{d:"M3 7v3c0 1.657 3.134 3 7 3s7-1.343 7-3V7c0 1.657-3.134 3-7 3S3 8.657 3 7z"}),(0,i.jsx)("path",{d:"M17 5c0 1.657-3.134 3-7 3S3 6.657 3 5s3.134-3 7-3 7 1.343 7 3z"})]})},p=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M2.166 4.999A11.954 11.954 0 0010 1.944 11.954 11.954 0 0017.834 5c.11.65.166 1.32.166 2.001 0 5.225-3.34 9.67-8 11.317C5.34 16.67 2 12.225 2 7c0-.682.057-1.35.166-2.001zm11.541 3.708a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})})},v=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M11.49 3.17c-.38-1.56-2.6-1.56-2.98 0a1.532 1.532 0 01-2.286.948c-1.372-.836-2.942.734-2.106 2.106.54.886.061 2.042-.947 2.287-1.561.379-1.561 2.6 0 2.978a1.532 1.532 0 01.947 2.287c-.836 1.372.734 2.942 2.106 2.106a1.532 1.532 0 012.287.947c.379 1.561 2.6 1.561 2.978 0a1.533 1.533 0 012.287-.947c1.372.836 2.942-.734 2.106-2.106a1.533 1.533 0 01.947-2.287c1.561-.379 1.561-2.6 0-2.978a1.532 1.532 0 01-.947-2.287c.836-1.372-.734-2.942-2.106-2.106a1.532 1.532 0 01-2.287-.947zM10 13a3 3 0 100-6 3 3 0 000 6z",clipRule:"evenodd"})})},f=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{d:"M8 9a3 3 0 100-6 3 3 0 000 6zM8 11a6 6 0 016 6H2a6 6 0 016-6zM16 7a1 1 0 10-2 0v1h-1a1 1 0 100 2h1v1a1 1 0 102 0v-1h1a1 1 0 100-2h-1V7z"})})},y=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})})},j=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M2.166 4.999A11.954 11.954 0 0010 1.944 11.954 11.954 0 0017.834 5c.11.65.166 1.32.166 2.001 0 5.225-3.34 9.67-8 11.317C5.34 16.67 2 12.225 2 7c0-.682.057-1.35.166-2.001zm11.541 3.708a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})})},b=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z",clipRule:"evenodd"})})},w=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M10 3a1 1 0 011 1v5h5a1 1 0 110 2h-5v5a1 1 0 11-2 0v-5H4a1 1 0 110-2h5V4a1 1 0 011-1z",clipRule:"evenodd"})})},N=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,i.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})})},C=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,i.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 10V3L4 14h7v7l9-11h-7z"})})},R=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,i.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})})},M=e=>{let{status:t,className:s=""}=e;return(0,i.jsx)("span",{className:"w-3 h-3 rounded-full ".concat({green:"bg-green-500",yellow:"bg-yellow-500",red:"bg-red-500",gray:"bg-gray-500"}[t]," ").concat(s)})}},6258:(e,t,s)=>{"use strict";s.d(t,{n:()=>c});var i=s(7620),r=s(589),a=s(494),n=s(2327),l=s(7703),o=class extends n.Q{#r;#a=void 0;#n;#l;constructor(e,t){super(),this.#r=e,this.setOptions(t),this.bindMethods(),this.#o()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#r.defaultMutationOptions(e),(0,l.f8)(this.options,t)||this.#r.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,l.EN)(t.mutationKey)!==(0,l.EN)(this.options.mutationKey)?this.reset():this.#n?.state.status==="pending"&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#o(),this.#d(e)}getCurrentResult(){return this.#a}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#o(),this.#d()}mutate(e,t){return this.#l=t,this.#n?.removeObserver(this),this.#n=this.#r.getMutationCache().build(this.#r,this.options),this.#n.addObserver(this),this.#n.execute(e)}#o(){let e=this.#n?.state??(0,r.$)();this.#a={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#d(e){a.jG.batch(()=>{if(this.#l&&this.hasListeners()){let t=this.#a.variables,s=this.#a.context;e?.type==="success"?(this.#l.onSuccess?.(e.data,t,s),this.#l.onSettled?.(e.data,null,t,s)):e?.type==="error"&&(this.#l.onError?.(e.error,t,s),this.#l.onSettled?.(void 0,e.error,t,s))}this.listeners.forEach(e=>{e(this.#a)})})}},d=s(7606);function c(e,t){let s=(0,d.jE)(t),[r]=i.useState(()=>new o(s,e));i.useEffect(()=>{r.setOptions(e)},[r,e]);let n=i.useSyncExternalStore(i.useCallback(e=>r.subscribe(a.jG.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),c=i.useCallback((e,t)=>{r.mutate(e,t).catch(l.lQ)},[r]);if(n.error&&(0,l.GU)(r.options.throwOnError,[n.error]))throw n.error;return{...n,mutate:c,mutateAsync:n.mutate}}},8778:(e,t,s)=>{Promise.resolve().then(s.bind(s,2740))},9484:(e,t,s)=>{"use strict";s.d(t,{A:()=>u,O:()=>c});var i=s(4568),r=s(7620),a=s(2942),n=s(3237),l=s(704),o=s(3120);let d=(0,r.createContext)(void 0);function c(e){let{children:t}=e,[s,c]=(0,r.useState)(null),[u,h]=(0,r.useState)(!0),[m,x]=(0,r.useState)(null),g=(0,a.useRouter)();(0,r.useEffect)(()=>{let e=window.location.pathname;"/login"===e||e.startsWith("/manager")?h(!1):p();let t=localStorage.getItem("manager_token");t&&x(t)},[]);let p=async()=>{try{if(l.AQ.isAuthenticated()){let e=await l.AQ.auth.getMe();c(e)}}catch(e){console.error("Auth check failed:",e)}finally{h(!1)}},v=(0,r.useCallback)(async(e,t)=>{try{let s=localStorage.getItem("selectedAgentId");if(!s)throw Error("No agent selected");o._.configure(s);let i=await l.AQ.login(e,t),r=l.AQ.auth.getAccessToken();r&&o._.configure(s,r),c(i),n.Ay.success("Welcome, ".concat(i.username||i.user_id,"!")),g.push("/")}catch(e){throw n.Ay.error(e.message||"Login failed"),e}},[g]),f=(0,r.useCallback)(async()=>{try{await l.AQ.logout(),c(null),n.Ay.success("Logged out successfully"),g.push("/login")}catch(e){console.error("Logout failed:",e),n.Ay.error("Logout failed")}},[g]),y=(0,r.useCallback)(e=>!!s&&(s.permissions.includes(e)||"SYSTEM_ADMIN"===s.role),[s]),j=(0,r.useCallback)(e=>{if(!s)return!1;let t=["OBSERVER","ADMIN","AUTHORITY","SYSTEM_ADMIN"];return t.indexOf(s.role)>=t.indexOf(e)},[s]),b=(0,r.useCallback)(e=>{l.AQ.setConfig({authToken:e})},[]),w=(0,r.useCallback)(()=>!!m,[m]);return(0,i.jsx)(d.Provider,{value:{user:s,loading:u,login:v,logout:f,hasPermission:y,hasRole:j,setUser:c,setToken:b,managerToken:m,setManagerToken:x,isManagerAuthenticated:w},children:t})}function u(){let e=(0,r.useContext)(d);if(void 0===e)throw Error("useAuth must be used within an AuthProvider");return e}}},e=>{var t=t=>e(e.s=t);e.O(0,[4534,8903,3297,704,587,8315,7358],()=>t(8778)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1907],{589:(e,t,s)=>{"use strict";s.d(t,{$:()=>l,s:()=>n});var i=s(494),r=s(6759),a=s(1279),n=class extends r.k{#e;#t;#s;constructor(e){super(),this.mutationId=e.mutationId,this.#t=e.mutationCache,this.#e=[],this.state=e.state||l(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#e.includes(e)||(this.#e.push(e),this.clearGcTimeout(),this.#t.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#e=this.#e.filter(t=>t!==e),this.scheduleGc(),this.#t.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#e.length||("pending"===this.state.status?this.scheduleGc():this.#t.remove(this))}continue(){return this.#s?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:"continue"})};this.#s=(0,a.II)({fn:()=>this.options.mutationFn?this.options.mutationFn(e):Promise.reject(Error("No mutationFn found")),onFail:(e,t)=>{this.#i({type:"failed",failureCount:e,error:t})},onPause:()=>{this.#i({type:"pause"})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#t.canRun(this)});let s="pending"===this.state.status,i=!this.#s.canStart();try{if(s)t();else{this.#i({type:"pending",variables:e,isPaused:i}),await this.#t.config.onMutate?.(e,this);let t=await this.options.onMutate?.(e);t!==this.state.context&&this.#i({type:"pending",context:t,variables:e,isPaused:i})}let r=await this.#s.start();return await this.#t.config.onSuccess?.(r,e,this.state.context,this),await this.options.onSuccess?.(r,e,this.state.context),await this.#t.config.onSettled?.(r,null,this.state.variables,this.state.context,this),await this.options.onSettled?.(r,null,e,this.state.context),this.#i({type:"success",data:r}),r}catch(t){try{throw await this.#t.config.onError?.(t,e,this.state.context,this),await this.options.onError?.(t,e,this.state.context),await this.#t.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this),await this.options.onSettled?.(void 0,t,e,this.state.context),t}finally{this.#i({type:"error",error:t})}}finally{this.#t.runNext(this)}}#i(e){this.state=(t=>{switch(e.type){case"failed":return{...t,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...t,isPaused:!0};case"continue":return{...t,isPaused:!1};case"pending":return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}})(this.state),i.jG.batch(()=>{this.#e.forEach(t=>{t.onMutationUpdate(e)}),this.#t.notify({mutation:this,type:"updated",action:e})})}};function l(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}},2740:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>m});var i=s(4568),r=s(7620),a=s(7606),n=s(3297),l=s(6258),o=s(704),d=s(9484),c=s(2942),u=s(3237),h=s(4893);function m(){let{user:e,hasRole:t}=(0,d.A)(),s=(0,c.useRouter)(),m=(0,a.jE)(),[x,g]=(0,r.useState)(null),[p,v]=(0,r.useState)(null),[f,y]=(0,r.useState)("approve"),[j,b]=(0,r.useState)(""),[w,N]=(0,r.useState)("pending"),[C,R]=(0,r.useState)("timestamp"),[M,A]=(0,r.useState)(null),[k,S]=(0,r.useState)(!1),[_,z]=(0,r.useState)("");(0,r.useEffect)(()=>{!e||t("ADMIN")||t("AUTHORITY")||(u.Ay.error("Access denied. Admin or Authority role required."),s.push("/"))},[e,t,s]),(0,r.useEffect)(()=>{e&&L()},[e]);let L=async()=>{try{let t=await o.AQ.users.get(e.user_id);A(t)}catch(e){console.error("Failed to load user details:",e)}},{data:O=[],isLoading:D}=(0,n.I)({queryKey:["deferrals"],queryFn:()=>o.AQ.wiseAuthority.getDeferrals(),refetchInterval:5e3,enabled:t("ADMIN")||t("AUTHORITY")}),I=(null==M?void 0:M.wa_role)==="authority"||(null==M?void 0:M.wa_role)==="admin"||(null==M?void 0:M.wa_role)==="root",P=(0,l.n)({mutationFn:e=>{let{deferral_id:t,decision:s,reasoning:i,signature:r}=e;return o.AQ.wiseAuthority.resolveDeferral(t,s,i,r)},onSuccess:()=>{u.Ay.success("Deferral resolved successfully"),m.invalidateQueries({queryKey:["deferrals"]}),v(null),g(null),b(""),y("approve")},onError:e=>{var t,s;u.Ay.error((null==(s=e.response)||null==(t=s.data)?void 0:t.detail)||"Failed to resolve deferral")}}),T=[...O.filter(e=>"all"===w||("pending"===w?"pending"===e.status:"resolved"!==w||"approved"===e.status||"rejected"===e.status))].sort((e,t)=>"timestamp"===C?new Date(t.created_at).getTime()-new Date(e.created_at).getTime():0),E={total:O.length,pending:O.filter(e=>"pending"===e.status).length,approved:O.filter(e=>"approved"===e.status).length,denied:O.filter(e=>"rejected"===e.status).length,resolutionRate:O.length>0?(O.filter(e=>"approved"===e.status||"rejected"===e.status).length/O.length*100).toFixed(1):0},U=e=>{switch(e){case"pending":return"bg-blue-100 text-blue-800";case"approved":return"bg-green-100 text-green-800";case"denied":return"bg-red-100 text-red-800";default:return"bg-gray-100 text-gray-800"}},B=()=>{if(!x||!j.trim())return void u.Ay.error("Please provide reasoning for your decision");P.mutate({deferral_id:x.deferral_id,decision:f,reasoning:j,signature:"server-will-sign"})};return t("ADMIN")||t("AUTHORITY")?(0,i.jsxs)("div",{className:"space-y-6",children:[(0,i.jsx)("div",{className:"bg-white shadow",children:(0,i.jsx)("div",{className:"px-4 py-5 sm:px-6",children:(0,i.jsxs)("div",{className:"flex items-center justify-between",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("h2",{className:"text-2xl font-bold text-gray-900",children:"Wise Authority Dashboard"}),(0,i.jsx)("p",{className:"mt-1 text-sm text-gray-500",children:"Review and resolve deferred decisions requiring authority oversight"})]}),(0,i.jsx)("div",{className:"flex items-center space-x-2",children:(null==M?void 0:M.wa_role)?(0,i.jsxs)("div",{className:"flex items-center space-x-2 bg-purple-50 px-4 py-2 rounded-lg",children:[(0,i.jsx)(h.lm,{size:"sm",className:"text-purple-600"}),(0,i.jsxs)("span",{className:"text-sm font-medium text-purple-900",children:["WA ",M.wa_role.toUpperCase()]})]}):(0,i.jsxs)("div",{className:"flex items-center space-x-2 bg-yellow-50 px-4 py-2 rounded-lg",children:[(0,i.jsx)(h.Pi,{size:"sm",className:"text-yellow-600"}),(0,i.jsx)("span",{className:"text-sm font-medium text-yellow-900",children:"View Only (Not a WA)"})]})})]})})}),(0,i.jsxs)("div",{className:"grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-5",children:[(0,i.jsx)("div",{className:"bg-white overflow-hidden shadow rounded-lg",children:(0,i.jsxs)("div",{className:"px-4 py-5 sm:p-6",children:[(0,i.jsx)("dt",{className:"text-sm font-medium text-gray-500 truncate",children:"Total Deferrals"}),(0,i.jsx)("dd",{className:"mt-1 text-3xl font-semibold text-gray-900",children:E.total})]})}),(0,i.jsx)("div",{className:"bg-white overflow-hidden shadow rounded-lg",children:(0,i.jsxs)("div",{className:"px-4 py-5 sm:p-6",children:[(0,i.jsx)("dt",{className:"text-sm font-medium text-gray-500 truncate",children:"Pending"}),(0,i.jsx)("dd",{className:"mt-1 text-3xl font-semibold text-blue-600",children:E.pending})]})}),(0,i.jsx)("div",{className:"bg-white overflow-hidden shadow rounded-lg",children:(0,i.jsxs)("div",{className:"px-4 py-5 sm:p-6",children:[(0,i.jsx)("dt",{className:"text-sm font-medium text-gray-500 truncate",children:"Approved"}),(0,i.jsx)("dd",{className:"mt-1 text-3xl font-semibold text-green-600",children:E.approved})]})}),(0,i.jsx)("div",{className:"bg-white overflow-hidden shadow rounded-lg",children:(0,i.jsxs)("div",{className:"px-4 py-5 sm:p-6",children:[(0,i.jsx)("dt",{className:"text-sm font-medium text-gray-500 truncate",children:"Denied"}),(0,i.jsx)("dd",{className:"mt-1 text-3xl font-semibold text-red-600",children:E.denied})]})}),(0,i.jsx)("div",{className:"bg-white overflow-hidden shadow rounded-lg",children:(0,i.jsxs)("div",{className:"px-4 py-5 sm:p-6",children:[(0,i.jsx)("dt",{className:"text-sm font-medium text-gray-500 truncate",children:"Resolution Rate"}),(0,i.jsxs)("dd",{className:"mt-1 text-3xl font-semibold text-gray-900",children:[E.resolutionRate,"%"]})]})})]}),(0,i.jsx)("div",{className:"bg-white shadow rounded-lg",children:(0,i.jsx)("div",{className:"px-4 py-5 sm:p-6",children:(0,i.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[(0,i.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,i.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Filter:"}),(0,i.jsxs)("select",{value:w,onChange:e=>N(e.target.value),className:"rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",children:[(0,i.jsx)("option",{value:"all",children:"All Deferrals"}),(0,i.jsx)("option",{value:"pending",children:"Pending Only"}),(0,i.jsx)("option",{value:"resolved",children:"Resolved Only"})]})]}),(0,i.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,i.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Sort by:"}),(0,i.jsxs)("select",{value:C,onChange:e=>R(e.target.value),className:"rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm",children:[(0,i.jsx)("option",{value:"timestamp",children:"Date (Newest First)"}),(0,i.jsx)("option",{value:"urgency",children:"Urgency (Critical First)"}),(0,i.jsx)("option",{value:"type",children:"Type"})]})]})]})})}),(0,i.jsx)("div",{className:"bg-white shadow rounded-lg",children:(0,i.jsxs)("div",{className:"px-4 py-5 sm:p-6",children:[(0,i.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,i.jsx)("h3",{className:"text-lg font-medium text-gray-900",children:"Deferred Decisions"}),!I&&(0,i.jsx)("div",{className:"text-sm text-yellow-600 bg-yellow-50 px-3 py-1 rounded-md",children:"⚠️ Mint yourself as a WA in the Users page to resolve deferrals"})]}),D?(0,i.jsx)("div",{className:"text-center py-8",children:(0,i.jsx)("p",{className:"text-gray-500",children:"Loading deferrals..."})}):0===T.length?(0,i.jsx)("div",{className:"text-center py-8",children:(0,i.jsx)("p",{className:"text-gray-500",children:"No deferrals found matching your criteria."})}):(0,i.jsx)("div",{className:"space-y-4",children:T.map(e=>(0,i.jsxs)("div",{className:"border rounded-lg p-4 hover:shadow-lg transition-shadow cursor-pointer ".concat((null==x?void 0:x.deferral_id)===e.deferral_id?"border-indigo-500 bg-indigo-50":"border-gray-200"),onClick:()=>g(e),children:[(0,i.jsxs)("div",{className:"flex items-start justify-between",children:[(0,i.jsxs)("div",{className:"flex-1",children:[(0,i.jsxs)("div",{className:"flex items-center space-x-3 mb-2",children:[(0,i.jsxs)("h4",{className:"text-sm font-semibold text-gray-900",children:["Thought ID: ",e.thought_id]}),(0,i.jsx)("span",{className:"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium ".concat(U(e.status)),children:e.status.toUpperCase()})]}),(0,i.jsx)("p",{className:"text-sm text-gray-600 mb-2",children:e.question}),(0,i.jsx)("div",{className:"flex items-center text-xs text-gray-500 space-x-4",children:(0,i.jsx)("span",{children:new Date(e.created_at).toLocaleString()})}),e.resolution&&(0,i.jsxs)("div",{className:"mt-3 p-3 bg-gray-50 rounded-md",children:[(0,i.jsxs)("p",{className:"text-xs font-medium text-gray-700",children:["Resolution:"," ",(0,i.jsx)("span",{className:"approve"===e.resolution.decision?"text-green-600":"text-red-600",children:e.resolution.decision.toUpperCase()})]}),(0,i.jsx)("p",{className:"text-xs text-gray-600 mt-1",children:e.resolution.reasoning}),(0,i.jsxs)("p",{className:"text-xs text-gray-500 mt-1",children:["by ",e.resolution.resolved_by," ",e.resolved_at&&"at ".concat(new Date(e.resolved_at).toLocaleString())]})]})]}),"pending"===e.status&&I&&(0,i.jsx)("button",{onClick:t=>{t.stopPropagation(),g(e),v(p===e.deferral_id?null:e.deferral_id)},className:"ml-4 inline-flex items-center px-3 py-1.5 border border-transparent text-xs font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500",children:"Resolve"}),"pending"===e.status&&!I&&(0,i.jsx)("span",{className:"ml-4 text-xs text-gray-500 italic",children:"WA authority required to resolve"})]}),p===e.deferral_id&&I&&(0,i.jsxs)("div",{className:"mt-4 p-4 bg-gray-50 rounded-md border border-gray-200",children:[(0,i.jsx)("h4",{className:"text-sm font-medium text-gray-900 mb-3",children:"Resolve Deferral"}),(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Decision"}),(0,i.jsxs)("div",{className:"mt-1 flex items-center space-x-4",children:[(0,i.jsxs)("label",{className:"inline-flex items-center",children:[(0,i.jsx)("input",{type:"radio",className:"form-radio text-green-600",value:"approve",checked:"approve"===f,onChange:e=>y(e.target.value)}),(0,i.jsx)("span",{className:"ml-2 text-sm text-gray-700",children:"Approve"})]}),(0,i.jsxs)("label",{className:"inline-flex items-center",children:[(0,i.jsx)("input",{type:"radio",className:"form-radio text-red-600",value:"deny",checked:"deny"===f,onChange:e=>y(e.target.value)}),(0,i.jsx)("span",{className:"ml-2 text-sm text-gray-700",children:"Deny"})]})]})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("label",{htmlFor:"reasoning-".concat(e.deferral_id),className:"block text-sm font-medium text-gray-700",children:"Reasoning"}),(0,i.jsx)("textarea",{id:"reasoning-".concat(e.deferral_id),rows:3,className:"mt-1 shadow-sm focus:ring-indigo-500 focus:border-indigo-500 block w-full sm:text-sm border-gray-300 rounded-md",placeholder:"Provide detailed reasoning for your decision...",value:j,onChange:e=>b(e.target.value)})]}),(0,i.jsxs)("div",{className:"flex items-center justify-end space-x-2",children:[(0,i.jsx)("button",{onClick:()=>{v(null),b(""),y("approve")},className:"px-3 py-1.5 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50",children:"Cancel"}),(0,i.jsx)("button",{onClick:()=>B(),disabled:!j.trim()||P.isPending,className:"px-3 py-1.5 border border-transparent text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 disabled:opacity-50",children:P.isPending?"Resolving...":"Submit Resolution"})]})]})]})]},e.deferral_id))})]})}),x&&(0,i.jsx)("div",{className:"bg-white shadow rounded-lg",children:(0,i.jsxs)("div",{className:"px-4 py-5 sm:p-6",children:[(0,i.jsx)("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:"Deferral Details"}),(0,i.jsxs)("div",{className:"space-y-4",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("h4",{className:"text-sm font-medium text-gray-700",children:"Thought ID"}),(0,i.jsx)("p",{className:"mt-1 text-sm font-mono text-gray-600",children:x.thought_id})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("h4",{className:"text-sm font-medium text-gray-700",children:"Question"}),(0,i.jsx)("p",{className:"mt-1 text-sm text-gray-600",children:x.question})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("h4",{className:"text-sm font-medium text-gray-700",children:"Context"}),(0,i.jsx)("pre",{className:"mt-1 text-sm text-gray-600 bg-gray-50 p-3 rounded-md overflow-x-auto",children:JSON.stringify(x.context,null,2)})]}),I&&(0,i.jsx)("div",{className:"mt-4 flex justify-end",children:(0,i.jsx)("button",{onClick:()=>v((null==x?void 0:x.deferral_id)||null),className:"inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700",children:"Resolve Deferral"})})]})]})}),(0,i.jsx)("div",{className:"bg-white shadow rounded-lg",children:(0,i.jsxs)("div",{className:"px-4 py-5 sm:p-6",children:[(0,i.jsx)("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:"Provide Guidance"}),(0,i.jsx)("p",{className:"text-sm text-gray-500 mb-4",children:I?"As a Wise Authority, you can provide guidance on any topic to help the system make better decisions.":"Once you are minted as a Wise Authority, you can provide guidance to help the system."}),I?(0,i.jsx)("button",{className:"inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-purple-600 hover:bg-purple-700",children:"Provide Unsolicited Guidance"}):(0,i.jsx)("button",{onClick:()=>s.push("/users"),className:"inline-flex items-center px-4 py-2 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50",children:"Go to Users Page to Get Minted"})]})}),!1]}):null}},2942:(e,t,s)=>{"use strict";var i=s(2418);s.o(i,"usePathname")&&s.d(t,{usePathname:function(){return i.usePathname}}),s.o(i,"useRouter")&&s.d(t,{useRouter:function(){return i.useRouter}}),s.o(i,"useSearchParams")&&s.d(t,{useSearchParams:function(){return i.useSearchParams}})},3120:(e,t,s)=>{"use strict";s.d(t,{_:()=>l});var i=s(704);function r(){let e=window.location.hostname,t=window.location.pathname,s=t.startsWith("/agent/");if("agents.ciris.ai"!==e&&!s)return{mode:"standalone",agentId:"default",apiBase:"/v1"};{let e="default";e=s?t.split("/")[2]||"default":localStorage.getItem("selectedAgentId")||"default";let i="/api/".concat(e,"/v1");return{mode:"managed",agentId:e,apiBase:i}}}var a=s(5950);class n{configure(e,t){let s,{mode:i}=r();if("managed"===i)s="".concat(window.location.origin,"/api/").concat(e);else{let t=localStorage.getItem("agent_".concat(e,"_api_url"));s=t||window.location.origin}t||(t=a.a.getAccessToken()||void 0);let n={baseURL:s,authToken:t,agentId:e,mode:i};return this.hasConfigChanged(n)&&this.applyConfiguration(n),n}configureForOAuthCallback(e,t){let s,{mode:i}=r(),a={baseURL:"managed"===i?"".concat(window.location.origin,"/api/").concat(e):window.location.origin,authToken:t,agentId:e,mode:i};return this.applyConfiguration(a),this.storeConfiguration(a),a}getCurrentConfig(){return this.currentConfig}isConfiguredFor(e){return!!this.currentConfig&&this.currentConfig.agentId===e&&!!this.currentConfig.authToken}clear(){this.currentConfig=null,localStorage.removeItem("sdk_config"),this.log("SDK configuration cleared")}applyConfiguration(e){this.log("Applying SDK configuration:",e),i.AQ.setConfig({baseURL:e.baseURL,authToken:e.authToken}),this.currentConfig=e,this.log("SDK configured successfully")}hasConfigChanged(e){return!this.currentConfig||this.currentConfig.baseURL!==e.baseURL||this.currentConfig.authToken!==e.authToken||this.currentConfig.agentId!==e.agentId||this.currentConfig.mode!==e.mode}storeConfiguration(e){let t={baseURL:e.baseURL,agentId:e.agentId,mode:e.mode};localStorage.setItem("sdk_config",JSON.stringify(t)),"standalone"===e.mode&&e.baseURL!==window.location.origin&&localStorage.setItem("agent_".concat(e.agentId,"_api_url"),e.baseURL)}restoreConfiguration(){let e=localStorage.getItem("sdk_config");if(!e)return null;try{let t=JSON.parse(e),s=a.a.getAccessToken()||void 0;return{...t,authToken:s}}catch(e){return null}}log(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];this.debugMode&&console.log("[SDKConfigManager]",...t)}constructor(){this.currentConfig=null,this.debugMode=!1}}let l=new n},4893:(e,t,s)=>{"use strict";s.d(t,{DP:()=>v,HG:()=>u,Nl:()=>o,O4:()=>c,Pi:()=>n,RR:()=>x,RY:()=>m,Rv:()=>f,XR:()=>l,Zu:()=>j,bN:()=>g,c1:()=>w,fC:()=>N,fK:()=>y,lm:()=>p,md:()=>M,mo:()=>a,uc:()=>b,ui:()=>d,vK:()=>h,xZ:()=>C,xm:()=>R});var i=s(4568);s(7620);let r={xs:{width:12,height:12},sm:{width:16,height:16},md:{width:20,height:20},lg:{width:24,height:24}},a=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z",clipRule:"evenodd"})})},n=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})})},l=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{d:"M11 17a1 1 0 001.447.894l4-2A1 1 0 0017 15V9.236a1 1 0 00-1.447-.894l-4 2a1 1 0 00-.553.894V17zM15.211 6.276a1 1 0 000-1.788l-4.764-2.382a1 1 0 00-.894 0L4.789 4.488a1 1 0 000 1.788l4.764 2.382a1 1 0 00.894 0l4.764-2.382zM4.447 8.342A1 1 0 003 9.236V15a1 1 0 00.553.894l4 2A1 1 0 009 17v-5.764a1 1 0 00-.553-.894l-4-2z"})})},o=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsxs)("svg",{className:"animate-spin ".concat(t),width:a,height:n,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[(0,i.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,i.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})},d=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,i.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"})})},c=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,i.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})})},u=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,i.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z"})})},h=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",clipRule:"evenodd"})})},m=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M18 8a6 6 0 01-7.743 5.743L10 14l-1 1-1 1H6v2H2v-4l4.257-4.257A6 6 0 1118 8zm-6-4a1 1 0 100 2 2 2 0 012 2 1 1 0 102 0 4 4 0 00-4-4z",clipRule:"evenodd"})})},x=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M2 5a2 2 0 012-2h12a2 2 0 012 2v2a2 2 0 01-2 2H4a2 2 0 01-2-2V5zm14 1a1 1 0 11-2 0 1 1 0 012 0zM2 13a2 2 0 012-2h12a2 2 0 012 2v2a2 2 0 01-2 2H4a2 2 0 01-2-2v-2zm14 1a1 1 0 11-2 0 1 1 0 012 0z",clipRule:"evenodd"})})},g=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsxs)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:[(0,i.jsx)("path",{d:"M3 12v3c0 1.657 3.134 3 7 3s7-1.343 7-3v-3c0 1.657-3.134 3-7 3s-7-1.343-7-3z"}),(0,i.jsx)("path",{d:"M3 7v3c0 1.657 3.134 3 7 3s7-1.343 7-3V7c0 1.657-3.134 3-7 3S3 8.657 3 7z"}),(0,i.jsx)("path",{d:"M17 5c0 1.657-3.134 3-7 3S3 6.657 3 5s3.134-3 7-3 7 1.343 7 3z"})]})},p=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M2.166 4.999A11.954 11.954 0 0010 1.944 11.954 11.954 0 0017.834 5c.11.65.166 1.32.166 2.001 0 5.225-3.34 9.67-8 11.317C5.34 16.67 2 12.225 2 7c0-.682.057-1.35.166-2.001zm11.541 3.708a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})})},v=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M11.49 3.17c-.38-1.56-2.6-1.56-2.98 0a1.532 1.532 0 01-2.286.948c-1.372-.836-2.942.734-2.106 2.106.54.886.061 2.042-.947 2.287-1.561.379-1.561 2.6 0 2.978a1.532 1.532 0 01.947 2.287c-.836 1.372.734 2.942 2.106 2.106a1.532 1.532 0 012.287.947c.379 1.561 2.6 1.561 2.978 0a1.533 1.533 0 012.287-.947c1.372.836 2.942-.734 2.106-2.106a1.533 1.533 0 01.947-2.287c1.561-.379 1.561-2.6 0-2.978a1.532 1.532 0 01-.947-2.287c.836-1.372-.734-2.942-2.106-2.106a1.532 1.532 0 01-2.287-.947zM10 13a3 3 0 100-6 3 3 0 000 6z",clipRule:"evenodd"})})},f=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{d:"M8 9a3 3 0 100-6 3 3 0 000 6zM8 11a6 6 0 016 6H2a6 6 0 016-6zM16 7a1 1 0 10-2 0v1h-1a1 1 0 100 2h1v1a1 1 0 102 0v-1h1a1 1 0 100-2h-1V7z"})})},y=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})})},j=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M2.166 4.999A11.954 11.954 0 0010 1.944 11.954 11.954 0 0017.834 5c.11.65.166 1.32.166 2.001 0 5.225-3.34 9.67-8 11.317C5.34 16.67 2 12.225 2 7c0-.682.057-1.35.166-2.001zm11.541 3.708a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})})},b=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z",clipRule:"evenodd"})})},w=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 20 20",fill:"currentColor",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M10 3a1 1 0 011 1v5h5a1 1 0 110 2h-5v5a1 1 0 11-2 0v-5H4a1 1 0 110-2h5V4a1 1 0 011-1z",clipRule:"evenodd"})})},N=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,i.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})})},C=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,i.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 10V3L4 14h7v7l9-11h-7z"})})},R=e=>{let{className:t="",size:s="md"}=e,{width:a,height:n}=r[s];return(0,i.jsx)("svg",{className:t,width:a,height:n,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:(0,i.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})})},M=e=>{let{status:t,className:s=""}=e;return(0,i.jsx)("span",{className:"w-3 h-3 rounded-full ".concat({green:"bg-green-500",yellow:"bg-yellow-500",red:"bg-red-500",gray:"bg-gray-500"}[t]," ").concat(s)})}},6258:(e,t,s)=>{"use strict";s.d(t,{n:()=>c});var i=s(7620),r=s(589),a=s(494),n=s(2327),l=s(7703),o=class extends n.Q{#r;#a=void 0;#n;#l;constructor(e,t){super(),this.#r=e,this.setOptions(t),this.bindMethods(),this.#o()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#r.defaultMutationOptions(e),(0,l.f8)(this.options,t)||this.#r.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,l.EN)(t.mutationKey)!==(0,l.EN)(this.options.mutationKey)?this.reset():this.#n?.state.status==="pending"&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#o(),this.#d(e)}getCurrentResult(){return this.#a}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#o(),this.#d()}mutate(e,t){return this.#l=t,this.#n?.removeObserver(this),this.#n=this.#r.getMutationCache().build(this.#r,this.options),this.#n.addObserver(this),this.#n.execute(e)}#o(){let e=this.#n?.state??(0,r.$)();this.#a={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#d(e){a.jG.batch(()=>{if(this.#l&&this.hasListeners()){let t=this.#a.variables,s=this.#a.context;e?.type==="success"?(this.#l.onSuccess?.(e.data,t,s),this.#l.onSettled?.(e.data,null,t,s)):e?.type==="error"&&(this.#l.onError?.(e.error,t,s),this.#l.onSettled?.(void 0,e.error,t,s))}this.listeners.forEach(e=>{e(this.#a)})})}},d=s(7606);function c(e,t){let s=(0,d.jE)(t),[r]=i.useState(()=>new o(s,e));i.useEffect(()=>{r.setOptions(e)},[r,e]);let n=i.useSyncExternalStore(i.useCallback(e=>r.subscribe(a.jG.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),c=i.useCallback((e,t)=>{r.mutate(e,t).catch(l.lQ)},[r]);if(n.error&&(0,l.GU)(r.options.throwOnError,[n.error]))throw n.error;return{...n,mutate:c,mutateAsync:n.mutate}}},9008:(e,t,s)=>{Promise.resolve().then(s.bind(s,2740))},9484:(e,t,s)=>{"use strict";s.d(t,{A:()=>u,O:()=>c});var i=s(4568),r=s(7620),a=s(2942),n=s(3237),l=s(704),o=s(3120);let d=(0,r.createContext)(void 0);function c(e){let{children:t}=e,[s,c]=(0,r.useState)(null),[u,h]=(0,r.useState)(!0),[m,x]=(0,r.useState)(null),g=(0,a.useRouter)();(0,r.useEffect)(()=>{let e=window.location.pathname;"/login"===e||e.startsWith("/manager")?h(!1):p();let t=localStorage.getItem("manager_token");t&&x(t)},[]);let p=async()=>{try{if(l.AQ.isAuthenticated()){let e=await l.AQ.auth.getMe();c(e)}}catch(e){console.error("Auth check failed:",e)}finally{h(!1)}},v=(0,r.useCallback)(async(e,t)=>{try{let s=localStorage.getItem("selectedAgentId");if(!s)throw Error("No agent selected");o._.configure(s);let i=await l.AQ.login(e,t),r=l.AQ.auth.getAccessToken();r&&o._.configure(s,r),c(i),n.Ay.success("Welcome, ".concat(i.username||i.user_id,"!")),g.push("/")}catch(e){throw n.Ay.error(e.message||"Login failed"),e}},[g]),f=(0,r.useCallback)(async()=>{try{await l.AQ.logout(),c(null),n.Ay.success("Logged out successfully"),g.push("/login")}catch(e){console.error("Logout failed:",e),n.Ay.error("Logout failed")}},[g]),y=(0,r.useCallback)(e=>!!s&&(s.permissions.includes(e)||"SYSTEM_ADMIN"===s.role),[s]),j=(0,r.useCallback)(e=>{if(!s)return!1;let t=["OBSERVER","ADMIN","AUTHORITY","SYSTEM_ADMIN"];return t.indexOf(s.role)>=t.indexOf(e)},[s]),b=(0,r.useCallback)(e=>{l.AQ.setConfig({authToken:e})},[]),w=(0,r.useCallback)(()=>!!m,[m]);return(0,i.jsx)(d.Provider,{value:{user:s,loading:u,login:v,logout:f,hasPermission:y,hasRole:j,setUser:c,setToken:b,managerToken:m,setManagerToken:x,isManagerAuthenticated:w},children:t})}function u(){let e=(0,r.useContext)(d);if(void 0===e)throw Error("useAuth must be used within an AuthProvider");return e}}},e=>{var t=t=>e(e.s=t);e.O(0,[4534,8903,3297,704,587,8315,7358],()=>t(9008)),_N_E=e.O()}]);