internal/

directory
v0.24.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 20, 2026 License: MIT

Directories

Path Synopsis
Package agent implements the turn loop: one live turn per session, mid-turn steering for overflow messages, bounded worker concurrency, and a system prompt assembled from identity, workspace bootstrap files, drop-in instructions, the skills catalog, and smrti memory recall.
Package agent implements the turn loop: one live turn per session, mid-turn steering for overflow messages, bounded worker concurrency, and a system prompt assembled from identity, workspace bootstrap files, drop-in instructions, the skills catalog, and smrti memory recall.
Package app is the composition root: it wires config, provider chain, smrti memory, tools, skills, sessions, and the agent loop into one unit shared by the CLI and the gateway daemon.
Package app is the composition root: it wires config, provider chain, smrti memory, tools, skills, sessions, and the agent loop into one unit shared by the CLI and the gateway daemon.
Package autostart puts Factor into the user's login sequence: a systemd user service where a user manager is running, an XDG autostart entry on other Linux desktops, a launchd agent on macOS, and a Run registry value on Windows.
Package autostart puts Factor into the user's login sequence: a systemd user service where a user manager is running, an XDG autostart entry on other Linux desktops, a launchd agent on macOS, and a Run registry value on Windows.
Package browser gives the agent a real browser via the Chrome DevTools Protocol (chromedp): it attaches to the user's running Chrome/Chromium/ Brave when a DevTools port is open, otherwise launches a managed instance — visible by default, so the user can watch the agent work.
Package browser gives the agent a real browser via the Chrome DevTools Protocol (chromedp): it attaches to the user's running Chrome/Chromium/ Brave when a DevTools port is open, otherwise launches a managed instance — visible by default, so the user can watch the agent work.
Package bus decouples channels from the agent loop with bounded queues.
Package bus decouples channels from the agent loop with bounded queues.
Package channel defines the connector seam.
Package channel defines the connector seam.
phone
Package phone is the voice connector: the user talks to Factor on a real phone call, and Factor can call or text back.
Package phone is the voice connector: the user talks to Factor on a real phone call, and Factor can call or text back.
telegram
files.go moves files across the chat, both ways: attachments the user sends are downloaded into the workspace and handed to the model as a local path, and the telegram_send_file tool lets the agent hand the user an actual file — a report it wrote, a screenshot, a download — instead of describing one.
files.go moves files across the chat, both ways: attachments the user sends are downloaded into the workspace and handed to the model as a local path, and the telegram_send_file tool lets the agent hand the user an actual file — a report it wrote, a screenshot, a download — instead of describing one.
voice
Package voice is the PC voice connector: the user talks to Factor through the machine's own microphone and hears it through the speakers.
Package voice is the PC voice connector: the user talks to Factor through the machine's own microphone and hears it through the speakers.
Package config loads, defaults, persists, and redacts Factor's configuration.
Package config loads, defaults, persists, and redacts Factor's configuration.
Package cost prices what the agent spends.
Package cost prices what the agent spends.
Package cron schedules recurring agent tasks.
Package cron schedules recurring agent tasks.
Package desktop gives the agent hands on the graphical session: listing and controlling windows, taking screenshots, moving the mouse, typing, the clipboard, notifications, and opening files or URLs.
Package desktop gives the agent hands on the graphical session: listing and controlling windows, taking screenshots, moving the mouse, typing, the clipboard, notifications, and opening files or URLs.
Package gateway runs Factor as a daemon: channels, cron, heartbeat, background jobs, and a local health endpoint.
Package gateway runs Factor as a daemon: channels, cron, heartbeat, background jobs, and a local health endpoint.
Package heartbeat periodically checks HEARTBEAT.md for user-defined tasks.
Package heartbeat periodically checks HEARTBEAT.md for user-defined tasks.
Package jobs runs long work in the background so the agent can reply immediately and report back when the work finishes.
Package jobs runs long work in the background so the agent can reply immediately and report back when the work finishes.
Package mcp implements a minimal MCP client (JSON-RPC 2.0 over stdio, newline-delimited) so external MCP servers' tools mount directly into Factor's tool registry as <server>__<tool>.
Package mcp implements a minimal MCP client (JSON-RPC 2.0 over stdio, newline-delimited) so external MCP servers' tools mount directly into Factor's tool registry as <server>__<tool>.
Package memory is the soul of Factor: long-term memory backed by smrti (github.com/cyqlelabs/smrti), an AtomSpace-inspired engine with Bayesian truth values, attention economics, and emotional valence, reached over a localhost REST sidecar.
Package memory is the soul of Factor: long-term memory backed by smrti (github.com/cyqlelabs/smrti), an AtomSpace-inspired engine with Bayesian truth values, attention economics, and emotional valence, reached over a localhost REST sidecar.
Package provider defines the LLM provider seam: a minimal Chat interface, wire-format adapters (OpenAI-compatible, Anthropic), error classification, and a failover chain with per-candidate cooldowns.
Package provider defines the LLM provider seam: a minimal Chat interface, wire-format adapters (OpenAI-compatible, Anthropic), error classification, and a failover chain with per-candidate cooldowns.
Package proxy routes Factor's own HTTP through a proxy, so a debugging or auditing session can watch every provider call go past — prompts, tool definitions, replies and token counts, as they cross the wire.
Package proxy routes Factor's own HTTP through a proxy, so a debugging or auditing session can watch every provider call go past — prompts, tool definitions, replies and token counts, as they cross the wire.
Package session persists conversation history as append-only JSONL files with a meta sidecar carrying the summary and logical truncation offset.
Package session persists conversation history as append-only JSONL files with a meta sidecar carrying the summary and logical truncation offset.
Package skills implements progressive-disclosure markdown skills: only name + description enter the system prompt; the model reads the full SKILL.md with read_file when it decides a skill applies.
Package skills implements progressive-disclosure markdown skills: only name + description enter the system prompt; the model reads the full SKILL.md with read_file when it decides a skill applies.
Package tools defines the tool seam and the built-in arsenal.
Package tools defines the tool seam and the built-in arsenal.
Package tray shows a system-tray icon while the gateway runs: its presence is the status light, and its menu carries the one action a tray owes its user — quitting the daemon.
Package tray shows a system-tray icon while the gateway runs: its presence is the status light, and its menu carries the one action a tray owes its user — quitting the daemon.
Package tui draws Factor's interactive chat.
Package tui draws Factor's interactive chat.
Package upgrade keeps Factor current: it finds the newest published release for this machine and replaces the running binary with it.
Package upgrade keeps Factor current: it finds the newest published release for this machine and replaces the running binary with it.
Package version holds build metadata injected at link time.
Package version holds build metadata injected at link time.
Package wizard is Factor's interactive setup: a terminal front-end for `factor init` that picks a provider and model (probing them live), installs the smrti memory engine, wires up channels, and checks the desktop tools.
Package wizard is Factor's interactive setup: a terminal front-end for `factor init` that picks a provider and model (probing them live), installs the smrti memory engine, wires up channels, and checks the desktop tools.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL