5deee8c65c
- Add ToolDefinitionManifest model with base image versioning - Add manifest compiler: Dockerfile + Compose generation from JSON manifests - Add permission fixer: post-start chown/chmod for mount policies - Add tool definition CRUD API with live compile preview endpoint - Integrate manifest-based startup flow in start_instance - Add Alembic migration with data conversion for pi-agent - Add 48 unit tests for manifest compiler, permission fixer, docker service - Keep backward compatibility with legacy dockerfile_template/compose_template Migration: applied successfully. Pi-agent converted to manifest. Quality gates: pytest (146 passed, 4 pre-existing unrelated failures)
1 line
69 KiB
JSON
1 line
69 KiB
JSON
{"version":"v2","builtAt":"2026-05-28T11:31:47.398Z","signature":"/home/alex/projects/headquarter/apps/api/alembic/env.py:1566:1779050260293.852|/home/alex/projects/headquarter/apps/api/alembic/versions/0001_initial_schema.py:4658:1779050260293.852|/home/alex/projects/headquarter/apps/api/alembic/versions/0002_refresh_tokens.py:2405:1779050260294.7954|/home/alex/projects/headquarter/apps/api/alembic/versions/0003_user_configs.py:1101:1779139057995.512|/home/alex/projects/headquarter/apps/api/alembic/versions/0004_tool_types.py:1575:1779139081351.2407|/home/alex/projects/headquarter/apps/api/alembic/versions/0005_ssh_keys_timestamps.py:1039:1779184269353.1443|/home/alex/projects/headquarter/apps/api/alembic/versions/0006_tool_instances.py:2716:1779215731764.582|/home/alex/projects/headquarter/apps/api/alembic/versions/0007_instance_container_name.py:715:1779265847432.003|/home/alex/projects/headquarter/apps/api/alembic/versions/0008_tool_type_category.py:911:1779267040781.6345|/home/alex/projects/headquarter/apps/api/alembic/versions/0009_tool_configs.py:2039:1779267064123.3723|/home/alex/projects/headquarter/apps/api/alembic/versions/0010_tool_type_default_port.py:689:1779277879364.0645|/home/alex/projects/headquarter/apps/api/alembic/versions/0011_tool_instance_tunnel_fields.py:894:1779279491357.6292|/home/alex/projects/headquarter/apps/api/alembic/versions/0012_default_port_req.py:1229:1779290612348.005|/home/alex/projects/headquarter/apps/api/alembic/versions/0013_add_probe_result.py:743:1779478921751.2427|/home/alex/projects/headquarter/apps/api/alembic/versions/0014_merge_heads.py:525:1779958621074.462|/home/alex/projects/headquarter/apps/api/alembic/versions/0015_single_interface.py:3832:1779958621081.462|/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_22_add_clone_mode.py:1312:1779485016565.7122|/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_23_remove_is_builtin.py:698:1779620544420.1614|/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_24_220141_add_startup_command.py:683:1779700843566.628|/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_24_add_config_profiles.py:4826:1779645589985.5532|/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_26_add_git_mounts.py:716:1779870048496.4265|/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_27_external_repos.py:1150:1779870986784.585|/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_28_add_tool_definition_manifests.py:13934:1779967994204.917|/home/alex/projects/headquarter/apps/api/alembic/versions/20260527160017_add_pi_agent_tool_type.py:3794:1779958621081.462|/home/alex/projects/headquarter/apps/api/alembic/versions/398082499c30_add_tool_config_fields.py:1576:1779467943887.104|/home/alex/projects/headquarter/apps/api/alembic/versions/6fc7bfcf199f_merge_remove_is_builtin_and_add_config_.py:455:1779958621081.462|/home/alex/projects/headquarter/apps/api/alembic/versions/8ed7dd80973d_create_config_folders_table.py:1770:1779467958721.936|/home/alex/projects/headquarter/apps/api/alembic/versions/af8512103d67_add_tool_type_fields.py:1432:1779467930354.6824|/home/alex/projects/headquarter/apps/api/alembic/versions/f3d2dc90ba3a_merge_single_interface_and_clone_mode.py:559:1779958621094.4617|/home/alex/projects/headquarter/apps/api/src/__init__.py:31:1779050260294.7954|/home/alex/projects/headquarter/apps/api/src/api/__init__.py:139:1779050826659.6775|/home/alex/projects/headquarter/apps/api/src/api/auth.py:7944:1779912973110.818|/home/alex/projects/headquarter/apps/api/src/api/config_folders.py:12351:1779710572785.8096|/home/alex/projects/headquarter/apps/api/src/api/config_profiles.py:27916:1779958621095.4617|/home/alex/projects/headquarter/apps/api/src/api/dashboard.py:2121:1779218866429.8337|/home/alex/projects/headquarter/apps/api/src/api/git_repositories.py:46638:1779958621112.4614|/home/alex/projects/headquarter/apps/api/src/api/health.py:4554:1779958621112.4614|/home/alex/projects/headquarter/apps/api/src/api/instance_proxy.py:4233:1779958621116.4614|/home/alex/projects/headquarter/apps/api/src/api/projects.py:6672:1779958621116.4614|/home/alex/projects/headquarter/apps/api/src/api/shared_validators.py:2682:1779958621132.4612|/home/alex/projects/headquarter/apps/api/src/api/ssh_keys.py:7517:1779958621133.4612|/home/alex/projects/headquarter/apps/api/src/api/terminal.py:12567:1779958621133.4612|/home/alex/projects/headquarter/apps/api/src/api/tool_configs.py:11248:1779958621152.461|/home/alex/projects/headquarter/apps/api/src/api/tool_definitions.py:13721:1779962991824.0735|/home/alex/projects/headquarter/apps/api/src/api/tool_instances.py:81390:1779962991812.0737|/home/alex/projects/headquarter/apps/api/src/api/tool_types_validation.py:2608:1779710051058.87|/home/alex/projects/headquarter/apps/api/src/api/tool_types.py:18213:1779958621153.461|/home/alex/projects/headquarter/apps/api/src/api/user_config.py:3431:1779958621153.461|/home/alex/projects/headquarter/apps/api/src/api/users.py:4291:1779708729186.244|/home/alex/projects/headquarter/apps/api/src/auth/__init__.py:308:1779137370597.2402|/home/alex/projects/headquarter/apps/api/src/auth/cookies.py:287:1779139942809.316|/home/alex/projects/headquarter/apps/api/src/auth/dependencies.py:2891:1779958621153.461|/home/alex/projects/headquarter/apps/api/src/auth/oidc.py:1650:1779137182579.4893|/home/alex/projects/headquarter/apps/api/src/auth/session.py:2228:1779645590016.553|/home/alex/projects/headquarter/apps/api/src/config.py:4705:1779286905138.4783|/home/alex/projects/headquarter/apps/api/src/database.py:3904:1779138928838.0117|/home/alex/projects/headquarter/apps/api/src/logging_config.py:2832:1779135759825.8926|/home/alex/projects/headquarter/apps/api/src/main.py:4791:1779962991745.0745|/home/alex/projects/headquarter/apps/api/src/models/__init__.py:770:1779962991815.0735|/home/alex/projects/headquarter/apps/api/src/models/base.py:640:1779109950568.2888|/home/alex/projects/headquarter/apps/api/src/models/config_folder.py:1199:1779468006545.395|/home/alex/projects/headquarter/apps/api/src/models/config_profile.py:3157:1779885324307.303|/home/alex/projects/headquarter/apps/api/src/models/git_repository.py:1415:1779870334034.114|/home/alex/projects/headquarter/apps/api/src/models/project.py:1241:1779109950568.697|/home/alex/projects/headquarter/apps/api/src/models/ssh_key.py:993:1779184246096.4092|/home/alex/projects/headquarter/apps/api/src/models/tool_config.py:1814:1779471154363.973|/home/alex/projects/headquarter/apps/api/src/models/tool_definition_manifest.py:2449:1779962991760.0742|/home/alex/projects/headquarter/apps/api/src/models/tool_instance.py:3057:1779962991776.074|/home/alex/projects/headquarter/apps/api/src/models/tool_type.py:2196:1779962991768.0742|/home/alex/projects/headquarter/apps/api/src/models/user_config.py:680:1779109990811.1602|/home/alex/projects/headquarter/apps/api/src/models/user.py:981:1779137408181.7927|/home/alex/projects/headquarter/apps/api/src/scripts/__init__.py:43:1779050260295.4287|/home/alex/projects/headquarter/apps/api/src/scripts/seed.py:1099:1779050260295.7207|/home/alex/projects/headquarter/apps/api/src/services/clone.py:2697:1779912904816.8372|/home/alex/projects/headquarter/apps/api/src/services/config_profile_resolver.py:15234:1779874299307.0806|/home/alex/projects/headquarter/apps/api/src/services/docker_build.py:2454:1779958621154.461|/home/alex/projects/headquarter/apps/api/src/services/docker.py:16097:1779958667213.9204|/home/alex/projects/headquarter/apps/api/src/services/manifest_compiler.py:13851:1779962991788.074|/home/alex/projects/headquarter/apps/api/src/services/permission_fixer.py:4631:1779962991795.0737|/home/alex/projects/headquarter/apps/api/src/services/readiness_probe.py:2120:1779468682156.7576|/home/alex/projects/headquarter/apps/api/src/services/ssh_keys.py:2050:1779481962606.4976|/home/alex/projects/headquarter/apps/api/src/services/terminal_manager.py:5804:1779958621154.461|/home/alex/projects/headquarter/apps/api/src/services/terminal_session.py:8778:1779912904787.3071|/home/alex/projects/headquarter/apps/api/src/utils/git_control.py:8284:1779958621174.4607|/home/alex/projects/headquarter/apps/api/src/utils/git_files.py:13552:1779618531450.968|/home/alex/projects/headquarter/apps/api/src/utils/git_history.py:11790:1779189553538.5813|/home/alex/projects/headquarter/apps/api/src/utils/git_url_parser.py:6437:1779185863539.9849|/home/alex/projects/headquarter/apps/api/tests/conftest.py:7687:1779958621174.4607|/home/alex/projects/headquarter/apps/api/tests/integration/__init__.py:0:1779471420954.9705|/home/alex/projects/headquarter/apps/api/tests/integration/test_auth_api.py:3813:1779471420958.8003|/home/alex/projects/headquarter/apps/api/tests/integration/test_auth_services.py:2447:1779471420958.9465|/home/alex/projects/headquarter/apps/api/tests/integration/test_config_folders_api.py:9227:1779473067454.4243|/home/alex/projects/headquarter/apps/api/tests/integration/test_config_profiles_api.py:16841:1779886811162.0073|/home/alex/projects/headquarter/apps/api/tests/integration/test_git_control.py:5257:1779478799198.6309|/home/alex/projects/headquarter/apps/api/tests/integration/test_models.py:3080:1779958621180.4607|/home/alex/projects/headquarter/apps/api/tests/integration/test_projects_api.py:8540:1779958621180.4607|/home/alex/projects/headquarter/apps/api/tests/integration/test_seed.py:864:1779471420972.4473|/home/alex/projects/headquarter/apps/api/tests/integration/test_ssh_keys_api.py:689:1779471420972.5269|/home/alex/projects/headquarter/apps/api/tests/integration/test_tool_configs_api_extended.py:9897:1779958621181.4607|/home/alex/projects/headquarter/apps/api/tests/integration/test_tool_types_api_extended.py:12371:1779958621181.4607|/home/alex/projects/headquarter/apps/api/tests/integration/test_tool_types_api.py:12510:1779556564012.5024|/home/alex/projects/headquarter/apps/api/tests/integration/test_users_api.py:6616:1779473987795.1477|/home/alex/projects/headquarter/apps/api/tests/system/__init__.py:0:1779109035822.815|/home/alex/projects/headquarter/apps/api/tests/unit/__init__.py:0:1779110037714.6304|/home/alex/projects/headquarter/apps/api/tests/unit/test_config_profile_resolver.py:15730:1779958621181.4607|/home/alex/projects/headquarter/apps/api/tests/unit/test_config.py:2316:1779110755300.477|/home/alex/projects/headquarter/apps/api/tests/unit/test_docker_build.py:5738:1779471360116.6558|/home/alex/projects/headquarter/apps/api/tests/unit/test_docker_service.py:1697:1779958603311.6707|/home/alex/projects/headquarter/apps/api/tests/unit/test_git_mount_resolution.py:4797:1779958621182.4607|/home/alex/projects/headquarter/apps/api/tests/unit/test_git_repository_clone_preflight.py:1109:1779474860172.3552|/home/alex/projects/headquarter/apps/api/tests/unit/test_git_repository_working_clones.py:2843:1779474860172.3552|/home/alex/projects/headquarter/apps/api/tests/unit/test_git_url_parser.py:5471:1779958621182.4607|/home/alex/projects/headquarter/apps/api/tests/unit/test_manifest_compiler.py:11095:1779962991834.0735|/home/alex/projects/headquarter/apps/api/tests/unit/test_migration_metadata.py:1177:1779110847713.4197|/home/alex/projects/headquarter/apps/api/tests/unit/test_permission_fixer.py:5348:1779962991842.0732|/home/alex/projects/headquarter/apps/api/tests/unit/test_readiness_probe.py:7321:1779958621190.4604|/home/alex/projects/headquarter/apps/api/tests/unit/test_session_branch_selection.py:6346:1779958621197.4604","fileSignatures":[["/home/alex/projects/headquarter/apps/api/alembic/env.py","1566:1779050260293.852"],["/home/alex/projects/headquarter/apps/api/alembic/versions/0001_initial_schema.py","4658:1779050260293.852"],["/home/alex/projects/headquarter/apps/api/alembic/versions/0002_refresh_tokens.py","2405:1779050260294.7954"],["/home/alex/projects/headquarter/apps/api/alembic/versions/0003_user_configs.py","1101:1779139057995.512"],["/home/alex/projects/headquarter/apps/api/alembic/versions/0004_tool_types.py","1575:1779139081351.2407"],["/home/alex/projects/headquarter/apps/api/alembic/versions/0005_ssh_keys_timestamps.py","1039:1779184269353.1443"],["/home/alex/projects/headquarter/apps/api/alembic/versions/0006_tool_instances.py","2716:1779215731764.582"],["/home/alex/projects/headquarter/apps/api/alembic/versions/0007_instance_container_name.py","715:1779265847432.003"],["/home/alex/projects/headquarter/apps/api/alembic/versions/0008_tool_type_category.py","911:1779267040781.6345"],["/home/alex/projects/headquarter/apps/api/alembic/versions/0009_tool_configs.py","2039:1779267064123.3723"],["/home/alex/projects/headquarter/apps/api/alembic/versions/0010_tool_type_default_port.py","689:1779277879364.0645"],["/home/alex/projects/headquarter/apps/api/alembic/versions/0011_tool_instance_tunnel_fields.py","894:1779279491357.6292"],["/home/alex/projects/headquarter/apps/api/alembic/versions/0012_default_port_req.py","1229:1779290612348.005"],["/home/alex/projects/headquarter/apps/api/alembic/versions/0013_add_probe_result.py","743:1779478921751.2427"],["/home/alex/projects/headquarter/apps/api/alembic/versions/0014_merge_heads.py","525:1779958621074.462"],["/home/alex/projects/headquarter/apps/api/alembic/versions/0015_single_interface.py","3832:1779958621081.462"],["/home/alex/projects/headquarter/apps/api/alembic/versions/20260527160017_add_pi_agent_tool_type.py","3794:1779958621081.462"],["/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_22_add_clone_mode.py","1312:1779485016565.7122"],["/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_23_remove_is_builtin.py","698:1779620544420.1614"],["/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_24_220141_add_startup_command.py","683:1779700843566.628"],["/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_24_add_config_profiles.py","4826:1779645589985.5532"],["/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_26_add_git_mounts.py","716:1779870048496.4265"],["/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_27_external_repos.py","1150:1779870986784.585"],["/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_28_add_tool_definition_manifests.py","13934:1779967994204.917"],["/home/alex/projects/headquarter/apps/api/alembic/versions/398082499c30_add_tool_config_fields.py","1576:1779467943887.104"],["/home/alex/projects/headquarter/apps/api/alembic/versions/6fc7bfcf199f_merge_remove_is_builtin_and_add_config_.py","455:1779958621081.462"],["/home/alex/projects/headquarter/apps/api/alembic/versions/8ed7dd80973d_create_config_folders_table.py","1770:1779467958721.936"],["/home/alex/projects/headquarter/apps/api/alembic/versions/af8512103d67_add_tool_type_fields.py","1432:1779467930354.6824"],["/home/alex/projects/headquarter/apps/api/alembic/versions/f3d2dc90ba3a_merge_single_interface_and_clone_mode.py","559:1779958621094.4617"],["/home/alex/projects/headquarter/apps/api/src/__init__.py","31:1779050260294.7954"],["/home/alex/projects/headquarter/apps/api/src/api/__init__.py","139:1779050826659.6775"],["/home/alex/projects/headquarter/apps/api/src/api/auth.py","7944:1779912973110.818"],["/home/alex/projects/headquarter/apps/api/src/api/config_folders.py","12351:1779710572785.8096"],["/home/alex/projects/headquarter/apps/api/src/api/config_profiles.py","27916:1779958621095.4617"],["/home/alex/projects/headquarter/apps/api/src/api/dashboard.py","2121:1779218866429.8337"],["/home/alex/projects/headquarter/apps/api/src/api/git_repositories.py","46638:1779958621112.4614"],["/home/alex/projects/headquarter/apps/api/src/api/health.py","4554:1779958621112.4614"],["/home/alex/projects/headquarter/apps/api/src/api/instance_proxy.py","4233:1779958621116.4614"],["/home/alex/projects/headquarter/apps/api/src/api/projects.py","6672:1779958621116.4614"],["/home/alex/projects/headquarter/apps/api/src/api/shared_validators.py","2682:1779958621132.4612"],["/home/alex/projects/headquarter/apps/api/src/api/ssh_keys.py","7517:1779958621133.4612"],["/home/alex/projects/headquarter/apps/api/src/api/terminal.py","12567:1779958621133.4612"],["/home/alex/projects/headquarter/apps/api/src/api/tool_configs.py","11248:1779958621152.461"],["/home/alex/projects/headquarter/apps/api/src/api/tool_definitions.py","13721:1779962991824.0735"],["/home/alex/projects/headquarter/apps/api/src/api/tool_instances.py","81390:1779962991812.0737"],["/home/alex/projects/headquarter/apps/api/src/api/tool_types.py","18213:1779958621153.461"],["/home/alex/projects/headquarter/apps/api/src/api/tool_types_validation.py","2608:1779710051058.87"],["/home/alex/projects/headquarter/apps/api/src/api/user_config.py","3431:1779958621153.461"],["/home/alex/projects/headquarter/apps/api/src/api/users.py","4291:1779708729186.244"],["/home/alex/projects/headquarter/apps/api/src/auth/__init__.py","308:1779137370597.2402"],["/home/alex/projects/headquarter/apps/api/src/auth/cookies.py","287:1779139942809.316"],["/home/alex/projects/headquarter/apps/api/src/auth/dependencies.py","2891:1779958621153.461"],["/home/alex/projects/headquarter/apps/api/src/auth/oidc.py","1650:1779137182579.4893"],["/home/alex/projects/headquarter/apps/api/src/auth/session.py","2228:1779645590016.553"],["/home/alex/projects/headquarter/apps/api/src/config.py","4705:1779286905138.4783"],["/home/alex/projects/headquarter/apps/api/src/database.py","3904:1779138928838.0117"],["/home/alex/projects/headquarter/apps/api/src/logging_config.py","2832:1779135759825.8926"],["/home/alex/projects/headquarter/apps/api/src/main.py","4791:1779962991745.0745"],["/home/alex/projects/headquarter/apps/api/src/models/__init__.py","770:1779962991815.0735"],["/home/alex/projects/headquarter/apps/api/src/models/base.py","640:1779109950568.2888"],["/home/alex/projects/headquarter/apps/api/src/models/config_folder.py","1199:1779468006545.395"],["/home/alex/projects/headquarter/apps/api/src/models/config_profile.py","3157:1779885324307.303"],["/home/alex/projects/headquarter/apps/api/src/models/git_repository.py","1415:1779870334034.114"],["/home/alex/projects/headquarter/apps/api/src/models/project.py","1241:1779109950568.697"],["/home/alex/projects/headquarter/apps/api/src/models/ssh_key.py","993:1779184246096.4092"],["/home/alex/projects/headquarter/apps/api/src/models/tool_config.py","1814:1779471154363.973"],["/home/alex/projects/headquarter/apps/api/src/models/tool_definition_manifest.py","2449:1779962991760.0742"],["/home/alex/projects/headquarter/apps/api/src/models/tool_instance.py","3057:1779962991776.074"],["/home/alex/projects/headquarter/apps/api/src/models/tool_type.py","2196:1779962991768.0742"],["/home/alex/projects/headquarter/apps/api/src/models/user.py","981:1779137408181.7927"],["/home/alex/projects/headquarter/apps/api/src/models/user_config.py","680:1779109990811.1602"],["/home/alex/projects/headquarter/apps/api/src/scripts/__init__.py","43:1779050260295.4287"],["/home/alex/projects/headquarter/apps/api/src/scripts/seed.py","1099:1779050260295.7207"],["/home/alex/projects/headquarter/apps/api/src/services/clone.py","2697:1779912904816.8372"],["/home/alex/projects/headquarter/apps/api/src/services/config_profile_resolver.py","15234:1779874299307.0806"],["/home/alex/projects/headquarter/apps/api/src/services/docker.py","16097:1779958667213.9204"],["/home/alex/projects/headquarter/apps/api/src/services/docker_build.py","2454:1779958621154.461"],["/home/alex/projects/headquarter/apps/api/src/services/manifest_compiler.py","13851:1779962991788.074"],["/home/alex/projects/headquarter/apps/api/src/services/permission_fixer.py","4631:1779962991795.0737"],["/home/alex/projects/headquarter/apps/api/src/services/readiness_probe.py","2120:1779468682156.7576"],["/home/alex/projects/headquarter/apps/api/src/services/ssh_keys.py","2050:1779481962606.4976"],["/home/alex/projects/headquarter/apps/api/src/services/terminal_manager.py","5804:1779958621154.461"],["/home/alex/projects/headquarter/apps/api/src/services/terminal_session.py","8778:1779912904787.3071"],["/home/alex/projects/headquarter/apps/api/src/utils/git_control.py","8284:1779958621174.4607"],["/home/alex/projects/headquarter/apps/api/src/utils/git_files.py","13552:1779618531450.968"],["/home/alex/projects/headquarter/apps/api/src/utils/git_history.py","11790:1779189553538.5813"],["/home/alex/projects/headquarter/apps/api/src/utils/git_url_parser.py","6437:1779185863539.9849"],["/home/alex/projects/headquarter/apps/api/tests/conftest.py","7687:1779958621174.4607"],["/home/alex/projects/headquarter/apps/api/tests/integration/__init__.py","0:1779471420954.9705"],["/home/alex/projects/headquarter/apps/api/tests/integration/test_auth_api.py","3813:1779471420958.8003"],["/home/alex/projects/headquarter/apps/api/tests/integration/test_auth_services.py","2447:1779471420958.9465"],["/home/alex/projects/headquarter/apps/api/tests/integration/test_config_folders_api.py","9227:1779473067454.4243"],["/home/alex/projects/headquarter/apps/api/tests/integration/test_config_profiles_api.py","16841:1779886811162.0073"],["/home/alex/projects/headquarter/apps/api/tests/integration/test_git_control.py","5257:1779478799198.6309"],["/home/alex/projects/headquarter/apps/api/tests/integration/test_models.py","3080:1779958621180.4607"],["/home/alex/projects/headquarter/apps/api/tests/integration/test_projects_api.py","8540:1779958621180.4607"],["/home/alex/projects/headquarter/apps/api/tests/integration/test_seed.py","864:1779471420972.4473"],["/home/alex/projects/headquarter/apps/api/tests/integration/test_ssh_keys_api.py","689:1779471420972.5269"],["/home/alex/projects/headquarter/apps/api/tests/integration/test_tool_configs_api_extended.py","9897:1779958621181.4607"],["/home/alex/projects/headquarter/apps/api/tests/integration/test_tool_types_api.py","12510:1779556564012.5024"],["/home/alex/projects/headquarter/apps/api/tests/integration/test_tool_types_api_extended.py","12371:1779958621181.4607"],["/home/alex/projects/headquarter/apps/api/tests/integration/test_users_api.py","6616:1779473987795.1477"],["/home/alex/projects/headquarter/apps/api/tests/system/__init__.py","0:1779109035822.815"],["/home/alex/projects/headquarter/apps/api/tests/unit/__init__.py","0:1779110037714.6304"],["/home/alex/projects/headquarter/apps/api/tests/unit/test_config.py","2316:1779110755300.477"],["/home/alex/projects/headquarter/apps/api/tests/unit/test_config_profile_resolver.py","15730:1779958621181.4607"],["/home/alex/projects/headquarter/apps/api/tests/unit/test_docker_build.py","5738:1779471360116.6558"],["/home/alex/projects/headquarter/apps/api/tests/unit/test_docker_service.py","1697:1779958603311.6707"],["/home/alex/projects/headquarter/apps/api/tests/unit/test_git_mount_resolution.py","4797:1779958621182.4607"],["/home/alex/projects/headquarter/apps/api/tests/unit/test_git_repository_clone_preflight.py","1109:1779474860172.3552"],["/home/alex/projects/headquarter/apps/api/tests/unit/test_git_repository_working_clones.py","2843:1779474860172.3552"],["/home/alex/projects/headquarter/apps/api/tests/unit/test_git_url_parser.py","5471:1779958621182.4607"],["/home/alex/projects/headquarter/apps/api/tests/unit/test_manifest_compiler.py","11095:1779962991834.0735"],["/home/alex/projects/headquarter/apps/api/tests/unit/test_migration_metadata.py","1177:1779110847713.4197"],["/home/alex/projects/headquarter/apps/api/tests/unit/test_permission_fixer.py","5348:1779962991842.0732"],["/home/alex/projects/headquarter/apps/api/tests/unit/test_readiness_probe.py","7321:1779958621190.4604"],["/home/alex/projects/headquarter/apps/api/tests/unit/test_session_branch_selection.py","6346:1779958621197.4604"]],"nodes":[["file:/home/alex/projects/headquarter/apps/api/alembic/env.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/env.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/env.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/0001_initial_schema.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/0001_initial_schema.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/0001_initial_schema.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/0002_refresh_tokens.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/0002_refresh_tokens.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/0002_refresh_tokens.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization","auth","user-input"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/0003_user_configs.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/0003_user_configs.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/0003_user_configs.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/0004_tool_types.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/0004_tool_types.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/0004_tool_types.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/0005_ssh_keys_timestamps.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/0005_ssh_keys_timestamps.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/0005_ssh_keys_timestamps.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/0006_tool_instances.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/0006_tool_instances.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/0006_tool_instances.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/0007_instance_container_name.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/0007_instance_container_name.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/0007_instance_container_name.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/0008_tool_type_category.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/0008_tool_type_category.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/0008_tool_type_category.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/0009_tool_configs.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/0009_tool_configs.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/0009_tool_configs.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/0010_tool_type_default_port.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/0010_tool_type_default_port.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/0010_tool_type_default_port.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/0011_tool_instance_tunnel_fields.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/0011_tool_instance_tunnel_fields.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/0011_tool_instance_tunnel_fields.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/0012_default_port_req.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/0012_default_port_req.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/0012_default_port_req.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/0013_add_probe_result.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/0013_add_probe_result.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/0013_add_probe_result.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/0014_merge_heads.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/0014_merge_heads.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/0014_merge_heads.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/0015_single_interface.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/0015_single_interface.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/0015_single_interface.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/20260527160017_add_pi_agent_tool_type.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/20260527160017_add_pi_agent_tool_type.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/20260527160017_add_pi_agent_tool_type.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_22_add_clone_mode.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_22_add_clone_mode.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_22_add_clone_mode.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_23_remove_is_builtin.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_23_remove_is_builtin.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_23_remove_is_builtin.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_24_220141_add_startup_command.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_24_220141_add_startup_command.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_24_220141_add_startup_command.py","metadata":{"featureKind":"cli-command","trustBoundaries":["network","external-api","serialization","user-input","process-exec"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_24_add_config_profiles.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_24_add_config_profiles.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_24_add_config_profiles.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_26_add_git_mounts.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_26_add_git_mounts.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_26_add_git_mounts.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_27_external_repos.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_27_external_repos.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_27_external_repos.py","metadata":{"featureKind":"library","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/398082499c30_add_tool_config_fields.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/398082499c30_add_tool_config_fields.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/398082499c30_add_tool_config_fields.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/6fc7bfcf199f_merge_remove_is_builtin_and_add_config_.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/6fc7bfcf199f_merge_remove_is_builtin_and_add_config_.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/6fc7bfcf199f_merge_remove_is_builtin_and_add_config_.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/8ed7dd80973d_create_config_folders_table.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/8ed7dd80973d_create_config_folders_table.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/8ed7dd80973d_create_config_folders_table.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/af8512103d67_add_tool_type_fields.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/af8512103d67_add_tool_type_fields.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/af8512103d67_add_tool_type_fields.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/f3d2dc90ba3a_merge_single_interface_and_clone_mode.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/f3d2dc90ba3a_merge_single_interface_and_clone_mode.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/f3d2dc90ba3a_merge_single_interface_and_clone_mode.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/__init__.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/__init__.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/__init__.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/__init__.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/__init__.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/__init__.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/auth.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/auth.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/auth.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization","auth","user-input"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/config_folders.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/config_folders.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/config_folders.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/config_profiles.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/config_profiles.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/config_profiles.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/dashboard.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/dashboard.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/dashboard.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/git_repositories.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/git_repositories.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/git_repositories.py","metadata":{"featureKind":"library","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/health.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/health.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/health.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/instance_proxy.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/instance_proxy.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/instance_proxy.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/projects.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/projects.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/projects.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/shared_validators.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/shared_validators.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/shared_validators.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/ssh_keys.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/ssh_keys.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/ssh_keys.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/terminal.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/terminal.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/terminal.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/tool_configs.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/tool_configs.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/tool_configs.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/tool_definitions.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/tool_definitions.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/tool_definitions.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/tool_instances.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/tool_instances.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/tool_instances.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/tool_types.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/tool_types.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/tool_types.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/tool_types_validation.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/tool_types_validation.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/tool_types_validation.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/user_config.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/user_config.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/user_config.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/api/users.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/api/users.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/api/users.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/auth/__init__.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/auth/__init__.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/auth/__init__.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization","auth","user-input"]}}],["file:/home/alex/projects/headquarter/apps/api/src/auth/cookies.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/auth/cookies.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/auth/cookies.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization","auth","user-input"]}}],["file:/home/alex/projects/headquarter/apps/api/src/auth/dependencies.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/auth/dependencies.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/auth/dependencies.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization","auth","user-input"]}}],["file:/home/alex/projects/headquarter/apps/api/src/auth/oidc.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/auth/oidc.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/auth/oidc.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization","auth","user-input"]}}],["file:/home/alex/projects/headquarter/apps/api/src/auth/session.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/auth/session.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/auth/session.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization","auth","user-input"]}}],["file:/home/alex/projects/headquarter/apps/api/src/config.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/config.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/config.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/database.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/database.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/database.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/logging_config.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/logging_config.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/logging_config.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/main.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/main.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/main.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/models/__init__.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/models/__init__.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/models/__init__.py","metadata":{"featureKind":"library","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/models/base.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/models/base.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/models/base.py","metadata":{"featureKind":"library","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/models/config_folder.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/models/config_folder.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/models/config_folder.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/models/config_profile.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/models/config_profile.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/models/config_profile.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/models/git_repository.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/models/git_repository.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/models/git_repository.py","metadata":{"featureKind":"library","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/models/project.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/models/project.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/models/project.py","metadata":{"featureKind":"library","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/models/ssh_key.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/models/ssh_key.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/models/ssh_key.py","metadata":{"featureKind":"library","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/models/tool_config.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/models/tool_config.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/models/tool_config.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/models/tool_definition_manifest.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/models/tool_definition_manifest.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/models/tool_definition_manifest.py","metadata":{"featureKind":"library","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/models/tool_instance.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/models/tool_instance.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/models/tool_instance.py","metadata":{"featureKind":"library","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/models/tool_type.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/models/tool_type.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/models/tool_type.py","metadata":{"featureKind":"library","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/models/user.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/models/user.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/models/user.py","metadata":{"featureKind":"library","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/models/user_config.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/models/user_config.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/models/user_config.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/scripts/__init__.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/scripts/__init__.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/scripts/__init__.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/scripts/seed.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/scripts/seed.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/scripts/seed.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/services/clone.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/services/clone.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/services/clone.py","metadata":{"featureKind":"service","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/services/config_profile_resolver.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/services/config_profile_resolver.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/services/config_profile_resolver.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/services/docker.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/services/docker.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/services/docker.py","metadata":{"featureKind":"service","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/services/docker_build.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/services/docker_build.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/services/docker_build.py","metadata":{"featureKind":"service","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/services/manifest_compiler.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/services/manifest_compiler.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/services/manifest_compiler.py","metadata":{"featureKind":"service","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/services/permission_fixer.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/services/permission_fixer.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/services/permission_fixer.py","metadata":{"featureKind":"service","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/services/readiness_probe.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/services/readiness_probe.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/services/readiness_probe.py","metadata":{"featureKind":"service","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/services/ssh_keys.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/services/ssh_keys.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/services/ssh_keys.py","metadata":{"featureKind":"service","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/services/terminal_manager.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/services/terminal_manager.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/services/terminal_manager.py","metadata":{"featureKind":"service","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/services/terminal_session.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/services/terminal_session.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/services/terminal_session.py","metadata":{"featureKind":"service","trustBoundaries":["network","external-api","serialization","auth","user-input"]}}],["file:/home/alex/projects/headquarter/apps/api/src/utils/git_control.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/utils/git_control.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/utils/git_control.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/utils/git_files.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/utils/git_files.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/utils/git_files.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/utils/git_history.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/utils/git_history.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/utils/git_history.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/src/utils/git_url_parser.py",{"id":"file:/home/alex/projects/headquarter/apps/api/src/utils/git_url_parser.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/src/utils/git_url_parser.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/conftest.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/conftest.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/conftest.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/integration/__init__.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/integration/__init__.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/integration/__init__.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/integration/test_auth_api.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/integration/test_auth_api.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/integration/test_auth_api.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization","auth","user-input"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/integration/test_auth_services.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/integration/test_auth_services.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/integration/test_auth_services.py","metadata":{"featureKind":"service","trustBoundaries":["network","external-api","serialization","auth","user-input"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/integration/test_config_folders_api.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/integration/test_config_folders_api.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/integration/test_config_folders_api.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/integration/test_config_profiles_api.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/integration/test_config_profiles_api.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/integration/test_config_profiles_api.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/integration/test_git_control.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/integration/test_git_control.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/integration/test_git_control.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/integration/test_models.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/integration/test_models.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/integration/test_models.py","metadata":{"featureKind":"library","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/integration/test_projects_api.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/integration/test_projects_api.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/integration/test_projects_api.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/integration/test_seed.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/integration/test_seed.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/integration/test_seed.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/integration/test_ssh_keys_api.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/integration/test_ssh_keys_api.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/integration/test_ssh_keys_api.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/integration/test_tool_configs_api_extended.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/integration/test_tool_configs_api_extended.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/integration/test_tool_configs_api_extended.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/integration/test_tool_types_api.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/integration/test_tool_types_api.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/integration/test_tool_types_api.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/integration/test_tool_types_api_extended.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/integration/test_tool_types_api_extended.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/integration/test_tool_types_api_extended.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/integration/test_users_api.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/integration/test_users_api.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/integration/test_users_api.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/system/__init__.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/system/__init__.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/system/__init__.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/unit/__init__.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/unit/__init__.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/unit/__init__.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/unit/test_config.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/unit/test_config.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/unit/test_config.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/unit/test_config_profile_resolver.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/unit/test_config_profile_resolver.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/unit/test_config_profile_resolver.py","metadata":{"featureKind":"service","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/unit/test_docker_build.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/unit/test_docker_build.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/unit/test_docker_build.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/unit/test_docker_service.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/unit/test_docker_service.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/unit/test_docker_service.py","metadata":{"featureKind":"service","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/unit/test_git_mount_resolution.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/unit/test_git_mount_resolution.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/unit/test_git_mount_resolution.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/unit/test_git_repository_clone_preflight.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/unit/test_git_repository_clone_preflight.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/unit/test_git_repository_clone_preflight.py","metadata":{"featureKind":"library","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/unit/test_git_repository_working_clones.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/unit/test_git_repository_working_clones.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/unit/test_git_repository_working_clones.py","metadata":{"featureKind":"library","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/unit/test_git_url_parser.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/unit/test_git_url_parser.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/unit/test_git_url_parser.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/unit/test_manifest_compiler.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/unit/test_manifest_compiler.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/unit/test_manifest_compiler.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/unit/test_migration_metadata.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/unit/test_migration_metadata.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/unit/test_migration_metadata.py","metadata":{"featureKind":"library","trustBoundaries":["filesystem","database","network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/unit/test_permission_fixer.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/unit/test_permission_fixer.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/unit/test_permission_fixer.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/unit/test_readiness_probe.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/unit/test_readiness_probe.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/unit/test_readiness_probe.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}],["file:/home/alex/projects/headquarter/apps/api/tests/unit/test_session_branch_selection.py",{"id":"file:/home/alex/projects/headquarter/apps/api/tests/unit/test_session_branch_selection.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/tests/unit/test_session_branch_selection.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization","auth","user-input"]}}],["file:/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_28_add_tool_definition_manifests.py",{"id":"file:/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_28_add_tool_definition_manifests.py","kind":"file","language":"python","filePath":"/home/alex/projects/headquarter/apps/api/alembic/versions/2026_05_28_add_tool_definition_manifests.py","metadata":{"featureKind":"library","trustBoundaries":["network","external-api","serialization"]}}]],"edges":[]} |