marvisx-cli 0.3.9b4__tar.gz → 0.3.9b6__tar.gz

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 (897) hide show
  1. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/PKG-INFO +1 -1
  2. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/404/index.html +1 -1
  3. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/404.html +1 -1
  4. marvisx_cli-0.3.9b6/core/api/console_dist/_next/static/7b6mVHqxZDvD5RzGXH82G/_buildManifest.js +1 -0
  5. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/chunks/2582-e29b5abf7233c8a7.js → marvisx_cli-0.3.9b6/core/api/console_dist/_next/static/chunks/2582-826c53501c1b350b.js +1 -1
  6. marvisx_cli-0.3.9b6/core/api/console_dist/_next/static/chunks/4281-1e83d8c67b4dc498.js +1 -0
  7. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/chunks/5344-d91a24b075f21e36.js → marvisx_cli-0.3.9b6/core/api/console_dist/_next/static/chunks/5344-9b5e7c062a79d988.js +1 -1
  8. marvisx_cli-0.3.9b6/core/api/console_dist/_next/static/chunks/960-8de73e8fd16edc11.js +1 -0
  9. marvisx_cli-0.3.9b6/core/api/console_dist/_next/static/chunks/app/(app)/layout-40704fae21c87153.js +1 -0
  10. marvisx_cli-0.3.9b6/core/api/console_dist/_next/static/chunks/app/(app)/settings/layout-cb95854d0e79ccd6.js +1 -0
  11. marvisx_cli-0.3.9b6/core/api/console_dist/_next/static/chunks/app/(app)/settings/llm/page-e468b87974336653.js +1 -0
  12. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/chunks/app/(app)/settings/users/page-c9b2deda86b37089.js → marvisx_cli-0.3.9b6/core/api/console_dist/_next/static/chunks/app/(app)/settings/users/page-8f9d4754b7ed06ff.js +1 -1
  13. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/chunks/app/(app)/settings/workspace/page-10d01f62c6e50368.js → marvisx_cli-0.3.9b6/core/api/console_dist/_next/static/chunks/app/(app)/settings/workspace/page-95c16941920110c1.js +1 -1
  14. marvisx_cli-0.3.9b6/core/api/console_dist/_next/static/chunks/app/(app)/todos/page-7e8eef93ded2644a.js +1 -0
  15. marvisx_cli-0.3.9b6/core/api/console_dist/_next/static/chunks/app/(welcome)/welcome/page-eb53ef2922c17c95.js +1 -0
  16. marvisx_cli-0.3.9b6/core/api/console_dist/_next/static/css/9cc24773829565f7.css +3 -0
  17. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/brain/cronologia/index.html +1 -1
  18. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/brain/cronologia/index.txt +3 -3
  19. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/brain/da-decidere/index.html +1 -1
  20. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/brain/da-decidere/index.txt +4 -4
  21. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/brain/diario/index.html +1 -1
  22. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/brain/diario/index.txt +3 -3
  23. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/brain/index.html +1 -1
  24. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/brain/index.txt +3 -3
  25. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/brain/memoria/index.html +1 -1
  26. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/brain/memoria/index.txt +4 -4
  27. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/brain/stride/index.html +1 -1
  28. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/brain/stride/index.txt +3 -3
  29. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/diario/index.html +1 -1
  30. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/diario/index.txt +4 -4
  31. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/finder/index.html +1 -1
  32. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/finder/index.txt +4 -4
  33. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/graph/index.html +1 -1
  34. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/graph/index.txt +4 -4
  35. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/graph/pr-impact/index.html +1 -1
  36. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/graph/pr-impact/index.txt +4 -4
  37. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/inbox/index.html +1 -1
  38. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/inbox/index.txt +4 -4
  39. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/inbox/triage/files/index.html +1 -1
  40. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/inbox/triage/files/index.txt +4 -4
  41. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/index.html +1 -1
  42. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/index.txt +3 -3
  43. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/login/index.html +1 -1
  44. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/login/index.txt +3 -3
  45. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/login/sso-callback/index.html +1 -1
  46. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/login/sso-callback/index.txt +3 -3
  47. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/monitoring/index.html +1 -1
  48. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/monitoring/index.txt +4 -4
  49. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/projects/detail/index.html +1 -1
  50. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/projects/detail/index.txt +4 -4
  51. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/projects/index.html +1 -1
  52. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/projects/index.txt +4 -4
  53. marvisx_cli-0.3.9b6/core/api/console_dist/settings/activity/index.html +1 -0
  54. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/settings/activity/index.txt +6 -6
  55. marvisx_cli-0.3.9b6/core/api/console_dist/settings/general/index.html +1 -0
  56. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/settings/general/index.txt +6 -6
  57. marvisx_cli-0.3.9b6/core/api/console_dist/settings/llm/index.html +1 -0
  58. marvisx_cli-0.3.9b6/core/api/console_dist/settings/llm/index.txt +30 -0
  59. marvisx_cli-0.3.9b6/core/api/console_dist/settings/tags/index.html +1 -0
  60. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/settings/tags/index.txt +6 -6
  61. marvisx_cli-0.3.9b6/core/api/console_dist/settings/teams/detail/index.html +1 -0
  62. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/settings/teams/detail/index.txt +6 -6
  63. marvisx_cli-0.3.9b6/core/api/console_dist/settings/teams/index.html +1 -0
  64. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/settings/teams/index.txt +6 -6
  65. marvisx_cli-0.3.9b6/core/api/console_dist/settings/tokens/index.html +2 -0
  66. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/settings/tokens/index.txt +5 -5
  67. marvisx_cli-0.3.9b6/core/api/console_dist/settings/users/index.html +1 -0
  68. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/settings/users/index.txt +6 -6
  69. marvisx_cli-0.3.9b6/core/api/console_dist/settings/workspace/index.html +1 -0
  70. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/settings/workspace/index.txt +6 -6
  71. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/tasks/index.html +1 -1
  72. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/tasks/index.txt +4 -4
  73. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/terminal/index.html +1 -1
  74. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/terminal/index.txt +3 -3
  75. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/todos/index.html +1 -1
  76. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/todos/index.txt +4 -4
  77. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/triage/index.html +1 -1
  78. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/triage/index.txt +4 -4
  79. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/universe/index.html +1 -1
  80. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/universe/index.txt +4 -4
  81. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/welcome/index.html +1 -1
  82. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/welcome/index.txt +3 -3
  83. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/main.py +37 -0
  84. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/auth.py +10 -0
  85. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/delegations.py +5 -2
  86. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/llm_config.py +41 -11
  87. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/projects.py +11 -1
  88. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/crypto.py +9 -0
  89. marvisx_cli-0.3.9b6/core/api/services/todos/llm/byok_provider.py +121 -0
  90. marvisx_cli-0.3.9b6/core/api/services/todos/llm/factory.py +55 -0
  91. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/use_cases/projects.py +2 -2
  92. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/use_cases/todos.py +52 -12
  93. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/populate_project_nodes.py +77 -20
  94. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/wizard/byok_vault.py +47 -0
  95. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/marvisx_cli.egg-info/PKG-INFO +1 -1
  96. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/marvisx_cli.egg-info/SOURCES.txt +17 -13
  97. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/pyproject.toml +1 -1
  98. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/_qWuIWH6LnWDsr6q253TF/_buildManifest.js +0 -1
  99. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/chunks/4281-423f638b0c133fd2.js +0 -1
  100. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/chunks/960-ea37433a364ca660.js +0 -1
  101. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/chunks/app/(app)/layout-7409b0c4a0a5a26c.js +0 -1
  102. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/chunks/app/(app)/settings/layout-5af816412ec1efd2.js +0 -1
  103. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/chunks/app/(app)/todos/page-28708d997bc5894e.js +0 -1
  104. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/chunks/app/(welcome)/welcome/page-28e3766f5571f69a.js +0 -1
  105. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/css/b414d34cce79812b.css +0 -3
  106. marvisx_cli-0.3.9b4/core/api/console_dist/settings/activity/index.html +0 -1
  107. marvisx_cli-0.3.9b4/core/api/console_dist/settings/general/index.html +0 -1
  108. marvisx_cli-0.3.9b4/core/api/console_dist/settings/tags/index.html +0 -1
  109. marvisx_cli-0.3.9b4/core/api/console_dist/settings/teams/detail/index.html +0 -1
  110. marvisx_cli-0.3.9b4/core/api/console_dist/settings/teams/index.html +0 -1
  111. marvisx_cli-0.3.9b4/core/api/console_dist/settings/tokens/index.html +0 -2
  112. marvisx_cli-0.3.9b4/core/api/console_dist/settings/users/index.html +0 -1
  113. marvisx_cli-0.3.9b4/core/api/console_dist/settings/workspace/index.html +0 -1
  114. marvisx_cli-0.3.9b4/core/api/services/todos/llm/factory.py +0 -19
  115. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/LICENSE +0 -0
  116. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/MANIFEST.in +0 -0
  117. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/README.md +0 -0
  118. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/__init__.py +0 -0
  119. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/agents/__init__.py +0 -0
  120. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/agents/session_health.py +0 -0
  121. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/agents/session_manager.py +0 -0
  122. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/bin/marvisx-state-hook.py +0 -0
  123. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/config.py +0 -0
  124. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_headers +0 -0
  125. {marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/_qWuIWH6LnWDsr6q253TF → marvisx_cli-0.3.9b6/core/api/console_dist/_next/static/7b6mVHqxZDvD5RzGXH82G}/_ssgManifest.js +0 -0
  126. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/1167.56964d4357d212b4.js +0 -0
  127. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/1224.65b4107adf5cb0b2.js +0 -0
  128. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/1255-a122635a4d00ff55.js +0 -0
  129. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/1831-97a6930096ac20ba.js +0 -0
  130. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/1936.c58ae480ebdd6212.js +0 -0
  131. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/2349-cb9d15daee7a0d0c.js +0 -0
  132. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/2619-3c9e02e22d10480a.js +0 -0
  133. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/2730.8905bd392be7d6c8.js +0 -0
  134. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/2830-ca1e7f2af92dc8cd.js +0 -0
  135. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/3146-1e63111660c71af2.js +0 -0
  136. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/3196.1f17feceb62a90d1.js +0 -0
  137. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/3536-f40f752bd58947b2.js +0 -0
  138. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/363642f4.51720966c931df2a.js +0 -0
  139. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/3685.2166187595b1308c.js +0 -0
  140. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/3782-9aa8ad62e30d3637.js +0 -0
  141. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/3953.3efa521f4e9b926a.js +0 -0
  142. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/4879-e5fdfbbbcf9e18e0.js +0 -0
  143. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/4bd1b696-f785427dddbba9fb.js +0 -0
  144. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/504.1289e0e995df2db7.js +0 -0
  145. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/54a60aa6.f2bac6fcd6436529.js +0 -0
  146. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/6429.c373590bc136fd9b.js +0 -0
  147. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/6485.653eb88dc226390d.js +0 -0
  148. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/70e0d97a.99a5d98b36f4c1d1.js +0 -0
  149. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/7898.48a1d7021540e048.js +0 -0
  150. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/8730.5e2ea76eff6648e0.js +0 -0
  151. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/8850.a338126091e12ca0.js +0 -0
  152. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/8872.18fc42f6c0e2e05d.js +0 -0
  153. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/9174-7352c096560eb0b2.js +0 -0
  154. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/9260-47dba8e5326b7d90.js +0 -0
  155. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/977.79f9713e4dd962be.js +0 -0
  156. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/brain/cronologia/page-9e7215b8ab2824d4.js +0 -0
  157. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/brain/da-decidere/page-d2edf9b70cbfaea4.js +0 -0
  158. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/brain/diario/page-0dcf9645e229d568.js +0 -0
  159. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/brain/layout-20e2e8b971a21371.js +0 -0
  160. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/brain/memoria/page-d837112b04d3ddd1.js +0 -0
  161. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/brain/page-d5d782d1290aa2f5.js +0 -0
  162. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/brain/stride/page-9067d05ceff5fbc0.js +0 -0
  163. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/diario/page-b1583039b0fc40ab.js +0 -0
  164. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/finder/page-56f654046dc1e234.js +0 -0
  165. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/graph/page-601be0e5ea31a4e6.js +0 -0
  166. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/graph/pr-impact/page-15d3bcc06fca2ad4.js +0 -0
  167. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/inbox/page-55bf6b17337d4e07.js +0 -0
  168. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/inbox/triage/files/page-93334ecd190891fa.js +0 -0
  169. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/monitoring/page-906a9e2d30559363.js +0 -0
  170. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/page-821bbc902ed943b7.js +0 -0
  171. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/projects/detail/page-6fe9ecffd4d6e43d.js +0 -0
  172. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/projects/page-ed1e9fb3cf1d7d85.js +0 -0
  173. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/settings/activity/page-067c23efcc643bc3.js +0 -0
  174. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/settings/general/page-24800070c127b772.js +0 -0
  175. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/settings/tags/page-16b4c9bd3412becb.js +0 -0
  176. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/settings/teams/detail/page-45830809172c8b07.js +0 -0
  177. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/settings/teams/page-7b6c65c4e7f563f0.js +0 -0
  178. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/settings/tokens/page-b2f9e9978756ebde.js +0 -0
  179. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/tasks/page-fe164bb56947d25c.js +0 -0
  180. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/terminal/page-227a70a89c536002.js +0 -0
  181. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/triage/page-383e96f0540bf5eb.js +0 -0
  182. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(app)/universe/page-ddb4e75a79daa4f4.js +0 -0
  183. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/(welcome)/layout-227a70a89c536002.js +0 -0
  184. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/_not-found/page-88bdbe882c0ecf30.js +0 -0
  185. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/layout-6898769151251321.js +0 -0
  186. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/login/page-73b237e6e769d749.js +0 -0
  187. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/app/login/sso-callback/page-c287d7f9b76060d9.js +0 -0
  188. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/ba16dcd3.3d61b93c641c7ff1.js +0 -0
  189. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/d0709137.05f318d692f5ffd6.js +0 -0
  190. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/framework-e60c938074ff7136.js +0 -0
  191. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/main-57baee16398f4eca.js +0 -0
  192. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/main-app-8eb58590bd33c22b.js +0 -0
  193. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/pages/_app-6c8c2371b16a04b8.js +0 -0
  194. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/pages/_error-94812ad32cad7365.js +0 -0
  195. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/polyfills-42372ed130431b0a.js +0 -0
  196. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/chunks/webpack-eb4202bb8f321e36.js +0 -0
  197. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/css/1bf4906983b62b81.css +0 -0
  198. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/css/605fd8d4b965ab60.css +0 -0
  199. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/media/0a73eaad36fca508-s.woff2 +0 -0
  200. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/media/15e555873b2c38f2-s.woff2 +0 -0
  201. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/media/3f552249f03de128-s.woff2 +0 -0
  202. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/media/558ca1a6aa3cb55e-s.p.woff2 +0 -0
  203. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/media/64d784ea54a4acde-s.woff2 +0 -0
  204. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/media/6b2b1f51776cc4fb-s.woff2 +0 -0
  205. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/media/6d831b18ae5b01dc-s.woff2 +0 -0
  206. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/media/86892bc41b523ae7-s.woff2 +0 -0
  207. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/media/964acd21874711e6-s.woff2 +0 -0
  208. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/media/a31f6539c570f5f4-s.p.woff2 +0 -0
  209. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/media/ac0e76ddaeeb7981-s.woff2 +0 -0
  210. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/media/c8db6d45c695a7ab-s.woff2 +0 -0
  211. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/media/cd5bec9268da5b8d-s.p.woff2 +0 -0
  212. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/media/e967e3e11e121e1e-s.woff2 +0 -0
  213. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/media/edc640959b0c7826-s.woff2 +0 -0
  214. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_next/static/media/ff71da380fbe67dd-s.woff2 +0 -0
  215. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/_redirects +0 -0
  216. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/app-icon.svg +0 -0
  217. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/bot-mark-dark.svg +0 -0
  218. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/bot-mark.svg +0 -0
  219. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/favicon-16.svg +0 -0
  220. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/favicon-32.svg +0 -0
  221. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/favicon.svg +0 -0
  222. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/fonts/Exo2-Italic-VariableFont_wght.ttf +0 -0
  223. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/fonts/Exo2-VariableFont_wght.ttf +0 -0
  224. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/fonts/OFL.txt +0 -0
  225. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/icons/icon-192.png +0 -0
  226. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/icons/icon-512.png +0 -0
  227. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/icons/maskable-512.png +0 -0
  228. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/logo-lockup.svg +0 -0
  229. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/logo-mark.svg +0 -0
  230. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/manifest.webmanifest +0 -0
  231. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/console_dist/sw.js +0 -0
  232. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/db.py +0 -0
  233. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/dependencies/__init__.py +0 -0
  234. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/dependencies/tenant.py +0 -0
  235. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/__init__.py +0 -0
  236. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/_adapter.py +0 -0
  237. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/server.py +0 -0
  238. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/stdio.py +0 -0
  239. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/tools/__init__.py +0 -0
  240. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/tools/brain.py +0 -0
  241. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/tools/graph.py +0 -0
  242. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/tools/handoffs.py +0 -0
  243. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/tools/ingest.py +0 -0
  244. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/tools/learnings.py +0 -0
  245. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/tools/onboarding.py +0 -0
  246. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/tools/projects.py +0 -0
  247. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/tools/pull_requests.py +0 -0
  248. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/tools/safety.py +0 -0
  249. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/tools/search.py +0 -0
  250. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/tools/tasks.py +0 -0
  251. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/tools/todos.py +0 -0
  252. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/tools/workflow_playbooks/brainstorm.md +0 -0
  253. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/tools/workflow_playbooks/compound.md +0 -0
  254. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/tools/workflow_playbooks/plan.md +0 -0
  255. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/mcp/tools/workflows.py +0 -0
  256. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/middleware/__init__.py +0 -0
  257. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/middleware/tool_call_audit.py +0 -0
  258. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/__init__.py +0 -0
  259. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/auth.py +0 -0
  260. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/brain.py +0 -0
  261. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/common.py +0 -0
  262. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/costs.py +0 -0
  263. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/graph.py +0 -0
  264. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/graph_cosmo.py +0 -0
  265. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/graph_pr_impact.py +0 -0
  266. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/graph_ux.py +0 -0
  267. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/inbox.py +0 -0
  268. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/ingest_keys.py +0 -0
  269. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/kg.py +0 -0
  270. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/llm_config.py +0 -0
  271. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/monitoring.py +0 -0
  272. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/onboarding.py +0 -0
  273. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/projects.py +0 -0
  274. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/search.py +0 -0
  275. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/sessions.py +0 -0
  276. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/tasks.py +0 -0
  277. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/teams.py +0 -0
  278. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/todos.py +0 -0
  279. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/models/users.py +0 -0
  280. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/observability/__init__.py +0 -0
  281. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/observability/tracing.py +0 -0
  282. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/paths.py +0 -0
  283. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/rate_limit.py +0 -0
  284. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/rbac.py +0 -0
  285. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/__init__.py +0 -0
  286. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/_adapter.py +0 -0
  287. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/admin_pr_impact.py +0 -0
  288. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/admin_settings.py +0 -0
  289. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/agent.py +0 -0
  290. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/agent_tokens.py +0 -0
  291. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/app_settings.py +0 -0
  292. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/audit.py +0 -0
  293. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/bench.py +0 -0
  294. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/brain.py +0 -0
  295. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/brain_directions.py +0 -0
  296. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/ci_checks.py +0 -0
  297. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/comments.py +0 -0
  298. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/costs.py +0 -0
  299. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/docs_coverage.py +0 -0
  300. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/docs_governance.py +0 -0
  301. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/documents.py +0 -0
  302. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/files.py +0 -0
  303. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/finder.py +0 -0
  304. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/graph.py +0 -0
  305. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/handoffs.py +0 -0
  306. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/inbox.py +0 -0
  307. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/ingest_api_keys.py +0 -0
  308. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/ingest_triage.py +0 -0
  309. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/judge.py +0 -0
  310. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/kg.py +0 -0
  311. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/learnings.py +0 -0
  312. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/monitoring.py +0 -0
  313. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/notifications.py +0 -0
  314. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/onboarding.py +0 -0
  315. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/pr_impact.py +0 -0
  316. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/pull_requests.py +0 -0
  317. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/push.py +0 -0
  318. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/raci.py +0 -0
  319. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/search.py +0 -0
  320. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/sessions.py +0 -0
  321. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/settings.py +0 -0
  322. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/share_repo.py +0 -0
  323. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/status_updates.py +0 -0
  324. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/tags.py +0 -0
  325. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/tasks.py +0 -0
  326. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/teams.py +0 -0
  327. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/terminal.py +0 -0
  328. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/todos.py +0 -0
  329. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/users.py +0 -0
  330. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/routers/webhooks.py +0 -0
  331. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/runtime_settings.py +0 -0
  332. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/security.py +0 -0
  333. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/__init__.py +0 -0
  334. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/_fts.py +0 -0
  335. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/audit.py +0 -0
  336. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/auto_approval.py +0 -0
  337. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/__init__.py +0 -0
  338. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/baseline.py +0 -0
  339. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/capabilities.py +0 -0
  340. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/cascade_rollup.py +0 -0
  341. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/compound_bridge.py +0 -0
  342. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/cycle.py +0 -0
  343. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/cycle_snapshot.py +0 -0
  344. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/digest_collector.py +0 -0
  345. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/direction.py +0 -0
  346. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/drift.py +0 -0
  347. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/drift_router.py +0 -0
  348. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/edge_metrics.py +0 -0
  349. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/events_reader.py +0 -0
  350. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/findings.py +0 -0
  351. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/findings_reader.py +0 -0
  352. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/jobs.py +0 -0
  353. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/journal.py +0 -0
  354. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/knowledge_forms.py +0 -0
  355. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/llm/__init__.py +0 -0
  356. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/llm/_runner.py +0 -0
  357. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/llm/base.py +0 -0
  358. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/llm/cache.py +0 -0
  359. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/llm/claude_cli.py +0 -0
  360. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/llm/constants.py +0 -0
  361. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/llm/direction_alignment.py +0 -0
  362. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/llm/factory.py +0 -0
  363. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/llm/finding_reasoning.py +0 -0
  364. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/llm/finding_summary.py +0 -0
  365. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/llm/grounding.py +0 -0
  366. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/llm/journal_polish.py +0 -0
  367. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/llm/local_gateway.py +0 -0
  368. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/llm/parsers.py +0 -0
  369. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/llm/router_glue.py +0 -0
  370. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/manual_run.py +0 -0
  371. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/memory_ops.py +0 -0
  372. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/models.py +0 -0
  373. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/owner_hint.py +0 -0
  374. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/recap.py +0 -0
  375. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/rules/__init__.py +0 -0
  376. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/rules/_signals.py +0 -0
  377. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/rules/dr1_activity_without_status.py +0 -0
  378. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/rules/dr2_decision_without_adr.py +0 -0
  379. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/rules/dr3_stale_open_loop.py +0 -0
  380. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/rules/dr4_docs_governance_drift.py +0 -0
  381. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/rules/dr5_playbook_changed.py +0 -0
  382. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/rules/dr6_external_update_unpropagated.py +0 -0
  383. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/rules/dr7_claimed_decision_gap.py +0 -0
  384. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/rules/dr8_direction_misalignment.py +0 -0
  385. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/runs_reader.py +0 -0
  386. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/scope.py +0 -0
  387. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/sources/__init__.py +0 -0
  388. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/sources/base.py +0 -0
  389. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/sources/git_kg.py +0 -0
  390. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/sources/handoffs.py +0 -0
  391. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/sources/ingestor.py +0 -0
  392. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/sources/learnings.py +0 -0
  393. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/sources/pir_tasks.py +0 -0
  394. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/temporal_recency.py +0 -0
  395. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/warehouse_consolidate.py +0 -0
  396. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/watermarks.py +0 -0
  397. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/brain/ws_emitter.py +0 -0
  398. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/cc_tasks_reader.py +0 -0
  399. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/chunking.py +0 -0
  400. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ci_service.py +0 -0
  401. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/claude_metrics.py +0 -0
  402. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/codex_metrics.py +0 -0
  403. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/conversation_reader.py +0 -0
  404. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/cost_service.py +0 -0
  405. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/docs_governance/__init__.py +0 -0
  406. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/docs_governance/confidence.py +0 -0
  407. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/docs_governance/config.py +0 -0
  408. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/docs_governance/enrichment.py +0 -0
  409. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/docs_governance/frontmatter_validator.py +0 -0
  410. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/docs_governance/hard_gates.py +0 -0
  411. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/docs_governance/triage_orchestrator.py +0 -0
  412. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/dream_cycle.py +0 -0
  413. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/embedding_backends/__init__.py +0 -0
  414. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/embedding_internal.py +0 -0
  415. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/embedding_service.py +0 -0
  416. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/event_dispatcher.py +0 -0
  417. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/events.py +0 -0
  418. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/git_ops.py +0 -0
  419. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/graph_cosmo_service.py +0 -0
  420. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/graph_ranker.py +0 -0
  421. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/graph_service.py +0 -0
  422. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/grounding/__init__.py +0 -0
  423. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/grounding/citations.py +0 -0
  424. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/grounding/verifier.py +0 -0
  425. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/inbox.py +0 -0
  426. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/inbox_digest.py +0 -0
  427. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/inbox_digest_deep_research.py +0 -0
  428. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/inbox_digest_jobs.py +0 -0
  429. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/inbox_gmail_sync.py +0 -0
  430. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/inbox_llm_classifier.py +0 -0
  431. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/inbox_source_identity.py +0 -0
  432. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/inbox_sources.py +0 -0
  433. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/inbox_taxonomy.py +0 -0
  434. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/inbox_tldr.py +0 -0
  435. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/inbox_triage.py +0 -0
  436. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/__init__.py +0 -0
  437. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/api_key_auth.py +0 -0
  438. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/auto_approve.py +0 -0
  439. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/classifier.py +0 -0
  440. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/confidence.py +0 -0
  441. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/dispatch.py +0 -0
  442. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/embedding_router.py +0 -0
  443. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/events.py +0 -0
  444. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/ignore_patterns.py +0 -0
  445. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/image_probe.py +0 -0
  446. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/ingress.py +0 -0
  447. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/insert_saga.py +0 -0
  448. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/llm/__init__.py +0 -0
  449. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/llm/anthropic_haiku.py +0 -0
  450. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/llm/base.py +0 -0
  451. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/llm/byok_provider.py +0 -0
  452. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/llm/classification_context.py +0 -0
  453. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/llm/config_store.py +0 -0
  454. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/llm/factory.py +0 -0
  455. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/llm/kg_enricher.py +0 -0
  456. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/llm/local_gateway.py +0 -0
  457. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/llm/local_vllm.py +0 -0
  458. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/llm/openai_nano.py +0 -0
  459. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/lock_advisory.py +0 -0
  460. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/parser_router.py +0 -0
  461. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/parsers/__init__.py +0 -0
  462. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/parsers/docling_parser.py +0 -0
  463. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/parsers/docparse_gateway.py +0 -0
  464. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/parsers/docx_parser.py +0 -0
  465. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/parsers/folder_unpacker.py +0 -0
  466. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/parsers/gateway_aux.py +0 -0
  467. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/parsers/image_parser.py +0 -0
  468. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/parsers/internal_markdown.py +0 -0
  469. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/parsers/ocr_gateway.py +0 -0
  470. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/parsers/ocr_pdf_parser.py +0 -0
  471. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/parsers/pdf_types.py +0 -0
  472. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/parsers/transcript_parser.py +0 -0
  473. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/parsers/vision_gateway.py +0 -0
  474. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/parsers/xlsx_parser.py +0 -0
  475. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/parsers/zip_unpacker.py +0 -0
  476. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/preflight.py +0 -0
  477. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/routing_policy.py +0 -0
  478. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/serializers/__init__.py +0 -0
  479. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/serializers/xlsx_to_markdown.py +0 -0
  480. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/skip_log.py +0 -0
  481. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/ingest/watcher.py +0 -0
  482. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/kg/__init__.py +0 -0
  483. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/kg/audit.py +0 -0
  484. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/kg/communities.py +0 -0
  485. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/kg/community_summary.py +0 -0
  486. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/kg/graph_lane.py +0 -0
  487. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/kg/hybrid_search.py +0 -0
  488. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/kg/lens.py +0 -0
  489. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/kg/manual_edges.py +0 -0
  490. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/kg/pr_impact.py +0 -0
  491. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/kg/queries.py +0 -0
  492. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/kg/ranking.py +0 -0
  493. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/kg/rrf.py +0 -0
  494. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/kg_watcher_control.py +0 -0
  495. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/local_llm/__init__.py +0 -0
  496. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/local_llm/async_client.py +0 -0
  497. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/local_llm/client.py +0 -0
  498. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/local_llm/url_validator.py +0 -0
  499. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/metrics_collector.py +0 -0
  500. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/metrics_providers.py +0 -0
  501. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/model_registry.py +0 -0
  502. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/model_router.py +0 -0
  503. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/n8n_client.py +0 -0
  504. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/newsletter_llm_gateway.py +0 -0
  505. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/notification_service.py +0 -0
  506. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/openai_responses.py +0 -0
  507. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/opencode_metrics.py +0 -0
  508. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/opencode_sessions.py +0 -0
  509. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/pii_redactor.py +0 -0
  510. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/pr_impact_pipeline/__init__.py +0 -0
  511. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/pr_impact_pipeline/differ.py +0 -0
  512. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/pr_impact_pipeline/dispatcher.py +0 -0
  513. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/pr_impact_pipeline/gc.py +0 -0
  514. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/pr_impact_pipeline/languages.py +0 -0
  515. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/pr_impact_pipeline/parser.py +0 -0
  516. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/pr_impact_pipeline/writer.py +0 -0
  517. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/pr_service.py +0 -0
  518. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/project_paths.py +0 -0
  519. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/project_status_updates.py +0 -0
  520. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/providers.py +0 -0
  521. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/push_service.py +0 -0
  522. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/reminder_service.py +0 -0
  523. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/runas.py +0 -0
  524. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/salience_service.py +0 -0
  525. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/security_collector.py +0 -0
  526. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/session_catalog.py +0 -0
  527. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/session_metrics_service.py +0 -0
  528. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/session_ops.py +0 -0
  529. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/session_state.py +0 -0
  530. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/share_links.py +0 -0
  531. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/task_transitions.py +0 -0
  532. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/temporal_tiebreak.py +0 -0
  533. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/temporal_write.py +0 -0
  534. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/terminal_metrics.py +0 -0
  535. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/terminal_metrics_dump.py +0 -0
  536. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/tmux.py +0 -0
  537. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/todos/__init__.py +0 -0
  538. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/todos/adr.py +0 -0
  539. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/todos/heuristics.py +0 -0
  540. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/todos/llm/__init__.py +0 -0
  541. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/todos/llm/base.py +0 -0
  542. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/todos/llm/local_gateway.py +0 -0
  543. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/webhook_service.py +0 -0
  544. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/services/workspace_sync.py +0 -0
  545. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/templates/__init__.py +0 -0
  546. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/templates/markdown_share.py +0 -0
  547. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/terminal.py +0 -0
  548. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/__init__.py +0 -0
  549. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_agent_facing_auth_dependencies.py +0 -0
  550. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_audit_permissions.py +0 -0
  551. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_backfill_session_conversations.py +0 -0
  552. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_backfill_working_seconds_msg.py +0 -0
  553. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_claude_metrics.py +0 -0
  554. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_codex_metrics.py +0 -0
  555. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_config_env_aliases.py +0 -0
  556. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_finder_paths.py +0 -0
  557. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_git_ops_merge.py +0 -0
  558. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_graph_freshness.py +0 -0
  559. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_graph_freshness_flag.py +0 -0
  560. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_graph_neighbors_denoise.py +0 -0
  561. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_graph_summary.py +0 -0
  562. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_kg_claims_builder.py +0 -0
  563. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_kg_claims_wire.py +0 -0
  564. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_kg_trust_write_path.py +0 -0
  565. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_learnings_check_search.py +0 -0
  566. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_learnings_create_pre148.py +0 -0
  567. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_metrics_providers.py +0 -0
  568. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_migration_087.py +0 -0
  569. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_migration_088.py +0 -0
  570. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_migration_089.py +0 -0
  571. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_migration_149.py +0 -0
  572. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_openai_responses.py +0 -0
  573. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_opencode_metrics.py +0 -0
  574. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_opencode_sessions.py +0 -0
  575. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_populate_decay_flag.py +0 -0
  576. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_pr_workflow_e2e.py +0 -0
  577. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_projects_handoffs.py +0 -0
  578. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_providers.py +0 -0
  579. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_require_scope_empty_deny.py +0 -0
  580. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_safety_bridge.py +0 -0
  581. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_session_brief_temporal.py +0 -0
  582. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_session_catalog.py +0 -0
  583. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_session_conversations.py +0 -0
  584. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_session_metrics_service.py +0 -0
  585. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_session_resume_paths.py +0 -0
  586. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_session_theme_mode_migration.py +0 -0
  587. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_sessions_rbac.py +0 -0
  588. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_share_edit.py +0 -0
  589. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_share_repo.py +0 -0
  590. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_temporal_recency.py +0 -0
  591. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_terminal_session_manager.py +0 -0
  592. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_terminal_upload.py +0 -0
  593. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_tmux.py +0 -0
  594. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_ui_static.py +0 -0
  595. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_workspace_sync.py +0 -0
  596. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/tests/test_ws_ticket_in_memory.py +0 -0
  597. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/ui_static.py +0 -0
  598. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/use_cases/__init__.py +0 -0
  599. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/use_cases/_context.py +0 -0
  600. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/use_cases/_errors.py +0 -0
  601. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/use_cases/_roles.py +0 -0
  602. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/use_cases/audit.py +0 -0
  603. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/use_cases/brain.py +0 -0
  604. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/use_cases/costs.py +0 -0
  605. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/use_cases/graph.py +0 -0
  606. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/use_cases/handoffs.py +0 -0
  607. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/use_cases/ingest_triage.py +0 -0
  608. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/use_cases/learnings.py +0 -0
  609. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/use_cases/onboarding.py +0 -0
  610. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/use_cases/pull_requests.py +0 -0
  611. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/use_cases/search.py +0 -0
  612. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/use_cases/tasks.py +0 -0
  613. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/api/visibility.py +0 -0
  614. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/README.md +0 -0
  615. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/__init__.py +0 -0
  616. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/_brain_opportunistic.py +0 -0
  617. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/_brain_schedule.py +0 -0
  618. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/_index_source.py +0 -0
  619. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/_onboarding.py +0 -0
  620. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/_runtime_ctx.py +0 -0
  621. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/_transmute.py +0 -0
  622. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/_update_check.py +0 -0
  623. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/guides/__init__.py +0 -0
  624. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/guides/marvis-way.md +0 -0
  625. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/marvis_account.py +0 -0
  626. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/marvis_brain.py +0 -0
  627. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/marvis_console.py +0 -0
  628. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/marvis_doctor.py +0 -0
  629. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/marvis_feedback.py +0 -0
  630. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/marvis_governance.py +0 -0
  631. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/marvis_guide.py +0 -0
  632. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/marvis_hooks.py +0 -0
  633. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/marvis_init.py +0 -0
  634. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/marvis_mcp.py +0 -0
  635. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/marvis_runtime.py +0 -0
  636. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/marvis_task.py +0 -0
  637. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/cli/marvis_telemetry.py +0 -0
  638. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/platform/__init__.py +0 -0
  639. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/_drift_check.py +0 -0
  640. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/_frontmatter.py +0 -0
  641. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/_graph_writer.py +0 -0
  642. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/ast_parser.py +0 -0
  643. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/install_hooks/__init__.py +0 -0
  644. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/install_hooks/_config.sh +0 -0
  645. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/install_hooks/block-dangerous-bash.sh +0 -0
  646. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/install_hooks/block-db-direct-write.sh +0 -0
  647. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/install_hooks/block-push-no-task.sh +0 -0
  648. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/install_hooks/block-staging-to-prod.sh +0 -0
  649. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/install_hooks/block-subtree-push.sh +0 -0
  650. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/install_hooks/config.json +0 -0
  651. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/install_hooks/enforce-no-merge-main.sh +0 -0
  652. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/install_hooks/enforce-worktree.sh +0 -0
  653. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/install_hooks/quality-gate.sh +0 -0
  654. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/install_hooks/safety_bridge.py +0 -0
  655. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/install_hooks/secret-scan.sh +0 -0
  656. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/migrate_spike_node_ids.py +0 -0
  657. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/populate_artifacts.py +0 -0
  658. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/populate_cross_project.py +0 -0
  659. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/populate_inbox_nodes.py +0 -0
  660. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/populate_pr_impact.py +0 -0
  661. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/populate_touch_counter.py +0 -0
  662. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/reparse_failed.py +0 -0
  663. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/scripts/safety_bridge.py +0 -0
  664. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/telemetry/__init__.py +0 -0
  665. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/telemetry/client.py +0 -0
  666. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/telemetry/entitlements.py +0 -0
  667. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/telemetry/rollup.py +0 -0
  668. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/telemetry/schema.py +0 -0
  669. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/telemetry/sender.py +0 -0
  670. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/wizard/__init__.py +0 -0
  671. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/wizard/defaults.py +0 -0
  672. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/wizard/state.py +0 -0
  673. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/wizard/steps.py +0 -0
  674. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/core/wizard/validation.py +0 -0
  675. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/marvisx_cli.egg-info/dependency_links.txt +0 -0
  676. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/marvisx_cli.egg-info/entry_points.txt +0 -0
  677. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/marvisx_cli.egg-info/requires.txt +0 -0
  678. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/marvisx_cli.egg-info/top_level.txt +0 -0
  679. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/001_initial.sql +0 -0
  680. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/002_tasks.sql +0 -0
  681. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/003_session_management.sql +0 -0
  682. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/004_projects_comments.sql +0 -0
  683. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/005_session_intelligence.sql +0 -0
  684. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/006_settings.sql +0 -0
  685. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/007_task_scoring.sql +0 -0
  686. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/008_cost_tracking.sql +0 -0
  687. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/009_session_card_metrics.sql +0 -0
  688. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/010_monitoring.sql +0 -0
  689. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/012_agent_api.sql +0 -0
  690. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/013_session_complete.sql +0 -0
  691. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/015_pull_requests.sql +0 -0
  692. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/015_pull_requests_down.sql +0 -0
  693. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/016_users_raci.sql +0 -0
  694. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/017_task_cost_entries.sql +0 -0
  695. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/018_agents.sql +0 -0
  696. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/018_agents_down.sql +0 -0
  697. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/019_review_feedback.sql +0 -0
  698. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/020_pr_commit_sha.sql +0 -0
  699. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/021_webhook_events.sql +0 -0
  700. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/022_devx_agent_managed.sql +0 -0
  701. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/022_devx_agent_managed_down.sql +0 -0
  702. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/023_devx_p1_gate.sql +0 -0
  703. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/023_devx_p1_gate_down.sql +0 -0
  704. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/024_chat_messages.sql +0 -0
  705. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/024_pr_conversation_id.sql +0 -0
  706. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/024_task_indexes.sql +0 -0
  707. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/024_task_indexes_down.sql +0 -0
  708. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/025_audit_log.sql +0 -0
  709. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/026_agent_tokens.sql +0 -0
  710. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/027_teams_auth_phase_b.sql +0 -0
  711. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/028_learnings.sql +0 -0
  712. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/029_team_roles.sql +0 -0
  713. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/030_finder_pins.sql +0 -0
  714. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/031_pr_deploy_status.sql +0 -0
  715. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/032_task_reminders.sql +0 -0
  716. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/033_events_retry_count.sql +0 -0
  717. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/033_session_owner.sql +0 -0
  718. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/034_notifications.sql +0 -0
  719. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/035_shared_links.sql +0 -0
  720. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/036_session_index_upgrade.sql +0 -0
  721. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/037_pr_approval.sql +0 -0
  722. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/038_pr_submitted_by.sql +0 -0
  723. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/039_push_subscriptions.sql +0 -0
  724. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/040_semantic_search.sql +0 -0
  725. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/041_workspaces.sql +0 -0
  726. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/042_oidc_providers.sql +0 -0
  727. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/043_ci_checks.sql +0 -0
  728. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/044_agent_metrics.sql +0 -0
  729. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/045_documents_doc_type.sql +0 -0
  730. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/046_salience.sql +0 -0
  731. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/047_seed_missing_agents.sql +0 -0
  732. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/048_fix_agent_paths_roles.sql +0 -0
  733. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/049_agent_role_and_learnings_schema.sql +0 -0
  734. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/050_session_provider.sql +0 -0
  735. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/051_session_launch_profile.sql +0 -0
  736. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/052_session_theme_mode.sql +0 -0
  737. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/052_task_kind.sql +0 -0
  738. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/053_inbox_items.sql +0 -0
  739. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/054_inbox_triage_contract.sql +0 -0
  740. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/055_inbox_topic_treatment.sql +0 -0
  741. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/056_inbox_treatment_read_save.sql +0 -0
  742. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/057_session_theme_mode_backfill.sql +0 -0
  743. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/058_inbox_item_status_lifecycle.sql +0 -0
  744. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/059_inbox_tldr_and_source_scores.sql +0 -0
  745. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/060_newsletter.sql +0 -0
  746. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/061_inbox_redesign.sql +0 -0
  747. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/062_fix_inbox_sources_backfill.sql +0 -0
  748. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/063_task_completion_mode.sql +0 -0
  749. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/064_judge_mode_setting.sql +0 -0
  750. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/065_knowledge_graph_spike.sql +0 -0
  751. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/066_digest_ranking_inputs.sql +0 -0
  752. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/066_kg_artifact_nodes.sql +0 -0
  753. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/067_inbox_digest_selections.sql +0 -0
  754. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/067_kg_temporal.sql +0 -0
  755. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/068_inbox_digest_app_settings.sql +0 -0
  756. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/068_kg_touch_counter.sql +0 -0
  757. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/069_kg_doc_types.sql +0 -0
  758. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/070_digest_ranking_inputs_recovery.sql +0 -0
  759. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/071_inbox_digest_selections_recovery.sql +0 -0
  760. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/072_inbox_digest_app_settings_recovery.sql +0 -0
  761. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/073_kg_cross_project.sql +0 -0
  762. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/073_kg_cross_project_down.sql +0 -0
  763. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/074_kg_infra_types.sql +0 -0
  764. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/074_kg_infra_types_down.sql +0 -0
  765. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/075_kg_file_state_recovery.sql +0 -0
  766. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/075_kg_file_state_recovery_down.sql +0 -0
  767. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/076_kg_watcher_state.sql +0 -0
  768. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/076_kg_watcher_state_down.sql +0 -0
  769. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/077_kg_doc_types_extend.sql +0 -0
  770. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/077_kg_doc_types_extend_down.sql +0 -0
  771. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/078_kg_fts5.sql +0 -0
  772. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/078_kg_fts5_down.sql +0 -0
  773. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/079_kg_missing_indexes.sql +0 -0
  774. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/079_kg_missing_indexes_down.sql +0 -0
  775. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/080_kg_fts5_extended.sql +0 -0
  776. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/080_kg_fts5_extended_down.sql +0 -0
  777. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/081_kg_lens_indexes.sql +0 -0
  778. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/081_kg_lens_indexes_down.sql +0 -0
  779. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/082_kg_pins.sql +0 -0
  780. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/082_kg_pins_down.sql +0 -0
  781. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/083_kg_graph_nodes_degree.sql +0 -0
  782. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/083_kg_graph_nodes_degree_down.sql +0 -0
  783. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/084_drop_legacy_scheduler_tables.sql +0 -0
  784. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/084_drop_legacy_scheduler_tables_down.sql +0 -0
  785. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/085_kg_edge_resolves_to.sql +0 -0
  786. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/085_kg_edge_resolves_to_down.sql +0 -0
  787. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/086_project_status_updates_feed.sql +0 -0
  788. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/086_project_status_updates_feed_down.sql +0 -0
  789. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/087_session_metrics_dual.sql +0 -0
  790. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/087_session_metrics_dual_down.sql +0 -0
  791. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/088_rename_context_pct_legacy.sql +0 -0
  792. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/088_rename_context_pct_legacy_down.sql +0 -0
  793. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/089_session_metrics_equivalent_cost.sql +0 -0
  794. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/089_session_metrics_equivalent_cost_down.sql +0 -0
  795. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/090_kg_inbox_node_type.sql +0 -0
  796. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/090_kg_inbox_node_type_down.sql +0 -0
  797. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/091_kg_inbox_node_type_check.sql +0 -0
  798. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/091_kg_inbox_node_type_check_down.sql +0 -0
  799. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/092_sessions_activity_state_ts.sql +0 -0
  800. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/092_sessions_activity_state_ts_down.sql +0 -0
  801. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/093_sessions_activity_state_column.sql +0 -0
  802. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/093_sessions_activity_state_column_down.sql +0 -0
  803. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/094_ingest_pending.sql +0 -0
  804. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/094_ingest_pending_down.sql +0 -0
  805. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/095_kg_intent_first.sql +0 -0
  806. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/095_kg_intent_first_down.sql +0 -0
  807. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/096_kg_xlsx_artifact_prefix.sql +0 -0
  808. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/096_kg_xlsx_artifact_prefix_down.sql +0 -0
  809. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/097_ingest_change_history.sql +0 -0
  810. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/097_ingest_change_history_down.sql +0 -0
  811. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/098_kg_node_type_business.sql +0 -0
  812. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/098_kg_node_type_business_down.sql +0 -0
  813. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/099_kg_edges_restore_weight.sql +0 -0
  814. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/099_kg_edges_restore_weight_down.sql +0 -0
  815. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/100_kg_enriched_at.sql +0 -0
  816. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/100_kg_enriched_at_down.sql +0 -0
  817. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/101_local_llm_shadow_comparisons.sql +0 -0
  818. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/101_local_llm_shadow_comparisons_down.sql +0 -0
  819. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/102_promote_llm_costs.sql +0 -0
  820. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/102_promote_llm_costs_down.sql +0 -0
  821. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/103_ingest_skipped_log.sql +0 -0
  822. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/103_ingest_skipped_log_down.sql +0 -0
  823. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/120_docs_governance.sql +0 -0
  824. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/120_docs_governance_down.sql +0 -0
  825. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/121_notification_event_fk_cleanup.sql +0 -0
  826. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/121_notification_event_fk_cleanup_down.sql +0 -0
  827. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/122_docs_drift_history.sql +0 -0
  828. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/122_docs_drift_history_down.sql +0 -0
  829. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/123_ingest_parser_waiting_status.sql +0 -0
  830. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/123_ingest_parser_waiting_status_down.sql +0 -0
  831. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/124_heypocket_recordings.sql +0 -0
  832. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/124_heypocket_recordings_down.sql +0 -0
  833. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/125_kg_node_type_record.sql +0 -0
  834. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/125_kg_node_type_record_down.sql +0 -0
  835. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/126_ingest_terminal_upload_source_kind.sql +0 -0
  836. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/126_ingest_terminal_upload_source_kind_down.sql +0 -0
  837. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/127_brain_v1_substrate.sql +0 -0
  838. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/127_brain_v1_substrate_down.sql +0 -0
  839. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/128_brain_drift_signals.sql +0 -0
  840. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/128_brain_drift_signals_down.sql +0 -0
  841. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/129_brain_memory_operations.sql +0 -0
  842. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/129_brain_memory_operations_down.sql +0 -0
  843. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/130_brain_findings.sql +0 -0
  844. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/130_brain_findings_down.sql +0 -0
  845. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/132_kg_pr_modifies.sql +0 -0
  846. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/132_kg_pr_modifies_down.sql +0 -0
  847. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/133_brain_v1_2_direction_schema.sql +0 -0
  848. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/133_brain_v1_2_direction_schema_down.sql +0 -0
  849. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/134_brain_journal_narrative_polished.sql +0 -0
  850. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/134_brain_journal_narrative_polished_down.sql +0 -0
  851. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/135_kg_edges_provider.sql +0 -0
  852. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/136_documents_fts.sql +0 -0
  853. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/137_promote_llm_costs.sql +0 -0
  854. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/137_promote_llm_costs_down.sql +0 -0
  855. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/138_ingest_api_keys.sql +0 -0
  856. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/138_ingest_api_keys_down.sql +0 -0
  857. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/139_ingest_pending_ingress.sql +0 -0
  858. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/139_ingest_pending_ingress_down.sql +0 -0
  859. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/140_ingest_idempotency_quota.sql +0 -0
  860. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/140_ingest_idempotency_quota_down.sql +0 -0
  861. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/141_ingest_pending_metadata.sql +0 -0
  862. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/141_ingest_pending_metadata_down.sql +0 -0
  863. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/142_llm_function_config.sql +0 -0
  864. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/142_llm_function_config_down.sql +0 -0
  865. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/143_kg_code_embeddings.sql +0 -0
  866. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/143_kg_code_embeddings_down.sql +0 -0
  867. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/144_notifications_pending_sync_index.sql +0 -0
  868. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/145_audit_log_immutable.sql +0 -0
  869. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/145_audit_log_immutable_down.sql +0 -0
  870. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/146_drop_kg_backup_tables.sql +0 -0
  871. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/146_drop_kg_backup_tables_down.sql +0 -0
  872. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/147_chunks.sql +0 -0
  873. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/147_chunks_down.sql +0 -0
  874. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/148_bitemporal_learnings.sql +0 -0
  875. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/148_bitemporal_learnings_down.sql +0 -0
  876. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/149_kg_trust_columns.sql +0 -0
  877. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/149_kg_trust_columns_down.sql +0 -0
  878. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/150_delegations.sql +0 -0
  879. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/150_delegations_down.sql +0 -0
  880. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/151_todos.sql +0 -0
  881. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/151_todos_down.sql +0 -0
  882. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/152_project_color.sql +0 -0
  883. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/152_project_color_down.sql +0 -0
  884. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/153_manual_project_edges.sql +0 -0
  885. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/153_manual_project_edges_down.sql +0 -0
  886. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/154_drop_legacy_project_dirs_default.sql +0 -0
  887. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/154_drop_legacy_project_dirs_default_down.sql +0 -0
  888. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/migrations/__init__.py +0 -0
  889. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/projects/_template/context.md +0 -0
  890. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/projects/_template/docs/brainstorms/YYYY-MM-DD-example-brainstorm.md +0 -0
  891. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/projects/_template/docs/plans/YYYY-MM-DD-example-plan.md +0 -0
  892. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/projects/_template/docs/solutions/YYYY-MM-DD-example-solution.md +0 -0
  893. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/projects/_template/input/README.md +0 -0
  894. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/projects/_template/memory/handoff.md +0 -0
  895. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/projects/_template/output/README.md +0 -0
  896. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/projects/_template/project.yaml +0 -0
  897. {marvisx_cli-0.3.9b4 → marvisx_cli-0.3.9b6}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: marvisx-cli
3
- Version: 0.3.9b4
3
+ Version: 0.3.9b6
4
4
  Summary: MarvisX OSS — agent-native company-brain CLI runtime (init, status, brief, triage)
5
5
  Author: MarvisX maintainers
6
6
  License: BSL-1.1
@@ -1 +1 @@
1
- <!DOCTYPE html><!--_qWuIWH6LnWDsr6q253TF--><html lang="en" class="__variable_8e4f0e __variable_45d476 theme-v2"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="preload" href="/ui/_next/static/media/558ca1a6aa3cb55e-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/ui/_next/static/media/a31f6539c570f5f4-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/ui/_next/static/media/cd5bec9268da5b8d-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/ui/_next/static/css/1bf4906983b62b81.css" data-precedence="next"/><link rel="stylesheet" href="/ui/_next/static/css/b414d34cce79812b.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/ui/_next/static/chunks/webpack-eb4202bb8f321e36.js"/><script src="/ui/_next/static/chunks/4bd1b696-f785427dddbba9fb.js" async=""></script><script src="/ui/_next/static/chunks/1255-a122635a4d00ff55.js" async=""></script><script src="/ui/_next/static/chunks/main-app-8eb58590bd33c22b.js" async=""></script><script src="/ui/_next/static/chunks/app/layout-6898769151251321.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><meta name="theme-color" content="#0f172a"/><title>Marvis Console</title><meta name="description" content="Agent-native project management console"/><link rel="manifest" href="/ui/manifest.webmanifest"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Marvis"/><meta name="apple-mobile-web-app-status-bar-style" content="default"/><link rel="icon" href="/ui/favicon-16.svg" sizes="16x16" type="image/svg+xml"/><link rel="icon" href="/ui/favicon-32.svg" sizes="32x32" type="image/svg+xml"/><link rel="icon" href="/ui/favicon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/ui/icons/icon-192.png" sizes="192x192"/><script id="pir-design-v2-init">(function(){try{if(localStorage.getItem("marvisx:design-v2")==="false")document.documentElement.classList.remove("theme-v2");}catch(e){}})();</script><script src="/ui/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="bg-pir-base text-pir-text-primary font-sans antialiased h-screen overflow-hidden"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/ui/_next/static/chunks/webpack-eb4202bb8f321e36.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[5379,[\"7177\",\"static/chunks/app/layout-6898769151251321.js\"],\"ThemeProvider\"]\n3:I[9766,[],\"\"]\n4:I[8924,[],\"\"]\n5:I[4431,[],\"OutletBoundary\"]\n7:I[5278,[],\"AsyncMetadataOutlet\"]\n9:I[4431,[],\"ViewportBoundary\"]\nb:I[4431,[],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[7150,[],\"\"]\n:HL[\"/ui/_next/static/media/558ca1a6aa3cb55e-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/ui/_next/static/media/a31f6539c570f5f4-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/ui/_next/static/media/cd5bec9268da5b8d-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/ui/_next/static/css/1bf4906983b62b81.css\",\"style\"]\n:HL[\"/ui/_next/static/css/b414d34cce79812b.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"_qWuIWH6LnWDsr6q253TF\",\"p\":\"/ui\",\"c\":[\"\",\"_not-found\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/ui/_next/static/css/1bf4906983b62b81.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/ui/_next/static/css/b414d34cce79812b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"className\":\"__variable_8e4f0e __variable_45d476 theme-v2\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"id\":\"pir-design-v2-init\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{if(localStorage.getItem(\\\"marvisx:design-v2\\\")===\\\"false\\\")document.documentElement.classList.remove(\\\"theme-v2\\\");}catch(e){}})();\"}}]}],[\"$\",\"body\",null,{\"className\":\"bg-pir-base text-pir-text-primary font-sans antialiased h-screen overflow-hidden\",\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"class\",\"defaultTheme\":\"system\",\"enableSystem\":true,\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0f172a\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"f:I[622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"8:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Marvis Console\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Agent-native project management console\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/ui/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"4\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Marvis\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/ui/favicon-16.svg\",\"sizes\":\"16x16\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"7\",{\"rel\":\"icon\",\"href\":\"/ui/favicon-32.svg\",\"sizes\":\"32x32\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/ui/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"9\",{\"rel\":\"apple-touch-icon\",\"href\":\"/ui/icons/icon-192.png\",\"sizes\":\"192x192\"}],[\"$\",\"$Lf\",\"10\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--7b6mVHqxZDvD5RzGXH82G--><html lang="en" class="__variable_8e4f0e __variable_45d476 theme-v2"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="preload" href="/ui/_next/static/media/558ca1a6aa3cb55e-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/ui/_next/static/media/a31f6539c570f5f4-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/ui/_next/static/media/cd5bec9268da5b8d-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/ui/_next/static/css/1bf4906983b62b81.css" data-precedence="next"/><link rel="stylesheet" href="/ui/_next/static/css/9cc24773829565f7.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/ui/_next/static/chunks/webpack-eb4202bb8f321e36.js"/><script src="/ui/_next/static/chunks/4bd1b696-f785427dddbba9fb.js" async=""></script><script src="/ui/_next/static/chunks/1255-a122635a4d00ff55.js" async=""></script><script src="/ui/_next/static/chunks/main-app-8eb58590bd33c22b.js" async=""></script><script src="/ui/_next/static/chunks/app/layout-6898769151251321.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><meta name="theme-color" content="#0f172a"/><title>Marvis Console</title><meta name="description" content="Agent-native project management console"/><link rel="manifest" href="/ui/manifest.webmanifest"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Marvis"/><meta name="apple-mobile-web-app-status-bar-style" content="default"/><link rel="icon" href="/ui/favicon-16.svg" sizes="16x16" type="image/svg+xml"/><link rel="icon" href="/ui/favicon-32.svg" sizes="32x32" type="image/svg+xml"/><link rel="icon" href="/ui/favicon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/ui/icons/icon-192.png" sizes="192x192"/><script id="pir-design-v2-init">(function(){try{if(localStorage.getItem("marvisx:design-v2")==="false")document.documentElement.classList.remove("theme-v2");}catch(e){}})();</script><script src="/ui/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="bg-pir-base text-pir-text-primary font-sans antialiased h-screen overflow-hidden"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/ui/_next/static/chunks/webpack-eb4202bb8f321e36.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[5379,[\"7177\",\"static/chunks/app/layout-6898769151251321.js\"],\"ThemeProvider\"]\n3:I[9766,[],\"\"]\n4:I[8924,[],\"\"]\n5:I[4431,[],\"OutletBoundary\"]\n7:I[5278,[],\"AsyncMetadataOutlet\"]\n9:I[4431,[],\"ViewportBoundary\"]\nb:I[4431,[],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[7150,[],\"\"]\n:HL[\"/ui/_next/static/media/558ca1a6aa3cb55e-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/ui/_next/static/media/a31f6539c570f5f4-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/ui/_next/static/media/cd5bec9268da5b8d-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/ui/_next/static/css/1bf4906983b62b81.css\",\"style\"]\n:HL[\"/ui/_next/static/css/9cc24773829565f7.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"7b6mVHqxZDvD5RzGXH82G\",\"p\":\"/ui\",\"c\":[\"\",\"_not-found\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/ui/_next/static/css/1bf4906983b62b81.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/ui/_next/static/css/9cc24773829565f7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"className\":\"__variable_8e4f0e __variable_45d476 theme-v2\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"id\":\"pir-design-v2-init\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{if(localStorage.getItem(\\\"marvisx:design-v2\\\")===\\\"false\\\")document.documentElement.classList.remove(\\\"theme-v2\\\");}catch(e){}})();\"}}]}],[\"$\",\"body\",null,{\"className\":\"bg-pir-base text-pir-text-primary font-sans antialiased h-screen overflow-hidden\",\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"class\",\"defaultTheme\":\"system\",\"enableSystem\":true,\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0f172a\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"f:I[622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"8:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Marvis Console\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Agent-native project management console\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/ui/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"4\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Marvis\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/ui/favicon-16.svg\",\"sizes\":\"16x16\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"7\",{\"rel\":\"icon\",\"href\":\"/ui/favicon-32.svg\",\"sizes\":\"32x32\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/ui/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"9\",{\"rel\":\"apple-touch-icon\",\"href\":\"/ui/icons/icon-192.png\",\"sizes\":\"192x192\"}],[\"$\",\"$Lf\",\"10\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><!--_qWuIWH6LnWDsr6q253TF--><html lang="en" class="__variable_8e4f0e __variable_45d476 theme-v2"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="preload" href="/ui/_next/static/media/558ca1a6aa3cb55e-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/ui/_next/static/media/a31f6539c570f5f4-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/ui/_next/static/media/cd5bec9268da5b8d-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/ui/_next/static/css/1bf4906983b62b81.css" data-precedence="next"/><link rel="stylesheet" href="/ui/_next/static/css/b414d34cce79812b.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/ui/_next/static/chunks/webpack-eb4202bb8f321e36.js"/><script src="/ui/_next/static/chunks/4bd1b696-f785427dddbba9fb.js" async=""></script><script src="/ui/_next/static/chunks/1255-a122635a4d00ff55.js" async=""></script><script src="/ui/_next/static/chunks/main-app-8eb58590bd33c22b.js" async=""></script><script src="/ui/_next/static/chunks/app/layout-6898769151251321.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><meta name="theme-color" content="#0f172a"/><title>Marvis Console</title><meta name="description" content="Agent-native project management console"/><link rel="manifest" href="/ui/manifest.webmanifest"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Marvis"/><meta name="apple-mobile-web-app-status-bar-style" content="default"/><link rel="icon" href="/ui/favicon-16.svg" sizes="16x16" type="image/svg+xml"/><link rel="icon" href="/ui/favicon-32.svg" sizes="32x32" type="image/svg+xml"/><link rel="icon" href="/ui/favicon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/ui/icons/icon-192.png" sizes="192x192"/><script id="pir-design-v2-init">(function(){try{if(localStorage.getItem("marvisx:design-v2")==="false")document.documentElement.classList.remove("theme-v2");}catch(e){}})();</script><script src="/ui/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="bg-pir-base text-pir-text-primary font-sans antialiased h-screen overflow-hidden"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/ui/_next/static/chunks/webpack-eb4202bb8f321e36.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[5379,[\"7177\",\"static/chunks/app/layout-6898769151251321.js\"],\"ThemeProvider\"]\n3:I[9766,[],\"\"]\n4:I[8924,[],\"\"]\n5:I[4431,[],\"OutletBoundary\"]\n7:I[5278,[],\"AsyncMetadataOutlet\"]\n9:I[4431,[],\"ViewportBoundary\"]\nb:I[4431,[],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[7150,[],\"\"]\n:HL[\"/ui/_next/static/media/558ca1a6aa3cb55e-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/ui/_next/static/media/a31f6539c570f5f4-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/ui/_next/static/media/cd5bec9268da5b8d-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/ui/_next/static/css/1bf4906983b62b81.css\",\"style\"]\n:HL[\"/ui/_next/static/css/b414d34cce79812b.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"_qWuIWH6LnWDsr6q253TF\",\"p\":\"/ui\",\"c\":[\"\",\"_not-found\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/ui/_next/static/css/1bf4906983b62b81.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/ui/_next/static/css/b414d34cce79812b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"className\":\"__variable_8e4f0e __variable_45d476 theme-v2\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"id\":\"pir-design-v2-init\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{if(localStorage.getItem(\\\"marvisx:design-v2\\\")===\\\"false\\\")document.documentElement.classList.remove(\\\"theme-v2\\\");}catch(e){}})();\"}}]}],[\"$\",\"body\",null,{\"className\":\"bg-pir-base text-pir-text-primary font-sans antialiased h-screen overflow-hidden\",\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"class\",\"defaultTheme\":\"system\",\"enableSystem\":true,\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0f172a\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"f:I[622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"8:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Marvis Console\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Agent-native project management console\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/ui/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"4\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Marvis\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/ui/favicon-16.svg\",\"sizes\":\"16x16\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"7\",{\"rel\":\"icon\",\"href\":\"/ui/favicon-32.svg\",\"sizes\":\"32x32\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/ui/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"9\",{\"rel\":\"apple-touch-icon\",\"href\":\"/ui/icons/icon-192.png\",\"sizes\":\"192x192\"}],[\"$\",\"$Lf\",\"10\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--7b6mVHqxZDvD5RzGXH82G--><html lang="en" class="__variable_8e4f0e __variable_45d476 theme-v2"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="preload" href="/ui/_next/static/media/558ca1a6aa3cb55e-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/ui/_next/static/media/a31f6539c570f5f4-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/ui/_next/static/media/cd5bec9268da5b8d-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/ui/_next/static/css/1bf4906983b62b81.css" data-precedence="next"/><link rel="stylesheet" href="/ui/_next/static/css/9cc24773829565f7.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/ui/_next/static/chunks/webpack-eb4202bb8f321e36.js"/><script src="/ui/_next/static/chunks/4bd1b696-f785427dddbba9fb.js" async=""></script><script src="/ui/_next/static/chunks/1255-a122635a4d00ff55.js" async=""></script><script src="/ui/_next/static/chunks/main-app-8eb58590bd33c22b.js" async=""></script><script src="/ui/_next/static/chunks/app/layout-6898769151251321.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><meta name="theme-color" content="#0f172a"/><title>Marvis Console</title><meta name="description" content="Agent-native project management console"/><link rel="manifest" href="/ui/manifest.webmanifest"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Marvis"/><meta name="apple-mobile-web-app-status-bar-style" content="default"/><link rel="icon" href="/ui/favicon-16.svg" sizes="16x16" type="image/svg+xml"/><link rel="icon" href="/ui/favicon-32.svg" sizes="32x32" type="image/svg+xml"/><link rel="icon" href="/ui/favicon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/ui/icons/icon-192.png" sizes="192x192"/><script id="pir-design-v2-init">(function(){try{if(localStorage.getItem("marvisx:design-v2")==="false")document.documentElement.classList.remove("theme-v2");}catch(e){}})();</script><script src="/ui/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="bg-pir-base text-pir-text-primary font-sans antialiased h-screen overflow-hidden"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/ui/_next/static/chunks/webpack-eb4202bb8f321e36.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[5379,[\"7177\",\"static/chunks/app/layout-6898769151251321.js\"],\"ThemeProvider\"]\n3:I[9766,[],\"\"]\n4:I[8924,[],\"\"]\n5:I[4431,[],\"OutletBoundary\"]\n7:I[5278,[],\"AsyncMetadataOutlet\"]\n9:I[4431,[],\"ViewportBoundary\"]\nb:I[4431,[],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[7150,[],\"\"]\n:HL[\"/ui/_next/static/media/558ca1a6aa3cb55e-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/ui/_next/static/media/a31f6539c570f5f4-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/ui/_next/static/media/cd5bec9268da5b8d-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/ui/_next/static/css/1bf4906983b62b81.css\",\"style\"]\n:HL[\"/ui/_next/static/css/9cc24773829565f7.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"7b6mVHqxZDvD5RzGXH82G\",\"p\":\"/ui\",\"c\":[\"\",\"_not-found\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/ui/_next/static/css/1bf4906983b62b81.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/ui/_next/static/css/9cc24773829565f7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"className\":\"__variable_8e4f0e __variable_45d476 theme-v2\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"id\":\"pir-design-v2-init\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{if(localStorage.getItem(\\\"marvisx:design-v2\\\")===\\\"false\\\")document.documentElement.classList.remove(\\\"theme-v2\\\");}catch(e){}})();\"}}]}],[\"$\",\"body\",null,{\"className\":\"bg-pir-base text-pir-text-primary font-sans antialiased h-screen overflow-hidden\",\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"class\",\"defaultTheme\":\"system\",\"enableSystem\":true,\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0f172a\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"f:I[622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"8:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Marvis Console\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Agent-native project management console\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/ui/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"4\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Marvis\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/ui/favicon-16.svg\",\"sizes\":\"16x16\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"7\",{\"rel\":\"icon\",\"href\":\"/ui/favicon-32.svg\",\"sizes\":\"32x32\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/ui/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"9\",{\"rel\":\"apple-touch-icon\",\"href\":\"/ui/icons/icon-192.png\",\"sizes\":\"192x192\"}],[\"$\",\"$Lf\",\"10\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script></body></html>
@@ -0,0 +1 @@
1
+ self.__BUILD_MANIFEST=function(e,r,t){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:34,errorRate:1e-4,numBits:652,numHashes:14,bitArray:[1,0,1,e,e,0,e,r,r,e,e,e,e,r,e,e,r,r,r,e,r,e,e,r,r,r,r,e,r,r,r,r,r,e,e,e,e,e,r,e,e,r,e,r,e,r,e,r,r,r,e,e,r,r,r,r,e,r,r,e,e,r,e,e,e,e,e,e,r,e,r,e,r,r,e,e,r,r,r,r,r,e,r,r,r,e,e,e,r,r,r,e,r,e,e,r,e,r,r,r,r,r,r,r,r,r,r,r,e,e,r,r,r,e,r,r,r,e,e,e,r,r,r,r,e,e,r,r,r,r,r,r,e,r,r,e,r,r,r,e,r,r,r,e,e,e,e,e,r,e,e,r,r,r,e,r,e,e,r,r,e,r,e,e,r,r,r,r,r,e,e,r,e,r,e,e,r,r,r,r,e,r,r,e,e,e,e,r,e,e,e,e,r,e,r,r,r,r,r,e,r,r,e,e,r,e,r,e,e,r,e,r,r,r,e,e,r,r,r,r,e,e,e,r,e,r,e,r,r,r,e,e,e,e,e,e,e,r,r,r,e,r,r,e,e,e,e,r,r,r,e,e,r,r,e,r,e,e,e,e,e,e,e,r,e,e,e,e,r,e,r,e,e,e,e,e,e,r,r,r,e,e,e,e,e,e,e,e,r,e,r,r,r,e,r,r,r,r,r,e,r,e,r,e,r,r,r,e,e,r,r,r,r,e,e,r,e,e,e,r,e,e,r,e,r,r,r,r,r,e,r,e,e,r,r,e,r,e,r,r,r,r,e,e,e,r,e,e,r,e,r,e,e,r,e,r,r,e,r,e,r,e,e,r,r,e,r,e,e,r,e,e,r,r,e,e,e,r,r,e,e,e,r,r,e,r,e,r,e,e,e,e,e,r,r,e,e,r,e,e,r,e,e,e,e,r,r,r,r,e,r,r,r,e,e,r,e,r,e,e,e,e,r,e,e,e,r,r,e,r,e,e,e,r,r,e,r,e,e,r,r,e,e,e,r,r,e,r,e,e,e,e,e,e,r,r,e,e,r,e,r,e,e,r,e,r,r,e,e,e,r,e,r,r,r,e,e,r,r,e,r,e,r,e,r,e,e,e,r,e,r,e,e,r,r,r,e,e,e,e,e,r,e,e,r,r,e,e,e,r,r,r,r,e,e,e,e,e,e,r,r,r,r,r,r,e,e,e,e,r,r,e,r,e,r,r,r,r,r,e,r,r,r,e,r,r,e,r,r,r,e,e,e,e,r,r,r,r,e,r,e,e,e,r,r,r,r,e,r,e,e,e,e,r,e,e,r,e,r,e,e,r,r,r,r,e,e,e,r,r,e,e,e,r,r,e,r,e,e,r,r,e,r,e,r,r,e,r,e,r,r,e,r,e,e,e,e,e,e,r,r,r,e,e,e,e,e,e,r,r,r,e,e,r,e,r,e,e,r,e,r,r,e,e,r,e,r,r,e,e,e,r]},__routerFilterDynamic:{numItems:r,errorRate:1e-4,numBits:r,numHashes:null,bitArray:[]},"/_error":["static/chunks/pages/_error-94812ad32cad7365.js"],sortedPages:["/_app","/_error"]}}(1,0,1e-4),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2582],{1955:(e,t,r)=>{r.d(t,{j:()=>s});var a=r(2115);function s(e,t){let{interval:r,enabled:s=!0,backoff:n=!1,unchangedThreshold:i=3,maxInterval:l=4*r}=t,[c,o]=(0,a.useState)(null),[d,x]=(0,a.useState)(!0),[p,u]=(0,a.useState)(null),m=(0,a.useRef)(null),h=(0,a.useRef)(null),b=(0,a.useRef)(""),f=(0,a.useRef)(0),g=(0,a.useRef)(r),j=(0,a.useCallback)(async()=>{var t;null==(t=m.current)||t.abort();let a=new AbortController;m.current=a;try{let t=await e(a.signal),s=JSON.stringify(t);n&&s===b.current?f.current++:(f.current=0,g.current=r),b.current=s,o(t),u(null)}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)return;u(e instanceof Error?e:Error("Fetch failed"))}finally{x(!1)}},[e,n,r]),v=(0,a.useCallback)(()=>{j(),h.current&&clearInterval(h.current);let e=g.current;n&&f.current>=i&&(g.current=e=Math.min(2*e,l)),h.current=setInterval(j,e)},[j,n,i,l]),y=(0,a.useCallback)(()=>{h.current&&(clearInterval(h.current),h.current=null)},[]);return(0,a.useEffect)(()=>{if(!s)return void y();let e=()=>{"visible"===document.visibilityState?v():y()};return v(),document.addEventListener("visibilitychange",e),()=>{var t;null==(t=m.current)||t.abort(),y(),document.removeEventListener("visibilitychange",e)}},[s,v,y]),{data:c,loading:d,error:p,refresh:(0,a.useCallback)(()=>{f.current=0,g.current=r,j()},[j,r])}}},2582:(e,t,r)=>{r.d(t,{A:()=>F});var a=r(5155),s=r(2115),n=r(8885),i=r(960),l=r(8737),c=r(1803),o=r(2931);function d(e){let{unifiedDiff:t}=e,r=(0,s.useMemo)(()=>{if(!t)return"";let e=(0,c.qy)(t,{drawFileList:!0,matching:"lines",outputFormat:"line-by-line"});return o.A.sanitize(e)},[t]);return r?(0,a.jsx)("div",{className:"diff-viewer text-xs overflow-x-auto [&_.d2h-wrapper]:bg-transparent [&_.d2h-file-header]:bg-pir-surface-0 [&_.d2h-file-header]:border-pir [&_.d2h-code-linenumber]:bg-pir-surface-0 [&_.d2h-code-line]:bg-transparent [&_.d2h-info]:bg-pir-surface-0 [&_.d2h-file-list-wrapper]:bg-pir-surface-0 [&_.d2h-file-list-wrapper]:border-pir [&_td]:text-pir-text-secondary [&_.d2h-del]:bg-pir-error/10 [&_.d2h-ins]:bg-pir-success/10 [&_.d2h-del_.d2h-code-line-ctn]:text-pir-error [&_.d2h-ins_.d2h-code-line-ctn]:text-pir-success",dangerouslySetInnerHTML:{__html:r}}):(0,a.jsx)("div",{className:"text-caption text-pir-text-muted py-2",children:"No diff available"})}r(8356);var x=r(1601),p=r(5704);let u={draft:{label:"Branch",cls:"bg-pir-text-muted/20 text-pir-text-muted"},open:{label:"In Review",cls:"bg-pir-warning/20 text-pir-warning"},merging:{label:"Merging...",cls:"bg-pir-accent/20 text-pir-accent"},merged:{label:"Merged",cls:"bg-pir-success/20 text-pir-success"},closed:{label:"Closed",cls:"bg-pir-error/20 text-pir-error"}};function m(e){var t;let{taskId:r,onTaskCompleted:n,currentUser:c}=e,[o,m]=(0,s.useState)(null),[h,b]=(0,s.useState)(!0),[f,g]=(0,s.useState)(null),[j,v]=(0,s.useState)(0),[y,N]=(0,s.useState)(!1),[k,C]=(0,s.useState)(null),[w,_]=(0,s.useState)(null),[S,D]=(0,s.useState)(!1),[M,E]=(0,s.useState)(""),[L,A]=(0,s.useState)(!1),[R,T]=(0,s.useState)(!1),[W,B]=(0,s.useState)(!1),[I,P]=(0,s.useState)(""),[H,U]=(0,s.useState)(!1),[q,F]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let e=new AbortController;return b(!0),g(null),(0,i.T9n)(r,{signal:e.signal}).then(e=>m(e)).catch(e=>{if("AbortError"!==e.name){var t,r;(null==(t=e.message)?void 0:t.includes("404"))?m(null):g(null!=(r=e.message)?r:"Unknown error")}}).finally(()=>{e.signal.aborted||b(!1)}),()=>e.abort()},[r,j]);let z=(0,s.useCallback)(async()=>{if(o){N(!0),C(null),_(null);try{await (0,i.dK_)(r),m(e=>e?{...e,status:"merged"}:e),null==n||n()}catch(t){let e=t instanceof Error?t.message:"Merge failed";try{let t=JSON.parse(e);if(t.conflicting_files){_(t.conflicting_files),C("Merge conflict");return}}catch(e){}C(e)}finally{N(!1)}}},[o,r,n]),O=(0,s.useCallback)(async()=>{A(!0);try{await (0,i.d66)(r,M),m(e=>e?{...e,status:"closed",closed_reason:M||null}:e),D(!1),E("")}catch(e){C(e instanceof Error?e.message:"Close failed")}finally{A(!1)}},[r,M]),$=(0,s.useCallback)(async()=>{if(o){T(!0),C(null);try{let e=await (0,i.WYS)(r);m(e)}catch(e){C(e instanceof Error?e.message:"Approve failed")}finally{T(!1)}}},[o,r]),G=(0,s.useCallback)(async()=>{U(!0);try{await (0,i.fdU)(r,I),m(e=>e?{...e,approved_by:null,approved_at:null}:e),B(!1),P("")}catch(e){C(e instanceof Error?e.message:"Request changes failed")}finally{U(!1)}},[r,I]);if(h)return(0,a.jsx)("div",{className:"text-caption text-pir-text-muted py-2",children:"Loading PR..."});if(!o&&!f)return null;if(f)return"Failed to fetch"===f?(0,a.jsxs)("div",{className:"text-caption text-pir-text-muted py-2 flex items-center gap-2",children:[(0,a.jsx)("span",{children:"PR data unavailable"}),(0,a.jsx)("button",{onClick:()=>v(e=>e+1),className:"text-pir-accent hover:text-pir-accent/80 transition-colors underline-offset-2 hover:underline",children:"Retry"})]}):(0,a.jsx)(x.$,{message:"PR error: ".concat(f),className:"py-2"});if(!o)return null;let J=u[o.status],V="open"===o.status,K="draft"===o.status||"open"===o.status,X="merged"===o.status||"closed"===o.status,Z=((null==c?void 0:c.system_role)==="admin"||(null==c?void 0:c.system_role)==="super_admin")&&o.submitted_by!==(null==c?void 0:c.user_id)&&"open"===o.status;return(0,a.jsxs)("div",{className:"border border-pir rounded bg-pir-surface-0",children:[(0,a.jsxs)("div",{className:"px-3 py-2 flex items-center gap-2 border-b border-pir",children:[(0,a.jsx)("span",{className:"text-caption font-mono text-pir-text-muted truncate flex-1",children:o.branch}),(0,a.jsx)("span",{className:"text-[10px] px-2 py-0.5 rounded-full ".concat(J.cls),children:J.label}),"true"===p.env.NEXT_PUBLIC_ENABLE_GRAPH_UX&&(0,a.jsx)("a",{href:"/graph/?id=pr:artifact:".concat(r,"&tab=context"),title:"View PR in Knowledge Graph",className:"text-[10px] text-pir-text-muted hover:text-pir-text-secondary transition-colors",children:"KG →"})]}),(0,a.jsxs)("div",{className:"px-3 py-2 space-y-1",children:[o.title&&(0,a.jsx)("div",{className:"text-xs text-pir-text-primary font-medium",children:o.title}),o.diff&&(0,a.jsxs)("div",{className:"flex items-center gap-3 text-caption text-pir-text-muted",children:[(0,a.jsxs)("span",{children:[o.diff.stats.files_changed," file",1!==o.diff.stats.files_changed?"s":""]}),(0,a.jsxs)("span",{className:"text-pir-success",children:["+",o.diff.stats.additions]}),(0,a.jsxs)("span",{className:"text-pir-error",children:["-",o.diff.stats.deletions]}),o.diff.unified_diff&&(0,a.jsx)("button",{onClick:()=>F(e=>!e),className:"text-pir-accent hover:text-pir-accent/80 transition-colors ml-auto",children:q?"Hide diff":"Show diff"})]})]}),q&&(null==(t=o.diff)?void 0:t.unified_diff)&&(0,a.jsx)("div",{className:"border-t border-pir px-3 py-2 max-h-[400px] overflow-y-auto",children:(0,a.jsx)(d,{unifiedDiff:o.diff.unified_diff})}),"closed"===o.status&&o.closed_reason&&(0,a.jsx)("div",{className:"border-t border-pir px-3 py-2",children:(0,a.jsxs)("div",{className:"text-caption text-pir-text-muted",children:[(0,a.jsx)("span",{className:"font-medium",children:"Closed:"})," ",o.closed_reason]})}),o.approved_by&&"open"===o.status&&(0,a.jsx)("div",{className:"border-t border-pir px-3 py-2",children:(0,a.jsxs)("div",{className:"text-caption text-pir-success",children:["Approvata da ",o.approved_by]})}),k&&(0,a.jsxs)("div",{className:"border-t border-pir px-3 py-2",children:[(0,a.jsx)(x.$,{message:k}),w&&(0,a.jsx)("ul",{className:"mt-1 text-caption text-pir-text-muted list-disc pl-4",children:w.map(e=>(0,a.jsx)("li",{className:"font-mono",children:e},e))})]}),!X&&(0,a.jsx)("div",{className:"border-t border-pir px-3 py-2 flex items-center gap-2 flex-wrap",children:(0,a.jsxs)(l.B,{minRole:"operator",children:[K&&(0,a.jsx)("button",{onClick:()=>D(!0),className:"text-[10px] px-2.5 py-1 rounded border border-pir text-pir-text-muted hover:text-pir-error hover:border-pir-error/40 transition-colors",children:"Close PR"}),Z&&!o.approved_by&&(0,a.jsx)("button",{onClick:$,disabled:R,className:"text-[10px] px-2.5 py-1 rounded bg-pir-accent text-white hover:bg-pir-accent/80 disabled:opacity-50 transition-colors",children:R?"Approvando...":"✅ Approva"}),Z&&(0,a.jsx)("button",{onClick:()=>B(!0),className:"text-[10px] px-2.5 py-1 rounded border border-pir-warning text-pir-warning hover:bg-pir-warning/10 transition-colors",children:"✏️ Request Changes"}),V&&(0,a.jsx)("button",{onClick:z,disabled:y,className:"text-[10px] px-2.5 py-1 rounded bg-pir-success text-white hover:bg-pir-success/80 disabled:opacity-50 transition-colors ml-auto",children:y?"Merging...":"Merge"})]})}),S&&(0,a.jsxs)("div",{className:"border-t border-pir px-3 py-2 space-y-2",children:[(0,a.jsx)("textarea",{value:M,onChange:e=>E(e.target.value),placeholder:"Reason for closing (feedback for the agent)",rows:2,className:"w-full bg-pir-surface-1 border border-pir rounded px-2 py-1.5 text-xs text-pir-text-primary placeholder:text-pir-text-muted focus:outline-none focus:border-pir-accent resize-none"}),(0,a.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,a.jsx)("button",{onClick:()=>{D(!1),E("")},className:"text-[10px] px-2.5 py-1 rounded border border-pir text-pir-text-muted hover:bg-pir-surface-1 transition-colors",children:"Cancel"}),(0,a.jsx)("button",{onClick:O,disabled:L,className:"text-[10px] px-2.5 py-1 rounded bg-pir-error text-white hover:bg-pir-error/80 disabled:opacity-50 transition-colors",children:L?"Closing...":"Close PR"})]})]}),W&&(0,a.jsxs)("div",{className:"border-t border-pir px-3 py-2 space-y-2",children:[(0,a.jsx)("textarea",{value:I,onChange:e=>P(e.target.value),placeholder:"Commento per l'agente (obbligatorio)",rows:2,className:"w-full bg-pir-surface-1 border border-pir rounded px-2 py-1.5 text-xs text-pir-text-primary placeholder:text-pir-text-muted focus:outline-none focus:border-pir-accent resize-none"}),(0,a.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,a.jsx)("button",{onClick:()=>{B(!1),P("")},className:"text-[10px] px-2.5 py-1 rounded border border-pir text-pir-text-muted hover:bg-pir-surface-1 transition-colors",children:"Cancel"}),(0,a.jsx)("button",{onClick:G,disabled:H||!I.trim(),className:"text-[10px] px-2.5 py-1 rounded bg-pir-warning text-white hover:bg-pir-warning/80 disabled:opacity-50 transition-colors",children:H?"Inviando...":"Request Changes"})]})]})]})}function h(e){return 0===e?"$0.00":e<.01?"$".concat(e.toFixed(4)):"$".concat(e.toFixed(2))}function b(e){if(e<60)return"".concat(e,"m");let t=Math.floor(e/60),r=Math.round(e%60);return r>0?"".concat(t,"h ").concat(r,"m"):"".concat(t,"h")}function f(e){var t;let{entry:r}=e,s="agent"===r.entry_type;return(0,a.jsxs)("div",{className:"flex items-start gap-2 py-1.5 text-xs border-b border-pir last:border-0",children:[(0,a.jsx)("span",{className:"shrink-0 mt-0.5 rounded px-1.5 py-0.5 font-medium text-[10px] uppercase tracking-wide ".concat(s?"bg-pir-accent/15 text-pir-accent":"bg-pir-text-muted/15 text-pir-text-muted"),children:s?"Agent":"Human"}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[r.description&&(0,a.jsx)("p",{className:"text-pir-text-secondary truncate mb-0.5",children:r.description}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-x-3 gap-y-0.5 text-pir-text-muted",children:[s&&r.agent_seconds>0&&(0,a.jsxs)("span",{children:["agent time: ",(t=r.agent_seconds)<60?"".concat(t,"s"):b(Math.round(t/60))]}),!s&&r.human_minutes>0&&(0,a.jsxs)("span",{children:["human time: ",b(r.human_minutes)]}),(0,a.jsx)("span",{children:function(e){let t=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(t<60)return"".concat(t,"m ago");let r=Math.floor(t/60);return r<24?"".concat(r,"h ago"):"".concat(Math.floor(r/24),"d ago")}(r.created_at)}),(0,a.jsxs)("span",{children:["by ",r.created_by]}),!r.is_billable&&(0,a.jsx)("span",{className:"text-pir-warning",children:"non-billable"})]})]}),(0,a.jsxs)("div",{className:"shrink-0 text-right",children:[(0,a.jsx)("div",{className:"text-pir-text-primary font-mono",children:h(r.total_cost_usd)}),r.total_bill_usd!==r.total_cost_usd&&(0,a.jsxs)("div",{className:"text-pir-text-muted font-mono text-[10px]",children:["bill ",h(r.total_bill_usd)]})]})]})}function g(e){let{taskId:t,onSaved:r,onCancel:n}=e,[l,c]=(0,s.useState)(""),[o,d]=(0,s.useState)(""),[p,u]=(0,s.useState)(!0),[m,h]=(0,s.useState)(!1),[b,f]=(0,s.useState)(null);async function g(e){e.preventDefault();let a=parseFloat(l);if(!a||a<1)return void f("Minimum 1 minute");h(!0),f(null);try{let e=await (0,i.Vel)(t,{human_minutes:a,description:o.trim()||void 0,is_billable:p});r(e)}catch(e){f(e instanceof Error?e.message:"Failed to save")}finally{h(!1)}}return(0,a.jsxs)("form",{onSubmit:g,className:"border border-pir rounded p-3 bg-pir-surface-0 space-y-2.5 mt-2",children:[(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsx)("label",{className:"text-[10px] text-pir-text-muted uppercase tracking-wide block mb-1",children:"Minutes"}),(0,a.jsx)("input",{type:"number",min:"1",max:"1440",step:"1",value:l,onChange:e=>c(e.target.value),placeholder:"e.g. 30",className:"w-full bg-pir-surface-1 border border-pir rounded px-2 py-1 text-xs text-pir-text-primary focus:outline-none focus:border-pir-accent/60",required:!0})]}),(0,a.jsxs)("div",{className:"flex-[2]",children:[(0,a.jsx)("label",{className:"text-[10px] text-pir-text-muted uppercase tracking-wide block mb-1",children:"Description (optional)"}),(0,a.jsx)("input",{type:"text",maxLength:200,value:o,onChange:e=>d(e.target.value),placeholder:"e.g. Code review",className:"w-full bg-pir-surface-1 border border-pir rounded px-2 py-1 text-xs text-pir-text-primary focus:outline-none focus:border-pir-accent/60"})]})]}),(0,a.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer select-none",children:[(0,a.jsx)("input",{type:"checkbox",checked:p,onChange:e=>u(e.target.checked),className:"accent-pir-accent"}),(0,a.jsx)("span",{className:"text-xs text-pir-text-secondary",children:"Billable"})]}),b&&(0,a.jsx)(x.$,{message:b}),(0,a.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,a.jsx)("button",{type:"button",onClick:n,className:"px-3 py-1 text-xs text-pir-text-muted hover:text-pir-text-secondary rounded border border-pir hover:border-pir-text-muted/40 transition-colors",children:"Cancel"}),(0,a.jsx)("button",{type:"submit",disabled:m,className:"px-3 py-1 text-xs bg-pir-accent/90 hover:bg-pir-accent text-white rounded transition-colors disabled:opacity-50",children:m?"Saving...":"Save"})]})]})}function j(e){let{taskId:t}=e,[r,n]=(0,s.useState)(null),[l,c]=(0,s.useState)(!0),[o,d]=(0,s.useState)(null),[x,p]=(0,s.useState)(!1),[u,m]=(0,s.useState)(!1);if((0,s.useEffect)(()=>{let e=new AbortController;return c(!0),d(null),(0,i.VGD)(t).then(t=>{e.signal.aborted||n(t)}).catch(e=>{"AbortError"!==e.name&&d(e.message)}).finally(()=>{e.signal.aborted||c(!1)}),()=>e.abort()},[t]),l)return(0,a.jsx)("div",{className:"text-xs text-pir-text-muted animate-pulse",children:"Loading costs..."});if(o)return(0,a.jsx)("div",{className:"text-xs text-pir-error",children:"Cost data unavailable"});let b=r&&r.entry_count>0;return(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,a.jsx)("h3",{className:"text-xs font-medium text-pir-text-primary",children:"Cost"}),(0,a.jsx)("button",{type:"button",onClick:()=>m(e=>!e),className:"text-[10px] text-pir-text-muted hover:text-pir-accent transition-colors",children:"+ Log time"})]}),b?(0,a.jsxs)("div",{className:"border border-pir rounded p-3 bg-pir-surface-0 space-y-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-4 text-xs",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-pir-text-muted",children:"Total cost "}),(0,a.jsx)("span",{className:"font-mono text-pir-text-primary",children:h(r.total_cost_usd)})]}),r.total_bill_usd!==r.total_cost_usd&&(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-pir-text-muted",children:"Billable "}),(0,a.jsx)("span",{className:"font-mono text-pir-text-primary",children:h(r.billable_usd)})]}),(0,a.jsxs)("div",{className:"ml-auto flex gap-3 text-pir-text-muted",children:[r.agent_cost_usd>0&&(0,a.jsxs)("span",{children:["agent ",h(r.agent_cost_usd)]}),r.human_cost_usd>0&&(0,a.jsxs)("span",{children:["human ",h(r.human_cost_usd)]})]})]}),r.entry_count>0&&(0,a.jsxs)("button",{type:"button",onClick:()=>p(e=>!e),className:"text-[10px] text-pir-text-muted hover:text-pir-text-secondary transition-colors",children:[x?"Hide":"Show"," ",r.entry_count," ",1===r.entry_count?"entry":"entries"]}),x&&r.entries.length>0&&(0,a.jsx)("div",{className:"mt-1",children:r.entries.map(e=>(0,a.jsx)(f,{entry:e},e.id))})]}):(0,a.jsx)("div",{className:"text-xs text-pir-text-muted italic",children:"No cost entries yet."}),u&&(0,a.jsx)(g,{taskId:t,onSaved:function(e){n(e),m(!1),p(!0)},onCancel:()=>m(!1)})]})}var v=r(1955);function y(e){let t,r,s,{summary:n,onClick:i}=e,{total:l,passed:c,failed:o,pending:d,merge_blocked:x}=n;return 0===l?(0,a.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] px-2 py-0.5 rounded-full bg-gray-100 text-gray-600 dark:bg-gray-800 dark:text-gray-400",children:[(0,a.jsx)(C,{}),"No CI"]}):(c===l&&0===o&&0===d?(t="bg-emerald-50 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400",r="CI Passed",s=(0,a.jsx)(N,{})):o>0?(t="bg-red-50 text-red-700 dark:bg-red-900/30 dark:text-red-400",r="CI Failing",s=(0,a.jsx)(k,{})):d>0?(t="bg-amber-50 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400",r="Running",s=(0,a.jsx)(w,{})):(t="bg-gray-100 text-gray-600 dark:bg-gray-800 dark:text-gray-400",r="CI",s=null),(0,a.jsxs)("button",{type:"button",onClick:i,className:"inline-flex items-center gap-1 text-[10px] px-2 py-0.5 rounded-full transition-opacity hover:opacity-80 ".concat(t),children:[s,r,(0,a.jsxs)("span",{className:"opacity-60",children:[c,"/",l]}),x&&(0,a.jsx)("span",{className:"ml-0.5 text-red-600 dark:text-red-400 font-semibold",children:"blocked"})]}))}function N(){return(0,a.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",className:"shrink-0",children:(0,a.jsx)("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function k(){return(0,a.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",className:"shrink-0",children:(0,a.jsx)("path",{d:"M3 3L9 9M9 3L3 9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})}function C(){return(0,a.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",className:"shrink-0",children:[(0,a.jsx)("circle",{cx:"6",cy:"6",r:"4",stroke:"currentColor",strokeWidth:"1.2"}),(0,a.jsx)("path",{d:"M4 6H8",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]})}function w(){return(0,a.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",className:"shrink-0 animate-spin",children:[(0,a.jsx)("circle",{cx:"6",cy:"6",r:"4",stroke:"currentColor",strokeWidth:"1.2",opacity:"0.3"}),(0,a.jsx)("path",{d:"M6 2a4 4 0 012.83 1.17",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]})}function _(e){let{taskId:t,hasPr:r}=e,[n,l]=(0,s.useState)(!1),c=(0,s.useCallback)(e=>(0,i.ulo)(t,{signal:e}),[t]),o=(0,s.useCallback)(e=>(0,i.CXw)(t,{signal:e}),[t]),{data:d,loading:x,error:p,refresh:u}=(0,v.j)(c,{interval:15e3,enabled:r,backoff:!0,unchangedThreshold:3}),m=!!d&&d.pending>0,{data:h,loading:b}=(0,v.j)(o,{interval:15e3,enabled:r&&n&&m,backoff:!0});return r?x&&!d?(0,a.jsx)("div",{className:"animate-pulse h-6 bg-pir-surface-0 rounded w-24"}):p?(0,a.jsxs)("div",{className:"flex items-center gap-2 text-xs text-pir-text-muted",children:[(0,a.jsx)("span",{children:"Unable to load CI status"}),(0,a.jsx)("button",{onClick:u,className:"text-pir-accent hover:underline",children:"Retry"})]}):d?(0,a.jsxs)("div",{className:"space-y-2",children:[d.merge_blocked&&(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded px-2.5 py-1.5",children:[(0,a.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"shrink-0",children:[(0,a.jsx)("path",{d:"M6 1L11 10H1L6 1Z",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"}),(0,a.jsx)("path",{d:"M6 4.5V6.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"}),(0,a.jsx)("circle",{cx:"6",cy:"8",r:"0.5",fill:"currentColor"})]}),"Merge blocked — ",d.required_failing.length," required check",1!==d.required_failing.length?"s":""," failing"]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(y,{summary:d,onClick:()=>l(!n)}),d.total>0&&(0,a.jsx)("button",{onClick:()=>l(!n),className:"text-[10px] text-pir-text-muted hover:text-pir-text-secondary",children:n?"Hide checks":"".concat(d.total," check").concat(1!==d.total?"s":"")})]}),n&&(0,a.jsx)("div",{className:"border border-pir rounded overflow-hidden",children:b&&!h?(0,a.jsx)("div",{className:"p-2 space-y-1.5",children:[1,2,3].map(e=>(0,a.jsx)("div",{className:"animate-pulse h-5 bg-pir-surface-0 rounded"},e))}):h&&h.length>0?(0,a.jsx)("div",{className:"max-h-48 overflow-y-auto",children:h.map(e=>(0,a.jsx)(S,{check:e},e.id))}):(0,a.jsx)("div",{className:"p-2 text-xs text-pir-text-muted",children:"No checks found"})})]}):null:null}function S(e){var t;let{check:r}=e,s="in_progress"===(t=r).status||"queued"===t.status?(0,a.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"shrink-0 text-amber-500 animate-spin",children:[(0,a.jsx)("circle",{cx:"6",cy:"6",r:"4",stroke:"currentColor",strokeWidth:"1.2",opacity:"0.3"}),(0,a.jsx)("path",{d:"M6 2a4 4 0 012.83 1.17",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]}):"success"===t.conclusion?(0,a.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"shrink-0 text-emerald-500",children:(0,a.jsx)("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}):"failure"===t.conclusion?(0,a.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"shrink-0 text-red-500",children:(0,a.jsx)("path",{d:"M3 3L9 9M9 3L3 9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}):"skipped"===t.conclusion||"neutral"===t.conclusion?(0,a.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"shrink-0 text-gray-400",children:[(0,a.jsx)("circle",{cx:"6",cy:"6",r:"4",stroke:"currentColor",strokeWidth:"1.2"}),(0,a.jsx)("path",{d:"M4 6H8",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]}):(0,a.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"shrink-0 text-gray-400",children:(0,a.jsx)("circle",{cx:"6",cy:"6",r:"4",stroke:"currentColor",strokeWidth:"1.2"})}),n=r.started_at&&r.completed_at?function(e){let t=Math.floor(e/1e3);if(t<60)return"".concat(t,"s");let r=Math.floor(t/60);if(r<60)return"".concat(r,"m ").concat(t%60,"s");let a=Math.floor(r/60);return"".concat(a,"h ").concat(r%60,"m")}(new Date(r.completed_at).getTime()-new Date(r.started_at).getTime()):null,i=r.check_name;return(0,a.jsxs)("div",{className:"flex items-center gap-2 px-2.5 py-1.5 text-xs border-b border-pir last:border-b-0 hover:bg-pir-surface-1/50",children:[s,(0,a.jsx)("span",{className:"flex-1 min-w-0 truncate text-pir-text-secondary",children:i}),n&&(0,a.jsx)("span",{className:"text-[10px] text-pir-text-muted shrink-0",children:n}),r.details_url&&(0,a.jsx)("a",{href:r.details_url,target:"_blank",rel:"noopener noreferrer",className:"text-pir-accent hover:underline shrink-0",onClick:e=>e.stopPropagation(),children:"Details"})]})}var D=r(6830);let M=[{value:"agent",label:"Agent",color:"bg-emerald-500/20 text-emerald-700 dark:text-emerald-400 border-emerald-500/30"},{value:"hybrid",label:"Hybrid",color:"bg-blue-500/20 text-blue-700 dark:text-blue-400 border-blue-500/30"},{value:"human",label:"Human",color:"bg-amber-500/20 text-amber-700 dark:text-amber-400 border-amber-500/30"}];function E(e){let{label:t,value:r,onChange:s}=e;return(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,a.jsx)("span",{className:"text-caption text-pir-text-tertiary",children:t}),(0,a.jsx)("span",{className:"text-caption text-pir-text-muted tabular-nums w-4 text-right",children:null!=r?r:"-"})]}),(0,a.jsx)("div",{className:"flex gap-px",children:Array.from({length:10},(e,t)=>t+1).map(e=>{let t=null!=r&&e<=r,n=e===r;return(0,a.jsx)("button",{onClick:()=>s(e===r?null:e),className:"flex-1 h-5 text-[9px] rounded-sm transition-colors tabular-nums ".concat(n?"bg-pir-accent text-white":t?"bg-pir-accent/30 text-pir-accent":"bg-pir-surface-1 text-pir-text-muted hover:bg-pir-surface-2"),children:e},e)})})]})}let L=(0,s.memo)(function(e){let{impact:t,confidence:r,ease:s,delegation:n,iceScore:i,onChange:l}=e;return(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"text-label text-pir-text-secondary",children:"ICE-D Score"}),null!=i?(0,a.jsx)("span",{className:"text-heading text-pir-accent tabular-nums",children:i}):(0,a.jsx)("span",{className:"text-label text-pir-text-muted",children:"Unscored"})]}),(0,a.jsx)(E,{label:"Impact",value:t,onChange:e=>l({impact:e})}),(0,a.jsx)(E,{label:"Confidence",value:r,onChange:e=>l({confidence:e})}),(0,a.jsx)(E,{label:"Ease",value:s,onChange:e=>l({ease:e})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-caption text-pir-text-tertiary block mb-1",children:"Delegation"}),(0,a.jsx)("div",{className:"flex gap-1",children:M.map(e=>{let t=n===e.value;return(0,a.jsx)("button",{onClick:()=>l({delegation:t?null:e.value}),className:"flex-1 text-[10px] py-1 rounded border transition-colors ".concat(t?e.color:"bg-pir-surface-1 text-pir-text-muted border-transparent hover:bg-pir-surface-2"),children:e.label},e.value)})})]})]})});var A=r(5440),R=r(5704);let T=/^(C'è bisogno(?:\s+di)?|Devo)\s+(.+?)\s+perch[eé]\s+(.+?)(?:\.\s*Attenzione a:?\s+(.+?))?\.?\s*$/i,W=/^-(\/.+)$/;function B(e){let{path:t}=e,[r,n]=(0,s.useState)(!1);return(0,a.jsxs)("button",{type:"button",onClick:function(){navigator.clipboard.writeText(t).then(()=>{n(!0),setTimeout(()=>n(!1),1500)})},title:"Click to copy",className:"inline-flex items-center gap-1.5 bg-pir-surface-0 border border-pir rounded px-2 py-0.5 font-mono text-[11px] text-pir-text-muted hover:text-pir-text-secondary hover:border-pir-accent/40 transition-colors",children:[(0,a.jsxs)("svg",{className:"w-3 h-3 shrink-0",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[(0,a.jsx)("path",{d:"M2 2h4l2 2v6H2V2z"}),(0,a.jsx)("path",{d:"M5 4h5l-1-1"})]}),r?"copied!":t]})}function I(e){let{description:t}=e,r=function(e){var t;let r=e.split("\n"),a=[],s=[];for(let e of r){let t=e.trim().match(W);t?s.push(t[1]):e.trim()&&a.push(e.trim())}let n=a.join(" ").trim().match(T);return n?{prefix:n[1],action:n[2],problem:n[3],attention:null!=(t=n[4])?t:null,dirRefs:s}:null}(t);if(r){let{prefix:e,action:t,problem:s,attention:n,dirRefs:i}=r;return(0,a.jsxs)("div",{className:"space-y-2.5",children:[(0,a.jsxs)("p",{className:"text-xs text-pir-text-secondary leading-relaxed",children:[(0,a.jsxs)("span",{children:[e," "]}),(0,a.jsx)("span",{className:"text-pir-success font-semibold",children:t}),(0,a.jsx)("span",{children:" perch\xe9 "}),(0,a.jsx)("span",{className:"text-pir-error font-semibold",children:s}),n&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-pir-text-muted",children:". Attenzione a "}),(0,a.jsx)("span",{className:"text-pir-warning font-semibold",children:n})]}),(0,a.jsx)("span",{children:"."})]}),i.length>0&&(0,a.jsx)("div",{className:"flex flex-wrap gap-1.5",children:i.map(e=>(0,a.jsx)(B,{path:e},e))})]})}return(0,a.jsx)("p",{className:"text-xs text-pir-text-secondary whitespace-pre-wrap leading-relaxed",children:t})}let P={high:"text-pir-error",medium:"text-pir-warning",low:"text-pir-text-muted"},H={pending:"bg-pir-text-muted/20 text-pir-text-muted",approved:"bg-pir-accent/20 text-pir-accent",in_progress:"bg-pir-warning/20 text-pir-warning",completed:"bg-pir-success/20 text-pir-success",failed:"bg-pir-error/20 text-pir-error"},U={pending:["approved","rejected"],approved:["in_progress","rejected"],in_progress:["completed","failed"],failed:["approved"],completed:[],rejected:[]},q=["high","medium","low"];function F(e){var t,r,l,c;let{task:o,slug:d,onClose:x,onStatusChange:p,onTaskUpdated:u,onTaskDeleted:h}=e,{permissions:b}=(0,A.A)(),[f,g]=(0,s.useState)(null),[v,y]=(0,s.useState)(o),[N,k]=(0,s.useState)(null),[C,w]=(0,s.useState)(!1),[S,M]=(0,s.useState)(o.title),[E,T]=(0,s.useState)(null!=(t=o.description)?t:""),[W,B]=(0,s.useState)(o.priority),[F,z]=(0,s.useState)(o.tags.join(", ")),[O,$]=(0,s.useState)(null!=(r=o.owner_id)?r:null),[G,J]=(0,s.useState)([]),[V,K]=(0,s.useState)(!1),[X,Z]=(0,s.useState)(!1),[Y,Q]=(0,s.useState)(!1),[ee,et]=(0,s.useState)(!1),[er,ea]=(0,s.useState)(o.impact),[es,en]=(0,s.useState)(o.confidence),[ei,el]=(0,s.useState)(o.ease),[ec,eo]=(0,s.useState)(o.delegation),ed=(0,s.useRef)(!1);(0,s.useEffect)(()=>{let e=new AbortController;return(0,i.ggW)(o.id,{signal:e.signal}).then(e=>{var t;y(e),T(null!=(t=e.description)?t:"")}).catch(()=>{}),()=>e.abort()},[o.id]);let ex=null!=er&&null!=es&&null!=ei?er*es*ei:null,ep=(0,s.useCallback)(e=>{var t,r,a,s;"impact"in e&&ea(null!=(t=e.impact)?t:null),"confidence"in e&&en(null!=(r=e.confidence)?r:null),"ease"in e&&el(null!=(a=e.ease)?a:null),"delegation"in e&&eo(null!=(s=e.delegation)?s:null),ed.current=!0},[]),eu=(0,s.useCallback)(async()=>{if(ed.current)try{let e=await (0,i.lCH)(v.id,{impact:er,confidence:es,ease:ei,delegation:ec});null==u||u(e)}catch(e){}x()},[v.id,er,es,ei,ec,x,u]);async function em(){K(!0);try{let e=F.split(",").map(e=>e.trim()).filter(Boolean),t=await fetch("".concat(D.JR,"/api/v1/tasks/").concat(v.id),{method:"PATCH",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:S,description:E,priority:W,tags:e,owner_id:O})});if(t.ok){let e=await t.json();y(e),w(!1),null==u||u(e)}}finally{K(!1)}}async function eh(e){et(!0);try{(await fetch("".concat(D.JR,"/api/v1/tasks/").concat(v.id),{method:"PATCH",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:e})})).ok&&(y(t=>({...t,status:e})),null==p||p(v.id,e))}finally{et(!1)}}async function eb(){Q(!0);try{(await fetch("".concat(D.JR,"/api/v1/tasks/").concat(v.id),{method:"DELETE",credentials:"include"})).ok&&(null==h||h(v.id),x())}finally{Q(!1)}}(0,s.useEffect)(()=>{(0,i.jpm)().then(e=>g(e.username)).catch(()=>{})},[]),(0,s.useEffect)(()=>{v.project&&(0,i.DR0)(v.project).then(e=>{var t;k(null!=(t=e.find(e=>"responsible"===e.role))?t:null)}).catch(()=>{})},[v.project]);let ef=null!=(l=H[v.status])?l:"bg-pir-surface-0 text-pir-text-muted";return(0,a.jsx)("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50 p-4",onClick:e=>e.target===e.currentTarget&&eu(),children:(0,a.jsxs)("div",{className:"bg-pir-surface-1 border border-pir rounded w-full max-w-lg max-h-[85vh] flex flex-col",children:[(0,a.jsxs)("div",{className:"flex items-start justify-between px-5 py-4 border-b border-pir shrink-0",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[C?(0,a.jsx)("input",{className:"w-full bg-pir-surface-0 border border-pir rounded px-2 py-1 text-sm font-semibold text-pir-text-primary focus:outline-none",value:S,onChange:e=>M(e.target.value),"aria-label":"Task title"}):(0,a.jsx)("h2",{className:"text-sm font-semibold text-pir-text-primary",children:v.title}),(0,a.jsxs)("div",{className:"flex items-center gap-2 mt-1.5 flex-wrap",children:[N&&(0,a.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] px-2 py-0.5 rounded-full bg-blue-400/15 text-blue-400 border border-blue-400/30",children:[(0,a.jsx)("span",{className:"w-3.5 h-3.5 rounded-full flex-shrink-0 flex items-center justify-center text-[7px] font-bold text-white",style:{backgroundColor:N.user.avatar_color},children:N.user.display_name.charAt(0).toUpperCase()}),N.user.display_name]}),(()=>{let e=U[v.status]||[],t=[v.status,...e];return(0,a.jsx)("select",{className:"text-[10px] px-2 py-0.5 rounded-full border-0 cursor-pointer ".concat(ef," bg-transparent"),value:v.status,disabled:ee||0===e.length||!b.canWrite,onChange:e=>eh(e.target.value),"aria-label":"Task status",children:t.map(e=>(0,a.jsx)("option",{value:e,children:e},e))})})(),"pending"===v.status&&!C&&b.canWrite&&(0,a.jsx)("button",{onClick:()=>eh("approved"),disabled:ee,className:"text-[10px] px-2 py-0.5 rounded-full bg-pir-accent/20 text-pir-accent hover:bg-pir-accent/30 disabled:opacity-50 transition-colors","aria-label":"Approve task",children:ee?"...":"Approve"}),C?(0,a.jsx)("select",{className:"text-[10px] font-medium bg-pir-surface-0 border border-pir rounded px-1 py-0.5 text-pir-text-primary focus:outline-none",value:W,onChange:e=>B(e.target.value),"aria-label":"Task priority",children:q.map(e=>(0,a.jsx)("option",{value:e,children:e},e))}):(0,a.jsx)("span",{className:"text-[10px] font-medium ".concat(null!=(c=P[v.priority])?c:"text-pir-text-muted"),children:v.priority})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2 ml-3 shrink-0",children:[!C&&b.canWrite&&(0,a.jsx)("button",{onClick:function(){var e,t;M(v.title),T(null!=(e=v.description)?e:""),B(v.priority),z(v.tags.join(", ")),$(null!=(t=v.owner_id)?t:null),w(!0),(0,i.ZZm)().then(J).catch(()=>{})},className:"text-xs text-pir-text-muted hover:text-pir-text-secondary px-2 py-1 border border-pir rounded","aria-label":"Edit task",children:"Edit"}),C&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{onClick:em,disabled:V,className:"text-xs text-pir-text-primary px-2 py-1 border border-pir rounded hover:bg-pir-surface-2 disabled:opacity-50","aria-label":"Save task",children:V?"Saving...":"Save"}),(0,a.jsx)("button",{onClick:function(){w(!1)},className:"text-xs text-pir-text-muted px-2 py-1 border border-pir rounded hover:bg-pir-surface-2","aria-label":"Cancel edit",children:"Cancel"})]}),"true"===R.env.NEXT_PUBLIC_ENABLE_GRAPH_UX&&(0,a.jsx)("a",{href:"/graph/?id=task:artifact:".concat(v.id,"&view=list&tab=context"),title:"View in Knowledge Graph",className:"text-caption text-pir-text-muted hover:text-pir-kg-node-task transition-colors px-1.5 py-0.5 border border-pir rounded",children:"KG"}),(0,a.jsx)("button",{onClick:eu,className:"text-pir-text-muted hover:text-pir-text-secondary text-lg leading-none","aria-label":"Close",children:"\xd7"})]})]}),(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto px-5 py-4 space-y-4",children:[C?(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-label text-pir-text-tertiary block mb-1",children:"Description"}),(0,a.jsx)("textarea",{className:"w-full bg-pir-surface-0 border border-pir rounded px-2 py-1 text-sm text-pir-text-primary focus:outline-none resize-none",rows:5,value:E,onChange:e=>T(e.target.value),"aria-label":"Task description"})]}):v.description&&(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-label text-pir-text-tertiary block mb-1.5",children:"Description"}),(0,a.jsx)(I,{description:v.description})]}),(0,a.jsxs)("div",{className:"flex items-center gap-4 text-xs text-pir-text-muted",children:[v.owner&&(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("span",{className:"text-pir-text-tertiary mr-1",children:"Owner:"}),(0,a.jsx)("div",{className:"w-4 h-4 rounded-full flex-shrink-0",style:{backgroundColor:v.owner.avatar_color}}),(0,a.jsx)("span",{className:"text-pir-text-secondary",children:v.owner.display_name})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-pir-text-tertiary mr-1",children:"Created by:"}),(0,a.jsx)("span",{className:"text-pir-text-secondary",children:v.created_by})]})]}),C?(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-label text-pir-text-tertiary block mb-1",children:"Owner"}),(0,a.jsxs)("select",{className:"w-full bg-pir-surface-0 border border-pir rounded px-2 py-1 text-sm text-pir-text-primary focus:outline-none",value:null!=O?O:"",onChange:e=>$(e.target.value||null),"aria-label":"Task owner",children:[(0,a.jsx)("option",{value:"",children:"— nessuno —"}),G.map(e=>(0,a.jsxs)("option",{value:e.id,children:[e.display_name," (",e.type,")"]},e.id))]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-label text-pir-text-tertiary block mb-1",children:"Tags (comma-separated)"}),(0,a.jsx)("input",{className:"w-full bg-pir-surface-0 border border-pir rounded px-2 py-1 text-sm text-pir-text-primary focus:outline-none",value:F,onChange:e=>z(e.target.value),"aria-label":"Task tags",placeholder:"tag1, tag2, tag3"})]})]}):v.tags.length>0&&(0,a.jsx)("div",{className:"flex flex-wrap gap-1",children:v.tags.map(e=>(0,a.jsx)("span",{className:"text-[10px] bg-pir-surface-0 border border-pir px-2 py-0.5 rounded text-pir-text-muted",children:e},e))}),(0,a.jsx)("div",{className:"border border-pir rounded p-3 bg-pir-surface-0",children:(0,a.jsx)(L,{impact:er,confidence:es,ease:ei,delegation:ec,iceScore:ex,onChange:ep})}),(0,a.jsx)(m,{taskId:v.id,onTaskCompleted:()=>{y(e=>({...e,status:"completed"})),null==p||p(v.id,"completed")}}),(0,a.jsx)(_,{taskId:v.id,hasPr:!!v.pr_status}),(0,a.jsx)(j,{taskId:v.id}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-xs font-medium text-pir-text-primary mb-2",children:"Comments"}),f?(0,a.jsx)(n.A,{targetType:"task",targetId:v.id,currentUser:f}):(0,a.jsx)("div",{className:"text-xs text-pir-text-muted",children:"Loading..."})]})]}),b.canWrite&&(0,a.jsx)("div",{className:"border-t border-pir px-5 py-3 shrink-0",children:X?(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("span",{className:"text-caption text-pir-text-secondary flex-1",children:"Delete this task?"}),(0,a.jsx)("button",{onClick:eb,disabled:Y,className:"text-xs px-3 py-1 rounded border border-pir-error text-pir-error hover:bg-pir-error/10 disabled:opacity-50","aria-label":"Confirm delete",children:Y?"Deleting...":"Confirm"}),(0,a.jsx)("button",{onClick:()=>Z(!1),className:"text-xs px-3 py-1 rounded border border-pir text-pir-text-muted hover:bg-pir-surface-2","aria-label":"Cancel delete",children:"Cancel"})]}):(0,a.jsx)("button",{onClick:()=>Z(!0),className:"text-xs text-pir-text-muted hover:text-pir-error","aria-label":"Delete task",children:"Delete task"})})]})})}},5440:(e,t,r)=>{r.d(t,{O:()=>o,A:()=>d});var a=r(5155),s=r(2115),n=r(960);let i={viewer:0,operator:1,admin:2,super_admin:3};function l(e){let t=null!==e?i[e]:-1;return{canWrite:t>=i.operator,canAdmin:t>=i.admin}}let c=(0,s.createContext)({status:"loading",username:null,role:null,userId:null,displayName:null,permissions:l(null),login:async()=>{},logout:async()=>{}});function o(e){let{children:t}=e,[r,i]=(0,s.useState)("loading"),[o,d]=(0,s.useState)(null),[x,p]=(0,s.useState)(null),[u,m]=(0,s.useState)(null),[h,b]=(0,s.useState)(null),[f,g]=(0,s.useState)(l(null));(0,s.useEffect)(()=>{(0,n.jpm)().then(e=>{var t,r,a;d(e.username);let s=null!=(t=e.system_role)?t:null;p(s),m(null!=(r=e.user_id)?r:null),b(null!=(a=e.display_name)?a:null),g(l(s)),i("authenticated")}).catch(()=>{i("unauthenticated")})},[]);let j=(0,s.useCallback)(async(e,t)=>{var r,a,s;await (0,n.iDC)(e,t);let c=await (0,n.jpm)();d(c.username);let o=null!=(r=c.system_role)?r:null;p(o),m(null!=(a=c.user_id)?a:null),b(null!=(s=c.display_name)?s:null),g(l(o)),i("authenticated")},[]),v=(0,s.useCallback)(async()=>{await (0,n.rig)(),d(null),p(null),m(null),b(null),g(l(null)),i("unauthenticated")},[]);return(0,a.jsx)(c.Provider,{value:{status:r,username:o,role:x,userId:u,displayName:h,permissions:f,login:j,logout:v},children:t})}function d(){return(0,s.useContext)(c)}},8737:(e,t,r)=>{r.d(t,{B:()=>i});var a=r(5155),s=r(5440);let n={viewer:0,operator:1,admin:2,super_admin:3};function i(e){var t;let{minRole:r,children:i,fallback:l=null}=e,{role:c,status:o}=(0,s.A)();return"loading"===o||(null!==c&&null!=(t=n[c])?t:-1)<n[r]?(0,a.jsx)(a.Fragment,{children:l}):(0,a.jsx)(a.Fragment,{children:i})}},8885:(e,t,r)=>{r.d(t,{A:()=>x});var a=r(5155),s=r(2115),n=r(1450),i=r(960);let l={info:"text-pir-text-muted",question:"text-pir-warning",blocker:"text-pir-error",resolved:"text-pir-success"},c={"+1":"\uD83D\uDC4D","-1":"\uD83D\uDC4E",eyes:"\uD83D\uDC40",check:"✅"};function o(e){let{reactions:t,currentUser:r,onToggle:s}=e,n={};for(let e of t)n[e.reaction]||(n[e.reaction]={count:0,byMe:!1}),n[e.reaction].count++,e.created_by===r&&(n[e.reaction].byMe=!0);return(0,a.jsx)("div",{className:"flex items-center gap-1 mt-1",children:Object.keys(c).map(e=>{let t=n[e];return(0,a.jsxs)("button",{onClick:()=>s(e),className:"text-caption px-1.5 py-0.5 rounded border transition-colors ".concat((null==t?void 0:t.byMe)?"border-pir-accent bg-pir-accent/10 text-pir-accent":"border-pir text-pir-text-muted hover:border-pir-accent/50"),children:[c[e],t&&t.count>0?" ".concat(t.count):""]},e)})})}function d(e){var t;let{comment:r,currentUser:i,onReply:c,onUpdate:x,onDelete:p,onReaction:u,depth:m}=e,[h,b]=(0,s.useState)(!1),[f,g]=(0,s.useState)(r.body),[j,v]=(0,s.useState)(r.status),y=r.created_by===i,N="[deleted]"===r.body;return(0,a.jsxs)("div",{className:"".concat(m>0?"ml-6 border-l border-pir pl-3":""),children:[(0,a.jsxs)("div",{className:"bg-pir-surface-1 border border-pir rounded p-3 mb-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,a.jsx)("span",{className:"text-caption font-medium text-pir-text-secondary",children:r.created_by}),(0,a.jsx)("span",{className:"text-caption ".concat(l[r.status]),children:r.status}),(0,a.jsx)("span",{className:"text-caption text-pir-text-muted ml-auto",children:new Date(r.created_at).toLocaleDateString()}),r.edited_at&&(0,a.jsx)("span",{className:"text-caption text-pir-text-muted",children:"(edited)"})]}),h?(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("textarea",{value:f,onChange:e=>g(e.target.value),className:"w-full bg-pir-surface-0 border border-pir rounded px-2 py-1 text-caption text-pir-text-primary min-h-[60px] resize-y"}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("select",{value:j,onChange:e=>v(e.target.value),className:"text-caption bg-pir-surface-0 border border-pir rounded px-1 py-0.5 text-pir-text-primary",children:[(0,a.jsx)("option",{value:"info",children:"info"}),(0,a.jsx)("option",{value:"question",children:"question"}),(0,a.jsx)("option",{value:"blocker",children:"blocker"}),(0,a.jsx)("option",{value:"resolved",children:"resolved"})]}),(0,a.jsx)("button",{onClick:function(){x(r.id,f,j),b(!1)},className:"text-caption px-2 py-0.5 bg-pir-accent text-white rounded",children:"Save"}),(0,a.jsx)("button",{onClick:()=>b(!1),className:"text-caption px-2 py-0.5 text-pir-text-muted",children:"Cancel"})]})]}):(0,a.jsx)("div",{className:"text-caption text-pir-text-secondary",children:N?(0,a.jsx)("span",{className:"italic text-pir-text-muted",children:"[deleted]"}):(0,a.jsx)(n.A,{content:r.body})}),!N&&!h&&(0,a.jsxs)("div",{className:"flex items-center gap-3 mt-2",children:[(0,a.jsx)(o,{reactions:r.reactions,currentUser:i,onToggle:function(e){let t=r.reactions.find(t=>t.reaction===e&&t.created_by===i);u(r.id,e,!t)}}),(0,a.jsxs)("div",{className:"flex items-center gap-2 ml-auto",children:[0===m&&(0,a.jsx)("button",{onClick:()=>c(r.id),className:"text-caption text-pir-text-muted hover:text-pir-accent",children:"Reply"}),y&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{onClick:()=>{g(r.body),v(r.status),b(!0)},className:"text-caption text-pir-text-muted hover:text-pir-accent",children:"Edit"}),(0,a.jsx)("button",{onClick:()=>p(r.id),className:"text-caption text-pir-text-muted hover:text-pir-error",children:"Delete"})]})]})]})]}),null==(t=r.replies)?void 0:t.map(e=>(0,a.jsx)(d,{comment:e,currentUser:i,onReply:c,onUpdate:x,onDelete:p,onReaction:u,depth:m+1},e.id))]})}function x(e){let{targetType:t,targetId:r,currentUser:n}=e,[l,c]=(0,s.useState)([]),[o,x]=(0,s.useState)(!0),[p,u]=(0,s.useState)(""),[m,h]=(0,s.useState)("info"),[b,f]=(0,s.useState)(null),[g,j]=(0,s.useState)(!1),v=(0,s.useCallback)(()=>{let e=new AbortController;return(0,i.vrD)(t,r,{signal:e.signal}).then(c).catch(()=>{}).finally(()=>{e.signal.aborted||x(!1)}),e},[t,r]);async function y(e){if(e.preventDefault(),p.trim()&&!g){j(!0);try{let e={target_type:t,target_id:r,body:p.trim(),status:m,parent_id:b};await (0,i.eT_)(e),u(""),f(null),h("info"),v()}catch(e){}finally{j(!1)}}}async function N(e,t,r){try{await (0,i.vvS)(e,{body:t,status:r}),v()}catch(e){}}async function k(e){try{await (0,i.Tu0)(e),v()}catch(e){}}async function C(e,t,r){try{r?await (0,i.BBT)(e,t):await (0,i.etj)(e,t),v()}catch(e){}}return((0,s.useEffect)(()=>{let e=v();return()=>e.abort()},[v]),o)?(0,a.jsx)("div",{className:"text-pir-text-muted text-caption p-2",children:"Loading comments..."}):(0,a.jsxs)("div",{className:"space-y-3",children:[0===l.length&&(0,a.jsx)("div",{className:"text-pir-text-muted text-caption",children:"No comments yet."}),l.map(e=>(0,a.jsx)(d,{comment:e,currentUser:n,onReply:e=>f(e),onUpdate:N,onDelete:k,onReaction:C,depth:0},e.id)),(0,a.jsxs)("form",{onSubmit:y,className:"bg-pir-surface-0 border border-pir rounded p-3",children:[b&&(0,a.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,a.jsxs)("span",{className:"text-caption text-pir-text-muted",children:["Replying to #",b]}),(0,a.jsx)("button",{type:"button",onClick:()=>f(null),className:"text-caption text-pir-error",children:"Cancel"})]}),(0,a.jsx)("textarea",{value:p,onChange:e=>u(e.target.value),placeholder:"Write a comment... (markdown supported)",className:"w-full bg-pir-surface-1 border border-pir rounded px-3 py-2 text-caption text-pir-text-primary placeholder:text-pir-text-muted min-h-[60px] resize-y"}),(0,a.jsxs)("div",{className:"flex items-center gap-2 mt-2",children:[(0,a.jsxs)("select",{value:m,onChange:e=>h(e.target.value),className:"text-caption bg-pir-surface-1 border border-pir rounded px-2 py-1 text-pir-text-primary",children:[(0,a.jsx)("option",{value:"info",children:"info"}),(0,a.jsx)("option",{value:"question",children:"question"}),(0,a.jsx)("option",{value:"blocker",children:"blocker"}),(0,a.jsx)("option",{value:"resolved",children:"resolved"})]}),(0,a.jsx)("button",{type:"submit",disabled:g||!p.trim(),className:"ml-auto px-3 py-1 text-caption bg-pir-accent text-white rounded hover:bg-pir-accent/80 disabled:opacity-50",children:g?"Posting...":b?"Reply":"Comment"})]})]})]})}}}]);
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2582],{1955:(e,t,r)=>{r.d(t,{j:()=>s});var a=r(2115);function s(e,t){let{interval:r,enabled:s=!0,backoff:n=!1,unchangedThreshold:i=3,maxInterval:l=4*r}=t,[c,o]=(0,a.useState)(null),[d,x]=(0,a.useState)(!0),[p,u]=(0,a.useState)(null),m=(0,a.useRef)(null),h=(0,a.useRef)(null),b=(0,a.useRef)(""),f=(0,a.useRef)(0),g=(0,a.useRef)(r),j=(0,a.useCallback)(async()=>{var t;null==(t=m.current)||t.abort();let a=new AbortController;m.current=a;try{let t=await e(a.signal),s=JSON.stringify(t);n&&s===b.current?f.current++:(f.current=0,g.current=r),b.current=s,o(t),u(null)}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)return;u(e instanceof Error?e:Error("Fetch failed"))}finally{x(!1)}},[e,n,r]),v=(0,a.useCallback)(()=>{j(),h.current&&clearInterval(h.current);let e=g.current;n&&f.current>=i&&(g.current=e=Math.min(2*e,l)),h.current=setInterval(j,e)},[j,n,i,l]),y=(0,a.useCallback)(()=>{h.current&&(clearInterval(h.current),h.current=null)},[]);return(0,a.useEffect)(()=>{if(!s)return void y();let e=()=>{"visible"===document.visibilityState?v():y()};return v(),document.addEventListener("visibilitychange",e),()=>{var t;null==(t=m.current)||t.abort(),y(),document.removeEventListener("visibilitychange",e)}},[s,v,y]),{data:c,loading:d,error:p,refresh:(0,a.useCallback)(()=>{f.current=0,g.current=r,j()},[j,r])}}},2582:(e,t,r)=>{r.d(t,{A:()=>F});var a=r(5155),s=r(2115),n=r(8885),i=r(960),l=r(8737),c=r(1803),o=r(2931);function d(e){let{unifiedDiff:t}=e,r=(0,s.useMemo)(()=>{if(!t)return"";let e=(0,c.qy)(t,{drawFileList:!0,matching:"lines",outputFormat:"line-by-line"});return o.A.sanitize(e)},[t]);return r?(0,a.jsx)("div",{className:"diff-viewer text-xs overflow-x-auto [&_.d2h-wrapper]:bg-transparent [&_.d2h-file-header]:bg-pir-surface-0 [&_.d2h-file-header]:border-pir [&_.d2h-code-linenumber]:bg-pir-surface-0 [&_.d2h-code-line]:bg-transparent [&_.d2h-info]:bg-pir-surface-0 [&_.d2h-file-list-wrapper]:bg-pir-surface-0 [&_.d2h-file-list-wrapper]:border-pir [&_td]:text-pir-text-secondary [&_.d2h-del]:bg-pir-error/10 [&_.d2h-ins]:bg-pir-success/10 [&_.d2h-del_.d2h-code-line-ctn]:text-pir-error [&_.d2h-ins_.d2h-code-line-ctn]:text-pir-success",dangerouslySetInnerHTML:{__html:r}}):(0,a.jsx)("div",{className:"text-caption text-pir-text-muted py-2",children:"No diff available"})}r(8356);var x=r(1601),p=r(5704);let u={draft:{label:"Branch",cls:"bg-pir-text-muted/20 text-pir-text-muted"},open:{label:"In Review",cls:"bg-pir-warning/20 text-pir-warning"},merging:{label:"Merging...",cls:"bg-pir-accent/20 text-pir-accent"},merged:{label:"Merged",cls:"bg-pir-success/20 text-pir-success"},closed:{label:"Closed",cls:"bg-pir-error/20 text-pir-error"}};function m(e){var t;let{taskId:r,onTaskCompleted:n,currentUser:c}=e,[o,m]=(0,s.useState)(null),[h,b]=(0,s.useState)(!0),[f,g]=(0,s.useState)(null),[j,v]=(0,s.useState)(0),[y,N]=(0,s.useState)(!1),[k,C]=(0,s.useState)(null),[w,_]=(0,s.useState)(null),[S,M]=(0,s.useState)(!1),[D,E]=(0,s.useState)(""),[L,A]=(0,s.useState)(!1),[R,T]=(0,s.useState)(!1),[W,B]=(0,s.useState)(!1),[I,P]=(0,s.useState)(""),[H,U]=(0,s.useState)(!1),[q,F]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let e=new AbortController;return b(!0),g(null),(0,i.T9n)(r,{signal:e.signal}).then(e=>m(e)).catch(e=>{if("AbortError"!==e.name){var t,r;(null==(t=e.message)?void 0:t.includes("404"))?m(null):g(null!=(r=e.message)?r:"Unknown error")}}).finally(()=>{e.signal.aborted||b(!1)}),()=>e.abort()},[r,j]);let z=(0,s.useCallback)(async()=>{if(o){N(!0),C(null),_(null);try{await (0,i.dK_)(r),m(e=>e?{...e,status:"merged"}:e),null==n||n()}catch(t){let e=t instanceof Error?t.message:"Merge failed";try{let t=JSON.parse(e);if(t.conflicting_files){_(t.conflicting_files),C("Merge conflict");return}}catch(e){}C(e)}finally{N(!1)}}},[o,r,n]),O=(0,s.useCallback)(async()=>{A(!0);try{await (0,i.d66)(r,D),m(e=>e?{...e,status:"closed",closed_reason:D||null}:e),M(!1),E("")}catch(e){C(e instanceof Error?e.message:"Close failed")}finally{A(!1)}},[r,D]),$=(0,s.useCallback)(async()=>{if(o){T(!0),C(null);try{let e=await (0,i.WYS)(r);m(e)}catch(e){C(e instanceof Error?e.message:"Approve failed")}finally{T(!1)}}},[o,r]),G=(0,s.useCallback)(async()=>{U(!0);try{await (0,i.fdU)(r,I),m(e=>e?{...e,approved_by:null,approved_at:null}:e),B(!1),P("")}catch(e){C(e instanceof Error?e.message:"Request changes failed")}finally{U(!1)}},[r,I]);if(h)return(0,a.jsx)("div",{className:"text-caption text-pir-text-muted py-2",children:"Loading PR..."});if(!o&&!f)return null;if(f)return"Failed to fetch"===f?(0,a.jsxs)("div",{className:"text-caption text-pir-text-muted py-2 flex items-center gap-2",children:[(0,a.jsx)("span",{children:"PR data unavailable"}),(0,a.jsx)("button",{onClick:()=>v(e=>e+1),className:"text-pir-accent hover:text-pir-accent/80 transition-colors underline-offset-2 hover:underline",children:"Retry"})]}):(0,a.jsx)(x.$,{message:"PR error: ".concat(f),className:"py-2"});if(!o)return null;let J=u[o.status],K="open"===o.status,V="draft"===o.status||"open"===o.status,X="merged"===o.status||"closed"===o.status,Z=((null==c?void 0:c.system_role)==="admin"||(null==c?void 0:c.system_role)==="super_admin")&&o.submitted_by!==(null==c?void 0:c.user_id)&&"open"===o.status;return(0,a.jsxs)("div",{className:"border border-pir rounded bg-pir-surface-0",children:[(0,a.jsxs)("div",{className:"px-3 py-2 flex items-center gap-2 border-b border-pir",children:[(0,a.jsx)("span",{className:"text-caption font-mono text-pir-text-muted truncate flex-1",children:o.branch}),(0,a.jsx)("span",{className:"text-[10px] px-2 py-0.5 rounded-full ".concat(J.cls),children:J.label}),"true"===p.env.NEXT_PUBLIC_ENABLE_GRAPH_UX&&(0,a.jsx)("a",{href:"/graph/?id=pr:artifact:".concat(r,"&tab=context"),title:"View PR in Knowledge Graph",className:"text-[10px] text-pir-text-muted hover:text-pir-text-secondary transition-colors",children:"KG →"})]}),(0,a.jsxs)("div",{className:"px-3 py-2 space-y-1",children:[o.title&&(0,a.jsx)("div",{className:"text-xs text-pir-text-primary font-medium",children:o.title}),o.diff&&(0,a.jsxs)("div",{className:"flex items-center gap-3 text-caption text-pir-text-muted",children:[(0,a.jsxs)("span",{children:[o.diff.stats.files_changed," file",1!==o.diff.stats.files_changed?"s":""]}),(0,a.jsxs)("span",{className:"text-pir-success",children:["+",o.diff.stats.additions]}),(0,a.jsxs)("span",{className:"text-pir-error",children:["-",o.diff.stats.deletions]}),o.diff.unified_diff&&(0,a.jsx)("button",{onClick:()=>F(e=>!e),className:"text-pir-accent hover:text-pir-accent/80 transition-colors ml-auto",children:q?"Hide diff":"Show diff"})]})]}),q&&(null==(t=o.diff)?void 0:t.unified_diff)&&(0,a.jsx)("div",{className:"border-t border-pir px-3 py-2 max-h-[400px] overflow-y-auto",children:(0,a.jsx)(d,{unifiedDiff:o.diff.unified_diff})}),"closed"===o.status&&o.closed_reason&&(0,a.jsx)("div",{className:"border-t border-pir px-3 py-2",children:(0,a.jsxs)("div",{className:"text-caption text-pir-text-muted",children:[(0,a.jsx)("span",{className:"font-medium",children:"Closed:"})," ",o.closed_reason]})}),o.approved_by&&"open"===o.status&&(0,a.jsx)("div",{className:"border-t border-pir px-3 py-2",children:(0,a.jsxs)("div",{className:"text-caption text-pir-success",children:["Approvata da ",o.approved_by]})}),k&&(0,a.jsxs)("div",{className:"border-t border-pir px-3 py-2",children:[(0,a.jsx)(x.$,{message:k}),w&&(0,a.jsx)("ul",{className:"mt-1 text-caption text-pir-text-muted list-disc pl-4",children:w.map(e=>(0,a.jsx)("li",{className:"font-mono",children:e},e))})]}),!X&&(0,a.jsx)("div",{className:"border-t border-pir px-3 py-2 flex items-center gap-2 flex-wrap",children:(0,a.jsxs)(l.B,{minRole:"operator",children:[V&&(0,a.jsx)("button",{onClick:()=>M(!0),className:"text-[10px] px-2.5 py-1 rounded border border-pir text-pir-text-muted hover:text-pir-error hover:border-pir-error/40 transition-colors",children:"Close PR"}),Z&&!o.approved_by&&(0,a.jsx)("button",{onClick:$,disabled:R,className:"text-[10px] px-2.5 py-1 rounded bg-pir-accent text-white hover:bg-pir-accent/80 disabled:opacity-50 transition-colors",children:R?"Approvando...":"✅ Approva"}),Z&&(0,a.jsx)("button",{onClick:()=>B(!0),className:"text-[10px] px-2.5 py-1 rounded border border-pir-warning text-pir-warning hover:bg-pir-warning/10 transition-colors",children:"✏️ Request Changes"}),K&&(0,a.jsx)("button",{onClick:z,disabled:y,className:"text-[10px] px-2.5 py-1 rounded bg-pir-success text-white hover:bg-pir-success/80 disabled:opacity-50 transition-colors ml-auto",children:y?"Merging...":"Merge"})]})}),S&&(0,a.jsxs)("div",{className:"border-t border-pir px-3 py-2 space-y-2",children:[(0,a.jsx)("textarea",{value:D,onChange:e=>E(e.target.value),placeholder:"Reason for closing (feedback for the agent)",rows:2,className:"w-full bg-pir-surface-1 border border-pir rounded px-2 py-1.5 text-xs text-pir-text-primary placeholder:text-pir-text-muted focus:outline-none focus:border-pir-accent resize-none"}),(0,a.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,a.jsx)("button",{onClick:()=>{M(!1),E("")},className:"text-[10px] px-2.5 py-1 rounded border border-pir text-pir-text-muted hover:bg-pir-surface-1 transition-colors",children:"Cancel"}),(0,a.jsx)("button",{onClick:O,disabled:L,className:"text-[10px] px-2.5 py-1 rounded bg-pir-error text-white hover:bg-pir-error/80 disabled:opacity-50 transition-colors",children:L?"Closing...":"Close PR"})]})]}),W&&(0,a.jsxs)("div",{className:"border-t border-pir px-3 py-2 space-y-2",children:[(0,a.jsx)("textarea",{value:I,onChange:e=>P(e.target.value),placeholder:"Commento per l'agente (obbligatorio)",rows:2,className:"w-full bg-pir-surface-1 border border-pir rounded px-2 py-1.5 text-xs text-pir-text-primary placeholder:text-pir-text-muted focus:outline-none focus:border-pir-accent resize-none"}),(0,a.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,a.jsx)("button",{onClick:()=>{B(!1),P("")},className:"text-[10px] px-2.5 py-1 rounded border border-pir text-pir-text-muted hover:bg-pir-surface-1 transition-colors",children:"Cancel"}),(0,a.jsx)("button",{onClick:G,disabled:H||!I.trim(),className:"text-[10px] px-2.5 py-1 rounded bg-pir-warning text-white hover:bg-pir-warning/80 disabled:opacity-50 transition-colors",children:H?"Inviando...":"Request Changes"})]})]})]})}function h(e){return 0===e?"$0.00":e<.01?"$".concat(e.toFixed(4)):"$".concat(e.toFixed(2))}function b(e){if(e<60)return"".concat(e,"m");let t=Math.floor(e/60),r=Math.round(e%60);return r>0?"".concat(t,"h ").concat(r,"m"):"".concat(t,"h")}function f(e){var t;let{entry:r}=e,s="agent"===r.entry_type;return(0,a.jsxs)("div",{className:"flex items-start gap-2 py-1.5 text-xs border-b border-pir last:border-0",children:[(0,a.jsx)("span",{className:"shrink-0 mt-0.5 rounded px-1.5 py-0.5 font-medium text-[10px] uppercase tracking-wide ".concat(s?"bg-pir-accent/15 text-pir-accent":"bg-pir-text-muted/15 text-pir-text-muted"),children:s?"Agent":"Human"}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[r.description&&(0,a.jsx)("p",{className:"text-pir-text-secondary truncate mb-0.5",children:r.description}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-x-3 gap-y-0.5 text-pir-text-muted",children:[s&&r.agent_seconds>0&&(0,a.jsxs)("span",{children:["agent time: ",(t=r.agent_seconds)<60?"".concat(t,"s"):b(Math.round(t/60))]}),!s&&r.human_minutes>0&&(0,a.jsxs)("span",{children:["human time: ",b(r.human_minutes)]}),(0,a.jsx)("span",{children:function(e){let t=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(t<60)return"".concat(t,"m ago");let r=Math.floor(t/60);return r<24?"".concat(r,"h ago"):"".concat(Math.floor(r/24),"d ago")}(r.created_at)}),(0,a.jsxs)("span",{children:["by ",r.created_by]}),!r.is_billable&&(0,a.jsx)("span",{className:"text-pir-warning",children:"non-billable"})]})]}),(0,a.jsxs)("div",{className:"shrink-0 text-right",children:[(0,a.jsx)("div",{className:"text-pir-text-primary font-mono",children:h(r.total_cost_usd)}),r.total_bill_usd!==r.total_cost_usd&&(0,a.jsxs)("div",{className:"text-pir-text-muted font-mono text-[10px]",children:["bill ",h(r.total_bill_usd)]})]})]})}function g(e){let{taskId:t,onSaved:r,onCancel:n}=e,[l,c]=(0,s.useState)(""),[o,d]=(0,s.useState)(""),[p,u]=(0,s.useState)(!0),[m,h]=(0,s.useState)(!1),[b,f]=(0,s.useState)(null);async function g(e){e.preventDefault();let a=parseFloat(l);if(!a||a<1)return void f("Minimum 1 minute");h(!0),f(null);try{let e=await (0,i.Vel)(t,{human_minutes:a,description:o.trim()||void 0,is_billable:p});r(e)}catch(e){f(e instanceof Error?e.message:"Failed to save")}finally{h(!1)}}return(0,a.jsxs)("form",{onSubmit:g,className:"border border-pir rounded p-3 bg-pir-surface-0 space-y-2.5 mt-2",children:[(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsx)("label",{className:"text-[10px] text-pir-text-muted uppercase tracking-wide block mb-1",children:"Minutes"}),(0,a.jsx)("input",{type:"number",min:"1",max:"1440",step:"1",value:l,onChange:e=>c(e.target.value),placeholder:"e.g. 30",className:"w-full bg-pir-surface-1 border border-pir rounded px-2 py-1 text-xs text-pir-text-primary focus:outline-none focus:border-pir-accent/60",required:!0})]}),(0,a.jsxs)("div",{className:"flex-[2]",children:[(0,a.jsx)("label",{className:"text-[10px] text-pir-text-muted uppercase tracking-wide block mb-1",children:"Description (optional)"}),(0,a.jsx)("input",{type:"text",maxLength:200,value:o,onChange:e=>d(e.target.value),placeholder:"e.g. Code review",className:"w-full bg-pir-surface-1 border border-pir rounded px-2 py-1 text-xs text-pir-text-primary focus:outline-none focus:border-pir-accent/60"})]})]}),(0,a.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer select-none",children:[(0,a.jsx)("input",{type:"checkbox",checked:p,onChange:e=>u(e.target.checked),className:"accent-pir-accent"}),(0,a.jsx)("span",{className:"text-xs text-pir-text-secondary",children:"Billable"})]}),b&&(0,a.jsx)(x.$,{message:b}),(0,a.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,a.jsx)("button",{type:"button",onClick:n,className:"px-3 py-1 text-xs text-pir-text-muted hover:text-pir-text-secondary rounded border border-pir hover:border-pir-text-muted/40 transition-colors",children:"Cancel"}),(0,a.jsx)("button",{type:"submit",disabled:m,className:"px-3 py-1 text-xs bg-pir-accent/90 hover:bg-pir-accent text-white rounded transition-colors disabled:opacity-50",children:m?"Saving...":"Save"})]})]})}function j(e){let{taskId:t}=e,[r,n]=(0,s.useState)(null),[l,c]=(0,s.useState)(!0),[o,d]=(0,s.useState)(null),[x,p]=(0,s.useState)(!1),[u,m]=(0,s.useState)(!1);if((0,s.useEffect)(()=>{let e=new AbortController;return c(!0),d(null),(0,i.VGD)(t).then(t=>{e.signal.aborted||n(t)}).catch(e=>{"AbortError"!==e.name&&d(e.message)}).finally(()=>{e.signal.aborted||c(!1)}),()=>e.abort()},[t]),l)return(0,a.jsx)("div",{className:"text-xs text-pir-text-muted animate-pulse",children:"Loading costs..."});if(o)return(0,a.jsx)("div",{className:"text-xs text-pir-error",children:"Cost data unavailable"});let b=r&&r.entry_count>0;return(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,a.jsx)("h3",{className:"text-xs font-medium text-pir-text-primary",children:"Cost"}),(0,a.jsx)("button",{type:"button",onClick:()=>m(e=>!e),className:"text-[10px] text-pir-text-muted hover:text-pir-accent transition-colors",children:"+ Log time"})]}),b?(0,a.jsxs)("div",{className:"border border-pir rounded p-3 bg-pir-surface-0 space-y-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-4 text-xs",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-pir-text-muted",children:"Total cost "}),(0,a.jsx)("span",{className:"font-mono text-pir-text-primary",children:h(r.total_cost_usd)})]}),r.total_bill_usd!==r.total_cost_usd&&(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-pir-text-muted",children:"Billable "}),(0,a.jsx)("span",{className:"font-mono text-pir-text-primary",children:h(r.billable_usd)})]}),(0,a.jsxs)("div",{className:"ml-auto flex gap-3 text-pir-text-muted",children:[r.agent_cost_usd>0&&(0,a.jsxs)("span",{children:["agent ",h(r.agent_cost_usd)]}),r.human_cost_usd>0&&(0,a.jsxs)("span",{children:["human ",h(r.human_cost_usd)]})]})]}),r.entry_count>0&&(0,a.jsxs)("button",{type:"button",onClick:()=>p(e=>!e),className:"text-[10px] text-pir-text-muted hover:text-pir-text-secondary transition-colors",children:[x?"Hide":"Show"," ",r.entry_count," ",1===r.entry_count?"entry":"entries"]}),x&&r.entries.length>0&&(0,a.jsx)("div",{className:"mt-1",children:r.entries.map(e=>(0,a.jsx)(f,{entry:e},e.id))})]}):(0,a.jsx)("div",{className:"text-xs text-pir-text-muted italic",children:"No cost entries yet."}),u&&(0,a.jsx)(g,{taskId:t,onSaved:function(e){n(e),m(!1),p(!0)},onCancel:()=>m(!1)})]})}var v=r(1955);function y(e){let t,r,s,{summary:n,onClick:i}=e,{total:l,passed:c,failed:o,pending:d,merge_blocked:x}=n;return 0===l?(0,a.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] px-2 py-0.5 rounded-full bg-gray-100 text-gray-600 dark:bg-gray-800 dark:text-gray-400",children:[(0,a.jsx)(C,{}),"No CI"]}):(c===l&&0===o&&0===d?(t="bg-emerald-50 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400",r="CI Passed",s=(0,a.jsx)(N,{})):o>0?(t="bg-red-50 text-red-700 dark:bg-red-900/30 dark:text-red-400",r="CI Failing",s=(0,a.jsx)(k,{})):d>0?(t="bg-amber-50 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400",r="Running",s=(0,a.jsx)(w,{})):(t="bg-gray-100 text-gray-600 dark:bg-gray-800 dark:text-gray-400",r="CI",s=null),(0,a.jsxs)("button",{type:"button",onClick:i,className:"inline-flex items-center gap-1 text-[10px] px-2 py-0.5 rounded-full transition-opacity hover:opacity-80 ".concat(t),children:[s,r,(0,a.jsxs)("span",{className:"opacity-60",children:[c,"/",l]}),x&&(0,a.jsx)("span",{className:"ml-0.5 text-red-600 dark:text-red-400 font-semibold",children:"blocked"})]}))}function N(){return(0,a.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",className:"shrink-0",children:(0,a.jsx)("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function k(){return(0,a.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",className:"shrink-0",children:(0,a.jsx)("path",{d:"M3 3L9 9M9 3L3 9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})}function C(){return(0,a.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",className:"shrink-0",children:[(0,a.jsx)("circle",{cx:"6",cy:"6",r:"4",stroke:"currentColor",strokeWidth:"1.2"}),(0,a.jsx)("path",{d:"M4 6H8",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]})}function w(){return(0,a.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",className:"shrink-0 animate-spin",children:[(0,a.jsx)("circle",{cx:"6",cy:"6",r:"4",stroke:"currentColor",strokeWidth:"1.2",opacity:"0.3"}),(0,a.jsx)("path",{d:"M6 2a4 4 0 012.83 1.17",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]})}function _(e){let{taskId:t,hasPr:r}=e,[n,l]=(0,s.useState)(!1),c=(0,s.useCallback)(e=>(0,i.ulo)(t,{signal:e}),[t]),o=(0,s.useCallback)(e=>(0,i.CXw)(t,{signal:e}),[t]),{data:d,loading:x,error:p,refresh:u}=(0,v.j)(c,{interval:15e3,enabled:r,backoff:!0,unchangedThreshold:3}),m=!!d&&d.pending>0,{data:h,loading:b}=(0,v.j)(o,{interval:15e3,enabled:r&&n&&m,backoff:!0});return r?x&&!d?(0,a.jsx)("div",{className:"animate-pulse h-6 bg-pir-surface-0 rounded w-24"}):p?(0,a.jsxs)("div",{className:"flex items-center gap-2 text-xs text-pir-text-muted",children:[(0,a.jsx)("span",{children:"Unable to load CI status"}),(0,a.jsx)("button",{onClick:u,className:"text-pir-accent hover:underline",children:"Retry"})]}):d?(0,a.jsxs)("div",{className:"space-y-2",children:[d.merge_blocked&&(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded px-2.5 py-1.5",children:[(0,a.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"shrink-0",children:[(0,a.jsx)("path",{d:"M6 1L11 10H1L6 1Z",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"}),(0,a.jsx)("path",{d:"M6 4.5V6.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"}),(0,a.jsx)("circle",{cx:"6",cy:"8",r:"0.5",fill:"currentColor"})]}),"Merge blocked — ",d.required_failing.length," required check",1!==d.required_failing.length?"s":""," failing"]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(y,{summary:d,onClick:()=>l(!n)}),d.total>0&&(0,a.jsx)("button",{onClick:()=>l(!n),className:"text-[10px] text-pir-text-muted hover:text-pir-text-secondary",children:n?"Hide checks":"".concat(d.total," check").concat(1!==d.total?"s":"")})]}),n&&(0,a.jsx)("div",{className:"border border-pir rounded overflow-hidden",children:b&&!h?(0,a.jsx)("div",{className:"p-2 space-y-1.5",children:[1,2,3].map(e=>(0,a.jsx)("div",{className:"animate-pulse h-5 bg-pir-surface-0 rounded"},e))}):h&&h.length>0?(0,a.jsx)("div",{className:"max-h-48 overflow-y-auto",children:h.map(e=>(0,a.jsx)(S,{check:e},e.id))}):(0,a.jsx)("div",{className:"p-2 text-xs text-pir-text-muted",children:"No checks found"})})]}):null:null}function S(e){var t;let{check:r}=e,s="in_progress"===(t=r).status||"queued"===t.status?(0,a.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"shrink-0 text-amber-500 animate-spin",children:[(0,a.jsx)("circle",{cx:"6",cy:"6",r:"4",stroke:"currentColor",strokeWidth:"1.2",opacity:"0.3"}),(0,a.jsx)("path",{d:"M6 2a4 4 0 012.83 1.17",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]}):"success"===t.conclusion?(0,a.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"shrink-0 text-emerald-500",children:(0,a.jsx)("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}):"failure"===t.conclusion?(0,a.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"shrink-0 text-red-500",children:(0,a.jsx)("path",{d:"M3 3L9 9M9 3L3 9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}):"skipped"===t.conclusion||"neutral"===t.conclusion?(0,a.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"shrink-0 text-gray-400",children:[(0,a.jsx)("circle",{cx:"6",cy:"6",r:"4",stroke:"currentColor",strokeWidth:"1.2"}),(0,a.jsx)("path",{d:"M4 6H8",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]}):(0,a.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"shrink-0 text-gray-400",children:(0,a.jsx)("circle",{cx:"6",cy:"6",r:"4",stroke:"currentColor",strokeWidth:"1.2"})}),n=r.started_at&&r.completed_at?function(e){let t=Math.floor(e/1e3);if(t<60)return"".concat(t,"s");let r=Math.floor(t/60);if(r<60)return"".concat(r,"m ").concat(t%60,"s");let a=Math.floor(r/60);return"".concat(a,"h ").concat(r%60,"m")}(new Date(r.completed_at).getTime()-new Date(r.started_at).getTime()):null,i=r.check_name;return(0,a.jsxs)("div",{className:"flex items-center gap-2 px-2.5 py-1.5 text-xs border-b border-pir last:border-b-0 hover:bg-pir-surface-1/50",children:[s,(0,a.jsx)("span",{className:"flex-1 min-w-0 truncate text-pir-text-secondary",children:i}),n&&(0,a.jsx)("span",{className:"text-[10px] text-pir-text-muted shrink-0",children:n}),r.details_url&&(0,a.jsx)("a",{href:r.details_url,target:"_blank",rel:"noopener noreferrer",className:"text-pir-accent hover:underline shrink-0",onClick:e=>e.stopPropagation(),children:"Details"})]})}var M=r(6830);let D=[{value:"agent",label:"Agent",color:"bg-emerald-500/20 text-emerald-700 dark:text-emerald-400 border-emerald-500/30"},{value:"hybrid",label:"Hybrid",color:"bg-blue-500/20 text-blue-700 dark:text-blue-400 border-blue-500/30"},{value:"human",label:"Human",color:"bg-amber-500/20 text-amber-700 dark:text-amber-400 border-amber-500/30"}];function E(e){let{label:t,value:r,onChange:s}=e;return(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,a.jsx)("span",{className:"text-caption text-pir-text-tertiary",children:t}),(0,a.jsx)("span",{className:"text-caption text-pir-text-muted tabular-nums w-4 text-right",children:null!=r?r:"-"})]}),(0,a.jsx)("div",{className:"flex gap-px",children:Array.from({length:10},(e,t)=>t+1).map(e=>{let t=null!=r&&e<=r,n=e===r;return(0,a.jsx)("button",{onClick:()=>s(e===r?null:e),className:"flex-1 h-5 text-[9px] rounded-sm transition-colors tabular-nums ".concat(n?"bg-pir-accent text-white":t?"bg-pir-accent/30 text-pir-accent":"bg-pir-surface-1 text-pir-text-muted hover:bg-pir-surface-2"),children:e},e)})})]})}let L=(0,s.memo)(function(e){let{impact:t,confidence:r,ease:s,delegation:n,iceScore:i,onChange:l}=e;return(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"text-label text-pir-text-secondary",children:"ICE-D Score"}),null!=i?(0,a.jsx)("span",{className:"text-heading text-pir-accent tabular-nums",children:i}):(0,a.jsx)("span",{className:"text-label text-pir-text-muted",children:"Unscored"})]}),(0,a.jsx)(E,{label:"Impact",value:t,onChange:e=>l({impact:e})}),(0,a.jsx)(E,{label:"Confidence",value:r,onChange:e=>l({confidence:e})}),(0,a.jsx)(E,{label:"Ease",value:s,onChange:e=>l({ease:e})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-caption text-pir-text-tertiary block mb-1",children:"Delegation"}),(0,a.jsx)("div",{className:"flex gap-1",children:D.map(e=>{let t=n===e.value;return(0,a.jsx)("button",{onClick:()=>l({delegation:t?null:e.value}),className:"flex-1 text-[10px] py-1 rounded border transition-colors ".concat(t?e.color:"bg-pir-surface-1 text-pir-text-muted border-transparent hover:bg-pir-surface-2"),children:e.label},e.value)})})]})]})});var A=r(5440),R=r(5704);let T=/^(C'è bisogno(?:\s+di)?|Devo)\s+(.+?)\s+perch[eé]\s+(.+?)(?:\.\s*Attenzione a:?\s+(.+?))?\.?\s*$/i,W=/^-(\/.+)$/;function B(e){let{path:t}=e,[r,n]=(0,s.useState)(!1);return(0,a.jsxs)("button",{type:"button",onClick:function(){navigator.clipboard.writeText(t).then(()=>{n(!0),setTimeout(()=>n(!1),1500)})},title:"Click to copy",className:"inline-flex items-center gap-1.5 bg-pir-surface-0 border border-pir rounded px-2 py-0.5 font-mono text-[11px] text-pir-text-muted hover:text-pir-text-secondary hover:border-pir-accent/40 transition-colors",children:[(0,a.jsxs)("svg",{className:"w-3 h-3 shrink-0",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[(0,a.jsx)("path",{d:"M2 2h4l2 2v6H2V2z"}),(0,a.jsx)("path",{d:"M5 4h5l-1-1"})]}),r?"copied!":t]})}function I(e){let{description:t}=e,r=function(e){var t;let r=e.split("\n"),a=[],s=[];for(let e of r){let t=e.trim().match(W);t?s.push(t[1]):e.trim()&&a.push(e.trim())}let n=a.join(" ").trim().match(T);return n?{prefix:n[1],action:n[2],problem:n[3],attention:null!=(t=n[4])?t:null,dirRefs:s}:null}(t);if(r){let{prefix:e,action:t,problem:s,attention:n,dirRefs:i}=r;return(0,a.jsxs)("div",{className:"space-y-2.5",children:[(0,a.jsxs)("p",{className:"text-xs text-pir-text-secondary leading-relaxed",children:[(0,a.jsxs)("span",{children:[e," "]}),(0,a.jsx)("span",{className:"text-pir-success font-semibold",children:t}),(0,a.jsx)("span",{children:" perch\xe9 "}),(0,a.jsx)("span",{className:"text-pir-error font-semibold",children:s}),n&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-pir-text-muted",children:". Attenzione a "}),(0,a.jsx)("span",{className:"text-pir-warning font-semibold",children:n})]}),(0,a.jsx)("span",{children:"."})]}),i.length>0&&(0,a.jsx)("div",{className:"flex flex-wrap gap-1.5",children:i.map(e=>(0,a.jsx)(B,{path:e},e))})]})}return(0,a.jsx)("p",{className:"text-xs text-pir-text-secondary whitespace-pre-wrap leading-relaxed",children:t})}let P={high:"text-pir-error",medium:"text-pir-warning",low:"text-pir-text-muted"},H={pending:"bg-pir-text-muted/20 text-pir-text-muted",approved:"bg-pir-accent/20 text-pir-accent",in_progress:"bg-pir-warning/20 text-pir-warning",completed:"bg-pir-success/20 text-pir-success",failed:"bg-pir-error/20 text-pir-error"},U={pending:["approved","rejected"],approved:["in_progress","rejected"],in_progress:["completed","failed"],failed:["approved"],completed:[],rejected:[]},q=["high","medium","low"];function F(e){var t,r,l,c;let{task:o,slug:d,onClose:x,onStatusChange:p,onTaskUpdated:u,onTaskDeleted:h}=e,{permissions:b}=(0,A.A)(),[f,g]=(0,s.useState)(null),[v,y]=(0,s.useState)(o),[N,k]=(0,s.useState)(null),[C,w]=(0,s.useState)(!1),[S,D]=(0,s.useState)(o.title),[E,T]=(0,s.useState)(null!=(t=o.description)?t:""),[W,B]=(0,s.useState)(o.priority),[F,z]=(0,s.useState)(o.tags.join(", ")),[O,$]=(0,s.useState)(null!=(r=o.owner_id)?r:null),[G,J]=(0,s.useState)([]),[K,V]=(0,s.useState)(!1),[X,Z]=(0,s.useState)(!1),[Y,Q]=(0,s.useState)(!1),[ee,et]=(0,s.useState)(!1),[er,ea]=(0,s.useState)(o.impact),[es,en]=(0,s.useState)(o.confidence),[ei,el]=(0,s.useState)(o.ease),[ec,eo]=(0,s.useState)(o.delegation),ed=(0,s.useRef)(!1);(0,s.useEffect)(()=>{let e=new AbortController;return(0,i.ggW)(o.id,{signal:e.signal}).then(e=>{var t;y(e),T(null!=(t=e.description)?t:"")}).catch(()=>{}),()=>e.abort()},[o.id]);let ex=null!=er&&null!=es&&null!=ei?er*es*ei:null,ep=(0,s.useCallback)(e=>{var t,r,a,s;"impact"in e&&ea(null!=(t=e.impact)?t:null),"confidence"in e&&en(null!=(r=e.confidence)?r:null),"ease"in e&&el(null!=(a=e.ease)?a:null),"delegation"in e&&eo(null!=(s=e.delegation)?s:null),ed.current=!0},[]),eu=(0,s.useCallback)(async()=>{if(ed.current)try{let e=await (0,i.lCH)(v.id,{impact:er,confidence:es,ease:ei,delegation:ec});null==u||u(e)}catch(e){}x()},[v.id,er,es,ei,ec,x,u]);async function em(){V(!0);try{let e=F.split(",").map(e=>e.trim()).filter(Boolean),t=await fetch("".concat(M.JR,"/api/v1/tasks/").concat(v.id),{method:"PATCH",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:S,description:E,priority:W,tags:e,owner_id:O})});if(t.ok){let e=await t.json();y(e),w(!1),null==u||u(e)}}finally{V(!1)}}async function eh(e){et(!0);try{(await fetch("".concat(M.JR,"/api/v1/tasks/").concat(v.id),{method:"PATCH",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:e})})).ok&&(y(t=>({...t,status:e})),null==p||p(v.id,e))}finally{et(!1)}}async function eb(){Q(!0);try{(await fetch("".concat(M.JR,"/api/v1/tasks/").concat(v.id),{method:"DELETE",credentials:"include"})).ok&&(null==h||h(v.id),x())}finally{Q(!1)}}(0,s.useEffect)(()=>{(0,i.jpm)().then(e=>g(e.username)).catch(()=>{})},[]),(0,s.useEffect)(()=>{v.project&&(0,i.DR0)(v.project).then(e=>{var t;k(null!=(t=e.find(e=>"responsible"===e.role))?t:null)}).catch(()=>{})},[v.project]);let ef=null!=(l=H[v.status])?l:"bg-pir-surface-0 text-pir-text-muted";return(0,a.jsx)("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50 p-4",onClick:e=>e.target===e.currentTarget&&eu(),children:(0,a.jsxs)("div",{className:"bg-pir-surface-1 border border-pir rounded w-full max-w-lg max-h-[85vh] flex flex-col",children:[(0,a.jsxs)("div",{className:"flex items-start justify-between px-5 py-4 border-b border-pir shrink-0",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[C?(0,a.jsx)("input",{className:"w-full bg-pir-surface-0 border border-pir rounded px-2 py-1 text-sm font-semibold text-pir-text-primary focus:outline-none",value:S,onChange:e=>D(e.target.value),"aria-label":"Task title"}):(0,a.jsx)("h2",{className:"text-sm font-semibold text-pir-text-primary",children:v.title}),(0,a.jsxs)("div",{className:"flex items-center gap-2 mt-1.5 flex-wrap",children:[N&&(0,a.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] px-2 py-0.5 rounded-full bg-blue-400/15 text-blue-400 border border-blue-400/30",children:[(0,a.jsx)("span",{className:"w-3.5 h-3.5 rounded-full flex-shrink-0 flex items-center justify-center text-[7px] font-bold text-white",style:{backgroundColor:N.user.avatar_color},children:N.user.display_name.charAt(0).toUpperCase()}),N.user.display_name]}),(()=>{let e=U[v.status]||[],t=[v.status,...e];return(0,a.jsx)("select",{className:"text-[10px] px-2 py-0.5 rounded-full border-0 cursor-pointer ".concat(ef," bg-transparent"),value:v.status,disabled:ee||0===e.length||!b.canWrite,onChange:e=>eh(e.target.value),"aria-label":"Task status",children:t.map(e=>(0,a.jsx)("option",{value:e,children:e},e))})})(),"pending"===v.status&&!C&&b.canWrite&&(0,a.jsx)("button",{onClick:()=>eh("approved"),disabled:ee,className:"text-[10px] px-2 py-0.5 rounded-full bg-pir-accent/20 text-pir-accent hover:bg-pir-accent/30 disabled:opacity-50 transition-colors","aria-label":"Approve task",children:ee?"...":"Approve"}),C?(0,a.jsx)("select",{className:"text-[10px] font-medium bg-pir-surface-0 border border-pir rounded px-1 py-0.5 text-pir-text-primary focus:outline-none",value:W,onChange:e=>B(e.target.value),"aria-label":"Task priority",children:q.map(e=>(0,a.jsx)("option",{value:e,children:e},e))}):(0,a.jsx)("span",{className:"text-[10px] font-medium ".concat(null!=(c=P[v.priority])?c:"text-pir-text-muted"),children:v.priority})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2 ml-3 shrink-0",children:[!C&&b.canWrite&&(0,a.jsx)("button",{onClick:function(){var e,t;D(v.title),T(null!=(e=v.description)?e:""),B(v.priority),z(v.tags.join(", ")),$(null!=(t=v.owner_id)?t:null),w(!0),(0,i.ZZm)().then(J).catch(()=>{})},className:"text-xs text-pir-text-muted hover:text-pir-text-secondary px-2 py-1 border border-pir rounded","aria-label":"Edit task",children:"Edit"}),C&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{onClick:em,disabled:K,className:"text-xs text-pir-text-primary px-2 py-1 border border-pir rounded hover:bg-pir-surface-2 disabled:opacity-50","aria-label":"Save task",children:K?"Saving...":"Save"}),(0,a.jsx)("button",{onClick:function(){w(!1)},className:"text-xs text-pir-text-muted px-2 py-1 border border-pir rounded hover:bg-pir-surface-2","aria-label":"Cancel edit",children:"Cancel"})]}),"true"===R.env.NEXT_PUBLIC_ENABLE_GRAPH_UX&&(0,a.jsx)("a",{href:"/graph/?id=task:artifact:".concat(v.id,"&view=list&tab=context"),title:"View in Knowledge Graph",className:"text-caption text-pir-text-muted hover:text-pir-kg-node-task transition-colors px-1.5 py-0.5 border border-pir rounded",children:"KG"}),(0,a.jsx)("button",{onClick:eu,className:"text-pir-text-muted hover:text-pir-text-secondary text-lg leading-none","aria-label":"Close",children:"\xd7"})]})]}),(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto px-5 py-4 space-y-4",children:[C?(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-label text-pir-text-tertiary block mb-1",children:"Description"}),(0,a.jsx)("textarea",{className:"w-full bg-pir-surface-0 border border-pir rounded px-2 py-1 text-sm text-pir-text-primary focus:outline-none resize-none",rows:5,value:E,onChange:e=>T(e.target.value),"aria-label":"Task description"})]}):v.description&&(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-label text-pir-text-tertiary block mb-1.5",children:"Description"}),(0,a.jsx)(I,{description:v.description})]}),(0,a.jsxs)("div",{className:"flex items-center gap-4 text-xs text-pir-text-muted",children:[v.owner&&(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("span",{className:"text-pir-text-tertiary mr-1",children:"Owner:"}),(0,a.jsx)("div",{className:"w-4 h-4 rounded-full flex-shrink-0",style:{backgroundColor:v.owner.avatar_color}}),(0,a.jsx)("span",{className:"text-pir-text-secondary",children:v.owner.display_name})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-pir-text-tertiary mr-1",children:"Created by:"}),(0,a.jsx)("span",{className:"text-pir-text-secondary",children:v.created_by})]})]}),C?(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-label text-pir-text-tertiary block mb-1",children:"Owner"}),(0,a.jsxs)("select",{className:"w-full bg-pir-surface-0 border border-pir rounded px-2 py-1 text-sm text-pir-text-primary focus:outline-none",value:null!=O?O:"",onChange:e=>$(e.target.value||null),"aria-label":"Task owner",children:[(0,a.jsx)("option",{value:"",children:"— nessuno —"}),G.map(e=>(0,a.jsxs)("option",{value:e.id,children:[e.display_name," (",e.type,")"]},e.id))]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-label text-pir-text-tertiary block mb-1",children:"Tags (comma-separated)"}),(0,a.jsx)("input",{className:"w-full bg-pir-surface-0 border border-pir rounded px-2 py-1 text-sm text-pir-text-primary focus:outline-none",value:F,onChange:e=>z(e.target.value),"aria-label":"Task tags",placeholder:"tag1, tag2, tag3"})]})]}):v.tags.length>0&&(0,a.jsx)("div",{className:"flex flex-wrap gap-1",children:v.tags.map(e=>(0,a.jsx)("span",{className:"text-[10px] bg-pir-surface-0 border border-pir px-2 py-0.5 rounded text-pir-text-muted",children:e},e))}),(0,a.jsx)("div",{className:"border border-pir rounded p-3 bg-pir-surface-0",children:(0,a.jsx)(L,{impact:er,confidence:es,ease:ei,delegation:ec,iceScore:ex,onChange:ep})}),(0,a.jsx)(m,{taskId:v.id,onTaskCompleted:()=>{y(e=>({...e,status:"completed"})),null==p||p(v.id,"completed")}}),(0,a.jsx)(_,{taskId:v.id,hasPr:!!v.pr_status}),(0,a.jsx)(j,{taskId:v.id}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-xs font-medium text-pir-text-primary mb-2",children:"Comments"}),f?(0,a.jsx)(n.A,{targetType:"task",targetId:v.id,currentUser:f}):(0,a.jsx)("div",{className:"text-xs text-pir-text-muted",children:"Loading..."})]})]}),b.canWrite&&(0,a.jsx)("div",{className:"border-t border-pir px-5 py-3 shrink-0",children:X?(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("span",{className:"text-caption text-pir-text-secondary flex-1",children:"Delete this task?"}),(0,a.jsx)("button",{onClick:eb,disabled:Y,className:"text-xs px-3 py-1 rounded border border-pir-error text-pir-error hover:bg-pir-error/10 disabled:opacity-50","aria-label":"Confirm delete",children:Y?"Deleting...":"Confirm"}),(0,a.jsx)("button",{onClick:()=>Z(!1),className:"text-xs px-3 py-1 rounded border border-pir text-pir-text-muted hover:bg-pir-surface-2","aria-label":"Cancel delete",children:"Cancel"})]}):(0,a.jsx)("button",{onClick:()=>Z(!0),className:"text-xs text-pir-text-muted hover:text-pir-error","aria-label":"Delete task",children:"Delete task"})})]})})}},5440:(e,t,r)=>{r.d(t,{O:()=>o,A:()=>d});var a=r(5155),s=r(2115),n=r(960);let i={viewer:0,operator:1,admin:2,super_admin:3};function l(e){let t=null!==e?i[e]:-1;return{canWrite:t>=i.operator,canAdmin:t>=i.admin}}let c=(0,s.createContext)({status:"loading",username:null,role:null,userId:null,displayName:null,permissions:l(null),llmKeyMissing:!1,login:async()=>{},logout:async()=>{}});function o(e){let{children:t}=e,[r,i]=(0,s.useState)("loading"),[o,d]=(0,s.useState)(null),[x,p]=(0,s.useState)(null),[u,m]=(0,s.useState)(null),[h,b]=(0,s.useState)(null),[f,g]=(0,s.useState)(l(null)),[j,v]=(0,s.useState)(!1);(0,s.useEffect)(()=>{(0,n.jpm)().then(e=>{var t,r,a,s;d(e.username);let n=null!=(r=e.system_role)?r:null;p(n),m(null!=(a=e.user_id)?a:null),b(null!=(s=e.display_name)?s:null),g(l(n)),v((null==(t=e.capabilities)?void 0:t.todos_llm_key_missing)===!0),i("authenticated")}).catch(()=>{i("unauthenticated")})},[]);let y=(0,s.useCallback)(async(e,t)=>{var r,a,s,c;await (0,n.iDC)(e,t);let o=await (0,n.jpm)();d(o.username);let x=null!=(a=o.system_role)?a:null;p(x),m(null!=(s=o.user_id)?s:null),b(null!=(c=o.display_name)?c:null),g(l(x)),v((null==(r=o.capabilities)?void 0:r.todos_llm_key_missing)===!0),i("authenticated")},[]),N=(0,s.useCallback)(async()=>{await (0,n.rig)(),d(null),p(null),m(null),b(null),g(l(null)),v(!1),i("unauthenticated")},[]);return(0,a.jsx)(c.Provider,{value:{status:r,username:o,role:x,userId:u,displayName:h,permissions:f,llmKeyMissing:j,login:y,logout:N},children:t})}function d(){return(0,s.useContext)(c)}},8737:(e,t,r)=>{r.d(t,{B:()=>i});var a=r(5155),s=r(5440);let n={viewer:0,operator:1,admin:2,super_admin:3};function i(e){var t;let{minRole:r,children:i,fallback:l=null}=e,{role:c,status:o}=(0,s.A)();return"loading"===o||(null!==c&&null!=(t=n[c])?t:-1)<n[r]?(0,a.jsx)(a.Fragment,{children:l}):(0,a.jsx)(a.Fragment,{children:i})}},8885:(e,t,r)=>{r.d(t,{A:()=>x});var a=r(5155),s=r(2115),n=r(1450),i=r(960);let l={info:"text-pir-text-muted",question:"text-pir-warning",blocker:"text-pir-error",resolved:"text-pir-success"},c={"+1":"\uD83D\uDC4D","-1":"\uD83D\uDC4E",eyes:"\uD83D\uDC40",check:"✅"};function o(e){let{reactions:t,currentUser:r,onToggle:s}=e,n={};for(let e of t)n[e.reaction]||(n[e.reaction]={count:0,byMe:!1}),n[e.reaction].count++,e.created_by===r&&(n[e.reaction].byMe=!0);return(0,a.jsx)("div",{className:"flex items-center gap-1 mt-1",children:Object.keys(c).map(e=>{let t=n[e];return(0,a.jsxs)("button",{onClick:()=>s(e),className:"text-caption px-1.5 py-0.5 rounded border transition-colors ".concat((null==t?void 0:t.byMe)?"border-pir-accent bg-pir-accent/10 text-pir-accent":"border-pir text-pir-text-muted hover:border-pir-accent/50"),children:[c[e],t&&t.count>0?" ".concat(t.count):""]},e)})})}function d(e){var t;let{comment:r,currentUser:i,onReply:c,onUpdate:x,onDelete:p,onReaction:u,depth:m}=e,[h,b]=(0,s.useState)(!1),[f,g]=(0,s.useState)(r.body),[j,v]=(0,s.useState)(r.status),y=r.created_by===i,N="[deleted]"===r.body;return(0,a.jsxs)("div",{className:"".concat(m>0?"ml-6 border-l border-pir pl-3":""),children:[(0,a.jsxs)("div",{className:"bg-pir-surface-1 border border-pir rounded p-3 mb-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,a.jsx)("span",{className:"text-caption font-medium text-pir-text-secondary",children:r.created_by}),(0,a.jsx)("span",{className:"text-caption ".concat(l[r.status]),children:r.status}),(0,a.jsx)("span",{className:"text-caption text-pir-text-muted ml-auto",children:new Date(r.created_at).toLocaleDateString()}),r.edited_at&&(0,a.jsx)("span",{className:"text-caption text-pir-text-muted",children:"(edited)"})]}),h?(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("textarea",{value:f,onChange:e=>g(e.target.value),className:"w-full bg-pir-surface-0 border border-pir rounded px-2 py-1 text-caption text-pir-text-primary min-h-[60px] resize-y"}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("select",{value:j,onChange:e=>v(e.target.value),className:"text-caption bg-pir-surface-0 border border-pir rounded px-1 py-0.5 text-pir-text-primary",children:[(0,a.jsx)("option",{value:"info",children:"info"}),(0,a.jsx)("option",{value:"question",children:"question"}),(0,a.jsx)("option",{value:"blocker",children:"blocker"}),(0,a.jsx)("option",{value:"resolved",children:"resolved"})]}),(0,a.jsx)("button",{onClick:function(){x(r.id,f,j),b(!1)},className:"text-caption px-2 py-0.5 bg-pir-accent text-white rounded",children:"Save"}),(0,a.jsx)("button",{onClick:()=>b(!1),className:"text-caption px-2 py-0.5 text-pir-text-muted",children:"Cancel"})]})]}):(0,a.jsx)("div",{className:"text-caption text-pir-text-secondary",children:N?(0,a.jsx)("span",{className:"italic text-pir-text-muted",children:"[deleted]"}):(0,a.jsx)(n.A,{content:r.body})}),!N&&!h&&(0,a.jsxs)("div",{className:"flex items-center gap-3 mt-2",children:[(0,a.jsx)(o,{reactions:r.reactions,currentUser:i,onToggle:function(e){let t=r.reactions.find(t=>t.reaction===e&&t.created_by===i);u(r.id,e,!t)}}),(0,a.jsxs)("div",{className:"flex items-center gap-2 ml-auto",children:[0===m&&(0,a.jsx)("button",{onClick:()=>c(r.id),className:"text-caption text-pir-text-muted hover:text-pir-accent",children:"Reply"}),y&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{onClick:()=>{g(r.body),v(r.status),b(!0)},className:"text-caption text-pir-text-muted hover:text-pir-accent",children:"Edit"}),(0,a.jsx)("button",{onClick:()=>p(r.id),className:"text-caption text-pir-text-muted hover:text-pir-error",children:"Delete"})]})]})]})]}),null==(t=r.replies)?void 0:t.map(e=>(0,a.jsx)(d,{comment:e,currentUser:i,onReply:c,onUpdate:x,onDelete:p,onReaction:u,depth:m+1},e.id))]})}function x(e){let{targetType:t,targetId:r,currentUser:n}=e,[l,c]=(0,s.useState)([]),[o,x]=(0,s.useState)(!0),[p,u]=(0,s.useState)(""),[m,h]=(0,s.useState)("info"),[b,f]=(0,s.useState)(null),[g,j]=(0,s.useState)(!1),v=(0,s.useCallback)(()=>{let e=new AbortController;return(0,i.vrD)(t,r,{signal:e.signal}).then(c).catch(()=>{}).finally(()=>{e.signal.aborted||x(!1)}),e},[t,r]);async function y(e){if(e.preventDefault(),p.trim()&&!g){j(!0);try{let e={target_type:t,target_id:r,body:p.trim(),status:m,parent_id:b};await (0,i.eT_)(e),u(""),f(null),h("info"),v()}catch(e){}finally{j(!1)}}}async function N(e,t,r){try{await (0,i.vvS)(e,{body:t,status:r}),v()}catch(e){}}async function k(e){try{await (0,i.Tu0)(e),v()}catch(e){}}async function C(e,t,r){try{r?await (0,i.BBT)(e,t):await (0,i.etj)(e,t),v()}catch(e){}}return((0,s.useEffect)(()=>{let e=v();return()=>e.abort()},[v]),o)?(0,a.jsx)("div",{className:"text-pir-text-muted text-caption p-2",children:"Loading comments..."}):(0,a.jsxs)("div",{className:"space-y-3",children:[0===l.length&&(0,a.jsx)("div",{className:"text-pir-text-muted text-caption",children:"No comments yet."}),l.map(e=>(0,a.jsx)(d,{comment:e,currentUser:n,onReply:e=>f(e),onUpdate:N,onDelete:k,onReaction:C,depth:0},e.id)),(0,a.jsxs)("form",{onSubmit:y,className:"bg-pir-surface-0 border border-pir rounded p-3",children:[b&&(0,a.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,a.jsxs)("span",{className:"text-caption text-pir-text-muted",children:["Replying to #",b]}),(0,a.jsx)("button",{type:"button",onClick:()=>f(null),className:"text-caption text-pir-error",children:"Cancel"})]}),(0,a.jsx)("textarea",{value:p,onChange:e=>u(e.target.value),placeholder:"Write a comment... (markdown supported)",className:"w-full bg-pir-surface-1 border border-pir rounded px-3 py-2 text-caption text-pir-text-primary placeholder:text-pir-text-muted min-h-[60px] resize-y"}),(0,a.jsxs)("div",{className:"flex items-center gap-2 mt-2",children:[(0,a.jsxs)("select",{value:m,onChange:e=>h(e.target.value),className:"text-caption bg-pir-surface-1 border border-pir rounded px-2 py-1 text-pir-text-primary",children:[(0,a.jsx)("option",{value:"info",children:"info"}),(0,a.jsx)("option",{value:"question",children:"question"}),(0,a.jsx)("option",{value:"blocker",children:"blocker"}),(0,a.jsx)("option",{value:"resolved",children:"resolved"})]}),(0,a.jsx)("button",{type:"submit",disabled:g||!p.trim(),className:"ml-auto px-3 py-1 text-caption bg-pir-accent text-white rounded hover:bg-pir-accent/80 disabled:opacity-50",children:g?"Posting...":b?"Reply":"Comment"})]})]})]})}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4281],{4281:(e,o,a)=>{a.d(o,{k:()=>l});var t=a(2115);let i="marvis:locale",r="marvis:locale-changed",n={en:{appShell:{logoAlt:"Marvis Console",navLabel:"Local navigation",nav:{diario:"Journal",todos:"Todos",task:"Task",projects:"Projects",universe:"Universe"},todosBadgeLabel:"Open todos",quickCaptureLabel:"Add a reminder",quickCapturePlaceholder:"Add a reminder...",quickCaptureToast:"Todos coming soon",helpLabel:"Help",helpWizard:"Run wizard again",helpTour:"Quick tour",localeLabel:"Language",projectsSlotLabel:"Projects",projectsSlotEmpty:"Navigator coming soon",localStatus:"Local",hostedSoon:"hosted \xb7 soon",versionUnavailable:"version unavailable",versionLatestPrefix:"latest",updateCommandLabel:"Copy update command",updateCommandCopied:"Command copied",llmKeyMissingTitle:"Advanced auto-classification is off: the LLM key is missing.",llmKeyMissingHint:"Todos use basic (heuristic) classification. To enable the advanced one, connect a provider key.",llmKeyMissingLink:"Configure a key",llmKeyMissingDismiss:"Dismiss",llmKeyMissingDismissLabel:"Hide the notice for today"},onboarding:{stepCounter:"Step {current} of {total}",steps:{how:"How it works",identity:"Identity",folder:"Folder",brain:"Brain",ready:"Ready"},nav:{back:"Back",next:"Next",skip:"Skip this step",skipAll:"Close wizard",close:"Close",copy:"Copy",copied:"Copied",startTour:"Start tour",finishNoTour:"Enter without tour"},status:{saving:"Saving setup.md...",saved:"setup.md updated",error:"Operation failed",scanning:"Scanning...",scanError:"This folder could not be scanned.",setupLoading:"Loading setup.md...",demoSeeding:"Loading demo...",demoError:"The demo could not be loaded."},how:{title:"Marvis runs the loop, you keep control",subtitle:"The local console organizes work, memory, and agent gates.",localNote:"Everything runs locally on your computer: no cloud, no login.",cards:{gate:{title:"You gate",body:"You decide priorities and approve what matters."},agents:{title:"Agents execute",body:"Claude Code, Cursor, Codex, and other agents work through Marvis."},brain:{title:"Brain digests",body:"Every night it turns work and files into journal, memory, and context."},audit:{title:"Approve with audit",body:"Every choice leaves a readable trace."}}},identity:{title:"Identity",subtitle:"Only the operator and company space are authored. The agent derives the rest.",demoNoticeTitle:"Demo can be preloaded",demoNoticeBody:"Casa Lorenzi loads only at the end, so the console never starts empty.",operatorLabel:"Operator",operatorPlaceholder:"Your name",companyLabel:"Company / space",companyPlaceholder:"Example: Casa Lorenzi"},folder:{title:"Work folder",subtitle:"Mechanical discovery first, then a marvis init hand-off to the agent.",rootLabel:"Root",rootPlaceholder:"/Users/name/Work",exclusionsLabel:"Explicit exclusions",exclusionsPlaceholder:"_archive, node_modules, dist",scan:"Scan",rescan:"Scan again",found:"{count} folders found",selected:"{count} selected",confirm:"Confirm sources",confirmed:"Sources confirmed",code:"code",noCode:"no-code",promptTitle:"Agent prompt",promptHint:"Copy this into your agent after the wizard. The GUI does not enrich projects by itself.",promptEmpty:"- no confirmed folder",promptReadSetup:"Read setup.md through Marvis MCP.",promptRoot:"Confirmed root",promptSources:"Folders to enrich",promptExclusions:"Explicit exclusions",promptDerive:"Derive projects, programs, relations, and state into .marvis/. Do not write derived state into setup.md."},brain:{title:"Brain sources",subtitle:"Only local sources ship in v1. Email, KB, and management systems stay Enterprise.",sourcesTitle:"What it can observe",docs:"Documents",docsHint:"Local PDFs, sheets, briefs, and contracts.",repos:"Repos",reposHint:"Local repositories, branches, and PRs.",email:"Email",kb:"Knowledge base",enterpriseSoon:"Enterprise, soon",cycleLabel:"Nightly cycle hour",cycleHint:"The briefing is ready right after the brain cycle."},ready:{title:"Ready",subtitle:"Honest setup: this is human-authored config, not derived state.",recapTitle:"Recap",folders:"{count} confirmed folders",sources:"{count} active local sources",cycle:"Brain runs nightly at {hour}",setupPreview:"setup.md preview",initTitle:"Then in the terminal",initBody:"Run marvis init: the agent reads setup.md and indexes the projects.",demoTitle:"Casa Lorenzi demo",demoBody:"The tour uses removable demo data."}},tour:{label:"Marvis tour",close:"Close",next:"Next",back:"Back",clickToContinue:"Click the target",skip:"Skip",finalEyebrow:"Tour complete",clearDemo:"Delete demo data",rerun:"Restart tour",keepDemo:"Keep demo",clearingDemo:"Deleting demo...",clearError:"Demo not deleted",steps:{diario:{title:"Journal",body:"The local home: every morning the brain shows progress, decisions, and items waiting on you."},cronologia:{title:"Timeline",body:"The side column moves through previous days without changing context."},todos:{title:"Todos",body:"The unified queue for reminders, decisions, reviews, and approvals."},"todo-capture":{title:"Capture",body:"Write a quick reminder; Marvis connects it to the right project when the brain runs."},"todo-type":{title:"Types",body:"Each todo has actions that match its type: approving is not the same as completing."},"todo-approva":{title:"Approve",body:"Click Approve on a real item: the tour moves only when you perform the gate."},"task-views":{title:"Task views",body:"Kanban, project, and calendar are three views of the same tracked work."},"task-card":{title:"Open a task",body:"Click a task: its detail opens in the drawer."},"task-drawer":{title:"Task detail",body:"What to do, due date, PR, notes, and timeline live here."},"project-row":{title:"Open project",body:"Click a demo project to enter its dashboard."},"project-dash":{title:"Project dashboard",body:"Status, journal, decisions, documents, and code live in one place."},universe:{title:"Universe",body:"The graph connects projects, documents, and code."},capture:{title:"Quick capture",body:"The sidebar stays available from every screen."},theme:{title:"Theme",body:"Switch between light and dark when you need it."},locale:{title:"Locale",body:"Change the console language without restarting."},final:{title:"Tour complete",body:"You can keep the demo, delete it, or run the tour again."}}},emptyStates:{todos:{title:"Todos coming soon",body:"The Todos surface will connect to the backend in the next PR. For now quick capture stays an honest stub.",action:"Use quick capture from the sidebar"},universe:{title:"Empty graph",body:"The real graph is mounted, but there are no indexed projects to show yet.",action:"Open Projects or index a local project"}},graph:{loading:"Loading graph...",emptyTitle:"Empty graph",emptyBody:"The real graph is mounted, but there are no indexed projects to show yet.",emptyAction:"Open Projects or index a local project",lenses:{cosmoDesc:"satellites by project",codexDesc:"code \xb7 modules \xb7 functions"}},taskSurface:{title:"Task",subtitle:"Tracked work units with the real lifecycle, due dates, review, and follow-up.",loading:"Loading tasks...",error:"Could not load tasks.",empty:"No tasks match these filters.",retry:"Retry",views:{kanban:"Kanban",project:"By project",calendar:"Calendar"},filters:{all:"All",search:"Search",searchPlaceholder:"Search title or description...",searchPanel:"Search / filter",projectResults:"projects",program:"Program",scope:"Scope",type:"Type",ownerAll:"All",ownerAgent:"Agents",ownerHuman:"You",work:"Work",personal:"Personal",code:"Code",noCode:"No-code",remove:"Remove filter"},columns:{approved:"To do",in_progress:"Doing",review:"To approve",completed:"Done",rejected:"Rejected"},card:{due:"Due",noDue:"No date",human:"You",agent:"Agent",ease:"ease",impact:"impact",pr:"PR"},drawer:{descriptionTitle:"What to do",warningPrefix:"Watch",dueTitle:"Due date",postpone:"Postpone",newDate:"New date",confirm:"Confirm",cancel:"Cancel",iceTitle:"ICE-D",prTitle:"Pull request",diffLink:"View diff",dependencies:"Dependencies",blockedBy:"Blocked by",notes:"Notes",notesHelper:"The agent can read them",notePlaceholder:"Write a note...",addNote:"Add note",timeline:"Timeline",created:"Created",updated:"Updated",comments:"comments",noDescription:"No structured description. Showing the original text.",feedbackPlaceholder:"Why are you returning it?"},actions:{start:"Start",send_review:"Send to review",complete:"Complete",approve:"Approve",return:"Return",reopen:"Reopen"},followUp:{title:"Task completed",body:"Open a follow-up task?",field:"Follow-up title",create:"Create follow-up",skip:"No thanks",prefix:"Follow-up:"}},todos:{title:"Todos",subtitle:"The unified queue for what waits on you: light intentions, agent gates, and follow-ups.",capturePlaceholder:"Write a todo, decision, or reminder...",captureSubmit:"Add",captureSaving:"Adding...",loading:"Loading todos...",error:"Could not load todos.",retry:"Retry",empty:"No todos match these filters.",personal:"Personal",assign:"Assign",assignProject:"Project slug",save:"Save",cancel:"Cancel",originBadge:"virtual",doerHuman:"you only",doerAgent:"delegable",gateHint:"Resolved from the detail view",heuristic:{label:"basic classification",tooltip:"Type and project were estimated with basic rules (heuristic), not the advanced classifier. Connect an LLM key to enable the advanced one.",drawerNote:"Type and project estimated with basic (heuristic) classification."},filters:{all:"All",decisions:"To decide",promemoria:"Reminders",idea:"Ideas",brain:"From brain",completati:"Completed"},horizons:{overdue:"Overdue",today:"Today",tomorrow:"Tomorrow",week:"This week",later:"Later"},types:{promemoria:"Reminder",azione:"Action",idea:"Idea",decidi:"Decide",approva:"Approve",rivedi:"Review"},sources:{user:"you",agent:"agent",brain:"brain"},actions:{complete:"Complete",discard:"Discard",postpone:"Postpone",delegate:"Delegate",promote:"Promote",confirm:"Confirm",revise:"Edit",approve:"Approve",reject:"Reject",review:"Review",feedback:"Feedback",sendFeedback:"Send feedback"},captions:{captured:"Added: type and project are estimated automatically when possible.",completed:"done, audit recorded",discarded:"discarded, audit recorded",postponed:"postponed to the next horizon",delegated:"now a Task",promoted:"now an idea Task",decided:"decision recorded, ADR written",revise:"in review: the agent picks up the context in the next brief",approved:"the agent applies it (audit recorded)",rejected:"rejected, feedback recorded",reviewing:"opened in review",feedback:"feedback ready for the agent",reassigned:"project updated",operatorSession:"requires operator session",actionFailed:"action failed"},drawer:{close:"Close todo",metaTitle:"Details",contextTitle:"Context",payloadTitle:"Payload",taskReview:"Task in review",finding:"Brain finding",memoryOperation:"Memory operation",branch:"branch",status:"status",summary:"summary",evidence:"evidence",proposedWrite:"proposed write",noPayload:"No structured payload.",feedbackPlaceholder:"Write the reason..."},decision:{title:"Record the decision",sceltaPlaceholder:"The decision made (required)",rationalePlaceholder:"Why this choice (optional)",opzioniPlaceholder:"Options considered, one per line (optional)",submit:"Record decision"}},llmSettings:{title:"LLM providers",subtitle:"Connect your provider key to enable advanced auto-classification for todos. The key stays on the server and is never shown in plaintext.",eyebrow:"Settings",loading:"Loading configuration...",loadError:"Could not load the LLM configuration.",retry:"Retry",runtimeNote:"The key is used right away, on every classification: no restart needed.",status:{title:"Auto-classification",configured:"On",disabled:"Off (no provider)"},keys:{title:"Provider keys",empty:"No provider keys configured.",provider:"Provider",label:"Label",prefix:"Prefix",statusLabel:"Status",statusSet:"set",statusNone:"none",statusUnreadable:"unreadable",delete:"Delete",deleting:"Deleting...",deleteConfirm:"Delete this provider key?",noLabel:"(no label)"},addKey:{title:"Add provider key",provider:"Provider",apiKey:"API key",apiKeyPlaceholder:"sk-...",apiKeyOptional:"Optional for Ollama and Mac Gateway (they need no key).",baseUrl:"Base URL",baseUrlPlaceholder:"https://...",labelField:"Label",labelPlaceholder:"E.g. Personal OpenAI",submit:"Add key",submitting:"Adding...",success:"Key added.",apiKeyRequired:"This provider requires an API key.",encryptionMissing:"Server encryption is not configured: the admin must set the BYOK_FERNET_SECRET environment variable and restart.",genericError:"Could not add the key."},classify:{title:"Classification provider",explain:"Enabling a classification provider turns on advanced auto-classification for todos (and clears the banner).",providerKey:"Provider key",providerKeyNone:"None (disable)",noKeysHint:"Add a provider key above first.",model:"Model",modelPlaceholder:"E.g. gpt-4o-mini",enabled:"Enabled",save:"Save",saving:"Saving...",saved:"Configuration saved.",saveError:"Could not save the configuration."}},projects:{navigator:{search:"Search project...",loading:"Loading projects...",empty:"No projects found.",count:"projects",collapse:"Collapse program",expand:"Expand program"},overview:{title:"Projects",subtitle:"Programs and local projects indexed by the brain.",openTasks:"open tasks",progressTooltip:"Completed / total, rejected excluded",empty:"No projects available."},dashboard:{breadcrumbRoot:"Projects",loading:"Loading project...",error:"Could not load the project.",back:"Back to projects",color:"Project color",colorSaved:"Color updated",colorReset:"Color reset",colorError:"Could not update the color.",resetColor:"Reset",headerTaskButton:"Task",code:"Code",noCode:"No-code",personal:"Personal",work:"Work",status:"Status",statusCaption:"updated by the agent",pulseOpen:"Open tasks",pulseReview:"To approve",pulseProgress:"Progress",pulseProgressTooltip:"Completed / total, rejected excluded",diary:"Project journal",diarySource:"written by the brain \xb7 nightly cycle 03:00",diaryEmpty:"The brain has not written about this project yet.",decisions:"Decisions",decisionsPath:"docs/decisions/",current:"current",superseded:"superseded",decisionsEmpty:"No ADR found in docs/decisions/.",questions:"Open questions",questionsEmpty:"No open question from the journal.",addTodo:"Add to todos",addedTodo:"Added to todos",todoError:"Could not add the todo.",brain:"What the brain knows",brainSource:"real learnings filtered by project",brainEmpty:"No learning indexed for this project.",docs:"Documents & files",docsCodeCaption:"Only repository documents. Source code lives in Codex.",viewAllDocs:"View all {count}",docsEmpty:"No document found.",relations:"Project-project relations",relationRelated:"related",relationDepends:"depends on",addRelation:"Link",removeRelation:"Remove",relationSaved:"Relation saved",relationRemoved:"Relation removed",relationError:"Could not update the relation.",more:"+{count}",collapse:"collapse",codePanel:"Code \xb7 Codex",codeBanner:"Source code lives in Codex.",branch:"Branch",pullRequests:"PR",noPullRequests:"No PR linked to tasks."},docsModal:{title:"Documents & files",search:"Search a document...",all:"All",open:"Open",empty:"No document found."},editor:{preview:"Preview",edit:"Edit",save:"Save",saving:"Saving...",saved:"Document saved",loadError:"Could not read the file.",saveError:"Could not save the file.",unsupported:"Preview is not available for this format in this view.",close:"Close"}},diario:{loading:"journal \xb7 loading entries and runs",pastBanner:"You are reading an older journal.",todayFallback:"Today",projectFallback:"No project",sections:{narrative:"Narrative",decisions:"To decide",progress:"Progress",context:"Context"},narrative:{fallbackCaption:"Base summary: connect the brain for the full narrative.",emptyFallback:"The brain produced a journal without a readable narrative."},snapshot:{projectsTouched:"Projects touched",noProjects:"none",decisions:"decisions",progress:"progress",context:"context"},actions:{addTodo:"Add to todos",delegate:"Delegate to an agent",adding:"Adding...",delegating:"Delegating...",added:"Added to todos",delegated:"Delegated",error:"Action failed"},progress:{changePrefix:"Change",decisionPrefix:"Decision"},timeline:{label:"Journal timeline",today:"Back to today"},limit:{quietTitle:"Quiet day",quietBody:"The brain ran, but found no relevant activity to show.",notRunTitle:"The brain did not run",notRunBody:"No cycle exists for this day. This can happen if the computer was off or the nightly cycle did not start.",openLatest:"Open latest journal",runNow:"Run the brain now",runningNow:"Brain running",polling:"Checking status every 5 seconds.",alreadyRunning:"Cycle already running.",runError:"The brain could not be started.",cycleCompleted:"Cycle completed — covers {window} UTC.",openCycleDay:"Open the journal for {day}",runTimeout:"The brain did not respond in time. Try again."},error:{title:"Journal unavailable",body:"The journal cannot be loaded right now."}}},it:{appShell:{logoAlt:"Marvis Console",navLabel:"Navigazione locale",nav:{diario:"Diario",todos:"Todos",task:"Task",projects:"Progetti",universe:"Universe"},todosBadgeLabel:"Todos aperti",quickCaptureLabel:"Aggiungi un promemoria",quickCapturePlaceholder:"Aggiungi un promemoria…",quickCaptureToast:"Todos in arrivo",helpLabel:"Aiuto",helpWizard:"Rifai wizard",helpTour:"Tour rapido",localeLabel:"Lingua",projectsSlotLabel:"Progetti",projectsSlotEmpty:"Navigatore in arrivo",localStatus:"In locale",hostedSoon:"hosted \xb7 presto",versionUnavailable:"versione non disponibile",versionLatestPrefix:"ultima",updateCommandLabel:"Copia comando di aggiornamento",updateCommandCopied:"Comando copiato",llmKeyMissingTitle:"Classificazione automatica avanzata non attiva: manca la chiave LLM.",llmKeyMissingHint:"I todo usano la classificazione di base (euristica). Per attivare quella avanzata collega una chiave del tuo provider.",llmKeyMissingLink:"Configura una chiave",llmKeyMissingDismiss:"Nascondi",llmKeyMissingDismissLabel:"Nascondi l'avviso per oggi"},onboarding:{stepCounter:"Passo {current} di {total}",steps:{how:"Come funziona",identity:"Identita'",folder:"Cartella",brain:"Brain",ready:"Pronto"},nav:{back:"Indietro",next:"Avanti",skip:"Salta questo passo",skipAll:"Chiudi wizard",close:"Chiudi",copy:"Copia",copied:"Copiato",startTour:"Inizia il tour",finishNoTour:"Entra senza tour"},status:{saving:"Salvo setup.md...",saved:"setup.md aggiornato",error:"Operazione non riuscita",scanning:"Scansione...",scanError:"Non riesco a scansionare questa cartella.",setupLoading:"Carico setup.md...",demoSeeding:"Carico la demo...",demoError:"Non riesco a caricare la demo."},how:{title:"Marvis governa il ciclo, non decide al posto tuo",subtitle:"La console locale mette in ordine lavoro, memoria e gate degli agenti.",localNote:"Tutto gira in locale sul tuo computer: niente cloud, niente login.",cards:{gate:{title:"Tu gate",body:"Decidi priorita' e approvi cio' che conta."},agents:{title:"Agenti eseguono",body:"Claude Code, Cursor, Codex e gli altri lavorano tramite Marvis."},brain:{title:"Brain digerisce",body:"Ogni notte trasforma lavoro e file in diario, memoria e contesto."},audit:{title:"Approvi con audit",body:"Ogni scelta lascia una traccia leggibile."}}},identity:{title:"Identita'",subtitle:"Servono solo nome operatore e spazio aziendale: il resto lo deriva l'agente.",demoNoticeTitle:"Demo precaricabile",demoNoticeBody:"Casa Lorenzi viene caricata solo alla fine, cosi' la console non parte vuota.",operatorLabel:"Operatore",operatorPlaceholder:"Il tuo nome",companyLabel:"Azienda / spazio",companyPlaceholder:"Es. Casa Lorenzi"},folder:{title:"Cartella di lavoro",subtitle:"Prima discovery meccanica, poi hand-off all'agente con marvis init.",rootLabel:"Root",rootPlaceholder:"/Users/nome/Work",exclusionsLabel:"Esclusioni esplicite",exclusionsPlaceholder:"_archive, node_modules, dist",scan:"Scansiona",rescan:"Riscansiona",found:"{count} cartelle trovate",selected:"{count} selezionate",confirm:"Conferma sorgenti",confirmed:"Sorgenti confermate",code:"code",noCode:"no-code",promptTitle:"Prompt per l'agente",promptHint:"Copia e incolla nel tuo agente dopo il wizard. La GUI non arricchisce i progetti da sola.",promptEmpty:"- nessuna cartella confermata",promptReadSetup:"Leggi setup.md via MCP Marvis.",promptRoot:"Root confermata",promptSources:"Cartelle da arricchire",promptExclusions:"Esclusioni esplicite",promptDerive:"Deriva progetti, programmi, relazioni e stato nella directory .marvis/. Non scrivere stato derivato in setup.md."},brain:{title:"Fonti del brain",subtitle:"Solo fonti locali in v1. Email, KB e gestionale restano Enterprise.",sourcesTitle:"Cosa puo' osservare",docs:"Documenti",docsHint:"PDF, fogli, brief e contratti locali.",repos:"Repo",reposHint:"Repository locali, branch e PR.",email:"Email",kb:"Knowledge base",enterpriseSoon:"Enterprise, presto",cycleLabel:"Ora ciclo notturno",cycleHint:"Il briefing e' pronto subito dopo il ciclo."},ready:{title:"Pronto",subtitle:"Setup onesto: cio' che segue e' config umana, non stato derivato.",recapTitle:"Recap",folders:"{count} cartelle confermate",sources:"{count} fonti locali attive",cycle:"Brain ogni notte alle {hour}",setupPreview:"Anteprima setup.md",initTitle:"Poi nel terminale",initBody:"Esegui marvis init: l'agente legge setup.md e indicizza i progetti.",demoTitle:"Demo Casa Lorenzi",demoBody:"Il tour usa dati demo eliminabili alla fine."}},tour:{label:"Tour Marvis",close:"Chiudi",next:"Avanti",back:"Indietro",clickToContinue:"Clicca il target",skip:"Salta",finalEyebrow:"Fine tour",clearDemo:"Elimina i dati demo",rerun:"Rifai il tour",keepDemo:"Tieni la demo",clearingDemo:"Elimino demo...",clearError:"Demo non eliminata",steps:{diario:{title:"Il Diario",body:"La home locale: ogni mattina il brain racconta avanzamenti, decisioni e cose che aspettano te."},cronologia:{title:"Cronologia",body:"La colonna laterale scorre i giorni passati senza cambiare contesto."},todos:{title:"Todos",body:"La coda unica di cio' che aspetta te: promemoria, decisioni, revisioni e approvazioni."},"todo-capture":{title:"Cattura",body:"Scrivi un promemoria al volo; Marvis lo collega al progetto quando il brain passa."},"todo-type":{title:"Tipi",body:"Ogni todo ha azioni coerenti con il tipo: approvare non e' uguale a completare."},"todo-approva":{title:"Approva",body:"Clicca Approva su un item reale: il tour avanza solo quando fai il gate."},"task-views":{title:"Viste Task",body:"Kanban, progetto e calendario sono tre letture dello stesso lavoro tracciato."},"task-card":{title:"Apri una task",body:"Clicca una task: il dettaglio si apre nel drawer."},"task-drawer":{title:"Dettaglio task",body:"Qui trovi cosa fare, scadenza, PR, note e cronologia."},"project-row":{title:"Apri progetto",body:"Clicca un progetto demo per entrare nella dashboard."},"project-dash":{title:"Dashboard progetto",body:"Stato, diario, decisioni, documenti e codice vivono nello stesso posto."},universe:{title:"Universe",body:"Il grafo collega progetti, documenti e codice."},capture:{title:"Cattura rapida",body:"La sidebar resta disponibile da ogni schermata."},theme:{title:"Tema",body:"Passa tra chiaro e scuro quando ti serve."},locale:{title:"Locale",body:"Cambia lingua della console senza riavviare."},final:{title:"Fine del giro",body:"Puoi tenere la demo, eliminarla o rifare il tour."}}},emptyStates:{todos:{title:"Todos in arrivo",body:"La superficie Todos sara' collegata al backend nel prossimo PR. Per ora la cattura rapida resta uno stub onesto.",action:"Usa la cattura rapida dalla sidebar"},universe:{title:"Grafo vuoto",body:"Il grafo reale e' montato, ma non ci sono progetti indicizzati da mostrare.",action:"Apri Progetti o indicizza un progetto locale"}},graph:{loading:"Caricamento grafo...",emptyTitle:"Grafo vuoto",emptyBody:"Il grafo reale e' montato, ma non ci sono progetti indicizzati da mostrare.",emptyAction:"Apri Progetti o indicizza un progetto locale",lenses:{cosmoDesc:"satelliti per progetto",codexDesc:"codice \xb7 moduli \xb7 funzioni"}},taskSurface:{title:"Task",subtitle:"Unita' di lavoro tracciate con ciclo reale, scadenze, review e follow-up.",loading:"Caricamento task...",error:"Non riesco a caricare le task.",empty:"Nessuna task per questi filtri.",retry:"Riprova",views:{kanban:"Kanban",project:"Per progetto",calendar:"Calendario"},filters:{all:"Tutti",search:"Cerca",searchPlaceholder:"Cerca nel titolo o nella descrizione...",searchPanel:"Cerca / filtra",projectResults:"progetti",program:"Programma",scope:"Ambito",type:"Tipo",ownerAll:"Tutti",ownerAgent:"Agenti",ownerHuman:"Tu",work:"Lavoro",personal:"Personale",code:"Code",noCode:"No-code",remove:"Rimuovi filtro"},columns:{approved:"Da fare",in_progress:"In corso",review:"Da approvare",completed:"Fatto",rejected:"Rifiutati"},card:{due:"Scadenza",noDue:"Nessuna data",human:"Tu",agent:"Agente",ease:"velocita'",impact:"impatto",pr:"PR"},drawer:{descriptionTitle:"Cosa c'e' da fare",warningPrefix:"Attenzione a",dueTitle:"Scadenza",postpone:"Posticipa",newDate:"Nuova data",confirm:"Conferma",cancel:"Annulla",iceTitle:"ICE-D",prTitle:"Pull request",diffLink:"Vedi diff",dependencies:"Dipendenze",blockedBy:"Bloccata da",notes:"Note",notesHelper:"L'agente puo' leggerle",notePlaceholder:"Scrivi una nota...",addNote:"Aggiungi nota",timeline:"Cronologia",created:"Creata",updated:"Aggiornata",comments:"commenti",noDescription:"Nessuna descrizione strutturata. Mostro il testo originale.",feedbackPlaceholder:"Perche' la rimandi?"},actions:{start:"Avvia",send_review:"Manda in revisione",complete:"Completa",approve:"Approva",return:"Rimanda",reopen:"Riapri"},followUp:{title:"Task completata",body:"Vuoi aprire una task di follow-up?",field:"Titolo del follow-up",create:"Crea follow-up",skip:"No, grazie",prefix:"Follow-up:"}},todos:{title:"Todos",subtitle:"Coda unica di cio' che aspetta te: intenzioni leggere, gate agentici e follow-up.",capturePlaceholder:"Scrivi un todo, una decisione o un promemoria...",captureSubmit:"Aggiungi",captureSaving:"Aggiungo...",loading:"Caricamento todos...",error:"Non riesco a caricare i todos.",retry:"Riprova",empty:"Nessun todo per questi filtri.",personal:"Personale",assign:"Assegna",assignProject:"Slug progetto",save:"Salva",cancel:"Annulla",originBadge:"virtuale",doerHuman:"solo tu",doerAgent:"delegabile",gateHint:"Si risolve dal dettaglio",heuristic:{label:"classificazione di base",tooltip:"Tipo e progetto sono stati stimati con regole di base (euristica), non dalla classificazione avanzata. Collega una chiave LLM per attivare quella avanzata.",drawerNote:"Tipo e progetto stimati con la classificazione di base (euristica)."},filters:{all:"Tutti",decisions:"Da decidere",promemoria:"Promemoria",idea:"Idee",brain:"Dal brain",completati:"Completati"},horizons:{overdue:"In ritardo",today:"Oggi",tomorrow:"Domani",week:"Questa settimana",later:"Piu' avanti"},types:{promemoria:"Promemoria",azione:"Azione",idea:"Idea",decidi:"Decidi",approva:"Approva",rivedi:"Rivedi"},sources:{user:"tu",agent:"agente",brain:"brain"},actions:{complete:"Completa",discard:"Scarta",postpone:"Posticipa",delegate:"Delega",promote:"Promuovi",confirm:"Conferma",revise:"Modifica",approve:"Approva",reject:"Rifiuta",review:"Rivedi",feedback:"Feedback",sendFeedback:"Invia feedback"},captions:{captured:"Aggiunto: tipo e progetto vengono stimati automaticamente quando possibile.",completed:"fatto, audit registrato",discarded:"scartato, audit registrato",postponed:"posticipato alla prossima finestra",delegated:"ora e' un Task",promoted:"ora e' un Task idea",decided:"decisione registrata, ADR scritto",revise:"in revisione: l'agente riprende il contesto al prossimo brief",approved:"l'agente applica (audit registrato)",rejected:"rifiutato, feedback registrato",reviewing:"aperto in revisione",feedback:"feedback pronto per l'agente",reassigned:"progetto aggiornato",operatorSession:"richiede sessione operatore",actionFailed:"azione non riuscita"},drawer:{close:"Chiudi todo",metaTitle:"Dettagli",contextTitle:"Contesto",payloadTitle:"Payload",taskReview:"Task in review",finding:"Finding brain",memoryOperation:"Operazione memoria",branch:"branch",status:"stato",summary:"sintesi",evidence:"prove",proposedWrite:"scrittura proposta",noPayload:"Nessun payload strutturato.",feedbackPlaceholder:"Scrivi il motivo..."},decision:{title:"Registra la decisione",sceltaPlaceholder:"La decisione presa (obbligatorio)",rationalePlaceholder:"Perche' questa scelta (opzionale)",opzioniPlaceholder:"Opzioni considerate, una per riga (opzionale)",submit:"Registra decisione"}},llmSettings:{title:"Provider LLM",subtitle:"Collega la chiave del tuo provider per attivare la classificazione automatica avanzata dei todo. La chiave resta sul server e non viene mai mostrata in chiaro.",eyebrow:"Impostazioni",loading:"Caricamento configurazione...",loadError:"Non riesco a caricare la configurazione LLM.",retry:"Riprova",runtimeNote:"La chiave viene usata subito, ad ogni classificazione: nessun riavvio necessario.",status:{title:"Classificazione automatica",configured:"Attiva",disabled:"Non attiva (nessun provider)"},keys:{title:"Chiavi provider",empty:"Nessuna chiave provider configurata.",provider:"Provider",label:"Etichetta",prefix:"Prefisso",statusLabel:"Stato",statusSet:"impostata",statusNone:"nessuna",statusUnreadable:"non leggibile",delete:"Elimina",deleting:"Elimino...",deleteConfirm:"Eliminare questa chiave provider?",noLabel:"(nessuna etichetta)"},addKey:{title:"Aggiungi chiave provider",provider:"Provider",apiKey:"Chiave API",apiKeyPlaceholder:"sk-...",apiKeyOptional:"Opzionale per Ollama e Mac Gateway (non richiedono chiave).",baseUrl:"URL base",baseUrlPlaceholder:"https://...",labelField:"Etichetta",labelPlaceholder:"Es. OpenAI personale",submit:"Aggiungi chiave",submitting:"Aggiungo...",success:"Chiave aggiunta.",apiKeyRequired:"Questo provider richiede una chiave API.",encryptionMissing:"La cifratura lato server non e' configurata: l'amministratore deve impostare la variabile d'ambiente BYOK_FERNET_SECRET e riavviare.",genericError:"Non riesco ad aggiungere la chiave."},classify:{title:"Provider per la classificazione",explain:"Attivando un provider per la classificazione, i todo usano la classificazione automatica avanzata (e l'avviso sparisce).",providerKey:"Chiave provider",providerKeyNone:"Nessuna (disattiva)",noKeysHint:"Aggiungi prima una chiave provider qui sopra.",model:"Modello",modelPlaceholder:"Es. gpt-4o-mini",enabled:"Attiva",save:"Salva",saving:"Salvo...",saved:"Configurazione salvata.",saveError:"Non riesco a salvare la configurazione."}},projects:{navigator:{search:"Cerca progetto...",loading:"Carico progetti...",empty:"Nessun progetto trovato.",count:"progetti",collapse:"Comprimi programma",expand:"Espandi programma"},overview:{title:"Progetti",subtitle:"Programmi e progetti locali indicizzati dal brain.",openTasks:"task aperti",progressTooltip:"Completate / totali, escluse le rifiutate",empty:"Nessun progetto disponibile."},dashboard:{breadcrumbRoot:"Progetti",loading:"Carico progetto...",error:"Non riesco a caricare il progetto.",back:"Torna ai progetti",color:"Colore progetto",colorSaved:"Colore aggiornato",colorReset:"Colore ripristinato",colorError:"Non riesco ad aggiornare il colore.",resetColor:"Ripristina",headerTaskButton:"Task",code:"Code",noCode:"No-code",personal:"Personale",work:"Lavoro",status:"Stato",statusCaption:"si aggiorna via agente",pulseOpen:"Task aperti",pulseReview:"Da approvare",pulseProgress:"Avanzamento",pulseProgressTooltip:"Completate / totali, escluse le rifiutate",diary:"Diario del progetto",diarySource:"scritto dal brain \xb7 ciclo notturno 03:00",diaryEmpty:"Il brain non ha ancora scritto su questo progetto.",decisions:"Decisioni",decisionsPath:"docs/decisions/",current:"in vigore",superseded:"superata",decisionsEmpty:"Nessun ADR trovato in docs/decisions/.",questions:"Questioni aperte",questionsEmpty:"Nessuna questione aperta dal diario.",addTodo:"Aggiungi ai todos",addedTodo:"Aggiunto ai todos",todoError:"Non riesco ad aggiungere il todo.",brain:"Cosa sa il brain",brainSource:"learnings reali filtrati per progetto",brainEmpty:"Nessun learning indicizzato per questo progetto.",docs:"Documenti & file",docsCodeCaption:"Solo documenti del repo. Il codice vive in Codex.",viewAllDocs:"Vedi tutti i {count}",docsEmpty:"Nessun documento trovato.",relations:"Relazioni progetto-progetto",relationRelated:"collegato",relationDepends:"dipende da",addRelation:"Collega",removeRelation:"Rimuovi",relationSaved:"Relazione salvata",relationRemoved:"Relazione rimossa",relationError:"Non riesco ad aggiornare la relazione.",more:"+{count}",collapse:"comprimi",codePanel:"Codice \xb7 Codex",codeBanner:"Il codice sorgente vive in Codex.",branch:"Branch",pullRequests:"PR",noPullRequests:"Nessuna PR collegata alle task."},docsModal:{title:"Documenti & file",search:"Cerca un documento...",all:"Tutti",open:"Apri",empty:"Nessun documento trovato."},editor:{preview:"Anteprima",edit:"Modifica",save:"Salva",saving:"Salvo...",saved:"Documento salvato",loadError:"Non riesco a leggere il file.",saveError:"Non riesco a salvare il file.",unsupported:"Anteprima non disponibile per questo formato in questa vista.",close:"Chiudi"}},diario:{loading:"diario \xb7 carico journal e run",pastBanner:"Stai sfogliando un diario passato.",todayFallback:"Oggi",projectFallback:"Senza progetto",sections:{narrative:"Narrativa",decisions:"Da decidere",progress:"Avanzamenti",context:"Contesto"},narrative:{fallbackCaption:"Sintesi base: collega il brain per la narrazione completa.",emptyFallback:"Il brain ha prodotto un diario senza narrativa leggibile."},snapshot:{projectsTouched:"Progetti toccati",noProjects:"nessuno",decisions:"decisioni",progress:"avanzamenti",context:"contesto"},actions:{addTodo:"Aggiungi ai todos",delegate:"Delega a un agente",adding:"Aggiungo...",delegating:"Delego...",added:"Aggiunto ai todos",delegated:"Delegato",error:"Azione non riuscita"},progress:{changePrefix:"Cambio",decisionPrefix:"Decisione"},timeline:{label:"Cronologia diario",today:"Torna a oggi"},limit:{quietTitle:"Giornata tranquilla",quietBody:"Il brain ha girato, ma non ha trovato attivita' rilevante da mostrarti.",notRunTitle:"Il brain non ha girato",notRunBody:"Nessun ciclo risulta per questa giornata. Succede se il computer era spento o il ciclo notturno non e' partito.",openLatest:"Apri l'ultimo diario",runNow:"Esegui il brain ora",runningNow:"Brain in esecuzione",polling:"Controllo lo stato ogni 5 secondi.",alreadyRunning:"Ciclo gia' in corso.",runError:"Non riesco ad avviare il brain.",cycleCompleted:"Ciclo completato — copre {window} UTC.",openCycleDay:"Apri il diario del {day}",runTimeout:"Il brain non ha risposto in tempo. Riprova."},error:{title:"Diario non disponibile",body:"Non riesco a leggere il diario in questo momento."}}}};function s(e){var o;let a=null!=(o=null==e?void 0:e.toLowerCase())?o:"";return a.startsWith("it")?"it":(a.startsWith("en"),"en")}function l(){let[e,o]=(0,t.useState)("en");(0,t.useEffect)(()=>{function e(){o(function(){try{let e=window.localStorage.getItem(i);return s(e||window.navigator.language)}catch(e){return s(window.navigator.language)}}())}return e(),window.addEventListener(r,e),window.addEventListener("storage",e),()=>{window.removeEventListener(r,e),window.removeEventListener("storage",e)}},[]);let a=(0,t.useCallback)(e=>{o(e);try{window.localStorage.setItem(i,e)}catch(e){}window.dispatchEvent(new Event(r))},[]);return{t:n[e],locale:e,setLocale:a}}}}]);