observal-cli 0.3.2__tar.gz → 0.3.4__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 (597) hide show
  1. observal_cli-0.3.4/.dockerignore +60 -0
  2. {observal_cli-0.3.2 → observal_cli-0.3.4}/.github/workflows/release.yml +2 -1
  3. {observal_cli-0.3.2 → observal_cli-0.3.4}/CHANGELOG.md +58 -0
  4. {observal_cli-0.3.2 → observal_cli-0.3.4}/PKG-INFO +1 -1
  5. {observal_cli-0.3.2 → observal_cli-0.3.4}/docker/Dockerfile.api +14 -6
  6. {observal_cli-0.3.2 → observal_cli-0.3.4}/docker/Dockerfile.web +2 -1
  7. {observal_cli-0.3.2 → observal_cli-0.3.4}/docker/docker-compose.yml +1 -1
  8. {observal_cli-0.3.2 → observal_cli-0.3.4}/docker/nginx.conf +8 -1
  9. {observal_cli-0.3.2 → observal_cli-0.3.4}/docker/nginx.production.conf +13 -6
  10. observal_cli-0.3.4/docs/integrations/copilot-cli.md +170 -0
  11. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/config.py +1 -1
  12. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/otel_dashboard.py +2 -0
  13. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/telemetry.py +9 -3
  14. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/pyproject.toml +1 -1
  15. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/schemas/constants.py +2 -0
  16. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/agent_builder.py +60 -7
  17. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/agent_config_generator.py +69 -28
  18. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/config_generator.py +18 -0
  19. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/hook_config_generator.py +4 -17
  20. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/cmd_auth.py +56 -37
  21. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/cmd_doctor.py +222 -33
  22. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/cmd_scan.py +210 -61
  23. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/constants.py +2 -0
  24. observal_cli-0.3.4/observal_cli/hooks/copilot_cli_hook.py +163 -0
  25. observal_cli-0.3.4/observal_cli/hooks/copilot_cli_stop_hook.py +175 -0
  26. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/hooks/kiro_hook.py +2 -0
  27. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/hooks_spec.py +1 -1
  28. {observal_cli-0.3.2 → observal_cli-0.3.4}/pyproject.toml +2 -2
  29. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_agent_composition.py +4 -3
  30. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_agent_config_generator.py +24 -22
  31. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_endpoint_discovery.py +28 -1
  32. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_ide_config_e2e.py +277 -0
  33. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_shim_phase3.py +1 -1
  34. {observal_cli-0.3.2 → observal_cli-0.3.4}/uv.lock +24 -24
  35. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(user)/traces/[id]/page.tsx +44 -9
  36. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(user)/traces/page.tsx +18 -1
  37. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/traces/trace-list.tsx +5 -0
  38. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/lib/graphql-ws.ts +1 -1
  39. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/lib/ide-features.ts +3 -0
  40. observal_cli-0.3.2/.dockerignore +0 -5
  41. {observal_cli-0.3.2 → observal_cli-0.3.4}/.editorconfig +0 -0
  42. {observal_cli-0.3.2 → observal_cli-0.3.4}/.env.example +0 -0
  43. {observal_cli-0.3.2 → observal_cli-0.3.4}/.gitattributes +0 -0
  44. {observal_cli-0.3.2 → observal_cli-0.3.4}/.gitbook.yaml +0 -0
  45. {observal_cli-0.3.2 → observal_cli-0.3.4}/.github/ISSUE_TEMPLATE/bug_report_form.yml +0 -0
  46. {observal_cli-0.3.2 → observal_cli-0.3.4}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  47. {observal_cli-0.3.2 → observal_cli-0.3.4}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  48. {observal_cli-0.3.2 → observal_cli-0.3.4}/.github/pull_request_template.md +0 -0
  49. {observal_cli-0.3.2 → observal_cli-0.3.4}/.github/workflows/ci.yml +0 -0
  50. {observal_cli-0.3.2 → observal_cli-0.3.4}/.github/workflows/codeql.yml +0 -0
  51. {observal_cli-0.3.2 → observal_cli-0.3.4}/.github/workflows/dco.yml +0 -0
  52. {observal_cli-0.3.2 → observal_cli-0.3.4}/.github/workflows/deploy.yml +0 -0
  53. {observal_cli-0.3.2 → observal_cli-0.3.4}/.gitignore +0 -0
  54. {observal_cli-0.3.2 → observal_cli-0.3.4}/.pre-commit-config.yaml +0 -0
  55. {observal_cli-0.3.2 → observal_cli-0.3.4}/AGENTS.md +0 -0
  56. {observal_cli-0.3.2 → observal_cli-0.3.4}/CODE_OF_CONDUCT.md +0 -0
  57. {observal_cli-0.3.2 → observal_cli-0.3.4}/CONTRIBUTING.md +0 -0
  58. {observal_cli-0.3.2 → observal_cli-0.3.4}/LICENSE +0 -0
  59. {observal_cli-0.3.2 → observal_cli-0.3.4}/Makefile +0 -0
  60. {observal_cli-0.3.2 → observal_cli-0.3.4}/README.md +0 -0
  61. {observal_cli-0.3.2 → observal_cli-0.3.4}/SECURITY.md +0 -0
  62. {observal_cli-0.3.2 → observal_cli-0.3.4}/SETUP.md +0 -0
  63. {observal_cli-0.3.2 → observal_cli-0.3.4}/cliff.toml +0 -0
  64. {observal_cli-0.3.2 → observal_cli-0.3.4}/demo/README.md +0 -0
  65. {observal_cli-0.3.2 → observal_cli-0.3.4}/demo/run_demo.sh +0 -0
  66. {observal_cli-0.3.2 → observal_cli-0.3.4}/demo/test_all_types.sh +0 -0
  67. {observal_cli-0.3.2 → observal_cli-0.3.4}/docker/clickhouse/config.d/memory.xml +0 -0
  68. {observal_cli-0.3.2 → observal_cli-0.3.4}/docker/clickhouse/users.d/memory.xml +0 -0
  69. {observal_cli-0.3.2 → observal_cli-0.3.4}/docker/docker-compose.production.yml +0 -0
  70. {observal_cli-0.3.2 → observal_cli-0.3.4}/docker/entrypoint.sh +0 -0
  71. {observal_cli-0.3.2 → observal_cli-0.3.4}/docker/server-package/env.template +0 -0
  72. {observal_cli-0.3.2 → observal_cli-0.3.4}/docker/server-package/setup.sh +0 -0
  73. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/README.md +0 -0
  74. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/SUMMARY.md +0 -0
  75. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/cli/README.md +0 -0
  76. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/cli/admin.md +0 -0
  77. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/cli/agent.md +0 -0
  78. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/cli/auth.md +0 -0
  79. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/cli/config.md +0 -0
  80. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/cli/doctor.md +0 -0
  81. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/cli/ops.md +0 -0
  82. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/cli/profile.md +0 -0
  83. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/cli/pull.md +0 -0
  84. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/cli/registry.md +0 -0
  85. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/cli/scan.md +0 -0
  86. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/cli/self.md +0 -0
  87. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/concepts/README.md +0 -0
  88. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/concepts/data-model.md +0 -0
  89. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/concepts/evaluation.md +0 -0
  90. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/concepts/shim-vs-proxy.md +0 -0
  91. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/e2e-test-checklist-enterprise.md +0 -0
  92. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/e2e-test-checklist.md +0 -0
  93. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/getting-started/core-concepts.md +0 -0
  94. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/getting-started/installation.md +0 -0
  95. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/getting-started/quickstart.md +0 -0
  96. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/images/ObservalLogo-removebg-preview.png +0 -0
  97. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/images/agent-builder.png +0 -0
  98. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/images/agents-list.png +0 -0
  99. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/images/command-palette.png +0 -0
  100. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/images/components-list.png +0 -0
  101. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/images/dashboard.png +0 -0
  102. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/images/errors.png +0 -0
  103. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/images/eval-no-config.png +0 -0
  104. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/images/leaderboard.png +0 -0
  105. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/images/login-local.png +0 -0
  106. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/images/registry-home.png +0 -0
  107. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/images/review.png +0 -0
  108. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/images/session-info-claude-code.png +0 -0
  109. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/images/settings.png +0 -0
  110. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/images/traces.png +0 -0
  111. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/images/users.png +0 -0
  112. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/integrations/README.md +0 -0
  113. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/integrations/claude-code.md +0 -0
  114. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/integrations/codex-cli.md +0 -0
  115. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/integrations/cursor.md +0 -0
  116. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/integrations/gemini-cli.md +0 -0
  117. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/integrations/kiro.md +0 -0
  118. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/integrations/vscode.md +0 -0
  119. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/internal/kiro-compatibility-matrix.md +0 -0
  120. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/internal/kiro-research-notes.md +0 -0
  121. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/logo-light.svg +0 -0
  122. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/logo.svg +0 -0
  123. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/reference/api-endpoints.md +0 -0
  124. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/reference/config-files.md +0 -0
  125. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/reference/environment-variables.md +0 -0
  126. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/reference/hooks-spec.md +0 -0
  127. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/self-hosting/README.md +0 -0
  128. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/self-hosting/authentication.md +0 -0
  129. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/self-hosting/backup-and-restore.md +0 -0
  130. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/self-hosting/configuration.md +0 -0
  131. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/self-hosting/databases.md +0 -0
  132. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/self-hosting/docker-compose.md +0 -0
  133. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/self-hosting/evaluation-engine.md +0 -0
  134. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/self-hosting/ports-and-volumes.md +0 -0
  135. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/self-hosting/releasing.md +0 -0
  136. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/self-hosting/requirements.md +0 -0
  137. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/self-hosting/telemetry-pipeline.md +0 -0
  138. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/self-hosting/troubleshooting.md +0 -0
  139. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/self-hosting/upgrades.md +0 -0
  140. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/self-observability.md +0 -0
  141. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/use-cases/README.md +0 -0
  142. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/use-cases/debug-agent-failures.md +0 -0
  143. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/use-cases/evaluate-agents.md +0 -0
  144. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/use-cases/observe-mcp-traffic.md +0 -0
  145. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/use-cases/share-agent-configs.md +0 -0
  146. {observal_cli-0.3.2 → observal_cli-0.3.4}/docs/use-cases/team-registry.md +0 -0
  147. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/AGENTS.md +0 -0
  148. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/LICENSE +0 -0
  149. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/README.md +0 -0
  150. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/__init__.py +0 -0
  151. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/docs/cli-sso.md +0 -0
  152. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/docs/cli.md +0 -0
  153. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/docs/oidc-setup.md +0 -0
  154. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/docs/saml-setup.md +0 -0
  155. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/docs/scim-setup.md +0 -0
  156. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/observal_server/__init__.py +0 -0
  157. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/observal_server/middleware/__init__.py +0 -0
  158. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/observal_server/middleware/enterprise_guard.py +0 -0
  159. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/observal_server/routes/__init__.py +0 -0
  160. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/observal_server/routes/admin_sso.py +0 -0
  161. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/observal_server/routes/audit.py +0 -0
  162. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/observal_server/routes/scim.py +0 -0
  163. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/observal_server/routes/sso_saml.py +0 -0
  164. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/observal_server/services/__init__.py +0 -0
  165. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/observal_server/services/audit.py +0 -0
  166. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/observal_server/services/config_validator.py +0 -0
  167. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/observal_server/services/saml.py +0 -0
  168. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/observal_server/services/scim_service.py +0 -0
  169. {observal_cli-0.3.2 → observal_cli-0.3.4}/ee/plugins/__init__.py +0 -0
  170. {observal_cli-0.3.2 → observal_cli-0.3.4}/grafana/dashboards/agent-activity.json +0 -0
  171. {observal_cli-0.3.2 → observal_cli-0.3.4}/grafana/dashboards/audit-log.json +0 -0
  172. {observal_cli-0.3.2 → observal_cli-0.3.4}/grafana/dashboards/cost-tracking.json +0 -0
  173. {observal_cli-0.3.2 → observal_cli-0.3.4}/grafana/dashboards/error-rates.json +0 -0
  174. {observal_cli-0.3.2 → observal_cli-0.3.4}/grafana/dashboards/performance-resources.json +0 -0
  175. {observal_cli-0.3.2 → observal_cli-0.3.4}/grafana/dashboards/scores-eval.json +0 -0
  176. {observal_cli-0.3.2 → observal_cli-0.3.4}/grafana/dashboards/self-observability.json +0 -0
  177. {observal_cli-0.3.2 → observal_cli-0.3.4}/grafana/dashboards/session-overview.json +0 -0
  178. {observal_cli-0.3.2 → observal_cli-0.3.4}/grafana/dashboards/token-usage.json +0 -0
  179. {observal_cli-0.3.2 → observal_cli-0.3.4}/grafana/dashboards/tool-call-frequency.json +0 -0
  180. {observal_cli-0.3.2 → observal_cli-0.3.4}/grafana/provisioning/dashboards/default.yaml +0 -0
  181. {observal_cli-0.3.2 → observal_cli-0.3.4}/grafana/provisioning/datasources/clickhouse.yaml +0 -0
  182. {observal_cli-0.3.2 → observal_cli-0.3.4}/grafana/provisioning/datasources/prometheus.yaml +0 -0
  183. {observal_cli-0.3.2 → observal_cli-0.3.4}/install-server.sh +0 -0
  184. {observal_cli-0.3.2 → observal_cli-0.3.4}/install.sh +0 -0
  185. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/README.md +0 -0
  186. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/README +0 -0
  187. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/env.py +0 -0
  188. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/script.py.mako +0 -0
  189. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/.gitkeep +0 -0
  190. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/0001_add_rbac_roles_and_is_demo.py +0 -0
  191. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/0002_add_password_reset_tokens.py +0 -0
  192. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/0003_add_api_keys_table.py +0 -0
  193. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/0004_normalize_email_case.py +0 -0
  194. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/0005_drop_password_reset_tokens.py +0 -0
  195. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/0006_drop_api_keys_and_legacy_key_hash.py +0 -0
  196. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/0007_add_alert_history.py +0 -0
  197. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/0008_add_mcp_framework_column.py +0 -0
  198. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/0009_add_docker_image_to_mcp_listings.py +0 -0
  199. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/0010_add_agents_name_uniqueness.py +0 -0
  200. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/0011_agent_review_and_bundles.py +0 -0
  201. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/0012_add_username_to_users.py +0 -0
  202. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/0013_add_mcp_command_args_url_headers.py +0 -0
  203. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/0014_add_draft_to_listing_status.py +0 -0
  204. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/0015_add_webhook_secret_to_alert_rules.py +0 -0
  205. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/0016_add_ide_feature_fields.py +0 -0
  206. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/0017_add_org_trace_privacy.py +0 -0
  207. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic/versions/0018_add_saml_config_and_scim_token.py +0 -0
  208. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/alembic.ini +0 -0
  209. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/__init__.py +0 -0
  210. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/deps.py +0 -0
  211. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/graphql.py +0 -0
  212. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/middleware/__init__.py +0 -0
  213. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/middleware/content_type.py +0 -0
  214. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/middleware/request_id.py +0 -0
  215. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/ratelimit.py +0 -0
  216. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/__init__.py +0 -0
  217. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/admin.py +0 -0
  218. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/agent.py +0 -0
  219. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/alert.py +0 -0
  220. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/auth.py +0 -0
  221. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/bulk.py +0 -0
  222. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/component_source.py +0 -0
  223. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/dashboard.py +0 -0
  224. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/device_auth.py +0 -0
  225. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/eval.py +0 -0
  226. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/feedback.py +0 -0
  227. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/hook.py +0 -0
  228. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/jwks.py +0 -0
  229. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/mcp.py +0 -0
  230. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/otlp.py +0 -0
  231. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/prompt.py +0 -0
  232. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/review.py +0 -0
  233. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/sandbox.py +0 -0
  234. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/routes/skill.py +0 -0
  235. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/api/sanitize.py +0 -0
  236. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/config.py +0 -0
  237. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/database.py +0 -0
  238. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/logging_config.py +0 -0
  239. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/main.py +0 -0
  240. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/__init__.py +0 -0
  241. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/agent.py +0 -0
  242. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/agent_component.py +0 -0
  243. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/alert.py +0 -0
  244. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/alert_history.py +0 -0
  245. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/base.py +0 -0
  246. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/component_bundle.py +0 -0
  247. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/component_source.py +0 -0
  248. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/download.py +0 -0
  249. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/enterprise_config.py +0 -0
  250. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/eval.py +0 -0
  251. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/exporter_config.py +0 -0
  252. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/feedback.py +0 -0
  253. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/hook.py +0 -0
  254. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/mcp.py +0 -0
  255. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/organization.py +0 -0
  256. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/password_reset_token.py +0 -0
  257. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/prompt.py +0 -0
  258. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/saml_config.py +0 -0
  259. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/sandbox.py +0 -0
  260. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/sanitization.py +0 -0
  261. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/scim_token.py +0 -0
  262. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/scoring.py +0 -0
  263. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/skill.py +0 -0
  264. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/submission.py +0 -0
  265. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/models/user.py +0 -0
  266. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/schemas/__init__.py +0 -0
  267. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/schemas/admin.py +0 -0
  268. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/schemas/agent.py +0 -0
  269. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/schemas/alert.py +0 -0
  270. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/schemas/auth.py +0 -0
  271. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/schemas/bulk.py +0 -0
  272. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/schemas/component_source.py +0 -0
  273. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/schemas/dashboard.py +0 -0
  274. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/schemas/eval.py +0 -0
  275. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/schemas/feedback.py +0 -0
  276. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/schemas/hook.py +0 -0
  277. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/schemas/judge_output.py +0 -0
  278. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/schemas/mcp.py +0 -0
  279. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/schemas/prompt.py +0 -0
  280. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/schemas/sandbox.py +0 -0
  281. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/schemas/skill.py +0 -0
  282. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/schemas/telemetry.py +0 -0
  283. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/__init__.py +0 -0
  284. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/agent_resolver.py +0 -0
  285. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/alert_evaluator.py +0 -0
  286. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/audit_helpers.py +0 -0
  287. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/cache.py +0 -0
  288. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/clickhouse.py +0 -0
  289. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/codex_config_generator.py +0 -0
  290. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/crypto.py +0 -0
  291. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/demo_accounts.py +0 -0
  292. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/download_tracker.py +0 -0
  293. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/eval/__init__.py +0 -0
  294. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/eval/adversarial_scorer.py +0 -0
  295. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/eval/canary.py +0 -0
  296. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/eval/eval_engine.py +0 -0
  297. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/eval/eval_service.py +0 -0
  298. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/eval/eval_watchdog.py +0 -0
  299. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/eval/kernel.py +0 -0
  300. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/eval/kernel_bridge.py +0 -0
  301. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/eval/kernel_scorer.py +0 -0
  302. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/eval/ragas_eval.py +0 -0
  303. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/eval/sanitizer.py +0 -0
  304. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/eval/score_aggregator.py +0 -0
  305. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/eval/slm_scorer.py +0 -0
  306. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/eval/structural_scorer.py +0 -0
  307. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/events.py +0 -0
  308. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/git_mirror_service.py +0 -0
  309. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/hook_materializer.py +0 -0
  310. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/ide_feature_inference.py +0 -0
  311. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/jwt_service.py +0 -0
  312. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/mcp_validator.py +0 -0
  313. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/redis.py +0 -0
  314. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/registry_telemetry.py +0 -0
  315. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/request_context.py +0 -0
  316. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/sandbox_config_generator.py +0 -0
  317. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/secrets_redactor.py +0 -0
  318. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/security_events.py +0 -0
  319. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/skill_config_generator.py +0 -0
  320. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/versioning.py +0 -0
  321. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/webhook_delivery.py +0 -0
  322. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/services/webhook_signer.py +0 -0
  323. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/tests/__init__.py +0 -0
  324. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/tests/conftest.py +0 -0
  325. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/tests/test_config.py +0 -0
  326. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/tests/test_crypto.py +0 -0
  327. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/tests/test_jwt.py +0 -0
  328. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/tests/test_multi_tenancy.py +0 -0
  329. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/tests/test_payload_protection.py +0 -0
  330. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/tests/test_rbac.py +0 -0
  331. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/tests/test_security_events.py +0 -0
  332. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/uv.lock +0 -0
  333. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal-server/worker.py +0 -0
  334. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/README.md +0 -0
  335. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/__init__.py +0 -0
  336. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/analyzer.py +0 -0
  337. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/branding.py +0 -0
  338. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/client.py +0 -0
  339. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/cmd_agent.py +0 -0
  340. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/cmd_hook.py +0 -0
  341. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/cmd_mcp.py +0 -0
  342. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/cmd_migrate.py +0 -0
  343. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/cmd_ops.py +0 -0
  344. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/cmd_profile.py +0 -0
  345. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/cmd_prompt.py +0 -0
  346. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/cmd_pull.py +0 -0
  347. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/cmd_sandbox.py +0 -0
  348. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/cmd_skill.py +0 -0
  349. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/cmd_uninstall.py +0 -0
  350. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/config.py +0 -0
  351. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/hooks/__init__.py +0 -0
  352. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/hooks/buffer_event.py +0 -0
  353. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/hooks/flush_buffer.py +0 -0
  354. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/hooks/gemini_hook.py +0 -0
  355. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/hooks/gemini_stop_hook.py +0 -0
  356. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/hooks/kiro_stop_hook.py +0 -0
  357. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/hooks/observal-hook.sh +0 -0
  358. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/hooks/observal-stop-hook.sh +0 -0
  359. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/hooks/payload_crypto.py +0 -0
  360. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/main.py +0 -0
  361. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/prompts.py +0 -0
  362. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/proxy.py +0 -0
  363. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/pyinstaller.spec +0 -0
  364. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/render.py +0 -0
  365. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/requirements.txt +0 -0
  366. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/sandbox_runner.py +0 -0
  367. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/settings_reconciler.py +0 -0
  368. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/shim.py +0 -0
  369. {observal_cli-0.3.2 → observal_cli-0.3.4}/observal_cli/telemetry_buffer.py +0 -0
  370. {observal_cli-0.3.2 → observal_cli-0.3.4}/otel-collector-config.yaml +0 -0
  371. {observal_cli-0.3.2 → observal_cli-0.3.4}/prometheus.yml +0 -0
  372. {observal_cli-0.3.2 → observal_cli-0.3.4}/renovate.json +0 -0
  373. {observal_cli-0.3.2 → observal_cli-0.3.4}/screenshots/01-review-queue.png +0 -0
  374. {observal_cli-0.3.2 → observal_cli-0.3.4}/screenshots/02-detail-sheet-mcp.png +0 -0
  375. {observal_cli-0.3.2 → observal_cli-0.3.4}/screenshots/03-after-bulk-approve.png +0 -0
  376. {observal_cli-0.3.2 → observal_cli-0.3.4}/screenshots/04-rejection-reason-skills.png +0 -0
  377. {observal_cli-0.3.2 → observal_cli-0.3.4}/scripts/check_dco.sh +0 -0
  378. {observal_cli-0.3.2 → observal_cli-0.3.4}/scripts/check_migrations.py +0 -0
  379. {observal_cli-0.3.2 → observal_cli-0.3.4}/scripts/check_secrets.sh +0 -0
  380. {observal_cli-0.3.2 → observal_cli-0.3.4}/scripts/new_migration.sh +0 -0
  381. {observal_cli-0.3.2 → observal_cli-0.3.4}/scripts/seed_test_skill.py +0 -0
  382. {observal_cli-0.3.2 → observal_cli-0.3.4}/test-agent.json +0 -0
  383. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/README.md +0 -0
  384. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/__init__.py +0 -0
  385. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/conftest.py +0 -0
  386. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/eval/__init__.py +0 -0
  387. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/eval/test_adversarial_self.py +0 -0
  388. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/eval/test_eval_completeness.py +0 -0
  389. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/eval/test_eval_phase8.py +0 -0
  390. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/eval/test_phase8a_sanitizer.py +0 -0
  391. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/eval/test_phase8b_matching.py +0 -0
  392. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/eval/test_phase8d_adversarial.py +0 -0
  393. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/eval/test_phase8e_canary.py +0 -0
  394. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/eval/test_phase8g_pipeline.py +0 -0
  395. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/eval/test_ragas_eval.py +0 -0
  396. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/eval/test_score_aggregator.py +0 -0
  397. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/eval/test_slm_scorer.py +0 -0
  398. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/eval/test_structural_scorer.py +0 -0
  399. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/mock_mcp.py +0 -0
  400. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_agent_name_lookup.py +0 -0
  401. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_agent_review.py +0 -0
  402. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_alert_evaluator.py +0 -0
  403. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_audit_logging.py +0 -0
  404. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_auth2_security.py +0 -0
  405. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_auth_redis_down.py +0 -0
  406. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_bulk.py +0 -0
  407. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_bundles.py +0 -0
  408. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_cli_errors.py +0 -0
  409. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_clickhouse_phase1.py +0 -0
  410. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_clickhouse_resource_tuning.py +0 -0
  411. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_clickhouse_retention.py +0 -0
  412. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_config_generator_utils.py +0 -0
  413. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_constants_sync.py +0 -0
  414. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_demo_accounts.py +0 -0
  415. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_deployment_guards.py +0 -0
  416. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_device_auth.py +0 -0
  417. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_docker_detection.py +0 -0
  418. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_draft_workflow.py +0 -0
  419. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_enterprise.py +0 -0
  420. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_env_detection_and_config.py +0 -0
  421. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_events.py +0 -0
  422. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_field_validation.py +0 -0
  423. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_git_mirror.py +0 -0
  424. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_graphql_phase6.py +0 -0
  425. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_health.py +0 -0
  426. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_ingest_phase2.py +0 -0
  427. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_listing_detail_access.py +0 -0
  428. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_migrate.py +0 -0
  429. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_migrate_telemetry.py +0 -0
  430. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_payload_crypto.py +0 -0
  431. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_phase9_10.py +0 -0
  432. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_proxy_phase4.py +0 -0
  433. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_pull_and_agent_cli.py +0 -0
  434. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_registry_types.py +0 -0
  435. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_resilience.py +0 -0
  436. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_review_queue.py +0 -0
  437. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_saml.py +0 -0
  438. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_saml_scim_integration.py +0 -0
  439. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_sanitize.py +0 -0
  440. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_scan_kiro_home.py +0 -0
  441. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_schema_redesign.py +0 -0
  442. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_scim.py +0 -0
  443. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_secrets_redactor.py +0 -0
  444. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_settings_reconciler.py +0 -0
  445. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_skill_config_generator.py +0 -0
  446. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_telemetry_collection.py +0 -0
  447. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_uninstall.py +0 -0
  448. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_uninstall_windows.py +0 -0
  449. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_versioning.py +0 -0
  450. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_webhook_delivery.py +0 -0
  451. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_webhook_signer.py +0 -0
  452. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_webhook_signer_properties.py +0 -0
  453. {observal_cli-0.3.2 → observal_cli-0.3.4}/tests/test_worker_phase5.py +0 -0
  454. {observal_cli-0.3.2 → observal_cli-0.3.4}/tools/release.sh +0 -0
  455. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/.gitignore +0 -0
  456. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/AGENTS.md +0 -0
  457. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/README.md +0 -0
  458. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/e2e/helpers.ts +0 -0
  459. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/e2e/kiro-agent-compat.spec.ts +0 -0
  460. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/e2e/kiro-cli.spec.ts +0 -0
  461. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/e2e/kiro-hooks.spec.ts +0 -0
  462. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/e2e/kiro-lifecycle.spec.ts +0 -0
  463. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/e2e/kiro-live.spec.ts +0 -0
  464. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/e2e/kiro-otlp-logs.spec.ts +0 -0
  465. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/e2e/kiro-otlp-traces.spec.ts +0 -0
  466. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/e2e/kiro-web-agents.spec.ts +0 -0
  467. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/e2e/kiro-web-traces.spec.ts +0 -0
  468. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/e2e/shim-merge.spec.ts +0 -0
  469. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/e2e/sso-login.spec.ts +0 -0
  470. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/e2e/unarchive-agent.spec.ts +0 -0
  471. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/eslint.config.mjs +0 -0
  472. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/next.config.ts +0 -0
  473. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/package.json +0 -0
  474. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/playwright.config.ts +0 -0
  475. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/pnpm-lock.yaml +0 -0
  476. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/pnpm-workspace.yaml +0 -0
  477. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/postcss.config.mjs +0 -0
  478. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/public/file.svg +0 -0
  479. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/public/globe.svg +0 -0
  480. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/public/next.svg +0 -0
  481. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/public/vercel.svg +0 -0
  482. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/public/window.svg +0 -0
  483. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(admin)/audit-log/page.tsx +0 -0
  484. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(admin)/dashboard/page.tsx +0 -0
  485. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(admin)/diagnostics/page.tsx +0 -0
  486. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(admin)/errors/page.tsx +0 -0
  487. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(admin)/eval/[agentId]/page.tsx +0 -0
  488. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(admin)/eval/page.tsx +0 -0
  489. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(admin)/layout.tsx +0 -0
  490. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(admin)/review/page.tsx +0 -0
  491. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(admin)/security-events/page.tsx +0 -0
  492. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(admin)/settings/page.tsx +0 -0
  493. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(admin)/sso/page.tsx +0 -0
  494. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(admin)/users/page.tsx +0 -0
  495. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(auth)/device/page.tsx +0 -0
  496. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(auth)/layout.tsx +0 -0
  497. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(auth)/login/page.tsx +0 -0
  498. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(registry)/agents/[id]/page.tsx +0 -0
  499. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(registry)/agents/builder/page.tsx +0 -0
  500. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(registry)/agents/page.tsx +0 -0
  501. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(registry)/components/[id]/page.tsx +0 -0
  502. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(registry)/components/page.tsx +0 -0
  503. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(registry)/layout.tsx +0 -0
  504. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(registry)/leaderboard/page.tsx +0 -0
  505. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(registry)/page.tsx +0 -0
  506. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/(user)/layout.tsx +0 -0
  507. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/favicon.ico +0 -0
  508. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/globals.css +0 -0
  509. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/icon.png +0 -0
  510. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/layout.tsx +0 -0
  511. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/app/providers.tsx +0 -0
  512. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/builder/preview-panel.tsx +0 -0
  513. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/builder/sortable-component-list.tsx +0 -0
  514. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/builder/validation-panel.tsx +0 -0
  515. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/dashboard/agent-aggregate-chart.tsx +0 -0
  516. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/dashboard/bar-list.tsx +0 -0
  517. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/dashboard/dashboard-card.tsx +0 -0
  518. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/dashboard/dimension-radar.tsx +0 -0
  519. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/dashboard/efficiency-metrics.tsx +0 -0
  520. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/dashboard/export-button.tsx +0 -0
  521. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/dashboard/latency-heatmap.tsx +0 -0
  522. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/dashboard/no-data.tsx +0 -0
  523. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/dashboard/penalty-accordion.tsx +0 -0
  524. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/dashboard/query-error.tsx +0 -0
  525. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/dashboard/score-overview.tsx +0 -0
  526. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/dashboard/session-dag.tsx +0 -0
  527. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/dashboard/stat-card.tsx +0 -0
  528. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/dashboard/time-range-select.tsx +0 -0
  529. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/dashboard/top-items-card.tsx +0 -0
  530. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/dashboard/trend-chart.tsx +0 -0
  531. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/layouts/admin-guard.tsx +0 -0
  532. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/layouts/auth-guard.tsx +0 -0
  533. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/layouts/dashboard-shell.tsx +0 -0
  534. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/layouts/page-header.tsx +0 -0
  535. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/layouts/role-guard.tsx +0 -0
  536. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/nav/command-menu.tsx +0 -0
  537. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/nav/github-star-banner.tsx +0 -0
  538. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/nav/nav-user.tsx +0 -0
  539. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/nav/registry-sidebar.tsx +0 -0
  540. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/registry/agent-card.tsx +0 -0
  541. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/registry/component-card.tsx +0 -0
  542. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/registry/feedback-list.tsx +0 -0
  543. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/registry/ide-badges.tsx +0 -0
  544. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/registry/install-dialog.tsx +0 -0
  545. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/registry/metrics-panel.tsx +0 -0
  546. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/registry/pull-command.tsx +0 -0
  547. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/registry/registry-detail.tsx +0 -0
  548. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/registry/registry-table.tsx +0 -0
  549. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/registry/review-form.tsx +0 -0
  550. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/registry/status-badge.tsx +0 -0
  551. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/registry/submit-component-dialog.tsx +0 -0
  552. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/review/review-detail-sheet.tsx +0 -0
  553. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/review/validation-badges.tsx +0 -0
  554. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/shared/empty-state.tsx +0 -0
  555. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/shared/error-state.tsx +0 -0
  556. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/shared/skeleton-layouts.tsx +0 -0
  557. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/traces/span-tree.tsx +0 -0
  558. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/traces/trace-detail.tsx +0 -0
  559. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/avatar.tsx +0 -0
  560. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/badge.tsx +0 -0
  561. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/breadcrumb.tsx +0 -0
  562. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/button.tsx +0 -0
  563. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/card.tsx +0 -0
  564. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/checkbox.tsx +0 -0
  565. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/command.tsx +0 -0
  566. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/dialog.tsx +0 -0
  567. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/dropdown-menu.tsx +0 -0
  568. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/input.tsx +0 -0
  569. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/label.tsx +0 -0
  570. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/popover.tsx +0 -0
  571. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/progress.tsx +0 -0
  572. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/resizable.tsx +0 -0
  573. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/scroll-area.tsx +0 -0
  574. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/select.tsx +0 -0
  575. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/separator.tsx +0 -0
  576. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/sheet.tsx +0 -0
  577. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/sidebar.tsx +0 -0
  578. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/skeleton.tsx +0 -0
  579. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/sonner.tsx +0 -0
  580. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/switch.tsx +0 -0
  581. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/table.tsx +0 -0
  582. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/tabs.tsx +0 -0
  583. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/textarea.tsx +0 -0
  584. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/theme-switcher.tsx +0 -0
  585. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/components/ui/tooltip.tsx +0 -0
  586. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/hooks/use-admin-guard.ts +0 -0
  587. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/hooks/use-api.ts +0 -0
  588. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/hooks/use-auth.ts +0 -0
  589. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/hooks/use-deployment-config.ts +0 -0
  590. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/hooks/use-mobile.ts +0 -0
  591. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/hooks/use-role-guard.ts +0 -0
  592. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/lib/api.ts +0 -0
  593. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/lib/export.ts +0 -0
  594. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/lib/query-client.ts +0 -0
  595. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/lib/types.ts +0 -0
  596. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/src/lib/utils.ts +0 -0
  597. {observal_cli-0.3.2 → observal_cli-0.3.4}/web/tsconfig.json +0 -0
@@ -0,0 +1,60 @@
1
+ # Version control
2
+ **/.git
3
+
4
+ # Python artifacts
5
+ **/__pycache__
6
+ **/.venv
7
+ *.pyc
8
+ .pytest_cache/
9
+ .coverage
10
+ htmlcov/
11
+
12
+ # Node.js artifacts
13
+ **/node_modules
14
+ **/.next
15
+
16
+ # Documentation (not copied by any Dockerfile)
17
+ *.md
18
+ LICENSE
19
+ docs/
20
+ screenshots/
21
+
22
+ # Testing (not shipped in images)
23
+ tests/
24
+
25
+ # CLI tool (separate distribution, not in API or web image)
26
+ observal_cli/
27
+
28
+ # Development tooling
29
+ .github/
30
+ .vscode/
31
+ .idea/
32
+ *.code-workspace
33
+
34
+ # Scripts and tools (not needed in containers)
35
+ scripts/
36
+ tools/
37
+
38
+ # Demo configs
39
+ demo/
40
+
41
+ # Monitoring configs (volume-mounted at runtime, not baked in)
42
+ grafana/
43
+ prometheus.yml
44
+ otel-collector-config.yaml
45
+
46
+ # Docker sub-configs (not needed inside images)
47
+ docker/docker-compose*.yml
48
+ docker/clickhouse/
49
+ docker/nginx*.conf
50
+ docker/server-package/
51
+
52
+ # Environment and logs
53
+ .env
54
+ .env.*
55
+ !.env.example
56
+ *.log
57
+
58
+ # Misc
59
+ renovate.json
60
+ cliff.toml
@@ -336,10 +336,11 @@ jobs:
336
336
  with:
337
337
  fetch-depth: 0
338
338
 
339
- - name: Download all artifacts
339
+ - name: Download release artifacts
340
340
  uses: actions/download-artifact@v4
341
341
  with:
342
342
  path: artifacts
343
+ pattern: observal-*
343
344
 
344
345
  - name: Flatten artifacts
345
346
  run: |
@@ -2,6 +2,63 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [0.3.4] - 2026-04-25
6
+
7
+ ### Added
8
+
9
+ - add copilot-cli doctor checks and SLI repair ([fe8f91a](https://github.com/BlazeUp-AI/Observal/commit/fe8f91af37c6e3d354906c022aaba2e12eb4b816))
10
+ - add copilot-cli scan and hook injection ([8956644](https://github.com/BlazeUp-AI/Observal/commit/8956644008e824ba59675be52448880170a544e8))
11
+ - add copilot-cli server-side config generation ([7c71b94](https://github.com/BlazeUp-AI/Observal/commit/7c71b94b2bdeb3827ecfb48bda0180b065d4de8f))
12
+ - add copilot-cli hook scripts ([4e22c5c](https://github.com/BlazeUp-AI/Observal/commit/4e22c5cf5907c30488e9cb73137495e057463535))
13
+ - add copilot-cli to IDE constants and feature matrix ([065900b](https://github.com/BlazeUp-AI/Observal/commit/065900b63c6f7fd60c1c6d11d9e730d51732293e))
14
+
15
+ ### Documentation
16
+
17
+ - add copilot-cli integration guide ([c459254](https://github.com/BlazeUp-AI/Observal/commit/c459254ee837e396e9d8dc3a9fc8b3c40d7c4cb6))
18
+
19
+ ### Fixed
20
+
21
+ - add missing event name mappings for prompt counting (**copilot**) ([0a3acf7](https://github.com/BlazeUp-AI/Observal/commit/0a3acf7c0f135e79291915a9d5081996a7d54762))
22
+ - auto-shim copilot/opencode MCP servers during login (**auth**) ([3d12220](https://github.com/BlazeUp-AI/Observal/commit/3d1222013fd0c2907ae82f5b346949c4bf673795))
23
+ - match native agent config schema and fix prompt injection (**kiro**) ([cb773cc](https://github.com/BlazeUp-AI/Observal/commit/cb773cc090540150bc1284063d06b6b243c5e5fc))
24
+ - replace fragile cat|sed|curl Unix pipelines with Python hook scripts (**kiro**) ([c304172](https://github.com/BlazeUp-AI/Observal/commit/c304172d8a96ed48e56b9f92d73fa5f876effe29))
25
+ - use LB URL as Dockerfile build-time default for API rewrites (**docker**) ([af54ebd](https://github.com/BlazeUp-AI/Observal/commit/af54ebd826ea4789b88894d51136644c25a4e683))
26
+ - preserve URL scheme in endpoint derivation and fix port issues (**config**) ([ef28cfe](https://github.com/BlazeUp-AI/Observal/commit/ef28cfe33e801c816ce529d6b827d84e14979340))
27
+ - reformat test_ide_config_e2e.py to satisfy ruff (**lint**) ([4c065ba](https://github.com/BlazeUp-AI/Observal/commit/4c065ba732c07dd43326eb3d84bbe12be2b040d8))
28
+ - rename camelCase test function to satisfy ruff N802 (**test**) ([77a57d4](https://github.com/BlazeUp-AI/Observal/commit/77a57d47a276495b8898dd2706fd6321cfda02ae))
29
+ - add Copilot CLI platform detection and hide unsupported fields (**web**) ([2259794](https://github.com/BlazeUp-AI/Observal/commit/22597942a864c521e61d3d3f0d5fbf2cf97552c1))
30
+ - add JSONC parsing and per-event hook names for Copilot CLI (**cli**) ([096fd3c](https://github.com/BlazeUp-AI/Observal/commit/096fd3c5092d0fa0e4d6e439d0e7c86ad85540a3))
31
+ - normalize Copilot CLI payloads and inject event names (**hooks**) ([a9d47fa](https://github.com/BlazeUp-AI/Observal/commit/a9d47faa3e327c64bb8ba5cb7be34c9c212ae50e))
32
+ - respect --ide filter in fallback home scan (**scan**) ([cf379dd](https://github.com/BlazeUp-AI/Observal/commit/cf379ddeaca9b24ab6b2f158e3711da433903520))
33
+ - only trace registered Kiro agents, skip kiro_default (**scan**) ([db39514](https://github.com/BlazeUp-AI/Observal/commit/db3951494f61f3e724c6dfc3fb659badd6e916ba))
34
+ - only trace registered Kiro agents, skip kiro_default (**scan**) ([63d2b5d](https://github.com/BlazeUp-AI/Observal/commit/63d2b5dc21b608e7039ddfbd8794afff5de58943))
35
+ - only trace registered Kiro agents, skip kiro_default (**scan**) ([9cdc9c5](https://github.com/BlazeUp-AI/Observal/commit/9cdc9c5cd7b451c968696fd0dda288c7db8f97d1))
36
+ - preserve host port in proxy headers to fix Kiro agent tracing (**nginx**) ([60dcda9](https://github.com/BlazeUp-AI/Observal/commit/60dcda95124b5e0e06307c66a43db2fde8056907))
37
+
38
+ ### Other
39
+
40
+ - update dependency ruff to v0.15.12 (#575) (**deps**) ([a8a406d](https://github.com/BlazeUp-AI/Observal/commit/a8a406df83a1978b157c0c8d6aac359d70a2da7b))
41
+
42
+ ### Performance
43
+
44
+ - multi-stage API build, expand dockerignore, add nginx gzip (**docker**) ([21fd2a4](https://github.com/BlazeUp-AI/Observal/commit/21fd2a461bd01709df7775655aedc91a07e608e6))
45
+
46
+ ### Testing
47
+
48
+ - update assertions for new config format (**kiro**) ([550ade5](https://github.com/BlazeUp-AI/Observal/commit/550ade505fa9eb1658799bdce050cd140927a2d4))
49
+ - add copilot-cli e2e tests ([dfabf02](https://github.com/BlazeUp-AI/Observal/commit/dfabf0215d6bdbb9bc1d0f0e2fb50e36dbe6f6d4))
50
+ ## [0.3.3] - 2026-04-24
51
+
52
+ ### Fixed
53
+
54
+ - filter release artifact download to skip Docker metadata (**ci**) ([dbd6a1b](https://github.com/BlazeUp-AI/Observal/commit/dbd6a1b66ec1dd3a6db067ecc9bc41a17174a329))
55
+ - rename package to observal-cli to match PyPI project (**pypi**) ([9e27f7a](https://github.com/BlazeUp-AI/Observal/commit/9e27f7a4645022356f9fcf02358449664f38c250))
56
+ - disable provenance on per-arch Docker builds (**ci**) ([50a8853](https://github.com/BlazeUp-AI/Observal/commit/50a88535f84b488b87afad4749f908d6d9cf2c9c))
57
+ - native multi-arch Docker builds, drop deprecated macos-13 (**ci**) ([d8232c8](https://github.com/BlazeUp-AI/Observal/commit/d8232c85bdc1a43fb524858ac7ded001ed3a5544))
58
+ - broaden session matching for Claude Code telemetry (**eval**) ([ab6f61d](https://github.com/BlazeUp-AI/Observal/commit/ab6f61d9f4098d06804db7980dfe191759d4ff21))
59
+ - add production compose override for SSL and frontend routing (**deploy**) ([9309f5d](https://github.com/BlazeUp-AI/Observal/commit/9309f5d2128a3593faad326ef9148df5be3a9a9a))
60
+ - broaden session matching for Claude Code telemetry (**eval**) ([3613d22](https://github.com/BlazeUp-AI/Observal/commit/3613d22729ec05f825f9dec925eb5126a4690dff))
61
+ - use SPECPATH for absolute paths in pyinstaller spec (**cli**) ([46de03c](https://github.com/BlazeUp-AI/Observal/commit/46de03c3dde3a950670609696ada45246cd9bb64))
5
62
  ## [0.3.2] - 2026-04-23
6
63
 
7
64
  ### Added
@@ -73,6 +130,7 @@ All notable changes to this project will be documented in this file.
73
130
 
74
131
  ### CI
75
132
 
133
+ - use GitHub App token for release tag push ([0c9c696](https://github.com/BlazeUp-AI/Observal/commit/0c9c69635a6c9f0772d3bf465e4956b577d02c16))
76
134
  - automated release pipeline for CLI, Docker, and server packages ([877e4e1](https://github.com/BlazeUp-AI/Observal/commit/877e4e1705f900f88c6c03582fcd39569aec8268))
77
135
 
78
136
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: observal-cli
3
- Version: 0.3.2
3
+ Version: 0.3.4
4
4
  Summary: Observal MCP Server Registry & Agent Registry CLI
5
5
  Project-URL: Homepage, https://github.com/BlazeUp-AI/Observal
6
6
  Project-URL: Repository, https://github.com/BlazeUp-AI/Observal
@@ -1,4 +1,5 @@
1
- FROM python:3.14-slim
1
+ # Build stage
2
+ FROM python:3.14-slim AS builder
2
3
 
3
4
  COPY --from=ghcr.io/astral-sh/uv:0.11.7 /uv /uvx /bin/
4
5
 
@@ -9,16 +10,23 @@ RUN apt-get update && apt-get install -y --no-install-recommends git xmlsec1 lib
9
10
  COPY observal-server/pyproject.toml observal-server/uv.lock ./
10
11
  RUN uv sync --frozen --no-dev --no-install-project
11
12
 
12
- COPY observal-server/ .
13
- COPY ee/ ./ee/
14
- COPY docker/entrypoint.sh /app/entrypoint.sh
15
- RUN sed -i 's/\r$//' /app/entrypoint.sh
13
+ # Runtime stage
14
+ FROM python:3.14-slim
16
15
 
17
16
  RUN groupadd --system --gid 1001 appgroup && \
18
17
  useradd --system --uid 1001 --gid appgroup appuser && \
19
- chown -R appuser:appgroup /app && \
20
18
  mkdir -p /data && chown appuser:appgroup /data
21
19
 
20
+ RUN apt-get update && apt-get install -y --no-install-recommends git xmlsec1 && rm -rf /var/lib/apt/lists/*
21
+
22
+ WORKDIR /app
23
+
24
+ COPY --from=builder --chown=appuser:appgroup /app/.venv /app/.venv
25
+ COPY --chown=appuser:appgroup observal-server/ .
26
+ COPY --chown=appuser:appgroup ee/ ./ee/
27
+ COPY --chown=appuser:appgroup docker/entrypoint.sh /app/entrypoint.sh
28
+ RUN sed -i 's/\r$//' /app/entrypoint.sh
29
+
22
30
  USER appuser
23
31
 
24
32
  EXPOSE 8000
@@ -10,7 +10,8 @@ WORKDIR /app
10
10
  COPY --from=deps /app/node_modules ./node_modules
11
11
  COPY web/ .
12
12
  ENV NEXT_TELEMETRY_DISABLED=1
13
- ENV NEXT_PUBLIC_API_URL=http://observal-api:8000
13
+ ARG NEXT_PUBLIC_API_URL="http://observal-lb:80"
14
+ ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL
14
15
  RUN corepack enable pnpm && pnpm run build
15
16
 
16
17
  FROM base AS runner
@@ -189,7 +189,7 @@ services:
189
189
  ports:
190
190
  - "${WEB_HOST_PORT:-3000}:3000"
191
191
  environment:
192
- - NEXT_PUBLIC_API_URL=http://observal-lb:80
192
+ - NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL:-http://observal-lb:80}
193
193
  depends_on:
194
194
  observal-lb:
195
195
  condition: service_started
@@ -5,9 +5,16 @@ upstream observal_api {
5
5
  server {
6
6
  listen 80;
7
7
 
8
+ gzip on;
9
+ gzip_types application/json application/javascript text/css text/plain text/xml application/xml;
10
+ gzip_min_length 256;
11
+ gzip_vary on;
12
+ gzip_proxied any;
13
+ gzip_comp_level 5;
14
+
8
15
  location / {
9
16
  proxy_pass http://observal_api;
10
- proxy_set_header Host $host;
17
+ proxy_set_header Host $http_host;
11
18
  proxy_set_header X-Real-IP $remote_addr;
12
19
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
13
20
  proxy_set_header X-Forwarded-Proto $scheme;
@@ -21,9 +21,16 @@ server {
21
21
  ssl_protocols TLSv1.2 TLSv1.3;
22
22
  ssl_ciphers HIGH:!aNULL:!MD5;
23
23
 
24
+ gzip on;
25
+ gzip_types application/json application/javascript text/css text/plain text/xml application/xml;
26
+ gzip_min_length 256;
27
+ gzip_vary on;
28
+ gzip_proxied any;
29
+ gzip_comp_level 5;
30
+
24
31
  location /api/ {
25
32
  proxy_pass http://observal_api;
26
- proxy_set_header Host $host;
33
+ proxy_set_header Host $http_host;
27
34
  proxy_set_header X-Real-IP $remote_addr;
28
35
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
29
36
  proxy_set_header X-Forwarded-Proto $scheme;
@@ -36,22 +43,22 @@ server {
36
43
 
37
44
  location /health {
38
45
  proxy_pass http://observal_api;
39
- proxy_set_header Host $host;
46
+ proxy_set_header Host $http_host;
40
47
  }
41
48
 
42
49
  location /livez {
43
50
  proxy_pass http://observal_api;
44
- proxy_set_header Host $host;
51
+ proxy_set_header Host $http_host;
45
52
  }
46
53
 
47
54
  location /readyz {
48
55
  proxy_pass http://observal_api;
49
- proxy_set_header Host $host;
56
+ proxy_set_header Host $http_host;
50
57
  }
51
58
 
52
59
  location /graphql {
53
60
  proxy_pass http://observal_api;
54
- proxy_set_header Host $host;
61
+ proxy_set_header Host $http_host;
55
62
  proxy_set_header X-Real-IP $remote_addr;
56
63
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
57
64
  proxy_set_header X-Forwarded-Proto $scheme;
@@ -62,7 +69,7 @@ server {
62
69
 
63
70
  location / {
64
71
  proxy_pass http://observal_web;
65
- proxy_set_header Host $host;
72
+ proxy_set_header Host $http_host;
66
73
  proxy_set_header X-Real-IP $remote_addr;
67
74
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
68
75
  proxy_set_header X-Forwarded-Proto $scheme;
@@ -0,0 +1,170 @@
1
+ # Copilot CLI
2
+
3
+ [Copilot CLI](https://docs.github.com/en/copilot/github-copilot-in-the-cli) is the standalone agentic coding CLI from GitHub (binary: `copilot`). Observal uses a hook-based bridge for session lifecycle events and `observal-shim` for MCP server instrumentation.
4
+
5
+ ## What you get
6
+
7
+ * **MCP server instrumentation** via `observal-shim` (or `observal-proxy` for HTTP MCPs)
8
+ * **Session lifecycle events** via hooks — session start/end, user prompts, tool use, errors
9
+ * **Rules** (`.github/copilot-instructions.md`)
10
+
11
+ ## What you don't get (yet)
12
+
13
+ | Limitation | Detail |
14
+ | --- | --- |
15
+ | **Token counts** | Copilot CLI does not expose token usage in hook payloads. |
16
+ | **Cost per call** | No per-call cost data available. |
17
+ | **Session enrichment** | No local conversation store to read turn counts or model info at session end. |
18
+
19
+ ## Setup
20
+
21
+ ### 1. Install Copilot CLI
22
+
23
+ ```bash
24
+ curl -fsSL https://gh.io/copilot-install | bash
25
+ copilot --version
26
+ ```
27
+
28
+ ### 2. Install the Observal CLI
29
+
30
+ ```bash
31
+ curl -fsSL https://raw.githubusercontent.com/BlazeUp-AI/Observal/main/install.sh | bash
32
+ observal auth login
33
+ ```
34
+
35
+ ### 3. Instrument Copilot CLI
36
+
37
+ ```bash
38
+ observal scan --ide copilot-cli --home
39
+ ```
40
+
41
+ This does three things:
42
+
43
+ 1. **Wraps MCP servers** in `~/.copilot/mcp-config.json` with `observal-shim`
44
+ 2. **Injects hooks** into `~/.copilot/config.json` for session lifecycle telemetry
45
+ 3. **Discovers** any project-level MCP servers in `.mcp.json`
46
+
47
+ ### 4. (Optional) Pull an agent from the registry
48
+
49
+ ```bash
50
+ observal agent list
51
+ observal pull <agent-id> --ide copilot-cli
52
+ ```
53
+
54
+ This writes:
55
+
56
+ | File | Purpose |
57
+ | --- | --- |
58
+ | `.github/copilot-instructions.md` | Rules / system instructions |
59
+ | `.mcp.json` | MCP servers wrapped with `observal-shim` |
60
+
61
+ ### 5. Diagnose
62
+
63
+ ```bash
64
+ observal doctor --ide copilot-cli
65
+ ```
66
+
67
+ ### 6. Repair hooks
68
+
69
+ ```bash
70
+ observal doctor sli --ide copilot-cli
71
+ ```
72
+
73
+ Then restart Copilot CLI.
74
+
75
+ ## Config locations
76
+
77
+ | Purpose | Path |
78
+ | --- | --- |
79
+ | Settings + hooks | `~/.copilot/config.json` |
80
+ | User MCP servers | `~/.copilot/mcp-config.json` |
81
+ | Project MCP servers | `.mcp.json` (project root) |
82
+ | Rules | `.github/copilot-instructions.md` |
83
+
84
+ ## How telemetry reaches Observal
85
+
86
+ ### Channel 1: MCP tool calls
87
+
88
+ Same as everywhere else — `observal-shim` sits between Copilot CLI and each MCP server. Every call becomes a span.
89
+
90
+ ### Channel 2: Session lifecycle (via hooks)
91
+
92
+ Observal installs hooks into `~/.copilot/config.json` under the `hooks` key. They fire at these events:
93
+
94
+ | Copilot CLI event | What it captures |
95
+ | --- | --- |
96
+ | `sessionStart` | Session begins |
97
+ | `userPromptSubmitted` | The user's prompt |
98
+ | `preToolUse` | Tool name and input (before the call) |
99
+ | `postToolUse` | Tool response (after the call) |
100
+ | `sessionEnd` | Session ends |
101
+ | `errorOccurred` | Errors during the session |
102
+
103
+ Each hook runs a Python script that reads stdin JSON, injects Observal metadata (`service_name`, `session_id`, user identity), and POSTs to `http://localhost:8000/api/v1/otel/hooks`.
104
+
105
+ ### Example hook in config.json
106
+
107
+ ```json
108
+ {
109
+ "hooks": {
110
+ "sessionStart": [
111
+ {
112
+ "type": "command",
113
+ "bash": "cat | python3 /path/to/copilot_cli_hook.py --url http://localhost:8000/api/v1/otel/hooks",
114
+ "powershell": "python /path/to/copilot_cli_hook.py --url http://localhost:8000/api/v1/otel/hooks",
115
+ "timeoutSec": 10
116
+ }
117
+ ]
118
+ }
119
+ }
120
+ ```
121
+
122
+ You don't write these by hand — `observal scan --ide copilot-cli --home` generates them.
123
+
124
+ ## View your traces
125
+
126
+ Open `http://localhost:3000/traces` and filter by **IDE -> copilot-cli**.
127
+
128
+ Or CLI:
129
+
130
+ ```bash
131
+ observal ops traces --limit 20
132
+ ```
133
+
134
+ ## Troubleshooting
135
+
136
+ ### Hooks not firing — sessions not appearing in the dashboard
137
+
138
+ 1. Confirm hooks are in `~/.copilot/config.json`:
139
+ ```bash
140
+ cat ~/.copilot/config.json | python3 -m json.tool
141
+ ```
142
+ 2. Verify `disableAllHooks` is not `true` in the config.
143
+ 3. Confirm the URL in the hook commands matches your server.
144
+ 4. Re-inject hooks: `observal doctor sli --ide copilot-cli`
145
+
146
+ ### `observal scan` wraps 0 servers
147
+
148
+ Your Copilot CLI MCP config may be empty. Check:
149
+
150
+ ```bash
151
+ cat ~/.copilot/mcp-config.json # user-level
152
+ cat .mcp.json # project-level
153
+ ```
154
+
155
+ Add at least one MCP server first, then re-run `scan`.
156
+
157
+ ### `observal-shim` not found
158
+
159
+ Reinstall:
160
+
161
+ ```bash
162
+ curl -fsSL https://raw.githubusercontent.com/BlazeUp-AI/Observal/main/install.sh | bash
163
+ which observal-shim
164
+ ```
165
+
166
+ ## Related
167
+
168
+ * [`observal pull`](../cli/pull.md)
169
+ * [`observal scan`](../cli/scan.md)
170
+ * [`observal doctor`](../cli/doctor.md)
@@ -19,7 +19,7 @@ def derive_endpoints(request: Request | None = None) -> dict[str, str]:
19
19
 
20
20
  parsed = urlparse(public_url)
21
21
  hostname = parsed.hostname or "localhost"
22
- scheme = "http" if hostname in ("localhost", "127.0.0.1") else "https"
22
+ scheme = parsed.scheme or ("http" if hostname in ("localhost", "127.0.0.1") else "https")
23
23
 
24
24
  otlp_http = settings.OTLP_HTTP_URL.rstrip("/") if settings.OTLP_HTTP_URL else f"{scheme}://{hostname}:4318"
25
25
  otlp_grpc = settings.OTLP_GRPC_URL.rstrip("/") if settings.OTLP_GRPC_URL else f"{scheme}://{hostname}:4317"
@@ -982,11 +982,13 @@ _COPILOT_TO_CC_EVENT = {
982
982
  "onPostToolUse": "PostToolUse",
983
983
  "postToolUse": "PostToolUse",
984
984
  "onUserPromptSubmitted": "UserPromptSubmit",
985
+ "userPromptSubmitted": "UserPromptSubmit",
985
986
  "onSessionStart": "SessionStart",
986
987
  "sessionStart": "SessionStart",
987
988
  "onSessionEnd": "Stop",
988
989
  "sessionEnd": "Stop",
989
990
  "onErrorOccurred": "StopFailure",
991
+ "errorOccurred": "StopFailure",
990
992
  "subagent.started": "SubagentStart",
991
993
  "subagent.completed": "SubagentStop",
992
994
  "subagent.failed": "SubagentStop",
@@ -349,8 +349,9 @@ async def telemetry_status(current_user: User = Depends(require_role(UserRole.ad
349
349
  )
350
350
 
351
351
 
352
- # Kiro CLI uses camelCase event names; normalize to PascalCase
352
+ # Kiro CLI and Copilot CLI use camelCase event names; normalize to PascalCase
353
353
  _KIRO_EVENT_MAP = {
354
+ # Kiro events
354
355
  "agentSpawn": "SessionStart",
355
356
  "userPromptSubmit": "UserPromptSubmit",
356
357
  "promptSubmit": "UserPromptSubmit",
@@ -358,12 +359,17 @@ _KIRO_EVENT_MAP = {
358
359
  "postToolUse": "PostToolUse",
359
360
  "stop": "Stop",
360
361
  "agentStop": "Stop",
362
+ # Copilot CLI events
363
+ "sessionStart": "SessionStart",
364
+ "sessionEnd": "Stop",
365
+ "userPromptSubmitted": "UserPromptSubmit",
366
+ "errorOccurred": "StopFailure",
361
367
  }
362
368
 
363
369
 
364
370
  @router.post("/hooks")
365
371
  async def ingest_hook(request: Request, current_user: User = Depends(require_role(UserRole.user))):
366
- """Ingest raw hook JSON from Claude Code/Kiro."""
372
+ """Ingest raw hook JSON from Claude Code/Kiro/Copilot CLI."""
367
373
  project_id = get_project_id(current_user)
368
374
  body = await request.json()
369
375
 
@@ -407,7 +413,7 @@ async def ingest_hook(request: Request, current_user: User = Depends(require_rol
407
413
  "end_time": now,
408
414
  "latency_ms": None,
409
415
  "status": "success",
410
- "ide": "",
416
+ "ide": body.get("service_name", ""),
411
417
  "environment": "default",
412
418
  "metadata": {},
413
419
  "token_count_input": None,
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "observal-server"
3
- version = "0.3.2"
3
+ version = "0.3.4"
4
4
  description = "Observal API server"
5
5
  requires-python = ">=3.11"
6
6
  license = "Apache-2.0"
@@ -22,6 +22,7 @@ VALID_IDES: list[str] = [
22
22
  "vscode",
23
23
  "codex",
24
24
  "copilot",
25
+ "copilot-cli",
25
26
  "opencode",
26
27
  ]
27
28
 
@@ -48,6 +49,7 @@ IDE_FEATURE_MATRIX: dict[str, set[str]] = {
48
49
  "gemini-cli": {"hook_bridge", "mcp_servers", "rules", "otlp_telemetry"},
49
50
  "codex": {"rules"},
50
51
  "copilot": {"mcp_servers", "rules"},
52
+ "copilot-cli": {"mcp_servers", "rules", "hook_bridge"},
51
53
  "opencode": {"mcp_servers", "rules"},
52
54
  "vscode": {"mcp_servers", "rules"},
53
55
  }