fix: relocate binary analysis skill

This commit is contained in:
username
2026-07-31 13:25:08 -04:00
parent 0d4a3652e4
commit f66ed48b8c
107 changed files with 17 additions and 2 deletions
@@ -0,0 +1,102 @@
"""Project lifecycle — workspace, manifests, locking, cache, and state machine.
All persistent state mutations use atomic write patterns (tempfile + os.rename)
to ensure project.json is never partially written. File locks serialize
concurrent access. The manifest system detects corrupted project manifests
and raises InvalidConfigError (exit code 4) with diagnostic information.
The state machine enforces valid lifecycle transitions.
"""
from __future__ import annotations
from binary_analysis.projects.atomic import (
atomic_append_text,
atomic_write_binary,
atomic_write_json,
atomic_write_lines,
atomic_write_text,
)
from binary_analysis.projects.cache import (
cache_clear,
cache_delete,
cache_get,
cache_list,
cache_set,
)
from binary_analysis.projects.diagnostics import (
clear_diagnostics,
get_diagnostics_summary,
load_diagnostics,
persist_diagnostics,
)
from binary_analysis.projects.lock import (
LockError,
acquire_lock,
get_lock_holder,
is_locked,
release_lock,
)
from binary_analysis.projects.manifest import (
create_manifest,
load_manifest,
save_manifest,
update_manifest_field,
)
from binary_analysis.projects.state_machine import (
can_analyze,
can_clean,
can_import,
is_valid_transition,
should_reject_migrate,
transition_to_failed,
)
from binary_analysis.projects.workspace import (
create_workspace,
get_project_path,
get_workspace_root,
get_workspace_subdirs,
list_workspaces,
remove_workspace,
validate_project_name,
workspace_exists,
)
__all__ = [
"LockError",
"acquire_lock",
"atomic_append_text",
"atomic_write_binary",
"atomic_write_json",
"atomic_write_lines",
"atomic_write_text",
"cache_clear",
"cache_delete",
"cache_get",
"cache_list",
"cache_set",
"can_analyze",
"can_clean",
"can_import",
"clear_diagnostics",
"create_manifest",
"create_workspace",
"get_diagnostics_summary",
"get_lock_holder",
"get_project_path",
"get_workspace_root",
"get_workspace_subdirs",
"is_locked",
"is_valid_transition",
"list_workspaces",
"load_diagnostics",
"load_manifest",
"persist_diagnostics",
"release_lock",
"remove_workspace",
"save_manifest",
"should_reject_migrate",
"transition_to_failed",
"update_manifest_field",
"validate_project_name",
"workspace_exists",
]