Supply Chain Rescue
A CAP and SAPUI5 demo of recovery from a supply disruption: the server calculates every proposal and an approver applies it, with a battery recall traced in an ABAP system through HANA Graph openCypher.
Disrupt a supplier or a plant in a fictional network of 40 nodes and the app says which motorcycle models are affected and why, then lets a planner pick standby suppliers or a qualified assembly move at another plant; the server calculates the proposal and keeps it pending, and nothing in the network changes until an approver approves it; a rejection or a cancellation leaves the network as it was. The manual flow needs no model, no LLM and no network access on the backend, and each AI part is a separate launch command on top of it: ten past-incident suggestions from one pinned local embedding model, shown as unverified and never changing the preview; a @cap-js/agents@cap-js/agentsSAP's own CDS plugin for building agents inside a CAP service, wired to audit logging and telemetry through peer dependencies rather than leaving observability to the author.sap official, cap agent that proposes one of the listed routes and pauses for an approver; and a background draft that picks at most one comparable incident and sends one approval email. The recall half moves the authority to ABAP: graph queries in SAP HANASAP HANASAP’s relational database platform, which stores application data and executes SQL and SQLScript in the database, available on-premise and as the managed service SAP HANA Cloud.sap official, btp trace a defective cell lot through the battery genealogy in the A4H system, ABAP applies the approved remedies all or nothing, and CAP keeps the plan, the policy and the decisions in SQLiteSQLiteAn embedded SQL database engine used as a selectable local cache store by CAP caching plugins.. What the repository will not claim is written down beside what it does: automatic relevance matching is deferred because its quality gates failed, a planner's incident mark records who judged what rather than that anyone read the incident, and the public profile is code that was never deployed.
Facts
Where it sits
Who is behind it
In the atlas: maintains 1, contributes to 1@Kamilkovmaintainer
Before choosing this
Signals
LicenceNo licenseNeither the package manifest nor the repository tree declares a licence
Without a licence the default is all rights reserved. Ask the maintainer, or check for terms stated elsewhere, before depending on it.
Conditions
PracticalFunctional boundary
The data is illustrative: availability is binary and backup capacity unlimited, and the model carries no inventory; nothing in it is forecast or priced. The recall half runs only against classic ABAP, because its openCypher trace goes through ADBC, which is not released for ABAP Cloud, and it expects an SSH tunnel to the A4H system it was built against. A plain npm start passes no model key, so the agent cannot be used on a server started that way.
What it declares
Every artifact
- Type
- Sample
- Origin
- Independently maintained
- Runtime
- Node.js
As a sample
- Form
- does not say
Connections
SAP's application server and development platform for ABAP. For the things here it is the system a developer's editor or an agent's tool reaches over ADT, and a program calls over RFC; where it runs is the deployment's, as for SAP BW/4HANA.
Anthropic's hosted API for the Claude models, reached at https://api.anthropic.com/v1/messages with a key or through a destination. For the things here it is the model endpoint an ABAP system posts to, under the organisation's own agreement with Anthropic.
A hosted transactional email provider, reached over an HTTP API with a server token. For the things here it is where an application hands over an approval-request email, and the sender keeps the retry rules because the API carries no idempotency key.
Business notifications from CAP to SAP Build WorkZone
CAP Node.js runtime
An embedded SQL database engine used as a selectable local cache store by CAP caching plugins.
CDS plugin for building agents inside a CAP service
SAP's application server and development platform for ABAP. For the things here it is the system a developer's editor or an agent's tool reaches over ADT, and a program calls over RFC; where it runs is the deployment's, as for SAP BW/4HANA.
Anthropic's hosted API for the Claude models, reached at https://api.anthropic.com/v1/messages with a key or through a destination. For the things here it is the model endpoint an ABAP system posts to, under the organisation's own agreement with Anthropic.
A hosted transactional email provider, reached over an HTTP API with a server token. For the things here it is where an application hands over an approval-request email, and the sender keeps the retry rules because the API carries no idempotency key.
SAP's relational database platform, on-premise and in HANA Cloud
Download
README
quoted from Kamilkov/supply-chain-rescue, readSupply Chain Rescue
Disrupt a supplier or plant in a fictional electric motorcycle supply chain, see which models are affected and why, choose standby backups, preview the recovery the server calculates, and approve, reject or cancel it. Decisions are kept. Historical incidents can be browsed with plain filters. Optionally, a planner can ask for unverified past-incident suggestions and mark the ones they judge relevant; the approver sees those marks. An optional recovery agent can propose one of the listed routes; it pauses for an approver, and nothing changes until that person approves. After an approval, a notification for the planning team is printed to the local server console only.
Built with SAP CAP (Node.js 24, SQLite) and SAPUI5 1.136 (Horizon). The manual flow needs no model, no LLM and no network access on the backend (verified by the no-model tests). The optional suggestions use one pinned local model, installed once (see below); the server never downloads it. The optional agent is the only part that calls an LLM over the network (Anthropic, claude-sonnet-5), and only when started with its key (see Recovery agent). The browser is different: SAPUI5 loads from the SAP CDN, so it needs internet access.
Two apps share one backend:
- Presenter (
app/rescue,srv/): the local demo described below. - Public demo (
app/public,srv-public/, profilepublic): a visitor-isolated version with per-visitor runs, Turnstile admission and emailed approval links. It is not deployed anywhere; the code is kept as it was built.
Details
Sources
Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.
Compatibility and provenance
Flavors
“SAP CAP Node.js 10.1 on Node 24, with persistent SQLite.” — Kamilkov/supply-chain-rescue — PRODUCT.md, Stack
“openCypher runs through ADBC (native SQL, classic ABAP only): AMDP rejects it, and ADBC is not released for ABAP Cloud.” — Kamilkov/supply-chain-rescue — README, Recall Rescue (A4H)
History in the atlas
- First seen.
For your agent
- Ref
artifact:kamilkov-supply-chain-rescue- JSON
- /artifacts/kamilkov-supply-chain-rescue.json
- MCP
- Connecting an agent