Add fake bank website + admin override event subprocesses + manual review#2
Open
bastiankoerber wants to merge 1 commit into
Open
Add fake bank website + admin override event subprocesses + manual review#2bastiankoerber wants to merge 1 commit into
bastiankoerber wants to merge 1 commit into
Conversation
…ual review
Adds a fully local demo experience:
- **bank-website/** — FastAPI backend (port 9400) + vanilla HTML/CSS/JS
retail-banking UI with embedded support chat widget. Replaces the hosted
chat admin so the demo runs without any cloud dependency.
- Polished fintech dashboard for "Bernd Ruecker" (id 42)
- Chat widget with live process trace panel (BPMN element events streamed
from Camunda REST `/v2/element-instances/search`)
- Conversation persistence via localStorage; SSE reconnect indicator
- /admin route — list active banking-support-agent instances + override
actions (flag fraud, block customer)
- **banking-support-agent.bpmn**
- Stub `Task_LoadCustomerMasterData` JDBC -> noop (no Postgres dependency)
- Bedrock model bumped to Sonnet 4.5 inference profile, topP removed
- Hardcoded `customer` in chat-start ioMapping so chat-driven instances
have the same supportCase shape as email-driven ones
- New **fraud event subprocess** inside ad-hoc:
MCP `freeze_account(CHK042)` -> notify customer -> escalation throw
- New **block customer event subprocess** inside ad-hoc:
MCP `block_customer(42)` (freezes all products) -> harsher notify ->
separate escalation throw
- Two escalation chains on the ad-hoc:
Escalation_AdminOverride (fraud) -> review user task -> approve|reverse
Escalation_CustomerBlocked -> direct terminate (no review)
- Manual review user task `Task_ReviewAdminOverride` + new form
`Form_ReviewOverride.form` (approve termination | reverse via
`unfreeze_account` + apology chat message)
- **account-support-agent.bpmn**
- Remove `Ask for applause` user task
- Patch MCP element template to schema v0@2 (c8run 8.9 compat)
- **customer-communication-{information,question}.bpmn**
- Swap `apiBaseUrl` from hosted Cloud Run admin to local bank-website
- **loan-support-agent.bpmn**
- Stub JDBC + embeddings-vector-database connectors to noop returning []
(avoids `security token included in the request is invalid` incidents
when AWS OpenSearch isn't configured)
- **python-agents/account-management-mcp/**
- New `mock_mcp_server.py` using the official `mcp` Python SDK (FastMCP)
with the same tools as the legacy server plus `block_customer`. The
upstream `account_management_mcp.py`'s SSE handshake sends an absolute
endpoint URL the Camunda MCP client rejects; this rewrite emits the
spec-correct relative endpoint.
- **.gitignore** — exclude .venv/
Verification: see bank-website/README.md for the 3-terminal start procedure
and sample queries (account inquiry, lost card, loan, "Hi" clarification).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a fully local demo experience on top of the existing process:
bank-website/— FastAPI backend (port 9400) + vanilla HTML/CSS/JS retail-banking UI with embedded support chat widget. Replaces the hosted chat admin so the demo runs without any cloud dependency. Includes an/adminpage that lists activebanking-support-agentinstances and lets an operator flag fraud or block a customer (publishes a Camunda message).AI_CustomerSupportAgentad-hoc:Activity_1n42ugn(Fraud Alert) andEventSubProc_BlockCustomer. Both non-interrupting message-start, both throw escalations that are caught by interrupting boundary events on the ad-hoc.Escalation_AdminOverride(fraud) →Task_ReviewAdminOverride(user task + newForm_ReviewOverride.form) → exclusive gateway → approve terminate-end or reverse path that calls MCPunfreeze_account+ sends apology to the customer.Escalation_CustomerBlocked(block) → terminate-end directly (no review, irreversible).Form_ReviewOverride.form— Camunda Form rendered by Tasklist for the reviewer.supportCaseshape as email-driven ones.Task_LoadCustomerMasterData(Postgres) →noop, loan-agent JDBC + vector-DB tasks →noopreturning[], model bumped tous.anthropic.claude-sonnet-4-5-20250929-v1:0inference profile,topPremoved,applauseuser task removed from account-support-agent, MCP element template upgraded to schema v0@2 for c8run 8.9 compatibility.mock_mcp_server.pyunderpython-agents/account-management-mcp/using the officialmcpPython SDK (FastMCP) — emits the spec-correct relative endpoint that Camunda's MCP client expects. Adds new toolblock_customer(customer_id)that blocks all products.apiBaseUrl→http://localhost:9400/api/acrossbanking-support-agent.bpmn,customer-communication-information.bpmn,customer-communication-question.bpmn..gitignore— exclude.venv/.See bank-website/README.md for the architecture diagram, prerequisites, three-terminal start procedure, and sample queries.
Test plan
python3.12 -m venv .venv && .venv/bin/pip install fastapi 'uvicorn[standard]' httpx sse-starletteinsidebank-website/, then.venv/bin/python main.py.python3.12 -m venv .venv && .venv/bin/pip install mcp 'uvicorn[standard]'insidepython-agents/account-management-mcp/, then.venv/bin/python mock_mcp_server.py.cd a2a-connector && mvn -B -q package && java -jar target/*.jar.SECRET_AWS_BEDROCK_ACCESS_KEY+SECRET_AWS_BEDROCK_SECRET_KEYand start c8run.c8ctl deploy camunda-solution/*.bpmn camunda-solution/*.form.http://localhost:9400/, click the chat bubble, type "What are my account details?" — expect agent reply with Bernd's accounts via MCP.http://localhost:9400/adminin another tab. Click 🚨 Flag fraud on the active conversation. Expect:localhost:8080/tasklist(demo/demo) gets a new "Review admin override" taskCOMPLETEDunfreeze_accountruns + apology message arrives in chatblock_customer(42)MCP call (freezes CHK + SAV + CC) + harsher compliance message + process stateCOMPLETED, no user task.localhost:9400/. Previous conversation persists (conversationUUID in localStorage).🤖 Generated with Claude Code