summaryrefslogtreecommitdiff
path: root/Omni/Dev/Beryllium/Ava.nix
blob: 890ec531f832959df0032af4b7173f7cf072bba7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Ava user and directory setup.
# The Ava service itself is deployed dynamically via biz-deployer.
# This module only creates the user, directories, and activation scripts.
{...}: {
  systemd.tmpfiles.rules = [
    "d /home/ava 0755 ava users -"
    "d /home/ava/omni 0755 ava users -"
    "d /home/ava/skills 0755 ava users -"
    "d /home/ava/prompts 0755 ava users -"
    "d /home/ava/prompts/agents 0755 ava users -"
    "d /home/ava/prompts/agents/telegram 0755 ava users -"
    "d /home/ava/prompts/shared 0755 ava users -"
    "d /home/ava/prompts/shared/formatting 0755 ava users -"
    "d /home/ava/prompts/subagents 0755 ava users -"
    "d /home/ava/prompts/subagents/generic 0755 ava users -"
    "d /home/ava/prompts/subagents/coder 0755 ava users -"
    "d /home/ava/outreach 0755 ava users -"
    "d /home/ava/outreach/pending 0755 ava users -"
    "d /home/ava/outreach/approved 0755 ava users -"
    "d /home/ava/outreach/rejected 0755 ava users -"
    "d /home/ava/outreach/sent 0755 ava users -"
    "d /home/ava/users 0755 ava users -"
    "d /home/ava/.local/share/omni 0755 ava users -"
    "d /home/ava/models 0755 ava users -"
    "d /home/ava/logs 0755 ava users -"
    "d /home/ava/logs/ava 0755 ava users -"
    "d /home/ava/logs/subagents 0755 ava users -"
  ];

  # Create .bashrc with direnv hook if it doesn't exist
  system.activationScripts.avaBashrc = ''
    if [ ! -f /home/ava/.bashrc ]; then
      echo 'eval "$(direnv hook bash)"' > /home/ava/.bashrc
      chown ava:users /home/ava/.bashrc
    fi
  '';

  # Note: Tailscale Funnel for Ava web server is configured via:
  #   tailscale funnel --bg 8079
  # This persists in tailscaled config and doesn't need a systemd service.
  # URL: https://beryllium.oryx-ide.ts.net/
}