@kashscript/hudhud 0.1.1 → 0.2.0
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/LICENSE +135 -133
- package/README.md +11 -0
- package/dist/certificate/certificate.d.ts +11 -4
- package/dist/certificate/certificate.d.ts.map +1 -1
- package/dist/certificate/certificate.js +21 -18
- package/dist/certificate/certificate.js.map +1 -1
- package/dist/certificate/html.d.ts.map +1 -1
- package/dist/certificate/html.js +1 -2
- package/dist/certificate/html.js.map +1 -1
- package/dist/exception/index.d.ts +126 -24
- package/dist/exception/index.d.ts.map +1 -1
- package/dist/exception/index.js +206 -15
- package/dist/exception/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +3 -3
- package/src/certificate/certificate.ts +25 -17
- package/src/certificate/html.ts +1 -2
- package/src/exception/index.ts +312 -33
- package/src/index.ts +1 -1
package/LICENSE
CHANGED
|
@@ -1,133 +1,135 @@
|
|
|
1
|
-
KashScript Sovereign Software License Agreement (SSLA) v1.0
|
|
2
|
-
Schedule B — Commercial Package
|
|
3
|
-
|
|
4
|
-
Copyright (c) 2026 KashScript Studio. All rights reserved.
|
|
5
|
-
|
|
6
|
-
This package is a Commercial Package under the SSLA. Production Use
|
|
7
|
-
requires an active paid Plan (`paid`, `team`, or `enterprise`) on the
|
|
8
|
-
Kash-Registry and a Seat covering your deployment.
|
|
9
|
-
|
|
10
|
-
• Evaluation / local development: permitted on the `free` Plan
|
|
11
|
-
• Production Use: requires a paid Plan + Seat
|
|
12
|
-
• Redistribution / re-hosting: prohibited (see §3)
|
|
13
|
-
• Removing license-verification: prohibited (see §3)
|
|
14
|
-
|
|
15
|
-
──────────────────────────────────────────────────────────────────────
|
|
16
|
-
QUICK SUMMARY (non-binding — the full SSLA controls)
|
|
17
|
-
|
|
18
|
-
WHAT YOU MAY DO
|
|
19
|
-
|
|
20
|
-
• Install, run, and modify this package on hardware you control.
|
|
21
|
-
• Use it in production once you hold a covering paid Plan +
|
|
22
|
-
Seat issued by the Kash-Registry.
|
|
23
|
-
• Build derivative works for your own internal use, provided the
|
|
24
|
-
license-verification code paths remain intact.
|
|
25
|
-
• Distribute compiled artifacts produced by this package (e.g.
|
|
26
|
-
a deployed Solidity contract is yours; the SDK code stays ours).
|
|
27
|
-
|
|
28
|
-
WHAT YOU MAY NOT DO
|
|
29
|
-
|
|
30
|
-
• Use this package in production without a covering Plan.
|
|
31
|
-
• Redistribute the package itself (no mirroring the .tgz, no
|
|
32
|
-
forking onto your own registry, no bundling into a competing
|
|
33
|
-
product under the @kashscript/ namespace).
|
|
34
|
-
• Operate a marketplace, registry, or SaaS that competes with the
|
|
35
|
-
Kash-Registry using this code.
|
|
36
|
-
• Remove or alter the license-verification code paths in any
|
|
37
|
-
production deployment.
|
|
38
|
-
|
|
39
|
-
WHAT YOU GET FROM US
|
|
40
|
-
|
|
41
|
-
• The package source, published openly for inspection.
|
|
42
|
-
• Bug fixes and security patches via the package's normal release
|
|
43
|
-
channel for the term of your Plan.
|
|
44
|
-
• The right to a 30-day cure window if your Plan lapses.
|
|
45
|
-
|
|
46
|
-
WHAT YOU DO NOT GET
|
|
47
|
-
|
|
48
|
-
• Any warranty, fitness-for-purpose, or non-infringement
|
|
49
|
-
guarantee (see §8 of the full SSLA).
|
|
50
|
-
• Indemnification (subject to the cap in §8).
|
|
51
|
-
• Continued production use after your Plan lapses for >14 days
|
|
52
|
-
and is not cured within 30 days.
|
|
53
|
-
|
|
54
|
-
──────────────────────────────────────────────────────────────────────
|
|
55
|
-
FULL SSLA
|
|
56
|
-
|
|
57
|
-
The above is a summary. The legally binding terms are in the SSLA v1.0,
|
|
58
|
-
which governs your use of this package in its entirety. The full text is
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
•
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
1
|
+
KashScript Sovereign Software License Agreement (SSLA) v1.0
|
|
2
|
+
Schedule B — Commercial Package
|
|
3
|
+
|
|
4
|
+
Copyright (c) 2026 KashScript Studio. All rights reserved.
|
|
5
|
+
|
|
6
|
+
This package is a Commercial Package under the SSLA. Production Use
|
|
7
|
+
requires an active paid Plan (`paid`, `team`, or `enterprise`) on the
|
|
8
|
+
Kash-Registry and a Seat covering your deployment.
|
|
9
|
+
|
|
10
|
+
• Evaluation / local development: permitted on the `free` Plan
|
|
11
|
+
• Production Use: requires a paid Plan + Seat
|
|
12
|
+
• Redistribution / re-hosting: prohibited (see §3)
|
|
13
|
+
• Removing license-verification: prohibited (see §3)
|
|
14
|
+
|
|
15
|
+
──────────────────────────────────────────────────────────────────────
|
|
16
|
+
QUICK SUMMARY (non-binding — the full SSLA controls)
|
|
17
|
+
|
|
18
|
+
WHAT YOU MAY DO
|
|
19
|
+
|
|
20
|
+
• Install, run, and modify this package on hardware you control.
|
|
21
|
+
• Use it in production once you hold a covering paid Plan +
|
|
22
|
+
Seat issued by the Kash-Registry.
|
|
23
|
+
• Build derivative works for your own internal use, provided the
|
|
24
|
+
license-verification code paths remain intact.
|
|
25
|
+
• Distribute compiled artifacts produced by this package (e.g.
|
|
26
|
+
a deployed Solidity contract is yours; the SDK code stays ours).
|
|
27
|
+
|
|
28
|
+
WHAT YOU MAY NOT DO
|
|
29
|
+
|
|
30
|
+
• Use this package in production without a covering Plan.
|
|
31
|
+
• Redistribute the package itself (no mirroring the .tgz, no
|
|
32
|
+
forking onto your own registry, no bundling into a competing
|
|
33
|
+
product under the @kashscript/ namespace).
|
|
34
|
+
• Operate a marketplace, registry, or SaaS that competes with the
|
|
35
|
+
Kash-Registry using this code.
|
|
36
|
+
• Remove or alter the license-verification code paths in any
|
|
37
|
+
production deployment.
|
|
38
|
+
|
|
39
|
+
WHAT YOU GET FROM US
|
|
40
|
+
|
|
41
|
+
• The package source, published openly for inspection.
|
|
42
|
+
• Bug fixes and security patches via the package's normal release
|
|
43
|
+
channel for the term of your Plan.
|
|
44
|
+
• The right to a 30-day cure window if your Plan lapses.
|
|
45
|
+
|
|
46
|
+
WHAT YOU DO NOT GET
|
|
47
|
+
|
|
48
|
+
• Any warranty, fitness-for-purpose, or non-infringement
|
|
49
|
+
guarantee (see §8 of the full SSLA).
|
|
50
|
+
• Indemnification (subject to the cap in §8).
|
|
51
|
+
• Continued production use after your Plan lapses for >14 days
|
|
52
|
+
and is not cured within 30 days.
|
|
53
|
+
|
|
54
|
+
──────────────────────────────────────────────────────────────────────
|
|
55
|
+
FULL SSLA
|
|
56
|
+
|
|
57
|
+
The above is a summary. The legally binding terms are in the SSLA v1.0,
|
|
58
|
+
which governs your use of this package in its entirety. The full text is
|
|
59
|
+
available at:
|
|
60
|
+
|
|
61
|
+
docs/legal/SSLA.md in the KashScript repository, or on request from
|
|
62
|
+
the licensing contact below. Canonical public URL from the first
|
|
63
|
+
commercial release: https://www.kashscript.com/legal/ssla
|
|
64
|
+
|
|
65
|
+
and in the source repository at:
|
|
66
|
+
|
|
67
|
+
https://github.com/kashscript/kashscript/blob/main/docs/legal/SSLA.md
|
|
68
|
+
|
|
69
|
+
A snapshot of §0–§10 of the SSLA is reproduced below for offline review.
|
|
70
|
+
|
|
71
|
+
──────────────────────────────────────────────────────────────────────
|
|
72
|
+
SSLA v1.0 — KEY CLAUSES (snapshot, reproduced verbatim)
|
|
73
|
+
|
|
74
|
+
§3. Commercial licence — Schedule B packages
|
|
75
|
+
|
|
76
|
+
For every package in Schedule B, we grant you a time-limited,
|
|
77
|
+
non-sublicensable, non-transferable licence to use the package,
|
|
78
|
+
conditional on:
|
|
79
|
+
|
|
80
|
+
1. You hold an active Plan (`paid`, `team`, or `enterprise`) with
|
|
81
|
+
a Seat count covering your deployment.
|
|
82
|
+
2. You have completed at least one successful /verify-license
|
|
83
|
+
challenge-response within the last 24 hours OR you hold a valid
|
|
84
|
+
Access Token issued by the Kash-Registry license server.
|
|
85
|
+
3. You use the package in a manner consistent with the Permitted
|
|
86
|
+
Use clause for that package in Schedule B.
|
|
87
|
+
|
|
88
|
+
The Commercial grant covers Production Use for the term of your Plan
|
|
89
|
+
and trial use during a 14-day evaluation window after first install
|
|
90
|
+
(the `trial` tier). It does NOT cover:
|
|
91
|
+
|
|
92
|
+
• Redistribution of the package to third parties (you may not host
|
|
93
|
+
the package's .tgz on your own registry mirror).
|
|
94
|
+
• Use of the package to compete with the Kash-Registry (operating
|
|
95
|
+
a marketplace under the @kashscript/ namespace, or selling a
|
|
96
|
+
fork as a substitute).
|
|
97
|
+
• Removal or alteration of the license-verification code paths.
|
|
98
|
+
|
|
99
|
+
Your Commercial licence terminates automatically if (i) your Plan
|
|
100
|
+
lapses for more than 14 days, (ii) you breach §3.1 or §3.2 in writing
|
|
101
|
+
or in conduct, or (iii) your DID is revoked by the Kash-Registry for
|
|
102
|
+
fraud, chargeback, or violation of the Acceptable Use Policy.
|
|
103
|
+
|
|
104
|
+
After termination, you have 30 days to either renew the Plan or stop
|
|
105
|
+
running the Commercial Package in Production.
|
|
106
|
+
|
|
107
|
+
§8. Warranty disclaimer + limitation of liability
|
|
108
|
+
|
|
109
|
+
THE PACKAGES ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND. WE
|
|
110
|
+
DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING MERCHANTABILITY,
|
|
111
|
+
FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
|
|
112
|
+
|
|
113
|
+
OUR AGGREGATE LIABILITY FOR ANY CLAIM ARISING OUT OF OR RELATED TO
|
|
114
|
+
THIS AGREEMENT WILL NOT EXCEED THE GREATER OF (i) THE AMOUNT YOU PAID
|
|
115
|
+
US IN THE 12 MONTHS PRECEDING THE CLAIM, OR (ii) USD 100.
|
|
116
|
+
|
|
117
|
+
NEITHER PARTY IS LIABLE FOR INDIRECT, INCIDENTAL, SPECIAL, OR
|
|
118
|
+
CONSEQUENTIAL DAMAGES.
|
|
119
|
+
|
|
120
|
+
§9. Governing law + venue
|
|
121
|
+
|
|
122
|
+
This Agreement is governed by the laws of the Islamic Republic of
|
|
123
|
+
Pakistan, without regard to conflict-of-laws rules. Disputes are
|
|
124
|
+
resolved exclusively in the courts of Islamabad — except that we may
|
|
125
|
+
seek injunctive relief in any court of competent jurisdiction to
|
|
126
|
+
protect our intellectual property or the integrity of the
|
|
127
|
+
Kash-Registry.
|
|
128
|
+
|
|
129
|
+
──────────────────────────────────────────────────────────────────────
|
|
130
|
+
CONTACT
|
|
131
|
+
|
|
132
|
+
Licensing questions: studio@kashscript.dev
|
|
133
|
+
Security disclosures: security@kashscript.dev
|
|
134
|
+
(see SECURITY.md for GPG fingerprint)
|
|
135
|
+
Plan management: https://www.kashscript.com/console
|
package/README.md
CHANGED
|
@@ -14,6 +14,17 @@ into an append-only, hash-chained ledger; restricted actions suspend for a two-k
|
|
|
14
14
|
**content**, fixtures, storage schemas, and text UIs stay venture-side. Full contract:
|
|
15
15
|
[`specs/hudhud.md`](../../specs/hudhud.md).
|
|
16
16
|
|
|
17
|
+
## Install
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
bun add @kashscript/hudhud zod
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
`zod` is a **peer dependency** — install it yourself, alongside the package. This is deliberate:
|
|
24
|
+
if hudhud bundled its own copy you could end up with two zod instances in one app, and schemas
|
|
25
|
+
minted by one fail `instanceof` checks in the other. The symptom of forgetting it is a bare
|
|
26
|
+
`Cannot find package 'zod'` at import time — that error means run the line above.
|
|
27
|
+
|
|
17
28
|
## The signed run loop
|
|
18
29
|
|
|
19
30
|
```ts
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { DsseEnvelope, DsseSigner } from "@kashscript/attest";
|
|
2
2
|
import type { AnchorRecord } from "../anchor";
|
|
3
|
-
import type {
|
|
4
|
-
|
|
3
|
+
import type { AnyExceptionClassificationRecord, FailureClass } from "../exception";
|
|
4
|
+
/** /2 (2026-09-23, d43 §4.7): the summary no longer carries `automationRatePct`.
|
|
5
|
+
* /1 certificates still verify — including their rate, when present. */
|
|
6
|
+
export declare const WORK_CERTIFICATE_FORMAT_VERSION: "kash-work-certificate/2";
|
|
7
|
+
export declare const WORK_CERTIFICATE_FORMAT_VERSION_V1: "kash-work-certificate/1";
|
|
5
8
|
export declare const WORK_CERTIFICATE_PAYLOAD_TYPE: "application/vnd.kash.work-certificate+json";
|
|
6
9
|
/** The AIUC-1 standard's canonical reference (web-verified). */
|
|
7
10
|
export declare const AIUC1_SOURCE: "https://www.aiuc-1.com/";
|
|
@@ -27,7 +30,7 @@ export interface CertifiedWorkRecord {
|
|
|
27
30
|
readonly operatorDid: string;
|
|
28
31
|
readonly ledgerStepIndex: number;
|
|
29
32
|
} | null;
|
|
30
|
-
readonly classification:
|
|
33
|
+
readonly classification: AnyExceptionClassificationRecord | null;
|
|
31
34
|
readonly anchor: AnchorRecord | null;
|
|
32
35
|
}
|
|
33
36
|
export interface WorkCertificatePeriod {
|
|
@@ -46,7 +49,11 @@ export interface BuildWorkCertificateInput {
|
|
|
46
49
|
export interface WorkCertificateSummary {
|
|
47
50
|
readonly workVolumeDelivered: number;
|
|
48
51
|
readonly workVolumeDeclined: number;
|
|
49
|
-
|
|
52
|
+
/** @deprecated Present only on `kash-work-certificate/1` certificates; never
|
|
53
|
+
* minted since /2 — founder decision 2026-09-23 under d43 §4.7 (no
|
|
54
|
+
* productivity metric). Still recomputed on verify when present, so an old
|
|
55
|
+
* certificate cannot claim a rate its own outcomes do not support. */
|
|
56
|
+
readonly automationRatePct?: number;
|
|
50
57
|
readonly exceptionCount: number;
|
|
51
58
|
readonly exceptionsByClass: Record<FailureClass, number>;
|
|
52
59
|
readonly humanSignoffCount: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"certificate.d.ts","sourceRoot":"","sources":["../../src/certificate/certificate.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"certificate.d.ts","sourceRoot":"","sources":["../../src/certificate/certificate.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,10 @@
|
|
|
12
12
|
// ============================================================================
|
|
13
13
|
import { signEnvelope, verifyEnvelope } from "@kashscript/attest";
|
|
14
14
|
import { FAILURE_CLASSES } from "../exception";
|
|
15
|
-
|
|
15
|
+
/** /2 (2026-09-23, d43 §4.7): the summary no longer carries `automationRatePct`.
|
|
16
|
+
* /1 certificates still verify — including their rate, when present. */
|
|
17
|
+
export const WORK_CERTIFICATE_FORMAT_VERSION = "kash-work-certificate/2";
|
|
18
|
+
export const WORK_CERTIFICATE_FORMAT_VERSION_V1 = "kash-work-certificate/1";
|
|
16
19
|
export const WORK_CERTIFICATE_PAYLOAD_TYPE = "application/vnd.kash.work-certificate+json";
|
|
17
20
|
/** The AIUC-1 standard's canonical reference (web-verified). */
|
|
18
21
|
export const AIUC1_SOURCE = "https://www.aiuc-1.com/";
|
|
@@ -34,32 +37,28 @@ function emptyClassMix() {
|
|
|
34
37
|
return mix;
|
|
35
38
|
}
|
|
36
39
|
function summarize(records, slaTargetPct) {
|
|
37
|
-
let
|
|
38
|
-
let withSignoff = 0;
|
|
40
|
+
let delivered = 0;
|
|
39
41
|
let declined = 0;
|
|
40
42
|
let slaMet = 0;
|
|
41
43
|
let anchored = 0;
|
|
42
44
|
const exceptionsByClass = emptyClassMix();
|
|
43
45
|
for (const r of records) {
|
|
44
|
-
if (r.status === "
|
|
45
|
-
autonomous += 1;
|
|
46
|
-
else if (r.status === "delivered_with_signoff")
|
|
47
|
-
withSignoff += 1;
|
|
48
|
-
else
|
|
46
|
+
if (r.status === "declined")
|
|
49
47
|
declined += 1;
|
|
48
|
+
else
|
|
49
|
+
delivered += 1;
|
|
50
50
|
if (r.slaMet)
|
|
51
51
|
slaMet += 1;
|
|
52
52
|
if (r.anchor !== null)
|
|
53
53
|
anchored += 1;
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
const fc = r.classification?.failureClass;
|
|
55
|
+
if (fc !== undefined)
|
|
56
|
+
exceptionsByClass[fc] += 1;
|
|
56
57
|
}
|
|
57
|
-
const delivered = autonomous + withSignoff;
|
|
58
58
|
const total = records.length;
|
|
59
59
|
return {
|
|
60
60
|
workVolumeDelivered: delivered,
|
|
61
61
|
workVolumeDeclined: declined,
|
|
62
|
-
automationRatePct: delivered === 0 ? 0 : round1((autonomous / delivered) * 100),
|
|
63
62
|
exceptionCount: records.filter((r) => r.classification !== null).length,
|
|
64
63
|
exceptionsByClass,
|
|
65
64
|
humanSignoffCount: records.filter((r) => r.signoff !== null).length,
|
|
@@ -79,9 +78,9 @@ function mapAiuc1Coverage(records, summary) {
|
|
|
79
78
|
case "B":
|
|
80
79
|
return { ...d, status: "evidenced", evidence: [`Every action Ed25519-signed into an append-only, hash-chained ledger (${records.reduce((n, r) => n + r.ledgerRowCount, 0)} signed rows this period).`, anchoredEvidence] };
|
|
81
80
|
case "C":
|
|
82
|
-
return { ...d, status: "evidenced", evidence: [`${summary.exceptionCount} exception(s) flagged for human review and resolved this period; each classified
|
|
81
|
+
return { ...d, status: "evidenced", evidence: [`${summary.exceptionCount} exception(s) flagged for human review and resolved this period; each classified and signed by a named human (and, where a model was involved, by where the model failed).`, "Restricted actions suspend for human judgment rather than proceed autonomously."] };
|
|
83
82
|
case "D":
|
|
84
|
-
return { ...d, status: "evidenced", evidence: ["Tools restricted to a per-provider allowlist (scope-gating): an out-of-allowlist or restricted tool call cannot be dispatched by construction."
|
|
83
|
+
return { ...d, status: "evidenced", evidence: ["Tools restricted to a per-provider allowlist (scope-gating): an out-of-allowlist or restricted tool call cannot be dispatched by construction."] };
|
|
85
84
|
case "E":
|
|
86
85
|
return { ...d, status: "evidenced", evidence: ["Complete signed activity log (the ledger) for every work item; a self-contained audit bundle is independently verifiable offline.", `${summary.humanSignoffCount} human sign-off(s), each a SECOND-key signed ledger row (the host cannot forge human judgment).`] };
|
|
87
86
|
case "F":
|
|
@@ -155,7 +154,6 @@ function recomputeCountsMatch(body) {
|
|
|
155
154
|
const o = body.outcomes;
|
|
156
155
|
const delivered = o.filter((x) => x.status !== "declined").length;
|
|
157
156
|
const declined = o.filter((x) => x.status === "declined").length;
|
|
158
|
-
const autonomous = o.filter((x) => x.status === "delivered_autonomous").length;
|
|
159
157
|
const slaMet = o.filter((x) => x.slaMet).length;
|
|
160
158
|
const exceptionCount = o.filter((x) => x.classificationId !== null).length;
|
|
161
159
|
const signoffCount = o.filter((x) => x.signoffLedgerStepIndex !== null).length;
|
|
@@ -171,9 +169,14 @@ function recomputeCountsMatch(body) {
|
|
|
171
169
|
check("exceptionCount", exceptionCount, s.exceptionCount);
|
|
172
170
|
check("humanSignoffCount", signoffCount, s.humanSignoffCount);
|
|
173
171
|
check("anchoredCount", anchored, s.anchoredCount);
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
172
|
+
// /1 certificates carried a rate; it is still held to its own outcomes. /2
|
|
173
|
+
// never mints one, and a /2 body that claims one is checked all the same.
|
|
174
|
+
if (s.automationRatePct !== undefined) {
|
|
175
|
+
const autonomous = o.filter((x) => x.status === "delivered_autonomous").length;
|
|
176
|
+
const wantAutomation = delivered === 0 ? 0 : round1((autonomous / delivered) * 100);
|
|
177
|
+
if (wantAutomation !== s.automationRatePct)
|
|
178
|
+
mismatches.push(`automationRatePct: recomputed=${wantAutomation} vs summary=${s.automationRatePct}`);
|
|
179
|
+
}
|
|
177
180
|
const wantSla = total === 0 ? 0 : round1((slaMet / total) * 100);
|
|
178
181
|
if (wantSla !== s.slaAdherencePct)
|
|
179
182
|
mismatches.push(`slaAdherencePct: recomputed=${wantSla} vs summary=${s.slaAdherencePct}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"certificate.js","sourceRoot":"","sources":["../../src/certificate/certificate.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,8EAA8E;AAC9E,+EAA+E;AAC/E,+EAA+E;AAC/E,wEAAwE;AACxE,iFAAiF;AACjF,iFAAiF;AACjF,0EAA0E;AAC1E,4EAA4E;AAC5E,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAE/E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIlE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,CAAC,MAAM,+BAA+B,GAAG,yBAAkC,CAAC;AAClF,MAAM,CAAC,MAAM,6BAA6B,GAAG,4CAAqD,CAAC;AAEnG,gEAAgE;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,yBAAkC,CAAC;AAQ/D,MAAM,CAAC,MAAM,aAAa,GAA+B;IACvD,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,sIAAsI,EAAE;IACrL,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,iIAAiI,EAAE;IAC1K,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,mHAAmH,EAAE;IAC1J,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,wDAAwD,EAAE;IACpG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,2HAA2H,EAAE;IAC1K,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,+DAA+D,EAAE;CACxG,CAAC;
|
|
1
|
+
{"version":3,"file":"certificate.js","sourceRoot":"","sources":["../../src/certificate/certificate.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,8EAA8E;AAC9E,+EAA+E;AAC/E,+EAA+E;AAC/E,wEAAwE;AACxE,iFAAiF;AACjF,iFAAiF;AACjF,0EAA0E;AAC1E,4EAA4E;AAC5E,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAE/E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIlE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C;yEACyE;AACzE,MAAM,CAAC,MAAM,+BAA+B,GAAG,yBAAkC,CAAC;AAClF,MAAM,CAAC,MAAM,kCAAkC,GAAG,yBAAkC,CAAC;AACrF,MAAM,CAAC,MAAM,6BAA6B,GAAG,4CAAqD,CAAC;AAEnG,gEAAgE;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,yBAAkC,CAAC;AAQ/D,MAAM,CAAC,MAAM,aAAa,GAA+B;IACvD,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,sIAAsI,EAAE;IACrL,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,iIAAiI,EAAE;IAC1K,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,mHAAmH,EAAE;IAC1J,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,wDAAwD,EAAE;IACpG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,2HAA2H,EAAE;IAC1K,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,+DAA+D,EAAE;CACxG,CAAC;AA+FF,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AACjC,CAAC;AACD,SAAS,aAAa;IACpB,MAAM,GAAG,GAAG,EAAkC,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,eAAe;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,SAAS,CAAC,OAA2C,EAAE,YAAgC;IAC9F,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,iBAAiB,GAAG,aAAa,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU;YAAE,QAAQ,IAAI,CAAC,CAAC;;YACtC,SAAS,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC,CAAC,MAAM;YAAE,MAAM,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI;YAAE,QAAQ,IAAI,CAAC,CAAC;QACrC,MAAM,EAAE,GAAG,CAAC,CAAC,cAAc,EAAE,YAAY,CAAC;QAC1C,IAAI,EAAE,KAAK,SAAS;YAAE,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAC7B,OAAO;QACL,mBAAmB,EAAE,SAAS;QAC9B,kBAAkB,EAAE,QAAQ;QAC5B,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,MAAM;QACvE,iBAAiB;QACjB,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,MAAM;QACnE,eAAe,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;QACjE,YAAY,EAAE,YAAY,IAAI,IAAI;QAClC,aAAa,EAAE,QAAQ;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAA2C,EAAE,OAA+B;IACpG,MAAM,gBAAgB,GACpB,OAAO,CAAC,aAAa,GAAG,CAAC;QACvB,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,OAAO,OAAO,CAAC,MAAM,mHAAmH;QAClK,CAAC,CAAC,wHAAwH,CAAC;IAC/H,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAuB,EAAE;QAClD,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,GAAG;gBACN,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,sIAAsI,CAAC,EAAE,CAAC;YAC3L,KAAK,GAAG;gBACN,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,yEAAyE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,4BAA4B,EAAE,gBAAgB,CAAC,EAAE,CAAC;YAC7N,KAAK,GAAG;gBACN,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,cAAc,4KAA4K,EAAE,iFAAiF,CAAC,EAAE,CAAC;YAC7U,KAAK,GAAG;gBACN,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,gJAAgJ,CAAC,EAAE,CAAC;YACrM,KAAK,GAAG;gBACN,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,mIAAmI,EAAE,GAAG,OAAO,CAAC,iBAAiB,iGAAiG,CAAC,EAAE,CAAC;YACvT,KAAK,GAAG;gBACN,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,0IAA0I,CAAC,EAAE,CAAC;QAC/L,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,CAAsB;IACvC,OAAO;QACL,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,cAAc,EAAE,CAAC,CAAC,cAAc;QAChC,aAAa,EAAE,CAAC,CAAC,aAAa;QAC9B,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE,eAAe,IAAI,IAAI;QAC1D,gBAAgB,EAAE,CAAC,CAAC,cAAc,EAAE,EAAE,IAAI,IAAI;QAC9C,YAAY,EAAE,CAAC,CAAC,cAAc,EAAE,YAAY,IAAI,IAAI;QACpD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,IAAI,IAAI;QAC9C,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI;KACzD,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAA2C;IACjE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAA+B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;YAAE,SAAS;QACnD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACvB,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,IAAI,MAAM,CAAC;QAC7C,GAAG,CAAC,IAAI,CAAC;YACP,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,cAAc,EAAE,OAAO;YACvB,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,WAAW,IAAI,IAAI;YAC9C,UAAU,EACR,OAAO,KAAK,OAAO;gBACjB,CAAC,CAAC,mDAAmD;gBACrD,CAAC,CAAC,OAAO,KAAK,gBAAgB;oBAC5B,CAAC,CAAC,mDAAmD;oBACrD,CAAC,CAAC,0DAA0D;SACnE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,mBAAmB,GACvB,0EAA0E;IAC1E,sFAAsF;IACtF,2FAA2F;IAC3F,8GAA8G;IAC9G,iHAAiH;IACjH,gDAAgD,CAAC;AAEnD,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAgC,EAChC,MAAkB,EAClB,cAAsB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IAE9C,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAwB;QAChC,aAAa,EAAE,+BAA+B;QAC9C,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE;QAClD,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,WAAW;QACX,OAAO;QACP,aAAa,EAAE,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;QACvD,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QACtC,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC;QACtC,YAAY,EAAE,EAAE,YAAY,EAAE,mBAAmB,EAAE;KACpD,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,6BAA6B,EAAE,MAAM,CAAC,CAAC;IACjF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC;AAUD,SAAS,oBAAoB,CAAC,IAAyB;IACrD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;IACxB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;IAClE,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;IACjE,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAChD,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAC3E,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,sBAAsB,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAC/E,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IACrE,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;IACvB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;IACvB,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,IAAY,EAAQ,EAAE;QAC/D,IAAI,GAAG,KAAK,IAAI;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,cAAc,GAAG,eAAe,IAAI,EAAE,CAAC,CAAC;IACpF,CAAC,CAAC;IACF,KAAK,CAAC,qBAAqB,EAAE,SAAS,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC/D,KAAK,CAAC,oBAAoB,EAAE,QAAQ,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC5D,KAAK,CAAC,gBAAgB,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;IAC1D,KAAK,CAAC,mBAAmB,EAAE,YAAY,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC9D,KAAK,CAAC,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;IAClD,2EAA2E;IAC3E,0EAA0E;IAC1E,IAAI,CAAC,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,sBAAsB,CAAC,CAAC,MAAM,CAAC;QAC/E,MAAM,cAAc,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;QACpF,IAAI,cAAc,KAAK,CAAC,CAAC,iBAAiB;YAAE,UAAU,CAAC,IAAI,CAAC,iCAAiC,cAAc,eAAe,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACnJ,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IACjE,IAAI,OAAO,KAAK,CAAC,CAAC,eAAe;QAAE,UAAU,CAAC,IAAI,CAAC,+BAA+B,OAAO,eAAe,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IAC7H,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,CAAC;QAAE,IAAI,CAAC,CAAC,YAAY,KAAK,IAAI;YAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9E,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAChC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,cAAc,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,qBAAqB,CAAC,CAAU;IACvC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,OAAO,CACL,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;QAC/B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzB,CAAC,CAAC,OAAO,KAAK,IAAI;QAClB,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAC9B,CAAC;AACJ,CAAC;AAED;;;oFAGoF;AACpF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAsB,EACtB,gBAAsD;IAEtD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAE9D,IAAI,IAAI,CAAC,WAAW,KAAK,6BAA6B,EAAE,CAAC;QACvD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,mBAAmB,IAAI,CAAC,WAAW,gBAAgB,6BAA6B,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACtL,CAAC;IACD,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;IACnJ,CAAC;IACD,8EAA8E;IAC9E,wEAAwE;IACxE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAClD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,gCAAgC,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;IACxL,CAAC;IAED,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;IAClD,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC3F,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/certificate/html.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAyC,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEhG,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,iDAAiD;IACjD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AA6CD,oEAAoE;AACpE,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,GAAE,oBAAyB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/certificate/html.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAyC,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEhG,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,iDAAiD;IACjD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AA6CD,oEAAoE;AACpE,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,GAAE,oBAAyB,GAAG,MAAM,CA4F7G"}
|
package/dist/certificate/html.js
CHANGED
|
@@ -73,7 +73,7 @@ export function renderWorkCertificateHtml(body, brand = {}) {
|
|
|
73
73
|
.band .verifiable { margin-top: 12px; display: inline-block; font-size: 12px; background: rgba(255,255,255,.16); padding: 4px 10px; border-radius: 3px; }
|
|
74
74
|
.body { padding: 28px 40px 40px; }
|
|
75
75
|
h2 { font-size: 15px; text-transform: uppercase; letter-spacing: .06em; color: var(--accent); border-bottom: 2px solid #eceff2; padding-bottom: 6px; margin: 30px 0 14px; }
|
|
76
|
-
.cards { display: grid; grid-template-columns: repeat(
|
|
76
|
+
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
|
|
77
77
|
.card { border: 1px solid #e6eaee; border-radius: 5px; padding: 14px; }
|
|
78
78
|
.card-v { font-size: 24px; font-weight: 680; color: var(--accent); }
|
|
79
79
|
.card-l { font-size: 12px; font-weight: 600; margin-top: 2px; }
|
|
@@ -108,7 +108,6 @@ export function renderWorkCertificateHtml(body, brand = {}) {
|
|
|
108
108
|
<h2>Delivered work this period</h2>
|
|
109
109
|
<div class="cards">
|
|
110
110
|
${metricCard("Outcomes delivered", String(s.workVolumeDelivered), `${s.workVolumeDeclined} declined at sign-off`)}
|
|
111
|
-
${metricCard("Automation rate", `${s.automationRatePct}%`, "delivered without human touch")}
|
|
112
111
|
${metricCard("Exceptions", String(s.exceptionCount), `${s.humanSignoffCount} human sign-off(s)`)}
|
|
113
112
|
${metricCard("SLA adherence", `${s.slaAdherencePct}%`, s.slaTargetPct === null ? "no target set" : `target ${s.slaTargetPct}%`)}
|
|
114
113
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/certificate/html.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/certificate/html.ts"],"names":[],"mappings":"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"}
|