.gitignore
.pre-commit-config.yaml
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE
Makefile
README.md
SECURITY.md
pygubernator.cfg.example
pyproject.toml
setup.sh
.github/workflows/publish.yml
.github/workflows/test.yml
docs/integration-guide.md
docs/observability-acceptance.md
docs/observability-api-contract.md
docs/observability-ui-spec.md
docs/run-lifecycle.md
docs/architecture/ADR-001-layers.md
examples/ingest_validate_load.py
examples/llm_agent_workflow.yaml
examples/llm_data_pipeline.py
examples/observable_pipeline.py
examples/simple_workflow.yaml
examples/supervised_agents.py
scripts/git-untrack-ignored.sh
src/pygubernator/__init__.py
src/pygubernator/_events.py
src/pygubernator/_handlers.py
src/pygubernator/_middleware.py
src/pygubernator/_protocols.py
src/pygubernator/_sse.py
src/pygubernator/_supervisor.py
src/pygubernator/_types.py
src/pygubernator/errors.py
src/pygubernator/py.typed
src/pygubernator.egg-info/PKG-INFO
src/pygubernator.egg-info/SOURCES.txt
src/pygubernator.egg-info/dependency_links.txt
src/pygubernator.egg-info/entry_points.txt
src/pygubernator.egg-info/requires.txt
src/pygubernator.egg-info/top_level.txt
src/pygubernator/agent_store/__init__.py
src/pygubernator/agent_store/client.py
src/pygubernator/agent_store/memory.py
src/pygubernator/agent_store/sqlalchemy.py
src/pygubernator/agents/__init__.py
src/pygubernator/agents/_base.py
src/pygubernator/agents/_llm.py
src/pygubernator/agents/_machines.py
src/pygubernator/agents/_pipeline.py
src/pygubernator/agents/_state_machine.py
src/pygubernator/api/__init__.py
src/pygubernator/api/deps.py
src/pygubernator/api/main.py
src/pygubernator/api/models.py
src/pygubernator/api/routes_agents.py
src/pygubernator/api/routes_auth.py
src/pygubernator/api/routes_llm.py
src/pygubernator/api/routes_observability.py
src/pygubernator/api/routes_policies.py
src/pygubernator/api/routes_runs.py
src/pygubernator/api/routes_workflows.py
src/pygubernator/chat/__init__.py
src/pygubernator/chat/_demo.py
src/pygubernator/chat/_demo_provider.py
src/pygubernator/chat/_repl.py
src/pygubernator/chat/_session.py
src/pygubernator/chat/_types.py
src/pygubernator/cli/__init__.py
src/pygubernator/cli/_chat.py
src/pygubernator/cli/_workflow.py
src/pygubernator/client/__init__.py
src/pygubernator/config/__init__.py
src/pygubernator/config/_control_plane.py
src/pygubernator/config/_helpers.py
src/pygubernator/config/_settings.py
src/pygubernator/config/auth.py
src/pygubernator/config/database.py
src/pygubernator/config/paths.py
src/pygubernator/config/ui.py
src/pygubernator/core/__init__.py
src/pygubernator/data/seed/example_workflow.yaml
src/pygubernator/db/__init__.py
src/pygubernator/db/_agents.py
src/pygubernator/db/_audit.py
src/pygubernator/db/_incidents.py
src/pygubernator/db/_pagination.py
src/pygubernator/db/_policies.py
src/pygubernator/db/_runs.py
src/pygubernator/db/_workflows.py
src/pygubernator/db/base.py
src/pygubernator/db/cli.py
src/pygubernator/db/config.py
src/pygubernator/db/models.py
src/pygubernator/db/paths.py
src/pygubernator/db/repositories.py
src/pygubernator/db/retention.py
src/pygubernator/db/session.py
src/pygubernator/db/migrations/001_control_plane_init.sql
src/pygubernator/db/migrations/env.py
src/pygubernator/db/migrations/script.py.mako
src/pygubernator/db/migrations/versions/20260322000000_initial_control_plane.py
src/pygubernator/db/migrations/versions/20260326000000_add_session_id.py
src/pygubernator/db/migrations/versions/__init__.py
src/pygubernator/llm/__init__.py
src/pygubernator/llm/_config.py
src/pygubernator/llm/_factory.py
src/pygubernator/llm/_local.py
src/pygubernator/llm/_messages.py
src/pygubernator/llm/_openai_compat.py
src/pygubernator/llm/_provider.py
src/pygubernator/middleware/__init__.py
src/pygubernator/middleware/_logging.py
src/pygubernator/middleware/_retry.py
src/pygubernator/middleware/_timeout.py
src/pygubernator/middleware/_validation.py
src/pygubernator/observability/__init__.py
src/pygubernator/observability/_metrics.py
src/pygubernator/observability/_tracing.py
src/pygubernator/runners/__init__.py
src/pygubernator/runners/_batch.py
src/pygubernator/runners/_stream.py
src/pygubernator/services/__init__.py
src/pygubernator/services/_workflows.py
src/pygubernator/spec/__init__.py
src/pygubernator/spec/factory.py
src/pygubernator/spec/types.py
src/pygubernator/tools/__init__.py
src/pygubernator/tools/_decorator.py
src/pygubernator/tools/_registry.py
src/pygubernator/tools/catalyst_tools.py
src/pygubernator/tools/charter_tools.py
src/pygubernator/tools/gsheets_tools.py
src/pygubernator/tools/stator_tools.py
src/pygubernator/transport/__init__.py
src/pygubernator/transport/_kafka.py
src/pygubernator/transport/_memory.py
src/pygubernator/ui/README.md
src/pygubernator/ui/__init__.py
src/pygubernator/ui/build.py
src/pygubernator/ui/dev.py
src/pygubernator/ui/eslint.config.mjs
src/pygubernator/ui/next-env.d.ts
src/pygubernator/ui/next.config.mjs
src/pygubernator/ui/package-lock.json
src/pygubernator/ui/package.json
src/pygubernator/ui/postcss.config.js
src/pygubernator/ui/server.py
src/pygubernator/ui/tailwind.config.ts
src/pygubernator/ui/tsconfig.json
src/pygubernator/ui/vitest.config.ts
src/pygubernator/ui/src/app/globals.css
src/pygubernator/ui/src/app/layout.tsx
src/pygubernator/ui/src/app/page.tsx
src/pygubernator/ui/src/app/themes.css
src/pygubernator/ui/src/app/agents/AgentsPageInner.tsx
src/pygubernator/ui/src/app/agents/page.tsx
src/pygubernator/ui/src/app/login/page.tsx
src/pygubernator/ui/src/app/observability/ObservabilityOverviewInner.tsx
src/pygubernator/ui/src/app/observability/page.tsx
src/pygubernator/ui/src/app/observability/alerts/AlertsPageInner.tsx
src/pygubernator/ui/src/app/observability/alerts/page.tsx
src/pygubernator/ui/src/app/observability/incidents/IncidentsPageInner.tsx
src/pygubernator/ui/src/app/observability/incidents/page.tsx
src/pygubernator/ui/src/app/observability/runs/ObservabilityRunsInner.tsx
src/pygubernator/ui/src/app/observability/runs/page.tsx
src/pygubernator/ui/src/app/runs/RunsPageInner.tsx
src/pygubernator/ui/src/app/runs/page.tsx
src/pygubernator/ui/src/app/settings/page.tsx
src/pygubernator/ui/src/app/workflows/WorkflowsPageInner.tsx
src/pygubernator/ui/src/app/workflows/page.tsx
src/pygubernator/ui/src/app/workflows/editor/WorkflowEditorInner.tsx
src/pygubernator/ui/src/app/workflows/editor/page.tsx
src/pygubernator/ui/src/app/workflows/runs/page.tsx
src/pygubernator/ui/src/components/ApiUnavailableBanner.tsx
src/pygubernator/ui/src/components/AppShell.tsx
src/pygubernator/ui/src/components/ErrorBoundary.tsx
src/pygubernator/ui/src/components/ErrorDisplay.tsx
src/pygubernator/ui/src/components/LoadingSpinner.tsx
src/pygubernator/ui/src/components/Navigation.tsx
src/pygubernator/ui/src/components/ThemeFromConfig.tsx
src/pygubernator/ui/src/components/ThemeSync.tsx
src/pygubernator/ui/src/components/common/ConfirmDialog.tsx
src/pygubernator/ui/src/components/common/PageHeader.tsx
src/pygubernator/ui/src/components/common/Pagination.tsx
src/pygubernator/ui/src/components/common/index.ts
src/pygubernator/ui/src/components/layout/AuthGuard.tsx
src/pygubernator/ui/src/components/layout/PageContainer.tsx
src/pygubernator/ui/src/components/layout/ResizableWorkspaceLayout.tsx
src/pygubernator/ui/src/components/layout/SidebarHeaderWithToggle.tsx
src/pygubernator/ui/src/components/observability/AlertRulesManager.tsx
src/pygubernator/ui/src/components/observability/IncidentsTable.tsx
src/pygubernator/ui/src/components/observability/ObservabilityTabs.tsx
src/pygubernator/ui/src/components/observability/RunActions.tsx
src/pygubernator/ui/src/components/observability/StatusBadge.tsx
src/pygubernator/ui/src/components/ui/badge.tsx
src/pygubernator/ui/src/components/ui/button.tsx
src/pygubernator/ui/src/components/ui/card.tsx
src/pygubernator/ui/src/components/ui/dropdown-menu.tsx
src/pygubernator/ui/src/components/ui/input.tsx
src/pygubernator/ui/src/components/ui/skeleton.tsx
src/pygubernator/ui/src/components/ui/table.tsx
src/pygubernator/ui/src/components/ui/toaster.tsx
src/pygubernator/ui/src/components/workflows/CommandPalette.tsx
src/pygubernator/ui/src/components/workflows/ExecuteInputDialog.tsx
src/pygubernator/ui/src/components/workflows/NodeConfigPanel.tsx
src/pygubernator/ui/src/components/workflows/NodePalette.tsx
src/pygubernator/ui/src/components/workflows/RunTimeline.tsx
src/pygubernator/ui/src/components/workflows/StepDetailPanel.tsx
src/pygubernator/ui/src/components/workflows/SubNodeEdge.tsx
src/pygubernator/ui/src/components/workflows/VariableInspector.tsx
src/pygubernator/ui/src/components/workflows/WorkflowCanvas.tsx
src/pygubernator/ui/src/components/workflows/WorkflowCompanionPanel.tsx
src/pygubernator/ui/src/components/workflows/WorkflowContextMenu.tsx
src/pygubernator/ui/src/components/workflows/WorkflowEdge.tsx
src/pygubernator/ui/src/components/workflows/WorkflowEditorSidebar.tsx
src/pygubernator/ui/src/components/workflows/WorkflowEditorToolbar.tsx
src/pygubernator/ui/src/components/workflows/WorkflowInspectorPanel.tsx
src/pygubernator/ui/src/components/workflows/WorkflowNode.tsx
src/pygubernator/ui/src/components/workflows/WorkflowRunDag.tsx
src/pygubernator/ui/src/components/workflows/WorkflowRunStatusBanner.tsx
src/pygubernator/ui/src/components/workflows/config-forms/AgentNodeForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/AnthropicChatModelForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/CodeNodeForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/ConditionNodeForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/DeepseekChatModelForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/GeminiChatModelForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/GlmChatModelForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/HttpNodeForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/InputNodeForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/LlmNodeForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/LoopNodeForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/MapNodeForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/MemoryNodeForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/OllamaChatModelForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/OpenAiChatModelForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/OpenAiCompatChatModelForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/OutputNodeForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/RouterNodeForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/TemplateNodeForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/ToolNodeForm.tsx
src/pygubernator/ui/src/components/workflows/config-forms/index.ts
src/pygubernator/ui/src/hooks/use-auth-init.ts
src/pygubernator/ui/src/hooks/usePolling.ts
src/pygubernator/ui/src/hooks/useToolbarCompression.ts
src/pygubernator/ui/src/hooks/useWorkflowSSE.ts
src/pygubernator/ui/src/hooks/useWorkflowShortcuts.ts
src/pygubernator/ui/src/lib/api.ts
src/pygubernator/ui/src/lib/auth-storage.ts
src/pygubernator/ui/src/lib/constants.ts
src/pygubernator/ui/src/lib/settings.ts
src/pygubernator/ui/src/lib/utils.ts
src/pygubernator/ui/src/lib/api/auth.ts
src/pygubernator/ui/src/lib/types/workflow.ts
src/pygubernator/ui/src/stores/app-config.ts
src/pygubernator/ui/src/stores/auth.ts
src/pygubernator/ui/src/stores/workflow-editor.test.ts
src/pygubernator/ui/src/stores/workflow-editor.ts
src/pygubernator/workflow/__init__.py
src/pygubernator/workflow/_context.py
src/pygubernator/workflow/_engine.py
src/pygubernator/workflow/_expressions.py
src/pygubernator/workflow/_protocols.py
src/pygubernator/workflow/_registry.py
src/pygubernator/workflow/_templates.py
src/pygubernator/workflow/_types.py
src/pygubernator/workflow/config/__init__.py
src/pygubernator/workflow/config/_converter.py
src/pygubernator/workflow/config/_loader.py
src/pygubernator/workflow/config/_models.py
src/pygubernator/workflow/nodes/__init__.py
src/pygubernator/workflow/nodes/_agent.py
src/pygubernator/workflow/nodes/_base.py
src/pygubernator/workflow/nodes/_code.py
src/pygubernator/workflow/nodes/_condition.py
src/pygubernator/workflow/nodes/_http.py
src/pygubernator/workflow/nodes/_input.py
src/pygubernator/workflow/nodes/_llm.py
src/pygubernator/workflow/nodes/_loop.py
src/pygubernator/workflow/nodes/_map.py
src/pygubernator/workflow/nodes/_memory.py
src/pygubernator/workflow/nodes/_memory_mongodb.py
src/pygubernator/workflow/nodes/_memory_postgres.py
src/pygubernator/workflow/nodes/_memory_sqlite.py
src/pygubernator/workflow/nodes/_memory_vector.py
src/pygubernator/workflow/nodes/_output.py
src/pygubernator/workflow/nodes/_router.py
src/pygubernator/workflow/nodes/_template.py
src/pygubernator/workflow/nodes/_tool.py
tests/__init__.py
tests/conftest.py
tests/integration/__init__.py
tests/integration/test_llm_agent_tools.py
tests/integration/test_pipeline_e2e.py
tests/unit/__init__.py
tests/unit/conftest.py
tests/unit/test_agent_node.py
tests/unit/test_agent_store.py
tests/unit/test_agents.py
tests/unit/test_auth_api.py
tests/unit/test_catalyst_tools.py
tests/unit/test_charter_tools.py
tests/unit/test_chat_session.py
tests/unit/test_cli_workflow.py
tests/unit/test_config.py
tests/unit/test_control_plane_api.py
tests/unit/test_db_cli.py
tests/unit/test_db_config.py
tests/unit/test_delete_endpoints.py
tests/unit/test_demo.py
tests/unit/test_errors.py
tests/unit/test_events.py
tests/unit/test_factory.py
tests/unit/test_gsheets_tools.py
tests/unit/test_handlers.py
tests/unit/test_import_smoke.py
tests/unit/test_llm.py
tests/unit/test_llm_config.py
tests/unit/test_llm_factory.py
tests/unit/test_local_provider.py
tests/unit/test_middleware.py
tests/unit/test_observability.py
tests/unit/test_openai_compat_provider.py
tests/unit/test_repositories.py
tests/unit/test_runners.py
tests/unit/test_services_workflows.py
tests/unit/test_stator_tools.py
tests/unit/test_sub_node_resolution.py
tests/unit/test_supervisor.py
tests/unit/test_tool_node.py
tests/unit/test_tools.py
tests/unit/test_transport.py
tests/unit/test_types.py
tests/unit/test_workflow_api.py
tests/unit/test_workflow_config_loader.py
tests/unit/test_workflow_config_models.py
tests/unit/test_workflow_context.py
tests/unit/test_workflow_converter.py
tests/unit/test_workflow_engine.py
tests/unit/test_workflow_expressions.py
tests/unit/test_workflow_llm_node.py
tests/unit/test_workflow_loop_node.py
tests/unit/test_workflow_map_node.py
tests/unit/test_workflow_memory_node.py
tests/unit/test_workflow_nodes.py
tests/unit/test_workflow_persistence.py
tests/unit/test_workflow_registry.py
tests/unit/test_workflow_router_node.py
tests/unit/test_workflow_templates.py
tests/unit/test_workflow_types.py