mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-12 03:42:08 +00:00
feat(teams-pipeline): add plugin runtime and operator cli
Third slice of the Microsoft Teams meeting pipeline stack, salvaged onto current main. Adds the standalone teams_pipeline plugin that consumes Graph change notifications from the webhook listener, resolves meeting artifacts (transcript first, recording + STT fallback later), persists job state in a durable store, and exposes an operator CLI for inspection, replay, subscription management, and validation. Design choices follow maintainer review feedback on PR #19815: - Standalone plugin rather than bolted-on core surface (plugins/teams_pipeline/, kind: standalone in plugin.yaml). - Zero new model tools. The agent drives the pipeline by invoking the operator CLI via the terminal tool, guided by the skill that ships with a follow-up PR. - Reuses the existing msgraph_webhook gateway platform for Graph ingress. Pipeline runtime is wired in via bind_gateway_runtime and gated on plugins.enabled so gateways that don't run the plugin boot cleanly. Additions: - plugins/teams_pipeline/: runtime (gateway wiring + config builder), pipeline core, durable SQLite store, subscription maintenance helpers, Graph artifact resolution, operator CLI (list, show, run/replay, fetch dry-run, subscriptions list, subscribe, renew-subscription, delete-subscription, maintain-subscriptions, token-health, validate). - hermes_cli/main.py: second-pass plugin CLI discovery so any standalone plugin registered via ctx.register_cli_command() outside the memory-plugin convention path gets its subcommand wired into argparse without touching core. - gateway/run.py: _teams_pipeline_plugin_enabled() config gate, _wire_teams_pipeline_runtime() binding after adapter setup, and the two runner attributes used by the runtime. Credit to @dlkakbs for the entire plugin implementation.
This commit is contained in:
parent
ea86714cc0
commit
07bbd93337
14 changed files with 3332 additions and 1 deletions
23
plugins/teams_pipeline/__init__.py
Normal file
23
plugins/teams_pipeline/__init__.py
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
"""Teams meeting pipeline plugin.
|
||||
|
||||
Registers only operator-facing CLI surfaces. The agent should invoke these via
|
||||
the terminal tool; no model tools are added by this plugin.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from plugins.teams_pipeline.cli import register_cli, teams_pipeline_command
|
||||
|
||||
|
||||
def register(ctx) -> None:
|
||||
ctx.register_cli_command(
|
||||
name="teams-pipeline",
|
||||
help="Inspect and operate the Microsoft Teams meeting pipeline",
|
||||
setup_fn=register_cli,
|
||||
handler_fn=teams_pipeline_command,
|
||||
description=(
|
||||
"Operator CLI for the Microsoft Teams meeting pipeline. "
|
||||
"Lists jobs, inspects stored runs, replays jobs, validates Graph "
|
||||
"setup, and maintains Graph subscriptions."
|
||||
),
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue