Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 0 additions & 14 deletions .claude-plugin/marketplace.json

This file was deleted.

22 changes: 0 additions & 22 deletions .codex-plugin/marketplace.json

This file was deleted.

149 changes: 16 additions & 133 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,133 +1,16 @@
# =============================================================================
# AI-Todo configuration
# =============================================================================
#
# Copy this file to `~/.agentmemory/.env` (run `node dist/cli.mjs init`) and
# uncomment the lines you want. Every line is OFF by default — AI-Todo runs
# out of the box: it extracts To-Dos from your agent sessions with a
# deterministic rules extractor, no LLM key, no API auth.
#
# Run `node dist/cli.mjs doctor` to verify the daemon reads the env you expect.
# Env var NAMES (AGENTMEMORY_* / LANGEXTRACT_* / III_*) are the wire contract
# and are kept stable — only this file's framing/order is AI-Todo-oriented.

# -----------------------------------------------------------------------------
# 1. To-Do extraction model ← AI-Todo's headline config
# -----------------------------------------------------------------------------
#
# To use an LLM extractor instead of the default rules extractor, install the
# Python deps then set an OpenAI-compatible model below:
# python3 -m pip install -r requirements-langextract.txt
# python3 -m pip install socksio # only when your network uses a SOCKS proxy
#
# First-run setup (`node dist/cli.mjs --reset` from source, or
# `agentmemory-lab --reset` when installed) seeds these for the model you pick.
# Only the openai-compatible branch is wired (Novita default / OpenAI / OpenRouter).
# AGENTMEMORY_TODO_EXTRACTOR=langextract
# LANGEXTRACT_PROVIDER=openai
# LANGEXTRACT_MODEL=deepseek/deepseek-v4-flash # Novita; OpenAI: gpt-4o-mini; OpenRouter: deepseek/deepseek-chat
# LANGEXTRACT_BASE_URL=https://api.novita.ai/openai/v1 # OpenAI: https://api.openai.com/v1 · OpenRouter: https://openrouter.ai/api/v1
# LANGEXTRACT_API_KEY=<runtime secret>
# LANGEXTRACT_THINKING_DEPTH=medium # reasoning_effort; leave empty for non-reasoning models (e.g. gpt-4o-mini)
# LANGEXTRACT_PYTHON=/path/to/python
# AGENTMEMORY_TODO_EXTRACT_TIMEOUT_MS=120000
# AGENTMEMORY_TODO_EXTRACT_SINCE_DAYS=7 # only extract sessions from the last N days (primary scope control)
# AGENTMEMORY_TODO_EXTRACT_MAX_INTERACTIONS_PER_SESSION=10 # per session, keep at most M most-recent interaction records (one user request → agent reply)

# -----------------------------------------------------------------------------
# 2. Auth & security (web UI / REST)
# -----------------------------------------------------------------------------
#
# Bearer-token auth for the REST API + viewer. Without a secret, REST endpoints
# are open on loopback. Set this when you expose the daemon beyond loopback.
# AGENTMEMORY_SECRET=your-secret-here

# -----------------------------------------------------------------------------
# 3. Runtime / ports / engine pin
# -----------------------------------------------------------------------------

# AGENTMEMORY_URL=http://localhost:3111 # REST base URL — honored by status, doctor, MCP shim
# AGENTMEMORY_VIEWER_URL=http://localhost:3114 # Override the viewer URL printed by `node dist/cli.mjs status` / `agentmemory-lab status`
# AGENTMEMORY_TOOLS=all # core (default) | all — surface exposed to MCP clients
# AGENTMEMORY_SLOTS=memory # Comma-separated plugin slot names the CLI should claim
# AGENTMEMORY_EXPORT_ROOT=~/agentmemory-backup # Default destination used by export functions
# AGENTMEMORY_DEBUG=1 # Trace MCP shim probe + standalone fallback decisions to stderr
# AGENTMEMORY_FORCE_PROXY=1 # Skip the MCP shim livez probe and trust AGENTMEMORY_URL
# AGENTMEMORY_PROBE_TIMEOUT_MS=2000 # MCP shim livez probe timeout
# STANDALONE_MCP=1 # MCP shim only — bypass the worker, run @agentmemory/mcp in-process
# STANDALONE_PERSIST_PATH=~/.agentmemory/local.db # Path used by the standalone MCP shim's local fallback store
# III_REST_PORT=3111 # REST API port (also affects viewer at +2)
# III_STREAMS_PORT=3112 # Streams API port
# III_ENGINE_URL=ws://localhost:49134 # iii-engine WebSocket URL (used by the worker)
# AGENTMEMORY_III_VERSION=0.11.2 # iii-engine pin. v0.11.6 changes the sandbox model; only override after migrating manually.

# =============================================================================
# Advanced: legacy memory engine (inherited from agentmemory; OFF by default, #138)
# =============================================================================
#
# These power the upstream persistent-memory layer (compression, consolidation,
# embeddings, knowledge graph, snapshots, team sharing, bridges). AI-Todo does
# NOT need them for To-Do extraction; they remain for users who want the memory
# layer. Names unchanged.

# --- LLM provider (compress / summarise / consolidate) — pick ONE -------------
# Detection order: OPENAI_API_KEY → MINIMAX_API_KEY → ANTHROPIC_API_KEY →
# GEMINI_API_KEY → OPENROUTER_API_KEY → noop (zero-LLM synthetic compression).
# OPENAI_API_KEY=sk-... # Also used for OpenAI-compatible embeddings
# OPENAI_BASE_URL=https://api.openai.com # Override for OpenAI-compatible providers
# ANTHROPIC_API_KEY=sk-ant-...
# ANTHROPIC_MODEL=claude-sonnet-4-20250514 # Default Anthropic model
# ANTHROPIC_BASE_URL=https://api.anthropic.com # Override for Anthropic-compatible proxies / Azure AI Foundry
# GEMINI_API_KEY=... # GEMINI_API_KEY takes precedence over GOOGLE_API_KEY
# GOOGLE_API_KEY=... # Alias for GEMINI_API_KEY when set alone
# GEMINI_MODEL=gemini-2.5-flash # Default Gemini model
# OPENROUTER_API_KEY=sk-or-...
# OPENROUTER_MODEL=anthropic/claude-sonnet-4-20250514
# MINIMAX_API_KEY=...
# MINIMAX_MODEL=MiniMax-M2.7
# MAX_TOKENS=4096 # Cap LLM completion tokens for compression / summarise calls
# AGENTMEMORY_LLM_TIMEOUT_MS=60000 # Outbound LLM / embedding timeout (default 60 000 ms)
# AGENTMEMORY_ALLOW_AGENT_SDK=true # Opt-in Claude-subscription fallback (off by default)
# FALLBACK_PROVIDERS=anthropic,gemini # Chain tried after the primary provider errors

# --- Embeddings (override via EMBEDDING_PROVIDER) -----------------------------
# Detection order: EMBEDDING_PROVIDER → GEMINI → OPENAI → VOYAGE → COHERE →
# OPENROUTER → local (Xenova/all-MiniLM-L6-v2, 384-dim).
# EMBEDDING_PROVIDER=local # local | openai | voyage | cohere | gemini | openrouter
# VOYAGE_API_KEY=pa-... # Optimised for code embeddings
# COHERE_API_KEY=... # General-purpose embeddings
# OPENAI_EMBEDDING_MODEL=text-embedding-3-small # When EMBEDDING_PROVIDER=openai
# OPENAI_EMBEDDING_DIMENSIONS=1536 # Required when the model is not in the known-models table
# OPENROUTER_EMBEDDING_MODEL=openai/text-embedding-3-small # When EMBEDDING_PROVIDER=openrouter

# --- Search tuning -----------------------------------------------------------
# BM25_WEIGHT=0.4 # Hybrid search weight for BM25 leg
# VECTOR_WEIGHT=0.6 # Hybrid search weight for vector leg
# AGENTMEMORY_GRAPH_WEIGHT=0.2 # Graph traversal bonus on smart-search ranking
# TOKEN_BUDGET=2000 # Max tokens injected via mem::context per session
# MAX_OBS_PER_SESSION=500 # Per-session observation cap before consolidation kicks in
# SUMMARIZE_CHUNK_SIZE=400 # Chunk threshold for map-reduce summarize of large sessions
# SUMMARIZE_CHUNK_CONCURRENCY=6 # Parallel chunk LLM calls during chunked summarize

# --- Behaviour flags ---------------------------------------------------------
# AGENTMEMORY_AUTO_COMPRESS=true # LLM compression on every observation batch (needs a provider key). Default off.
# AGENTMEMORY_INJECT_CONTEXT=true # Inject recalled memories back into agent prompts (#143). Default off.
# CONSOLIDATION_ENABLED=true # Run the 4-tier consolidation pipeline. Default off.
# CONSOLIDATION_DECAY_DAYS=30 # Age (days) after which non-reinforced memories decay
# GRAPH_EXTRACTION_ENABLED=true # Extract concept-graph edges on remember
# GRAPH_EXTRACTION_BATCH_SIZE=8 # Memories per graph-extraction batch
# AGENTMEMORY_REFLECT=true # Periodically auto-synthesize lessons from memories
# AGENTMEMORY_DROP_STALE_INDEX=true # Drop on-disk BM25 / vector index on startup if dim guard fires (#248)
# AGENTMEMORY_IMAGE_EMBEDDINGS=true # Enable image embeddings when an image provider is present (experimental)

# --- Snapshots / team / bridges ----------------------------------------------
# SNAPSHOT_ENABLED=true
# SNAPSHOT_DIR=~/.agentmemory/snapshots
# SNAPSHOT_INTERVAL=3600 # Seconds between snapshots
# TEAM_MODE=shared # Scope memories to (TEAM_ID, USER_ID) tuples
# TEAM_ID=acme
# USER_ID=rohit
# CLAUDE_MEMORY_BRIDGE=true # Mirror compressed memories into Claude Code's CLAUDE.md
# CLAUDE_PROJECT_PATH=/path/to/your/project # Required when CLAUDE_MEMORY_BRIDGE=true
# CLAUDE_MEMORY_LINE_BUDGET=200 # Lines of memory CLAUDE.md should hold
# OBSIDIAN_AUTO_EXPORT=true # Auto-export memories to an Obsidian vault on every consolidation
# AI-Todo local configuration example
AI_TODO_CODEX_HOME=~/.codex
AI_TODO_CLAUDE_HOME=~/.claude/projects
AI_TODO_LLM_ENABLED=true
AI_TODO_LLM_PROVIDER=openai
AI_TODO_LLM_MODEL=deepseek/deepseek-v4-flash
AI_TODO_LLM_ENDPOINT=https://api.novita.ai/openai/v1
AI_TODO_LLM_THINKING_DEPTH=medium
AI_TODO_LLM_TIMEOUT_MS=120000
AI_TODO_ORGANIZE_SINCE_DAYS=7
AI_TODO_ORGANIZE_MAX_INTERACTIONS_PER_SESSION=10
AI_TODO_ORGANIZE_MAX_SESSIONS=16
AI_TODO_ORGANIZE_MAX_OBSERVATIONS_PER_SESSION=40

# Do not commit real keys. Run `ai-todo init --api-key ...` or save in Settings.
# AI_TODO_LLM_API_KEY=
1 change: 0 additions & 1 deletion .github/FUNDING.yml

This file was deleted.

101 changes: 0 additions & 101 deletions .github/ISSUE_TEMPLATE/bug_report.yml

This file was deleted.

5 changes: 0 additions & 5 deletions .github/ISSUE_TEMPLATE/config.yml

This file was deleted.

Loading
Loading