mirror of
https://github.com/SHOGGOTH-SECTOR/sica-fondt.git
synced 2026-08-01 00:23:15 +00:00
Place useful parts of the surrounding repos into sica-fondt by layer, per the
body model (Ada = membrane; brain/endocrine/capabilities/knowledge non-Ada):
- brain/ LLM reasoning + providers (dapr, hermes, MoMoA)
- capabilities/ REPRAG sidecars: hermes tools/skills, dapr tools, parallel
dispatch, A51 channels, and the OSINT cluster
- knowledge/ LORAG corpus: 754 cyber-skills, agency personas, secure-coding,
MITRE ATT&CK data
- reference/ defensive threat-reference (C3, shhbruh doc) + AdaYaml parser
License handling: AGPL sources (worldosint, advanced_evolution, mercury,
Reticulum) and GPL DeTTECT are SPEC-only clean-room/port descriptions — no
copyleft code copied. MIT/Apache/data parts copied as working trees.
Safety: shhbruh escape/persistence material and C3 covert-C2 kept as reference
only, not wired into the running organism. See CONSOLIDATION.md.
https://claude.ai/code/session_01UehUqEXXJJCsHoA4voCU5c
48 lines
1.6 KiB
Python
48 lines
1.6 KiB
Python
"""Hermes-managed Camofox state helpers.
|
|
|
|
Provides profile-scoped identity and state directory paths for Camofox
|
|
persistent browser profiles. When managed persistence is enabled, Hermes
|
|
sends a deterministic userId derived from the active profile so that
|
|
Camofox can map it to the same persistent browser profile directory
|
|
across restarts.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import uuid
|
|
from pathlib import Path
|
|
from typing import Dict, Optional
|
|
|
|
from hermes_constants import get_hermes_home
|
|
|
|
CAMOFOX_STATE_DIR_NAME = "browser_auth"
|
|
CAMOFOX_STATE_SUBDIR = "camofox"
|
|
|
|
|
|
def get_camofox_state_dir() -> Path:
|
|
"""Return the profile-scoped root directory for Camofox persistence."""
|
|
return get_hermes_home() / CAMOFOX_STATE_DIR_NAME / CAMOFOX_STATE_SUBDIR
|
|
|
|
|
|
def get_camofox_identity(task_id: Optional[str] = None) -> Dict[str, str]:
|
|
"""Return the stable Hermes-managed Camofox identity for this profile.
|
|
|
|
The user identity is profile-scoped (same Hermes profile = same userId).
|
|
The session key is scoped to the logical browser task so newly created
|
|
tabs within the same profile reuse the same identity contract.
|
|
"""
|
|
scope_root = str(get_camofox_state_dir())
|
|
logical_scope = task_id or "default"
|
|
user_digest = uuid.uuid5(
|
|
uuid.NAMESPACE_URL,
|
|
f"camofox-user:{scope_root}",
|
|
).hex[:10]
|
|
session_digest = uuid.uuid5(
|
|
uuid.NAMESPACE_URL,
|
|
f"camofox-session:{scope_root}:{logical_scope}",
|
|
).hex[:16]
|
|
return {
|
|
"user_id": f"hermes_{user_digest}",
|
|
"session_key": f"task_{session_digest}",
|
|
}
|