marvisx-cli 0.3.9b2__tar.gz → 0.3.9b4__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 (884) hide show
  1. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/PKG-INFO +1 -1
  2. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/404/index.html +1 -1
  3. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/404.html +1 -1
  4. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/chunks/3146-1e63111660c71af2.js +1 -0
  5. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/chunks/4281-423f638b0c133fd2.js +1 -0
  6. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/chunks/960-ea37433a364ca660.js +1 -0
  7. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/chunks/app/(app)/diario/page-b1583039b0fc40ab.js +1 -0
  8. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/chunks/app/(app)/layout-7409b0c4a0a5a26c.js +1 -0
  9. marvisx_cli-0.3.9b2/core/api/console_dist/_next/static/chunks/app/(app)/projects/page-674bd7855b764614.js → marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/chunks/app/(app)/projects/page-ed1e9fb3cf1d7d85.js +1 -1
  10. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/chunks/app/(app)/tasks/page-fe164bb56947d25c.js +1 -0
  11. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/chunks/app/(app)/todos/page-28708d997bc5894e.js +1 -0
  12. marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/css/b414d34cce79812b.css +3 -0
  13. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/brain/cronologia/index.html +1 -1
  14. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/brain/cronologia/index.txt +3 -3
  15. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/brain/da-decidere/index.html +1 -1
  16. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/brain/da-decidere/index.txt +4 -4
  17. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/brain/diario/index.html +1 -1
  18. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/brain/diario/index.txt +3 -3
  19. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/brain/index.html +1 -1
  20. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/brain/index.txt +3 -3
  21. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/brain/memoria/index.html +1 -1
  22. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/brain/memoria/index.txt +4 -4
  23. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/brain/stride/index.html +1 -1
  24. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/brain/stride/index.txt +3 -3
  25. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/diario/index.html +1 -1
  26. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/diario/index.txt +4 -4
  27. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/finder/index.html +1 -1
  28. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/finder/index.txt +4 -4
  29. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/graph/index.html +1 -1
  30. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/graph/index.txt +4 -4
  31. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/graph/pr-impact/index.html +1 -1
  32. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/graph/pr-impact/index.txt +4 -4
  33. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/inbox/index.html +1 -1
  34. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/inbox/index.txt +4 -4
  35. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/inbox/triage/files/index.html +1 -1
  36. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/inbox/triage/files/index.txt +4 -4
  37. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/index.html +1 -1
  38. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/index.txt +3 -3
  39. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/login/index.html +1 -1
  40. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/login/index.txt +3 -3
  41. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/login/sso-callback/index.html +1 -1
  42. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/login/sso-callback/index.txt +3 -3
  43. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/monitoring/index.html +1 -1
  44. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/monitoring/index.txt +4 -4
  45. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/projects/detail/index.html +1 -1
  46. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/projects/detail/index.txt +4 -4
  47. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/projects/index.html +1 -1
  48. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/projects/index.txt +4 -4
  49. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/settings/activity/index.html +1 -1
  50. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/settings/activity/index.txt +6 -6
  51. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/settings/general/index.html +1 -1
  52. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/settings/general/index.txt +6 -6
  53. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/settings/tags/index.html +1 -1
  54. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/settings/tags/index.txt +6 -6
  55. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/settings/teams/detail/index.html +1 -1
  56. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/settings/teams/detail/index.txt +6 -6
  57. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/settings/teams/index.html +1 -1
  58. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/settings/teams/index.txt +6 -6
  59. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/settings/tokens/index.html +2 -2
  60. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/settings/tokens/index.txt +5 -5
  61. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/settings/users/index.html +1 -1
  62. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/settings/users/index.txt +6 -6
  63. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/settings/workspace/index.html +1 -1
  64. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/settings/workspace/index.txt +6 -6
  65. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/tasks/index.html +1 -1
  66. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/tasks/index.txt +4 -4
  67. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/terminal/index.html +1 -1
  68. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/terminal/index.txt +3 -3
  69. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/todos/index.html +1 -1
  70. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/todos/index.txt +4 -4
  71. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/triage/index.html +1 -1
  72. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/triage/index.txt +4 -4
  73. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/universe/index.html +1 -1
  74. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/universe/index.txt +4 -4
  75. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/welcome/index.html +1 -1
  76. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/welcome/index.txt +2 -2
  77. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/db.py +69 -8
  78. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/projects.py +5 -5
  79. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/graph_cosmo_service.py +5 -1
  80. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/tmux.py +16 -2
  81. marvisx_cli-0.3.9b4/core/api/services/todos/adr.py +222 -0
  82. marvisx_cli-0.3.9b4/core/api/services/todos/heuristics.py +201 -0
  83. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_tmux.py +28 -0
  84. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/use_cases/projects.py +37 -8
  85. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/use_cases/todos.py +84 -5
  86. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/visibility.py +8 -0
  87. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/marvisx_cli.egg-info/PKG-INFO +1 -1
  88. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/marvisx_cli.egg-info/SOURCES.txt +15 -11
  89. marvisx_cli-0.3.9b4/migrations/154_drop_legacy_project_dirs_default.sql +10 -0
  90. marvisx_cli-0.3.9b4/migrations/154_drop_legacy_project_dirs_default_down.sql +6 -0
  91. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/pyproject.toml +1 -1
  92. marvisx_cli-0.3.9b2/core/api/console_dist/_next/static/chunks/3146-54c9a71a01f9d205.js +0 -1
  93. marvisx_cli-0.3.9b2/core/api/console_dist/_next/static/chunks/4281-6320c69ff831729a.js +0 -1
  94. marvisx_cli-0.3.9b2/core/api/console_dist/_next/static/chunks/960-5fe67e5c1f644da4.js +0 -1
  95. marvisx_cli-0.3.9b2/core/api/console_dist/_next/static/chunks/app/(app)/diario/page-20f893d662447a8f.js +0 -1
  96. marvisx_cli-0.3.9b2/core/api/console_dist/_next/static/chunks/app/(app)/layout-fa33ae074a5966f5.js +0 -1
  97. marvisx_cli-0.3.9b2/core/api/console_dist/_next/static/chunks/app/(app)/tasks/page-ab86c1b0d6c7e17d.js +0 -1
  98. marvisx_cli-0.3.9b2/core/api/console_dist/_next/static/chunks/app/(app)/todos/page-6ccb15bdff3050d4.js +0 -1
  99. marvisx_cli-0.3.9b2/core/api/console_dist/_next/static/css/48fb03de4f747e34.css +0 -3
  100. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/LICENSE +0 -0
  101. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/MANIFEST.in +0 -0
  102. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/README.md +0 -0
  103. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/__init__.py +0 -0
  104. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/agents/__init__.py +0 -0
  105. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/agents/session_health.py +0 -0
  106. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/agents/session_manager.py +0 -0
  107. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/bin/marvisx-state-hook.py +0 -0
  108. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/config.py +0 -0
  109. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_headers +0 -0
  110. {marvisx_cli-0.3.9b2/core/api/console_dist/_next/static/-MWhMs_DzvgduGQXekcBh → marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/_qWuIWH6LnWDsr6q253TF}/_buildManifest.js +0 -0
  111. {marvisx_cli-0.3.9b2/core/api/console_dist/_next/static/-MWhMs_DzvgduGQXekcBh → marvisx_cli-0.3.9b4/core/api/console_dist/_next/static/_qWuIWH6LnWDsr6q253TF}/_ssgManifest.js +0 -0
  112. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/1167.56964d4357d212b4.js +0 -0
  113. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/1224.65b4107adf5cb0b2.js +0 -0
  114. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/1255-a122635a4d00ff55.js +0 -0
  115. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/1831-97a6930096ac20ba.js +0 -0
  116. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/1936.c58ae480ebdd6212.js +0 -0
  117. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/2349-cb9d15daee7a0d0c.js +0 -0
  118. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/2582-e29b5abf7233c8a7.js +0 -0
  119. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/2619-3c9e02e22d10480a.js +0 -0
  120. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/2730.8905bd392be7d6c8.js +0 -0
  121. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/2830-ca1e7f2af92dc8cd.js +0 -0
  122. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/3196.1f17feceb62a90d1.js +0 -0
  123. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/3536-f40f752bd58947b2.js +0 -0
  124. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/363642f4.51720966c931df2a.js +0 -0
  125. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/3685.2166187595b1308c.js +0 -0
  126. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/3782-9aa8ad62e30d3637.js +0 -0
  127. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/3953.3efa521f4e9b926a.js +0 -0
  128. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/4879-e5fdfbbbcf9e18e0.js +0 -0
  129. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/4bd1b696-f785427dddbba9fb.js +0 -0
  130. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/504.1289e0e995df2db7.js +0 -0
  131. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/5344-d91a24b075f21e36.js +0 -0
  132. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/54a60aa6.f2bac6fcd6436529.js +0 -0
  133. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/6429.c373590bc136fd9b.js +0 -0
  134. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/6485.653eb88dc226390d.js +0 -0
  135. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/70e0d97a.99a5d98b36f4c1d1.js +0 -0
  136. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/7898.48a1d7021540e048.js +0 -0
  137. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/8730.5e2ea76eff6648e0.js +0 -0
  138. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/8850.a338126091e12ca0.js +0 -0
  139. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/8872.18fc42f6c0e2e05d.js +0 -0
  140. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/9174-7352c096560eb0b2.js +0 -0
  141. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/9260-47dba8e5326b7d90.js +0 -0
  142. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/977.79f9713e4dd962be.js +0 -0
  143. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/brain/cronologia/page-9e7215b8ab2824d4.js +0 -0
  144. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/brain/da-decidere/page-d2edf9b70cbfaea4.js +0 -0
  145. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/brain/diario/page-0dcf9645e229d568.js +0 -0
  146. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/brain/layout-20e2e8b971a21371.js +0 -0
  147. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/brain/memoria/page-d837112b04d3ddd1.js +0 -0
  148. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/brain/page-d5d782d1290aa2f5.js +0 -0
  149. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/brain/stride/page-9067d05ceff5fbc0.js +0 -0
  150. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/finder/page-56f654046dc1e234.js +0 -0
  151. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/graph/page-601be0e5ea31a4e6.js +0 -0
  152. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/graph/pr-impact/page-15d3bcc06fca2ad4.js +0 -0
  153. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/inbox/page-55bf6b17337d4e07.js +0 -0
  154. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/inbox/triage/files/page-93334ecd190891fa.js +0 -0
  155. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/monitoring/page-906a9e2d30559363.js +0 -0
  156. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/page-821bbc902ed943b7.js +0 -0
  157. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/projects/detail/page-6fe9ecffd4d6e43d.js +0 -0
  158. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/settings/activity/page-067c23efcc643bc3.js +0 -0
  159. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/settings/general/page-24800070c127b772.js +0 -0
  160. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/settings/layout-5af816412ec1efd2.js +0 -0
  161. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/settings/tags/page-16b4c9bd3412becb.js +0 -0
  162. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/settings/teams/detail/page-45830809172c8b07.js +0 -0
  163. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/settings/teams/page-7b6c65c4e7f563f0.js +0 -0
  164. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/settings/tokens/page-b2f9e9978756ebde.js +0 -0
  165. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/settings/users/page-c9b2deda86b37089.js +0 -0
  166. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/settings/workspace/page-10d01f62c6e50368.js +0 -0
  167. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/terminal/page-227a70a89c536002.js +0 -0
  168. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/triage/page-383e96f0540bf5eb.js +0 -0
  169. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(app)/universe/page-ddb4e75a79daa4f4.js +0 -0
  170. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(welcome)/layout-227a70a89c536002.js +0 -0
  171. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/(welcome)/welcome/page-28e3766f5571f69a.js +0 -0
  172. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/_not-found/page-88bdbe882c0ecf30.js +0 -0
  173. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/layout-6898769151251321.js +0 -0
  174. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/login/page-73b237e6e769d749.js +0 -0
  175. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/app/login/sso-callback/page-c287d7f9b76060d9.js +0 -0
  176. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/ba16dcd3.3d61b93c641c7ff1.js +0 -0
  177. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/d0709137.05f318d692f5ffd6.js +0 -0
  178. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/framework-e60c938074ff7136.js +0 -0
  179. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/main-57baee16398f4eca.js +0 -0
  180. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/main-app-8eb58590bd33c22b.js +0 -0
  181. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/pages/_app-6c8c2371b16a04b8.js +0 -0
  182. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/pages/_error-94812ad32cad7365.js +0 -0
  183. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/polyfills-42372ed130431b0a.js +0 -0
  184. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/chunks/webpack-eb4202bb8f321e36.js +0 -0
  185. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/css/1bf4906983b62b81.css +0 -0
  186. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/css/605fd8d4b965ab60.css +0 -0
  187. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/media/0a73eaad36fca508-s.woff2 +0 -0
  188. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/media/15e555873b2c38f2-s.woff2 +0 -0
  189. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/media/3f552249f03de128-s.woff2 +0 -0
  190. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/media/558ca1a6aa3cb55e-s.p.woff2 +0 -0
  191. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/media/64d784ea54a4acde-s.woff2 +0 -0
  192. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/media/6b2b1f51776cc4fb-s.woff2 +0 -0
  193. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/media/6d831b18ae5b01dc-s.woff2 +0 -0
  194. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/media/86892bc41b523ae7-s.woff2 +0 -0
  195. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/media/964acd21874711e6-s.woff2 +0 -0
  196. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/media/a31f6539c570f5f4-s.p.woff2 +0 -0
  197. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/media/ac0e76ddaeeb7981-s.woff2 +0 -0
  198. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/media/c8db6d45c695a7ab-s.woff2 +0 -0
  199. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/media/cd5bec9268da5b8d-s.p.woff2 +0 -0
  200. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/media/e967e3e11e121e1e-s.woff2 +0 -0
  201. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/media/edc640959b0c7826-s.woff2 +0 -0
  202. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_next/static/media/ff71da380fbe67dd-s.woff2 +0 -0
  203. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/_redirects +0 -0
  204. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/app-icon.svg +0 -0
  205. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/bot-mark-dark.svg +0 -0
  206. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/bot-mark.svg +0 -0
  207. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/favicon-16.svg +0 -0
  208. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/favicon-32.svg +0 -0
  209. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/favicon.svg +0 -0
  210. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/fonts/Exo2-Italic-VariableFont_wght.ttf +0 -0
  211. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/fonts/Exo2-VariableFont_wght.ttf +0 -0
  212. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/fonts/OFL.txt +0 -0
  213. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/icons/icon-192.png +0 -0
  214. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/icons/icon-512.png +0 -0
  215. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/icons/maskable-512.png +0 -0
  216. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/logo-lockup.svg +0 -0
  217. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/logo-mark.svg +0 -0
  218. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/manifest.webmanifest +0 -0
  219. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/console_dist/sw.js +0 -0
  220. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/dependencies/__init__.py +0 -0
  221. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/dependencies/tenant.py +0 -0
  222. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/main.py +0 -0
  223. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/__init__.py +0 -0
  224. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/_adapter.py +0 -0
  225. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/server.py +0 -0
  226. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/stdio.py +0 -0
  227. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/tools/__init__.py +0 -0
  228. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/tools/brain.py +0 -0
  229. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/tools/graph.py +0 -0
  230. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/tools/handoffs.py +0 -0
  231. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/tools/ingest.py +0 -0
  232. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/tools/learnings.py +0 -0
  233. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/tools/onboarding.py +0 -0
  234. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/tools/projects.py +0 -0
  235. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/tools/pull_requests.py +0 -0
  236. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/tools/safety.py +0 -0
  237. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/tools/search.py +0 -0
  238. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/tools/tasks.py +0 -0
  239. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/tools/todos.py +0 -0
  240. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/tools/workflow_playbooks/brainstorm.md +0 -0
  241. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/tools/workflow_playbooks/compound.md +0 -0
  242. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/tools/workflow_playbooks/plan.md +0 -0
  243. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/mcp/tools/workflows.py +0 -0
  244. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/middleware/__init__.py +0 -0
  245. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/middleware/tool_call_audit.py +0 -0
  246. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/__init__.py +0 -0
  247. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/auth.py +0 -0
  248. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/brain.py +0 -0
  249. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/common.py +0 -0
  250. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/costs.py +0 -0
  251. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/graph.py +0 -0
  252. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/graph_cosmo.py +0 -0
  253. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/graph_pr_impact.py +0 -0
  254. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/graph_ux.py +0 -0
  255. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/inbox.py +0 -0
  256. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/ingest_keys.py +0 -0
  257. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/kg.py +0 -0
  258. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/llm_config.py +0 -0
  259. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/monitoring.py +0 -0
  260. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/onboarding.py +0 -0
  261. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/projects.py +0 -0
  262. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/search.py +0 -0
  263. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/sessions.py +0 -0
  264. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/tasks.py +0 -0
  265. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/teams.py +0 -0
  266. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/todos.py +0 -0
  267. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/models/users.py +0 -0
  268. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/observability/__init__.py +0 -0
  269. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/observability/tracing.py +0 -0
  270. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/paths.py +0 -0
  271. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/rate_limit.py +0 -0
  272. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/rbac.py +0 -0
  273. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/__init__.py +0 -0
  274. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/_adapter.py +0 -0
  275. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/admin_pr_impact.py +0 -0
  276. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/admin_settings.py +0 -0
  277. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/agent.py +0 -0
  278. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/agent_tokens.py +0 -0
  279. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/app_settings.py +0 -0
  280. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/audit.py +0 -0
  281. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/auth.py +0 -0
  282. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/bench.py +0 -0
  283. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/brain.py +0 -0
  284. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/brain_directions.py +0 -0
  285. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/ci_checks.py +0 -0
  286. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/comments.py +0 -0
  287. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/costs.py +0 -0
  288. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/delegations.py +0 -0
  289. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/docs_coverage.py +0 -0
  290. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/docs_governance.py +0 -0
  291. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/documents.py +0 -0
  292. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/files.py +0 -0
  293. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/finder.py +0 -0
  294. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/graph.py +0 -0
  295. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/handoffs.py +0 -0
  296. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/inbox.py +0 -0
  297. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/ingest_api_keys.py +0 -0
  298. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/ingest_triage.py +0 -0
  299. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/judge.py +0 -0
  300. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/kg.py +0 -0
  301. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/learnings.py +0 -0
  302. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/llm_config.py +0 -0
  303. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/monitoring.py +0 -0
  304. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/notifications.py +0 -0
  305. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/onboarding.py +0 -0
  306. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/pr_impact.py +0 -0
  307. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/pull_requests.py +0 -0
  308. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/push.py +0 -0
  309. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/raci.py +0 -0
  310. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/search.py +0 -0
  311. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/sessions.py +0 -0
  312. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/settings.py +0 -0
  313. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/share_repo.py +0 -0
  314. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/status_updates.py +0 -0
  315. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/tags.py +0 -0
  316. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/tasks.py +0 -0
  317. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/teams.py +0 -0
  318. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/terminal.py +0 -0
  319. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/todos.py +0 -0
  320. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/users.py +0 -0
  321. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/routers/webhooks.py +0 -0
  322. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/runtime_settings.py +0 -0
  323. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/security.py +0 -0
  324. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/__init__.py +0 -0
  325. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/_fts.py +0 -0
  326. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/audit.py +0 -0
  327. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/auto_approval.py +0 -0
  328. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/__init__.py +0 -0
  329. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/baseline.py +0 -0
  330. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/capabilities.py +0 -0
  331. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/cascade_rollup.py +0 -0
  332. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/compound_bridge.py +0 -0
  333. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/cycle.py +0 -0
  334. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/cycle_snapshot.py +0 -0
  335. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/digest_collector.py +0 -0
  336. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/direction.py +0 -0
  337. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/drift.py +0 -0
  338. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/drift_router.py +0 -0
  339. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/edge_metrics.py +0 -0
  340. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/events_reader.py +0 -0
  341. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/findings.py +0 -0
  342. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/findings_reader.py +0 -0
  343. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/jobs.py +0 -0
  344. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/journal.py +0 -0
  345. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/knowledge_forms.py +0 -0
  346. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/llm/__init__.py +0 -0
  347. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/llm/_runner.py +0 -0
  348. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/llm/base.py +0 -0
  349. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/llm/cache.py +0 -0
  350. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/llm/claude_cli.py +0 -0
  351. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/llm/constants.py +0 -0
  352. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/llm/direction_alignment.py +0 -0
  353. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/llm/factory.py +0 -0
  354. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/llm/finding_reasoning.py +0 -0
  355. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/llm/finding_summary.py +0 -0
  356. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/llm/grounding.py +0 -0
  357. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/llm/journal_polish.py +0 -0
  358. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/llm/local_gateway.py +0 -0
  359. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/llm/parsers.py +0 -0
  360. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/llm/router_glue.py +0 -0
  361. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/manual_run.py +0 -0
  362. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/memory_ops.py +0 -0
  363. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/models.py +0 -0
  364. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/owner_hint.py +0 -0
  365. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/recap.py +0 -0
  366. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/rules/__init__.py +0 -0
  367. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/rules/_signals.py +0 -0
  368. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/rules/dr1_activity_without_status.py +0 -0
  369. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/rules/dr2_decision_without_adr.py +0 -0
  370. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/rules/dr3_stale_open_loop.py +0 -0
  371. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/rules/dr4_docs_governance_drift.py +0 -0
  372. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/rules/dr5_playbook_changed.py +0 -0
  373. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/rules/dr6_external_update_unpropagated.py +0 -0
  374. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/rules/dr7_claimed_decision_gap.py +0 -0
  375. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/rules/dr8_direction_misalignment.py +0 -0
  376. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/runs_reader.py +0 -0
  377. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/scope.py +0 -0
  378. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/sources/__init__.py +0 -0
  379. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/sources/base.py +0 -0
  380. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/sources/git_kg.py +0 -0
  381. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/sources/handoffs.py +0 -0
  382. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/sources/ingestor.py +0 -0
  383. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/sources/learnings.py +0 -0
  384. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/sources/pir_tasks.py +0 -0
  385. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/temporal_recency.py +0 -0
  386. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/warehouse_consolidate.py +0 -0
  387. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/watermarks.py +0 -0
  388. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/brain/ws_emitter.py +0 -0
  389. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/cc_tasks_reader.py +0 -0
  390. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/chunking.py +0 -0
  391. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ci_service.py +0 -0
  392. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/claude_metrics.py +0 -0
  393. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/codex_metrics.py +0 -0
  394. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/conversation_reader.py +0 -0
  395. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/cost_service.py +0 -0
  396. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/crypto.py +0 -0
  397. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/docs_governance/__init__.py +0 -0
  398. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/docs_governance/confidence.py +0 -0
  399. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/docs_governance/config.py +0 -0
  400. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/docs_governance/enrichment.py +0 -0
  401. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/docs_governance/frontmatter_validator.py +0 -0
  402. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/docs_governance/hard_gates.py +0 -0
  403. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/docs_governance/triage_orchestrator.py +0 -0
  404. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/dream_cycle.py +0 -0
  405. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/embedding_backends/__init__.py +0 -0
  406. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/embedding_internal.py +0 -0
  407. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/embedding_service.py +0 -0
  408. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/event_dispatcher.py +0 -0
  409. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/events.py +0 -0
  410. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/git_ops.py +0 -0
  411. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/graph_ranker.py +0 -0
  412. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/graph_service.py +0 -0
  413. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/grounding/__init__.py +0 -0
  414. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/grounding/citations.py +0 -0
  415. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/grounding/verifier.py +0 -0
  416. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/inbox.py +0 -0
  417. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/inbox_digest.py +0 -0
  418. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/inbox_digest_deep_research.py +0 -0
  419. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/inbox_digest_jobs.py +0 -0
  420. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/inbox_gmail_sync.py +0 -0
  421. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/inbox_llm_classifier.py +0 -0
  422. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/inbox_source_identity.py +0 -0
  423. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/inbox_sources.py +0 -0
  424. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/inbox_taxonomy.py +0 -0
  425. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/inbox_tldr.py +0 -0
  426. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/inbox_triage.py +0 -0
  427. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/__init__.py +0 -0
  428. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/api_key_auth.py +0 -0
  429. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/auto_approve.py +0 -0
  430. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/classifier.py +0 -0
  431. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/confidence.py +0 -0
  432. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/dispatch.py +0 -0
  433. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/embedding_router.py +0 -0
  434. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/events.py +0 -0
  435. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/ignore_patterns.py +0 -0
  436. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/image_probe.py +0 -0
  437. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/ingress.py +0 -0
  438. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/insert_saga.py +0 -0
  439. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/llm/__init__.py +0 -0
  440. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/llm/anthropic_haiku.py +0 -0
  441. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/llm/base.py +0 -0
  442. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/llm/byok_provider.py +0 -0
  443. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/llm/classification_context.py +0 -0
  444. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/llm/config_store.py +0 -0
  445. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/llm/factory.py +0 -0
  446. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/llm/kg_enricher.py +0 -0
  447. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/llm/local_gateway.py +0 -0
  448. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/llm/local_vllm.py +0 -0
  449. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/llm/openai_nano.py +0 -0
  450. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/lock_advisory.py +0 -0
  451. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/parser_router.py +0 -0
  452. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/parsers/__init__.py +0 -0
  453. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/parsers/docling_parser.py +0 -0
  454. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/parsers/docparse_gateway.py +0 -0
  455. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/parsers/docx_parser.py +0 -0
  456. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/parsers/folder_unpacker.py +0 -0
  457. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/parsers/gateway_aux.py +0 -0
  458. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/parsers/image_parser.py +0 -0
  459. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/parsers/internal_markdown.py +0 -0
  460. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/parsers/ocr_gateway.py +0 -0
  461. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/parsers/ocr_pdf_parser.py +0 -0
  462. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/parsers/pdf_types.py +0 -0
  463. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/parsers/transcript_parser.py +0 -0
  464. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/parsers/vision_gateway.py +0 -0
  465. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/parsers/xlsx_parser.py +0 -0
  466. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/parsers/zip_unpacker.py +0 -0
  467. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/preflight.py +0 -0
  468. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/routing_policy.py +0 -0
  469. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/serializers/__init__.py +0 -0
  470. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/serializers/xlsx_to_markdown.py +0 -0
  471. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/skip_log.py +0 -0
  472. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/ingest/watcher.py +0 -0
  473. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/kg/__init__.py +0 -0
  474. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/kg/audit.py +0 -0
  475. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/kg/communities.py +0 -0
  476. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/kg/community_summary.py +0 -0
  477. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/kg/graph_lane.py +0 -0
  478. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/kg/hybrid_search.py +0 -0
  479. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/kg/lens.py +0 -0
  480. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/kg/manual_edges.py +0 -0
  481. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/kg/pr_impact.py +0 -0
  482. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/kg/queries.py +0 -0
  483. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/kg/ranking.py +0 -0
  484. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/kg/rrf.py +0 -0
  485. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/kg_watcher_control.py +0 -0
  486. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/local_llm/__init__.py +0 -0
  487. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/local_llm/async_client.py +0 -0
  488. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/local_llm/client.py +0 -0
  489. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/local_llm/url_validator.py +0 -0
  490. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/metrics_collector.py +0 -0
  491. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/metrics_providers.py +0 -0
  492. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/model_registry.py +0 -0
  493. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/model_router.py +0 -0
  494. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/n8n_client.py +0 -0
  495. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/newsletter_llm_gateway.py +0 -0
  496. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/notification_service.py +0 -0
  497. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/openai_responses.py +0 -0
  498. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/opencode_metrics.py +0 -0
  499. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/opencode_sessions.py +0 -0
  500. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/pii_redactor.py +0 -0
  501. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/pr_impact_pipeline/__init__.py +0 -0
  502. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/pr_impact_pipeline/differ.py +0 -0
  503. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/pr_impact_pipeline/dispatcher.py +0 -0
  504. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/pr_impact_pipeline/gc.py +0 -0
  505. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/pr_impact_pipeline/languages.py +0 -0
  506. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/pr_impact_pipeline/parser.py +0 -0
  507. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/pr_impact_pipeline/writer.py +0 -0
  508. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/pr_service.py +0 -0
  509. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/project_paths.py +0 -0
  510. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/project_status_updates.py +0 -0
  511. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/providers.py +0 -0
  512. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/push_service.py +0 -0
  513. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/reminder_service.py +0 -0
  514. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/runas.py +0 -0
  515. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/salience_service.py +0 -0
  516. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/security_collector.py +0 -0
  517. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/session_catalog.py +0 -0
  518. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/session_metrics_service.py +0 -0
  519. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/session_ops.py +0 -0
  520. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/session_state.py +0 -0
  521. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/share_links.py +0 -0
  522. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/task_transitions.py +0 -0
  523. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/temporal_tiebreak.py +0 -0
  524. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/temporal_write.py +0 -0
  525. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/terminal_metrics.py +0 -0
  526. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/terminal_metrics_dump.py +0 -0
  527. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/todos/__init__.py +0 -0
  528. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/todos/llm/__init__.py +0 -0
  529. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/todos/llm/base.py +0 -0
  530. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/todos/llm/factory.py +0 -0
  531. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/todos/llm/local_gateway.py +0 -0
  532. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/webhook_service.py +0 -0
  533. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/services/workspace_sync.py +0 -0
  534. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/templates/__init__.py +0 -0
  535. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/templates/markdown_share.py +0 -0
  536. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/terminal.py +0 -0
  537. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/__init__.py +0 -0
  538. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_agent_facing_auth_dependencies.py +0 -0
  539. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_audit_permissions.py +0 -0
  540. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_backfill_session_conversations.py +0 -0
  541. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_backfill_working_seconds_msg.py +0 -0
  542. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_claude_metrics.py +0 -0
  543. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_codex_metrics.py +0 -0
  544. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_config_env_aliases.py +0 -0
  545. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_finder_paths.py +0 -0
  546. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_git_ops_merge.py +0 -0
  547. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_graph_freshness.py +0 -0
  548. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_graph_freshness_flag.py +0 -0
  549. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_graph_neighbors_denoise.py +0 -0
  550. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_graph_summary.py +0 -0
  551. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_kg_claims_builder.py +0 -0
  552. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_kg_claims_wire.py +0 -0
  553. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_kg_trust_write_path.py +0 -0
  554. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_learnings_check_search.py +0 -0
  555. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_learnings_create_pre148.py +0 -0
  556. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_metrics_providers.py +0 -0
  557. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_migration_087.py +0 -0
  558. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_migration_088.py +0 -0
  559. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_migration_089.py +0 -0
  560. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_migration_149.py +0 -0
  561. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_openai_responses.py +0 -0
  562. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_opencode_metrics.py +0 -0
  563. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_opencode_sessions.py +0 -0
  564. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_populate_decay_flag.py +0 -0
  565. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_pr_workflow_e2e.py +0 -0
  566. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_projects_handoffs.py +0 -0
  567. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_providers.py +0 -0
  568. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_require_scope_empty_deny.py +0 -0
  569. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_safety_bridge.py +0 -0
  570. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_session_brief_temporal.py +0 -0
  571. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_session_catalog.py +0 -0
  572. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_session_conversations.py +0 -0
  573. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_session_metrics_service.py +0 -0
  574. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_session_resume_paths.py +0 -0
  575. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_session_theme_mode_migration.py +0 -0
  576. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_sessions_rbac.py +0 -0
  577. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_share_edit.py +0 -0
  578. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_share_repo.py +0 -0
  579. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_temporal_recency.py +0 -0
  580. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_terminal_session_manager.py +0 -0
  581. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_terminal_upload.py +0 -0
  582. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_ui_static.py +0 -0
  583. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_workspace_sync.py +0 -0
  584. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/tests/test_ws_ticket_in_memory.py +0 -0
  585. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/ui_static.py +0 -0
  586. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/use_cases/__init__.py +0 -0
  587. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/use_cases/_context.py +0 -0
  588. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/use_cases/_errors.py +0 -0
  589. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/use_cases/_roles.py +0 -0
  590. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/use_cases/audit.py +0 -0
  591. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/use_cases/brain.py +0 -0
  592. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/use_cases/costs.py +0 -0
  593. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/use_cases/graph.py +0 -0
  594. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/use_cases/handoffs.py +0 -0
  595. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/use_cases/ingest_triage.py +0 -0
  596. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/use_cases/learnings.py +0 -0
  597. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/use_cases/onboarding.py +0 -0
  598. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/use_cases/pull_requests.py +0 -0
  599. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/use_cases/search.py +0 -0
  600. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/api/use_cases/tasks.py +0 -0
  601. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/README.md +0 -0
  602. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/__init__.py +0 -0
  603. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/_brain_opportunistic.py +0 -0
  604. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/_brain_schedule.py +0 -0
  605. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/_index_source.py +0 -0
  606. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/_onboarding.py +0 -0
  607. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/_runtime_ctx.py +0 -0
  608. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/_transmute.py +0 -0
  609. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/_update_check.py +0 -0
  610. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/guides/__init__.py +0 -0
  611. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/guides/marvis-way.md +0 -0
  612. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/marvis_account.py +0 -0
  613. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/marvis_brain.py +0 -0
  614. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/marvis_console.py +0 -0
  615. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/marvis_doctor.py +0 -0
  616. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/marvis_feedback.py +0 -0
  617. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/marvis_governance.py +0 -0
  618. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/marvis_guide.py +0 -0
  619. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/marvis_hooks.py +0 -0
  620. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/marvis_init.py +0 -0
  621. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/marvis_mcp.py +0 -0
  622. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/marvis_runtime.py +0 -0
  623. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/marvis_task.py +0 -0
  624. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/cli/marvis_telemetry.py +0 -0
  625. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/platform/__init__.py +0 -0
  626. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/_drift_check.py +0 -0
  627. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/_frontmatter.py +0 -0
  628. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/_graph_writer.py +0 -0
  629. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/ast_parser.py +0 -0
  630. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/install_hooks/__init__.py +0 -0
  631. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/install_hooks/_config.sh +0 -0
  632. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/install_hooks/block-dangerous-bash.sh +0 -0
  633. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/install_hooks/block-db-direct-write.sh +0 -0
  634. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/install_hooks/block-push-no-task.sh +0 -0
  635. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/install_hooks/block-staging-to-prod.sh +0 -0
  636. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/install_hooks/block-subtree-push.sh +0 -0
  637. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/install_hooks/config.json +0 -0
  638. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/install_hooks/enforce-no-merge-main.sh +0 -0
  639. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/install_hooks/enforce-worktree.sh +0 -0
  640. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/install_hooks/quality-gate.sh +0 -0
  641. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/install_hooks/safety_bridge.py +0 -0
  642. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/install_hooks/secret-scan.sh +0 -0
  643. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/migrate_spike_node_ids.py +0 -0
  644. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/populate_artifacts.py +0 -0
  645. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/populate_cross_project.py +0 -0
  646. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/populate_inbox_nodes.py +0 -0
  647. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/populate_pr_impact.py +0 -0
  648. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/populate_project_nodes.py +0 -0
  649. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/populate_touch_counter.py +0 -0
  650. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/reparse_failed.py +0 -0
  651. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/scripts/safety_bridge.py +0 -0
  652. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/telemetry/__init__.py +0 -0
  653. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/telemetry/client.py +0 -0
  654. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/telemetry/entitlements.py +0 -0
  655. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/telemetry/rollup.py +0 -0
  656. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/telemetry/schema.py +0 -0
  657. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/telemetry/sender.py +0 -0
  658. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/wizard/__init__.py +0 -0
  659. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/wizard/byok_vault.py +0 -0
  660. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/wizard/defaults.py +0 -0
  661. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/wizard/state.py +0 -0
  662. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/wizard/steps.py +0 -0
  663. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/core/wizard/validation.py +0 -0
  664. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/marvisx_cli.egg-info/dependency_links.txt +0 -0
  665. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/marvisx_cli.egg-info/entry_points.txt +0 -0
  666. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/marvisx_cli.egg-info/requires.txt +0 -0
  667. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/marvisx_cli.egg-info/top_level.txt +0 -0
  668. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/001_initial.sql +0 -0
  669. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/002_tasks.sql +0 -0
  670. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/003_session_management.sql +0 -0
  671. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/004_projects_comments.sql +0 -0
  672. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/005_session_intelligence.sql +0 -0
  673. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/006_settings.sql +0 -0
  674. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/007_task_scoring.sql +0 -0
  675. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/008_cost_tracking.sql +0 -0
  676. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/009_session_card_metrics.sql +0 -0
  677. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/010_monitoring.sql +0 -0
  678. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/012_agent_api.sql +0 -0
  679. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/013_session_complete.sql +0 -0
  680. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/015_pull_requests.sql +0 -0
  681. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/015_pull_requests_down.sql +0 -0
  682. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/016_users_raci.sql +0 -0
  683. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/017_task_cost_entries.sql +0 -0
  684. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/018_agents.sql +0 -0
  685. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/018_agents_down.sql +0 -0
  686. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/019_review_feedback.sql +0 -0
  687. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/020_pr_commit_sha.sql +0 -0
  688. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/021_webhook_events.sql +0 -0
  689. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/022_devx_agent_managed.sql +0 -0
  690. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/022_devx_agent_managed_down.sql +0 -0
  691. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/023_devx_p1_gate.sql +0 -0
  692. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/023_devx_p1_gate_down.sql +0 -0
  693. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/024_chat_messages.sql +0 -0
  694. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/024_pr_conversation_id.sql +0 -0
  695. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/024_task_indexes.sql +0 -0
  696. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/024_task_indexes_down.sql +0 -0
  697. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/025_audit_log.sql +0 -0
  698. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/026_agent_tokens.sql +0 -0
  699. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/027_teams_auth_phase_b.sql +0 -0
  700. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/028_learnings.sql +0 -0
  701. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/029_team_roles.sql +0 -0
  702. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/030_finder_pins.sql +0 -0
  703. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/031_pr_deploy_status.sql +0 -0
  704. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/032_task_reminders.sql +0 -0
  705. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/033_events_retry_count.sql +0 -0
  706. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/033_session_owner.sql +0 -0
  707. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/034_notifications.sql +0 -0
  708. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/035_shared_links.sql +0 -0
  709. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/036_session_index_upgrade.sql +0 -0
  710. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/037_pr_approval.sql +0 -0
  711. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/038_pr_submitted_by.sql +0 -0
  712. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/039_push_subscriptions.sql +0 -0
  713. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/040_semantic_search.sql +0 -0
  714. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/041_workspaces.sql +0 -0
  715. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/042_oidc_providers.sql +0 -0
  716. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/043_ci_checks.sql +0 -0
  717. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/044_agent_metrics.sql +0 -0
  718. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/045_documents_doc_type.sql +0 -0
  719. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/046_salience.sql +0 -0
  720. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/047_seed_missing_agents.sql +0 -0
  721. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/048_fix_agent_paths_roles.sql +0 -0
  722. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/049_agent_role_and_learnings_schema.sql +0 -0
  723. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/050_session_provider.sql +0 -0
  724. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/051_session_launch_profile.sql +0 -0
  725. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/052_session_theme_mode.sql +0 -0
  726. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/052_task_kind.sql +0 -0
  727. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/053_inbox_items.sql +0 -0
  728. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/054_inbox_triage_contract.sql +0 -0
  729. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/055_inbox_topic_treatment.sql +0 -0
  730. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/056_inbox_treatment_read_save.sql +0 -0
  731. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/057_session_theme_mode_backfill.sql +0 -0
  732. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/058_inbox_item_status_lifecycle.sql +0 -0
  733. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/059_inbox_tldr_and_source_scores.sql +0 -0
  734. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/060_newsletter.sql +0 -0
  735. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/061_inbox_redesign.sql +0 -0
  736. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/062_fix_inbox_sources_backfill.sql +0 -0
  737. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/063_task_completion_mode.sql +0 -0
  738. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/064_judge_mode_setting.sql +0 -0
  739. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/065_knowledge_graph_spike.sql +0 -0
  740. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/066_digest_ranking_inputs.sql +0 -0
  741. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/066_kg_artifact_nodes.sql +0 -0
  742. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/067_inbox_digest_selections.sql +0 -0
  743. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/067_kg_temporal.sql +0 -0
  744. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/068_inbox_digest_app_settings.sql +0 -0
  745. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/068_kg_touch_counter.sql +0 -0
  746. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/069_kg_doc_types.sql +0 -0
  747. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/070_digest_ranking_inputs_recovery.sql +0 -0
  748. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/071_inbox_digest_selections_recovery.sql +0 -0
  749. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/072_inbox_digest_app_settings_recovery.sql +0 -0
  750. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/073_kg_cross_project.sql +0 -0
  751. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/073_kg_cross_project_down.sql +0 -0
  752. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/074_kg_infra_types.sql +0 -0
  753. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/074_kg_infra_types_down.sql +0 -0
  754. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/075_kg_file_state_recovery.sql +0 -0
  755. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/075_kg_file_state_recovery_down.sql +0 -0
  756. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/076_kg_watcher_state.sql +0 -0
  757. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/076_kg_watcher_state_down.sql +0 -0
  758. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/077_kg_doc_types_extend.sql +0 -0
  759. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/077_kg_doc_types_extend_down.sql +0 -0
  760. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/078_kg_fts5.sql +0 -0
  761. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/078_kg_fts5_down.sql +0 -0
  762. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/079_kg_missing_indexes.sql +0 -0
  763. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/079_kg_missing_indexes_down.sql +0 -0
  764. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/080_kg_fts5_extended.sql +0 -0
  765. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/080_kg_fts5_extended_down.sql +0 -0
  766. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/081_kg_lens_indexes.sql +0 -0
  767. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/081_kg_lens_indexes_down.sql +0 -0
  768. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/082_kg_pins.sql +0 -0
  769. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/082_kg_pins_down.sql +0 -0
  770. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/083_kg_graph_nodes_degree.sql +0 -0
  771. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/083_kg_graph_nodes_degree_down.sql +0 -0
  772. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/084_drop_legacy_scheduler_tables.sql +0 -0
  773. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/084_drop_legacy_scheduler_tables_down.sql +0 -0
  774. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/085_kg_edge_resolves_to.sql +0 -0
  775. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/085_kg_edge_resolves_to_down.sql +0 -0
  776. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/086_project_status_updates_feed.sql +0 -0
  777. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/086_project_status_updates_feed_down.sql +0 -0
  778. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/087_session_metrics_dual.sql +0 -0
  779. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/087_session_metrics_dual_down.sql +0 -0
  780. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/088_rename_context_pct_legacy.sql +0 -0
  781. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/088_rename_context_pct_legacy_down.sql +0 -0
  782. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/089_session_metrics_equivalent_cost.sql +0 -0
  783. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/089_session_metrics_equivalent_cost_down.sql +0 -0
  784. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/090_kg_inbox_node_type.sql +0 -0
  785. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/090_kg_inbox_node_type_down.sql +0 -0
  786. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/091_kg_inbox_node_type_check.sql +0 -0
  787. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/091_kg_inbox_node_type_check_down.sql +0 -0
  788. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/092_sessions_activity_state_ts.sql +0 -0
  789. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/092_sessions_activity_state_ts_down.sql +0 -0
  790. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/093_sessions_activity_state_column.sql +0 -0
  791. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/093_sessions_activity_state_column_down.sql +0 -0
  792. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/094_ingest_pending.sql +0 -0
  793. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/094_ingest_pending_down.sql +0 -0
  794. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/095_kg_intent_first.sql +0 -0
  795. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/095_kg_intent_first_down.sql +0 -0
  796. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/096_kg_xlsx_artifact_prefix.sql +0 -0
  797. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/096_kg_xlsx_artifact_prefix_down.sql +0 -0
  798. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/097_ingest_change_history.sql +0 -0
  799. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/097_ingest_change_history_down.sql +0 -0
  800. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/098_kg_node_type_business.sql +0 -0
  801. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/098_kg_node_type_business_down.sql +0 -0
  802. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/099_kg_edges_restore_weight.sql +0 -0
  803. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/099_kg_edges_restore_weight_down.sql +0 -0
  804. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/100_kg_enriched_at.sql +0 -0
  805. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/100_kg_enriched_at_down.sql +0 -0
  806. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/101_local_llm_shadow_comparisons.sql +0 -0
  807. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/101_local_llm_shadow_comparisons_down.sql +0 -0
  808. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/102_promote_llm_costs.sql +0 -0
  809. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/102_promote_llm_costs_down.sql +0 -0
  810. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/103_ingest_skipped_log.sql +0 -0
  811. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/103_ingest_skipped_log_down.sql +0 -0
  812. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/120_docs_governance.sql +0 -0
  813. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/120_docs_governance_down.sql +0 -0
  814. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/121_notification_event_fk_cleanup.sql +0 -0
  815. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/121_notification_event_fk_cleanup_down.sql +0 -0
  816. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/122_docs_drift_history.sql +0 -0
  817. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/122_docs_drift_history_down.sql +0 -0
  818. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/123_ingest_parser_waiting_status.sql +0 -0
  819. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/123_ingest_parser_waiting_status_down.sql +0 -0
  820. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/124_heypocket_recordings.sql +0 -0
  821. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/124_heypocket_recordings_down.sql +0 -0
  822. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/125_kg_node_type_record.sql +0 -0
  823. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/125_kg_node_type_record_down.sql +0 -0
  824. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/126_ingest_terminal_upload_source_kind.sql +0 -0
  825. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/126_ingest_terminal_upload_source_kind_down.sql +0 -0
  826. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/127_brain_v1_substrate.sql +0 -0
  827. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/127_brain_v1_substrate_down.sql +0 -0
  828. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/128_brain_drift_signals.sql +0 -0
  829. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/128_brain_drift_signals_down.sql +0 -0
  830. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/129_brain_memory_operations.sql +0 -0
  831. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/129_brain_memory_operations_down.sql +0 -0
  832. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/130_brain_findings.sql +0 -0
  833. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/130_brain_findings_down.sql +0 -0
  834. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/132_kg_pr_modifies.sql +0 -0
  835. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/132_kg_pr_modifies_down.sql +0 -0
  836. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/133_brain_v1_2_direction_schema.sql +0 -0
  837. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/133_brain_v1_2_direction_schema_down.sql +0 -0
  838. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/134_brain_journal_narrative_polished.sql +0 -0
  839. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/134_brain_journal_narrative_polished_down.sql +0 -0
  840. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/135_kg_edges_provider.sql +0 -0
  841. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/136_documents_fts.sql +0 -0
  842. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/137_promote_llm_costs.sql +0 -0
  843. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/137_promote_llm_costs_down.sql +0 -0
  844. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/138_ingest_api_keys.sql +0 -0
  845. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/138_ingest_api_keys_down.sql +0 -0
  846. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/139_ingest_pending_ingress.sql +0 -0
  847. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/139_ingest_pending_ingress_down.sql +0 -0
  848. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/140_ingest_idempotency_quota.sql +0 -0
  849. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/140_ingest_idempotency_quota_down.sql +0 -0
  850. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/141_ingest_pending_metadata.sql +0 -0
  851. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/141_ingest_pending_metadata_down.sql +0 -0
  852. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/142_llm_function_config.sql +0 -0
  853. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/142_llm_function_config_down.sql +0 -0
  854. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/143_kg_code_embeddings.sql +0 -0
  855. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/143_kg_code_embeddings_down.sql +0 -0
  856. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/144_notifications_pending_sync_index.sql +0 -0
  857. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/145_audit_log_immutable.sql +0 -0
  858. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/145_audit_log_immutable_down.sql +0 -0
  859. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/146_drop_kg_backup_tables.sql +0 -0
  860. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/146_drop_kg_backup_tables_down.sql +0 -0
  861. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/147_chunks.sql +0 -0
  862. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/147_chunks_down.sql +0 -0
  863. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/148_bitemporal_learnings.sql +0 -0
  864. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/148_bitemporal_learnings_down.sql +0 -0
  865. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/149_kg_trust_columns.sql +0 -0
  866. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/149_kg_trust_columns_down.sql +0 -0
  867. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/150_delegations.sql +0 -0
  868. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/150_delegations_down.sql +0 -0
  869. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/151_todos.sql +0 -0
  870. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/151_todos_down.sql +0 -0
  871. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/152_project_color.sql +0 -0
  872. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/152_project_color_down.sql +0 -0
  873. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/153_manual_project_edges.sql +0 -0
  874. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/153_manual_project_edges_down.sql +0 -0
  875. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/migrations/__init__.py +0 -0
  876. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/projects/_template/context.md +0 -0
  877. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/projects/_template/docs/brainstorms/YYYY-MM-DD-example-brainstorm.md +0 -0
  878. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/projects/_template/docs/plans/YYYY-MM-DD-example-plan.md +0 -0
  879. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/projects/_template/docs/solutions/YYYY-MM-DD-example-solution.md +0 -0
  880. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/projects/_template/input/README.md +0 -0
  881. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/projects/_template/memory/handoff.md +0 -0
  882. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/projects/_template/output/README.md +0 -0
  883. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/projects/_template/project.yaml +0 -0
  884. {marvisx_cli-0.3.9b2 → marvisx_cli-0.3.9b4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: marvisx-cli
3
- Version: 0.3.9b2
3
+ Version: 0.3.9b4
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><!--_MWhMs_DzvgduGQXekcBh--><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/48fb03de4f747e34.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/48fb03de4f747e34.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"-MWhMs_DzvgduGQXekcBh\",\"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/48fb03de4f747e34.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><!--_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 +1 @@
1
- <!DOCTYPE html><!--_MWhMs_DzvgduGQXekcBh--><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/48fb03de4f747e34.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/48fb03de4f747e34.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"-MWhMs_DzvgduGQXekcBh\",\"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/48fb03de4f747e34.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><!--_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>
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3146],{1450:(e,t,r)=>{r.d(t,{A:()=>p});var n,s,a=r(5155),i=r(1831),o=r(4514),l=r(9567),c=r(934);let d={...l.j,tagNames:[...l.j.tagNames||[],"h1","h2","h3","h4","h5","h6","ul","ol","li","pre","code","table","thead","tbody","tr","th","td","blockquote","hr","br","strong","em","del","a","p","img","details","summary"],attributes:{...l.j.attributes,code:[...(null==(n=l.j.attributes)?void 0:n.code)||[],"className"],a:[...(null==(s=l.j.attributes)?void 0:s.a)||[],"href","title","target","rel"]}};function p(e){let{content:t}=e;return(0,a.jsx)("div",{className:"prose dark:prose-invert prose-sm max-w-none prose-headings:text-pir-text-primary prose-p:text-pir-text-secondary prose-a:text-pir-accent prose-code:text-pir-accent/80 prose-pre:bg-pir-surface-1 prose-pre:border prose-pre:border-pir-border prose-li:text-pir-text-secondary prose-strong:text-pir-text-primary prose-table:text-pir-text-secondary prose-th:text-pir-text-primary prose-td:border-pir-border prose-th:border-pir-border prose-hr:border-pir-border prose-blockquote:border-pir-text-muted prose-blockquote:text-pir-text-muted",children:(0,a.jsx)(i.oz,{remarkPlugins:[o.A],rehypePlugins:[[c.A,d]],components:{a:e=>{let{href:t,children:r,...n}=e;return(0,a.jsx)("a",{href:t,target:"_blank",rel:"noopener noreferrer",...n,children:r})}},children:t})})}},1601:(e,t,r)=>{r.d(t,{$:()=>o});var n=r(5155),s=r(2115);function a(e){let{size:t=12}=e;return(0,n.jsxs)("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),(0,n.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})}function i(e){let{size:t=12}=e;return(0,n.jsx)("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})})}function o(e){let{message:t,variant:r="banner",className:o="",onDismiss:l}=e,[c,d]=(0,s.useState)(!1),p=(0,s.useCallback)(async()=>{try{await navigator.clipboard.writeText(t),d(!0),setTimeout(()=>d(!1),2e3)}catch(r){let e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e),d(!0),setTimeout(()=>d(!1),2e3)}},[t]);return"inline"===r?(0,n.jsxs)("span",{className:"inline-flex items-center gap-1.5 ".concat(o),children:[(0,n.jsx)("span",{children:t}),(0,n.jsx)("button",{type:"button",onClick:p,className:"shrink-0 opacity-50 hover:opacity-100 transition-opacity",title:c?"Copied!":"Copy error",children:c?(0,n.jsx)(i,{size:11}):(0,n.jsx)(a,{size:11})})]}):(0,n.jsxs)("div",{className:"flex items-start gap-2 bg-pir-error/10 border border-pir-error/30 text-pir-error rounded px-3 py-2 text-caption ".concat(o),children:[(0,n.jsx)("span",{className:"flex-1 min-w-0",children:t}),(0,n.jsx)("button",{type:"button",onClick:p,className:"shrink-0 mt-0.5 opacity-50 hover:opacity-100 transition-opacity",title:c?"Copied!":"Copy error",children:c?(0,n.jsx)(i,{}):(0,n.jsx)(a,{})}),l&&(0,n.jsx)("button",{type:"button",onClick:l,className:"shrink-0 mt-0.5 opacity-50 hover:opacity-100 transition-opacity text-xs leading-none",title:"Dismiss",children:"\xd7"})]})}},3553:(e,t,r)=>{r.d(t,{$H:()=>d,AQ:()=>f,GI:()=>c,RL:()=>x,V5:()=>a,Z2:()=>s,er:()=>i,it:()=>m,l3:()=>p,nl:()=>h,r0:()=>l,t1:()=>o,ux:()=>n,wO:()=>u});let n="marvis:project-color-changed";function s(e){window.dispatchEvent(new CustomEvent(n,{detail:e}))}function a(e){return e.name||e.slug}function i(e){return e.flatMap(e=>e.projects)}function o(e,t){var r;return t&&null!=(r=i(e).find(e=>e.slug===t))?r:null}function l(e,t,r){return e.map(e=>({...e,projects:e.projects.map(e=>e.slug===t?{...e,color:r}:e)}))}function c(e){let t=e.filter(e=>"rejected"!==e.status),r=t.filter(e=>"completed"===e.status).length,n=t.length,s=t.filter(e=>"completed"!==e.status).length,a=t.filter(e=>"review"===e.status).length,i=n>0?Math.round(r/n*100):0;return{completed:r,total:n,open:s,review:a,percent:i,fraction:"".concat(r,"/").concat(n)}}function d(e,t){var r,n,s;let{data:a,body:i}=function(e){if(!e.startsWith("---"))return{data:{},body:e};let t=e.indexOf("\n---",3);if(t<0)return{data:{},body:e};let r=e.slice(3,t).trim(),n={};for(let e of r.split(/\r?\n/)){let t=e.match(/^([A-Za-z0-9_-]+):\s*(.*)$/);t&&(n[t[1]]=t[2].replace(/^['"]|['"]$/g,"").trim())}return{data:n,body:e.slice(t+4).trim()}}(t),o=a.superseded_by||a.supersededBy||null,l=(null!=(r=a.status)?r:"").toLowerCase(),c=a.title||e.title||(null!=(s=(n=e.filename).split("/").pop())?s:n).replace(/\.md$/i,"").replace(/^\d{4}-\d{2}-\d{2}-?/,"").replace(/[-_]+/g," "),d=i.split(/\r?\n/).map(e=>e.replace(/^#+\s*/,"").trim()).filter(Boolean).slice(0,2).join(" ");return{filename:e.filename,title:c,date:a.date||e.date||null,status:o||"superseded"===l||"superata"===l?"superseded":"current",supersededBy:o,excerpt:d}}function p(e){return e.filename.startsWith("docs/decisions/")&&e.filename.endsWith(".md")}function u(e){return e.toLowerCase().endsWith(".md")}function x(e){var t;if(e.category)return e.category;let r=null!=(t=e.filename.split("/").pop())?t:e.filename,n=r.includes(".")?r.split(".").pop():null;return n?n.toLowerCase():"doc"}function m(e){return[...e].sort((e,t)=>e.date||t.date?e.date?t.date?t.date.localeCompare(e.date):-1:1:e.filename.localeCompare(t.filename))}function f(e){var t,r,n,s;let a=null!=(r=null==(t=e.kg_context)?void 0:t.neighbors)?r:[],i=[];for(let t of a){let r=null!=(s=null==(n=t.edge)?void 0:n.relation)?s:t.relation;if("related"!==r&&"depends_on"!==r)continue;let a=t.project_id?t.project_id:t.id.startsWith("project:artifact:")?t.id.slice(17):null;a&&a!==e.slug&&i.push({slug:a,kind:r})}return i}function h(e){let t=e.trim().replace(/,/g," ").match(/^(-?\d+(?:\.\d+)?)\s+(\d+(?:\.\d+)?)%\s+(\d+(?:\.\d+)?)%/);if(!t)return null;let r=(Number(t[1])%360+360)%360/360,n=Number(t[2])/100,s=Number(t[3])/100,a=(e,t,r)=>{let n=r;return(n<0&&(n+=1),n>1&&(n-=1),n<1/6)?e+(t-e)*6*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e},i=s<.5?s*(1+n):s+n-s*n,o=2*s-i,l=[a(o,i,r+1/3),a(o,i,r),a(o,i,r-1/3)].map(e=>Math.round(255*e).toString(16).padStart(2,"0"));return"#".concat(l.join(""))}},4917:(e,t,r)=>{r.d(t,{_:()=>i});var n=r(5155),s=r(2115);let a="a[href],button:not([disabled]),textarea:not([disabled]),input:not([disabled]),select:not([disabled]),[tabindex]:not([tabindex='-1'])";function i(e){let{open:t,titleId:r,onClose:i,header:o,children:l,actions:c,widthClassName:d="w-[min(92vw,460px)]",dataTour:p}=e,u=(0,s.useRef)(null),x=(0,s.useRef)(null);return((0,s.useEffect)(()=>{if(!t)return;x.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let e=u.current,r=null==e?void 0:e.querySelector(a);return window.setTimeout(()=>{var t;return null==(t=null!=r?r:e)?void 0:t.focus()},0),()=>{var e;null==(e=x.current)||e.focus()}},[t]),(0,s.useEffect)(()=>{if(t)return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e);function e(e){if("Escape"===e.key){e.preventDefault(),i();return}if("Tab"!==e.key)return;let t=u.current;if(!t)return;let r=Array.from(t.querySelectorAll(a)).filter(e=>e.tabIndex>=0);if(0===r.length){e.preventDefault(),t.focus();return}let n=r[0],s=r[r.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),s.focus()):e.shiftKey||document.activeElement!==s||(e.preventDefault(),n.focus())}},[i,t]),t)?(0,n.jsxs)("div",{className:"fixed inset-0 z-[90] flex justify-end",role:"presentation","data-testid":"drawer-root",children:[(0,n.jsx)("button",{type:"button","aria-label":"Close drawer",className:"absolute inset-0 cursor-default bg-pir-base/70",onClick:i,"data-testid":"drawer-overlay"}),(0,n.jsxs)("section",{ref:u,tabIndex:-1,role:"dialog","aria-modal":"true","aria-labelledby":r,"data-tour":p,className:"relative flex h-full ".concat(d," flex-col border-l border-pir bg-pir-surface-0 text-pir-text-primary shadow-xl motion-safe:transition-transform motion-safe:duration-150 motion-safe:ease-out motion-reduce:transition-none"),children:[(0,n.jsx)("div",{className:"shrink-0 border-b border-pir px-4 py-3",children:o}),(0,n.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-4",children:l}),c&&(0,n.jsx)("div",{className:"shrink-0 border-t border-pir px-4 py-3",children:c})]})]}):null}},5852:(e,t,r)=>{r.d(t,{$G:()=>l,$o:()=>u,AR:()=>j,Ak:()=>b,VM:()=>v,Yz:()=>c,_7:()=>y,h6:()=>x,nR:()=>o,pd:()=>m,xU:()=>h});var n=r(960);function s(e){return Array.isArray(e)?e.filter(e=>!!e&&"object"==typeof e):[]}function a(e){return"string"==typeof e&&e.trim()?e.trim():null}function i(e,t,r){var n,s,i,o,l,c,d,p,u,x,m;return{id:t,text:null!=(l=null!=(o=null!=(i=null!=(s=null!=(n=a(e.text))?n:a(e.title))?s:a(e.summary))?i:a(e.question))?o:a(e.ref))?l:r,project:null!=(u=null!=(p=null!=(d=null!=(c=a(e.project))?c:a(e.proj))?d:a(e.source_project))?p:a(e.target_project))?u:null,sourceRef:null!=(m=null!=(x=a(e.source_ref))?x:a(e.event_id))?m:a(e.ref),eventIds:function(e){let t=e.event_ids;return Array.isArray(t)?t.filter(e=>"string"==typeof e&&e.length>0):[]}(e)}}function o(e){var t,r,n,o,l,c;let d=null!=(n=e.body)?n:{what_changed:[],decisions_observed:[],open_loops:[],notable_context:[],sources:[],tomorrow_watch:[]},p=s(d.what_changed).map((t,r)=>i(t,"".concat(e.entry_id,":change:").concat(r),"Aggiornamento senza titolo")),u=(Array.isArray(c=d.decisions_observed)?c.filter(e=>"string"==typeof e):[]).map((t,r)=>({id:"".concat(e.entry_id,":decision:").concat(r),text:t,project:null,sourceRef:t,eventIds:[]})),x=s(d.open_loops).map((t,r)=>i(t,"".concat(e.entry_id,":open:").concat(r),"Decisione senza titolo")),m=s(d.notable_context).map((t,r)=>i(t,"".concat(e.entry_id,":context:").concat(r),"Contesto senza titolo")),f=p.slice(0,2).map(e=>e.text).join(" "),h=a(e.narrative_polished),b=function(e,t){let r=new Map,n=e=>{let t=null!=e?e:"__unscoped__",n=r.get(t);if(n)return n;let s={project:e,items:[]};return r.set(t,s),s};for(let t of e)n(t.project).items.push({...t,kind:"change"});for(let e of t)n(e.project).items.push({...e,kind:"decision"});return Array.from(r.values()).sort((e,t)=>{var r,n;return null===e.project&&null!==t.project?1:null!==e.project&&null===t.project?-1:(null!=(r=e.project)?r:"").localeCompare(null!=(n=t.project)?n:"")})}(p,u),g=b.flatMap(e=>e.items);return{cycleKey:e.cycle_key,entryId:e.entry_id,runId:e.run_id,narrative:h,baseSummary:f||null,narrativeFallback:!h,isEmpty:e.is_empty||p.length+u.length+x.length+m.length===0,decisions:x,context:m,progressGroups:b,projectsTouched:function(e){let t=new Set;for(let r of e)r.project&&t.add(r.project);return Array.from(t).sort((e,t)=>e.localeCompare(t))}([...x,...m,...g]),counts:{decisions:x.length,progress:g.length,context:m.length,sources:null!=(o=null==(t=d.sources)?void 0:t.length)?o:0,tomorrowWatch:null!=(l=null==(r=d.tomorrow_watch)?void 0:r.length)?l:0}}}function l(e,t){if(0===t.length)return e;let r=new Map(t.map(e=>[e.event_id,e])),n=e=>{if(0===e.eventIds.length)return e;for(let i of e.eventIds){var t,n,s,a;let o=r.get(i);if(!o)continue;let l=null!=(s=null!=(n=null!=(t=e.project)?t:o.source_project)?n:o.target_project)?s:null,c=o.title.trim(),d=/^(Aggiornamento|Decisione|Contesto) senza titolo$/.test(e.text);return{...e,text:d&&c?c:e.text,project:l,sourceRef:null!=(a=e.sourceRef)?a:i}}return e},s=e.decisions.map(n),a=e.context.map(n),i=e.progressGroups.map(e=>{var t,r;let s=e.items.map(e=>({...n(e),kind:e.kind}));return{project:null!=(r=null==(t=s[0])?void 0:t.project)?r:e.project,items:s}}),o=i.flatMap(e=>e.items),l=new Set([...e.projectsTouched,...o.map(e=>e.project).filter(e=>!!e),...s.map(e=>e.project).filter(e=>!!e),...a.map(e=>e.project).filter(e=>!!e)]);return{...e,decisions:s,context:a,progressGroups:i,projectsTouched:Array.from(l).sort((e,t)=>e.localeCompare(t))}}function c(e){return e.run?!e.journal||e.journal.isEmpty?"quiet":"active":"not_run"}function d(e){let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return"".concat(t,"-").concat(r,"-").concat(n)}function p(e,t){return t.localeCompare(e)}function u(e,t){var r,n;let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Date,a=new Map;for(let t of e){let e=a.get(t.cycle_key);(!e||0>e.started_at.localeCompare(t.started_at))&&a.set(t.cycle_key,t)}let i=new Map(t.map(e=>[e.cycleKey,e])),o=Array.from(new Set([d(s),...e.map(e=>e.cycle_key),...t.map(e=>e.cycleKey)])).sort(p),l=null!=(r=o[0])?r:d(s),c=null!=(n=o[o.length-1])?n:l,u=[];for(let e=l;e>=c&&(u.push(e),e!==c);e=function(e,t){let r=new Date("".concat(e,"T00:00:00"));return r.setDate(r.getDate()+-1),d(r)}(e,0));return u.map(e=>{var t,r;let n=null!=(t=a.get(e))?t:null,s=null!=(r=i.get(e))?r:null;return{cycleKey:e,run:n,journal:s,state:n?(null==s?void 0:s.decisions.length)?"needs_decision":s&&!s.isEmpty?"managed":"quiet":"not_run"}})}function x(e,t){let r=t?"w-12":"w-8";return"needs_decision"===e?"".concat(r," bg-pir-accent"):"managed"===e?"".concat(r," bg-pir-success"):"quiet"===e?"".concat(t?"w-7":"w-5"," bg-pir-border-strong"):"w-3 border border-dashed border-pir-strong bg-transparent"}function m(e,t){let r=e.findIndex((e,r)=>r!==t&&e.run);return r>=0?r:null}let f=new Set(["succeeded","partial","failed","superseded"]);function h(e){return f.has(e)}function b(e,t){var r;return null!=(r=e.filter(e=>"manual"===e.trigger&&e.started_at>=t).sort((e,t)=>e.started_at.localeCompare(t.started_at))[0])?r:null}function g(e){return e&&e.trim()?e:null}async function j(e){var t;return(0,n.qmB)({text:e.text,type:"decidi",project:g(e.project),source:"brain",source_ref:null!=(t=e.sourceRef)?t:e.id})}async function y(e){var t;let r=await (0,n.qmB)({text:e.text,type:"rivedi",project:g(e.project),source:"brain",source_ref:null!=(t=e.sourceRef)?t:e.id,doer:"agent"});return(0,n.NY1)(r.id,{title:e.text.slice(0,200),project:g(e.project)})}async function v(){try{return await (0,n.KDf)(),"started"}catch(e){if(e instanceof n.LGi&&409===e.status)return"already_running";throw e}}},7026:(e,t,r)=>{r.d(t,{A:()=>I});var n=r(5155),s=r(2619),a=r.n(s),i=r(63),o=r(2115),l=r(960),c=r(3553),d=r(5852),p=r(4281),u=r(4917),x=r(1450),m=r(1601);let f=["--pir-accent","--pir-success","--pir-warning","--pir-error","--pir-info"];function h(e,t){return e.replace("{count}",String(t))}function b(e){let{color:t,size:r="md"}=e;return(0,n.jsx)("span",{"aria-hidden":!0,className:"".concat("lg"===r?"h-3 w-3":"sm"===r?"h-1.5 w-1.5":"h-2 w-2"," shrink-0 rounded-full ").concat(t?"":"bg-pir-border-strong"),style:t?{backgroundColor:t}:void 0})}function g(e){let{title:t,caption:r,count:s,children:a}=e;return(0,n.jsxs)("section",{className:"min-w-0",children:[(0,n.jsxs)("div",{className:"mb-3 flex min-w-0 items-start justify-between gap-3",children:[(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsx)("h2",{className:"font-mono text-caption uppercase tracking-[0.08em] text-pir-text-tertiary",children:t}),r&&(0,n.jsx)("p",{className:"mt-1 truncate text-caption text-pir-text-muted",children:r})]}),void 0!==s&&(0,n.jsx)("span",{className:"rounded border border-pir bg-pir-surface-1 px-2 py-0.5 font-mono text-caption text-pir-text-muted",children:s})]}),a]})}function j(e){let{programs:t}=e,{t:r}=(0,p.k)(),s=r.projects.overview,i=t.map(e=>({...e,projects:e.projects.filter(e=>e.on_server)})).filter(e=>e.projects.length>0),o=i.reduce((e,t)=>e+t.projects.length,0);return(0,n.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-6 md:px-8",children:(0,n.jsxs)("div",{className:"mx-auto flex max-w-6xl flex-col gap-6",children:[(0,n.jsxs)("header",{className:"flex items-end justify-between gap-4 border-b border-pir pb-4",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{className:"text-heading text-pir-text-primary",children:s.title}),(0,n.jsx)("p",{className:"mt-1 text-body text-pir-text-tertiary",children:s.subtitle})]}),(0,n.jsx)("span",{className:"font-mono text-caption text-pir-text-muted",children:o})]}),0===i.length&&(0,n.jsx)("div",{className:"rounded border border-pir bg-pir-surface-0 px-4 py-5 text-body text-pir-text-muted",children:s.empty}),i.map(e=>(0,n.jsxs)("section",{className:"flex flex-col gap-3",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("h2",{className:"font-mono text-caption uppercase tracking-[0.1em] text-pir-text-tertiary",children:e.name}),(0,n.jsx)("span",{className:"rounded border border-pir bg-pir-surface-1 px-1.5 py-0.5 font-mono text-[10px] text-pir-text-muted",children:e.projects.length})]}),(0,n.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:e.projects.map(e=>{var t;let i=function(e){let t=e.task_counts,r=t.pending+t.approved+t.in_progress+t.review+t.completed+t.failed,n=t.completed,s=t.pending+t.approved+t.in_progress+t.review+t.failed,a=r>0?Math.round(n/r*100):0;return{total:r,completed:n,open:s,percent:a}}(e);return(0,n.jsxs)(a(),{href:"/projects/?slug=".concat(encodeURIComponent(e.slug)),"data-tour":"project-row",className:"group rounded border border-pir bg-pir-surface-0 px-4 py-3 text-left transition-colors hover:border-pir-accent",style:e.color?{borderTopColor:e.color}:void 0,children:[(0,n.jsxs)("div",{className:"flex items-start gap-3",children:[(0,n.jsx)(b,{color:e.color}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("div",{className:"truncate text-label font-semibold text-pir-text-primary",children:(0,c.V5)(e)}),(0,n.jsxs)("div",{className:"mt-1 flex flex-wrap gap-1.5",children:[e.type&&(0,n.jsx)("span",{className:"rounded border border-pir bg-pir-surface-1 px-1.5 py-0.5 text-caption text-pir-text-muted",children:"code"===e.type?r.projects.dashboard.code:r.projects.dashboard.noCode}),e.scope&&(0,n.jsx)("span",{className:"rounded border border-pir bg-pir-surface-1 px-1.5 py-0.5 text-caption text-pir-text-muted",children:"personal"===e.scope?r.projects.dashboard.personal:r.projects.dashboard.work})]})]})]}),(0,n.jsx)("div",{className:"mt-3 h-1.5 overflow-hidden rounded bg-pir-surface-2",title:s.progressTooltip,children:(0,n.jsx)("div",{className:"h-full rounded bg-pir-success",style:{width:"".concat(i.percent,"%"),backgroundColor:null!=(t=e.color)?t:void 0}})}),(0,n.jsxs)("div",{className:"mt-2 flex items-center justify-between font-mono text-caption text-pir-text-muted",children:[(0,n.jsxs)("span",{children:[i.open," ",s.openTasks]}),(0,n.jsxs)("span",{children:[i.completed,"/",i.total]})]})]},e.slug)})})]},e.name))]})})}function y(e){let{slug:t,color:r,onColorChange:s,toast:a}=e,{t:i}=(0,p.k)(),d=i.projects.dashboard,[u,x]=(0,o.useState)(!1),[m,h]=(0,o.useState)(!1);async function g(e,r){h(!0);try{var n;let i=null!=(n=(await (0,l.gTd)(t,e)).color)?n:null;s(i),(0,c.Z2)({slug:t,color:i}),a(r),x(!1)}catch(e){a(d.colorError)}finally{h(!1)}}async function j(e){let t=function(e){let t=getComputedStyle(document.documentElement).getPropertyValue(e).trim();return(0,c.nl)(t)}(e);if(!t)return void a(d.colorError);await g(t,d.colorSaved)}return(0,n.jsxs)("div",{className:"relative inline-flex",children:[(0,n.jsxs)("button",{type:"button",onClick:()=>x(e=>!e),"aria-label":d.color,className:"flex h-8 items-center gap-2 rounded border border-pir bg-pir-surface-1 px-2 text-caption text-pir-text-secondary transition-colors hover:border-pir-accent hover:text-pir-text-primary",children:[(0,n.jsx)(b,{color:r,size:"lg"}),(0,n.jsx)("span",{children:d.color})]}),u&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button","aria-label":i.projects.editor.close,className:"fixed inset-0 z-40 cursor-default",onClick:()=>x(!1)}),(0,n.jsxs)("div",{className:"absolute left-0 top-10 z-50 flex min-w-48 flex-col gap-2 rounded border border-pir bg-pir-surface-0 p-3 shadow-xl",children:[(0,n.jsx)("div",{className:"flex gap-2",children:f.map((e,t)=>(0,n.jsx)("button",{type:"button",disabled:m,"aria-label":"".concat(d.color," ").concat(t+1),onClick:()=>void j(e),className:"h-7 w-7 rounded border border-pir transition-transform hover:scale-105 disabled:opacity-50",style:{backgroundColor:"hsl(var(".concat(e,"))")}},e))}),(0,n.jsx)("button",{type:"button",disabled:m,onClick:()=>void g(null,d.colorReset),className:"h-8 rounded border border-pir bg-pir-surface-1 px-2 text-caption text-pir-text-tertiary transition-colors hover:border-pir-accent hover:text-pir-text-primary disabled:opacity-50",children:d.resetColor})]})]})]})}function v(e){let{slug:t,tasks:r}=e,{t:s}=(0,p.k)(),a=s.projects.dashboard,o=(0,i.useRouter)(),l=(0,c.GI)(r),d=()=>o.push("/tasks?project=".concat(encodeURIComponent(t))),u=[{label:a.pulseOpen,value:String(l.open),onClick:d},{label:a.pulseReview,value:String(l.review),onClick:d},{label:a.pulseProgress,value:l.fraction,title:a.pulseProgressTooltip,suffix:"".concat(l.percent,"%")}];return(0,n.jsx)("div",{className:"grid gap-3 md:grid-cols-3",children:u.map(e=>{let t=e.onClick?"button":"div";return(0,n.jsxs)(t,{type:e.onClick?"button":void 0,onClick:e.onClick,title:e.title,className:"min-h-20 rounded border border-pir bg-pir-surface-0 px-4 py-3 text-left ".concat(e.onClick?"transition-colors hover:border-pir-accent":""),children:[(0,n.jsx)("div",{className:"font-mono text-caption uppercase tracking-[0.08em] text-pir-text-muted",children:e.label}),(0,n.jsxs)("div",{className:"mt-2 flex items-end justify-between gap-3",children:[(0,n.jsx)("span",{className:"text-heading text-pir-text-primary",children:e.value}),e.suffix&&(0,n.jsx)("span",{className:"font-mono text-caption text-pir-text-muted",children:e.suffix})]})]},e.label)})})}function N(e){let{journals:t}=e,{t:r}=(0,p.k)(),s=r.projects.dashboard,a=t.flatMap(e=>e.progressGroups.flatMap(t=>t.items.map(r=>({...r,day:e.cycleKey,project:t.project})))).slice(0,6);return(0,n.jsx)(g,{title:s.diary,caption:s.diarySource,count:a.length,children:0===a.length?(0,n.jsx)("p",{className:"text-body text-pir-text-muted",children:s.diaryEmpty}):(0,n.jsx)("div",{className:"divide-y divide-pir",children:a.map(e=>(0,n.jsxs)("article",{className:"grid grid-cols-[72px_minmax(0,1fr)] gap-3 py-3",children:[(0,n.jsx)("span",{className:"font-mono text-caption text-pir-text-muted",children:e.day}),(0,n.jsx)("p",{className:"text-body leading-relaxed text-pir-text-secondary",children:e.text})]},e.id))})})}function w(e){let{decisions:t}=e,{t:r}=(0,p.k)(),s=r.projects.dashboard;return(0,n.jsx)(g,{title:s.decisions,caption:s.decisionsPath,count:t.length,children:0===t.length?(0,n.jsx)("p",{className:"text-body text-pir-text-muted",children:s.decisionsEmpty}):(0,n.jsx)("div",{className:"flex flex-col gap-2",children:t.map(e=>(0,n.jsxs)("article",{className:"rounded border border-pir bg-pir-surface-0 px-3 py-3 ".concat("superseded"===e.status?"opacity-70":""),children:[(0,n.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsx)("h3",{className:"truncate text-label font-semibold text-pir-text-primary",children:e.title}),e.excerpt&&(0,n.jsx)("p",{className:"mt-1 text-body leading-relaxed text-pir-text-tertiary",children:e.excerpt})]}),(0,n.jsx)("span",{className:"shrink-0 rounded border px-2 py-0.5 text-caption ".concat("superseded"===e.status?"border-pir bg-pir-surface-1 text-pir-text-muted":"border-pir-success/40 bg-pir-success/10 text-pir-success"),children:"superseded"===e.status?s.superseded:s.current})]}),(0,n.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2 font-mono text-caption text-pir-text-muted",children:[e.date&&(0,n.jsx)("span",{children:e.date}),(0,n.jsx)("span",{children:e.filename}),e.supersededBy&&(0,n.jsx)("span",{children:e.supersededBy})]})]},e.filename))})})}function k(e){let{slug:t,questions:r,toast:s}=e,{t:a}=(0,p.k)(),i=a.projects.dashboard,[c,d]=(0,o.useState)(null);async function u(e){d(e.id);try{await (0,l.qmB)({text:e.text,type:"decidi",project:t,source:"brain",source_ref:e.sourceRef}),s(i.addedTodo)}catch(e){s(i.todoError)}finally{d(null)}}return(0,n.jsx)(g,{title:i.questions,count:r.length,children:0===r.length?(0,n.jsx)("p",{className:"text-body text-pir-text-muted",children:i.questionsEmpty}):(0,n.jsx)("div",{className:"divide-y divide-pir",children:r.map(e=>(0,n.jsxs)("div",{className:"flex items-start gap-3 py-3",children:[(0,n.jsx)("span",{className:"mt-2 h-1.5 w-1.5 shrink-0 rounded-full bg-pir-accent","aria-hidden":!0}),(0,n.jsx)("p",{className:"min-w-0 flex-1 text-body leading-relaxed text-pir-text-secondary",children:e.text}),(0,n.jsx)("button",{type:"button",disabled:c===e.id,onClick:()=>void u(e),className:"shrink-0 rounded border border-pir bg-pir-surface-1 px-2 py-1 text-caption text-pir-text-tertiary transition-colors hover:border-pir-accent hover:text-pir-text-primary disabled:opacity-50",children:i.addTodo})]},e.id))})})}function C(e){let{learnings:t}=e,{t:r}=(0,p.k)(),s=r.projects.dashboard;return(0,n.jsx)(g,{title:s.brain,caption:s.brainSource,count:t.length,children:0===t.length?(0,n.jsx)("p",{className:"text-body text-pir-text-muted",children:s.brainEmpty}):(0,n.jsx)("div",{className:"flex flex-col gap-2",children:t.map(e=>(0,n.jsxs)("article",{className:"rounded border border-pir bg-pir-surface-0 px-3 py-3",children:[(0,n.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,n.jsx)("h3",{className:"text-label font-semibold text-pir-text-primary",children:e.title}),(0,n.jsx)("span",{className:"rounded border border-pir bg-pir-surface-1 px-1.5 py-0.5 font-mono text-caption text-pir-text-muted",children:e.severity})]}),(0,n.jsx)("p",{className:"mt-1 text-body leading-relaxed text-pir-text-tertiary",children:e.prevention||e.description}),(0,n.jsx)("div",{className:"mt-2 flex flex-wrap gap-1.5",children:e.tags.slice(0,4).map(e=>(0,n.jsx)("span",{className:"rounded border border-pir bg-pir-surface-1 px-1.5 py-0.5 text-caption text-pir-text-muted",children:e},e))})]},e.id))})})}function S(e){let{docs:t,onClose:r,onOpen:s}=e,{t:a}=(0,p.k)(),i=a.projects.docsModal,[l,d]=(0,o.useState)(""),[u,x]=(0,o.useState)("all"),m=(0,o.useMemo)(()=>["all",...Array.from(new Set(t.map(c.RL)))],[t]),f=t.filter(e=>{var t;let r=(0,c.RL)(e),n="".concat(e.filename," ").concat(null!=(t=e.title)?t:"").toLowerCase();return("all"===u||u===r)&&n.includes(l.trim().toLowerCase())});return(0,n.jsxs)("div",{className:"fixed inset-0 z-[85] flex items-center justify-center p-4",children:[(0,n.jsx)("button",{type:"button","aria-label":a.projects.editor.close,className:"absolute inset-0 cursor-default bg-pir-base/70",onClick:r}),(0,n.jsxs)("section",{className:"relative flex max-h-[82vh] w-[min(92vw,680px)] flex-col overflow-hidden rounded border border-pir bg-pir-surface-0 text-pir-text-primary shadow-xl",children:[(0,n.jsxs)("header",{className:"flex items-center justify-between border-b border-pir px-4 py-3",children:[(0,n.jsx)("h2",{className:"text-label font-semibold",children:i.title}),(0,n.jsx)("button",{type:"button",onClick:r,className:"rounded border border-pir bg-pir-surface-1 px-2 py-1 text-caption text-pir-text-muted hover:text-pir-text-primary",children:a.projects.editor.close})]}),(0,n.jsxs)("div",{className:"border-b border-pir px-4 py-3",children:[(0,n.jsx)("input",{value:l,onChange:e=>d(e.target.value),placeholder:i.search,"aria-label":i.search,className:"h-8 w-full rounded border border-pir bg-pir-base px-3 text-body text-pir-text-primary outline-none placeholder:text-pir-text-muted focus:border-pir-accent"}),(0,n.jsx)("div",{className:"mt-2 flex flex-wrap gap-1.5",children:m.map(e=>(0,n.jsx)("button",{type:"button",onClick:()=>x(e),className:"rounded border px-2 py-1 text-caption transition-colors ".concat(u===e?"border-pir-accent bg-pir-accent/10 text-pir-text-primary":"border-pir bg-pir-surface-1 text-pir-text-muted hover:text-pir-text-primary"),children:"all"===e?i.all:e},e))})]}),(0,n.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto p-3",children:[0===f.length&&(0,n.jsx)("p",{className:"px-1 py-4 text-body text-pir-text-muted",children:i.empty}),(0,n.jsx)("div",{className:"flex flex-col gap-2",children:f.map(e=>(0,n.jsxs)("button",{type:"button",onClick:()=>s(e),className:"rounded border border-pir bg-pir-surface-1 px-3 py-2 text-left transition-colors hover:border-pir-accent",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,n.jsx)("span",{className:"min-w-0 truncate font-mono text-caption text-pir-text-secondary",children:e.title||e.filename}),(0,n.jsx)("span",{className:"shrink-0 text-caption text-pir-text-muted",children:i.open})]}),(0,n.jsx)("div",{className:"mt-1 font-mono text-[10px] text-pir-text-muted",children:e.filename})]},e.filename))})]})]})]})}function _(e){let{slug:t,doc:r,onClose:s,toast:a}=e,{t:i}=(0,p.k)(),d=i.projects.editor,[f,h]=(0,o.useState)(""),[b,g]=(0,o.useState)(""),[j,y]=(0,o.useState)("preview"),[v,N]=(0,o.useState)(!1),[w,k]=(0,o.useState)(!1),[C,S]=(0,o.useState)(null),_=!!(r&&(0,c.wO)(r.filename));async function E(){if(r){k(!0),S(null);try{let e=await (0,l.fue)(t,r.filename,b);h(e.content),g(e.content),y("preview"),a(d.saved)}catch(e){S(d.saveError)}finally{k(!1)}}}return(0,o.useEffect)(()=>{if(!r||!_)return;let e=new AbortController;return N(!0),S(null),(0,l.c2b)(t,r.filename,{signal:e.signal}).then(e=>{h(e.content),g(e.content),y("preview")}).catch(e=>{e instanceof DOMException&&"AbortError"===e.name||S(d.loadError)}).finally(()=>{e.signal.aborted||N(!1)}),()=>e.abort()},[r,_,t,d.loadError]),(0,n.jsx)(u._,{open:!!r,onClose:s,widthClassName:"w-[min(94vw,680px)]",header:(0,n.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-3",children:[(0,n.jsx)("div",{className:"min-w-0",children:(0,n.jsx)("h2",{className:"truncate font-mono text-label text-pir-text-primary",children:null==r?void 0:r.filename})}),(0,n.jsx)("button",{type:"button",onClick:s,className:"rounded border border-pir bg-pir-surface-1 px-2 py-1 text-caption text-pir-text-muted hover:text-pir-text-primary",children:d.close})]}),actions:_?(0,n.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,n.jsx)("button",{type:"button",onClick:()=>y("preview"),className:"rounded border px-2.5 py-1 text-caption ".concat("preview"===j?"border-pir-accent bg-pir-accent/10 text-pir-text-primary":"border-pir bg-pir-surface-1 text-pir-text-muted"),children:d.preview}),(0,n.jsx)("button",{type:"button",onClick:()=>y("edit"),className:"rounded border px-2.5 py-1 text-caption ".concat("edit"===j?"border-pir-accent bg-pir-accent/10 text-pir-text-primary":"border-pir bg-pir-surface-1 text-pir-text-muted"),children:d.edit}),(0,n.jsx)("button",{type:"button",disabled:w||"edit"!==j,onClick:()=>void E(),className:"rounded border border-pir-accent bg-pir-accent/10 px-3 py-1 text-caption text-pir-text-primary transition-colors hover:bg-pir-accent/20 disabled:opacity-50",children:w?d.saving:d.save})]}):void 0,children:_?v?(0,n.jsx)("p",{className:"text-body text-pir-text-muted",children:i.projects.dashboard.loading}):C?(0,n.jsx)(m.$,{message:C}):"edit"===j?(0,n.jsx)("textarea",{value:b,onChange:e=>g(e.target.value),spellCheck:!1,className:"min-h-[520px] w-full resize-none rounded border border-pir bg-pir-base p-3 font-mono text-body leading-relaxed text-pir-text-primary outline-none focus:border-pir-accent"}):(0,n.jsx)(x.A,{content:f}):(0,n.jsx)("div",{className:"flex h-full items-center justify-center text-center text-body text-pir-text-muted",children:d.unsupported})})}function E(e){let{slug:t,project:r,docs:s,toast:a}=e,{t:i}=(0,p.k)(),l=i.projects.dashboard,d=(0,o.useMemo)(()=>(0,c.it)(s),[s]),u=d.slice(0,4),[x,m]=(0,o.useState)(!1),[f,b]=(0,o.useState)(null);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(g,{title:l.docs,count:s.length,children:["code"===r.type&&(0,n.jsx)("p",{className:"mb-3 rounded border border-pir bg-pir-surface-0 px-3 py-2 text-caption text-pir-text-muted",children:l.docsCodeCaption}),0===u.length?(0,n.jsx)("p",{className:"text-body text-pir-text-muted",children:l.docsEmpty}):(0,n.jsx)("div",{className:"flex flex-col gap-2",children:u.map(e=>(0,n.jsxs)("button",{type:"button",onClick:()=>b(e),className:"rounded border border-pir bg-pir-surface-0 px-3 py-2 text-left transition-colors hover:border-pir-accent",children:[(0,n.jsx)("div",{className:"truncate font-mono text-caption text-pir-text-secondary",children:e.title||e.filename}),(0,n.jsxs)("div",{className:"mt-1 flex items-center justify-between gap-2 font-mono text-[10px] text-pir-text-muted",children:[(0,n.jsx)("span",{className:"truncate",children:e.filename}),(0,n.jsx)("span",{children:(0,c.RL)(e)})]})]},e.filename))}),s.length>u.length&&(0,n.jsx)("button",{type:"button",onClick:()=>m(!0),className:"mt-3 rounded border border-pir bg-pir-surface-1 px-2.5 py-1 text-caption text-pir-text-tertiary transition-colors hover:border-pir-accent hover:text-pir-text-primary",children:h(l.viewAllDocs,s.length)})]}),x&&(0,n.jsx)(S,{docs:d,onClose:()=>m(!1),onOpen:e=>{m(!1),b(e)}}),(0,n.jsx)(_,{slug:t,doc:f,onClose:()=>b(null),toast:a})]})}function R(e){let{currentSlug:t,programs:r,relations:s,onRelationsChange:a,toast:i}=e,{t:d}=(0,p.k)(),u=d.projects.dashboard,x=(0,c.er)(r),[m,f]=(0,o.useState)(!1),[g,j]=(0,o.useState)(""),[y,v]=(0,o.useState)("related"),N=m?s:s.slice(0,2),w=x.filter(e=>e.slug!==t&&!s.some(t=>t.slug===e.slug));async function k(){if(g)try{await (0,l.Gim)({src_slug:t,dst_slug:g,kind:y}),a([...s,{slug:g,kind:y}]),j(""),i(u.relationSaved)}catch(e){i(u.relationError)}}async function C(e){try{await (0,l.aSZ)({src_slug:t,dst_slug:e.slug,kind:e.kind}),a(s.filter(t=>t.slug!==e.slug||t.kind!==e.kind)),i(u.relationRemoved)}catch(e){i(u.relationError)}}return(0,n.jsxs)("div",{className:"mt-4 border-t border-pir pt-4",children:[(0,n.jsx)("div",{className:"mb-2 font-mono text-caption uppercase tracking-[0.08em] text-pir-text-muted",children:u.relations}),(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[N.map(e=>{let t=x.find(t=>t.slug===e.slug);return(0,n.jsxs)("span",{className:"inline-flex max-w-full items-center gap-2 rounded border border-pir bg-pir-surface-1 px-2 py-1 text-caption text-pir-text-secondary",children:[(0,n.jsx)(b,{color:null==t?void 0:t.color,size:"sm"}),(0,n.jsx)("span",{className:"truncate",children:t?(0,c.V5)(t):e.slug}),(0,n.jsx)("span",{className:"font-mono text-[10px] uppercase text-pir-text-muted",children:"depends_on"===e.kind?u.relationDepends:u.relationRelated}),(0,n.jsx)("button",{type:"button",onClick:()=>void C(e),className:"text-pir-text-muted hover:text-pir-text-primary","aria-label":"".concat(u.removeRelation,": ").concat(e.slug),children:"x"})]},"".concat(e.slug,":").concat(e.kind))}),!m&&s.length>N.length&&(0,n.jsx)("button",{type:"button",onClick:()=>f(!0),className:"rounded border border-pir bg-pir-surface-1 px-2 py-1 text-caption text-pir-text-muted",children:h(u.more,s.length-N.length)}),m&&s.length>2&&(0,n.jsx)("button",{type:"button",onClick:()=>f(!1),className:"rounded border border-pir bg-pir-surface-1 px-2 py-1 text-caption text-pir-text-muted",children:u.collapse})]}),(0,n.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[(0,n.jsxs)("select",{value:g,onChange:e=>j(e.target.value),"aria-label":u.addRelation,className:"h-8 min-w-44 rounded border border-pir bg-pir-surface-1 px-2 text-caption text-pir-text-primary outline-none focus:border-pir-accent",children:[(0,n.jsx)("option",{value:"",children:u.addRelation}),w.map(e=>(0,n.jsx)("option",{value:e.slug,children:(0,c.V5)(e)},e.slug))]}),(0,n.jsxs)("select",{value:y,onChange:e=>v(e.target.value),"aria-label":u.relations,className:"h-8 rounded border border-pir bg-pir-surface-1 px-2 text-caption text-pir-text-primary outline-none focus:border-pir-accent",children:[(0,n.jsx)("option",{value:"related",children:u.relationRelated}),(0,n.jsx)("option",{value:"depends_on",children:u.relationDepends})]}),(0,n.jsx)("button",{type:"button",onClick:()=>void k(),disabled:!g,className:"h-8 rounded border border-pir-accent bg-pir-accent/10 px-3 text-caption text-pir-text-primary transition-colors hover:bg-pir-accent/20 disabled:opacity-50",children:u.addRelation})]})]})}function A(e){var t,r,s,i,o,l,c,d;let{project:u,tasks:x,branches:m,commits:f}=e,{t:h}=(0,p.k)(),b=h.projects.dashboard;if("code"!==u.type)return null;let j=null!=(l=null!=(o=null==(t=m.find(e=>e.is_current))?void 0:t.name)?o:null==(r=m[0])?void 0:r.name)?l:null,y=x.filter(e=>e.pr_status),v=null!=(c=null==(s=u.repo_path)?void 0:s.split("/").filter(Boolean).pop())?c:u.slug,N=null!=(d=null==(i=f[0])?void 0:i.hash_short)?d:null;return(0,n.jsx)(g,{title:b.codePanel,children:(0,n.jsxs)("div",{className:"rounded border border-pir bg-pir-surface-0 px-3 py-3",children:[(0,n.jsx)("p",{className:"mb-3 rounded border border-pir bg-pir-surface-1 px-3 py-2 text-caption text-pir-text-muted",children:b.codeBanner}),(0,n.jsxs)("div",{className:"grid gap-2 font-mono text-caption text-pir-text-secondary",children:[(0,n.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,n.jsx)("span",{className:"text-pir-text-muted",children:"repo"}),(0,n.jsx)("span",{className:"truncate",children:v})]}),(0,n.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,n.jsx)("span",{className:"text-pir-text-muted",children:b.branch}),(0,n.jsx)("span",{className:"truncate",children:null!=j?j:"-"})]}),N&&(0,n.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,n.jsx)("span",{className:"text-pir-text-muted",children:"commit"}),(0,n.jsx)("span",{children:N})]})]}),(0,n.jsxs)("div",{className:"mt-3 border-t border-pir pt-3",children:[(0,n.jsx)("div",{className:"mb-2 font-mono text-caption uppercase text-pir-text-muted",children:b.pullRequests}),0===y.length?(0,n.jsx)("p",{className:"text-caption text-pir-text-muted",children:b.noPullRequests}):(0,n.jsx)("div",{className:"flex flex-col gap-1.5",children:y.map(e=>(0,n.jsx)(a(),{href:"/tasks?project=".concat(encodeURIComponent(u.slug)),className:"rounded border border-pir bg-pir-surface-1 px-2 py-1 text-caption text-pir-text-secondary hover:border-pir-accent",children:e.title},e.id))})]})]})})}function L(e){let{message:t}=e;return t?(0,n.jsx)("div",{role:"status",className:"fixed bottom-10 right-6 z-[100] rounded border border-pir bg-pir-surface-1 px-3 py-2 text-label text-pir-text-primary shadow-xl",children:t}):null}function z(e){var t,r,s,u;let{slug:x,programs:f,selectedProject:h,onProjectColorChange:b}=e,{t:g}=(0,p.k)(),j=g.projects.dashboard,S=(0,i.useRouter)(),[_,z]=(0,o.useState)(null),[M,I]=(0,o.useState)([]),[T,q]=(0,o.useState)([]),[D,W]=(0,o.useState)([]),[P,F]=(0,o.useState)([]),[B,H]=(0,o.useState)([]),[$,O]=(0,o.useState)([]),[U,K]=(0,o.useState)([]),[V,G]=(0,o.useState)([]),[Y,J]=(0,o.useState)([]),[Z,Q]=(0,o.useState)(!0),[X,ee]=(0,o.useState)(null),[et,er]=(0,o.useState)(null);if((0,o.useEffect)(()=>{if(!et)return;let e=window.setTimeout(()=>er(null),2200);return()=>window.clearTimeout(e)},[et]),(0,o.useEffect)(()=>{let e=new AbortController;return Q(!0),ee(null),Promise.all([(0,l.vFi)(x,{signal:e.signal,deep:!0}),(0,l.VkA)({project:x,detailed:!0,limit:500,sort:"updated_at:desc"},{signal:e.signal}),(0,l.QK7)({scope_type:"project",scope_key:x,limit:20},{signal:e.signal}),(0,l.Fdt)(x,{signal:e.signal}),(0,l.cF1)({project:x,limit:6},{signal:e.signal})]).then(async t=>{let[r,n,s,a,i]=t;if(e.signal.aborted)return;z(r),I(n);let o=s.items.map(e=>(0,d.nR)(e));q(o),W(o.flatMap(e=>e.decisions).slice(0,6)),F(a),O(i),K((0,c.AQ)(r));let p=a.filter(c.l3),u=await Promise.all(p.map(async t=>{try{let r=await (0,l.c2b)(x,t.filename,{signal:e.signal});return(0,c.$H)(t,r.content)}catch(e){return(0,c.$H)(t,"")}}));e.signal.aborted||H(u)}).catch(e=>{e instanceof DOMException&&"AbortError"===e.name||ee(e instanceof Error?e.message:j.error)}).finally(()=>{e.signal.aborted||Q(!1)}),()=>e.abort()},[x,j.error]),(0,o.useEffect)(()=>{if(!_||"code"!==_.type){G([]),J([]);return}let e=new AbortController;return Promise.all([(0,l.yCZ)(x,{signal:e.signal}),(0,l.W$t)(x,5,{signal:e.signal})]).then(t=>{let[r,n]=t;e.signal.aborted||(G(r),J(n))}).catch(()=>{}),()=>e.abort()},[_,x]),Z)return(0,n.jsx)("div",{className:"flex min-h-0 flex-1 items-center justify-center text-body text-pir-text-muted",children:j.loading});if(X||!_)return(0,n.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col items-center justify-center gap-3",children:[(0,n.jsx)(m.$,{message:X||j.error}),(0,n.jsx)("button",{type:"button",onClick:()=>S.push("/projects/"),className:"rounded border border-pir bg-pir-surface-1 px-3 py-1 text-caption text-pir-text-secondary hover:border-pir-accent",children:j.back})]});let en=null!=(r=null!=(t=_.color)?t:null==h?void 0:h.color)?r:null;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{"data-tour":"project-dash",className:"min-h-0 flex-1 overflow-y-auto",children:[(0,n.jsx)("header",{className:"border-b border-pir px-6 py-5 md:px-8",style:{"--project-color":null!=en?en:"hsl(var(--pir-surface-2))",background:"linear-gradient(180deg, color-mix(in srgb, var(--project-color) 14%, transparent), transparent)"},children:(0,n.jsxs)("div",{className:"mx-auto max-w-6xl",children:[(0,n.jsxs)("div",{className:"mb-3 flex items-center gap-2 text-caption text-pir-text-muted",children:[(0,n.jsx)("button",{type:"button",onClick:()=>S.push("/projects/"),className:"hover:text-pir-text-primary",children:j.breadcrumbRoot}),(0,n.jsx)("span",{children:"/"}),_.program&&(0,n.jsx)("span",{children:_.program})]}),(0,n.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsxs)("div",{className:"flex items-center gap-3",children:[(0,n.jsx)(y,{slug:x,color:en,onColorChange:function(e){z(t=>t?{...t,color:e}:t),b(x,e)},toast:er}),(0,n.jsx)("h1",{className:"truncate text-heading text-pir-text-primary",children:_.name||x})]}),_.description&&(0,n.jsx)("p",{className:"mt-2 max-w-3xl text-body leading-relaxed text-pir-text-secondary",children:_.description}),(0,n.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[_.program&&(0,n.jsx)("span",{className:"rounded border border-pir bg-pir-surface-0 px-2 py-1 text-caption text-pir-text-muted",children:_.program}),_.type&&(0,n.jsx)("span",{className:"rounded border border-pir bg-pir-surface-0 px-2 py-1 text-caption text-pir-text-muted",children:"code"===_.type?j.code:j.noCode}),_.scope&&(0,n.jsx)("span",{className:"rounded border border-pir bg-pir-surface-0 px-2 py-1 text-caption text-pir-text-muted",children:"personal"===_.scope?j.personal:j.work}),_.language&&(0,n.jsx)("span",{className:"rounded border border-pir bg-pir-surface-0 px-2 py-1 text-caption text-pir-text-muted",children:_.language}),(0,n.jsxs)("span",{className:"rounded border border-pir bg-pir-surface-0 px-2 py-1 text-caption text-pir-text-muted",children:[j.status,": ",(0,n.jsx)("span",{className:"text-pir-text-secondary",children:(null!=(u=null!=(s=_.lifecycle)?s:_.phase)?u:"active").replace(/[_-]+/g," ").replace(/\b\w/g,e=>e.toUpperCase())}),(0,n.jsx)("span",{className:"ml-2 font-mono text-[10px] text-pir-text-muted",children:j.statusCaption})]})]})]}),(0,n.jsx)(a(),{href:"/tasks?project=".concat(encodeURIComponent(x)),className:"rounded border border-pir bg-pir-surface-1 px-3 py-2 text-caption text-pir-text-secondary transition-colors hover:border-pir-accent hover:text-pir-text-primary",children:j.headerTaskButton})]}),(0,n.jsx)(R,{currentSlug:x,programs:f,relations:U,onRelationsChange:K,toast:er})]})}),(0,n.jsxs)("main",{className:"mx-auto grid max-w-6xl gap-6 px-6 py-6 md:grid-cols-[minmax(0,1.25fr)_minmax(320px,0.85fr)] md:px-8",children:[(0,n.jsxs)("div",{className:"flex min-w-0 flex-col gap-7",children:[(0,n.jsx)(v,{slug:x,tasks:M}),(0,n.jsx)(N,{journals:T}),(0,n.jsx)(w,{decisions:B}),(0,n.jsx)(k,{slug:x,questions:D,toast:er}),(0,n.jsx)(A,{project:_,tasks:M,branches:V,commits:Y})]}),(0,n.jsxs)("div",{className:"flex min-w-0 flex-col gap-7",children:[(0,n.jsx)(C,{learnings:$}),(0,n.jsx)(E,{slug:x,project:_,docs:P,toast:er})]})]})]}),(0,n.jsx)(L,{message:et})]})}function M(){let{t:e}=(0,p.k)(),t=(0,i.useSearchParams)().get("slug"),[r,s]=(0,o.useState)([]),[a,d]=(0,o.useState)(!0),u=(0,o.useMemo)(()=>(0,c.t1)(r,t),[r,t]);return((0,o.useEffect)(()=>{let e=new AbortController;return(0,l.ubq)({signal:e.signal}).then(s).catch(()=>{}).finally(()=>{e.signal.aborted||d(!1)}),()=>e.abort()},[]),a)?(0,n.jsx)("div",{className:"flex min-h-0 flex-1 items-center justify-center text-body text-pir-text-muted",children:e.projects.dashboard.loading}):t?(0,n.jsx)(z,{slug:t,programs:r,selectedProject:u,onProjectColorChange:function(e,t){s(r=>(0,c.r0)(r,e,t))}}):(0,n.jsx)(j,{programs:r})}function I(){return(0,n.jsx)(o.Suspense,{fallback:null,children:(0,n.jsx)(M,{})})}},8937:(e,t,r)=>{r.d(t,{A:()=>h});var n=r(5155),s=r(2115),a=r(63),i=r(960),o=r(9461);let l="marvis-project-collapsed-groups",c="marvis-project-hidden-groups";function d(e){try{let t=localStorage.getItem(e);if(!t)return new Set;let r=JSON.parse(t);return Array.isArray(r)?new Set(r):new Set}catch(e){return new Set}}function p(e,t){try{localStorage.setItem(e,JSON.stringify([...t]))}catch(e){}}let u=function(){let e=(0,a.useRouter)(),t=(0,a.useSearchParams)().get("slug"),[r,o]=(0,s.useState)([]),[u,x]=(0,s.useState)(!0),[m,f]=(0,s.useState)(""),[h,b]=(0,s.useState)(d(l)),[g,j]=(0,s.useState)(d(c)),[y,v]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let e=new AbortController;return(0,i.ubq)({signal:e.signal}).then(o).catch(()=>{}).finally(()=>x(!1)),()=>e.abort()},[]);let N=(0,s.useCallback)(e=>{b(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),p(l,r),r})},[]),w=(0,s.useCallback)(e=>{j(t=>{let r=new Set(t);return r.add(e),p(c,r),r})},[]),k=(0,s.useCallback)(e=>{j(t=>{let r=new Set(t);return r.delete(e),p(c,r),r})},[]),C=(0,s.useCallback)(()=>{j(new Set),p(c,new Set)},[]),S=(0,s.useCallback)(t=>e.push("/projects/detail/?slug=".concat(encodeURIComponent(t))),[e]),_=m.trim().toLowerCase(),E=(0,s.useMemo)(()=>r.map(e=>({...e,projects:e.projects.filter(e=>!!e.on_server&&(!_||e.slug.toLowerCase().includes(_)||(e.name||"").toLowerCase().includes(_)))})).filter(e=>e.projects.length>0),[r,_]).filter(e=>!g.has(e.name));return(0,n.jsxs)("aside",{className:"w-60 bg-pir-surface-0 border-r border-pir flex flex-col h-full shrink-0 overflow-hidden",children:[(0,n.jsx)("div",{className:"border-b border-pir",style:{padding:"10px 12px 8px"},children:(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":!0,className:"absolute text-pir-text-muted",style:{left:6,top:"50%",transform:"translateY(-50%)"},children:[(0,n.jsx)("circle",{cx:"11",cy:"11",r:"7"}),(0,n.jsx)("path",{d:"m21 21-4.3-4.3"})]}),(0,n.jsx)("input",{type:"text",value:m,onChange:e=>f(e.target.value),placeholder:"Filter projects…",className:"w-full bg-pir-base border border-pir text-pir-text-secondary placeholder:text-pir-text-muted font-mono outline-none focus:border-pir-accent transition-colors",style:{fontSize:11,fontWeight:500,padding:"5px 8px 5px 22px",borderRadius:2,boxSizing:"border-box"}})]})}),(0,n.jsxs)("div",{className:"flex-1 overflow-y-auto",style:{padding:"8px 0 4px"},children:[u&&(0,n.jsx)("div",{className:"px-3 py-2 text-pir-text-muted text-[11px]",children:"Loading…"}),!u&&0===E.length&&(0,n.jsx)("div",{className:"px-3 py-4 text-pir-text-muted text-[11px]",children:"No projects match."}),E.map(e=>{let r=h.has(e.name);return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>N(e.name),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),N(e.name))},"aria-expanded":!r,className:"flex justify-between items-center cursor-pointer hover:bg-pir-surface-1/60 transition-colors",style:{padding:"10px 12px 6px 12px"},children:[(0,n.jsxs)("span",{className:"text-pir-accent relative uppercase",style:{fontFamily:"var(--pir-font-mono, ui-monospace, monospace)",fontWeight:600,fontSize:9,letterSpacing:"0.2em",paddingLeft:8,lineHeight:1},children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"absolute bg-pir-accent",style:{left:0,top:"50%",width:3,height:3,transform:"translateY(-50%)"}}),e.name]}),(0,n.jsxs)("span",{className:"flex items-center gap-2 text-pir-text-muted",style:{fontFamily:"var(--pir-font-mono, ui-monospace, monospace)",fontWeight:500,fontSize:9,lineHeight:1},children:[(0,n.jsx)("span",{children:e.projects.length}),(0,n.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),w(e.name)},"aria-label":"Hide program ".concat(e.name),title:"Hide group",className:"text-pir-text-muted hover:text-pir-text-primary bg-transparent border-0 p-0 inline-flex items-center justify-center cursor-pointer",style:{width:13,height:13,opacity:.4,transition:"opacity 150ms"},onMouseEnter:e=>e.currentTarget.style.opacity="0.9",onMouseLeave:e=>e.currentTarget.style.opacity="0.4",children:(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[(0,n.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8S1 12 1 12z"}),(0,n.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})}),(0,n.jsx)("span",{"aria-hidden":!0,className:"text-pir-text-muted",style:{fontFamily:"var(--pir-font-mono, ui-monospace, monospace)",fontSize:9,lineHeight:1,display:"inline-block",transform:r?"rotate(0deg)":"rotate(90deg)",transition:"transform 150ms",width:9,textAlign:"center"},children:"›"})]})]}),!r&&e.projects.map(e=>{var r;let s=e.slug===t,a=function(e){if(!e)return null;let t=e.toLowerCase();return"python"===t||"py"===t?"PY":"typescript"===t||"ts"===t?"TS":"javascript"===t||"js"===t?"JS":"markdown"===t||"md"===t?"MD":"html"===t?"HT":t.slice(0,2).toUpperCase()}(null!=(r=e.language)?r:null);return(0,n.jsxs)("button",{type:"button",onClick:()=>S(e.slug),className:"w-full flex items-center gap-2 text-left bg-transparent cursor-pointer transition-colors ".concat(s?"bg-pir-success/10":"hover:bg-pir-surface-1/60"),style:{padding:"6px 12px",margin:"1px 4px",borderRadius:2,borderLeft:s?"2px solid hsl(var(--pir-success))":"2px solid transparent",border:"0",borderLeftWidth:2,borderLeftColor:s?"hsl(var(--pir-success))":"transparent",borderLeftStyle:"solid"},children:[(0,n.jsx)("span",{className:"shrink-0 rounded-full ".concat("archived"===e.lifecycle?"border border-pir-text-muted bg-transparent":"active"===e.status||"active"===e.lifecycle?"bg-pir-success":"paused"===e.status?"bg-pir-warning":"blocked"===e.status?"bg-pir-error":"bg-pir-text-muted"),style:{width:6,height:6}}),(0,n.jsx)("span",{className:s?"text-pir-text-primary font-semibold":"text-pir-text-secondary",style:{flex:1,fontFamily:"var(--pir-font-mono, ui-monospace, monospace)",fontWeight:s?600:500,fontSize:12,lineHeight:1.1,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:e.slug}),a&&(0,n.jsx)("span",{className:"text-pir-text-tertiary border border-pir shrink-0 uppercase",style:{fontFamily:"var(--pir-font-mono, ui-monospace, monospace)",fontWeight:500,fontSize:8.5,letterSpacing:"0.1em",padding:"2px 4px",borderRadius:2},children:a})]},e.slug)})]},e.name)})]}),g.size>0&&(0,n.jsxs)("div",{className:"border-t border-pir",children:[(0,n.jsxs)("button",{type:"button",onClick:()=>v(e=>!e),"aria-expanded":y,className:"text-pir-text-muted flex items-center gap-1.5 bg-transparent border-0 hover:bg-pir-surface-1/60 transition-colors text-left w-full cursor-pointer uppercase",style:{fontFamily:"var(--pir-font-mono, ui-monospace, monospace)",fontWeight:500,fontSize:10,letterSpacing:"0.15em",padding:"8px 14px",lineHeight:1},children:[(0,n.jsx)("span",{"aria-hidden":!0,children:"◎"}),g.size," hidden group",1===g.size?"":"s",(0,n.jsx)("span",{className:"ml-auto","aria-hidden":!0,children:y?"▾":"▸"})]}),y&&(0,n.jsxs)("div",{className:"flex flex-col gap-0.5 border-t border-pir",style:{padding:"4px 8px 8px"},children:[[...g].sort().map(e=>(0,n.jsxs)("div",{className:"flex items-center gap-2 text-pir-text-tertiary",style:{padding:"4px 8px",fontSize:11},children:[(0,n.jsx)("span",{className:"flex-1 truncate font-mono",children:e}),(0,n.jsx)("button",{type:"button",onClick:()=>k(e),className:"text-pir-accent hover:text-pir-text-primary bg-transparent border-0 cursor-pointer uppercase",style:{fontFamily:"var(--pir-font-mono, ui-monospace, monospace)",fontSize:9,letterSpacing:"0.12em"},children:"Unhide"})]},e)),(0,n.jsx)("button",{type:"button",onClick:C,className:"mt-1 text-pir-text-muted hover:text-pir-accent bg-transparent border-0 cursor-pointer self-start",style:{fontSize:10,padding:"2px 8px"},children:"Show all"})]})]})]})},x={work:{label:"W",className:"bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400"},code:{label:"C",className:"bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400"},system:{label:"S",className:"bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-400"}},m={active:"bg-pir-success",paused:"bg-pir-warning",blocked:"bg-pir-error",completed:"bg-pir-text-muted",not_started:"bg-pir-text-muted/50"};function f(e){var t,r;let{project:s,isActive:a,onClick:i}=e,o=s.task_counts.pending+s.task_counts.approved+s.task_counts.in_progress,l=o+s.task_counts.completed+s.task_counts.rejected+s.task_counts.failed;return(0,n.jsxs)("button",{onClick:i,"data-active":a,className:"w-full flex items-center gap-2 px-2 py-1 text-left rounded transition-colors group ".concat(a?"bg-pir-surface-2 border-l-2 border-l-pir-accent":"hover:bg-pir-surface-1 border-l-2 border-l-transparent"," ").concat("archived"===s.lifecycle?"opacity-40":""),children:[(0,n.jsx)("span",{className:"w-1.5 h-1.5 rounded-full shrink-0 ".concat(m[s.status||""]||"bg-pir-text-muted/50")}),s.type&&(0,n.jsx)("span",{className:"text-[9px] font-bold leading-none px-1 py-0.5 rounded shrink-0 ".concat((null==(t=x[s.type])?void 0:t.className)||"bg-gray-100 text-gray-600"),children:(null==(r=x[s.type])?void 0:r.label)||s.type[0].toUpperCase()}),(0,n.jsx)("span",{className:"text-caption font-medium truncate ".concat(a?"text-pir-text-primary":"text-pir-text-secondary"),children:s.slug}),l>0&&(0,n.jsxs)("span",{className:"ml-auto text-caption tabular-nums text-pir-text-tertiary shrink-0",children:[o,"/",l]})]})}function h(){return(0,o.i)()?(0,n.jsx)(u,{}):(0,n.jsx)(b,{})}function b(){let e=(0,a.useRouter)(),t=(0,a.useSearchParams)(),r=t.get("slug"),[o,l]=(0,s.useState)([]),[c,d]=(0,s.useState)(!0),[p,u]=(0,s.useState)(()=>{var e;return null!=(e=t.get("q"))?e:""}),[x,m]=(0,s.useState)(()=>{try{return JSON.parse(localStorage.getItem("pir-sidebar-collapsed")||"{}")}catch(e){return{}}}),[h,b]=(0,s.useState)(()=>"true"===localStorage.getItem("pir-show-off-server"));(0,s.useEffect)(()=>{let e=new AbortController;return(0,i.ubq)({signal:e.signal}).then(l).catch(()=>{}).finally(()=>{e.signal.aborted||d(!1)}),()=>e.abort()},[]),(0,s.useEffect)(()=>{localStorage.setItem("pir-sidebar-collapsed",JSON.stringify(x))},[x]),(0,s.useEffect)(()=>{localStorage.setItem("pir-show-off-server",h?"true":"false")},[h]);let g=(0,s.useCallback)(e=>{m(t=>({...t,[e]:!t[e]}))},[]),j=o.map(e=>({...e,projects:e.projects.filter(e=>(!!h||!!e.on_server)&&(!p||!!e.slug.toLowerCase().includes(p.toLowerCase())))})).filter(e=>e.projects.length>0),y=o.reduce((e,t)=>e+t.projects.filter(e=>!e.on_server).length,0);return(0,n.jsxs)("div",{className:"flex flex-col h-full py-2",children:[(0,n.jsx)("div",{className:"px-3 mb-2",children:(0,n.jsx)("input",{type:"text",placeholder:"Search projects...",value:p,onChange:e=>u(e.target.value),className:"w-full bg-pir-surface-1 border border-pir rounded px-2 py-1 text-caption text-pir-text-primary placeholder:text-pir-text-muted focus:outline-none focus:border-pir-accent transition-colors"})}),(0,n.jsxs)("div",{className:"flex-1 overflow-y-auto px-2 space-y-1",children:[c&&(0,n.jsx)("div",{className:"px-2 text-caption text-pir-text-muted",children:"Loading..."}),j.map(t=>(0,n.jsxs)("div",{children:[(0,n.jsxs)("button",{onClick:()=>g(t.name),className:"w-full flex items-center gap-1.5 px-1 py-1 hover:bg-pir-surface-1 rounded transition-colors group",children:[(0,n.jsx)("svg",{className:"w-3 h-3 text-pir-text-muted transition-transform ".concat(x[t.name]?"":"rotate-90"),viewBox:"0 0 12 12",fill:"currentColor",children:(0,n.jsx)("path",{d:"M4 2l4 4-4 4z"})}),(0,n.jsx)("span",{className:"text-caption font-semibold uppercase tracking-wider text-pir-text-muted",children:t.name}),(0,n.jsx)("span",{className:"text-caption text-pir-text-muted/50 ml-auto",children:t.projects.length})]}),!x[t.name]&&(0,n.jsx)("div",{className:"ml-2 space-y-px",children:t.projects.map(t=>(0,n.jsx)(f,{project:t,isActive:t.slug===r,onClick:()=>{var r;return r=t.slug,void e.push("/projects/detail/?slug=".concat(encodeURIComponent(r)))}},t.slug))})]},t.name))]}),y>0&&(0,n.jsx)("div",{className:"px-3 pt-2 border-t border-pir",children:(0,n.jsxs)("button",{onClick:()=>b(!h),className:"text-caption transition-colors ".concat(h?"text-pir-accent":"text-pir-text-muted hover:text-pir-text-secondary"),children:[h?"Hide":"Show"," off-server (",y,")"]})})]})}},9461:(e,t,r)=>{r.d(t,{i:()=>d,x:()=>p});var n=r(2115);let s="marvisx:design-v2",a="marvisx:design-v2-change",i=null;function o(e){return window.addEventListener("storage",e),window.addEventListener(a,e),()=>{window.removeEventListener("storage",e),window.removeEventListener(a,e)}}function l(){try{let e=localStorage.getItem(s);return null===e||"false"!==e}catch(e){return null!=i?i:"undefined"==typeof document||document.documentElement.classList.contains("theme-v2")}}function c(){return!0}function d(){return(0,n.useSyncExternalStore)(o,l,c)}function p(e){i=e;try{localStorage.setItem(s,e?"true":"false")}catch(e){}document.documentElement.classList.toggle("theme-v2",e),window.dispatchEvent(new Event(a))}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4281],{4281:(e,o,t)=>{t.d(o,{k:()=>l});var a=t(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"},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",filters:{all:"All",decisions:"To decide",promemoria:"Reminders",idea:"Ideas",brain:"From brain"},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:"audit recorded; the agent writes the ADR in the next brief",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..."}},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"},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",filters:{all:"Tutti",decisions:"Da decidere",promemoria:"Promemoria",idea:"Idee",brain:"Dal brain"},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:"audit registrato; l'agente scrive l'ADR al prossimo brief",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..."}},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 t=null!=(o=null==e?void 0:e.toLowerCase())?o:"";return t.startsWith("it")?"it":(t.startsWith("en"),"en")}function l(){let[e,o]=(0,a.useState)("en");(0,a.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 t=(0,a.useCallback)(e=>{o(e);try{window.localStorage.setItem(i,e)}catch(e){}window.dispatchEvent(new Event(r))},[]);return{t:n[e],locale:e,setLocale:t}}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[960],{960:(n,t,e)=>{e.d(t,{$Do:()=>X,$th:()=>tD,AJR:()=>R,BBT:()=>ny,BP5:()=>nT,BUx:()=>nV,BbJ:()=>j,C5B:()=>f,CEC:()=>n1,CWn:()=>n5,CXw:()=>tJ,D7R:()=>nl,DGl:()=>nz,DR0:()=>td,E6G:()=>nE,ELK:()=>n8,E_$:()=>tK,Enq:()=>tV,F9Q:()=>t0,FSM:()=>tz,Fdt:()=>T,GDX:()=>nI,GER:()=>Z,GW5:()=>g,Gim:()=>J,Gjd:()=>nn,Gtc:()=>tb,HHE:()=>K,Hh1:()=>nd,Htq:()=>nG,Hv1:()=>nP,ISk:()=>nB,Izr:()=>$,JAY:()=>ta,Jj6:()=>tT,KAz:()=>G,KDf:()=>nj,KG3:()=>nJ,KTX:()=>nt,L4b:()=>z,LGi:()=>c,LnC:()=>nw,M$3:()=>tN,ME7:()=>h,NL_:()=>nX,NY1:()=>nx,Q2L:()=>nK,QK7:()=>nC,QMY:()=>tc,R1R:()=>tW,R5$:()=>n0,RLU:()=>n$,Rnf:()=>U,RzM:()=>tC,Rzt:()=>n9,Sf9:()=>tM,Sxb:()=>nD,T9n:()=>tn,TKu:()=>tl,To6:()=>th,Tu0:()=>nh,UIP:()=>nA,URK:()=>tB,UTO:()=>nU,VGD:()=>tw,V_r:()=>F,VaP:()=>S,Vel:()=>tI,VkA:()=>n_,W$t:()=>P,WYS:()=>ti,Whc:()=>ne,Xgf:()=>ng,ZNw:()=>tv,ZZm:()=>ts,_4I:()=>n6,_UN:()=>nq,_qz:()=>m,aSZ:()=>Y,aWE:()=>tE,b5I:()=>t1,bSe:()=>V,bhe:()=>tX,c1B:()=>nr,c2b:()=>nM,cF1:()=>N,cuc:()=>nk,d66:()=>te,dK_:()=>tt,daf:()=>n2,drn:()=>tS,dsq:()=>no,eT_:()=>nv,eiX:()=>np,etj:()=>nS,fPY:()=>ty,fdU:()=>to,feD:()=>tG,fue:()=>nW,gBi:()=>ni,gMQ:()=>tx,gTd:()=>C,ggW:()=>nb,gjM:()=>tm,h$E:()=>B,hG:()=>tu,hN9:()=>t$,hnA:()=>t5,i2o:()=>tA,i3:()=>t_,iDC:()=>u,ipK:()=>H,j03:()=>nH,j4H:()=>nQ,jpm:()=>d,jwg:()=>v,kJN:()=>tO,kQV:()=>L,kgp:()=>tr,kiW:()=>nc,kpD:()=>tU,l5_:()=>M,l5g:()=>k,lCH:()=>nR,lp:()=>nL,n7z:()=>tf,nXN:()=>l,pfy:()=>nF,px$:()=>n3,qI:()=>tP,qJm:()=>nu,qOh:()=>y,qmB:()=>nN,rec:()=>q,rig:()=>p,slA:()=>_,slg:()=>Q,su2:()=>tq,szl:()=>tg,t4d:()=>na,t6g:()=>nY,t_o:()=>tk,uAt:()=>A,uGD:()=>b,uKQ:()=>tL,uZw:()=>n4,ubq:()=>w,ul1:()=>tj,ulo:()=>tY,uqZ:()=>n7,urp:()=>tH,vFi:()=>I,vS$:()=>tQ,vV0:()=>ns,voW:()=>tp,vrD:()=>nm,vvS:()=>nf,xnj:()=>tZ,yCZ:()=>E,yg2:()=>D,yxG:()=>nZ,zIr:()=>O,zlN:()=>tR});var i=e(6830),o=e(6253),a=e(7913);class c extends Error{constructor(n,t,e){super(n),this.name="APIError",this.status=t,this.detail=e}}function s(n,t,e){return"string"==typeof n?n:n&&"object"==typeof n&&"message"in n&&"string"==typeof n.message?n.message:401===t&&e?e:"HTTP ".concat(t)}async function r(n){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{redirectOnUnauthorized:e=!0,...o}=t,a=await fetch("".concat(i.JR).concat(n),{...o,credentials:"include",signal:o.signal,headers:{"Content-Type":"application/json",...o.headers}});if(401===a.status)throw e&&(window.location.href="/login/"),new c("Unauthorized",401);if(!a.ok){let n=await a.json().catch(()=>({}));throw new c(s(n.detail,a.status),a.status,n.detail)}if(204!==a.status)return a.json()}async function l(n,t){let e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=await r(n,e);return t.parse(i)}async function u(n,t){let e=await fetch("".concat(i.JR,"/api/v1/auth/login"),{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:n,password:t})});if(!e.ok)throw Error(s((await e.json().catch(()=>({}))).detail,e.status,"Invalid credentials"))}async function d(){return r("/api/v1/auth/me")}async function p(){await r("/api/v1/auth/logout",{method:"POST"})}async function g(){return r("/api/v1/sessions")}async function v(n){let t={name:n.name};return n.project_slug&&(t.project_slug=n.project_slug),n.provider&&(t.provider=n.provider),void 0!==n.model&&(t.model=n.model),n.permission_preset&&(t.permission_preset=n.permission_preset),n.theme_mode&&(t.theme_mode=n.theme_mode),r("/api/v1/sessions",{method:"POST",body:JSON.stringify(t)})}async function m(n){return r("/api/v1/sessions/catalog",{signal:null==n?void 0:n.signal})}async function f(n){return r("/api/v1/sessions/".concat(encodeURIComponent(n),"/complete"),{method:"POST"})}async function h(n){await r("/api/v1/sessions/".concat(encodeURIComponent(n)),{method:"DELETE"})}async function y(n,t){return r("/api/v1/sessions/".concat(encodeURIComponent(n)),{method:"PATCH",body:JSON.stringify(t)})}async function S(n){return r("/api/v1/sessions/reorder",{method:"PUT",body:JSON.stringify({order:n})})}async function _(n){return r("/api/v1/sessions/".concat(encodeURIComponent(n),"/resurrect"),{method:"POST"})}async function U(n){return r("/api/v1/terminal/ticket",{method:"POST",body:JSON.stringify({session_name:n})})}async function b(n){return r("/api/v1/terminal/metrics",{signal:null==n?void 0:n.signal,redirectOnUnauthorized:!1})}async function R(n,t){await r("/api/v1/terminal/metrics-batch",{method:"POST",body:JSON.stringify(n),signal:null==t?void 0:t.signal,redirectOnUnauthorized:!1})}async function O(n){var t;let e=null!=(t=null==n?void 0:n.bytes)?t:65536;return r("/api/v1/terminal/network-probe?bytes=".concat(encodeURIComponent(e)),{signal:null==n?void 0:n.signal,redirectOnUnauthorized:!1})}async function w(n){return r("/api/v1/projects",{signal:null==n?void 0:n.signal})}async function I(n,t){let e=new URLSearchParams;(null==t?void 0:t.deep)!==void 0&&e.set("deep",String(t.deep));let i=e.toString();return r("/api/v1/projects/".concat(encodeURIComponent(n)).concat(i?"?".concat(i):""),{signal:null==t?void 0:t.signal})}async function C(n,t,e){return r("/api/v1/projects/".concat(encodeURIComponent(n)),{method:"PATCH",body:JSON.stringify({color:t}),signal:null==e?void 0:e.signal})}async function j(n,t){return r("/api/v1/projects/".concat(encodeURIComponent(n),"/handoffs"),{signal:null==t?void 0:t.signal})}async function T(n,t){return r("/api/v1/projects/".concat(encodeURIComponent(n),"/plans"),{signal:null==t?void 0:t.signal})}async function P(n){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,e=arguments.length>2?arguments[2]:void 0;return r("/api/v1/projects/".concat(encodeURIComponent(n),"/git/log?limit=").concat(t),{signal:null==e?void 0:e.signal})}async function k(n,t){return r("/api/v1/projects/".concat(encodeURIComponent(n),"/git/diff"),{signal:null==t?void 0:t.signal})}async function E(n,t){return r("/api/v1/projects/".concat(encodeURIComponent(n),"/git/branches"),{signal:null==t?void 0:t.signal})}async function J(n,t){return r("/api/v1/kg/edges/manual",{method:"POST",body:JSON.stringify(n),signal:null==t?void 0:t.signal})}async function Y(n,t){return r("/api/v1/kg/edges/manual",{method:"DELETE",body:JSON.stringify(n),signal:null==t?void 0:t.signal})}async function N(n,t){let e=new URLSearchParams;if(n)for(let[t,i]of Object.entries(n))null!=i&&""!==i&&e.set(t,String(i));let i=e.toString();return r("/api/v1/learnings".concat(i?"?".concat(i):""),{signal:null==t?void 0:t.signal})}async function L(n,t,e){return r("/api/v1/inbox/items/".concat(encodeURIComponent(n),"/status"),{method:"PATCH",body:JSON.stringify(t),signal:null==e?void 0:e.signal})}function x(n){return{id:n.inbox_item_id,source_type:n.domain_key,source_label:n.domain_key,external_id:null,title:n.title,snippet:null,sender:null,url:n.url,program:null,project:null,topic:n.topic,treatment:n.treatment,status:n.status,ignore_reason:null,received_at:n.created_at,needs_triage:"unread"===n.status,triage:null}}async function z(n){var t;let e=new URLSearchParams;return e.set("limit",String(null!=(t=null==n?void 0:n.limit)?t:50)),(await r("/api/v1/inbox/digest/current?".concat(e.toString()),{signal:null==n?void 0:n.signal})).map(x)}async function D(n){return r("/api/v1/inbox/digest/stats",{signal:null==n?void 0:n.signal})}async function H(n,t){return r("/api/v1/inbox/items/".concat(encodeURIComponent(n)),{signal:null==t?void 0:t.signal})}async function A(n){var t;let e=new URLSearchParams;return(null==n?void 0:n.status)&&e.set("status",n.status),(null==n?void 0:n.projectSlug)&&e.set("project_slug",n.projectSlug),e.set("limit",String(null!=(t=null==n?void 0:n.limit)?t:100)),r("/api/v1/ingest/pending?".concat(e.toString()),{signal:null==n?void 0:n.signal})}async function q(n){var t;let e=new URLSearchParams;return(null==n?void 0:n.projectSlug)&&e.set("project_slug",n.projectSlug),(null==n?void 0:n.reason)&&e.set("reason",n.reason),e.set("limit",String(null!=(t=null==n?void 0:n.limit)?t:100)),r("/api/v1/ingest/skipped?".concat(e.toString()),{signal:null==n?void 0:n.signal})}async function M(n){var t,e,i;let o=new URLSearchParams;return o.set("decision",null!=(t=null==n?void 0:n.decision)?t:"all"),o.set("today",String(null==(e=null==n?void 0:n.today)||e)),(null==n?void 0:n.projectSlug)&&o.set("project_slug",n.projectSlug),o.set("limit",String(null!=(i=null==n?void 0:n.limit)?i:80)),r("/api/v1/ingest/history?".concat(o.toString()),{signal:null==n?void 0:n.signal})}async function W(n,t,e){let o=await fetch("".concat(i.JR).concat(n),{method:"POST",credentials:"include",signal:null==e?void 0:e.signal,body:t});if(401===o.status)throw window.location.href="/login/",Error("Unauthorized");if(!o.ok)throw Error(s((await o.json().catch(()=>({}))).detail,o.status));return o.json()}async function G(n,t,e){let i=new FormData;for(let e of(i.set("project_slug",n),t))i.append("files",e.file,e.relativePath);return W("/api/v1/ingest/upload-folder",i,e)}async function B(n,t,e){let i=new FormData;return i.set("project_slug",n),i.set("archive",t,t.name),W("/api/v1/ingest/upload-zip",i,e)}async function F(n,t){return r("/api/v1/ingest/pending/".concat(encodeURIComponent(n),"/approve"),{method:"POST",signal:null==t?void 0:t.signal})}async function $(n,t,e){let i={};return(null==e?void 0:e.ifMatch)&&(i["If-Match"]=e.ifMatch),r("/api/v1/ingest/pending/".concat(encodeURIComponent(n)),{method:"PATCH",headers:i,body:JSON.stringify(t),signal:null==e?void 0:e.signal})}async function K(n,t){return r("/api/v1/ingest/pending/".concat(encodeURIComponent(n),"/reject"),{method:"POST",signal:null==t?void 0:t.signal})}async function X(n,t){let e=await fetch("".concat(i.JR,"/api/v1/ingest/pending/").concat(encodeURIComponent(n)),{method:"DELETE",credentials:"include",signal:null==t?void 0:t.signal});if(!e.ok&&204!==e.status)throw new c("Delete failed: HTTP ".concat(e.status),e.status)}async function Q(n,t,e){let i=new URLSearchParams({sha256:n,project_slug:t});return r("/api/v1/ingest/preflight?".concat(i.toString()),{signal:null==e?void 0:e.signal})}async function V(n,t){return r("/api/v1/ingest/pending/".concat(encodeURIComponent(n),"/reparse"),{method:"POST",signal:null==t?void 0:t.signal})}async function Z(n,t){let e=await fetch("".concat(i.JR,"/api/v1/ingest/pending/").concat(encodeURIComponent(n),"/preview.md"),{credentials:"include",signal:null==t?void 0:t.signal});if(401===e.status)throw window.location.href="/login/",Error("Unauthorized");if(!e.ok){let n=(await e.json().catch(()=>({}))).detail;throw Error("string"==typeof n?n:"HTTP ".concat(e.status))}return e.text()}async function nn(n,t,e){let o=await fetch("".concat(i.JR,"/api/v1/ingest/pending/").concat(encodeURIComponent(n),"/preview.").concat(t),{credentials:"include",signal:null==e?void 0:e.signal});if(401===o.status)throw window.location.href="/login/",new c("Unauthorized",401);if(!o.ok){let n=(await o.json().catch(()=>({}))).detail;throw new c("string"==typeof n?n:"HTTP ".concat(o.status),o.status,n)}return o.blob()}function nt(n,t){return"".concat(i.JR,"/api/v1/ingest/pending/").concat(encodeURIComponent(n),"/preview.").concat(t)}async function ne(n){var t;let e=null==(t=null==n?void 0:n.today)||t;return r("/api/v1/ingest/counters?today=".concat(e),{signal:null==n?void 0:n.signal})}async function ni(n,t){return r("/api/v1/inbox/items/".concat(encodeURIComponent(n),"/tldr"),{method:"POST",signal:null==t?void 0:t.signal})}async function no(n,t){return r("/api/v1/inbox/items/".concat(encodeURIComponent(n),"/deep-research"),{method:"POST",signal:null==t?void 0:t.signal})}async function na(n){return r("/api/v1/inbox/source-scores",{signal:null==n?void 0:n.signal})}async function nc(n){return r("/api/v1/projects/".concat(encodeURIComponent(n),"/git/push"),{method:"POST"})}async function ns(n){return r("/api/v1/projects/".concat(encodeURIComponent(n),"/git/pull"),{method:"POST"})}async function nr(n){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=!(arguments.length>3)||void 0===arguments[3]||arguments[3],o=arguments.length>4?arguments[4]:void 0,a=new URLSearchParams({limit:String(t),skip:String(e),all_branches:String(i)});return r("/api/v1/projects/".concat(encodeURIComponent(n),"/git/graph?").concat(a),{signal:null==o?void 0:o.signal})}async function nl(n,t,e){return r("/api/v1/projects/".concat(encodeURIComponent(n),"/git/commit/").concat(encodeURIComponent(t)),{signal:null==e?void 0:e.signal})}async function nu(n){return r("/api/v1/status-updates",{method:"POST",body:JSON.stringify(n)})}async function nd(n,t){return r("/api/v1/status-updates?project=".concat(encodeURIComponent(n)),{signal:null==t?void 0:t.signal})}async function np(n){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,e=arguments.length>2?arguments[2]:void 0;return r("/api/v1/projects/".concat(encodeURIComponent(n),"/status-updates?limit=").concat(t),{signal:null==e?void 0:e.signal})}async function ng(n,t){return r("/api/v1/projects/".concat(encodeURIComponent(n),"/status-updates"),{method:"POST",body:JSON.stringify({content_md:t})})}async function nv(n){return r("/api/v1/comments",{method:"POST",body:JSON.stringify(n)})}async function nm(n,t,e){return r("/api/v1/comments?target_type=".concat(encodeURIComponent(n),"&target_id=").concat(encodeURIComponent(t)),{signal:null==e?void 0:e.signal})}async function nf(n,t){return r("/api/v1/comments/".concat(n),{method:"PATCH",body:JSON.stringify(t)})}async function nh(n){await r("/api/v1/comments/".concat(n),{method:"DELETE"})}async function ny(n,t){await r("/api/v1/comments/".concat(n,"/reactions"),{method:"POST",body:JSON.stringify({reaction:t})})}async function nS(n,t){await r("/api/v1/comments/".concat(n,"/reactions/").concat(encodeURIComponent(t)),{method:"DELETE"})}async function n_(n,t){let e=new URLSearchParams;if(n)for(let[t,i]of Object.entries(n))null!=i&&e.set(t,String(i));let i=e.toString();return r("/api/v1/tasks".concat(i?"?".concat(i):""),{signal:null==t?void 0:t.signal})}async function nU(n,t){return r("/api/v1/tasks",{method:"POST",body:JSON.stringify(n),signal:null==t?void 0:t.signal})}async function nb(n,t){return r("/api/v1/tasks/".concat(encodeURIComponent(n)),{signal:null==t?void 0:t.signal})}async function nR(n,t,e){return r("/api/v1/tasks/".concat(encodeURIComponent(n)),{method:"PATCH",body:JSON.stringify(t),signal:null==e?void 0:e.signal})}function nO(n){let t=new URLSearchParams;for(let[e,i]of Object.entries(n))!function n(t,e,i){if(null!=i&&""!==i){if(Array.isArray(i)){for(let o of i)n(t,e,o);return}t.append(e,String(i))}}(t,e,i);let e=t.toString();return e?"?".concat(e):""}async function nw(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return r("/api/v1/brain/runs".concat(nO(n)),{signal:null==t?void 0:t.signal})}async function nI(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return r("/api/v1/brain/events".concat(nO(n)),{signal:null==t?void 0:t.signal})}async function nC(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return r("/api/v1/brain/journal".concat(nO(n)),{signal:null==t?void 0:t.signal})}async function nj(n){return r("/api/v1/brain/run",{method:"POST",signal:null==n?void 0:n.signal})}async function nT(n,t){var e;return r("/api/v1/onboarding/scan",{method:"POST",body:JSON.stringify({root:n.root,exclusions:null!=(e=n.exclusions)?e:[]}),signal:null==t?void 0:t.signal,redirectOnUnauthorized:!1})}async function nP(n){return r("/api/v1/onboarding/setup",{signal:null==n?void 0:n.signal,redirectOnUnauthorized:!1})}async function nk(n,t){return r("/api/v1/onboarding/setup",{method:"PUT",body:JSON.stringify(n),signal:null==t?void 0:t.signal,redirectOnUnauthorized:!1})}async function nE(n,t){return r("/api/v1/onboarding/demo?lang=".concat(n),{method:"POST",body:JSON.stringify({lang:n}),signal:null==t?void 0:t.signal,redirectOnUnauthorized:!1})}async function nJ(n){return r("/api/v1/onboarding/demo",{method:"DELETE",signal:null==n?void 0:n.signal,redirectOnUnauthorized:!1})}async function nY(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return r("/api/v1/todos".concat(nO(n)),{signal:null==t?void 0:t.signal,redirectOnUnauthorized:!1})}async function nN(n,t){return r("/api/v1/todos",{method:"POST",body:JSON.stringify(n),signal:null==t?void 0:t.signal,redirectOnUnauthorized:!1})}async function nL(n,t,e){return r("/api/v1/todos/".concat(encodeURIComponent(n)),{method:"PATCH",body:JSON.stringify(t),signal:null==e?void 0:e.signal,redirectOnUnauthorized:!1})}async function nx(n){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=arguments.length>2?arguments[2]:void 0;return r("/api/v1/todos/".concat(encodeURIComponent(n),"/delegate"),{method:"POST",body:JSON.stringify(t),signal:null==e?void 0:e.signal,redirectOnUnauthorized:!1})}async function nz(n,t,e){var i,o,a,s;if(!n.origin)throw new c("Todo is not virtual",422);let l=null!=(s=null!=(a=null!=(o=null==(i=n.origin)?void 0:i.id)?o:n.source_ref)?a:n.id.split(":").at(-1))?s:n.id,u=(null==e?void 0:e.feedback)||void 0;return"task_review"===n.origin.kind?"approve"===t?r("/api/v1/pull_requests/".concat(encodeURIComponent(l),"/merge"),{method:"POST",signal:null==e?void 0:e.signal,redirectOnUnauthorized:!1}):r("/api/v1/tasks/".concat(encodeURIComponent(l)),{method:"PATCH",body:JSON.stringify({status:"in_progress",review_feedback:u||"Returned from Todos review"}),signal:null==e?void 0:e.signal,redirectOnUnauthorized:!1}):"finding"===n.origin.kind?r("/api/v1/brain/findings/".concat(encodeURIComponent(l)),{method:"PATCH",body:JSON.stringify({approval_state:"approve"===t?"approved":"dismissed",reason:null!=u?u:null}),signal:null==e?void 0:e.signal,redirectOnUnauthorized:!1}):r("/api/v1/brain/memory-operations/".concat(encodeURIComponent(l)),{method:"PATCH",body:JSON.stringify({approval_state:"approve"===t?"approved":"rejected",reason:null!=u?u:null}),signal:null==e?void 0:e.signal,redirectOnUnauthorized:!1})}async function nD(n){return r("/api/v1/sessions/".concat(encodeURIComponent(n),"/metrics"))}async function nH(n){await r("/api/v1/sessions/".concat(encodeURIComponent(n),"/hibernate"),{method:"POST"})}async function nA(n){await r("/api/v1/sessions/".concat(encodeURIComponent(n),"/resume"),{method:"POST"})}async function nq(n){await r("/api/v1/sessions/".concat(encodeURIComponent(n),"/restart"),{method:"POST"})}async function nM(n,t,e){return r("/api/v1/projects/".concat(encodeURIComponent(n),"/files/").concat(t),{signal:null==e?void 0:e.signal})}async function nW(n,t,e){return r("/api/v1/projects/".concat(encodeURIComponent(n),"/files/").concat(t),{method:"PUT",body:JSON.stringify({content:e})})}async function nG(n,t){let e=new URLSearchParams;(null==n?void 0:n.from)&&e.set("from",n.from),(null==n?void 0:n.to)&&e.set("to",n.to);let i=e.toString();return r("/api/v1/costs/summary".concat(i?"?".concat(i):""),{signal:null==t?void 0:t.signal})}async function nB(n,t,e){let i=new URLSearchParams;(null==t?void 0:t.from)&&i.set("from",t.from),(null==t?void 0:t.to)&&i.set("to",t.to),(null==t?void 0:t.limit)&&i.set("limit",String(t.limit)),(null==t?void 0:t.offset)&&i.set("offset",String(t.offset));let o=i.toString();return r("/api/v1/costs/by-project/".concat(encodeURIComponent(n)).concat(o?"?".concat(o):""),{signal:null==e?void 0:e.signal})}async function nF(n,t,e){let i=new URLSearchParams;(null==t?void 0:t.from)&&i.set("from",t.from),(null==t?void 0:t.to)&&i.set("to",t.to);let o=i.toString();return r("/api/v1/costs/billing/".concat(encodeURIComponent(n)).concat(o?"?".concat(o):""),{signal:null==e?void 0:e.signal})}async function n$(n,t){return r("/api/v1/sessions/by-uuid/".concat(encodeURIComponent(n)),{signal:null==t?void 0:t.signal})}async function nK(){return r("/api/v1/tags")}async function nX(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;return r("/api/v1/finder/tree?path=".concat(encodeURIComponent(n)),{signal:null==t?void 0:t.signal})}async function nQ(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;return r("/api/v1/finder/list?path=".concat(encodeURIComponent(n)),{signal:null==t?void 0:t.signal})}async function nV(n,t){return r("/api/v1/finder/file?path=".concat(encodeURIComponent(n)),{signal:null==t?void 0:t.signal})}async function nZ(n,t){return r("/api/v1/finder/file?path=".concat(encodeURIComponent(n)),{method:"PUT",body:JSON.stringify({content:t})})}async function n1(n){return r("/api/v1/finder/mkdir",{method:"POST",body:JSON.stringify({path:n})})}async function n0(n,t){return r("/api/v1/finder/rename",{method:"POST",body:JSON.stringify({path:n,new_name:t})})}async function n5(n,t){let e=new FormData;e.append("path",n),t.forEach(n=>e.append("files",n));let o=await fetch("".concat(i.JR,"/api/v1/finder/upload?path=").concat(encodeURIComponent(n)),{method:"POST",credentials:"include",body:e});if(401===o.status)throw window.location.href="/login/",Error("Unauthorized");if(!o.ok)throw Error((await o.json().catch(()=>({}))).detail||"HTTP ".concat(o.status));return o.json()}async function n2(n){let t=await fetch("".concat(i.JR,"/api/v1/finder/download?path=").concat(encodeURIComponent(n)),{credentials:"include"});if(!t.ok)throw Error("Download failed: ".concat(t.status));return t.blob()}async function n4(n){return r("/api/v1/finder/delete",{method:"POST",body:JSON.stringify({path:n})})}async function n6(n,t){return r("/api/v1/finder/move",{method:"POST",body:JSON.stringify({src:n,dest:t})})}async function n3(){return r("/api/v1/finder/pins")}async function n9(n,t){return r("/api/v1/finder/pins",{method:"POST",body:JSON.stringify({path:n,label:t})})}async function n8(n){return r("/api/v1/finder/pins/".concat(n),{method:"DELETE"})}async function n7(n,t){return r("/api/v1/pull_requests/merge-conflicts?project=".concat(encodeURIComponent(n)),{signal:null==t?void 0:t.signal})}async function tn(n,t){return r("/api/v1/pull_requests/".concat(encodeURIComponent(n)),{signal:null==t?void 0:t.signal})}async function tt(n){return r("/api/v1/pull_requests/".concat(encodeURIComponent(n),"/merge"),{method:"POST"})}async function te(n,t){return r("/api/v1/pull_requests/".concat(encodeURIComponent(n),"/close"),{method:"POST",body:JSON.stringify({reason:t||""})})}async function ti(n){return r("/api/v1/pull_requests/".concat(encodeURIComponent(n),"/approve"),{method:"POST"})}async function to(n,t){return r("/api/v1/pull_requests/".concat(encodeURIComponent(n),"/request-changes"),{method:"POST",body:JSON.stringify({comment:t})})}async function ta(n){let t=await fetch("/api/v1/pull_requests/".concat(n,"/revert"),{method:"POST",credentials:"include"});if(!t.ok){let n=await t.json().catch(()=>({}));throw Error("string"==typeof n.detail?n.detail:"Revert failed: ".concat(t.status))}return t.json()}async function tc(n,t,e){let o=new FormData;o.append("file",n,t);let a=(null==e?void 0:e.session)?"?session=".concat(encodeURIComponent(e.session)):"";return new Promise((n,t)=>{let e=new XMLHttpRequest;e.open("POST","".concat(i.JR,"/terminal/upload").concat(a)),e.withCredentials=!0,e.onload=()=>{if(e.status>=200&&e.status<300)try{n(JSON.parse(e.responseText))}catch(n){t(Error("Invalid response"))}else try{let n=JSON.parse(e.responseText);t(Error(n.detail||"Upload failed: HTTP ".concat(e.status)))}catch(n){t(Error("Upload failed: HTTP ".concat(e.status)))}},e.onerror=()=>t(Error("Network error during upload")),e.send(o)})}async function ts(n){let t=new URLSearchParams;(null==n?void 0:n.project)&&t.set("project",n.project);let e=t.toString();return r("/api/v1/users".concat(e?"?".concat(e):""))}async function tr(n){return r("/api/v1/users",{method:"POST",body:JSON.stringify(n)})}async function tl(n,t){return r("/api/v1/users/".concat(encodeURIComponent(n)),{method:"PATCH",body:JSON.stringify(t)})}async function tu(n){await r("/api/v1/users/".concat(encodeURIComponent(n)),{method:"DELETE"})}async function td(n){return r("/api/v1/projects/".concat(encodeURIComponent(n),"/raci"))}async function tp(n,t,e,i){return r("/api/v1/projects/".concat(encodeURIComponent(n),"/raci"),{method:"POST",body:JSON.stringify({user_id:t,role:e,reason:i})})}async function tg(n,t,e){await r("/api/v1/projects/".concat(encodeURIComponent(n),"/raci/").concat(encodeURIComponent(t),"/").concat(e),{method:"DELETE"})}async function tv(n){return r("/api/v1/teams",{signal:null==n?void 0:n.signal})}async function tm(n){return r("/api/v1/teams",{method:"POST",body:JSON.stringify(n)})}async function tf(n,t){return r("/api/v1/teams/".concat(encodeURIComponent(n)),{method:"PATCH",body:JSON.stringify(t)})}async function th(n){await r("/api/v1/teams/".concat(encodeURIComponent(n)),{method:"DELETE"})}async function ty(n,t){return r("/api/v1/teams/".concat(encodeURIComponent(n),"/members"),{signal:null==t?void 0:t.signal})}async function tS(n,t){return r("/api/v1/teams/".concat(encodeURIComponent(n),"/members"),{method:"POST",body:JSON.stringify(t)})}async function t_(n,t){await r("/api/v1/teams/".concat(encodeURIComponent(n),"/members/").concat(encodeURIComponent(t)),{method:"DELETE"})}async function tU(n,t){return r("/api/v1/teams/".concat(encodeURIComponent(n),"/projects"),{signal:null==t?void 0:t.signal})}async function tb(n,t){return r("/api/v1/teams/".concat(encodeURIComponent(n),"/projects"),{method:"POST",body:JSON.stringify(t)})}async function tR(n,t){await r("/api/v1/teams/".concat(encodeURIComponent(n),"/projects/").concat(encodeURIComponent(t)),{method:"DELETE"})}async function tO(n){return r("/api/v1/auth/admin/issue-reset-token",{method:"POST",body:JSON.stringify({user_id:n})})}async function tw(n){return r("/api/v1/tasks/".concat(encodeURIComponent(n),"/cost-entries"))}async function tI(n,t){return r("/api/v1/tasks/".concat(encodeURIComponent(n),"/cost-entries"),{method:"POST",body:JSON.stringify(t)})}async function tC(n,t){let e=new URLSearchParams;(null==n?void 0:n.limit)&&e.set("limit",String(n.limit)),(null==n?void 0:n.unread_only)&&e.set("unread_only","true");let i=e.toString();return r("/api/v1/notifications".concat(i?"?".concat(i):""),{signal:null==t?void 0:t.signal})}async function tj(n){return r("/api/v1/notifications/unread-count",{signal:null==n?void 0:n.signal})}async function tT(n){await r("/api/v1/notifications/".concat(encodeURIComponent(n),"/read"),{method:"PATCH"})}async function tP(n){await r("/api/v1/notifications/".concat(encodeURIComponent(n),"/acted"),{method:"PATCH"})}async function tk(){await r("/api/v1/notifications/mark-all-read",{method:"POST"})}async function tE(n){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"aging_zombie",e=arguments.length>2?arguments[2]:void 0;return r("/api/v1/tasks/bulk-reject",{method:"POST",body:JSON.stringify({task_ids:n,reason:t}),signal:null==e?void 0:e.signal})}async function tJ(n,t){return r("/api/v1/ci-checks?task_id=".concat(encodeURIComponent(n)),{signal:null==t?void 0:t.signal})}async function tY(n,t){return r("/api/v1/ci-checks/summary?task_id=".concat(encodeURIComponent(n)),{signal:null==t?void 0:t.signal})}async function tN(n,t){return r("/api/v1/auth/sso/config?domain=".concat(encodeURIComponent(n)),{signal:null==t?void 0:t.signal})}async function tL(n){let t=n?"?workspace_id=".concat(encodeURIComponent(n)):"";return r("/api/v1/auth/sso/login".concat(t))}async function tx(n,t,e){await r("/api/v1/auth/sso/callback",{method:"POST",body:JSON.stringify({code:n,state:t}),signal:null==e?void 0:e.signal})}async function tz(n){return r("/api/v1/workspaces",{signal:null==n?void 0:n.signal})}async function tD(n,t){return r("/api/v1/workspaces/".concat(encodeURIComponent(n),"/sso-config"),{signal:null==t?void 0:t.signal})}async function tH(n,t){await r("/api/v1/workspaces/".concat(encodeURIComponent(n),"/sso-config"),{method:"PUT",body:JSON.stringify(t)})}async function tA(n,t){let e=new URLSearchParams;(null==n?void 0:n.user_id)&&e.set("user_id",n.user_id),(null==n?void 0:n.event_type)&&e.set("event_type",n.event_type),(null==n?void 0:n.period)&&e.set("period",String(n.period)),(null==n?void 0:n.cursor)&&e.set("cursor",n.cursor),(null==n?void 0:n.limit)&&e.set("limit",String(n.limit));let i=e.toString();return r("/api/v1/audit-log".concat(i?"?".concat(i):""),{signal:null==t?void 0:t.signal})}async function tq(n,t){let e=new URLSearchParams({q:n});return r("/api/v1/search?".concat(e.toString()),{signal:null==t?void 0:t.signal})}async function tM(n){return r("/api/v1/monitoring/current",{signal:null==n?void 0:n.signal})}async function tW(n,t,e){return r("/api/v1/monitoring/history?metric=".concat(encodeURIComponent(n),"&range=").concat(encodeURIComponent(t)),{signal:null==e?void 0:e.signal})}async function tG(n){return r("/api/v1/monitoring/security",{signal:null==n?void 0:n.signal})}async function tB(n){let t=(null==n?void 0:n.path)&&"/"!==n.path?"?path=".concat(encodeURIComponent(n.path)):"";return r("/api/v1/monitoring/disk-tree".concat(t),{signal:null==n?void 0:n.signal})}function tF(n){return{...n,active:!!n.active}}async function t$(){let n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0,e=new URLSearchParams({active_only:String(n)});return(await r("/api/v1/inbox/sources?".concat(e.toString()),{signal:null==t?void 0:t.signal})).map(tF)}async function tK(n){return tF(await r("/api/v1/inbox/sources",{method:"POST",body:JSON.stringify(n)}))}async function tX(n,t){return tF(await r("/api/v1/inbox/sources/".concat(encodeURIComponent(n)),{method:"PATCH",body:JSON.stringify(t)}))}async function tQ(n){await r("/api/v1/inbox/sources/".concat(encodeURIComponent(n)),{method:"DELETE"})}async function tV(n){return l("/api/v1/graph/cosmo",o.mY,{signal:null==n?void 0:n.signal})}async function tZ(n){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=new URLSearchParams;void 0!==t.depth&&e.set("depth",String(t.depth)),void 0!==t.offset&&e.set("offset",String(t.offset)),void 0!==t.limit&&e.set("limit",String(t.limit)),void 0!==t.include_all&&e.set("include_all",String(t.include_all));let i=e.toString();return l("/api/v1/graph/pr-impact/".concat(encodeURIComponent(n)).concat(i?"?".concat(i):""),a.FW,{signal:t.signal})}async function t1(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=new URLSearchParams;n.state&&t.set("state",n.state),n.project&&t.set("project",n.project),void 0!==n.offset&&t.set("offset",String(n.offset)),void 0!==n.limit&&t.set("limit",String(n.limit));let e=t.toString();return l("/api/v1/graph/branches".concat(e?"?".concat(e):""),a.au,{signal:n.signal})}async function t0(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=new URLSearchParams;n.project&&t.set("project",n.project),void 0!==n.limit&&t.set("limit",String(n.limit));let e=t.toString();return l("/api/v1/graph/codex-modules".concat(e?"?".concat(e):""),a.ac,{signal:n.signal})}async function t5(n){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=new URLSearchParams;return e.set("module",n),t.project&&e.set("project",t.project),void 0!==t.limit&&e.set("limit",String(t.limit)),l("/api/v1/graph/codex-functions?".concat(e.toString()),a.Yh,{signal:t.signal})}},6253:(n,t,e)=>{e.d(t,{VW:()=>g,mY:()=>d,wn:()=>v});var i=e(4879);let o=i.k5(["plan","brainstorm","solution","audit","research","handoff","task","learning"]),a=i.k5(["marvis","personal"]).catch("personal"),c=i.k5(["mentions","depends_on"]),s=i.Ik({id:i.Yj().min(1),title:i.Yj().min(1),latest_at:i.Yj(),importance:i.ai().int().nonnegative(),path:i.Yj().nullable().optional()}),r=i.Ik({kind:o.catch("task"),count:i.ai().int().nonnegative(),latest_at:i.Yj().nullable().optional(),items:i.YO(s).optional()}),l=i.Ik({slug:i.Yj().min(1),program:a,color:i.Yj().regex(/^#[0-9a-fA-F]{6}$/).nullable().optional(),degree:i.ai().nonnegative(),satellites:i.YO(r)}),u=i.Ik({source:i.Yj().min(1),target:i.Yj().min(1),relation:c,weight:i.ai().nonnegative()}),d=i.Ik({projects:i.YO(l).max(500),edges:i.YO(u).max(5e3)}),p=i.Ik({x:i.ai().finite(),y:i.ai().finite()}),g=i.Ik({zoom:i.ai().min(.05).max(100),pan:i.Ik({x:i.ai().finite(),y:i.ai().finite()}),nodeOverrides:i.g1(i.Yj(),p)}),v={zoom:1,pan:{x:0,y:0},nodeOverrides:{}}},6830:(n,t,e)=>{e.d(t,{JR:()=>d,Ls:()=>r,h8:()=>g,kv:()=>l,qT:()=>s,si:()=>f,t9:()=>h,t_:()=>m});var i,o,a,c=e(5704);let s="/ui",r="".concat(s,"/sw.js"),l="".concat(s,"/");function u(n){return n.replace(/\/+$/,"")}let d=u(""),p=u(null!=(i=c.env.NEXT_PUBLIC_WS_URL)?i:""),g=u(null!=(o=c.env.NEXT_PUBLIC_DIRECT_WS_URL)?o:""),v=u(null!=(a=c.env.NEXT_PUBLIC_DIRECT_WS_PROBE_URL)?a:"");function m(){return p||function(){let n="https:"===window.location.protocol?"wss:":"ws:";return"".concat(n,"//").concat(window.location.host)}()}function f(){return g||m()}function h(){if(v)return v;let n=f();return n?"".concat(n.replace("wss://","https://").replace("ws://","http://"),"/health"):""}},7913:(n,t,e)=>{e.d(t,{Es:()=>U,FW:()=>d,Yh:()=>_,ZQ:()=>R,ac:()=>y,au:()=>g});var i=e(4879);let o=i.Yj().regex(/^pr:artifact:[0-9a-f-]{36}$/).max(64),a=i.k5(["add","modify","delete"]),c=i.k5(["draft","open","merging","merged","closed"]),s=i.Ik({title:i.Yj().nullable(),branch:i.Yj(),review_state:c,head_sha:i.Yj().nullable().optional(),base_sha:i.Yj().default("main"),populator_status:i.k5(["pending","processed","failed","unknown"]).default("unknown"),function_nodes_returned:i.ai().int().nonnegative(),function_cap_threshold:i.ai().int().positive().default(800),function_nodes_capped:i.zM().default(!1)}),r=i.Ik({node_id:i.Yj(),qualified_name_snapshot:i.Yj(),source_file:i.Yj(),touch_kind:a,lines_added:i.ai().int().nonnegative(),lines_removed:i.ai().int().nonnegative(),weight:i.ai().min(0).max(1),blame_author:i.Yj().nullable().optional(),node_missing:i.zM().default(!1),first_seen_at:i.Yj().datetime().nullable().optional()}),l=i.Ik({node_id:i.Yj(),depth:i.ai().int().min(1).max(4),via_edge:i.k5(["calls","imports","defines"])}),u=i.Ik({redacted_count:i.ai().int().nonnegative().default(0)}),d=i.Ik({pr_id:o,pr_metadata:s,modified_functions:i.YO(r),transitive_impact:i.YO(l),involved_projects:i.YO(i.Yj()),visibility:u,next_offset:i.ai().int().nullable().optional(),total_estimate:i.ai().int().nonnegative(),schema_version:i.eu("1.0")}),p=i.Ik({name:i.Yj(),head_sha:i.Yj().nullable().optional(),head_commit_at:i.Yj().nullable().optional(),is_main:i.zM(),is_stale:i.zM(),open_pr_ids:i.YO(o).default([]),age_days:i.ai().int().nonnegative().nullable().optional()}),g=i.Ik({branches:i.YO(p),main_head:i.Yj().nullable().optional(),main_head_at:i.Yj().nullable().optional(),next_offset:i.ai().int().nullable().optional(),total_estimate:i.ai().int().nonnegative(),schema_version:i.eu("1.0")}),v=i.Ik({pr_ids:i.YO(o).min(2),shared_function_id:i.Yj(),shared_qualified_name:i.Yj(),touch_kinds:i.YO(a)});i.Ik({conflicts:i.YO(v),pr_ids_examined:i.YO(o),total:i.ai().int().nonnegative(),schema_version:i.eu("1.0")});let m=i.k5(["auth","db","api","ui","parse","search","graph","shared"]),f=i.Ik({slug:i.Yj().max(128),cluster:m,label:i.Yj().max(64),function_count:i.ai().int().nonnegative(),file_count:i.ai().int().nonnegative(),degree:i.ai().int().nonnegative().default(0),top_functions:i.YO(i.Yj()).max(10).default([]),top_paths:i.YO(i.Yj()).max(10).default([]),semantic_label:i.Yj().nullable().optional(),ratified:i.zM().default(!1),drift:i.ai().int().nonnegative().default(0)}),h=i.Ik({source:i.Yj().max(128),target:i.Yj().max(128),relation:i.k5(["calls","imports","depends_on","mentions"]),weight:i.ai().int().nonnegative(),hot:i.zM().default(!1)}),y=i.Ik({modules:i.YO(f),edges:i.YO(h).default([]),project:i.Yj(),total_estimate:i.ai().int().nonnegative(),schema_version:i.eu("1.0")}),S=i.Ik({node_id:i.Yj(),qualified_name:i.Yj(),file_path:i.Yj().nullable().optional(),line_number:i.ai().int().nonnegative().nullable().optional(),touch_count_7d:i.ai().int().nonnegative(),touch_count_30d:i.ai().int().nonnegative()}),_=i.Ik({functions:i.YO(S),project:i.Yj(),module:i.Yj(),total_estimate:i.ai().int().nonnegative(),schema_version:i.eu("1.0")}),U={auth:{hue:0,sat:70,light:56,label:"auth"},db:{hue:204,sat:70,light:56,label:"db"},api:{hue:18,sat:95,light:54,label:"api"},ui:{hue:290,sat:60,light:62,label:"ui"},parse:{hue:38,sat:90,light:56,label:"parse"},search:{hue:180,sat:55,light:50,label:"search"},graph:{hue:156,sat:55,light:42,label:"graph"},shared:{hue:30,sat:8,light:60,label:"shared"}};function b(n){var t;let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,i=null!=(t=U[n])?t:U.shared;return"hsl(".concat(i.hue," ").concat(i.sat,"% ").concat(i.light,"% / ").concat(e,")")}let R={auth:b("auth"),db:b("db"),api:b("api"),ui:b("ui"),parse:b("parse"),search:b("search"),graph:b("graph"),shared:b("shared")}}}]);