agentflow-runtime 1.1.0__tar.gz → 1.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/.gitignore +4 -0
  2. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/CHANGELOG.md +152 -2
  3. agentflow_runtime-1.3.0/PKG-INFO +255 -0
  4. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/README.md +37 -21
  5. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/pyproject.toml +40 -6
  6. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/processing/outbox.py +2 -1
  7. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/quality/monitors/freshness_monitor.py +1 -1
  8. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/quality/validators/schema_validator.py +3 -3
  9. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/analytics.py +9 -7
  10. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/auth/key_rotation.py +3 -2
  11. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/auth/manager.py +3 -0
  12. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/auth/middleware.py +14 -4
  13. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/routers/admin_ui.py +2 -1
  14. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/routers/lineage.py +9 -3
  15. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/routers/stream.py +4 -1
  16. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/security.py +13 -2
  17. agentflow_runtime-1.3.0/src/serving/audit_publisher.py +80 -0
  18. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/backends/duckdb_backend.py +2 -1
  19. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/cache.py +10 -1
  20. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/db_pool.py +3 -1
  21. agentflow_runtime-1.3.0/src/serving/duckdb_connection.py +72 -0
  22. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/semantic_layer/entity_type_registry.py +3 -1
  23. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/semantic_layer/query/engine.py +2 -1
  24. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/semantic_layer/search_index.py +2 -0
  25. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/semantic_layer/sql_guard.py +25 -0
  26. agentflow_runtime-1.1.0/PKG-INFO +0 -55
  27. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/LICENSE +0 -0
  28. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/requirements.txt +0 -0
  29. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/__init__.py +0 -0
  30. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/constants.py +0 -0
  31. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/ingestion/__init__.py +0 -0
  32. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/ingestion/cdc/__init__.py +0 -0
  33. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/ingestion/cdc/normalizer.py +0 -0
  34. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/ingestion/connectors/__init__.py +0 -0
  35. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/ingestion/connectors/mysql_cdc.py +0 -0
  36. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/ingestion/connectors/postgres_cdc.py +0 -0
  37. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/ingestion/producers/__init__.py +0 -0
  38. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/ingestion/producers/event_producer.py +0 -0
  39. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/ingestion/schemas/__init__.py +0 -0
  40. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/ingestion/schemas/events.py +0 -0
  41. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/ingestion/tenant_router.py +0 -0
  42. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/logger.py +0 -0
  43. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/orchestration/__init__.py +0 -0
  44. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/orchestration/dags/__init__.py +0 -0
  45. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/orchestration/dags/daily_batch.py +0 -0
  46. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/processing/__init__.py +0 -0
  47. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/processing/event_replayer.py +0 -0
  48. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/processing/flink_jobs/Dockerfile +0 -0
  49. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/processing/flink_jobs/__init__.py +0 -0
  50. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/processing/flink_jobs/checkpointing.py +0 -0
  51. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/processing/flink_jobs/session_aggregation.py +0 -0
  52. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/processing/flink_jobs/session_aggregator.py +0 -0
  53. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/processing/flink_jobs/stream_processor.py +0 -0
  54. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/processing/iceberg_sink.py +0 -0
  55. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/processing/local_pipeline.py +0 -0
  56. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/processing/tracing.py +0 -0
  57. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/processing/transformations/__init__.py +0 -0
  58. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/processing/transformations/enrichment.py +0 -0
  59. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/quality/__init__.py +0 -0
  60. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/quality/monitors/__init__.py +0 -0
  61. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/quality/monitors/metrics_collector.py +0 -0
  62. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/quality/validators/__init__.py +0 -0
  63. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/quality/validators/semantic_validator.py +0 -0
  64. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/__init__.py +0 -0
  65. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/__init__.py +0 -0
  66. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/alert_dispatcher.py +0 -0
  67. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/alerts/__init__.py +0 -0
  68. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/alerts/dispatcher.py +0 -0
  69. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/alerts/escalation.py +0 -0
  70. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/alerts/evaluator.py +0 -0
  71. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/alerts/history.py +0 -0
  72. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/auth/__init__.py +0 -0
  73. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/main.py +0 -0
  74. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/middleware/logging.py +0 -0
  75. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/middleware/tracing.py +0 -0
  76. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/rate_limiter.py +0 -0
  77. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/routers/__init__.py +0 -0
  78. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/routers/admin.py +0 -0
  79. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/routers/agent_query.py +0 -0
  80. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/routers/alerts.py +0 -0
  81. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/routers/batch.py +0 -0
  82. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/routers/contracts.py +0 -0
  83. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/routers/deadletter.py +0 -0
  84. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/routers/search.py +0 -0
  85. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/routers/slo.py +0 -0
  86. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/routers/webhooks.py +0 -0
  87. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/telemetry.py +0 -0
  88. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/templates/admin.html +0 -0
  89. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/versioning.py +0 -0
  90. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/api/webhook_dispatcher.py +0 -0
  91. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/backends/__init__.py +0 -0
  92. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/backends/clickhouse_backend.py +0 -0
  93. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/masking.py +0 -0
  94. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/semantic_layer/__init__.py +0 -0
  95. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/semantic_layer/catalog.py +0 -0
  96. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/semantic_layer/contract_registry.py +0 -0
  97. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/semantic_layer/nl_engine.py +0 -0
  98. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/semantic_layer/query/__init__.py +0 -0
  99. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/semantic_layer/query/contracts.py +0 -0
  100. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/semantic_layer/query/entity_queries.py +0 -0
  101. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/semantic_layer/query/metric_queries.py +0 -0
  102. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/semantic_layer/query/nl_queries.py +0 -0
  103. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/semantic_layer/query/sql_builder.py +0 -0
  104. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/semantic_layer/query/sql_guard.py +0 -0
  105. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/semantic_layer/query_engine.py +0 -0
  106. {agentflow_runtime-1.1.0 → agentflow_runtime-1.3.0}/src/serving/semantic_layer/schema_evolution.py +0 -0
@@ -72,6 +72,7 @@ mutants/
72
72
  /rep.md
73
73
  /more_help.md
74
74
  /About_DE_project.md
75
+ /audit_*.md
75
76
  /RELEASING.md
76
77
  sdk/agentflow/**/__pycache__/
77
78
  sdk/agentflow/**/*.py[cod]
@@ -84,5 +85,8 @@ integrations/agentflow_integrations/**/*.py[cod]
84
85
  agentflow_bench_debug*.duckdb*
85
86
  agentflow_demo_api.duckdb*
86
87
 
88
+ # Local autopilot runtime state.
89
+ .autopilot/
90
+
87
91
  # Security scan workdir (generated by .github/workflows/security.yml safety job)
88
92
  .tmp-security/
@@ -4,6 +4,122 @@ All notable changes to AgentFlow are documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [1.3.0] - 2026-05-24
8
+
9
+ ### Added
10
+
11
+ - A04 chart hardening: `helm/kafka-connect/` now ships NetworkPolicy +
12
+ PodDisruptionBudget + pod/container securityContext + `/tmp` memory
13
+ emptyDir (parity with `helm/agentflow`). All five primitives are
14
+ required by `values.schema.json` and off-by-default for backwards
15
+ compatibility on existing clusters; production switches them on via
16
+ `values-staging.yaml`-style overlays. See
17
+ `docs/operations/cdc-production-onboarding.md` § Chart hardening
18
+ baseline for the production switch-on recommendations.
19
+ - A05 live-validation coverage extended: the
20
+ `tests/integration/test_helm_values_live_validation.py` suite is
21
+ now parametrized across both `helm/agentflow` and `helm/kafka-connect`
22
+ charts, running lint + install --dry-run against the live kind
23
+ cluster with valid + invalid value fixtures each.
24
+ - A05 reuse-cluster mode: `conftest.kind_cluster` honours
25
+ `AGENTFLOW_LIVE_REUSE_CLUSTER=1` to skip the kind create/delete cycle
26
+ and validate against an active `KUBECONFIG` context. Lets the
27
+ schema gates run against managed staging clusters (EKS/GKE/AKS)
28
+ without provisioning a throwaway kind cluster.
29
+
30
+ ### Changed
31
+
32
+ - A03 CI hardware-gap acceptance: Load Test gates raised to 1.3x the
33
+ 2026-04-25 CI baseline (entity p99 750 → 900 ms, query/batch
34
+ 1000 → 1200 ms). Local SLO p99 < 200 ms unchanged. Decision record
35
+ + alternatives considered: `docs/perf/ci-hardware-gap-2026-05-24.md`.
36
+
37
+ ### Documentation
38
+
39
+ - DV2 web-UI screencast (`docs/dv2-multi-branch/demo_webui.mp4`,
40
+ ~60 s, 1.6 MB) — Playwright run through Argo workflow archive
41
+ (4× successful `dv2-refresh` runs + DAG drill-in on the latest) and
42
+ the MinIO `cold-tier` bucket browser (5 per-branch prefixes), with
43
+ a Russian TTS voice-over. Reproducer:
44
+ `docs/dv2-multi-branch/demo_webui.capture.py` plus the same
45
+ edge-tts + ffmpeg pipeline as the terminal cast.
46
+ - DV2 dbt docs screencast (`docs/dv2-multi-branch/demo_dbt_docs.mp4`,
47
+ ~55 s, 1.7 MB) — Playwright walk-through of the auto-generated dbt
48
+ docs site: project tree → `customer_360` columns/description →
49
+ `branch_pnl` with the `rv.bv_order_canonical → branch_pnl` lineage
50
+ graph → `returns_velocity` with lineage. Companion Pod manifest
51
+ `infrastructure/dv2/dbt/dbt-docs-pod.yaml` runs `dbt docs generate`
52
+ + `dbt docs serve --port 8080 --host 0.0.0.0` against the in-cluster
53
+ ClickHouse. Reproducer: `demo_dbt_docs.capture.py` plus the same
54
+ TTS pipeline.
55
+ - Cross-link `docs/plans/2026-04-debezium-kafka-connect-deployment-plan.md`
56
+ to `docs/operations/cdc-production-onboarding.md` (production source
57
+ onboarding still blocked on decision-record fill-in) and note that
58
+ the DV2 demo uses ClickHouse `MaterializedPostgreSQL` as a
59
+ single-node alternative, not a production replacement for
60
+ Debezium/Kafka Connect.
61
+ - Exploration archive: `docs/exploration/2026-05/` collects three
62
+ stale May-6/7 docs-site drafts (`astro_prompt.md`, `kimi.md`,
63
+ `research.md`) that had been sitting untracked in the repo root.
64
+
65
+ ### Fixed
66
+
67
+ - Typed `RetryPolicy.compute_delay()` intermediate `base` in
68
+ `sdk/agentflow/retry.py` so the function no longer returns
69
+ `Any`; SDK mypy is now strict-clean.
70
+ - CI / release / packaging lessons-learned document
71
+ (`docs/lessons/ci-repair-sprint-2026-04.md`) — seven concrete
72
+ Lesson / Apply / Concrete-trace entries covering A06 dependency
73
+ profiles, single-run baseline anti-pattern, FastAPI version drift,
74
+ PyPI namespace pre-claim, required-check self-reference deadlock,
75
+ fail-closed auth + `/v1/health` exemption, and the DV2 voice-over
76
+ pipeline.
77
+
78
+ ## [1.2.0] - 2026-05-23
79
+
80
+ ### Documentation
81
+
82
+ - Documented the demo-key requirement, current DuckDB/ClickHouse serving
83
+ story, Docker Redis dependency for the local demo, example-agent dry-run
84
+ flow, and local compose environment placeholders.
85
+ - Refreshed release, SDK, and integrations docs after the live v1.1.0
86
+ registry publish: README status, release-readiness handoff, SDK README,
87
+ integrations local-install note, and the T31 task closeout now match the
88
+ current post-release state.
89
+ - Prepared npm publishing for Trusted Publishing through GitHub Actions OIDC:
90
+ the TypeScript SDK publish workflow now requires npm CLI 11.5.1+ and no
91
+ longer passes `NPM_TOKEN` to the production `npm publish` step.
92
+ - Recorded the npm Trusted Publishing handoff: the new package was first
93
+ published as `@yuliaedomskikh/agentflow-client@1.1.0`, Trusted Publisher
94
+ setup succeeded for `brownjuly2003-code/agentflow` with workflow
95
+ `publish-npm.yml`, CLI `npm trust list` readback is complete, and future
96
+ recovery-code use must keep a two-code reserve through the
97
+ `npm-recovery-codes` skill.
98
+ - Documented the completed replacement npm account bootstrap for
99
+ `yulia.edomskikh@gmail.com`, the saved 2FA recovery-code reserve, and the
100
+ switch of future TypeScript SDK publishing to
101
+ `@yuliaedomskikh/agentflow-client`.
102
+ - Clarified that legacy `NPM_TOKEN` revocation remains blocked until a
103
+ successful trusted-publish workflow run for `@yuliaedomskikh/agentflow-client`
104
+ and accepted external-gate intake evidence exist.
105
+ - Added a project-local Pi skill at `.pi/skills/external-gate-evidence-intake`
106
+ for external release-gate evidence intake without adding runtime dependencies.
107
+ - Added a production CDC onboarding runbook that blocks real source attachment
108
+ until source ownership, table scope, network path, credential ownership,
109
+ monitoring, and rollback decisions are recorded.
110
+
111
+ ### Fixed
112
+
113
+ - Treated corrupt Redis cache payloads as cache misses instead of surfacing
114
+ JSON decode failures to API requests.
115
+ - Fixed TypeScript SDK SSE parsing so a final frame with `id:` or `event:`
116
+ metadata before `data:` is still emitted.
117
+ - Made the TypeScript SDK unit-test script include all `sdk-ts/tests` files and
118
+ included `CHANGELOG.md` in the npm dry-run package contents.
119
+ - Allowed packaged SDK starter templates to include placeholder
120
+ `.env.example.tmpl` files while keeping the release artifact checker strict
121
+ for real `.env` files, API-key configs, webhook configs, and secret paths.
122
+
7
123
  ### Security (audit follow-up sprint 2026-04-27/28)
8
124
 
9
125
  Two external audits delivered against `4a13d36` (Claude Opus + Codex p1–p9,
@@ -78,7 +194,10 @@ off by default (enable per cluster).
78
194
  `npm ci` + `npm test` + `npm audit` before publish. New `npm-audit` job
79
195
  added to `security.yml`. `aquasecurity/trivy-action` pinned from
80
196
  `@master` to `0.28.0`. Safety scope now includes
81
- `integrations/pyproject.toml` resolved requirements.
197
+ `integrations/pyproject.toml` resolved requirements. TypeScript SDK npm
198
+ publishing now targets `@yuliaedomskikh/agentflow-client` because npm org scope
199
+ `@agentflow` is already owned by another project and the previous user scope is
200
+ legacy.
82
201
 
83
202
  **Vulnerable dep bumps:** `dagster>=1.13.1` (GHSA-mjw2-v2hm-wj34
84
203
  SQL injection via dynamic partition keys), `langchain-core>=1.2.22`
@@ -147,7 +266,7 @@ so the test bypass flag does not leak across `TestClient` instances
147
266
  (closes Codex review P2 on auth/middleware persistence).
148
267
 
149
268
  **Documentation hygiene (Codex p6):** TypeScript SDK examples now
150
- import from `"@agentflow/client"` (was `"agentflow"`); placeholder
269
+ import from `"@yuliaedomskikh/agentflow-client"` (was `"agentflow"`); placeholder
151
270
  `https://api.agentflow.dev` examples replaced with
152
271
  `http://localhost:8000`; clone URL points at
153
272
  `brownjuly2003-code/agentflow`; `docs/quality.md` marked stale;
@@ -172,6 +291,37 @@ README that maps findings to the six closing commits.
172
291
 
173
292
  ### Added
174
293
 
294
+ - **DV2.0 multi-branch demo** (merged via `ddfb863` from
295
+ `feat/dv2-multi-branch`, sessions 1-5). Live Data Vault 2.0
296
+ warehouse on a self-hosted kind cluster with ClickHouse 25.5,
297
+ Postgres 17, and MinIO. Five branches (MSK / SPB / EKB / DXB / ALA),
298
+ three source systems (1C + Bitrix24 + WMS Excel), three jurisdictions
299
+ (RU / UAE / KZ). Artifacts:
300
+ - `warehouse/agentflow/dv2/raw_vault/` — 8 hubs + 8 links + 39
301
+ satellites (generator + jinja template + spec.yaml).
302
+ - `warehouse/agentflow/dv2/business_vault/` — 5 per-branch MDM views
303
+ plus `bv_order_canonical` with `*_source` audit columns.
304
+ - `infrastructure/dv2/` — kind topology, ClickHouse / Postgres / MinIO
305
+ StatefulSets, dbt mart runner, Argo Workflows installer and
306
+ `dv2-refresh` WorkflowTemplate, cold-offload CronJob fanout (5).
307
+ - `warehouse/agentflow/dv2/postgres_oltp/` — pull-based PostgreSQL()
308
+ bridge + push-based MaterializedPostgreSQL CDC (single-DB pattern).
309
+ - `warehouse/agentflow/dv2/postgres_oltp/fanout/` — per-branch CDC
310
+ fan-out via per-database split (`ops_msk_db`, `ops_dxb_db` →
311
+ `oltp_cdc_msk`, `oltp_cdc_dxb`). Native workaround for the
312
+ `materialized_postgresql_publication_name` setting being unsupported
313
+ in ClickHouse 25.5; PeerDB OSS was the originally-planned route but
314
+ does not fit on the 8 GB demo iMac alongside kind + CH + PG + MinIO.
315
+ - `warehouse/agentflow/dv2/dbt/` — three mart models
316
+ (`customer_360`, `branch_pnl`, `returns_velocity`) with 12 data
317
+ tests and a k8s Job runner.
318
+ - `docs/dv2-multi-branch/` — architecture diagram, demo evidence
319
+ (15 sections), 2-minute pitch script, recording-day runbook,
320
+ asciinema cast (`demo.cast`, 42 s, 130×35) plus runner, plain-text
321
+ transcript, self-contained HTML player embed, and a voice-over
322
+ MP4 (`demo_voiced.mp4`, ~92 s) — cast slowed to match a Russian
323
+ TTS narration of the pitch (reproducible via
324
+ `docs/dv2-multi-branch/build/build_voiced_demo.sh`).
175
325
  - **Debezium/Kafka Connect CDC operationalization**: local compose now
176
326
  brings up Postgres/MySQL source databases, Kafka Connect, Debezium
177
327
  connector registration, and raw CDC topic bootstrap for the AgentFlow
@@ -0,0 +1,255 @@
1
+ Metadata-Version: 2.4
2
+ Name: agentflow-runtime
3
+ Version: 1.3.0
4
+ Summary: Real-time data platform serving context to AI agents
5
+ License: MIT
6
+ License-File: LICENSE
7
+ Requires-Python: >=3.11
8
+ Requires-Dist: bcrypt<6,>=5
9
+ Requires-Dist: confluent-kafka<3,>=2.5
10
+ Requires-Dist: dagster<2,>=1.13.1
11
+ Requires-Dist: duckdb<2,>=1.1
12
+ Requires-Dist: fastapi<1,>=0.111
13
+ Requires-Dist: httpx<1,>=0.27
14
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc<2,>=1.41
15
+ Requires-Dist: opentelemetry-instrumentation-fastapi<1,>=0.62b0
16
+ Requires-Dist: opentelemetry-instrumentation-httpx<1,>=0.62b0
17
+ Requires-Dist: opentelemetry-sdk<2,>=1.41
18
+ Requires-Dist: pandera<1,>=0.20
19
+ Requires-Dist: prometheus-client<1,>=0.21
20
+ Requires-Dist: pyarrow<19,>=17
21
+ Requires-Dist: pydantic-settings<3,>=2.5
22
+ Requires-Dist: pydantic<3,>=2.9
23
+ Requires-Dist: pyyaml<7,>=6
24
+ Requires-Dist: sqlglot<31,>=30
25
+ Requires-Dist: structlog<26,>=24.4
26
+ Requires-Dist: uvicorn[standard]<1,>=0.30
27
+ Provides-Extra: cloud
28
+ Requires-Dist: boto3<2,>=1.35; extra == 'cloud'
29
+ Requires-Dist: pyiceberg[pyiceberg-core]<1,>=0.7; extra == 'cloud'
30
+ Provides-Extra: contract
31
+ Requires-Dist: schemathesis==4.10.2; extra == 'contract'
32
+ Provides-Extra: dev
33
+ Requires-Dist: bandit<2,>=1.9; extra == 'dev'
34
+ Requires-Dist: build<2,>=1.2; extra == 'dev'
35
+ Requires-Dist: hatchling<2,>=1.25; extra == 'dev'
36
+ Requires-Dist: hypothesis<7,>=6; extra == 'dev'
37
+ Requires-Dist: jsonschema<5,>=4; extra == 'dev'
38
+ Requires-Dist: mypy<2,>=1.11; extra == 'dev'
39
+ Requires-Dist: pytest-asyncio<1,>=0.24; extra == 'dev'
40
+ Requires-Dist: pytest-cov<6,>=5; extra == 'dev'
41
+ Requires-Dist: pytest<9,>=8.3; extra == 'dev'
42
+ Requires-Dist: ruff<1,>=0.6; extra == 'dev'
43
+ Requires-Dist: testcontainers[kafka]<5,>=4.9; extra == 'dev'
44
+ Provides-Extra: flink
45
+ Requires-Dist: apache-flink==1.19.1; extra == 'flink'
46
+ Provides-Extra: integrations
47
+ Requires-Dist: langchain-core<2,>=1.2.22; extra == 'integrations'
48
+ Requires-Dist: langchain-text-splitters<2,>=1.1.2; extra == 'integrations'
49
+ Requires-Dist: langchain<2,>=0.3.30; extra == 'integrations'
50
+ Requires-Dist: langsmith<1,>=0.7.31; extra == 'integrations'
51
+ Requires-Dist: llama-index-core<1,>=0.12; extra == 'integrations'
52
+ Provides-Extra: llm
53
+ Requires-Dist: anthropic<1,>=0.39; extra == 'llm'
54
+ Provides-Extra: load
55
+ Requires-Dist: locust<3,>=2.29; extra == 'load'
56
+ Description-Content-Type: text/markdown
57
+
58
+ # AgentFlow
59
+
60
+ > Real-time data platform for AI agents. Live entity lookups, typed contracts, dual-language SDKs, and release-gated delivery.
61
+
62
+ [![Release gate](https://img.shields.io/badge/release_gate-v1.1_published-brightgreen)](docs/release-readiness.md)
63
+ [![codecov](https://codecov.io/gh/brownjuly2003-code/agentflow/branch/main/graph/badge.svg)](https://codecov.io/gh/brownjuly2003-code/agentflow)
64
+ [![Python](https://img.shields.io/badge/python-3.11+-blue)](pyproject.toml)
65
+ [![License](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
66
+
67
+ ## Why this exists
68
+
69
+ Most agent demos work until they have to answer from live business state. Support, ops, and merch workflows need current orders, metrics, and health signals while the conversation is happening, not a stale warehouse snapshot and not a pile of one-off service adapters.
70
+
71
+ AgentFlow turns that problem into one serving boundary:
72
+
73
+ - streaming ingestion for operational events
74
+ - a semantic layer that exposes entities, metrics, and query endpoints
75
+ - typed contracts so SDKs and callers know what shape to expect
76
+ - Python and TypeScript clients that speak the same API surface
77
+
78
+ ## Highlights
79
+
80
+ - **Release-line gate:** 752 passed, 4 skipped on 2026-05-04; GitHub environments `staging` and `production` have required reviewers. The 2026-04-27 audit closure sprint (Codex p1–p9 + Opus) shipped six commits closing all P0/P1/P2 findings — see [docs/audits/2026-04-27/README.md](docs/audits/2026-04-27/README.md) and Release Readiness for the live status
81
+ - **Sub-second entity lookups in the checked-in baseline**: entity p50 `38-55 ms`, entity p99 `290-320 ms`, aggregate p50 `56 ms` at `50` users for `60s`
82
+ - **Historical performance remediation is documented**: the serving path moved from an original ~`26,000 ms` baseline to the current `43-55 ms` release range
83
+ - **Dual SDK parity** for Python and TypeScript, including retry policies, circuit breakers, batching, pagination, and contract pinning
84
+ - **Postgres/MySQL CDC path** through Debezium and Kafka Connect, with local compose, Helm manifests, and canonical CDC normalization
85
+ - **Security hardening in the hot path**: parameterized queries, `sqlglot` AST validation for NL-to-SQL, and a Bandit baseline gate for new findings only
86
+ - **Release workflow coverage**: chaos smoke on PRs, performance regression gate, contract drift checks, and a Terraform apply workflow with OIDC-ready auth
87
+
88
+ ## Quick start
89
+
90
+ > **Upgrading from v1.0.x?** See the [v1.1 migration guide](docs/migration/v1.1.md) before installing.
91
+
92
+ Prerequisites:
93
+
94
+ - Python `3.11+`
95
+ - `make`
96
+ - Docker Compose (`make demo` starts Redis)
97
+
98
+ PowerShell 7+:
99
+
100
+ ```powershell
101
+ git clone https://github.com/brownjuly2003-code/agentflow.git
102
+ cd agentflow
103
+ . .\scripts\setup.ps1
104
+ make demo
105
+ ```
106
+
107
+ macOS / Linux:
108
+
109
+ ```bash
110
+ git clone https://github.com/brownjuly2003-code/agentflow.git
111
+ cd agentflow
112
+ source ./scripts/setup.sh
113
+ make demo
114
+ ```
115
+
116
+ `make demo` seeds local data, starts Redis, and serves the API on `http://localhost:8000`. Swagger UI is available at `http://localhost:8000/docs`.
117
+
118
+ Try it:
119
+
120
+ ```bash
121
+ curl http://localhost:8000/v1/entity/order/ORD-20260404-1001
122
+
123
+ curl -X POST http://localhost:8000/v1/query \
124
+ -H "Content-Type: application/json" \
125
+ -d '{"question":"Show me top 3 products"}'
126
+ ```
127
+
128
+ Local demo runs without API-key enforcement unless you explicitly configure `AGENTFLOW_API_KEYS_FILE`.
129
+
130
+ ## Architecture
131
+
132
+ ```text
133
+ Event sources -> Kafka -> Flink -> Iceberg ----\
134
+ -> Semantic layer -> FastAPI -> Agent / SDK
135
+ Local demo -> local_pipeline -> DuckDB ------/
136
+ ```
137
+
138
+ Stack:
139
+
140
+ - **Ingestion**: Kafka producers, Debezium/Kafka Connect CDC, and a local synthetic pipeline
141
+ - **Processing**: Flink plus validation and enrichment stages
142
+ - **Storage**: Iceberg for production-shaped tables, DuckDB for the local serving path
143
+ - **Serving**: FastAPI, contract registry, lineage, search, and operational endpoints
144
+ - **Orchestration**: Dagster
145
+ - **IaC**: Terraform, Helm, Docker Compose, and a Fly.io demo config
146
+
147
+ See [docs/architecture.md](docs/architecture.md) for the detailed design, trade-offs, and deployment topologies.
148
+
149
+ CDC source capture is standardized on Debezium/Kafka Connect; downstream consumers use the canonical AgentFlow CDC contract defined in [ADR 0005](docs/decisions/0005-cdc-ingestion-strategy.md).
150
+
151
+ ## What's inside
152
+
153
+ | Area | Files |
154
+ |------|-------|
155
+ | API core | `src/serving/api/` |
156
+ | Semantic layer | `src/serving/semantic_layer/` |
157
+ | Python SDK | `sdk/agentflow/` |
158
+ | TypeScript SDK | `sdk-ts/src/` |
159
+ | Agent integrations | `integrations/agentflow_integrations/` (LangChain, LlamaIndex, CrewAI, MCP) |
160
+ | Flink jobs | `src/processing/flink_jobs/` |
161
+ | Test suites | `tests/` |
162
+ | Planning trail | `docs/plans/` |
163
+ | Public site | `site/` |
164
+ | IaC | `infrastructure/terraform/`, `infrastructure/dv2/`, `helm/`, `k8s/` |
165
+ | DV2.0 warehouse | `warehouse/agentflow/dv2/` (hubs / links / satellites + X5 loader) |
166
+
167
+ ## Documentation
168
+
169
+ - [Interactive Technical Walkthrough](docs/index.md) - MkDocs Material guide with Mermaid architecture, API, SDK, deployment, observability, and troubleshooting pages
170
+ - [Architecture](docs/architecture.md) - system context, data flow, failure modes
171
+ - [Operational Runbook](docs/runbook.md) - local stack, CDC capture, incident response, and maintenance commands
172
+ - [API Reference](docs/api-reference.md) - endpoint-by-endpoint examples for curl, Python, and TypeScript
173
+ - [Security Audit](docs/security-audit.md) - threat model, controls, and evidence
174
+ - [Competitive Analysis](docs/competitive-analysis.md) - positioning and trade-offs
175
+ - [CDC Deployment Plan](docs/plans/2026-04-debezium-kafka-connect-deployment-plan.md) - Debezium/Kafka Connect rollout decisions and implementation trail
176
+ - [Glossary](docs/glossary.md) - interview-ready explanations of the core technical terms
177
+ - [Release Readiness](docs/release-readiness.md) - checked release evidence through `v1.1.0` and current external-gate handoffs
178
+ - [Customer Discovery Tracker](docs/customer-discovery-tracker.md) - synthetic/modelled PMF planning surface and real-evidence gap
179
+ - [Pricing Validation Plan](docs/pricing-validation-plan.md) - pricing/WTP questions, evidence gates, and current real-evidence gap
180
+ - [AWS OIDC Setup](docs/operations/aws-oidc-setup.md) - Terraform apply readiness handoff
181
+ - [Immutable Retention Evidence Handoff](docs/operations/immutable-retention-evidence-handoff.md) - external audit-retention evidence checklist
182
+ - [Production CDC Source Onboarding](docs/operations/cdc-production-onboarding.md) - production CDC decision record and no-go gates
183
+ - [External Gate Evidence Intake Checklist](docs/operations/external-gate-evidence-intake.md) - required owner evidence before blocked external gates can close
184
+ - [Public Production-Hardware Benchmark Plan](docs/perf/public-production-hardware-benchmark-plan.md) - benchmark evidence plan for `c8g.4xlarge+`
185
+ - [External Pen-Test Attestation Handoff](docs/operations/external-pen-test-attestation-handoff.md) - third-party pen-test evidence checklist
186
+ - [Audit History](docs/audit-history.md) - baseline-to-release remediation trail
187
+ - [Publication Checklist](docs/publication-checklist.md) - final GitHub publishing checklist
188
+ - [Fly.io Demo Deploy](deploy/fly/README.md) - minimal hosted demo instructions
189
+ - [DV2.0 Multi-Branch Extension](docs/dv2-multi-branch/SESSION_HANDOFF.md) - Data Vault 2.0 model for mid-market e-com with 5 locations / 3 jurisdictions; [schema](docs/dv2-multi-branch/schema_dv2.md), [end-to-end flow](docs/dv2-multi-branch/architecture.md), [live demo evidence](docs/dv2-multi-branch/demo_evidence.md), [k8s manifests](infrastructure/dv2/README.md)
190
+ - [Contributing](CONTRIBUTING.md) - development and PR expectations
191
+ - [Changelog](CHANGELOG.md) - project release notes
192
+
193
+ ## Development
194
+
195
+ ```bash
196
+ # verified release slice
197
+ python -m pytest tests/unit tests/integration tests/sdk -q
198
+
199
+ # benchmark and regression gate
200
+ python scripts/run_benchmark.py
201
+ python scripts/check_performance.py --baseline docs/benchmark-baseline.json --current .artifacts/load/results.json --max-regress 20
202
+
203
+ # benchmark trend: [.github/perf-history.json](.github/perf-history.json) is appended on every main push;
204
+ # render the history locally with `make perf-plot` (writes docs/perf/history.html).
205
+
206
+ # contracts and security
207
+ python scripts/generate_contracts.py --check
208
+ bandit -r src sdk --ini .bandit --severity-level medium -f json -o .tmp/bandit-current.json
209
+ python scripts/bandit_diff.py .bandit-baseline.json .tmp/bandit-current.json
210
+ ```
211
+
212
+ ## Status
213
+
214
+ **v1.1.0** is published to PyPI, npm, and GitHub.
215
+ The 2026-04-27 audit closure sprint landed six commits on `main`
216
+ that close all P0/P1/P2 findings from the Claude
217
+ Opus + Codex p1–p9 audits: tenant isolation across the control plane,
218
+ SQL guard centralization, entity allowlist enforcement on every read
219
+ surface, secrets scrubbed and rotated, helm `runAsNonRoot` /
220
+ NetworkPolicy / PodDisruptionBudget, npm lockfile + `npm audit` clean,
221
+ vulnerable dep bumps (`dagster>=1.13.1`, `langchain-core>=1.2.22`),
222
+ trivy pinned, OpenAPI drift gate, branch protection with 12 required
223
+ status checks, GitHub Actions environment reviewers, and Python SDK
224
+ alignment with the server v1 contract (F1–F10). Recent local full-suite
225
+ verification: `752 passed, 4 skipped` on 2026-05-04 after clarifying the
226
+ external-gate handoff. The post-v1.1 CDC operationalization
227
+ for Debezium / Kafka Connect is checked in, while production source
228
+ onboarding remains pending; see [docs/release-readiness.md](docs/release-readiness.md).
229
+ Remaining external gates are AWS OIDC role setup for real Terraform apply,
230
+ external immutable audit retention if claimed beyond local hash-chain evidence,
231
+ production CDC source onboarding, real PMF/pricing evidence, public benchmark
232
+ publication on production hardware, external pen-test attestation, and legacy
233
+ npm `NPM_TOKEN` revocation after a successful new-package trusted-publish run.
234
+ npm Trusted Publishing readback for the new package is complete. A project-local
235
+ Pi skill for evidence intake lives at `.pi/skills/external-gate-evidence-intake`.
236
+
237
+ ## Screenshots
238
+
239
+ | Admin UI | API docs |
240
+ |----------|----------|
241
+ | <img src="docs/screenshots/admin-ui.png" alt="AgentFlow admin UI" width="420"> | <img src="docs/screenshots/swagger-docs.png" alt="AgentFlow API docs" width="420"> |
242
+
243
+ | Landing page | Benchmark run |
244
+ |--------------|---------------|
245
+ | <img src="docs/screenshots/landing-page.png" alt="AgentFlow landing page" width="420"> | <img src="docs/screenshots/benchmark-terminal.png" alt="AgentFlow benchmark terminal" width="420"> |
246
+
247
+ Capture notes and publish-time checks are listed in [docs/publication-checklist.md](docs/publication-checklist.md).
248
+
249
+ ## License
250
+
251
+ MIT. See [LICENSE](LICENSE).
252
+
253
+ ## Credits
254
+
255
+ Built as a data-engineering reference project during the `2026-04-10` -> `2026-04-20` release cycle, with the full implementation trail preserved in `docs/plans/`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  > Real-time data platform for AI agents. Live entity lookups, typed contracts, dual-language SDKs, and release-gated delivery.
4
4
 
5
- [![Release gate](https://img.shields.io/badge/release_gate-audit_closed_ready_to_push-brightgreen)](docs/release-readiness.md)
5
+ [![Release gate](https://img.shields.io/badge/release_gate-v1.1_published-brightgreen)](docs/release-readiness.md)
6
6
  [![codecov](https://codecov.io/gh/brownjuly2003-code/agentflow/branch/main/graph/badge.svg)](https://codecov.io/gh/brownjuly2003-code/agentflow)
7
7
  [![Python](https://img.shields.io/badge/python-3.11+-blue)](pyproject.toml)
8
8
  [![License](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
@@ -20,7 +20,7 @@ AgentFlow turns that problem into one serving boundary:
20
20
 
21
21
  ## Highlights
22
22
 
23
- - **Last completed local gate:** 724 passed, 4 skipped on 2026-04-28 at auth-cache commit `97e5d86`. The 2026-04-27 audit closure sprint (Codex p1–p9 + Opus) shipped six commits closing all P0/P1/P2 findings — see [docs/audits/2026-04-27/README.md](docs/audits/2026-04-27/README.md) and Release Readiness for the live status
23
+ - **Release-line gate:** 752 passed, 4 skipped on 2026-05-04; GitHub environments `staging` and `production` have required reviewers. The 2026-04-27 audit closure sprint (Codex p1–p9 + Opus) shipped six commits closing all P0/P1/P2 findings — see [docs/audits/2026-04-27/README.md](docs/audits/2026-04-27/README.md) and Release Readiness for the live status
24
24
  - **Sub-second entity lookups in the checked-in baseline**: entity p50 `38-55 ms`, entity p99 `290-320 ms`, aggregate p50 `56 ms` at `50` users for `60s`
25
25
  - **Historical performance remediation is documented**: the serving path moved from an original ~`26,000 ms` baseline to the current `43-55 ms` release range
26
26
  - **Dual SDK parity** for Python and TypeScript, including retry policies, circuit breakers, batching, pagination, and contract pinning
@@ -104,10 +104,12 @@ CDC source capture is standardized on Debezium/Kafka Connect; downstream consume
104
104
  | Test suites | `tests/` |
105
105
  | Planning trail | `docs/plans/` |
106
106
  | Public site | `site/` |
107
- | IaC | `infrastructure/terraform/`, `helm/`, `k8s/` |
107
+ | IaC | `infrastructure/terraform/`, `infrastructure/dv2/`, `helm/`, `k8s/` |
108
+ | DV2.0 warehouse | `warehouse/agentflow/dv2/` (hubs / links / satellites + X5 loader) |
108
109
 
109
110
  ## Documentation
110
111
 
112
+ - [Interactive Technical Walkthrough](docs/index.md) - MkDocs Material guide with Mermaid architecture, API, SDK, deployment, observability, and troubleshooting pages
111
113
  - [Architecture](docs/architecture.md) - system context, data flow, failure modes
112
114
  - [Operational Runbook](docs/runbook.md) - local stack, CDC capture, incident response, and maintenance commands
113
115
  - [API Reference](docs/api-reference.md) - endpoint-by-endpoint examples for curl, Python, and TypeScript
@@ -115,10 +117,19 @@ CDC source capture is standardized on Debezium/Kafka Connect; downstream consume
115
117
  - [Competitive Analysis](docs/competitive-analysis.md) - positioning and trade-offs
116
118
  - [CDC Deployment Plan](docs/plans/2026-04-debezium-kafka-connect-deployment-plan.md) - Debezium/Kafka Connect rollout decisions and implementation trail
117
119
  - [Glossary](docs/glossary.md) - interview-ready explanations of the core technical terms
118
- - [Release Readiness](docs/release-readiness.md) - checked release evidence through `v1.1.0` and current CDC follow-up work
120
+ - [Release Readiness](docs/release-readiness.md) - checked release evidence through `v1.1.0` and current external-gate handoffs
121
+ - [Customer Discovery Tracker](docs/customer-discovery-tracker.md) - synthetic/modelled PMF planning surface and real-evidence gap
122
+ - [Pricing Validation Plan](docs/pricing-validation-plan.md) - pricing/WTP questions, evidence gates, and current real-evidence gap
123
+ - [AWS OIDC Setup](docs/operations/aws-oidc-setup.md) - Terraform apply readiness handoff
124
+ - [Immutable Retention Evidence Handoff](docs/operations/immutable-retention-evidence-handoff.md) - external audit-retention evidence checklist
125
+ - [Production CDC Source Onboarding](docs/operations/cdc-production-onboarding.md) - production CDC decision record and no-go gates
126
+ - [External Gate Evidence Intake Checklist](docs/operations/external-gate-evidence-intake.md) - required owner evidence before blocked external gates can close
127
+ - [Public Production-Hardware Benchmark Plan](docs/perf/public-production-hardware-benchmark-plan.md) - benchmark evidence plan for `c8g.4xlarge+`
128
+ - [External Pen-Test Attestation Handoff](docs/operations/external-pen-test-attestation-handoff.md) - third-party pen-test evidence checklist
119
129
  - [Audit History](docs/audit-history.md) - baseline-to-release remediation trail
120
130
  - [Publication Checklist](docs/publication-checklist.md) - final GitHub publishing checklist
121
131
  - [Fly.io Demo Deploy](deploy/fly/README.md) - minimal hosted demo instructions
132
+ - [DV2.0 Multi-Branch Extension](docs/dv2-multi-branch/SESSION_HANDOFF.md) - Data Vault 2.0 model for mid-market e-com with 5 locations / 3 jurisdictions; [schema](docs/dv2-multi-branch/schema_dv2.md), [end-to-end flow](docs/dv2-multi-branch/architecture.md), [live demo evidence](docs/dv2-multi-branch/demo_evidence.md), [k8s manifests](infrastructure/dv2/README.md)
122
133
  - [Contributing](CONTRIBUTING.md) - development and PR expectations
123
134
  - [Changelog](CHANGELOG.md) - project release notes
124
135
 
@@ -143,33 +154,38 @@ python scripts/bandit_diff.py .bandit-baseline.json .tmp/bandit-current.json
143
154
 
144
155
  ## Status
145
156
 
146
- **v1.1.0** is prepared in the checked-in repository and ready to publish.
147
- The 2026-04-27 audit closure sprint landed six commits on local `main`
148
- (ahead of `origin`) that close all P0/P1/P2 findings from the Claude
157
+ **v1.1.0** is published to PyPI, npm, and GitHub.
158
+ The 2026-04-27 audit closure sprint landed six commits on `main`
159
+ that close all P0/P1/P2 findings from the Claude
149
160
  Opus + Codex p1–p9 audits: tenant isolation across the control plane,
150
161
  SQL guard centralization, entity allowlist enforcement on every read
151
162
  surface, secrets scrubbed and rotated, helm `runAsNonRoot` /
152
163
  NetworkPolicy / PodDisruptionBudget, npm lockfile + `npm audit` clean,
153
164
  vulnerable dep bumps (`dagster>=1.13.1`, `langchain-core>=1.2.22`),
154
165
  trivy pinned, OpenAPI drift gate, branch protection with 12 required
155
- status checks, and Python SDK alignment with the server v1 contract
156
- (F1–F10). Latest local release-line smoke: `724 passed, 4 skipped`
157
- at auth-cache commit `97e5d86`. The post-v1.1 CDC
158
- operationalization for Debezium / Kafka Connect remains in. Live
159
- release just needs `git push` + `v1.1.0` retag see
160
- [docs/release-readiness.md](docs/release-readiness.md). Remaining open
161
- items are manual environment setup (`staging`/`prod` reviewers, AWS
162
- OIDC role), public benchmark publication on production hardware, and
163
- post-release PMF work.
166
+ status checks, GitHub Actions environment reviewers, and Python SDK
167
+ alignment with the server v1 contract (F1–F10). Recent local full-suite
168
+ verification: `752 passed, 4 skipped` on 2026-05-04 after clarifying the
169
+ external-gate handoff. The post-v1.1 CDC operationalization
170
+ for Debezium / Kafka Connect is checked in, while production source
171
+ onboarding remains pending; see [docs/release-readiness.md](docs/release-readiness.md).
172
+ Remaining external gates are AWS OIDC role setup for real Terraform apply,
173
+ external immutable audit retention if claimed beyond local hash-chain evidence,
174
+ production CDC source onboarding, real PMF/pricing evidence, public benchmark
175
+ publication on production hardware, external pen-test attestation, and legacy
176
+ npm `NPM_TOKEN` revocation after a successful new-package trusted-publish run.
177
+ npm Trusted Publishing readback for the new package is complete. A project-local
178
+ Pi skill for evidence intake lives at `.pi/skills/external-gate-evidence-intake`.
164
179
 
165
180
  ## Screenshots
166
181
 
167
- The repository is prepared for optional README screenshots under `docs/screenshots/`:
182
+ | Admin UI | API docs |
183
+ |----------|----------|
184
+ | <img src="docs/screenshots/admin-ui.png" alt="AgentFlow admin UI" width="420"> | <img src="docs/screenshots/swagger-docs.png" alt="AgentFlow API docs" width="420"> |
168
185
 
169
- - `admin-ui.png`
170
- - `swagger-docs.png`
171
- - `landing-page.png`
172
- - `benchmark-terminal.png`
186
+ | Landing page | Benchmark run |
187
+ |--------------|---------------|
188
+ | <img src="docs/screenshots/landing-page.png" alt="AgentFlow landing page" width="420"> | <img src="docs/screenshots/benchmark-terminal.png" alt="AgentFlow benchmark terminal" width="420"> |
173
189
 
174
190
  Capture notes and publish-time checks are listed in [docs/publication-checklist.md](docs/publication-checklist.md).
175
191