@payrekha/replay 0.1.0-alpha.0 → 0.1.0-alpha.1
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.
- package/README.md +3 -3
- package/dist/cli.js +60 -20
- package/dist/cli.js.map +1 -1
- package/dist/replay.d.ts +48 -0
- package/dist/replay.d.ts.map +1 -1
- package/dist/replay.js +106 -9
- package/dist/replay.js.map +1 -1
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +36 -3
- package/dist/report.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# @payrekha/replay
|
|
2
2
|
|
|
3
3
|
The zero-integration evaluation tool: run your historical payouts through
|
|
4
|
-
the
|
|
5
|
-
**false-positive review list** you tune from. This is day 0 of a
|
|
4
|
+
the PayRekha rules and get terminal, HTML and JSON reports — including the
|
|
5
|
+
**false-positive review list** you tune from. This is day 0 of a PayRekha
|
|
6
6
|
pilot: your own data, one command, nothing deployed.
|
|
7
7
|
|
|
8
8
|
```bash
|
|
@@ -10,7 +10,7 @@ payrekha-replay --payouts ledger.csv --map map.json --out out/
|
|
|
10
10
|
# open out/report.html
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
`map.json` renames your columns to
|
|
13
|
+
`map.json` renames your columns to PayRekha fields (`payoutId`, `kind`,
|
|
14
14
|
`amountRupees`, `timestamp`, `account`, `ifsc`, `sourceKeyId`, …). Without
|
|
15
15
|
`--intents` it runs intent-less mode — behaviour, environment and settlement
|
|
16
16
|
rules still fire. Beneficiaries are hashed with a throwaway key per run, so
|
package/dist/cli.js
CHANGED
|
@@ -1,22 +1,33 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
// Copyright 2026 Kapil — People of Product
|
|
4
|
-
import { readFileSync, writeFileSync } from 'node:fs';
|
|
4
|
+
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
5
5
|
import { parseArgs } from 'node:util';
|
|
6
6
|
import { parseRows } from './csv.js';
|
|
7
7
|
import { runReplay } from './replay.js';
|
|
8
8
|
import { htmlReport, terminalSummary } from './report.js';
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
9
|
+
const die = (msg) => {
|
|
10
|
+
console.error(`payrekha-replay: ${msg}`);
|
|
11
|
+
process.exit(1);
|
|
12
|
+
};
|
|
13
|
+
const { values } = (() => {
|
|
14
|
+
try {
|
|
15
|
+
return parseArgs({
|
|
16
|
+
options: {
|
|
17
|
+
payouts: { type: 'string' },
|
|
18
|
+
intents: { type: 'string' },
|
|
19
|
+
config: { type: 'string' },
|
|
20
|
+
map: { type: 'string' },
|
|
21
|
+
out: { type: 'string', default: '.' },
|
|
22
|
+
'hash-key': { type: 'string' },
|
|
23
|
+
help: { type: 'boolean', short: 'h' },
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
return die(`${e.message} — run with --help to see usage`);
|
|
29
|
+
}
|
|
30
|
+
})();
|
|
20
31
|
if (values.help || values.payouts === undefined) {
|
|
21
32
|
console.error(`payrekha-replay --payouts payouts.csv [--intents intents.csv] [--config payrekha.json] [--map map.json] [--out dir]
|
|
22
33
|
|
|
@@ -24,21 +35,50 @@ if (values.help || values.payouts === undefined) {
|
|
|
24
35
|
Writes <out>/report.html (self-contained) and <out>/report.json. Reads files only; makes no network calls.`);
|
|
25
36
|
process.exit(values.help ? 0 : 2);
|
|
26
37
|
}
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
38
|
+
const readFile = (p) => {
|
|
39
|
+
try {
|
|
40
|
+
return readFileSync(p, 'utf8');
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
return die(`cannot read ${p}: ${e.code ?? e.message}`);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const readCsv = (p) => {
|
|
47
|
+
try {
|
|
48
|
+
return parseRows(readFile(p), p);
|
|
49
|
+
}
|
|
50
|
+
catch (e) {
|
|
51
|
+
return die(`cannot parse CSV ${p}: ${e.message}`);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
const readJson = (p) => {
|
|
55
|
+
try {
|
|
56
|
+
return JSON.parse(readFile(p));
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
return die(`invalid JSON in ${p}: ${e.message}`);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
const cfg = values.config !== undefined ? readJson(values.config) : {};
|
|
63
|
+
const holidays = cfg.calendarFile !== undefined ? (readJson(cfg.calendarFile).holidays ?? []) : [];
|
|
30
64
|
const fw = (cfg.firewall ?? {});
|
|
31
65
|
const report = runReplay({
|
|
32
|
-
payouts:
|
|
33
|
-
...(values.intents !== undefined ? { intents:
|
|
34
|
-
...(values.map !== undefined ? { map:
|
|
66
|
+
payouts: readCsv(values.payouts),
|
|
67
|
+
...(values.intents !== undefined ? { intents: readCsv(values.intents) } : {}),
|
|
68
|
+
...(values.map !== undefined ? { map: readJson(values.map) } : {}),
|
|
35
69
|
rules: cfg.rules ?? {},
|
|
36
70
|
firewall: { ...fw, calendar: { ...fw.calendar, holidays: [...(fw.calendar?.holidays ?? []), ...holidays] } },
|
|
37
71
|
...(values['hash-key'] !== undefined ? { hashKey: values['hash-key'] } : {}),
|
|
38
72
|
});
|
|
39
73
|
const out = values.out ?? '.';
|
|
40
|
-
|
|
41
|
-
|
|
74
|
+
try {
|
|
75
|
+
mkdirSync(out, { recursive: true });
|
|
76
|
+
writeFileSync(`${out}/report.json`, JSON.stringify(report, null, 2));
|
|
77
|
+
writeFileSync(`${out}/report.html`, htmlReport(report));
|
|
78
|
+
}
|
|
79
|
+
catch (e) {
|
|
80
|
+
die(`cannot write reports to ${out}: ${e.code ?? e.message}`);
|
|
81
|
+
}
|
|
42
82
|
console.log(terminalSummary(report, process.stdout.isTTY === true && !process.env['NO_COLOR']));
|
|
43
83
|
console.log(`\nwrote ${out}/report.html and ${out}/report.json`);
|
|
44
84
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,sCAAsC;AACtC,2CAA2C;AAE3C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/replay.d.ts
CHANGED
|
@@ -99,6 +99,54 @@ export interface ReplayReport {
|
|
|
99
99
|
readonly trigger: string;
|
|
100
100
|
}[];
|
|
101
101
|
readonly p99Micros: number;
|
|
102
|
+
/**
|
|
103
|
+
* Intent-less mode only: penny-drop accounting. Rows tagged VERIFICATION
|
|
104
|
+
* mark their beneficiary as verified (the lender already proved the
|
|
105
|
+
* account), which exempts later payouts to it from probe/cooling —
|
|
106
|
+
* exactly as a signed VERIFICATION intent would.
|
|
107
|
+
*/
|
|
108
|
+
readonly pennyDrop?: {
|
|
109
|
+
readonly verificationRows: number;
|
|
110
|
+
readonly verifiedBeneficiaries: number;
|
|
111
|
+
readonly boundPayouts: number;
|
|
112
|
+
readonly untaggedMicro: number;
|
|
113
|
+
readonly tip?: string;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Intent-less mode only: starting thresholds derived from this export's
|
|
117
|
+
* own distribution — percentiles are illustrative, not a verdict on
|
|
118
|
+
* your traffic. `config` is shaped like payrekha.json.
|
|
119
|
+
*/
|
|
120
|
+
readonly suggested?: {
|
|
121
|
+
readonly config: {
|
|
122
|
+
readonly firewall: {
|
|
123
|
+
readonly microPaise?: number;
|
|
124
|
+
};
|
|
125
|
+
readonly rules: {
|
|
126
|
+
readonly probe?: {
|
|
127
|
+
readonly largePaise: number;
|
|
128
|
+
};
|
|
129
|
+
readonly cooling?: {
|
|
130
|
+
readonly minAmountPaise: number;
|
|
131
|
+
};
|
|
132
|
+
readonly velocity?: {
|
|
133
|
+
readonly perSourceKey: {
|
|
134
|
+
readonly count: number;
|
|
135
|
+
readonly sumPaise: number;
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
};
|
|
140
|
+
readonly percentiles: {
|
|
141
|
+
readonly windowCountP95: number;
|
|
142
|
+
readonly windowCountP99: number;
|
|
143
|
+
readonly windowSumP95Paise: number;
|
|
144
|
+
readonly windowSumP99Paise: number;
|
|
145
|
+
readonly amountP75Paise: number;
|
|
146
|
+
readonly nonMicroP25Paise?: number;
|
|
147
|
+
readonly microP95Paise?: number;
|
|
148
|
+
};
|
|
149
|
+
};
|
|
102
150
|
}
|
|
103
151
|
export declare function parseTime(v: unknown): number | undefined;
|
|
104
152
|
export declare function runReplay(o: ReplayOptions): ReplayReport;
|
package/dist/replay.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"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"}
|
package/dist/replay.js
CHANGED
|
@@ -121,6 +121,18 @@ export function runReplay(o) {
|
|
|
121
121
|
const lat = [];
|
|
122
122
|
const episodes = [];
|
|
123
123
|
const resetMs = (o.alertResetHours ?? 24) * 3_600_000;
|
|
124
|
+
// Intent-less penny-drop state + threshold-suggestion samples.
|
|
125
|
+
const microPaise = cfg.microPaise ?? 1_000;
|
|
126
|
+
const verified = new Map();
|
|
127
|
+
const boundVerified = new Set();
|
|
128
|
+
const amounts = [];
|
|
129
|
+
const microAmounts = [];
|
|
130
|
+
const nonMicroAmounts = [];
|
|
131
|
+
const keyWindows = new Map();
|
|
132
|
+
let verificationRows = 0;
|
|
133
|
+
let boundPayouts = 0;
|
|
134
|
+
let untaggedMicro = 0;
|
|
135
|
+
const signKey = { alg: 'ed25519', privateKey: issuer.privateKey };
|
|
124
136
|
for (const { at, i, row } of events) {
|
|
125
137
|
clock = at;
|
|
126
138
|
const open = episodes.at(-1);
|
|
@@ -152,6 +164,39 @@ export function runReplay(o) {
|
|
|
152
164
|
if (v !== undefined && v !== '')
|
|
153
165
|
p[k] = String(v);
|
|
154
166
|
}
|
|
167
|
+
const kind = String(p['kind']);
|
|
168
|
+
if (intentLess && b !== undefined) {
|
|
169
|
+
if (kind === 'VERIFICATION') {
|
|
170
|
+
// A tagged penny-drop is the lender vouching for this account. Give
|
|
171
|
+
// it a throwaway VERIFICATION intent so the engine's own
|
|
172
|
+
// verified-beneficiary bookkeeping fires — subsequent payouts to it
|
|
173
|
+
// are then exempt from probe/cooling, exactly as under a real intent.
|
|
174
|
+
const subj = row[c['subjectRef']] !== undefined && row[c['subjectRef']] !== '' ? String(row[c['subjectRef']]) : `verified:${b}`;
|
|
175
|
+
try {
|
|
176
|
+
fw.registerIntent(signIntent({ intentId: `replay-verification-${i}`, kind: 'VERIFICATION', maxAmountPaise: Math.max(amount ?? 1, 1), beneficiaryRef: b, maxUses: 1, notBeforeMs: Math.max(1, at - 3_600_000), expiresAtMs: Number.MAX_SAFE_INTEGER, issuer: 'replay', keyId: 'replay', subjectRef: subj }, signKey), at);
|
|
177
|
+
p['intentId'] = `replay-verification-${i}`;
|
|
178
|
+
if (!verified.has(b))
|
|
179
|
+
verified.set(b, subj);
|
|
180
|
+
verificationRows += 1;
|
|
181
|
+
}
|
|
182
|
+
catch { /* malformed row → falls through and is evaluated unbound */ }
|
|
183
|
+
}
|
|
184
|
+
else if (verified.has(b)) {
|
|
185
|
+
const subj = verified.get(b);
|
|
186
|
+
const iid = `replay-verified-${b}-${kind}`;
|
|
187
|
+
try {
|
|
188
|
+
if (!boundVerified.has(iid)) {
|
|
189
|
+
boundVerified.add(iid);
|
|
190
|
+
fw.registerIntent(signIntent({ intentId: iid, kind: kind, maxAmountPaise: Number.MAX_SAFE_INTEGER, beneficiaryRef: b, maxUses: 1_000_000_000, notBeforeMs: 1, expiresAtMs: Number.MAX_SAFE_INTEGER, issuer: 'replay', keyId: 'replay', subjectRef: subj }, signKey), at);
|
|
191
|
+
}
|
|
192
|
+
p['intentId'] = iid;
|
|
193
|
+
boundPayouts += 1;
|
|
194
|
+
}
|
|
195
|
+
catch { /* unhandled kind or bad intent → evaluated unbound */ }
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (intentLess && kind !== 'VERIFICATION' && amount !== undefined && amount <= microPaise)
|
|
199
|
+
untaggedMicro += 1;
|
|
155
200
|
const v = fw.evaluate(p);
|
|
156
201
|
fw.reportOutcome(v.payoutId, 'settled');
|
|
157
202
|
if (fw.alertState === 'HIGH_ALERT' && (episodes.length === 0 || episodes.at(-1).endMs !== null))
|
|
@@ -175,8 +220,55 @@ export function runReplay(o) {
|
|
|
175
220
|
}
|
|
176
221
|
if (v.verdict !== 'ALLOW')
|
|
177
222
|
flagged.push({ payoutId: v.payoutId, atMs: at, kind: String(p['kind']), amountPaise: amt, beneficiaryRef: b ?? '(missing)', sourceKeyId: String(p['sourceKeyId']), verdict: v.verdict, degraded: v.degraded, hits: v.hits.filter((h) => h.verdict !== 'ALLOW') });
|
|
223
|
+
if (amount !== undefined) {
|
|
224
|
+
amounts.push(amount);
|
|
225
|
+
(amount <= microPaise ? microAmounts : nonMicroAmounts).push(amount);
|
|
226
|
+
const wk = `${String(p['sourceKeyId'])}|${Math.floor(at / 600_000)}`;
|
|
227
|
+
const w = keyWindows.get(wk) ?? { count: 0, sumPaise: 0 };
|
|
228
|
+
w.count += 1;
|
|
229
|
+
w.sumPaise += amount;
|
|
230
|
+
keyWindows.set(wk, w);
|
|
231
|
+
}
|
|
178
232
|
}
|
|
179
233
|
lat.sort((a, b) => a - b);
|
|
234
|
+
const pct = (sorted, q) => (sorted.length === 0 ? undefined : sorted[Math.min(sorted.length - 1, Math.floor(sorted.length * q))]);
|
|
235
|
+
amounts.sort((a, b) => a - b);
|
|
236
|
+
microAmounts.sort((a, b) => a - b);
|
|
237
|
+
nonMicroAmounts.sort((a, b) => a - b);
|
|
238
|
+
const winCounts = [...keyWindows.values()].map((w) => w.count).sort((a, b) => a - b);
|
|
239
|
+
const winSums = [...keyWindows.values()].map((w) => w.sumPaise).sort((a, b) => a - b);
|
|
240
|
+
const pennyDrop = intentLess
|
|
241
|
+
? {
|
|
242
|
+
verificationRows,
|
|
243
|
+
verifiedBeneficiaries: verified.size,
|
|
244
|
+
boundPayouts,
|
|
245
|
+
untaggedMicro,
|
|
246
|
+
...(untaggedMicro > 0 && verificationRows === 0
|
|
247
|
+
? { tip: `${untaggedMicro} payouts at or below ${microPaise} paise look like penny drops, but none are tagged kind=VERIFICATION — tag them so they are read as account verifications, not probes.` }
|
|
248
|
+
: {}),
|
|
249
|
+
}
|
|
250
|
+
: undefined;
|
|
251
|
+
const suggested = intentLess
|
|
252
|
+
? {
|
|
253
|
+
config: {
|
|
254
|
+
firewall: { ...(microAmounts.length >= 5 ? { microPaise: pct(microAmounts, 0.95) } : {}) },
|
|
255
|
+
rules: {
|
|
256
|
+
...(nonMicroAmounts.length >= 10 ? { probe: { largePaise: pct(nonMicroAmounts, 0.25) } } : {}),
|
|
257
|
+
...(amounts.length >= 10 ? { cooling: { minAmountPaise: pct(amounts, 0.75) } } : {}),
|
|
258
|
+
...(winCounts.length >= 2 ? { velocity: { perSourceKey: { count: pct(winCounts, 0.99), sumPaise: pct(winSums, 0.99) } } } : {}),
|
|
259
|
+
},
|
|
260
|
+
},
|
|
261
|
+
percentiles: {
|
|
262
|
+
windowCountP95: pct(winCounts, 0.95) ?? 0,
|
|
263
|
+
windowCountP99: pct(winCounts, 0.99) ?? 0,
|
|
264
|
+
windowSumP95Paise: pct(winSums, 0.95) ?? 0,
|
|
265
|
+
windowSumP99Paise: pct(winSums, 0.99) ?? 0,
|
|
266
|
+
amountP75Paise: pct(amounts, 0.75) ?? 0,
|
|
267
|
+
...(nonMicroAmounts.length > 0 ? { nonMicroP25Paise: pct(nonMicroAmounts, 0.25) } : {}),
|
|
268
|
+
...(microAmounts.length > 0 ? { microP95Paise: pct(microAmounts, 0.95) } : {}),
|
|
269
|
+
},
|
|
270
|
+
}
|
|
271
|
+
: undefined;
|
|
180
272
|
return {
|
|
181
273
|
generatedAt: new Date().toISOString(),
|
|
182
274
|
intentLess,
|
|
@@ -189,6 +281,8 @@ export function runReplay(o) {
|
|
|
189
281
|
flagged,
|
|
190
282
|
alertEpisodes: episodes,
|
|
191
283
|
p99Micros: lat.length === 0 ? 0 : lat[Math.min(lat.length - 1, Math.floor(lat.length * 0.99))],
|
|
284
|
+
...(pennyDrop !== undefined ? { pennyDrop } : {}),
|
|
285
|
+
...(suggested !== undefined ? { suggested } : {}),
|
|
192
286
|
};
|
|
193
287
|
}
|
|
194
288
|
/** Group flagged payouts that share a beneficiary or source key within 24 h into a timeline. */
|
|
@@ -218,15 +312,18 @@ function chains(flagged) {
|
|
|
218
312
|
}
|
|
219
313
|
return groups
|
|
220
314
|
.filter((g) => g.length >= 2 || g.some((f) => f.verdict === 'BLOCK'))
|
|
221
|
-
.map((g) =>
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
315
|
+
.map((g) => {
|
|
316
|
+
const steps = [...g].sort((a, b) => a.atMs - b.atMs);
|
|
317
|
+
return {
|
|
318
|
+
key: steps[0].sourceKeyId,
|
|
319
|
+
startMs: steps[0].atMs,
|
|
320
|
+
endMs: steps[steps.length - 1].atMs,
|
|
321
|
+
amountPaise: steps.reduce((a, f) => a + f.amountPaise, 0),
|
|
322
|
+
worst: steps.some((f) => f.verdict === 'BLOCK') ? 'BLOCK' : 'REVIEW',
|
|
323
|
+
rules: [...new Set(steps.flatMap((f) => f.hits.map((h) => h.rule)))],
|
|
324
|
+
steps,
|
|
325
|
+
};
|
|
326
|
+
})
|
|
230
327
|
.sort((a, b) => b.amountPaise - a.amountPaise);
|
|
231
328
|
}
|
|
232
329
|
//# sourceMappingURL=replay.js.map
|
package/dist/replay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"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"}
|
package/dist/report.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,wBAAgB,eAAe,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,UAAQ,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,wBAAgB,eAAe,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,UAAQ,GAAG,MAAM,CAsCtE;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAqDlD"}
|
package/dist/report.js
CHANGED
|
@@ -8,12 +8,21 @@ export function terminalSummary(r, color = false) {
|
|
|
8
8
|
const [bold, dim, red, yellow, green] = [c(1), c(2), c(31), c(33), c(32)];
|
|
9
9
|
const t = r.totals;
|
|
10
10
|
const L = [
|
|
11
|
-
bold(`
|
|
11
|
+
bold(`PayRekha replay${r.intentLess ? ' (intent-less: probe, cooling, velocity, band, non-prod, holiday, settlement)' : ''}`),
|
|
12
12
|
`${t.payouts} payouts, ${rupees(t.amountPaise)} ${dim(`p99 ${Math.round(r.p99Micros)} µs`)}`,
|
|
13
13
|
` ${green('ALLOW ')} ${String(t.allow.count).padStart(6)} ${rupees(t.allow.amountPaise)}`,
|
|
14
14
|
` ${yellow('REVIEW')} ${String(t.review.count).padStart(6)} ${rupees(t.review.amountPaise)} would hold`,
|
|
15
15
|
` ${red('BLOCK ')} ${String(t.block.count).padStart(6)} ${rupees(t.block.amountPaise)} would stop`,
|
|
16
16
|
];
|
|
17
|
+
if (r.intentLess)
|
|
18
|
+
L.push('', yellow('Tune before you judge — these are illustrative defaults on your data, not tuned thresholds. Suggested starting points are below; expect some noise until they are.'));
|
|
19
|
+
if (r.pennyDrop !== undefined) {
|
|
20
|
+
const pd = r.pennyDrop;
|
|
21
|
+
if (pd.verificationRows > 0)
|
|
22
|
+
L.push(dim(` penny drops: ${pd.verificationRows} VERIFICATION rows → ${pd.verifiedBeneficiaries} beneficiaries verified; ${pd.boundPayouts} payouts exempted as verified`));
|
|
23
|
+
if (pd.tip !== undefined)
|
|
24
|
+
L.push(yellow(` tip: ${pd.tip}`));
|
|
25
|
+
}
|
|
17
26
|
if (t.degraded > 0)
|
|
18
27
|
L.push(yellow(` ${t.degraded} degraded (malformed rows) — reviewed, never allowed`));
|
|
19
28
|
if (r.skippedRows.length > 0)
|
|
@@ -25,7 +34,17 @@ export function terminalSummary(r, color = false) {
|
|
|
25
34
|
L.push(` ${x.rule.padEnd(30)} ${String(x.hits).padStart(6)} ${rupees(x.amountPaise)}`);
|
|
26
35
|
L.push('', bold(`Flagged chains (${r.chains.length})`));
|
|
27
36
|
for (const ch of r.chains.slice(0, 5)) {
|
|
28
|
-
|
|
37
|
+
const [a, z] = [formatIst(ch.startMs), formatIst(ch.endMs)];
|
|
38
|
+
L.push(` ${(ch.worst === 'BLOCK' ? red : yellow)(ch.worst)} ${a} → ${a.slice(0, 10) === z.slice(0, 10) ? z.slice(11) : z} ${ch.steps.length} payouts ${rupees(ch.amountPaise)} ${dim(ch.rules.join(', '))}`);
|
|
39
|
+
}
|
|
40
|
+
if (r.suggested !== undefined) {
|
|
41
|
+
const s = r.suggested;
|
|
42
|
+
L.push('', bold('Suggested starting thresholds (from this export — illustrative)'));
|
|
43
|
+
const p = s.percentiles;
|
|
44
|
+
L.push(dim(` per-source 10-min windows: p95 ${p.windowCountP95} / p99 ${p.windowCountP99} payouts · p95 ${rupees(p.windowSumP95Paise)} / p99 ${rupees(p.windowSumP99Paise)}`));
|
|
45
|
+
L.push(dim(` amounts: p75 ${rupees(p.amountP75Paise)}${p.nonMicroP25Paise !== undefined ? ` · p25 non-micro ${rupees(p.nonMicroP25Paise)}` : ''}${p.microP95Paise !== undefined ? ` · p95 micro ${p.microP95Paise} paise` : ''}`));
|
|
46
|
+
L.push(' paste into payrekha.json and tighten from there:');
|
|
47
|
+
L.push(dim(` ${JSON.stringify(s.config)}`));
|
|
29
48
|
}
|
|
30
49
|
L.push('', dim(`False-positive review list: ${r.falsePositiveReview.length} single-rule REVIEWs — check these before you turn on enforce.`));
|
|
31
50
|
return L.join('\n');
|
|
@@ -44,9 +63,13 @@ h1{font-size:1.5rem;margin:0}h2{font-size:1.1rem;margin-top:2rem;border-bottom:1
|
|
|
44
63
|
.a{color:#137333}.r{color:#b06000}.b{color:#c5221f}table{border-collapse:collapse;width:100%;background:#fff}
|
|
45
64
|
td,th{border-bottom:1px solid #eee;padding:.35rem .5rem;text-align:left;vertical-align:top}th{font-weight:600;background:#f3f3ef}
|
|
46
65
|
code{font:12px ui-monospace,monospace}.chain{background:#fff;border:1px solid #e3e3df;border-radius:8px;padding:.5rem 1rem;margin:.75rem 0}
|
|
66
|
+
.banner{background:#fff7e6;border:1px solid #f0c36d;border-radius:8px;padding:.75rem 1rem;margin-top:1rem}
|
|
67
|
+
.tip{background:#fff7e6;border:1px solid #f0c36d;border-radius:8px;padding:.5rem 1rem;margin:.75rem 0}
|
|
68
|
+
pre{background:#f3f3ef;border-radius:8px;padding:.75rem 1rem;overflow-x:auto}
|
|
47
69
|
</style></head><body>
|
|
48
|
-
<h1>
|
|
70
|
+
<h1>PayRekha replay report</h1>
|
|
49
71
|
<div class="sub">${esc(r.generatedAt)} · ${r.intentLess ? 'intent-less mode (intent rules skipped)' : 'with intents'} · ${t.payouts} payouts · p99 ${Math.round(r.p99Micros)} µs</div>
|
|
72
|
+
${r.intentLess ? `<div class="banner"><b>Tune before you judge.</b> The verdicts above use illustrative defaults on your data, not tuned thresholds — expect some noise until they are. Suggested starting points are at the bottom; paste them into <code>payrekha.json</code> and tighten from there.</div>` : ''}
|
|
50
73
|
<div class="cards">
|
|
51
74
|
<div class="card"><div>Total</div><div class="n">${esc(rupees(t.amountPaise))}</div><div>${t.payouts} payouts</div></div>
|
|
52
75
|
<div class="card"><div class="a">Allowed</div><div class="n">${esc(rupees(t.allow.amountPaise))}</div><div>${t.allow.count}</div></div>
|
|
@@ -62,8 +85,18 @@ ${r.alertEpisodes.length > 0 ? `<h2>HIGH_ALERT episodes</h2><table><tr><th>Enter
|
|
|
62
85
|
.map((s) => `<tr><td>${esc(formatIst(s.atMs))}</td><td><code>${esc(s.payoutId)}</code></td><td>${esc(s.kind)}</td><td>${esc(rupees(s.amountPaise))}</td><td class="${verdictCls(s.verdict)}">${s.verdict}</td><td>${s.hits.map((h) => `<code>${esc(h.rule)}</code> ${esc(h.reason)}`).join('<br>')}</td></tr>`)
|
|
63
86
|
.join('')}</table></div>`)
|
|
64
87
|
.join('')}
|
|
88
|
+
${r.pennyDrop !== undefined && (r.pennyDrop.verificationRows > 0 || r.pennyDrop.tip !== undefined) ? `<h2>Penny drops</h2>${r.pennyDrop.verificationRows > 0 ? `<p>${r.pennyDrop.verificationRows} rows tagged <code>kind=VERIFICATION</code> verified ${r.pennyDrop.verifiedBeneficiaries} beneficiaries — ${r.pennyDrop.boundPayouts} later payouts to them were exempted from <code>probe.micro-then-large</code> and <code>beneficiary.cooling</code>, exactly as they would be under signed intents.</p>` : ''}${r.pennyDrop.tip !== undefined ? `<div class="tip"><b>Tip:</b> ${esc(r.pennyDrop.tip)}</div>` : ''}` : ''}
|
|
65
89
|
<h2>False-positive review list</h2><p class="sub">Single-rule REVIEWs, largest first. Confirm these are fine (or tune the rule) before switching to enforce.</p>
|
|
66
90
|
<table><tr><th>Time (IST)</th><th>Payout</th><th>Kind</th><th>Amount</th><th>Rule</th><th>Reason</th></tr>${r.falsePositiveReview.map((f) => row([formatIst(f.atMs), f.payoutId, f.kind, rupees(f.amountPaise), f.hits[0]?.rule ?? '', f.hits[0]?.reason ?? ''])).join('')}</table>
|
|
91
|
+
${r.suggested !== undefined ? `<h2>Suggested starting thresholds</h2><p class="sub">Derived from this export's own distribution — illustrative, not a verdict. Paste into <code>payrekha.json</code> and tighten from there.</p>
|
|
92
|
+
<table><tr><th>Signal</th><th>Observed</th><th>Suggests</th></tr>
|
|
93
|
+
${row(['per-source payouts / 10 min (p95 → p99)', `${r.suggested.percentiles.windowCountP95} → ${r.suggested.percentiles.windowCountP99}`, 'velocity.perSourceKey.count'])}
|
|
94
|
+
${row(['per-source amount / 10 min (p95 → p99)', `${rupees(r.suggested.percentiles.windowSumP95Paise)} → ${rupees(r.suggested.percentiles.windowSumP99Paise)}`, 'velocity.perSourceKey.sumPaise'])}
|
|
95
|
+
${row(['p75 payout amount', rupees(r.suggested.percentiles.amountP75Paise), 'cooling.minAmountPaise'])}
|
|
96
|
+
${r.suggested.percentiles.nonMicroP25Paise !== undefined ? row(['p25 non-micro amount', rupees(r.suggested.percentiles.nonMicroP25Paise), 'probe.largePaise']) : ''}
|
|
97
|
+
${r.suggested.percentiles.microP95Paise !== undefined ? row(['p95 micro amount', `${r.suggested.percentiles.microP95Paise} paise`, 'firewall.microPaise']) : ''}
|
|
98
|
+
</table>
|
|
99
|
+
<pre>${esc(JSON.stringify(r.suggested.config, null, 2))}</pre>` : ''}
|
|
67
100
|
<p class="sub">Beneficiaries appear only as keyed hashes. Generated by Payrekha replay — Apache-2.0.</p>
|
|
68
101
|
</body></html>
|
|
69
102
|
`;
|
package/dist/report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payrekha/replay",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.1",
|
|
4
4
|
"description": "Run historical payouts through the Payrekha rules and get a terminal, HTML and JSON report. The zero-integration evaluation tool.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Kapil <kapil@theproduct.city>",
|