Commit graph

9 commits

Author SHA1 Message Date
450a07273a Implementer daemon/vaktmester-modus i synops-agent
synops-agent daemon: bakgrunnsprosess som poller PG for oppgaver
og meldinger. Hovedfunksjoner:

- Vaktmester-chat: finner/oppretter kommunikasjonsnode, poller
  nye meldinger, svarer via LLM
- Prefix-kommandoer: /proposal, /task, /bug, /gjør
- Modellvalg: /claude, /grok, /gemini, /lokal, /billig
- Task-polling: plukker open tasks, kjører via agent-session
- Kill switch: respekterer agent_identities.is_active
- Heartbeat-fil + PID-fil for overvåking
- SIGTERM/SIGINT-håndtering med graceful shutdown
- Stale task-frigjøring ved hver poll-runde
2026-03-19 18:39:52 +00:00
ec5fc662fe Implementer grafintegrasjon i synops-agent (PG)
Ny modul graph.rs med:
- pick_task: plukk høyest-prioritet open task atomisk (FOR UPDATE SKIP LOCKED)
- update_task_status: oppdater status (open → active → done/failed)
- write_task_message: skriv melding i oppdragets chat-node
- release_stale_tasks: frigjør tasks stuck >60 min (krasj-deteksjon)
- query_nodes/query_edges/get_node: generiske graf-spørringer

Nytt verktøy synops_query for LLM:
- action: nodes (list med kind/status-filter)
- action: edges (for en node, med retning/type-filter)
- action: get (les enkeltnode med metadata)

PG-tilkobling er valgfri — degraderer gracefully uten DATABASE_URL.
Krasj-deteksjon kjøres ved oppstart.
2026-03-19 18:32:28 +00:00
e38c77ea00 Implementer git-integrasjon i synops-agent
- Ny modul git.rs: status, log, diff, blame, commit, push, branch
- Nytt git-verktøy for LLM (8 subkommandoer)
- Auto-inkluder git-kontekst i system prompt (branch, status, siste commits)
- CLI-args: --commit-msg, --no-commit, --push/--no-push, --branch
- Auto-commit og push etter fullført batch-oppgave
- Diff-visning i output etter oppgave
- 4 nye tester for git-modulen (alle bestått)
2026-03-19 18:26:09 +00:00
6bd2787ee8 Implementer planmodus og selvkritikk i synops-agent
Extended ReAct Loop: tenk → plan → selvkritikk → utfør.
--plan tvinger planmodus, --no-plan deaktiverer.
Uten flagg: auto-detect basert på oppgavens nøkkelord/lengde.
/plan kommando i interaktiv modus.
2026-03-19 18:20:54 +00:00
a8b6c7ca7b Implementer interaktiv REPL-modus i synops-agent
- --interactive / -i starter REPL med readline (rustyline)
- Token-teller og kostnad i prompt: [12.3kT $0.042] claude-sonnet-4 >
- Ctrl+C avbryter pågående tool-kall, ikke hele agenten
- Meldingshistorikk bevares mellom turns
- Multi-line input med \ på slutten av linjen
- Innebygde kommandoer: /stats, /clear, /help, exit
- Historikk lagres i ~/.synops/agent_history.txt
- Refaktorert agent-loop til AgentSession struct for gjenbruk
- --task er nå valgfri (påkrevd kun i batch-modus)
2026-03-19 18:16:54 +00:00
0bfad1eb8a Implementer retry med backoff og token-budsjett i synops-agent
- Retry med exponential backoff for retryable API-feil (429, 500, 502, 503)
  med konfigurerbar --max-retries (default: 3) og Retry-After-støtte
- --max-cost flagg for token-budsjett (USD), stopper og rapporterer
  gjenstående arbeid ved budsjettgrense (exit code 2)
- Konfigurerbar --max-tokens per provider (erstatter hardkodet 4096/8192)
- Sanntids kostnadsregnskap per modell med cost_per_million_tokens-tabell
- Detaljert token/kostnad-rapport ved avslutning

Ref: docs/proposals/agent_harness.md §3 (selvovervåking)
2026-03-19 18:12:27 +00:00
703a0addca Implementer Adaptive Context Compaction (ACC) i synops-agent
Automatisk kontekstkomprimering når meldingshistorikken nærmer seg
kontekstvinduets grense. Bruker prompt_tokens fra API-respons som
kalibreringsanker.

- Ny context.rs-modul med to kompaksjonsnivåer:
  - Moderat (>70%): trunkerer gamle tool-resultater
  - Aggressiv (>85%): kollapser eldre historikk til oppsummering
- Siste 5 meldinger bevares alltid urørt
- context_window() på LlmProvider-trait med automatisk estimering
- 5 enhetstester for kompaksjonslogikk
2026-03-19 18:07:51 +00:00
c30a40e97a synops-agent: max_tokens=4096 + verifisert med OpenRouter/Gemini
Testet med ekte API-kall. Fungerer: tool-loop, fil-lesing, glob,
token-regnskap. Gemini Flash via OpenRouter svarer på ~3 sekunder.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 17:45:05 +00:00
2e3433798f synops-agent fase 1: core agent loop med alle providers
Modell-agnostisk agent-runtime i Rust. Egen provider-kode (ingen Rig-dep).
Støtter: OpenRouter, Anthropic, Gemini, xAI, OpenAI, Ollama.
Tool-loop: prompt → tool_calls → execute → loop.
Innebygde verktøy: read_file, write_file, edit_file, bash, grep, glob.
Token-regnskap per modell. --claude for å spawne Claude Code.
Kompilerer og kjører. Trenger API-nøkkel for å faktisk gjøre noe.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 17:41:28 +00:00