{
  "agent:main:main": {
    "sessionId": "5815715c-1baa-41e6-ab39-7149ffe95f2d",
    "updatedAt": 1771484430649,
    "systemSent": true,
    "abortedLastRun": false,
    "chatType": "direct",
    "deliveryContext": {
      "to": "telegram:7377499346"
    },
    "lastTo": "telegram:7377499346",
    "origin": {
      "label": "telegram:7377499346",
      "provider": "heartbeat",
      "from": "telegram:7377499346",
      "to": "telegram:7377499346"
    },
    "sessionFile": "/root/.clawdbot-harper/agents/main/sessions/5815715c-1baa-41e6-ab39-7149ffe95f2d.jsonl",
    "compactionCount": 0,
    "skillsSnapshot": {
      "prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\n\n<available_skills>\n  <skill>\n    <name>bird</name>\n    <description>X/Twitter CLI for reading, searching, posting, and engagement via cookies.</description>\n    <location>/usr/lib/node_modules/clawdbot/skills/bird/SKILL.md</location>\n  </skill>\n  <skill>\n    <name>bluebubbles</name>\n    <description>Build or update the BlueBubbles external channel plugin for Clawdbot (extension package, REST send/probe, webhook inbound).</description>\n    <location>/usr/lib/node_modules/clawdbot/skills/bluebubbles/SKILL.md</location>\n  </skill>\n  <skill>\n    <name>clawdhub</name>\n    <description>Use the ClawdHub CLI to search, install, update, and publish agent skills from clawdhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawdhub CLI.</description>\n    <location>/usr/lib/node_modules/clawdbot/skills/clawdhub/SKILL.md</location>\n  </skill>\n  <skill>\n    <name>coding-agent</name>\n    <description>Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control.</description>\n    <location>/usr/lib/node_modules/clawdbot/skills/coding-agent/SKILL.md</location>\n  </skill>\n  <skill>\n    <name>github</name>\n    <description>Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.</description>\n    <location>/usr/lib/node_modules/clawdbot/skills/github/SKILL.md</location>\n  </skill>\n  <skill>\n    <name>growth-engine</name>\n    <description>RateRight Growth Engine Sales CRM API. Access leads, send SMS, log calls, get dashboard stats, AI intel briefs, and manage notes.</description>\n    <location>/usr/lib/node_modules/clawdbot/skills/growth-engine/SKILL.md</location>\n  </skill>\n  <skill>\n    <name>mcporter</name>\n    <description>Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.</description>\n    <location>/usr/lib/node_modules/clawdbot/skills/mcporter/SKILL.md</location>\n  </skill>\n  <skill>\n    <name>notion</name>\n    <description>Notion API for creating and managing pages, databases, and blocks.</description>\n    <location>/usr/lib/node_modules/clawdbot/skills/notion/SKILL.md</location>\n  </skill>\n  <skill>\n    <name>openai-whisper</name>\n    <description>Local speech-to-text with the Whisper CLI (no API key).</description>\n    <location>/usr/lib/node_modules/clawdbot/skills/openai-whisper/SKILL.md</location>\n  </skill>\n  <skill>\n    <name>skill-creator</name>\n    <description>Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.</description>\n    <location>/usr/lib/node_modules/clawdbot/skills/skill-creator/SKILL.md</location>\n  </skill>\n  <skill>\n    <name>slack</name>\n    <description>Use when you need to control Slack from Clawdbot via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.</description>\n    <location>/usr/lib/node_modules/clawdbot/skills/slack/SKILL.md</location>\n  </skill>\n  <skill>\n    <name>tmux</name>\n    <description>Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.</description>\n    <location>/usr/lib/node_modules/clawdbot/skills/tmux/SKILL.md</location>\n  </skill>\n  <skill>\n    <name>video-frames</name>\n    <description>Extract frames or short clips from videos using ffmpeg.</description>\n    <location>/usr/lib/node_modules/clawdbot/skills/video-frames/SKILL.md</location>\n  </skill>\n  <skill>\n    <name>weather</name>\n    <description>Get current weather and forecasts (no API key required).</description>\n    <location>/usr/lib/node_modules/clawdbot/skills/weather/SKILL.md</location>\n  </skill>\n</available_skills>",
      "skills": [
        {
          "name": "bird"
        },
        {
          "name": "bluebubbles"
        },
        {
          "name": "clawdhub"
        },
        {
          "name": "coding-agent"
        },
        {
          "name": "github"
        },
        {
          "name": "growth-engine"
        },
        {
          "name": "mcporter"
        },
        {
          "name": "notion"
        },
        {
          "name": "openai-whisper"
        },
        {
          "name": "skill-creator"
        },
        {
          "name": "slack"
        },
        {
          "name": "tmux"
        },
        {
          "name": "video-frames"
        },
        {
          "name": "weather"
        }
      ],
      "resolvedSkills": [
        {
          "name": "bird",
          "description": "X/Twitter CLI for reading, searching, posting, and engagement via cookies.",
          "filePath": "/usr/lib/node_modules/clawdbot/skills/bird/SKILL.md",
          "baseDir": "/usr/lib/node_modules/clawdbot/skills/bird",
          "source": "clawdbot-bundled"
        },
        {
          "name": "bluebubbles",
          "description": "Build or update the BlueBubbles external channel plugin for Clawdbot (extension package, REST send/probe, webhook inbound).",
          "filePath": "/usr/lib/node_modules/clawdbot/skills/bluebubbles/SKILL.md",
          "baseDir": "/usr/lib/node_modules/clawdbot/skills/bluebubbles",
          "source": "clawdbot-bundled"
        },
        {
          "name": "clawdhub",
          "description": "Use the ClawdHub CLI to search, install, update, and publish agent skills from clawdhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawdhub CLI.",
          "filePath": "/usr/lib/node_modules/clawdbot/skills/clawdhub/SKILL.md",
          "baseDir": "/usr/lib/node_modules/clawdbot/skills/clawdhub",
          "source": "clawdbot-bundled"
        },
        {
          "name": "coding-agent",
          "description": "Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control.",
          "filePath": "/usr/lib/node_modules/clawdbot/skills/coding-agent/SKILL.md",
          "baseDir": "/usr/lib/node_modules/clawdbot/skills/coding-agent",
          "source": "clawdbot-bundled"
        },
        {
          "name": "github",
          "description": "Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.",
          "filePath": "/usr/lib/node_modules/clawdbot/skills/github/SKILL.md",
          "baseDir": "/usr/lib/node_modules/clawdbot/skills/github",
          "source": "clawdbot-bundled"
        },
        {
          "name": "growth-engine",
          "description": "RateRight Growth Engine Sales CRM API. Access leads, send SMS, log calls, get dashboard stats, AI intel briefs, and manage notes.",
          "filePath": "/usr/lib/node_modules/clawdbot/skills/growth-engine/SKILL.md",
          "baseDir": "/usr/lib/node_modules/clawdbot/skills/growth-engine",
          "source": "clawdbot-bundled"
        },
        {
          "name": "mcporter",
          "description": "Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.",
          "filePath": "/usr/lib/node_modules/clawdbot/skills/mcporter/SKILL.md",
          "baseDir": "/usr/lib/node_modules/clawdbot/skills/mcporter",
          "source": "clawdbot-bundled"
        },
        {
          "name": "notion",
          "description": "Notion API for creating and managing pages, databases, and blocks.",
          "filePath": "/usr/lib/node_modules/clawdbot/skills/notion/SKILL.md",
          "baseDir": "/usr/lib/node_modules/clawdbot/skills/notion",
          "source": "clawdbot-bundled"
        },
        {
          "name": "openai-whisper",
          "description": "Local speech-to-text with the Whisper CLI (no API key).",
          "filePath": "/usr/lib/node_modules/clawdbot/skills/openai-whisper/SKILL.md",
          "baseDir": "/usr/lib/node_modules/clawdbot/skills/openai-whisper",
          "source": "clawdbot-bundled"
        },
        {
          "name": "skill-creator",
          "description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
          "filePath": "/usr/lib/node_modules/clawdbot/skills/skill-creator/SKILL.md",
          "baseDir": "/usr/lib/node_modules/clawdbot/skills/skill-creator",
          "source": "clawdbot-bundled"
        },
        {
          "name": "slack",
          "description": "Use when you need to control Slack from Clawdbot via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.",
          "filePath": "/usr/lib/node_modules/clawdbot/skills/slack/SKILL.md",
          "baseDir": "/usr/lib/node_modules/clawdbot/skills/slack",
          "source": "clawdbot-bundled"
        },
        {
          "name": "tmux",
          "description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
          "filePath": "/usr/lib/node_modules/clawdbot/skills/tmux/SKILL.md",
          "baseDir": "/usr/lib/node_modules/clawdbot/skills/tmux",
          "source": "clawdbot-bundled"
        },
        {
          "name": "video-frames",
          "description": "Extract frames or short clips from videos using ffmpeg.",
          "filePath": "/usr/lib/node_modules/clawdbot/skills/video-frames/SKILL.md",
          "baseDir": "/usr/lib/node_modules/clawdbot/skills/video-frames",
          "source": "clawdbot-bundled"
        },
        {
          "name": "weather",
          "description": "Get current weather and forecasts (no API key required).",
          "filePath": "/usr/lib/node_modules/clawdbot/skills/weather/SKILL.md",
          "baseDir": "/usr/lib/node_modules/clawdbot/skills/weather",
          "source": "clawdbot-bundled"
        }
      ],
      "version": 0
    },
    "authProfileOverride": "anthropic:claude-cli",
    "authProfileOverrideSource": "auto",
    "authProfileOverrideCompactionCount": 0,
    "inputTokens": 1,
    "outputTokens": 8,
    "totalTokens": 48669,
    "modelProvider": "anthropic",
    "model": "claude-opus-4-6",
    "contextTokens": 100000,
    "systemPromptReport": {
      "source": "run",
      "generatedAt": 1771484420026,
      "sessionId": "5815715c-1baa-41e6-ab39-7149ffe95f2d",
      "sessionKey": "agent:main:main",
      "provider": "anthropic",
      "model": "claude-opus-4-6",
      "workspaceDir": "/home/ccuser/harper",
      "bootstrapMaxChars": 20000,
      "sandbox": {
        "mode": "off",
        "sandboxed": false
      },
      "systemPrompt": {
        "chars": 34296,
        "projectContextChars": 23028,
        "nonProjectContextChars": 11268
      },
      "injectedWorkspaceFiles": [
        {
          "name": "AGENTS.md",
          "path": "/home/ccuser/harper/AGENTS.md",
          "missing": false,
          "rawChars": 6648,
          "injectedChars": 6648,
          "truncated": false
        },
        {
          "name": "SOUL.md",
          "path": "/home/ccuser/harper/SOUL.md",
          "missing": false,
          "rawChars": 4133,
          "injectedChars": 4133,
          "truncated": false
        },
        {
          "name": "TOOLS.md",
          "path": "/home/ccuser/harper/TOOLS.md",
          "missing": false,
          "rawChars": 3704,
          "injectedChars": 3704,
          "truncated": false
        },
        {
          "name": "IDENTITY.md",
          "path": "/home/ccuser/harper/IDENTITY.md",
          "missing": false,
          "rawChars": 705,
          "injectedChars": 705,
          "truncated": false
        },
        {
          "name": "USER.md",
          "path": "/home/ccuser/harper/USER.md",
          "missing": false,
          "rawChars": 3646,
          "injectedChars": 3646,
          "truncated": false
        },
        {
          "name": "HEARTBEAT.md",
          "path": "/home/ccuser/harper/HEARTBEAT.md",
          "missing": false,
          "rawChars": 3813,
          "injectedChars": 3813,
          "truncated": false
        },
        {
          "name": "BOOTSTRAP.md",
          "path": "/home/ccuser/harper/BOOTSTRAP.md",
          "missing": true,
          "rawChars": 0,
          "injectedChars": 55,
          "truncated": false
        }
      ],
      "skills": {
        "promptChars": 4058,
        "entries": [
          {
            "name": "bird",
            "blockChars": 223
          },
          {
            "name": "bluebubbles",
            "blockChars": 286
          },
          {
            "name": "clawdhub",
            "blockChars": 428
          },
          {
            "name": "coding-agent",
            "blockChars": 270
          },
          {
            "name": "github",
            "blockChars": 289
          },
          {
            "name": "growth-engine",
            "blockChars": 296
          },
          {
            "name": "mcporter",
            "blockChars": 321
          },
          {
            "name": "notion",
            "blockChars": 219
          },
          {
            "name": "openai-whisper",
            "blockChars": 224
          },
          {
            "name": "skill-creator",
            "blockChars": 287
          },
          {
            "name": "slack",
            "blockChars": 303
          },
          {
            "name": "tmux",
            "blockChars": 246
          },
          {
            "name": "video-frames",
            "blockChars": 220
          },
          {
            "name": "weather",
            "blockChars": 211
          }
        ]
      },
      "tools": {
        "listChars": 1565,
        "schemaChars": 13714,
        "entries": [
          {
            "name": "read",
            "summaryChars": 232,
            "schemaChars": 398,
            "propertiesCount": 4
          },
          {
            "name": "edit",
            "summaryChars": 129,
            "schemaChars": 617,
            "propertiesCount": 6
          },
          {
            "name": "write",
            "summaryChars": 127,
            "schemaChars": 313,
            "propertiesCount": 3
          },
          {
            "name": "exec",
            "summaryChars": 181,
            "schemaChars": 1037,
            "propertiesCount": 12
          },
          {
            "name": "process",
            "summaryChars": 85,
            "schemaChars": 844,
            "propertiesCount": 11
          },
          {
            "name": "browser",
            "summaryChars": 1343,
            "schemaChars": 1909,
            "propertiesCount": 29
          },
          {
            "name": "canvas",
            "summaryChars": 106,
            "schemaChars": 661,
            "propertiesCount": 18
          },
          {
            "name": "nodes",
            "summaryChars": 94,
            "schemaChars": 1399,
            "propertiesCount": 31
          },
          {
            "name": "cron",
            "summaryChars": 246,
            "schemaChars": 530,
            "propertiesCount": 12
          },
          {
            "name": "message",
            "summaryChars": 104,
            "schemaChars": 3100,
            "propertiesCount": 77
          },
          {
            "name": "tts",
            "summaryChars": 129,
            "schemaChars": 223,
            "propertiesCount": 2
          },
          {
            "name": "gateway",
            "summaryChars": 225,
            "schemaChars": 465,
            "propertiesCount": 11
          },
          {
            "name": "agents_list",
            "summaryChars": 72,
            "schemaChars": 33,
            "propertiesCount": 0
          },
          {
            "name": "sessions_list",
            "summaryChars": 54,
            "schemaChars": 176,
            "propertiesCount": 4
          },
          {
            "name": "sessions_history",
            "summaryChars": 36,
            "schemaChars": 149,
            "propertiesCount": 3
          },
          {
            "name": "sessions_send",
            "summaryChars": 84,
            "schemaChars": 203,
            "propertiesCount": 5
          },
          {
            "name": "sessions_spawn",
            "summaryChars": 107,
            "schemaChars": 312,
            "propertiesCount": 8
          },
          {
            "name": "session_status",
            "summaryChars": 207,
            "schemaChars": 89,
            "propertiesCount": 2
          },
          {
            "name": "web_search",
            "summaryChars": 175,
            "schemaChars": 733,
            "propertiesCount": 6
          },
          {
            "name": "web_fetch",
            "summaryChars": 129,
            "schemaChars": 360,
            "propertiesCount": 3
          },
          {
            "name": "image",
            "summaryChars": 184,
            "schemaChars": 163,
            "propertiesCount": 4
          }
        ]
      }
    }
  }
}