Skip to content
desanv01Public

About

Payment lifecycle diagnostics with reviewed AI plans, fault scenarios and inspectable evidence | PayPal AI Hackathon 2026

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

PayProbe

Approval is not payment. Delivery needs evidence.
Reviewed test plans, payment-lifecycle fault scenarios and inspectable results in one developer tool.

Built for the PayPal AI Hackathon 2026
Payment lifecycle diagnostics · By Desan Vasu

Narrated 2 minute 50 second demo DeepSeek Flash Payment provider is simulated Source CI MIT license

Features · Demo · Watch video · Get started · DeepSeek & execution · Documentation

Actual PayProbe terminal ledger showing four completed simulated checks and the selected repeated-processing result preserving one entitlement
Actual terminal capture · corrected recorded run · simulated payment provider.

Why PayProbe

A checkout can look successful while delivery is wrong. Approval might unlock a download before capture, repeated processing might grant access twice, or a successful capture with a lost response might leave the application uncertain.

PayProbe turns a digital-purchase requirement into a reviewed scenario plan. A deterministic runner compares application delivery with a separately recorded simulated payment ledger, retains observations and makes each finding inspectable. DeepSeek helps plan and explain; evidence and deterministic checks determine the verdicts.

Current scope: a working local CLI and browser prototype with simulated payments and real DeepSeek API use. Actual PayPal API integration and sandbox verification remain deferred. The submitted PayPal AI Hackathon 2026 entry discloses that boundary.

Features

Review before execution

Generate a bounded scenario plan, inspect the saved draft and explicitly accept it. Execution is bound to that reviewed source.

Exercise four payment boundaries

Check approval without capture, matching capture and delivery, sequential repeat processing, and reconciliation after a suppressed capture response.

Preserve uncertainty

Keep PASS, FAIL, INCONCLUSIVE, UNSUPPORTED and ERROR distinct. Missing evidence and an explanation failure cannot manufacture a successful payment check.

Resume an interrupted run

SQLite retains reviewed plans, operations, observations and run state. Resume the existing case instead of silently replanning or starting a replacement run.

Inspect the terminal ledger

Select a scenario, filter results and open the recorded evidence in the graphite/amber/ivory/plum terminal interface. Inspection performs no payment operations.

Use the browser or export reports

Follow the plan, review, simulated approval and result workflow in a local browser. Export text/JSON and request an optional evidence-referenced explanation.

Demo

Watch the narrated 2:50 walkthrough on YouTube → · Submitted project · Download the source release

  1. Inspect a real DeepSeek-generated plan and explicitly review it.
  2. Run the controlled sample workflow, pause for simulated approval and resume the same case.
  3. Inspect a seeded duplicate-delivery failure: one capture, two entitlements.
  4. Compare a separate corrected run and inspect lost-response reconciliation evidence.
  5. Watch an actual DeepSeek request, its complete wait and returned explanation, then export the recorded report.
Actual PayProbe faulty sample run with S3 repeated processing marked FAIL

A visible failure. An intentionally faulty sample store grants two entitlements after one capture.

Actual recorded S3 evidence showing simulated completed capture and entitlementCount 2

The evidence behind the result. Compare simulated provider capture with application delivery observations.

Actual local PayProbe browser readiness screen with simulated provider disclosure

A browser workflow too. Local planning, review, approval and reports. Inspect the recorded fixture results →

Actual console displaying the just-returned real DeepSeek explanation with recorded evidence references

Real AI, referenced evidence. Readable inspection of the just-returned response; deterministic verdicts remain unchanged.

Capture provenance and attribution →

Get started

Install and start locally

You need Node.js 24.14+ within the 24.x line, npm and a terminal. A private DeepSeek API key with available credit is needed for fresh planning and explanations. Payments are simulated; no PayPal account or credentials are required for this release.

Clone the repository or extract the packaged source, then run:

git clone https://github.com/desanv01/PayProbe.git
cd PayProbe
npm ci
npm run build
npm start -- doctor

doctor creates .env.local from the blank template only if absent. Set DEEPSEEK_API_KEY there; preserve an existing configuration. Leave PayPal fields blank. Defaults are deepseek-flash and the simulated provider. Credentials stay local and ignored by Git.

npm start -- serve

Keep the server running and open http://127.0.0.1:4310/demo on the same computer. This is a local application; no public live-demo service or judge key is supplied.

Plan, review and run from the CLI

In a second terminal at the same project root, with the same configuration:

New-Item -ItemType Directory -Force .private/demo | Out-Null
npm start -- plan examples/download-contract.json --out .private/demo/draft-plan.json
Get-Content .private/demo/draft-plan.json
# Accept only after inspecting the exact saved draft:
npm start -- plan --review .private/demo/draft-plan.json --out .private/demo/reviewed-plan.json
npm start -- run .private/demo/reviewed-plan.json --auto-approve-simulated

The first plan command calls DeepSeek. Review and execution make no new AI request. The approval flag authorizes simulated orders only; omit it to pause for approval. Use fresh output filenames for another attempt—existing plan/explanation files are never overwritten.

Inspect, explain or resume

Use the actual run ID returned by execution:

$runId = 'PASTE_ACTUAL_RUN_ID'
npm start -- ledger $runId
npm start -- report $runId --format text
npm start -- report $runId --format json
# Optional fresh DeepSeek request:
npm start -- explain $runId --out .private/demo/explanation.json
# Continue an existing paused or interrupted run:
npm start -- resume $runId --auto-approve-simulated

Use arrows or j/k to select, Enter for evidence, / to filter and q to leave the ledger. Non-interactive terminals receive plain text. Keep the SQLite directory for recovery; browser sessions expire after a server restart while recorded runs persist. Node's experimental SQLite warning is expected.

Complete setup and configuration → · Judge walkthrough →

DeepSeek & reviewed execution

DeepSeek maps a requirement onto supported scenarios through a bounded, schema-validated JSON interface. The saved plan requires explicit review; an unreviewed or modified plan cannot run. The explainer receives recorded evidence and must cite valid references. It does not decide or change deterministic verdicts.

The openai npm package is compatible transport with an explicit DeepSeek endpoint and key. No OpenAI runtime account or key is needed. deepseek-flash is a rolling alias for the requested V4.1-Flash-1017 model; an immutable provider snapshot is not claimed.

Review, run, resume, ledger and report commands require no fresh model call. Planning and explanation can consume API credit. The repository ships no private key, database or accepted private run. AI workflow implementation →

Recorded results

Check Boundary Observed demonstration
S1 Approval before capture Simulated approval does not grant delivery
S2 Capture and fulfillment Matching completed capture yields one accessible entitlement
S3 Repeated processing Corrected run preserves one entitlement across three sequential calls; faulty sample shows two and FAIL
S4 Lost capture response Existing simulated capture is reconciled and delivery occurs once

A reviewed real-DeepSeek/simulator journey completed all four checks with 42 evidence events. The film's faulty, corrected and pause/resume takes are separate runs; their identifiers and counts must not be combined. These are observations of our controlled sample, not third-party vulnerability findings or a production qualification.

Focused checks covered process restart, reviewed-plan persistence, duplicate delivery, wrong amount/currency, missing evidence, redaction, terminal/browser interaction and clean setup. Source CI runs the foundation, runner, AI workflow, stabilization and UI checks. Acceptance matrix →

Built with

Interfaces Application & validation Persistence & recovery Model access
Commander CLI · terminal ledger · local browser Node.js 24 · TypeScript · Fastify · Zod SQLite · persisted runs, reviewed plans and evidence Official DeepSeek API · compatible SDK transport

The simulated prerelease packages verified runtime source; newer repository commits add the video and presentation documentation. Source archive verification →

Architecture

flowchart TB
    subgraph Planning[Plan and review]
        direction LR
        A[Purchase requirement] --> B[DeepSeek draft]
        B --> C[Human review]
    end
    C --> D[Deterministic runner]
    D --> E[Sample app and delivery]
    D --> F[Simulated payment ledger]
    E --> G[Persisted evidence]
    F --> G
    G --> H[Deterministic verdicts]
    H --> I[CLI and browser reports]
    G --> J[DeepSeek explanation with references]
    J --> I
Loading

The application and payment observations use separate paths inside one backend. This is a testable simulation boundary, not independent third-party payment verification. Runner · HTTP adapter · Sample store · Storage

Scope and contributions

Built solo by Desan Vasu for PayPal AI Hackathon 2026 and submitted on Devpost. The contribution is the reviewed planning/execution workflow, controlled payment-fault sample, persisted evidence/recovery and inspectable terminal/browser reports. Codex assisted implementation and debugging. Contribution and attribution record →

Current scope is a controlled digital-download target, USD integer cents, one full capture and sequential repeat checks. Actual PayPal integration, refunds, subscriptions, webhooks, concurrent-race coverage, arbitrary merchants and production/security certification remain outside this release. The receipt confirms submission, not organizer eligibility or an award. Submission receipt →

Repository presentation and terminal direction draw inspiration from FollowThrough; the HyperFrames film follows the owner's MajuPilot editorial direction. Actual PayProbe screenshots retain their approved palette. Media credits →

Documentation

Feedback

Open an issue with reproducible steps, expected behavior and sanitized output. Keep keys, payment data and private documents out of public reports.

License

Original PayProbe code and documentation are MIT licensed. Dependencies, fonts, music and other third-party material retain their own rights and terms; see the contribution record and media credits.

About

Payment lifecycle diagnostics with reviewed AI plans, fault scenarios and inspectable evidence | PayPal AI Hackathon 2026

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages