hawk 2.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. hawk/__init__.py +29 -0
  2. hawk/__main__.py +4 -0
  3. hawk/api/EvalSetConfig.schema.json +1216 -0
  4. hawk/api/ScanConfig.schema.json +1023 -0
  5. hawk/api/__init__.py +0 -0
  6. hawk/api/auth/__init__.py +0 -0
  7. hawk/api/auth/access_token.py +159 -0
  8. hawk/api/auth/job_auth.py +71 -0
  9. hawk/api/auth/middleman_client.py +90 -0
  10. hawk/api/auth/permission_checker.py +89 -0
  11. hawk/api/auth/read_only.py +82 -0
  12. hawk/api/auth/s3_files.py +177 -0
  13. hawk/api/auth_router.py +365 -0
  14. hawk/api/cors_middleware.py +32 -0
  15. hawk/api/datadog.py +55 -0
  16. hawk/api/datadog_monitors.py +134 -0
  17. hawk/api/eval_log_server.py +63 -0
  18. hawk/api/eval_set_server.py +501 -0
  19. hawk/api/health.py +180 -0
  20. hawk/api/helm_chart/Chart.yaml +5 -0
  21. hawk/api/helm_chart/templates/config_map.yaml +34 -0
  22. hawk/api/helm_chart/templates/job.yaml +201 -0
  23. hawk/api/helm_chart/templates/namespace.yaml +37 -0
  24. hawk/api/helm_chart/templates/network_policy.yaml +60 -0
  25. hawk/api/helm_chart/templates/secret.yaml +22 -0
  26. hawk/api/helm_chart/templates/service_account.yaml +42 -0
  27. hawk/api/human_eval_server.py +379 -0
  28. hawk/api/human_server.py +304 -0
  29. hawk/api/import_server.py +564 -0
  30. hawk/api/jumphost.py +156 -0
  31. hawk/api/meta_server.py +1589 -0
  32. hawk/api/monitoring_server.py +1109 -0
  33. hawk/api/otel.py +30 -0
  34. hawk/api/presigned_urls.py +29 -0
  35. hawk/api/problem.py +177 -0
  36. hawk/api/run.py +416 -0
  37. hawk/api/sample_content_router.py +326 -0
  38. hawk/api/sample_edit_router.py +332 -0
  39. hawk/api/scan_server.py +571 -0
  40. hawk/api/scan_view_server.py +420 -0
  41. hawk/api/server.py +306 -0
  42. hawk/api/server_policies.py +70 -0
  43. hawk/api/settings.py +234 -0
  44. hawk/api/state.py +255 -0
  45. hawk/api/timeline.py +320 -0
  46. hawk/api/util/aiohttp_to_starlette.py +46 -0
  47. hawk/api/util/namespace.py +28 -0
  48. hawk/api/util/validation.py +315 -0
  49. hawk/api/yaml_safety.py +71 -0
  50. hawk/cli/__init__.py +0 -0
  51. hawk/cli/cli.py +2206 -0
  52. hawk/cli/config.py +264 -0
  53. hawk/cli/delete.py +22 -0
  54. hawk/cli/download.py +113 -0
  55. hawk/cli/download_artifacts.py +242 -0
  56. hawk/cli/edit_samples.py +32 -0
  57. hawk/cli/eval_set.py +57 -0
  58. hawk/cli/human.py +89 -0
  59. hawk/cli/human_eval.py +191 -0
  60. hawk/cli/import_cmd.py +182 -0
  61. hawk/cli/list.py +161 -0
  62. hawk/cli/local.py +327 -0
  63. hawk/cli/login.py +87 -0
  64. hawk/cli/middleman.py +93 -0
  65. hawk/cli/models.py +56 -0
  66. hawk/cli/monitoring.py +367 -0
  67. hawk/cli/scan.py +98 -0
  68. hawk/cli/seed/__init__.py +0 -0
  69. hawk/cli/seed/constants.py +296 -0
  70. hawk/cli/seed/eval_log.py +423 -0
  71. hawk/cli/seed/seeder.py +165 -0
  72. hawk/cli/stacktrace.py +66 -0
  73. hawk/cli/stop.py +32 -0
  74. hawk/cli/tokens.py +62 -0
  75. hawk/cli/trace.py +424 -0
  76. hawk/cli/transcript.py +501 -0
  77. hawk/cli/util/api.py +544 -0
  78. hawk/cli/util/auth.py +492 -0
  79. hawk/cli/util/model.py +200 -0
  80. hawk/cli/util/responses.py +36 -0
  81. hawk/cli/util/secrets.py +164 -0
  82. hawk/cli/util/table.py +48 -0
  83. hawk/cli/util/trace.py +30 -0
  84. hawk/cli/util/types.py +129 -0
  85. hawk/cli/util/version_check.py +96 -0
  86. hawk/cli/watch.py +265 -0
  87. hawk/core/__init__.py +0 -0
  88. hawk/core/auth/__init__.py +5 -0
  89. hawk/core/auth/auth_context.py +17 -0
  90. hawk/core/auth/jwt_validator.py +148 -0
  91. hawk/core/auth/model_file.py +57 -0
  92. hawk/core/auth/permissions.py +111 -0
  93. hawk/core/aws_secret_arns.py +25 -0
  94. hawk/core/constants.py +9 -0
  95. hawk/core/db/__init__.py +0 -0
  96. hawk/core/db/alembic/env.py +83 -0
  97. hawk/core/db/alembic/script.py.mako +26 -0
  98. hawk/core/db/alembic/versions/0844cd8afa68_score_unique.py +31 -0
  99. hawk/core/db/alembic/versions/0a15eda2d9f5_token_counts_input.py +78 -0
  100. hawk/core/db/alembic/versions/1bec8cf5d1cf_add_cost_limit_tracking.py +30 -0
  101. hawk/core/db/alembic/versions/20260517_add_sample_attachment.py +106 -0
  102. hawk/core/db/alembic/versions/29d00d0f0dc2_add_label_to_scanner_result_unique_.py +44 -0
  103. hawk/core/db/alembic/versions/40285195f664_merge_heads.py +23 -0
  104. hawk/core/db/alembic/versions/549e90e5525c_add_sample_event_table.py +548 -0
  105. hawk/core/db/alembic/versions/5d72524d723a_init.py +374 -0
  106. hawk/core/db/alembic/versions/65dbc6ab948e_merge_branch_anchor_events_with_human_.py +23 -0
  107. hawk/core/db/alembic/versions/6c0a6ce96105_add_sample_started_completed_timestamps.py +32 -0
  108. hawk/core/db/alembic/versions/70562d043fe1_add_job_table.py +110 -0
  109. hawk/core/db/alembic/versions/7161087c5d94_cascade_deletes_on_middleman_model_.py +89 -0
  110. hawk/core/db/alembic/versions/73b04dca7c10_merge_heads_cascade_deletes_enable_rls.py +23 -0
  111. hawk/core/db/alembic/versions/77cdf99dcd0d_add_pg_trgm_indexes.py +60 -0
  112. hawk/core/db/alembic/versions/7f3caddc67ed_add_branch_and_anchor_event_columns.py +34 -0
  113. hawk/core/db/alembic/versions/86cfe97fc6d6_grant_rls_function_execute.py +78 -0
  114. hawk/core/db/alembic/versions/88abdab61a5d_sample_last_imported.py +48 -0
  115. hawk/core/db/alembic/versions/8b4908438916_merge_cost_limit_tracking_and_human_.py +23 -0
  116. hawk/core/db/alembic/versions/8c6950acaca1_merge_migration_heads.py +23 -0
  117. hawk/core/db/alembic/versions/9236fa4b5bb2_eval_set_id.py +53 -0
  118. hawk/core/db/alembic/versions/9a8a68ffa612_add_sample_invalidation_fields.py +59 -0
  119. hawk/core/db/alembic/versions/a1b2c3d4e5f6_rename_sample_ids.py +39 -0
  120. hawk/core/db/alembic/versions/a1b2c3d4e5f7_add_model_to_scan.py +55 -0
  121. hawk/core/db/alembic/versions/a1b2c3d4e5f9_memoize_rls_access_checks.py +342 -0
  122. hawk/core/db/alembic/versions/a2b3c4d5e6f7_add_sample_id_btree_index.py +33 -0
  123. hawk/core/db/alembic/versions/a3b4c5d6e7f8_add_fulltext_search_tsv.py +151 -0
  124. hawk/core/db/alembic/versions/a7b8c9d0e1f2_scan_model_groups_unresolved_sentinel.py +95 -0
  125. hawk/core/db/alembic/versions/a7c9d2e4f6b8_add_model_roles_tables.py +73 -0
  126. hawk/core/db/alembic/versions/b2c3d4e5f6a0_revert_rls_memoization.py +276 -0
  127. hawk/core/db/alembic/versions/b2c3d4e5f6a8_add_sample_search_text.py +80 -0
  128. hawk/core/db/alembic/versions/b4c5d6e7f8a9_cap_search_tsv_jsonb_columns.py +57 -0
  129. hawk/core/db/alembic/versions/c1d2e3f4a5b6_add_model_group_mapping.py +158 -0
  130. hawk/core/db/alembic/versions/c3d4e5f6a7b9_token_limit_bigint.py +50 -0
  131. hawk/core/db/alembic/versions/c4d5e6f7a8b9_denormalize_model_groups.py +223 -0
  132. hawk/core/db/alembic/versions/c5d6e7f8a9b0_add_sample_search_indexes.py +92 -0
  133. hawk/core/db/alembic/versions/c8b3a2e1f4d5_add_completed_at_eval_pk_index.py +34 -0
  134. hawk/core/db/alembic/versions/c8d1e2f3a4b5_job_type_enum_to_hyphen.py +32 -0
  135. hawk/core/db/alembic/versions/ccfec570758e_merge_heads.py +23 -0
  136. hawk/core/db/alembic/versions/cd456ad85d24_scored_at.py +23 -0
  137. hawk/core/db/alembic/versions/d1e2f3a4b5c6_add_parallel_query_indexes.py +55 -0
  138. hawk/core/db/alembic/versions/d2e3f4a5b6c7_add_rls_infrastructure.py +350 -0
  139. hawk/core/db/alembic/versions/d5e6f7a8b9c0_add_gin_index_on_eval_model_groups.py +29 -0
  140. hawk/core/db/alembic/versions/d6e7f8a9b0c1_search_all_websearch_tsquery.py +47 -0
  141. hawk/core/db/alembic/versions/d9e0f1a2b3c4_merge_unresolved_sentinel_and_completed_at_index.py +23 -0
  142. hawk/core/db/alembic/versions/e2f3a4b5c6d7_add_score_scored_at.py +33 -0
  143. hawk/core/db/alembic/versions/e3f4a5b6c7d8_enable_rls.py +44 -0
  144. hawk/core/db/alembic/versions/e6f7a8b9c0d1_denormalize_scan_model_groups.py +200 -0
  145. hawk/core/db/alembic/versions/e7f8a9b0c1d2_search_all_recency_sort.py +62 -0
  146. hawk/core/db/alembic/versions/e9a523a87aeb_add_human_table.py +50 -0
  147. hawk/core/db/alembic/versions/e9f1a2b3c4d5_add_model_role_type.py +36 -0
  148. hawk/core/db/alembic/versions/ecf5fbecb879_add_human_eval_assignment_table.py +77 -0
  149. hawk/core/db/alembic/versions/f3a4b5c6d7e8_add_score_model_usage.py +37 -0
  150. hawk/core/db/alembic/versions/f8a9b0c1d2e3_search_all_scope_pushdown.py +54 -0
  151. hawk/core/db/alembic/versions/fb819443bf37_rm_is_complete.py +39 -0
  152. hawk/core/db/alembic/versions/fdee9bee9bf8_scans.py +251 -0
  153. hawk/core/db/backfill_search_tsv.py +177 -0
  154. hawk/core/db/connection.py +231 -0
  155. hawk/core/db/functions.py +1135 -0
  156. hawk/core/db/job_writes.py +60 -0
  157. hawk/core/db/models.py +1431 -0
  158. hawk/core/db/parallel.py +121 -0
  159. hawk/core/db/serialization.py +73 -0
  160. hawk/core/db/upsert.py +99 -0
  161. hawk/core/dependencies.py +184 -0
  162. hawk/core/envsubst.py +51 -0
  163. hawk/core/eval_header.py +95 -0
  164. hawk/core/exceptions.py +52 -0
  165. hawk/core/importer/__init__.py +0 -0
  166. hawk/core/importer/eval/__init__.py +1 -0
  167. hawk/core/importer/eval/attachment_resolver.py +41 -0
  168. hawk/core/importer/eval/converter.py +926 -0
  169. hawk/core/importer/eval/externalization.py +144 -0
  170. hawk/core/importer/eval/importer.py +145 -0
  171. hawk/core/importer/eval/models.py +23 -0
  172. hawk/core/importer/eval/records.py +288 -0
  173. hawk/core/importer/eval/utils.py +101 -0
  174. hawk/core/importer/eval/writer/__init__.py +4 -0
  175. hawk/core/importer/eval/writer/postgres.py +824 -0
  176. hawk/core/importer/eval/writers.py +141 -0
  177. hawk/core/importer/scan/__init__.py +0 -0
  178. hawk/core/importer/scan/importer.py +96 -0
  179. hawk/core/importer/scan/writer/__init__.py +6 -0
  180. hawk/core/importer/scan/writer/postgres.py +362 -0
  181. hawk/core/importer/writer.py +64 -0
  182. hawk/core/logging.py +86 -0
  183. hawk/core/model_access.py +25 -0
  184. hawk/core/monitoring/__init__.py +13 -0
  185. hawk/core/monitoring/base.py +115 -0
  186. hawk/core/monitoring/eval_status.py +447 -0
  187. hawk/core/monitoring/kubernetes.py +1057 -0
  188. hawk/core/providers.py +369 -0
  189. hawk/core/run_in_venv.py +45 -0
  190. hawk/core/sanitize.py +148 -0
  191. hawk/core/scan_export.py +118 -0
  192. hawk/core/search/__init__.py +25 -0
  193. hawk/core/search/backend.py +36 -0
  194. hawk/core/search/postgres.py +623 -0
  195. hawk/core/search/service.py +41 -0
  196. hawk/core/search/types.py +129 -0
  197. hawk/core/shell.py +147 -0
  198. hawk/core/sse.py +64 -0
  199. hawk/core/tracing.py +297 -0
  200. hawk/core/types/__init__.py +185 -0
  201. hawk/core/types/__main__.py +38 -0
  202. hawk/core/types/artifacts.py +56 -0
  203. hawk/core/types/base.py +426 -0
  204. hawk/core/types/client_config.py +33 -0
  205. hawk/core/types/evals.py +392 -0
  206. hawk/core/types/monitoring.py +326 -0
  207. hawk/core/types/sample_edit.py +118 -0
  208. hawk/core/types/scans.py +287 -0
  209. hawk/core/version.py +110 -0
  210. hawk/e2e/__init__.py +0 -0
  211. hawk/e2e/task.py +25 -0
  212. hawk/janitor/__init__.py +0 -0
  213. hawk/janitor/__main__.py +233 -0
  214. hawk/py.typed +0 -0
  215. hawk/runner/__init__.py +0 -0
  216. hawk/runner/common.py +197 -0
  217. hawk/runner/credential_helper.py +407 -0
  218. hawk/runner/datadog_dashboard.json +225 -0
  219. hawk/runner/datadog_metrics.py +123 -0
  220. hawk/runner/entrypoint.py +267 -0
  221. hawk/runner/memory_monitor.py +635 -0
  222. hawk/runner/oauth_errors.py +31 -0
  223. hawk/runner/observability_headers.py +100 -0
  224. hawk/runner/oom_diagnostics.py +531 -0
  225. hawk/runner/otel_tracing.py +694 -0
  226. hawk/runner/process_tree.py +119 -0
  227. hawk/runner/ptrace.py +65 -0
  228. hawk/runner/refresh_token.py +204 -0
  229. hawk/runner/refresh_token_override.py +33 -0
  230. hawk/runner/run_eval_set.py +975 -0
  231. hawk/runner/run_scan.py +404 -0
  232. hawk/runner/run_scan_resume.py +100 -0
  233. hawk/runner/secrets.py +241 -0
  234. hawk/runner/set_memory_high.py +108 -0
  235. hawk/runner/stop_monitor.py +321 -0
  236. hawk/runner/stuck_eval_monitor.py +222 -0
  237. hawk/tools/__init__.py +0 -0
  238. hawk/tools/sync_models.py +170 -0
  239. hawk-2.0.0.dist-info/METADATA +157 -0
  240. hawk-2.0.0.dist-info/RECORD +242 -0
  241. hawk-2.0.0.dist-info/WHEEL +4 -0
  242. hawk-2.0.0.dist-info/entry_points.txt +5 -0
hawk/__init__.py ADDED
@@ -0,0 +1,29 @@
1
+ """Hawk — platform for running AI agent evaluations.
2
+
3
+ Exposes the standard ``hawk.__version__`` (SemVer string, e.g. ``2.0.0``) and a
4
+ structured ``hawk.__version_info__`` (release tuple, e.g. ``(2, 0, 0)``),
5
+ resolved lazily via :pep:`562` so importing a submodule doesn't pay for a
6
+ package-metadata lookup.
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ from typing import TYPE_CHECKING
12
+
13
+ if TYPE_CHECKING:
14
+ __version__: str
15
+ __version_info__: tuple[int, ...]
16
+
17
+ __all__ = ["__version__", "__version_info__"]
18
+
19
+
20
+ def __getattr__(name: str) -> object:
21
+ if name == "__version__":
22
+ import hawk.core.version
23
+
24
+ return hawk.core.version.get_version()
25
+ if name == "__version_info__":
26
+ import hawk.core.version
27
+
28
+ return hawk.core.version.version_tuple()
29
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
hawk/__main__.py ADDED
@@ -0,0 +1,4 @@
1
+ from hawk.cli import cli
2
+
3
+ if __name__ == "__main__":
4
+ cli.cli()