@peac/schema 0.10.13 → 0.11.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/dist/agent-identity.d.ts +62 -416
- package/dist/agent-identity.d.ts.map +1 -1
- package/dist/attestation-receipt.d.ts +5 -39
- package/dist/attestation-receipt.d.ts.map +1 -1
- package/dist/attribution.cjs +4 -2
- package/dist/attribution.cjs.map +1 -1
- package/dist/attribution.d.ts +69 -448
- package/dist/attribution.d.ts.map +1 -1
- package/dist/attribution.mjs +4 -2
- package/dist/attribution.mjs.map +1 -1
- package/dist/constraints.d.ts +68 -0
- package/dist/constraints.d.ts.map +1 -0
- package/dist/dispute.d.ts +262 -780
- package/dist/dispute.d.ts.map +1 -1
- package/dist/errors.d.ts +13 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/index.cjs +125 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +123 -11
- package/dist/index.mjs.map +1 -1
- package/dist/interaction.cjs +1 -1
- package/dist/interaction.cjs.map +1 -1
- package/dist/interaction.d.ts +104 -596
- package/dist/interaction.d.ts.map +1 -1
- package/dist/interaction.mjs +1 -1
- package/dist/interaction.mjs.map +1 -1
- package/dist/json.d.ts +4 -3
- package/dist/json.d.ts.map +1 -1
- package/dist/obligations.d.ts +39 -139
- package/dist/obligations.d.ts.map +1 -1
- package/dist/receipt-parser.cjs +4 -2
- package/dist/receipt-parser.cjs.map +1 -1
- package/dist/receipt-parser.mjs +4 -2
- package/dist/receipt-parser.mjs.map +1 -1
- package/dist/validators.d.ts +200 -659
- package/dist/validators.d.ts.map +1 -1
- package/dist/workflow.d.ts +32 -345
- package/dist/workflow.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/dispute.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispute.d.ts","sourceRoot":"","sources":["../src/dispute.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;;;GAIG;AACH,eAAO,MAAM,cAAc;IACzB,kCAAkC;;IAElC,kCAAkC;;IAElC,sCAAsC;;IAEtC,mCAAmC;;IAEnC,0CAA0C;;IAE1C,iDAAiD;;IAEjD,wCAAwC;;IAExC,kDAAkD;;IAElD,mDAAmD;;CAE3C,CAAC;AA2BX;;;;GAIG;AACH,eAAO,MAAM,eAAe,aAAsD,CAAC;AACnF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAMxD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"dispute.d.ts","sourceRoot":"","sources":["../src/dispute.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -126,6 +126,7 @@ export declare const ERROR_CODES: {
|
|
|
126
126
|
readonly E_WORKFLOW_PARENT_NOT_FOUND: "E_WORKFLOW_PARENT_NOT_FOUND";
|
|
127
127
|
readonly E_WORKFLOW_SUMMARY_INVALID: "E_WORKFLOW_SUMMARY_INVALID";
|
|
128
128
|
readonly E_WORKFLOW_CYCLE_DETECTED: "E_WORKFLOW_CYCLE_DETECTED";
|
|
129
|
+
readonly E_CONSTRAINT_VIOLATION: "E_CONSTRAINT_VIOLATION";
|
|
129
130
|
};
|
|
130
131
|
/**
|
|
131
132
|
* Error code type
|
|
@@ -159,4 +160,16 @@ export declare function createWorkflowContextInvalidError(details?: string): PEA
|
|
|
159
160
|
* Used when workflow DAG semantics are violated (self-parent, duplicate parents, cycle).
|
|
160
161
|
*/
|
|
161
162
|
export declare function createWorkflowDagInvalidError(reason: 'self_parent' | 'duplicate_parent' | 'cycle'): PEACError;
|
|
163
|
+
/**
|
|
164
|
+
* Create a kernel constraint violation error
|
|
165
|
+
*
|
|
166
|
+
* Used when receipt claims violate structural kernel constraints
|
|
167
|
+
* (depth, array length, object keys, string length, total nodes).
|
|
168
|
+
*/
|
|
169
|
+
export declare function createConstraintViolationError(violations: Array<{
|
|
170
|
+
constraint: string;
|
|
171
|
+
actual: number;
|
|
172
|
+
limit: number;
|
|
173
|
+
path?: string;
|
|
174
|
+
}>): PEACError;
|
|
162
175
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B;;;GAGG;AACH,eAAO,MAAM,0BAA0B,oKAA0B,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;;;;;;OAWG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,QAAQ,EAAE,aAAa,CAAC;IAExB;;;;;OAKG;IACH,QAAQ,EAAE,aAAa,CAAC;IAExB;;;;;OAKG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B;;;GAGG;AACH,eAAO,MAAM,0BAA0B,oKAA0B,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;;;;;;OAWG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,QAAQ,EAAE,aAAa,CAAC;IAExB;;;;;OAKG;IACH,QAAQ,EAAE,aAAa,CAAC;IAExB;;;;;OAKG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;CAoCd,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEvE;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE;IACR,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,SAAS,CAQX;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,SAAS,CAQjG;AAMD;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAO7E;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,aAAa,GAAG,kBAAkB,GAAG,OAAO,GACnD,SAAS,CAYX;AAMD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,KAAK,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,GACD,SAAS,CAWX"}
|
package/dist/index.cjs
CHANGED
|
@@ -53,7 +53,9 @@ var ERROR_CODES = {
|
|
|
53
53
|
E_WORKFLOW_STEP_ID_INVALID: "E_WORKFLOW_STEP_ID_INVALID",
|
|
54
54
|
E_WORKFLOW_PARENT_NOT_FOUND: "E_WORKFLOW_PARENT_NOT_FOUND",
|
|
55
55
|
E_WORKFLOW_SUMMARY_INVALID: "E_WORKFLOW_SUMMARY_INVALID",
|
|
56
|
-
E_WORKFLOW_CYCLE_DETECTED: "E_WORKFLOW_CYCLE_DETECTED"
|
|
56
|
+
E_WORKFLOW_CYCLE_DETECTED: "E_WORKFLOW_CYCLE_DETECTED",
|
|
57
|
+
// Constraint errors (400, DD-121)
|
|
58
|
+
E_CONSTRAINT_VIOLATION: "E_CONSTRAINT_VIOLATION"
|
|
57
59
|
};
|
|
58
60
|
function createPEACError(code, category, severity, retryable, options) {
|
|
59
61
|
return {
|
|
@@ -93,6 +95,16 @@ function createWorkflowDagInvalidError(reason) {
|
|
|
93
95
|
details: { reason, message: messages[reason] }
|
|
94
96
|
});
|
|
95
97
|
}
|
|
98
|
+
function createConstraintViolationError(violations) {
|
|
99
|
+
const first = violations[0];
|
|
100
|
+
const summary = violations.map((v) => `${v.constraint} (actual: ${v.actual}, limit: ${v.limit})`).join("; ");
|
|
101
|
+
return createPEACError(ERROR_CODES.E_CONSTRAINT_VIOLATION, "validation", "error", false, {
|
|
102
|
+
http_status: 400,
|
|
103
|
+
pointer: first?.path,
|
|
104
|
+
remediation: "Reduce receipt claims size to stay within kernel constraints",
|
|
105
|
+
details: { message: `Kernel constraint violated: ${summary}`, violations }
|
|
106
|
+
});
|
|
107
|
+
}
|
|
96
108
|
|
|
97
109
|
// src/normalize.ts
|
|
98
110
|
function normalizePayment(payment) {
|
|
@@ -297,6 +309,106 @@ function determinePurposeReason(context) {
|
|
|
297
309
|
function hasUnknownPurposeTokens(tokens) {
|
|
298
310
|
return tokens.some((token) => !isCanonicalPurpose(token));
|
|
299
311
|
}
|
|
312
|
+
|
|
313
|
+
// src/constraints.ts
|
|
314
|
+
var KERNEL_CONSTRAINTS = {
|
|
315
|
+
/** Maximum nesting depth for JSON evidence */
|
|
316
|
+
MAX_NESTED_DEPTH: 32,
|
|
317
|
+
/** Maximum array length in evidence */
|
|
318
|
+
MAX_ARRAY_LENGTH: 1e4,
|
|
319
|
+
/** Maximum object keys in a single object */
|
|
320
|
+
MAX_OBJECT_KEYS: 1e3,
|
|
321
|
+
/** Maximum string length in code units (JS .length). Matches assertJsonSafeIterative. */
|
|
322
|
+
MAX_STRING_LENGTH: 65536,
|
|
323
|
+
/** Maximum total nodes to visit during traversal */
|
|
324
|
+
MAX_TOTAL_NODES: 1e5,
|
|
325
|
+
/** Temporal validity clock skew tolerance in seconds (DD-8) */
|
|
326
|
+
CLOCK_SKEW_SECONDS: 60
|
|
327
|
+
};
|
|
328
|
+
function validateKernelConstraints(claims) {
|
|
329
|
+
const violations = [];
|
|
330
|
+
if (claims === null || claims === void 0 || typeof claims !== "object") {
|
|
331
|
+
return { valid: true, violations };
|
|
332
|
+
}
|
|
333
|
+
let totalNodes = 0;
|
|
334
|
+
const stack = [
|
|
335
|
+
{ value: claims, depth: 0, path: "" }
|
|
336
|
+
];
|
|
337
|
+
while (stack.length > 0) {
|
|
338
|
+
const item = stack.pop();
|
|
339
|
+
totalNodes++;
|
|
340
|
+
if (totalNodes > KERNEL_CONSTRAINTS.MAX_TOTAL_NODES) {
|
|
341
|
+
violations.push({
|
|
342
|
+
constraint: "MAX_TOTAL_NODES",
|
|
343
|
+
actual: totalNodes,
|
|
344
|
+
limit: KERNEL_CONSTRAINTS.MAX_TOTAL_NODES,
|
|
345
|
+
path: item.path
|
|
346
|
+
});
|
|
347
|
+
break;
|
|
348
|
+
}
|
|
349
|
+
if (item.depth > KERNEL_CONSTRAINTS.MAX_NESTED_DEPTH) {
|
|
350
|
+
violations.push({
|
|
351
|
+
constraint: "MAX_NESTED_DEPTH",
|
|
352
|
+
actual: item.depth,
|
|
353
|
+
limit: KERNEL_CONSTRAINTS.MAX_NESTED_DEPTH,
|
|
354
|
+
path: item.path
|
|
355
|
+
});
|
|
356
|
+
continue;
|
|
357
|
+
}
|
|
358
|
+
if (item.value === null || typeof item.value !== "object") {
|
|
359
|
+
if (typeof item.value === "string") {
|
|
360
|
+
if (item.value.length > KERNEL_CONSTRAINTS.MAX_STRING_LENGTH) {
|
|
361
|
+
violations.push({
|
|
362
|
+
constraint: "MAX_STRING_LENGTH",
|
|
363
|
+
actual: item.value.length,
|
|
364
|
+
limit: KERNEL_CONSTRAINTS.MAX_STRING_LENGTH,
|
|
365
|
+
path: item.path
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
continue;
|
|
370
|
+
}
|
|
371
|
+
if (Array.isArray(item.value)) {
|
|
372
|
+
if (item.value.length > KERNEL_CONSTRAINTS.MAX_ARRAY_LENGTH) {
|
|
373
|
+
violations.push({
|
|
374
|
+
constraint: "MAX_ARRAY_LENGTH",
|
|
375
|
+
actual: item.value.length,
|
|
376
|
+
limit: KERNEL_CONSTRAINTS.MAX_ARRAY_LENGTH,
|
|
377
|
+
path: item.path
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
for (let i = item.value.length - 1; i >= 0; i--) {
|
|
381
|
+
stack.push({
|
|
382
|
+
value: item.value[i],
|
|
383
|
+
depth: item.depth + 1,
|
|
384
|
+
path: `${item.path}[${i}]`
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
continue;
|
|
388
|
+
}
|
|
389
|
+
const keys = Object.keys(item.value);
|
|
390
|
+
if (keys.length > KERNEL_CONSTRAINTS.MAX_OBJECT_KEYS) {
|
|
391
|
+
violations.push({
|
|
392
|
+
constraint: "MAX_OBJECT_KEYS",
|
|
393
|
+
actual: keys.length,
|
|
394
|
+
limit: KERNEL_CONSTRAINTS.MAX_OBJECT_KEYS,
|
|
395
|
+
path: item.path
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
for (let i = keys.length - 1; i >= 0; i--) {
|
|
399
|
+
const key = keys[i];
|
|
400
|
+
const childPath = item.path ? `${item.path}.${key}` : key;
|
|
401
|
+
stack.push({
|
|
402
|
+
value: item.value[key],
|
|
403
|
+
depth: item.depth + 1,
|
|
404
|
+
path: childPath
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
return { valid: violations.length === 0, violations };
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
// src/json.ts
|
|
300
412
|
function isPlainObject(value) {
|
|
301
413
|
if (value === null || typeof value !== "object") {
|
|
302
414
|
return false;
|
|
@@ -315,25 +427,25 @@ var JsonValueSchema = zod.z.lazy(
|
|
|
315
427
|
zod.z.array(JsonValueSchema),
|
|
316
428
|
// Plain object check then record validation
|
|
317
429
|
PlainObjectSchema.transform((obj) => obj).pipe(
|
|
318
|
-
zod.z.record(JsonValueSchema)
|
|
430
|
+
zod.z.record(zod.z.string(), JsonValueSchema)
|
|
319
431
|
)
|
|
320
432
|
])
|
|
321
433
|
);
|
|
322
434
|
var JsonObjectSchema = PlainObjectSchema.transform(
|
|
323
435
|
(obj) => obj
|
|
324
|
-
).pipe(zod.z.record(JsonValueSchema));
|
|
436
|
+
).pipe(zod.z.record(zod.z.string(), JsonValueSchema));
|
|
325
437
|
var JsonArraySchema = zod.z.array(JsonValueSchema);
|
|
326
438
|
var JSON_EVIDENCE_LIMITS = {
|
|
327
439
|
/** Maximum nesting depth (default: 32) */
|
|
328
|
-
maxDepth:
|
|
440
|
+
maxDepth: KERNEL_CONSTRAINTS.MAX_NESTED_DEPTH,
|
|
329
441
|
/** Maximum array length (default: 10,000) */
|
|
330
|
-
maxArrayLength:
|
|
442
|
+
maxArrayLength: KERNEL_CONSTRAINTS.MAX_ARRAY_LENGTH,
|
|
331
443
|
/** Maximum object keys (default: 1,000) */
|
|
332
|
-
maxObjectKeys:
|
|
333
|
-
/** Maximum string length in
|
|
334
|
-
maxStringLength:
|
|
444
|
+
maxObjectKeys: KERNEL_CONSTRAINTS.MAX_OBJECT_KEYS,
|
|
445
|
+
/** Maximum string length in code units (default: 65,536) */
|
|
446
|
+
maxStringLength: KERNEL_CONSTRAINTS.MAX_STRING_LENGTH,
|
|
335
447
|
/** Maximum total nodes to visit (default: 100,000) */
|
|
336
|
-
maxTotalNodes:
|
|
448
|
+
maxTotalNodes: KERNEL_CONSTRAINTS.MAX_TOTAL_NODES
|
|
337
449
|
};
|
|
338
450
|
function assertJsonSafeIterative(value, limits = {}) {
|
|
339
451
|
const maxDepth = limits.maxDepth ?? JSON_EVIDENCE_LIMITS.maxDepth;
|
|
@@ -1898,7 +2010,7 @@ var InteractionEvidenceV01BaseSchema = zod.z.object({
|
|
|
1898
2010
|
/** References to related evidence */
|
|
1899
2011
|
refs: RefsSchema.optional(),
|
|
1900
2012
|
/** Platform-specific extensions (MUST be namespaced) */
|
|
1901
|
-
extensions: zod.z.record(zod.z.unknown()).optional()
|
|
2013
|
+
extensions: zod.z.record(zod.z.string(), zod.z.unknown()).optional()
|
|
1902
2014
|
}).strict();
|
|
1903
2015
|
var InteractionEvidenceV01Schema = InteractionEvidenceV01BaseSchema.superRefine(
|
|
1904
2016
|
(ev, ctx) => {
|
|
@@ -2676,6 +2788,7 @@ exports.JsonArraySchema = JsonArraySchema;
|
|
|
2676
2788
|
exports.JsonObjectSchema = JsonObjectSchema;
|
|
2677
2789
|
exports.JsonPrimitiveSchema = JsonPrimitiveSchema;
|
|
2678
2790
|
exports.JsonValueSchema = JsonValueSchema;
|
|
2791
|
+
exports.KERNEL_CONSTRAINTS = KERNEL_CONSTRAINTS;
|
|
2679
2792
|
exports.KIND_FORMAT_PATTERN = KIND_FORMAT_PATTERN;
|
|
2680
2793
|
exports.KindSchema = KindSchema;
|
|
2681
2794
|
exports.MAX_PURPOSE_TOKENS_PER_REQUEST = MAX_PURPOSE_TOKENS_PER_REQUEST;
|
|
@@ -2752,6 +2865,7 @@ exports.computeTotalWeight = computeTotalWeight;
|
|
|
2752
2865
|
exports.createAgentIdentityAttestation = createAgentIdentityAttestation;
|
|
2753
2866
|
exports.createAttestationReceiptClaims = createAttestationReceiptClaims;
|
|
2754
2867
|
exports.createAttributionAttestation = createAttributionAttestation;
|
|
2868
|
+
exports.createConstraintViolationError = createConstraintViolationError;
|
|
2755
2869
|
exports.createContributionObligation = createContributionObligation;
|
|
2756
2870
|
exports.createCreditObligation = createCreditObligation;
|
|
2757
2871
|
exports.createDisputeAttestation = createDisputeAttestation;
|
|
@@ -2827,6 +2941,7 @@ exports.validateIdentityBinding = validateIdentityBinding;
|
|
|
2827
2941
|
exports.validateInteraction = validateInteraction;
|
|
2828
2942
|
exports.validateInteractionEvidence = validateInteractionEvidence;
|
|
2829
2943
|
exports.validateInteractionOrdered = validateInteractionOrdered;
|
|
2944
|
+
exports.validateKernelConstraints = validateKernelConstraints;
|
|
2830
2945
|
exports.validateMinimalInteractionBinding = validateMinimalInteractionBinding;
|
|
2831
2946
|
exports.validateObligationsExtension = validateObligationsExtension;
|
|
2832
2947
|
exports.validatePurposeTokens = validatePurposeTokens;
|