Hub: ๐Ÿ”Œ OMP Extensions ยท Contract: ๐Ÿงญ Extension UX Contract ยท Package: /home/dv/ompfuse ยท Instance: Langfuse

1. ๐Ÿ’Ž Blueprint

id: ompfuse
type: package              # not extensions/*.ts
human_command: none        # event-only telemetry; no UI clutter
command_owner: none
path: /home/dv/ompfuse
register: ~/.omp/agent/settings.json โ†’ packages: ["/home/dv/ompfuse"]
env: ~/.omp/agent/.env     โ†’ LANGFUSE_PUBLIC_KEY, SECRET_KEY, BASE_URL
legacy: extensions/langfuse.ts   # gated โ€” do NOT delete
legacy_gate: LANGFUSE_USE_LEGACY_EXTENSION=1
active_tracer: ompfuse     # only one exporter at a time
status: shipped          # subagent + lifecycle hardening applied

2. ๐ŸŽฏ Purpose

Map OMP lifecycle โ†’ Langfuse trace tree: turns, generations, tools, subagents, usage, costs.

OMP eventLangfuse
turn_start / turn_endchat turn spans
before_provider_requestgeneration start
message_endgeneration complete + tokens
tool_execution_*tool spans
task spawnsubagent_spawned
in-process subagentinherited trace via trace-coordination.ts

Usage fix: tokens on message_end (message.usage), not after_provider_response.

3. โš™๏ธ Setup

// ~/.omp/agent/settings.json
{ "packages": ["/home/dv/ompfuse"] }
# ~/.omp/agent/.env
LANGFUSE_PUBLIC_KEY=pk-lf-...
LANGFUSE_SECRET_KEY=sk-lf-...
LANGFUSE_BASE_URL=http://95.111.224.175:19030
# LANGFUSE_DEBUG=1

Legacy fallback (disable ompfuse package first to avoid double-trace):

LANGFUSE_USE_LEGACY_EXTENSION=1

4. ๐Ÿ—๏ธ Trace tree

flowchart TB
  T[Trace] --> R[Root turn]
  R --> G[LLM generations]
  R --> TO[Tools]
  TO --> SP[subagent_spawned]
  SP --> SA[subagent_started]
  SA --> SG[subagent generations/tools]
  SA --> SC[subagent_completed]

In-process subagents: same PID โ€” use global rememberMainTrace() + session-file heuristics (not PID-only check).

5. ๐Ÿ“ฆ Backfill (historical)

Script: _scripts_adhoc/langfuse-backfill-from-stats.ts โ€” reads ~/.omp/stats.db, tags backfill / stats-db. Separate trace IDs from live ompfuse.

6. โœ… Done when

  • Restart omp after ompfuse changes
  • New session โ†’ trace in Langfuse UI
  • message_end โ†’ Model Usage > 0
  • task subagent โ†’ nested spans under parent trace
  • langfuse.ts present but inactive (no double traces)
omp.0rk.de/langfuse-telemetryOMP garden doc
ompfuse/src/extension.tsHook registry
ompfuse/src/trace-coordination.tsSubagent inheritance
[[plans/omp-extensions/rebrandrebrand hub]]