@agentguard-run/spend 0.15.7 → 0.15.9
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 +61 -1
- package/dist/anchor/index.d.ts +35 -0
- package/dist/anchor/index.d.ts.map +1 -0
- package/dist/anchor/index.js +82 -0
- package/dist/anchor/index.js.map +1 -0
- package/dist/anchor/opentimestamps.d.ts +86 -0
- package/dist/anchor/opentimestamps.d.ts.map +1 -0
- package/dist/anchor/opentimestamps.js +239 -0
- package/dist/anchor/opentimestamps.js.map +1 -0
- package/dist/anchor/store.d.ts +29 -0
- package/dist/anchor/store.d.ts.map +1 -0
- package/dist/anchor/store.js +130 -0
- package/dist/anchor/store.js.map +1 -0
- package/dist/anchor/types.d.ts +84 -0
- package/dist/anchor/types.d.ts.map +1 -0
- package/dist/anchor/types.js +28 -0
- package/dist/anchor/types.js.map +1 -0
- package/dist/cli/anchor.d.ts +10 -0
- package/dist/cli/anchor.d.ts.map +1 -0
- package/dist/cli/anchor.js +177 -0
- package/dist/cli/anchor.js.map +1 -0
- package/dist/cli/colors.d.ts +1 -0
- package/dist/cli/colors.d.ts.map +1 -1
- package/dist/cli/colors.js +4 -0
- package/dist/cli/colors.js.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +10 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/sample.d.ts +43 -0
- package/dist/cli/sample.d.ts.map +1 -0
- package/dist/cli/sample.js +154 -0
- package/dist/cli/sample.js.map +1 -0
- package/dist/cli/serve.d.ts +1 -1
- package/dist/cli/serve.d.ts.map +1 -1
- package/dist/cli/serve.js +10 -4
- package/dist/cli/serve.js.map +1 -1
- package/dist/cli/verify.d.ts.map +1 -1
- package/dist/cli/verify.js +75 -0
- package/dist/cli/verify.js.map +1 -1
- package/dist/dashboard/aggregate.d.ts +2 -0
- package/dist/dashboard/aggregate.d.ts.map +1 -1
- package/dist/dashboard/aggregate.js.map +1 -1
- package/dist/decision-log.d.ts +28 -0
- package/dist/decision-log.d.ts.map +1 -1
- package/dist/decision-log.js +34 -0
- package/dist/decision-log.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -4
- package/dist/index.js.map +1 -1
- package/dist/samples/flows.d.ts +28 -0
- package/dist/samples/flows.d.ts.map +1 -0
- package/dist/samples/flows.js +151 -0
- package/dist/samples/flows.js.map +1 -0
- package/dist/samples/verifier-html.d.ts +29 -0
- package/dist/samples/verifier-html.d.ts.map +1 -0
- package/dist/samples/verifier-html.js +188 -0
- package/dist/samples/verifier-html.js.map +1 -0
- package/package.json +7 -2
- package/src/bindings/bindings-enforce.test.ts +97 -0
- package/src/dashboard/aggregate.ts +8 -1
package/dist/decision-log.d.ts
CHANGED
|
@@ -85,6 +85,34 @@ export declare function verifyChain(entries: SignedDecisionLogEntry[], publicKey
|
|
|
85
85
|
sequence: number;
|
|
86
86
|
reason: string;
|
|
87
87
|
}>;
|
|
88
|
+
/**
|
|
89
|
+
* Completeness / sequence-gap detection.
|
|
90
|
+
*
|
|
91
|
+
* Each signed entry carries a monotonic per-signer (per-tenant) `sequence`
|
|
92
|
+
* starting at 0. A missing sequence number between the lowest and highest
|
|
93
|
+
* observed sequence is evidence that an action MAY have been taken around the
|
|
94
|
+
* SDK and never logged (or that a logged entry was later deleted). This is a
|
|
95
|
+
* DETECTION/REPORTING signal only — it never changes spend-cap enforcement.
|
|
96
|
+
*
|
|
97
|
+
* Returns the list of missing sequence numbers (gaps) for a single signer's
|
|
98
|
+
* entries. Duplicate sequences are also surfaced (a duplicate implies the chain
|
|
99
|
+
* was rewritten). Entries from multiple signers must be grouped by
|
|
100
|
+
* `signerFingerprint` before calling this; mixed signers are treated as one
|
|
101
|
+
* logical stream only if you have already filtered them.
|
|
102
|
+
*/
|
|
103
|
+
export interface SequenceGapReport {
|
|
104
|
+
/** Sorted list of missing sequence numbers between min and max observed. */
|
|
105
|
+
missing: number[];
|
|
106
|
+
/** Sequence numbers that appeared more than once. */
|
|
107
|
+
duplicates: number[];
|
|
108
|
+
/** Lowest observed sequence, or null when there are no entries. */
|
|
109
|
+
min: number | null;
|
|
110
|
+
/** Highest observed sequence, or null when there are no entries. */
|
|
111
|
+
max: number | null;
|
|
112
|
+
/** Human-readable summary lines, e.g. "possible omitted actions: sequence gap at 4". */
|
|
113
|
+
notes: string[];
|
|
114
|
+
}
|
|
115
|
+
export declare function detectSequenceGaps(entries: ReadonlyArray<Pick<SignedDecisionLogEntry, 'sequence'>>): SequenceGapReport;
|
|
88
116
|
/**
|
|
89
117
|
* In-memory decision log store. Useful for tests, examples, and short-lived
|
|
90
118
|
* shadow deployments. Production callers will typically supply their own
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision-log.d.ts","sourceRoot":"","sources":["../src/decision-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAKjB,yEAAyE;AACzE,eAAO,MAAM,qBAAqB,QAAiB,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAcpD;AAED,sDAAsD;AACtD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAST;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAGtE;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,UAAU,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAoBlC;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,sBAAsB,EAC7B,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,OAAO,CAAC,CAuBlB;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,sBAAsB,EAAE,EACjC,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA2CzE;AAED;;;;GAIG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,OAAO,CAAC,OAAO,CAAgC;IAEzC,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,SAAS,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAQ7E,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAS9G,mEAAmE;IACnE,QAAQ,IAAI,sBAAsB,EAAE;CAGrC"}
|
|
1
|
+
{"version":3,"file":"decision-log.d.ts","sourceRoot":"","sources":["../src/decision-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAKjB,yEAAyE;AACzE,eAAO,MAAM,qBAAqB,QAAiB,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAcpD;AAED,sDAAsD;AACtD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAST;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAGtE;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,UAAU,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAoBlC;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,sBAAsB,EAC7B,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,OAAO,CAAC,CAuBlB;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,sBAAsB,EAAE,EACjC,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA2CzE;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qDAAqD;IACrD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,mEAAmE;IACnE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,oEAAoE;IACpE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,wFAAwF;IACxF,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC,GAC/D,iBAAiB,CA0BnB;AAED;;;;GAIG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,OAAO,CAAC,OAAO,CAAgC;IAEzC,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,SAAS,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAQ7E,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAS9G,mEAAmE;IACnE,QAAQ,IAAI,sBAAsB,EAAE;CAGrC"}
|
package/dist/decision-log.js
CHANGED
|
@@ -65,6 +65,7 @@ exports.computeSignerFingerprint = computeSignerFingerprint;
|
|
|
65
65
|
exports.signDecision = signDecision;
|
|
66
66
|
exports.verifyEntry = verifyEntry;
|
|
67
67
|
exports.verifyChain = verifyChain;
|
|
68
|
+
exports.detectSequenceGaps = detectSequenceGaps;
|
|
68
69
|
const crypto_1 = require("crypto");
|
|
69
70
|
const ed = __importStar(require("@noble/ed25519"));
|
|
70
71
|
// @noble/ed25519 v2.3+ has sha512Async wired internally. The signAsync /
|
|
@@ -230,6 +231,39 @@ async function verifyChain(entries, publicKey) {
|
|
|
230
231
|
}
|
|
231
232
|
return { ok: true };
|
|
232
233
|
}
|
|
234
|
+
function detectSequenceGaps(entries) {
|
|
235
|
+
if (entries.length === 0) {
|
|
236
|
+
return { missing: [], duplicates: [], min: null, max: null, notes: [] };
|
|
237
|
+
}
|
|
238
|
+
const counts = new Map();
|
|
239
|
+
let min = Infinity;
|
|
240
|
+
let max = -Infinity;
|
|
241
|
+
for (const entry of entries) {
|
|
242
|
+
const seq = entry.sequence;
|
|
243
|
+
if (!Number.isSafeInteger(seq) || seq < 0)
|
|
244
|
+
continue;
|
|
245
|
+
counts.set(seq, (counts.get(seq) ?? 0) + 1);
|
|
246
|
+
if (seq < min)
|
|
247
|
+
min = seq;
|
|
248
|
+
if (seq > max)
|
|
249
|
+
max = seq;
|
|
250
|
+
}
|
|
251
|
+
if (!Number.isFinite(min) || !Number.isFinite(max)) {
|
|
252
|
+
return { missing: [], duplicates: [], min: null, max: null, notes: [] };
|
|
253
|
+
}
|
|
254
|
+
const missing = [];
|
|
255
|
+
for (let s = min; s <= max; s++) {
|
|
256
|
+
if (!counts.has(s))
|
|
257
|
+
missing.push(s);
|
|
258
|
+
}
|
|
259
|
+
const duplicates = [...counts.entries()].filter(([, n]) => n > 1).map(([s]) => s).sort((a, b) => a - b);
|
|
260
|
+
const notes = [];
|
|
261
|
+
for (const s of missing)
|
|
262
|
+
notes.push(`possible omitted actions: sequence gap at ${s}`);
|
|
263
|
+
for (const s of duplicates)
|
|
264
|
+
notes.push(`possible chain rewrite: duplicate sequence ${s}`);
|
|
265
|
+
return { missing, duplicates, min, max, notes };
|
|
266
|
+
}
|
|
233
267
|
/**
|
|
234
268
|
* In-memory decision log store. Useful for tests, examples, and short-lived
|
|
235
269
|
* shadow deployments. Production callers will typically supply their own
|
package/dist/decision-log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision-log.js","sourceRoot":"","sources":["../src/decision-log.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBH,sCAcC;AAGD,8BAEC;AAMD,4CAeC;AAMD,4DAGC;AAQD,oCA2BC;AAQD,kCA0BC;AAWD,kCA8CC;
|
|
1
|
+
{"version":3,"file":"decision-log.js","sourceRoot":"","sources":["../src/decision-log.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { workflow as runWorkflow } from './workflow/context';
|
|
|
9
9
|
export type { SpendAction, SpendWindow, Provider, EnforcementMode, CapabilityTier, SpendCap, SpendScope, SpendPolicy, CallContext, SpendDecision, SignedDecisionLogEntry, SpendStore, DecisionLogStore, } from './types';
|
|
10
10
|
export { getModelCost, setCostOverride, clearCostOverrides, computeCallCents, inferProvider, listCostOverrides, loadPersistedCostOverrides, persistCostOverrides, knownModelCosts, type ModelCost, } from './cost-table';
|
|
11
11
|
export { evaluatePolicy, buildScopeKey, adjustPolicyWindowSpend, enforcePolicyLicenseGates, findCustomKeywordWatchlists, BUILT_IN_KEYWORD_WATCHLISTS } from './policy';
|
|
12
|
-
export { canonicalJson, sha256Hex, computeEntryHash, computeSignerFingerprint, signDecision, verifyEntry, verifyChain, GENESIS_PREVIOUS_HASH, InMemoryDecisionLogStore, } from './decision-log';
|
|
12
|
+
export { canonicalJson, sha256Hex, computeEntryHash, computeSignerFingerprint, signDecision, verifyEntry, verifyChain, detectSequenceGaps, GENESIS_PREVIOUS_HASH, InMemoryDecisionLogStore, type SequenceGapReport, } from './decision-log';
|
|
13
13
|
export { InMemorySpendStore } from './store-memory';
|
|
14
14
|
export { NdjsonDecisionLogStore, type NdjsonStoreOptions } from './adapters/ndjson-store';
|
|
15
15
|
export { AgentGuardLicenseRequiredError, validateLicenseKey, validateAndRegisterLicense, readConfiguredLicenseKey, writeConfiguredLicenseKey, clearConfiguredLicenseKey, licenseKeyFingerprint, type AgentGuardLicenseStatus, type AgentGuardLicenseFeatures, type AgentGuardTier, } from './license';
|
|
@@ -34,7 +34,7 @@ export { withSpendGuardAnthropic, type AnthropicBindingOptions } from './binding
|
|
|
34
34
|
export { withSpendGuardBedrock, type BedrockBindingOptions } from './bindings/bedrock';
|
|
35
35
|
export { recommend, defaultKey, type ModelRouteRecommendation, type RecommendOptions } from './router';
|
|
36
36
|
export { DEFAULT_LOCALE, SUPPORTED_LOCALES, TRANSLATIONS, type SupportedLocale, resolveLocale, t, formatBlockedTrace, type BlockedTraceArgs, } from './i18n';
|
|
37
|
-
export declare const AGENTGUARD_SPEND_VERSION = "0.15.
|
|
37
|
+
export declare const AGENTGUARD_SPEND_VERSION = "0.15.9";
|
|
38
38
|
export declare const agentguard: {
|
|
39
39
|
workflow: typeof runWorkflow;
|
|
40
40
|
};
|
|
@@ -48,5 +48,8 @@ export * from './frameworks';
|
|
|
48
48
|
export * from './operating-pack';
|
|
49
49
|
export { aggregateLedger, classifyOrigin, decisionCents, centsToUsd, type CfoDashboard, type BucketSpend, type TokenOrigin, } from './dashboard/aggregate';
|
|
50
50
|
export { getMonthlyUsage, maybeGrantFirstTimeBonus, readFreeTierState, bonusMessage, DEFAULT_FREE_LIMIT, BONUS_THRESHOLD_PCT, type FreeTierOptions, type FreeTierState, type MonthlyUsage, type BonusResult, } from './free-tier/usage';
|
|
51
|
+
export { createAnchor, createAnchorFromEnv, chainHeadDigestHex, merkleRootHex, OpenTimestampsAnchor, DEFAULT_OTS_CALENDARS, defaultOtsLib, writeAnchorProof, readAnchorIndex, readAnchorIndexAt, findAnchorForHead, anchorIndexPath, anchorProofPath, anchorDir, type AnchorProof, type AnchorStatus, type AnchorVerification, type TimestampAnchor, type OtsSubmit, type OtsLib, type OtsBitcoinAttestation, type OpenTimestampsAnchorOptions, } from './anchor';
|
|
52
|
+
export { buildSampleReceipt, isSampleFlow, SAMPLE_FLOWS, type SampleFlow, type SampleReceiptSpec, } from './samples/flows';
|
|
53
|
+
export { buildSampleVerifierHtml, type SampleVerifierData } from './samples/verifier-html';
|
|
51
54
|
export { workloadProvenance, formatLineage, type WorkloadProvenance, type WorkloadProvenanceReport, type ModelUse, type ModelSwap, } from './receipts/portability';
|
|
52
55
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG7D,YAAY,EACV,WAAW,EACX,WAAW,EACX,QAAQ,EACR,eAAe,EACf,cAAc,EACd,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,UAAU,EACV,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,EACf,KAAK,SAAS,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAGvK,OAAO,EACL,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -21,9 +21,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
21
21
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
22
22
|
};
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
-
exports.
|
|
25
|
-
exports.
|
|
26
|
-
exports.formatLineage = exports.workloadProvenance = exports.BONUS_THRESHOLD_PCT = exports.DEFAULT_FREE_LIMIT = exports.bonusMessage = exports.readFreeTierState = exports.maybeGrantFirstTimeBonus = exports.getMonthlyUsage = exports.centsToUsd = exports.decisionCents = exports.classifyOrigin = exports.aggregateLedger = exports.PATENT_NOTICE = exports.agentguard = exports.AGENTGUARD_SPEND_VERSION = exports.formatBlockedTrace = void 0;
|
|
24
|
+
exports.receiptSchemaVersion = exports.isReceiptV3 = exports.assertReceiptV3 = exports.isOpenRouterHost = exports.clearManagedOpenRouterKeyCache = exports.fetchManagedOpenRouterKey = exports.modelCostFromOpenRouter = exports.persistOverrides = exports.syncPricingIntoCostTable = exports.getCachedCatalog = exports.fetchCatalog = exports.recordTelemetryEvent = exports.resetTelemetryInstallId = exports.disableTelemetry = exports.enableTelemetry = exports.telemetryStatus = exports.licenseKeyFingerprint = exports.clearConfiguredLicenseKey = exports.writeConfiguredLicenseKey = exports.readConfiguredLicenseKey = exports.validateAndRegisterLicense = exports.validateLicenseKey = exports.AgentGuardLicenseRequiredError = exports.NdjsonDecisionLogStore = exports.InMemorySpendStore = exports.InMemoryDecisionLogStore = exports.GENESIS_PREVIOUS_HASH = exports.detectSequenceGaps = exports.verifyChain = exports.verifyEntry = exports.signDecision = exports.computeSignerFingerprint = exports.computeEntryHash = exports.sha256Hex = exports.canonicalJson = exports.BUILT_IN_KEYWORD_WATCHLISTS = exports.findCustomKeywordWatchlists = exports.enforcePolicyLicenseGates = exports.adjustPolicyWindowSpend = exports.buildScopeKey = exports.evaluatePolicy = exports.knownModelCosts = exports.persistCostOverrides = exports.loadPersistedCostOverrides = exports.listCostOverrides = exports.inferProvider = exports.computeCallCents = exports.clearCostOverrides = exports.setCostOverride = exports.getModelCost = void 0;
|
|
25
|
+
exports.resolveLocale = exports.TRANSLATIONS = exports.SUPPORTED_LOCALES = exports.DEFAULT_LOCALE = exports.defaultKey = exports.recommend = exports.withSpendGuardBedrock = exports.withSpendGuardAnthropic = exports.AgentGuardBlockedError = exports.withSpendGuard = exports.SpendGuard = exports.writeAdvisorOutputs = exports.createAdvisorSessionLogger = exports.resolveAdvisorApiKey = exports.createAdvisorClient = exports.projectedSavings = exports.buildPolicyFromProfile = exports.buildBusinessProfile = exports.AdvisorConversation = exports.AgentGuardWorkflowStateError = exports.AgentGuardDurationCapError = exports.AgentGuardChainCorruptError = exports.AgentGuardBudgetCapError = exports.validateReceiptChain = exports.computeChainHash = exports.WorkflowContext = exports.workflow = exports.verifyConsentReceipt = exports.enforceCompliance = exports.AgentGuardConsentRequiredError = exports.AgentGuardComplianceError = exports.isForeignOriginModel = exports.inferCompliance = exports.inferHosting = exports.inferModelIdentity = exports.inferProviderRoute = exports.PROVIDER_REGISTRY = exports.captureProvenance = exports.verifyReceiptDag = exports.verifyInclusion = exports.signDagNode = exports.msgHashForDecision = exports.merkleRoot = exports.merkleInclusionProof = exports.gateCapability = exports.deriveTrustScore = exports.deriveCapability = exports.dagEnvelopeFromEntries = exports.computeDagEntryHash = exports.compressReceiptDag = void 0;
|
|
26
|
+
exports.formatLineage = exports.workloadProvenance = exports.buildSampleVerifierHtml = exports.SAMPLE_FLOWS = exports.isSampleFlow = exports.buildSampleReceipt = exports.anchorDir = exports.anchorProofPath = exports.anchorIndexPath = exports.findAnchorForHead = exports.readAnchorIndexAt = exports.readAnchorIndex = exports.writeAnchorProof = exports.defaultOtsLib = exports.DEFAULT_OTS_CALENDARS = exports.OpenTimestampsAnchor = exports.merkleRootHex = exports.chainHeadDigestHex = exports.createAnchorFromEnv = exports.createAnchor = exports.BONUS_THRESHOLD_PCT = exports.DEFAULT_FREE_LIMIT = exports.bonusMessage = exports.readFreeTierState = exports.maybeGrantFirstTimeBonus = exports.getMonthlyUsage = exports.centsToUsd = exports.decisionCents = exports.classifyOrigin = exports.aggregateLedger = exports.PATENT_NOTICE = exports.agentguard = exports.AGENTGUARD_SPEND_VERSION = exports.formatBlockedTrace = exports.t = void 0;
|
|
27
27
|
const context_1 = require("./workflow/context");
|
|
28
28
|
// Cost table
|
|
29
29
|
var cost_table_1 = require("./cost-table");
|
|
@@ -53,6 +53,7 @@ Object.defineProperty(exports, "computeSignerFingerprint", { enumerable: true, g
|
|
|
53
53
|
Object.defineProperty(exports, "signDecision", { enumerable: true, get: function () { return decision_log_1.signDecision; } });
|
|
54
54
|
Object.defineProperty(exports, "verifyEntry", { enumerable: true, get: function () { return decision_log_1.verifyEntry; } });
|
|
55
55
|
Object.defineProperty(exports, "verifyChain", { enumerable: true, get: function () { return decision_log_1.verifyChain; } });
|
|
56
|
+
Object.defineProperty(exports, "detectSequenceGaps", { enumerable: true, get: function () { return decision_log_1.detectSequenceGaps; } });
|
|
56
57
|
Object.defineProperty(exports, "GENESIS_PREVIOUS_HASH", { enumerable: true, get: function () { return decision_log_1.GENESIS_PREVIOUS_HASH; } });
|
|
57
58
|
Object.defineProperty(exports, "InMemoryDecisionLogStore", { enumerable: true, get: function () { return decision_log_1.InMemoryDecisionLogStore; } });
|
|
58
59
|
// In-memory spend store
|
|
@@ -163,7 +164,7 @@ Object.defineProperty(exports, "TRANSLATIONS", { enumerable: true, get: function
|
|
|
163
164
|
Object.defineProperty(exports, "resolveLocale", { enumerable: true, get: function () { return i18n_1.resolveLocale; } });
|
|
164
165
|
Object.defineProperty(exports, "t", { enumerable: true, get: function () { return i18n_1.t; } });
|
|
165
166
|
Object.defineProperty(exports, "formatBlockedTrace", { enumerable: true, get: function () { return i18n_1.formatBlockedTrace; } });
|
|
166
|
-
exports.AGENTGUARD_SPEND_VERSION = '0.15.
|
|
167
|
+
exports.AGENTGUARD_SPEND_VERSION = '0.15.9';
|
|
167
168
|
exports.agentguard = {
|
|
168
169
|
workflow: context_1.workflow,
|
|
169
170
|
};
|
|
@@ -191,6 +192,29 @@ Object.defineProperty(exports, "readFreeTierState", { enumerable: true, get: fun
|
|
|
191
192
|
Object.defineProperty(exports, "bonusMessage", { enumerable: true, get: function () { return usage_1.bonusMessage; } });
|
|
192
193
|
Object.defineProperty(exports, "DEFAULT_FREE_LIMIT", { enumerable: true, get: function () { return usage_1.DEFAULT_FREE_LIMIT; } });
|
|
193
194
|
Object.defineProperty(exports, "BONUS_THRESHOLD_PCT", { enumerable: true, get: function () { return usage_1.BONUS_THRESHOLD_PCT; } });
|
|
195
|
+
// External timestamp anchoring (opt-in; zero data plane — only a hash leaves the machine)
|
|
196
|
+
var anchor_1 = require("./anchor");
|
|
197
|
+
Object.defineProperty(exports, "createAnchor", { enumerable: true, get: function () { return anchor_1.createAnchor; } });
|
|
198
|
+
Object.defineProperty(exports, "createAnchorFromEnv", { enumerable: true, get: function () { return anchor_1.createAnchorFromEnv; } });
|
|
199
|
+
Object.defineProperty(exports, "chainHeadDigestHex", { enumerable: true, get: function () { return anchor_1.chainHeadDigestHex; } });
|
|
200
|
+
Object.defineProperty(exports, "merkleRootHex", { enumerable: true, get: function () { return anchor_1.merkleRootHex; } });
|
|
201
|
+
Object.defineProperty(exports, "OpenTimestampsAnchor", { enumerable: true, get: function () { return anchor_1.OpenTimestampsAnchor; } });
|
|
202
|
+
Object.defineProperty(exports, "DEFAULT_OTS_CALENDARS", { enumerable: true, get: function () { return anchor_1.DEFAULT_OTS_CALENDARS; } });
|
|
203
|
+
Object.defineProperty(exports, "defaultOtsLib", { enumerable: true, get: function () { return anchor_1.defaultOtsLib; } });
|
|
204
|
+
Object.defineProperty(exports, "writeAnchorProof", { enumerable: true, get: function () { return anchor_1.writeAnchorProof; } });
|
|
205
|
+
Object.defineProperty(exports, "readAnchorIndex", { enumerable: true, get: function () { return anchor_1.readAnchorIndex; } });
|
|
206
|
+
Object.defineProperty(exports, "readAnchorIndexAt", { enumerable: true, get: function () { return anchor_1.readAnchorIndexAt; } });
|
|
207
|
+
Object.defineProperty(exports, "findAnchorForHead", { enumerable: true, get: function () { return anchor_1.findAnchorForHead; } });
|
|
208
|
+
Object.defineProperty(exports, "anchorIndexPath", { enumerable: true, get: function () { return anchor_1.anchorIndexPath; } });
|
|
209
|
+
Object.defineProperty(exports, "anchorProofPath", { enumerable: true, get: function () { return anchor_1.anchorProofPath; } });
|
|
210
|
+
Object.defineProperty(exports, "anchorDir", { enumerable: true, get: function () { return anchor_1.anchorDir; } });
|
|
211
|
+
// Sample receipt artifacts (self-verifying; outreach)
|
|
212
|
+
var flows_1 = require("./samples/flows");
|
|
213
|
+
Object.defineProperty(exports, "buildSampleReceipt", { enumerable: true, get: function () { return flows_1.buildSampleReceipt; } });
|
|
214
|
+
Object.defineProperty(exports, "isSampleFlow", { enumerable: true, get: function () { return flows_1.isSampleFlow; } });
|
|
215
|
+
Object.defineProperty(exports, "SAMPLE_FLOWS", { enumerable: true, get: function () { return flows_1.SAMPLE_FLOWS; } });
|
|
216
|
+
var verifier_html_1 = require("./samples/verifier-html");
|
|
217
|
+
Object.defineProperty(exports, "buildSampleVerifierHtml", { enumerable: true, get: function () { return verifier_html_1.buildSampleVerifierHtml; } });
|
|
194
218
|
// Model-agnostic provenance that survives hot-swap
|
|
195
219
|
var portability_1 = require("./receipts/portability");
|
|
196
220
|
Object.defineProperty(exports, "workloadProvenance", { enumerable: true, get: function () { return portability_1.workloadProvenance; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;AAEH,gDAA6D;AAmB7D,aAAa;AACb,2CAWsB;AAVpB,0GAAA,YAAY,OAAA;AACZ,6GAAA,eAAe,OAAA;AACf,gHAAA,kBAAkB,OAAA;AAClB,8GAAA,gBAAgB,OAAA;AAChB,2GAAA,aAAa,OAAA;AACb,+GAAA,iBAAiB,OAAA;AACjB,wHAAA,0BAA0B,OAAA;AAC1B,kHAAA,oBAAoB,OAAA;AACpB,6GAAA,eAAe,OAAA;AAIjB,gBAAgB;AAChB,mCAAuK;AAA9J,wGAAA,cAAc,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,iHAAA,uBAAuB,OAAA;AAAE,mHAAA,yBAAyB,OAAA;AAAE,qHAAA,2BAA2B,OAAA;AAAE,qHAAA,2BAA2B,OAAA;AAEpJ,eAAe;AACf,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;AAEH,gDAA6D;AAmB7D,aAAa;AACb,2CAWsB;AAVpB,0GAAA,YAAY,OAAA;AACZ,6GAAA,eAAe,OAAA;AACf,gHAAA,kBAAkB,OAAA;AAClB,8GAAA,gBAAgB,OAAA;AAChB,2GAAA,aAAa,OAAA;AACb,+GAAA,iBAAiB,OAAA;AACjB,wHAAA,0BAA0B,OAAA;AAC1B,kHAAA,oBAAoB,OAAA;AACpB,6GAAA,eAAe,OAAA;AAIjB,gBAAgB;AAChB,mCAAuK;AAA9J,wGAAA,cAAc,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,iHAAA,uBAAuB,OAAA;AAAE,mHAAA,yBAAyB,OAAA;AAAE,qHAAA,2BAA2B,OAAA;AAAE,qHAAA,2BAA2B,OAAA;AAEpJ,eAAe;AACf,+CAYwB;AAXtB,6GAAA,aAAa,OAAA;AACb,yGAAA,SAAS,OAAA;AACT,gHAAA,gBAAgB,OAAA;AAChB,wHAAA,wBAAwB,OAAA;AACxB,4GAAA,YAAY,OAAA;AACZ,2GAAA,WAAW,OAAA;AACX,2GAAA,WAAW,OAAA;AACX,kHAAA,kBAAkB,OAAA;AAClB,qHAAA,qBAAqB,OAAA;AACrB,wHAAA,wBAAwB,OAAA;AAI1B,wBAAwB;AACxB,+CAAoD;AAA3C,kHAAA,kBAAkB,OAAA;AAE3B,+EAA+E;AAC/E,wDAA0F;AAAjF,sHAAA,sBAAsB,OAAA;AAE/B,mBAAmB;AACnB,qCAWmB;AAVjB,yHAAA,8BAA8B,OAAA;AAC9B,6GAAA,kBAAkB,OAAA;AAClB,qHAAA,0BAA0B,OAAA;AAC1B,mHAAA,wBAAwB,OAAA;AACxB,oHAAA,yBAAyB,OAAA;AACzB,oHAAA,yBAAyB,OAAA;AACzB,gHAAA,qBAAqB,OAAA;AAMvB,qBAAqB;AACrB,yCAOqB;AANnB,4GAAA,eAAe,OAAA;AACf,4GAAA,eAAe,OAAA;AACf,6GAAA,gBAAgB,OAAA;AAChB,oHAAA,uBAAuB,OAAA;AACvB,iHAAA,oBAAoB,OAAA;AAItB,qBAAqB;AACrB,2DAS8B;AAR5B,kHAAA,YAAY,OAAA;AACZ,sHAAA,gBAAgB,OAAA;AAChB,8HAAA,wBAAwB,OAAA;AACxB,sHAAA,gBAAgB,OAAA;AAChB,6HAAA,uBAAuB,OAAA;AAMzB,oDAMgC;AAL9B,sHAAA,yBAAyB,OAAA;AACzB,2HAAA,8BAA8B,OAAA;AAC9B,6GAAA,gBAAgB,OAAA;AAoBlB,4CAAuF;AAA9E,yGAAA,eAAe,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AAC3D,sCAuBwB;AAtBtB,yGAAA,kBAAkB,OAAA;AAClB,0GAAA,mBAAmB,OAAA;AACnB,6GAAA,sBAAsB,OAAA;AACtB,uGAAA,gBAAgB,OAAA;AAChB,uGAAA,gBAAgB,OAAA;AAChB,qGAAA,cAAc,OAAA;AACd,2GAAA,oBAAoB,OAAA;AACpB,iGAAA,UAAU,OAAA;AACV,yGAAA,kBAAkB,OAAA;AAClB,kGAAA,WAAW,OAAA;AACX,sGAAA,eAAe,OAAA;AACf,uGAAA,gBAAgB,OAAA;AAYlB,sDAAuG;AAA9F,+GAAA,iBAAiB,OAAA;AAC1B,oEAAgK;AAAvJ,sHAAA,iBAAiB,OAAA;AAAE,uHAAA,kBAAkB,OAAA;AAAE,uHAAA,kBAAkB,OAAA;AAAE,iHAAA,YAAY,OAAA;AAAE,oHAAA,eAAe,OAAA;AAAE,yHAAA,oBAAoB,OAAA;AACvH,6CAA+J;AAAtJ,oHAAA,yBAAyB,OAAA;AAAE,yHAAA,8BAA8B,OAAA;AAAE,4GAAA,iBAAiB,OAAA;AAAE,+GAAA,oBAAoB,OAAA;AAE3G,qBAAqB;AACrB,8CAA+D;AAAtD,mGAAA,QAAQ,OAAA;AAAE,0GAAA,eAAe,OAAA;AAClC,8DAAoF;AAA3E,mHAAA,gBAAgB,OAAA;AAAE,uHAAA,oBAAoB,OAAA;AAC/C,4CAK2B;AAJzB,kHAAA,wBAAwB,OAAA;AACxB,qHAAA,2BAA2B,OAAA;AAC3B,oHAAA,0BAA0B,OAAA;AAC1B,sHAAA,4BAA4B,OAAA;AAY9B,sBAAsB;AACtB,uDAOgC;AAN9B,mHAAA,mBAAmB,OAAA;AACnB,oHAAA,oBAAoB,OAAA;AACpB,sHAAA,sBAAsB,OAAA;AACtB,gHAAA,gBAAgB,OAAA;AAIlB,mDAA2H;AAAlH,iHAAA,mBAAmB,OAAA;AAAE,kHAAA,oBAAoB,OAAA;AAClD,2CAAwG;AAA/F,oHAAA,0BAA0B,OAAA;AAAE,6GAAA,mBAAmB,OAAA;AAExD,eAAe;AACf,6CAQuB;AAPrB,yGAAA,UAAU,OAAA;AACV,6GAAA,cAAc,OAAA;AACd,qHAAA,sBAAsB,OAAA;AAOxB,kDAA6F;AAApF,oHAAA,uBAAuB,OAAA;AAChC,8CAAuF;AAA9E,gHAAA,qBAAqB,OAAA;AAC9B,mCAAuG;AAA9F,mGAAA,SAAS,OAAA;AAAE,oGAAA,UAAU,OAAA;AAE9B,sCAAsC;AACtC,+BASgB;AARd,sGAAA,cAAc,OAAA;AACd,yGAAA,iBAAiB,OAAA;AACjB,oGAAA,YAAY,OAAA;AAEZ,qGAAA,aAAa,OAAA;AACb,yFAAA,CAAC,OAAA;AACD,0GAAA,kBAAkB,OAAA;AAIP,QAAA,wBAAwB,GAAG,QAAQ,CAAC;AAGpC,QAAA,UAAU,GAAG;IACxB,QAAQ,EAAE,kBAAW;CACtB,CAAC;AAEF,2DAA2D;AAC9C,QAAA,aAAa,GACxB,8CAA8C;IAC9C,6DAA6D;IAC7D,sDAAsD,CAAC;AACzD,6CAA2B;AAC3B,8CAA4B;AAC5B,+CAA6B;AAC7B,wCAAsB;AAEtB,+CAA6B;AAC7B,mDAAiC;AAEjC,iCAAiC;AACjC,mDAQ+B;AAP7B,4GAAA,eAAe,OAAA;AACf,2GAAA,cAAc,OAAA;AACd,0GAAA,aAAa,OAAA;AACb,uGAAA,UAAU,OAAA;AAMZ,uEAAuE;AACvE,2CAW2B;AAVzB,wGAAA,eAAe,OAAA;AACf,iHAAA,wBAAwB,OAAA;AACxB,0GAAA,iBAAiB,OAAA;AACjB,qGAAA,YAAY,OAAA;AACZ,2GAAA,kBAAkB,OAAA;AAClB,4GAAA,mBAAmB,OAAA;AAOrB,0FAA0F;AAC1F,mCAuBkB;AAtBhB,sGAAA,YAAY,OAAA;AACZ,6GAAA,mBAAmB,OAAA;AACnB,4GAAA,kBAAkB,OAAA;AAClB,uGAAA,aAAa,OAAA;AACb,8GAAA,oBAAoB,OAAA;AACpB,+GAAA,qBAAqB,OAAA;AACrB,uGAAA,aAAa,OAAA;AACb,0GAAA,gBAAgB,OAAA;AAChB,yGAAA,eAAe,OAAA;AACf,2GAAA,iBAAiB,OAAA;AACjB,2GAAA,iBAAiB,OAAA;AACjB,yGAAA,eAAe,OAAA;AACf,yGAAA,eAAe,OAAA;AACf,mGAAA,SAAS,OAAA;AAWX,sDAAsD;AACtD,yCAMyB;AALvB,2GAAA,kBAAkB,OAAA;AAClB,qGAAA,YAAY,OAAA;AACZ,qGAAA,YAAY,OAAA;AAId,yDAA2F;AAAlF,wHAAA,uBAAuB,OAAA;AAEhC,mDAAmD;AACnD,sDAOgC;AAN9B,iHAAA,kBAAkB,OAAA;AAClB,4GAAA,aAAa,OAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sample receipt flows.
|
|
3
|
+
*
|
|
4
|
+
* Realistic, self-contained example receipts for the three flows a prospect's
|
|
5
|
+
* counterparty would actually be handed: an x402 machine payment, a refund, and
|
|
6
|
+
* an agent purchase. Each carries a policy version, a delegated scope, a
|
|
7
|
+
* decision, a transaction reference, a provider, and an amount.
|
|
8
|
+
*
|
|
9
|
+
* These are SAMPLE parameters (fixed, illustrative). The signature and hash are
|
|
10
|
+
* REAL when signed by the CLI. Metadata only — never any prompt/completion.
|
|
11
|
+
*
|
|
12
|
+
* Patent notice: Protected by U.S. patent-pending technology
|
|
13
|
+
* (App. Nos. 63/983,615; 63/983,621; 63/983,843; 63/984,626;
|
|
14
|
+
* 64/071,781; 64/071,789).
|
|
15
|
+
*/
|
|
16
|
+
import type { SpendDecision, SpendScope } from '../types';
|
|
17
|
+
export type SampleFlow = 'x402-payment' | 'refund' | 'agent-purchase';
|
|
18
|
+
export declare const SAMPLE_FLOWS: SampleFlow[];
|
|
19
|
+
export declare function isSampleFlow(value: string): value is SampleFlow;
|
|
20
|
+
export interface SampleReceiptSpec {
|
|
21
|
+
flow: SampleFlow;
|
|
22
|
+
scope: SpendScope;
|
|
23
|
+
decision: SpendDecision;
|
|
24
|
+
/** Metadata-only context describing the flow (delegated scope, tx ref, etc.). */
|
|
25
|
+
context: Record<string, unknown>;
|
|
26
|
+
}
|
|
27
|
+
export declare function buildSampleReceipt(flow: SampleFlow): SampleReceiptSpec;
|
|
28
|
+
//# sourceMappingURL=flows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flows.d.ts","sourceRoot":"","sources":["../../src/samples/flows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE1D,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAEtE,eAAO,MAAM,YAAY,EAAE,UAAU,EAAiD,CAAC;AAEvF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,UAAU,CAE/D;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,aAAa,CAAC;IACxB,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAKD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,iBAAiB,CA2HtE"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Sample receipt flows.
|
|
4
|
+
*
|
|
5
|
+
* Realistic, self-contained example receipts for the three flows a prospect's
|
|
6
|
+
* counterparty would actually be handed: an x402 machine payment, a refund, and
|
|
7
|
+
* an agent purchase. Each carries a policy version, a delegated scope, a
|
|
8
|
+
* decision, a transaction reference, a provider, and an amount.
|
|
9
|
+
*
|
|
10
|
+
* These are SAMPLE parameters (fixed, illustrative). The signature and hash are
|
|
11
|
+
* REAL when signed by the CLI. Metadata only — never any prompt/completion.
|
|
12
|
+
*
|
|
13
|
+
* Patent notice: Protected by U.S. patent-pending technology
|
|
14
|
+
* (App. Nos. 63/983,615; 63/983,621; 63/983,843; 63/984,626;
|
|
15
|
+
* 64/071,781; 64/071,789).
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.SAMPLE_FLOWS = void 0;
|
|
19
|
+
exports.isSampleFlow = isSampleFlow;
|
|
20
|
+
exports.buildSampleReceipt = buildSampleReceipt;
|
|
21
|
+
exports.SAMPLE_FLOWS = ['x402-payment', 'refund', 'agent-purchase'];
|
|
22
|
+
function isSampleFlow(value) {
|
|
23
|
+
return exports.SAMPLE_FLOWS.includes(value);
|
|
24
|
+
}
|
|
25
|
+
/** Deterministic ISO timestamp so sample artifacts are reproducible. */
|
|
26
|
+
const SAMPLE_TS = '2026-07-16T15:30:00.000Z';
|
|
27
|
+
function buildSampleReceipt(flow) {
|
|
28
|
+
switch (flow) {
|
|
29
|
+
case 'x402-payment':
|
|
30
|
+
return {
|
|
31
|
+
flow,
|
|
32
|
+
scope: { tenantId: 'acme-agents', agentId: 'checkout-bot-v2', provider: 'openai' },
|
|
33
|
+
decision: {
|
|
34
|
+
decisionId: 'sample-x402-payment-0001',
|
|
35
|
+
timestamp: SAMPLE_TS,
|
|
36
|
+
action: 'allow',
|
|
37
|
+
triggeredCap: null,
|
|
38
|
+
triggeredScopeKey: 'tenantId=acme-agents|agentId=checkout-bot-v2',
|
|
39
|
+
projectedCents: 1299,
|
|
40
|
+
windowSpendBefore: 0,
|
|
41
|
+
windowSpendAfter: 1299,
|
|
42
|
+
provider: 'openai',
|
|
43
|
+
modelRequested: 'gpt-5',
|
|
44
|
+
modelResolved: 'gpt-5',
|
|
45
|
+
policyId: 'payments-x402-v3',
|
|
46
|
+
policyVersion: 3,
|
|
47
|
+
enforcementMode: 'enforce',
|
|
48
|
+
reasons: ['Within per_day cap ($500.00)', 'capability=payment_execute satisfied'],
|
|
49
|
+
entryType: 'outcome',
|
|
50
|
+
outcomeReceipt: {
|
|
51
|
+
flow: 'x402-payment',
|
|
52
|
+
protocol: 'x402',
|
|
53
|
+
transactionReference: '0x9f2c4a7b3e1d8c6f0a5b2e9d4c7f1a3b6e8d0c2f4a7b9e1d3c5f8a0b2e4d6c9f',
|
|
54
|
+
settlementRail: 'USDC (base)',
|
|
55
|
+
amountCents: 1299,
|
|
56
|
+
currency: 'USD',
|
|
57
|
+
delegatedScope: ['payment_execute', 'read_only'],
|
|
58
|
+
capabilityTier: 'payment_execute',
|
|
59
|
+
counterparty: 'api.example-merchant.com',
|
|
60
|
+
outcome: 'settled',
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
context: {
|
|
64
|
+
summary: 'Autonomous agent paid $12.99 to an x402-gated API under a delegated payment scope.',
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
case 'refund':
|
|
68
|
+
return {
|
|
69
|
+
flow,
|
|
70
|
+
scope: { tenantId: 'acme-agents', agentId: 'support-bot-v4', provider: 'anthropic' },
|
|
71
|
+
decision: {
|
|
72
|
+
decisionId: 'sample-refund-0001',
|
|
73
|
+
timestamp: SAMPLE_TS,
|
|
74
|
+
action: 'allow',
|
|
75
|
+
triggeredCap: null,
|
|
76
|
+
triggeredScopeKey: 'tenantId=acme-agents|agentId=support-bot-v4',
|
|
77
|
+
projectedCents: 4500,
|
|
78
|
+
windowSpendBefore: 12000,
|
|
79
|
+
windowSpendAfter: 16500,
|
|
80
|
+
provider: 'anthropic',
|
|
81
|
+
modelRequested: 'claude-sonnet-4-6',
|
|
82
|
+
modelResolved: 'claude-sonnet-4-6',
|
|
83
|
+
policyId: 'refunds-support-v2',
|
|
84
|
+
policyVersion: 2,
|
|
85
|
+
enforcementMode: 'enforce',
|
|
86
|
+
reasons: ['Refund under $50.00 auto-approval threshold', 'capability=payment_initiate satisfied'],
|
|
87
|
+
entryType: 'outcome',
|
|
88
|
+
outcomeReceipt: {
|
|
89
|
+
flow: 'refund',
|
|
90
|
+
transactionReference: 're_3PqL8k2eZvKYlo2C1a4b7c9d',
|
|
91
|
+
originalChargeReference: 'ch_3PqK1j9dYuJXkn1B0z3a6b8c',
|
|
92
|
+
provider: 'stripe',
|
|
93
|
+
amountCents: 4500,
|
|
94
|
+
currency: 'USD',
|
|
95
|
+
delegatedScope: ['payment_initiate', 'read_only'],
|
|
96
|
+
capabilityTier: 'payment_initiate',
|
|
97
|
+
reasonCode: 'requested_by_customer',
|
|
98
|
+
outcome: 'settled',
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
context: {
|
|
102
|
+
summary: 'Support agent issued a $45.00 refund within a delegated refund scope and auto-approval cap.',
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
case 'agent-purchase':
|
|
106
|
+
return {
|
|
107
|
+
flow,
|
|
108
|
+
scope: { tenantId: 'acme-agents', agentId: 'procurement-bot-v1', provider: 'bedrock' },
|
|
109
|
+
decision: {
|
|
110
|
+
decisionId: 'sample-agent-purchase-0001',
|
|
111
|
+
timestamp: SAMPLE_TS,
|
|
112
|
+
action: 'downgrade',
|
|
113
|
+
triggeredCap: {
|
|
114
|
+
amountCents: 20000,
|
|
115
|
+
window: 'per_day',
|
|
116
|
+
action: 'downgrade',
|
|
117
|
+
downgradeTo: 'amazon.nova-lite-v1:0',
|
|
118
|
+
reason: 'Daily model budget reached; routing to fallback model',
|
|
119
|
+
},
|
|
120
|
+
triggeredScopeKey: 'tenantId=acme-agents|agentId=procurement-bot-v1',
|
|
121
|
+
projectedCents: 8800,
|
|
122
|
+
windowSpendBefore: 19500,
|
|
123
|
+
windowSpendAfter: 19980,
|
|
124
|
+
provider: 'bedrock',
|
|
125
|
+
modelRequested: 'anthropic.claude-opus-4-v1:0',
|
|
126
|
+
modelResolved: 'amazon.nova-lite-v1:0',
|
|
127
|
+
policyId: 'procurement-agent-v5',
|
|
128
|
+
policyVersion: 5,
|
|
129
|
+
enforcementMode: 'enforce',
|
|
130
|
+
reasons: ['Per_day model budget reached, routed to fallback model', 'capability=data_write satisfied'],
|
|
131
|
+
entryType: 'outcome',
|
|
132
|
+
actualCents: 480,
|
|
133
|
+
outcomeReceipt: {
|
|
134
|
+
flow: 'agent-purchase',
|
|
135
|
+
transactionReference: 'po-2026-07-16-000482',
|
|
136
|
+
provider: 'internal-procurement-api',
|
|
137
|
+
amountCents: 480,
|
|
138
|
+
currency: 'USD',
|
|
139
|
+
delegatedScope: ['data_write', 'read_only'],
|
|
140
|
+
capabilityTier: 'data_write',
|
|
141
|
+
item: 'SKU-44821 (office supplies, qty 3)',
|
|
142
|
+
outcome: 'settled',
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
context: {
|
|
146
|
+
summary: 'Procurement agent purchase was allowed but auto-downgraded to a cheaper model when the daily model budget was hit.',
|
|
147
|
+
},
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=flows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flows.js","sourceRoot":"","sources":["../../src/samples/flows.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAQH,oCAEC;AAaD,gDA2HC;AA5IY,QAAA,YAAY,GAAiB,CAAC,cAAc,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AAEvF,SAAgB,YAAY,CAAC,KAAa;IACxC,OAAQ,oBAAyB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAUD,wEAAwE;AACxE,MAAM,SAAS,GAAG,0BAA0B,CAAC;AAE7C,SAAgB,kBAAkB,CAAC,IAAgB;IACjD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,cAAc;YACjB,OAAO;gBACL,IAAI;gBACJ,KAAK,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE;gBAClF,QAAQ,EAAE;oBACR,UAAU,EAAE,0BAA0B;oBACtC,SAAS,EAAE,SAAS;oBACpB,MAAM,EAAE,OAAO;oBACf,YAAY,EAAE,IAAI;oBAClB,iBAAiB,EAAE,8CAA8C;oBACjE,cAAc,EAAE,IAAI;oBACpB,iBAAiB,EAAE,CAAC;oBACpB,gBAAgB,EAAE,IAAI;oBACtB,QAAQ,EAAE,QAAQ;oBAClB,cAAc,EAAE,OAAO;oBACvB,aAAa,EAAE,OAAO;oBACtB,QAAQ,EAAE,kBAAkB;oBAC5B,aAAa,EAAE,CAAC;oBAChB,eAAe,EAAE,SAAS;oBAC1B,OAAO,EAAE,CAAC,8BAA8B,EAAE,sCAAsC,CAAC;oBACjF,SAAS,EAAE,SAAS;oBACpB,cAAc,EAAE;wBACd,IAAI,EAAE,cAAc;wBACpB,QAAQ,EAAE,MAAM;wBAChB,oBAAoB,EAAE,oEAAoE;wBAC1F,cAAc,EAAE,aAAa;wBAC7B,WAAW,EAAE,IAAI;wBACjB,QAAQ,EAAE,KAAK;wBACf,cAAc,EAAE,CAAC,iBAAiB,EAAE,WAAW,CAAC;wBAChD,cAAc,EAAE,iBAAiB;wBACjC,YAAY,EAAE,0BAA0B;wBACxC,OAAO,EAAE,SAAS;qBACnB;iBACF;gBACD,OAAO,EAAE;oBACP,OAAO,EAAE,oFAAoF;iBAC9F;aACF,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO;gBACL,IAAI;gBACJ,KAAK,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,WAAW,EAAE;gBACpF,QAAQ,EAAE;oBACR,UAAU,EAAE,oBAAoB;oBAChC,SAAS,EAAE,SAAS;oBACpB,MAAM,EAAE,OAAO;oBACf,YAAY,EAAE,IAAI;oBAClB,iBAAiB,EAAE,6CAA6C;oBAChE,cAAc,EAAE,IAAI;oBACpB,iBAAiB,EAAE,KAAK;oBACxB,gBAAgB,EAAE,KAAK;oBACvB,QAAQ,EAAE,WAAW;oBACrB,cAAc,EAAE,mBAAmB;oBACnC,aAAa,EAAE,mBAAmB;oBAClC,QAAQ,EAAE,oBAAoB;oBAC9B,aAAa,EAAE,CAAC;oBAChB,eAAe,EAAE,SAAS;oBAC1B,OAAO,EAAE,CAAC,6CAA6C,EAAE,uCAAuC,CAAC;oBACjG,SAAS,EAAE,SAAS;oBACpB,cAAc,EAAE;wBACd,IAAI,EAAE,QAAQ;wBACd,oBAAoB,EAAE,6BAA6B;wBACnD,uBAAuB,EAAE,6BAA6B;wBACtD,QAAQ,EAAE,QAAQ;wBAClB,WAAW,EAAE,IAAI;wBACjB,QAAQ,EAAE,KAAK;wBACf,cAAc,EAAE,CAAC,kBAAkB,EAAE,WAAW,CAAC;wBACjD,cAAc,EAAE,kBAAkB;wBAClC,UAAU,EAAE,uBAAuB;wBACnC,OAAO,EAAE,SAAS;qBACnB;iBACF;gBACD,OAAO,EAAE;oBACP,OAAO,EAAE,6FAA6F;iBACvG;aACF,CAAC;QACJ,KAAK,gBAAgB;YACnB,OAAO;gBACL,IAAI;gBACJ,KAAK,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,SAAS,EAAE;gBACtF,QAAQ,EAAE;oBACR,UAAU,EAAE,4BAA4B;oBACxC,SAAS,EAAE,SAAS;oBACpB,MAAM,EAAE,WAAW;oBACnB,YAAY,EAAE;wBACZ,WAAW,EAAE,KAAK;wBAClB,MAAM,EAAE,SAAS;wBACjB,MAAM,EAAE,WAAW;wBACnB,WAAW,EAAE,uBAAuB;wBACpC,MAAM,EAAE,uDAAuD;qBAChE;oBACD,iBAAiB,EAAE,iDAAiD;oBACpE,cAAc,EAAE,IAAI;oBACpB,iBAAiB,EAAE,KAAK;oBACxB,gBAAgB,EAAE,KAAK;oBACvB,QAAQ,EAAE,SAAS;oBACnB,cAAc,EAAE,8BAA8B;oBAC9C,aAAa,EAAE,uBAAuB;oBACtC,QAAQ,EAAE,sBAAsB;oBAChC,aAAa,EAAE,CAAC;oBAChB,eAAe,EAAE,SAAS;oBAC1B,OAAO,EAAE,CAAC,wDAAwD,EAAE,iCAAiC,CAAC;oBACtG,SAAS,EAAE,SAAS;oBACpB,WAAW,EAAE,GAAG;oBAChB,cAAc,EAAE;wBACd,IAAI,EAAE,gBAAgB;wBACtB,oBAAoB,EAAE,sBAAsB;wBAC5C,QAAQ,EAAE,0BAA0B;wBACpC,WAAW,EAAE,GAAG;wBAChB,QAAQ,EAAE,KAAK;wBACf,cAAc,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;wBAC3C,cAAc,EAAE,YAAY;wBAC5B,IAAI,EAAE,oCAAoC;wBAC1C,OAAO,EAAE,SAAS;qBACnB;iBACF;gBACD,OAAO,EAAE;oBACP,OAAO,EAAE,oHAAoH;iBAC9H;aACF,CAAC;IACN,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standalone, self-verifying HTML for a sample receipt.
|
|
3
|
+
*
|
|
4
|
+
* The generated page embeds the receipt and, on load, re-derives the entry hash
|
|
5
|
+
* from the receipt's canonical JSON (SubtleCrypto SHA-256) and verifies the
|
|
6
|
+
* Ed25519 signature (SubtleCrypto Ed25519, where supported) — entirely
|
|
7
|
+
* in-browser, no network. If the browser lacks WebCrypto Ed25519, the hash
|
|
8
|
+
* chain is still checked and the page links to agentguard.run/verify with the
|
|
9
|
+
* receipt prefilled for signature verification.
|
|
10
|
+
*
|
|
11
|
+
* The in-browser canonicalJson MUST match src/decision-log.ts canonicalJson so
|
|
12
|
+
* the recomputed hash equals the signed entryHash.
|
|
13
|
+
*/
|
|
14
|
+
export interface SampleVerifierData {
|
|
15
|
+
flow: string;
|
|
16
|
+
version: string;
|
|
17
|
+
entry: {
|
|
18
|
+
sequence: number;
|
|
19
|
+
decision: unknown;
|
|
20
|
+
previousHash: string;
|
|
21
|
+
entryHash: string;
|
|
22
|
+
signature: string;
|
|
23
|
+
signerFingerprint: string;
|
|
24
|
+
};
|
|
25
|
+
publicKeyHex: string;
|
|
26
|
+
context: Record<string, unknown>;
|
|
27
|
+
}
|
|
28
|
+
export declare function buildSampleVerifierHtml(data: SampleVerifierData): string;
|
|
29
|
+
//# sourceMappingURL=verifier-html.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifier-html.d.ts","sourceRoot":"","sources":["../../src/samples/verifier-html.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAuKxE"}
|