@agent-receipts/schema 0.1.0 → 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/dist/index.d.mts CHANGED
@@ -151,6 +151,277 @@ declare const ActionReceipt: z.ZodObject<{
151
151
  }>;
152
152
  type ActionReceipt = z.infer<typeof ActionReceipt>;
153
153
 
154
+ /**
155
+ * A single constraint definition that specifies a rule to evaluate.
156
+ */
157
+ declare const ConstraintDefinition: z.ZodObject<{
158
+ type: z.ZodString;
159
+ value: z.ZodUnknown;
160
+ message: z.ZodOptional<z.ZodString>;
161
+ }, "strip", z.ZodTypeAny, {
162
+ type: string;
163
+ value?: unknown;
164
+ message?: string | undefined;
165
+ }, {
166
+ type: string;
167
+ value?: unknown;
168
+ message?: string | undefined;
169
+ }>;
170
+ type ConstraintDefinition = z.infer<typeof ConstraintDefinition>;
171
+ /**
172
+ * Result of evaluating a single constraint.
173
+ */
174
+ declare const SingleConstraintResult: z.ZodObject<{
175
+ type: z.ZodString;
176
+ passed: z.ZodBoolean;
177
+ expected: z.ZodUnknown;
178
+ actual: z.ZodUnknown;
179
+ message: z.ZodOptional<z.ZodString>;
180
+ }, "strip", z.ZodTypeAny, {
181
+ type: string;
182
+ passed: boolean;
183
+ message?: string | undefined;
184
+ expected?: unknown;
185
+ actual?: unknown;
186
+ }, {
187
+ type: string;
188
+ passed: boolean;
189
+ message?: string | undefined;
190
+ expected?: unknown;
191
+ actual?: unknown;
192
+ }>;
193
+ type SingleConstraintResult = z.infer<typeof SingleConstraintResult>;
194
+ /**
195
+ * Aggregate result of evaluating all constraints on a receipt.
196
+ */
197
+ declare const ConstraintResult: z.ZodObject<{
198
+ passed: z.ZodBoolean;
199
+ results: z.ZodArray<z.ZodObject<{
200
+ type: z.ZodString;
201
+ passed: z.ZodBoolean;
202
+ expected: z.ZodUnknown;
203
+ actual: z.ZodUnknown;
204
+ message: z.ZodOptional<z.ZodString>;
205
+ }, "strip", z.ZodTypeAny, {
206
+ type: string;
207
+ passed: boolean;
208
+ message?: string | undefined;
209
+ expected?: unknown;
210
+ actual?: unknown;
211
+ }, {
212
+ type: string;
213
+ passed: boolean;
214
+ message?: string | undefined;
215
+ expected?: unknown;
216
+ actual?: unknown;
217
+ }>, "many">;
218
+ evaluated_at: z.ZodString;
219
+ }, "strip", z.ZodTypeAny, {
220
+ passed: boolean;
221
+ results: {
222
+ type: string;
223
+ passed: boolean;
224
+ message?: string | undefined;
225
+ expected?: unknown;
226
+ actual?: unknown;
227
+ }[];
228
+ evaluated_at: string;
229
+ }, {
230
+ passed: boolean;
231
+ results: {
232
+ type: string;
233
+ passed: boolean;
234
+ message?: string | undefined;
235
+ expected?: unknown;
236
+ actual?: unknown;
237
+ }[];
238
+ evaluated_at: string;
239
+ }>;
240
+ type ConstraintResult = z.infer<typeof ConstraintResult>;
241
+ /**
242
+ * Array of constraint definitions.
243
+ */
244
+ declare const ConstraintDefinitions: z.ZodArray<z.ZodObject<{
245
+ type: z.ZodString;
246
+ value: z.ZodUnknown;
247
+ message: z.ZodOptional<z.ZodString>;
248
+ }, "strip", z.ZodTypeAny, {
249
+ type: string;
250
+ value?: unknown;
251
+ message?: string | undefined;
252
+ }, {
253
+ type: string;
254
+ value?: unknown;
255
+ message?: string | undefined;
256
+ }>, "many">;
257
+ type ConstraintDefinitions = z.infer<typeof ConstraintDefinitions>;
258
+
259
+ declare const RubricCriterion: z.ZodObject<{
260
+ name: z.ZodString;
261
+ description: z.ZodString;
262
+ weight: z.ZodNumber;
263
+ passing_threshold: z.ZodOptional<z.ZodNumber>;
264
+ examples: z.ZodOptional<z.ZodObject<{
265
+ good: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
266
+ bad: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
267
+ }, "strip", z.ZodTypeAny, {
268
+ good?: string[] | undefined;
269
+ bad?: string[] | undefined;
270
+ }, {
271
+ good?: string[] | undefined;
272
+ bad?: string[] | undefined;
273
+ }>>;
274
+ }, "strip", z.ZodTypeAny, {
275
+ name: string;
276
+ description: string;
277
+ weight: number;
278
+ passing_threshold?: number | undefined;
279
+ examples?: {
280
+ good?: string[] | undefined;
281
+ bad?: string[] | undefined;
282
+ } | undefined;
283
+ }, {
284
+ name: string;
285
+ description: string;
286
+ weight: number;
287
+ passing_threshold?: number | undefined;
288
+ examples?: {
289
+ good?: string[] | undefined;
290
+ bad?: string[] | undefined;
291
+ } | undefined;
292
+ }>;
293
+ type RubricCriterion = z.infer<typeof RubricCriterion>;
294
+ declare const Rubric: z.ZodObject<{
295
+ version: z.ZodDefault<z.ZodString>;
296
+ criteria: z.ZodArray<z.ZodObject<{
297
+ name: z.ZodString;
298
+ description: z.ZodString;
299
+ weight: z.ZodNumber;
300
+ passing_threshold: z.ZodOptional<z.ZodNumber>;
301
+ examples: z.ZodOptional<z.ZodObject<{
302
+ good: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
303
+ bad: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
304
+ }, "strip", z.ZodTypeAny, {
305
+ good?: string[] | undefined;
306
+ bad?: string[] | undefined;
307
+ }, {
308
+ good?: string[] | undefined;
309
+ bad?: string[] | undefined;
310
+ }>>;
311
+ }, "strip", z.ZodTypeAny, {
312
+ name: string;
313
+ description: string;
314
+ weight: number;
315
+ passing_threshold?: number | undefined;
316
+ examples?: {
317
+ good?: string[] | undefined;
318
+ bad?: string[] | undefined;
319
+ } | undefined;
320
+ }, {
321
+ name: string;
322
+ description: string;
323
+ weight: number;
324
+ passing_threshold?: number | undefined;
325
+ examples?: {
326
+ good?: string[] | undefined;
327
+ bad?: string[] | undefined;
328
+ } | undefined;
329
+ }>, "many">;
330
+ passing_threshold: z.ZodDefault<z.ZodNumber>;
331
+ require_all: z.ZodDefault<z.ZodBoolean>;
332
+ }, "strip", z.ZodTypeAny, {
333
+ passing_threshold: number;
334
+ version: string;
335
+ criteria: {
336
+ name: string;
337
+ description: string;
338
+ weight: number;
339
+ passing_threshold?: number | undefined;
340
+ examples?: {
341
+ good?: string[] | undefined;
342
+ bad?: string[] | undefined;
343
+ } | undefined;
344
+ }[];
345
+ require_all: boolean;
346
+ }, {
347
+ criteria: {
348
+ name: string;
349
+ description: string;
350
+ weight: number;
351
+ passing_threshold?: number | undefined;
352
+ examples?: {
353
+ good?: string[] | undefined;
354
+ bad?: string[] | undefined;
355
+ } | undefined;
356
+ }[];
357
+ passing_threshold?: number | undefined;
358
+ version?: string | undefined;
359
+ require_all?: boolean | undefined;
360
+ }>;
361
+ type Rubric = z.infer<typeof Rubric>;
362
+ declare const CriterionResult: z.ZodObject<{
363
+ criterion: z.ZodString;
364
+ score: z.ZodNumber;
365
+ passed: z.ZodBoolean;
366
+ reasoning: z.ZodString;
367
+ }, "strip", z.ZodTypeAny, {
368
+ passed: boolean;
369
+ criterion: string;
370
+ score: number;
371
+ reasoning: string;
372
+ }, {
373
+ passed: boolean;
374
+ criterion: string;
375
+ score: number;
376
+ reasoning: string;
377
+ }>;
378
+ type CriterionResult = z.infer<typeof CriterionResult>;
379
+ declare const JudgmentResult: z.ZodObject<{
380
+ verdict: z.ZodEnum<["pass", "fail", "partial"]>;
381
+ score: z.ZodNumber;
382
+ criteria_results: z.ZodArray<z.ZodObject<{
383
+ criterion: z.ZodString;
384
+ score: z.ZodNumber;
385
+ passed: z.ZodBoolean;
386
+ reasoning: z.ZodString;
387
+ }, "strip", z.ZodTypeAny, {
388
+ passed: boolean;
389
+ criterion: string;
390
+ score: number;
391
+ reasoning: string;
392
+ }, {
393
+ passed: boolean;
394
+ criterion: string;
395
+ score: number;
396
+ reasoning: string;
397
+ }>, "many">;
398
+ overall_reasoning: z.ZodString;
399
+ rubric_version: z.ZodString;
400
+ }, "strip", z.ZodTypeAny, {
401
+ score: number;
402
+ verdict: "pass" | "fail" | "partial";
403
+ criteria_results: {
404
+ passed: boolean;
405
+ criterion: string;
406
+ score: number;
407
+ reasoning: string;
408
+ }[];
409
+ overall_reasoning: string;
410
+ rubric_version: string;
411
+ }, {
412
+ score: number;
413
+ verdict: "pass" | "fail" | "partial";
414
+ criteria_results: {
415
+ passed: boolean;
416
+ criterion: string;
417
+ score: number;
418
+ reasoning: string;
419
+ }[];
420
+ overall_reasoning: string;
421
+ rubric_version: string;
422
+ }>;
423
+ type JudgmentResult = z.infer<typeof JudgmentResult>;
424
+
154
425
  /**
155
426
  * What the client sends to POST /api/v1/receipts.
156
427
  */
@@ -476,4 +747,4 @@ declare function formatZodError(error: z.ZodError): string;
476
747
  */
477
748
  declare function createErrorResponse(code: string, message: string, status: number): ErrorResponse;
478
749
 
479
- export { ActionReceipt, CompleteReceiptInput, CreateReceiptInput, Environment, Environment as EnvironmentType, ErrorCode, ErrorCode as ErrorCodeType, ErrorResponse, ListReceiptsQuery, PaginationMeta, ReceiptStatus, ReceiptStatus as ReceiptStatusType, ReceiptType, ReceiptType as ReceiptTypeType, SignablePayload, VerifyResponse, createErrorResponse, formatZodError, validate };
750
+ export { ActionReceipt, CompleteReceiptInput, ConstraintDefinition, ConstraintDefinitions, ConstraintResult, CreateReceiptInput, CriterionResult, Environment, Environment as EnvironmentType, ErrorCode, ErrorCode as ErrorCodeType, ErrorResponse, JudgmentResult, ListReceiptsQuery, PaginationMeta, ReceiptStatus, ReceiptStatus as ReceiptStatusType, ReceiptType, ReceiptType as ReceiptTypeType, Rubric, RubricCriterion, SignablePayload, SingleConstraintResult, VerifyResponse, createErrorResponse, formatZodError, validate };
package/dist/index.d.ts CHANGED
@@ -151,6 +151,277 @@ declare const ActionReceipt: z.ZodObject<{
151
151
  }>;
152
152
  type ActionReceipt = z.infer<typeof ActionReceipt>;
153
153
 
154
+ /**
155
+ * A single constraint definition that specifies a rule to evaluate.
156
+ */
157
+ declare const ConstraintDefinition: z.ZodObject<{
158
+ type: z.ZodString;
159
+ value: z.ZodUnknown;
160
+ message: z.ZodOptional<z.ZodString>;
161
+ }, "strip", z.ZodTypeAny, {
162
+ type: string;
163
+ value?: unknown;
164
+ message?: string | undefined;
165
+ }, {
166
+ type: string;
167
+ value?: unknown;
168
+ message?: string | undefined;
169
+ }>;
170
+ type ConstraintDefinition = z.infer<typeof ConstraintDefinition>;
171
+ /**
172
+ * Result of evaluating a single constraint.
173
+ */
174
+ declare const SingleConstraintResult: z.ZodObject<{
175
+ type: z.ZodString;
176
+ passed: z.ZodBoolean;
177
+ expected: z.ZodUnknown;
178
+ actual: z.ZodUnknown;
179
+ message: z.ZodOptional<z.ZodString>;
180
+ }, "strip", z.ZodTypeAny, {
181
+ type: string;
182
+ passed: boolean;
183
+ message?: string | undefined;
184
+ expected?: unknown;
185
+ actual?: unknown;
186
+ }, {
187
+ type: string;
188
+ passed: boolean;
189
+ message?: string | undefined;
190
+ expected?: unknown;
191
+ actual?: unknown;
192
+ }>;
193
+ type SingleConstraintResult = z.infer<typeof SingleConstraintResult>;
194
+ /**
195
+ * Aggregate result of evaluating all constraints on a receipt.
196
+ */
197
+ declare const ConstraintResult: z.ZodObject<{
198
+ passed: z.ZodBoolean;
199
+ results: z.ZodArray<z.ZodObject<{
200
+ type: z.ZodString;
201
+ passed: z.ZodBoolean;
202
+ expected: z.ZodUnknown;
203
+ actual: z.ZodUnknown;
204
+ message: z.ZodOptional<z.ZodString>;
205
+ }, "strip", z.ZodTypeAny, {
206
+ type: string;
207
+ passed: boolean;
208
+ message?: string | undefined;
209
+ expected?: unknown;
210
+ actual?: unknown;
211
+ }, {
212
+ type: string;
213
+ passed: boolean;
214
+ message?: string | undefined;
215
+ expected?: unknown;
216
+ actual?: unknown;
217
+ }>, "many">;
218
+ evaluated_at: z.ZodString;
219
+ }, "strip", z.ZodTypeAny, {
220
+ passed: boolean;
221
+ results: {
222
+ type: string;
223
+ passed: boolean;
224
+ message?: string | undefined;
225
+ expected?: unknown;
226
+ actual?: unknown;
227
+ }[];
228
+ evaluated_at: string;
229
+ }, {
230
+ passed: boolean;
231
+ results: {
232
+ type: string;
233
+ passed: boolean;
234
+ message?: string | undefined;
235
+ expected?: unknown;
236
+ actual?: unknown;
237
+ }[];
238
+ evaluated_at: string;
239
+ }>;
240
+ type ConstraintResult = z.infer<typeof ConstraintResult>;
241
+ /**
242
+ * Array of constraint definitions.
243
+ */
244
+ declare const ConstraintDefinitions: z.ZodArray<z.ZodObject<{
245
+ type: z.ZodString;
246
+ value: z.ZodUnknown;
247
+ message: z.ZodOptional<z.ZodString>;
248
+ }, "strip", z.ZodTypeAny, {
249
+ type: string;
250
+ value?: unknown;
251
+ message?: string | undefined;
252
+ }, {
253
+ type: string;
254
+ value?: unknown;
255
+ message?: string | undefined;
256
+ }>, "many">;
257
+ type ConstraintDefinitions = z.infer<typeof ConstraintDefinitions>;
258
+
259
+ declare const RubricCriterion: z.ZodObject<{
260
+ name: z.ZodString;
261
+ description: z.ZodString;
262
+ weight: z.ZodNumber;
263
+ passing_threshold: z.ZodOptional<z.ZodNumber>;
264
+ examples: z.ZodOptional<z.ZodObject<{
265
+ good: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
266
+ bad: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
267
+ }, "strip", z.ZodTypeAny, {
268
+ good?: string[] | undefined;
269
+ bad?: string[] | undefined;
270
+ }, {
271
+ good?: string[] | undefined;
272
+ bad?: string[] | undefined;
273
+ }>>;
274
+ }, "strip", z.ZodTypeAny, {
275
+ name: string;
276
+ description: string;
277
+ weight: number;
278
+ passing_threshold?: number | undefined;
279
+ examples?: {
280
+ good?: string[] | undefined;
281
+ bad?: string[] | undefined;
282
+ } | undefined;
283
+ }, {
284
+ name: string;
285
+ description: string;
286
+ weight: number;
287
+ passing_threshold?: number | undefined;
288
+ examples?: {
289
+ good?: string[] | undefined;
290
+ bad?: string[] | undefined;
291
+ } | undefined;
292
+ }>;
293
+ type RubricCriterion = z.infer<typeof RubricCriterion>;
294
+ declare const Rubric: z.ZodObject<{
295
+ version: z.ZodDefault<z.ZodString>;
296
+ criteria: z.ZodArray<z.ZodObject<{
297
+ name: z.ZodString;
298
+ description: z.ZodString;
299
+ weight: z.ZodNumber;
300
+ passing_threshold: z.ZodOptional<z.ZodNumber>;
301
+ examples: z.ZodOptional<z.ZodObject<{
302
+ good: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
303
+ bad: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
304
+ }, "strip", z.ZodTypeAny, {
305
+ good?: string[] | undefined;
306
+ bad?: string[] | undefined;
307
+ }, {
308
+ good?: string[] | undefined;
309
+ bad?: string[] | undefined;
310
+ }>>;
311
+ }, "strip", z.ZodTypeAny, {
312
+ name: string;
313
+ description: string;
314
+ weight: number;
315
+ passing_threshold?: number | undefined;
316
+ examples?: {
317
+ good?: string[] | undefined;
318
+ bad?: string[] | undefined;
319
+ } | undefined;
320
+ }, {
321
+ name: string;
322
+ description: string;
323
+ weight: number;
324
+ passing_threshold?: number | undefined;
325
+ examples?: {
326
+ good?: string[] | undefined;
327
+ bad?: string[] | undefined;
328
+ } | undefined;
329
+ }>, "many">;
330
+ passing_threshold: z.ZodDefault<z.ZodNumber>;
331
+ require_all: z.ZodDefault<z.ZodBoolean>;
332
+ }, "strip", z.ZodTypeAny, {
333
+ passing_threshold: number;
334
+ version: string;
335
+ criteria: {
336
+ name: string;
337
+ description: string;
338
+ weight: number;
339
+ passing_threshold?: number | undefined;
340
+ examples?: {
341
+ good?: string[] | undefined;
342
+ bad?: string[] | undefined;
343
+ } | undefined;
344
+ }[];
345
+ require_all: boolean;
346
+ }, {
347
+ criteria: {
348
+ name: string;
349
+ description: string;
350
+ weight: number;
351
+ passing_threshold?: number | undefined;
352
+ examples?: {
353
+ good?: string[] | undefined;
354
+ bad?: string[] | undefined;
355
+ } | undefined;
356
+ }[];
357
+ passing_threshold?: number | undefined;
358
+ version?: string | undefined;
359
+ require_all?: boolean | undefined;
360
+ }>;
361
+ type Rubric = z.infer<typeof Rubric>;
362
+ declare const CriterionResult: z.ZodObject<{
363
+ criterion: z.ZodString;
364
+ score: z.ZodNumber;
365
+ passed: z.ZodBoolean;
366
+ reasoning: z.ZodString;
367
+ }, "strip", z.ZodTypeAny, {
368
+ passed: boolean;
369
+ criterion: string;
370
+ score: number;
371
+ reasoning: string;
372
+ }, {
373
+ passed: boolean;
374
+ criterion: string;
375
+ score: number;
376
+ reasoning: string;
377
+ }>;
378
+ type CriterionResult = z.infer<typeof CriterionResult>;
379
+ declare const JudgmentResult: z.ZodObject<{
380
+ verdict: z.ZodEnum<["pass", "fail", "partial"]>;
381
+ score: z.ZodNumber;
382
+ criteria_results: z.ZodArray<z.ZodObject<{
383
+ criterion: z.ZodString;
384
+ score: z.ZodNumber;
385
+ passed: z.ZodBoolean;
386
+ reasoning: z.ZodString;
387
+ }, "strip", z.ZodTypeAny, {
388
+ passed: boolean;
389
+ criterion: string;
390
+ score: number;
391
+ reasoning: string;
392
+ }, {
393
+ passed: boolean;
394
+ criterion: string;
395
+ score: number;
396
+ reasoning: string;
397
+ }>, "many">;
398
+ overall_reasoning: z.ZodString;
399
+ rubric_version: z.ZodString;
400
+ }, "strip", z.ZodTypeAny, {
401
+ score: number;
402
+ verdict: "pass" | "fail" | "partial";
403
+ criteria_results: {
404
+ passed: boolean;
405
+ criterion: string;
406
+ score: number;
407
+ reasoning: string;
408
+ }[];
409
+ overall_reasoning: string;
410
+ rubric_version: string;
411
+ }, {
412
+ score: number;
413
+ verdict: "pass" | "fail" | "partial";
414
+ criteria_results: {
415
+ passed: boolean;
416
+ criterion: string;
417
+ score: number;
418
+ reasoning: string;
419
+ }[];
420
+ overall_reasoning: string;
421
+ rubric_version: string;
422
+ }>;
423
+ type JudgmentResult = z.infer<typeof JudgmentResult>;
424
+
154
425
  /**
155
426
  * What the client sends to POST /api/v1/receipts.
156
427
  */
@@ -476,4 +747,4 @@ declare function formatZodError(error: z.ZodError): string;
476
747
  */
477
748
  declare function createErrorResponse(code: string, message: string, status: number): ErrorResponse;
478
749
 
479
- export { ActionReceipt, CompleteReceiptInput, CreateReceiptInput, Environment, Environment as EnvironmentType, ErrorCode, ErrorCode as ErrorCodeType, ErrorResponse, ListReceiptsQuery, PaginationMeta, ReceiptStatus, ReceiptStatus as ReceiptStatusType, ReceiptType, ReceiptType as ReceiptTypeType, SignablePayload, VerifyResponse, createErrorResponse, formatZodError, validate };
750
+ export { ActionReceipt, CompleteReceiptInput, ConstraintDefinition, ConstraintDefinitions, ConstraintResult, CreateReceiptInput, CriterionResult, Environment, Environment as EnvironmentType, ErrorCode, ErrorCode as ErrorCodeType, ErrorResponse, JudgmentResult, ListReceiptsQuery, PaginationMeta, ReceiptStatus, ReceiptStatus as ReceiptStatusType, ReceiptType, ReceiptType as ReceiptTypeType, Rubric, RubricCriterion, SignablePayload, SingleConstraintResult, VerifyResponse, createErrorResponse, formatZodError, validate };
package/dist/index.js CHANGED
@@ -22,15 +22,23 @@ var index_exports = {};
22
22
  __export(index_exports, {
23
23
  ActionReceipt: () => ActionReceipt,
24
24
  CompleteReceiptInput: () => CompleteReceiptInput,
25
+ ConstraintDefinition: () => ConstraintDefinition,
26
+ ConstraintDefinitions: () => ConstraintDefinitions,
27
+ ConstraintResult: () => ConstraintResult,
25
28
  CreateReceiptInput: () => CreateReceiptInput,
29
+ CriterionResult: () => CriterionResult,
26
30
  Environment: () => Environment,
27
31
  ErrorCode: () => ErrorCode,
28
32
  ErrorResponse: () => ErrorResponse,
33
+ JudgmentResult: () => JudgmentResult,
29
34
  ListReceiptsQuery: () => ListReceiptsQuery,
30
35
  PaginationMeta: () => PaginationMeta,
31
36
  ReceiptStatus: () => ReceiptStatus,
32
37
  ReceiptType: () => ReceiptType,
38
+ Rubric: () => Rubric,
39
+ RubricCriterion: () => RubricCriterion,
33
40
  SignablePayload: () => SignablePayload,
41
+ SingleConstraintResult: () => SingleConstraintResult,
34
42
  VerifyResponse: () => VerifyResponse,
35
43
  createErrorResponse: () => createErrorResponse,
36
44
  formatZodError: () => formatZodError,
@@ -116,96 +124,149 @@ var ActionReceipt = import_zod2.z.object({
116
124
  metadata: import_zod2.z.record(import_zod2.z.unknown())
117
125
  });
118
126
 
119
- // src/api.ts
127
+ // src/constraints.ts
120
128
  var import_zod3 = require("zod");
121
- var CreateReceiptInput = import_zod3.z.object({
129
+ var ConstraintDefinition = import_zod3.z.object({
130
+ type: import_zod3.z.string().min(1),
131
+ value: import_zod3.z.unknown(),
132
+ message: import_zod3.z.string().optional()
133
+ });
134
+ var SingleConstraintResult = import_zod3.z.object({
135
+ type: import_zod3.z.string(),
136
+ passed: import_zod3.z.boolean(),
137
+ expected: import_zod3.z.unknown(),
138
+ actual: import_zod3.z.unknown(),
139
+ message: import_zod3.z.string().optional()
140
+ });
141
+ var ConstraintResult = import_zod3.z.object({
142
+ passed: import_zod3.z.boolean(),
143
+ results: import_zod3.z.array(SingleConstraintResult),
144
+ evaluated_at: import_zod3.z.string().datetime()
145
+ });
146
+ var ConstraintDefinitions = import_zod3.z.array(ConstraintDefinition);
147
+
148
+ // src/rubric.ts
149
+ var import_zod4 = require("zod");
150
+ var RubricCriterion = import_zod4.z.object({
151
+ name: import_zod4.z.string().min(1),
152
+ description: import_zod4.z.string().min(1),
153
+ weight: import_zod4.z.number().min(0).max(1),
154
+ passing_threshold: import_zod4.z.number().min(0).max(1).optional(),
155
+ examples: import_zod4.z.object({
156
+ good: import_zod4.z.array(import_zod4.z.string()).optional(),
157
+ bad: import_zod4.z.array(import_zod4.z.string()).optional()
158
+ }).optional()
159
+ });
160
+ var Rubric = import_zod4.z.object({
161
+ version: import_zod4.z.string().default("1.0"),
162
+ criteria: import_zod4.z.array(RubricCriterion).min(1),
163
+ passing_threshold: import_zod4.z.number().min(0).max(1).default(0.7),
164
+ require_all: import_zod4.z.boolean().default(false)
165
+ });
166
+ var CriterionResult = import_zod4.z.object({
167
+ criterion: import_zod4.z.string(),
168
+ score: import_zod4.z.number().min(0).max(1),
169
+ passed: import_zod4.z.boolean(),
170
+ reasoning: import_zod4.z.string()
171
+ });
172
+ var JudgmentResult = import_zod4.z.object({
173
+ verdict: import_zod4.z.enum(["pass", "fail", "partial"]),
174
+ score: import_zod4.z.number().min(0).max(1),
175
+ criteria_results: import_zod4.z.array(CriterionResult),
176
+ overall_reasoning: import_zod4.z.string(),
177
+ rubric_version: import_zod4.z.string()
178
+ });
179
+
180
+ // src/api.ts
181
+ var import_zod5 = require("zod");
182
+ var CreateReceiptInput = import_zod5.z.object({
122
183
  // Required
123
- agent_id: import_zod3.z.string().min(1),
124
- action: import_zod3.z.string().min(1),
125
- input_hash: import_zod3.z.string().min(1),
184
+ agent_id: import_zod5.z.string().min(1),
185
+ action: import_zod5.z.string().min(1),
186
+ input_hash: import_zod5.z.string().min(1),
126
187
  // Optional with defaults
127
188
  receipt_type: ReceiptType.default("action"),
128
189
  status: ReceiptStatus.default("pending"),
129
190
  environment: Environment.default("production"),
130
191
  // Optional
131
- parent_receipt_id: import_zod3.z.string().nullable().optional(),
132
- output_hash: import_zod3.z.string().nullable().optional(),
133
- output_summary: import_zod3.z.string().nullable().optional(),
134
- model: import_zod3.z.string().nullable().optional(),
135
- tokens_in: import_zod3.z.number().int().nonnegative().nullable().optional(),
136
- tokens_out: import_zod3.z.number().int().nonnegative().nullable().optional(),
137
- cost_usd: import_zod3.z.number().nonnegative().nullable().optional(),
138
- latency_ms: import_zod3.z.number().int().nonnegative().nullable().optional(),
139
- tool_calls: import_zod3.z.array(import_zod3.z.string()).nullable().optional(),
140
- tags: import_zod3.z.array(import_zod3.z.string()).nullable().optional(),
141
- confidence: import_zod3.z.number().min(0).max(1).nullable().optional(),
142
- callback_verified: import_zod3.z.boolean().nullable().optional(),
143
- metadata: import_zod3.z.record(import_zod3.z.unknown()).optional()
192
+ parent_receipt_id: import_zod5.z.string().nullable().optional(),
193
+ output_hash: import_zod5.z.string().nullable().optional(),
194
+ output_summary: import_zod5.z.string().nullable().optional(),
195
+ model: import_zod5.z.string().nullable().optional(),
196
+ tokens_in: import_zod5.z.number().int().nonnegative().nullable().optional(),
197
+ tokens_out: import_zod5.z.number().int().nonnegative().nullable().optional(),
198
+ cost_usd: import_zod5.z.number().nonnegative().nullable().optional(),
199
+ latency_ms: import_zod5.z.number().int().nonnegative().nullable().optional(),
200
+ tool_calls: import_zod5.z.array(import_zod5.z.string()).nullable().optional(),
201
+ tags: import_zod5.z.array(import_zod5.z.string()).nullable().optional(),
202
+ confidence: import_zod5.z.number().min(0).max(1).nullable().optional(),
203
+ callback_verified: import_zod5.z.boolean().nullable().optional(),
204
+ metadata: import_zod5.z.record(import_zod5.z.unknown()).optional()
144
205
  });
145
- var CompleteReceiptInput = import_zod3.z.object({
206
+ var CompleteReceiptInput = import_zod5.z.object({
146
207
  // Required — must transition from pending
147
- status: import_zod3.z.enum(["completed", "failed", "timeout"]),
208
+ status: import_zod5.z.enum(["completed", "failed", "timeout"]),
148
209
  // Execution results (all optional — set what you know)
149
- output_hash: import_zod3.z.string().nullable().optional(),
150
- output_summary: import_zod3.z.string().nullable().optional(),
151
- model: import_zod3.z.string().nullable().optional(),
152
- tokens_in: import_zod3.z.number().int().nonnegative().nullable().optional(),
153
- tokens_out: import_zod3.z.number().int().nonnegative().nullable().optional(),
154
- cost_usd: import_zod3.z.number().nonnegative().nullable().optional(),
155
- latency_ms: import_zod3.z.number().int().nonnegative().nullable().optional(),
156
- tool_calls: import_zod3.z.array(import_zod3.z.string()).nullable().optional(),
157
- confidence: import_zod3.z.number().min(0).max(1).nullable().optional(),
158
- callback_verified: import_zod3.z.boolean().nullable().optional(),
159
- error: import_zod3.z.record(import_zod3.z.unknown()).nullable().optional()
210
+ output_hash: import_zod5.z.string().nullable().optional(),
211
+ output_summary: import_zod5.z.string().nullable().optional(),
212
+ model: import_zod5.z.string().nullable().optional(),
213
+ tokens_in: import_zod5.z.number().int().nonnegative().nullable().optional(),
214
+ tokens_out: import_zod5.z.number().int().nonnegative().nullable().optional(),
215
+ cost_usd: import_zod5.z.number().nonnegative().nullable().optional(),
216
+ latency_ms: import_zod5.z.number().int().nonnegative().nullable().optional(),
217
+ tool_calls: import_zod5.z.array(import_zod5.z.string()).nullable().optional(),
218
+ confidence: import_zod5.z.number().min(0).max(1).nullable().optional(),
219
+ callback_verified: import_zod5.z.boolean().nullable().optional(),
220
+ error: import_zod5.z.record(import_zod5.z.unknown()).nullable().optional()
160
221
  });
161
- var VerifyResponse = import_zod3.z.object({
162
- verified: import_zod3.z.boolean(),
163
- receipt: import_zod3.z.object({
164
- receipt_id: import_zod3.z.string(),
165
- chain_id: import_zod3.z.string(),
222
+ var VerifyResponse = import_zod5.z.object({
223
+ verified: import_zod5.z.boolean(),
224
+ receipt: import_zod5.z.object({
225
+ receipt_id: import_zod5.z.string(),
226
+ chain_id: import_zod5.z.string(),
166
227
  receipt_type: ReceiptType,
167
- agent_id: import_zod3.z.string(),
168
- action: import_zod3.z.string(),
228
+ agent_id: import_zod5.z.string(),
229
+ action: import_zod5.z.string(),
169
230
  status: ReceiptStatus,
170
- input_hash: import_zod3.z.string(),
171
- output_hash: import_zod3.z.string().nullable(),
172
- signature: import_zod3.z.string(),
173
- timestamp: import_zod3.z.string().datetime(),
174
- completed_at: import_zod3.z.string().datetime().nullable(),
231
+ input_hash: import_zod5.z.string(),
232
+ output_hash: import_zod5.z.string().nullable(),
233
+ signature: import_zod5.z.string(),
234
+ timestamp: import_zod5.z.string().datetime(),
235
+ completed_at: import_zod5.z.string().datetime().nullable(),
175
236
  environment: Environment,
176
- latency_ms: import_zod3.z.number().int().nonnegative().nullable()
237
+ latency_ms: import_zod5.z.number().int().nonnegative().nullable()
177
238
  }),
178
- signature_valid: import_zod3.z.boolean(),
179
- chain_length: import_zod3.z.number().int().nonnegative(),
180
- public_key_url: import_zod3.z.string().url()
239
+ signature_valid: import_zod5.z.boolean(),
240
+ chain_length: import_zod5.z.number().int().nonnegative(),
241
+ public_key_url: import_zod5.z.string().url()
181
242
  });
182
- var ListReceiptsQuery = import_zod3.z.object({
183
- page: import_zod3.z.coerce.number().int().positive().default(1),
184
- limit: import_zod3.z.coerce.number().int().positive().max(100).default(50),
185
- agent_id: import_zod3.z.string().optional(),
186
- action: import_zod3.z.string().optional(),
243
+ var ListReceiptsQuery = import_zod5.z.object({
244
+ page: import_zod5.z.coerce.number().int().positive().default(1),
245
+ limit: import_zod5.z.coerce.number().int().positive().max(100).default(50),
246
+ agent_id: import_zod5.z.string().optional(),
247
+ action: import_zod5.z.string().optional(),
187
248
  status: ReceiptStatus.optional(),
188
249
  environment: Environment.optional(),
189
250
  receipt_type: ReceiptType.optional(),
190
- chain_id: import_zod3.z.string().optional(),
191
- tag: import_zod3.z.string().optional(),
192
- from: import_zod3.z.string().datetime().optional(),
193
- to: import_zod3.z.string().datetime().optional(),
194
- sort: import_zod3.z.string().regex(/^(created_at|completed_at|latency_ms|cost_usd):(asc|desc)$/).default("created_at:desc")
251
+ chain_id: import_zod5.z.string().optional(),
252
+ tag: import_zod5.z.string().optional(),
253
+ from: import_zod5.z.string().datetime().optional(),
254
+ to: import_zod5.z.string().datetime().optional(),
255
+ sort: import_zod5.z.string().regex(/^(created_at|completed_at|latency_ms|cost_usd):(asc|desc)$/).default("created_at:desc")
195
256
  });
196
- var PaginationMeta = import_zod3.z.object({
197
- page: import_zod3.z.number().int().positive(),
198
- limit: import_zod3.z.number().int().positive(),
199
- total: import_zod3.z.number().int().nonnegative(),
200
- total_pages: import_zod3.z.number().int().nonnegative(),
201
- has_next: import_zod3.z.boolean(),
202
- has_prev: import_zod3.z.boolean()
257
+ var PaginationMeta = import_zod5.z.object({
258
+ page: import_zod5.z.number().int().positive(),
259
+ limit: import_zod5.z.number().int().positive(),
260
+ total: import_zod5.z.number().int().nonnegative(),
261
+ total_pages: import_zod5.z.number().int().nonnegative(),
262
+ has_next: import_zod5.z.boolean(),
263
+ has_prev: import_zod5.z.boolean()
203
264
  });
204
- var ErrorResponse = import_zod3.z.object({
205
- error: import_zod3.z.object({
265
+ var ErrorResponse = import_zod5.z.object({
266
+ error: import_zod5.z.object({
206
267
  code: ErrorCode,
207
- message: import_zod3.z.string(),
208
- status: import_zod3.z.number().int()
268
+ message: import_zod5.z.string(),
269
+ status: import_zod5.z.number().int()
209
270
  })
210
271
  });
211
272
 
@@ -243,15 +304,23 @@ function createErrorResponse(code, message, status) {
243
304
  0 && (module.exports = {
244
305
  ActionReceipt,
245
306
  CompleteReceiptInput,
307
+ ConstraintDefinition,
308
+ ConstraintDefinitions,
309
+ ConstraintResult,
246
310
  CreateReceiptInput,
311
+ CriterionResult,
247
312
  Environment,
248
313
  ErrorCode,
249
314
  ErrorResponse,
315
+ JudgmentResult,
250
316
  ListReceiptsQuery,
251
317
  PaginationMeta,
252
318
  ReceiptStatus,
253
319
  ReceiptType,
320
+ Rubric,
321
+ RubricCriterion,
254
322
  SignablePayload,
323
+ SingleConstraintResult,
255
324
  VerifyResponse,
256
325
  createErrorResponse,
257
326
  formatZodError,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/enums.ts","../src/receipt.ts","../src/api.ts","../src/validation.ts"],"sourcesContent":["// Enums\nexport { ReceiptStatus, ReceiptType, Environment, ErrorCode } from './enums'\n\n// Receipt schemas + types\nexport { SignablePayload, ActionReceipt } from './receipt'\n\n// API schemas + types\nexport {\n CreateReceiptInput,\n CompleteReceiptInput,\n VerifyResponse,\n ListReceiptsQuery,\n PaginationMeta,\n ErrorResponse,\n} from './api'\n\n// Validation utilities\nexport { validate, formatZodError, createErrorResponse } from './validation'\n\n// Re-export types explicitly for consumers who import types only\nexport type {\n ReceiptStatus as ReceiptStatusType,\n ReceiptType as ReceiptTypeType,\n Environment as EnvironmentType,\n ErrorCode as ErrorCodeType,\n} from './enums'\n","import { z } from 'zod'\n\nexport const ReceiptStatus = z.enum(['pending', 'completed', 'failed', 'timeout'])\nexport type ReceiptStatus = z.infer<typeof ReceiptStatus>\n\nexport const ReceiptType = z.enum(['action', 'verification', 'judgment', 'arbitration'])\nexport type ReceiptType = z.infer<typeof ReceiptType>\n\nexport const Environment = z.enum(['production', 'staging', 'test'])\nexport type Environment = z.infer<typeof Environment>\n\nexport const ErrorCode = z.enum([\n 'UNAUTHORIZED',\n 'KEY_REVOKED',\n 'FORBIDDEN',\n 'RECEIPT_NOT_FOUND',\n 'CHAIN_NOT_FOUND',\n 'AGENT_NOT_FOUND',\n 'RECEIPT_NOT_PENDING',\n 'RECEIPT_IMMUTABLE',\n 'RATE_LIMIT_EXCEEDED',\n 'VALIDATION_ERROR',\n 'INTERNAL_ERROR',\n])\nexport type ErrorCode = z.infer<typeof ErrorCode>\n","import { z } from 'zod'\nimport { ReceiptStatus, ReceiptType, Environment } from './enums'\n\n/**\n * The 12 fields that are cryptographically signed.\n * These fields are extracted from a receipt and serialized as canonical JSON\n * before signing with Ed25519.\n */\nexport const SignablePayload = z.object({\n receipt_id: z.string(),\n chain_id: z.string(),\n receipt_type: ReceiptType,\n agent_id: z.string(),\n org_id: z.string(),\n action: z.string(),\n input_hash: z.string(),\n output_hash: z.string().nullable(),\n status: ReceiptStatus,\n timestamp: z.string().datetime(),\n completed_at: z.string().datetime().nullable(),\n environment: Environment,\n})\nexport type SignablePayload = z.infer<typeof SignablePayload>\n\n/**\n * The complete receipt object as returned by the API.\n */\nexport const ActionReceipt = z.object({\n // Identity\n receipt_id: z.string(),\n parent_receipt_id: z.string().nullable(),\n chain_id: z.string(),\n\n // Type\n receipt_type: ReceiptType,\n\n // Who\n agent_id: z.string(),\n org_id: z.string(),\n\n // What\n action: z.string(),\n input_hash: z.string(),\n output_hash: z.string().nullable(),\n output_summary: z.string().nullable(),\n\n // How (all nullable — may not be known at creation)\n model: z.string().nullable(),\n tokens_in: z.number().int().nonnegative().nullable(),\n tokens_out: z.number().int().nonnegative().nullable(),\n cost_usd: z.number().nonnegative().nullable(),\n latency_ms: z.number().int().nonnegative().nullable(),\n tool_calls: z.array(z.string()).nullable(),\n\n // When\n timestamp: z.string().datetime(),\n completed_at: z.string().datetime().nullable(),\n\n // Status\n status: ReceiptStatus,\n error: z.record(z.unknown()).nullable(),\n\n // Context\n environment: Environment,\n tags: z.array(z.string()).nullable(),\n\n // Verification (Tier 2 — Phase 6)\n constraints: z.record(z.unknown()).nullable(),\n constraint_result: z.record(z.unknown()).nullable(),\n\n // Trust\n signature: z.string(),\n verify_url: z.string().url(),\n\n // Optional\n callback_verified: z.boolean().nullable(),\n confidence: z.number().min(0).max(1).nullable(),\n metadata: z.record(z.unknown()),\n})\nexport type ActionReceipt = z.infer<typeof ActionReceipt>\n","import { z } from 'zod'\nimport { ReceiptStatus, ReceiptType, Environment, ErrorCode } from './enums'\n\n/**\n * What the client sends to POST /api/v1/receipts.\n */\nexport const CreateReceiptInput = z.object({\n // Required\n agent_id: z.string().min(1),\n action: z.string().min(1),\n input_hash: z.string().min(1),\n\n // Optional with defaults\n receipt_type: ReceiptType.default('action'),\n status: ReceiptStatus.default('pending'),\n environment: Environment.default('production'),\n\n // Optional\n parent_receipt_id: z.string().nullable().optional(),\n output_hash: z.string().nullable().optional(),\n output_summary: z.string().nullable().optional(),\n model: z.string().nullable().optional(),\n tokens_in: z.number().int().nonnegative().nullable().optional(),\n tokens_out: z.number().int().nonnegative().nullable().optional(),\n cost_usd: z.number().nonnegative().nullable().optional(),\n latency_ms: z.number().int().nonnegative().nullable().optional(),\n tool_calls: z.array(z.string()).nullable().optional(),\n tags: z.array(z.string()).nullable().optional(),\n confidence: z.number().min(0).max(1).nullable().optional(),\n callback_verified: z.boolean().nullable().optional(),\n metadata: z.record(z.unknown()).optional(),\n})\nexport type CreateReceiptInput = z.infer<typeof CreateReceiptInput>\n\n/**\n * What the client sends to PATCH /api/v1/receipts/:id/complete.\n */\nexport const CompleteReceiptInput = z.object({\n // Required — must transition from pending\n status: z.enum(['completed', 'failed', 'timeout']),\n\n // Execution results (all optional — set what you know)\n output_hash: z.string().nullable().optional(),\n output_summary: z.string().nullable().optional(),\n model: z.string().nullable().optional(),\n tokens_in: z.number().int().nonnegative().nullable().optional(),\n tokens_out: z.number().int().nonnegative().nullable().optional(),\n cost_usd: z.number().nonnegative().nullable().optional(),\n latency_ms: z.number().int().nonnegative().nullable().optional(),\n tool_calls: z.array(z.string()).nullable().optional(),\n confidence: z.number().min(0).max(1).nullable().optional(),\n callback_verified: z.boolean().nullable().optional(),\n error: z.record(z.unknown()).nullable().optional(),\n})\nexport type CompleteReceiptInput = z.infer<typeof CompleteReceiptInput>\n\n/**\n * What GET /api/v1/verify/:id returns.\n * Note: Does NOT include org_id, metadata, tags, or output_summary (org-private).\n */\nexport const VerifyResponse = z.object({\n verified: z.boolean(),\n receipt: z.object({\n receipt_id: z.string(),\n chain_id: z.string(),\n receipt_type: ReceiptType,\n agent_id: z.string(),\n action: z.string(),\n status: ReceiptStatus,\n input_hash: z.string(),\n output_hash: z.string().nullable(),\n signature: z.string(),\n timestamp: z.string().datetime(),\n completed_at: z.string().datetime().nullable(),\n environment: Environment,\n latency_ms: z.number().int().nonnegative().nullable(),\n }),\n signature_valid: z.boolean(),\n chain_length: z.number().int().nonnegative(),\n public_key_url: z.string().url(),\n})\nexport type VerifyResponse = z.infer<typeof VerifyResponse>\n\n/**\n * Query parameters for GET /api/v1/receipts.\n */\nexport const ListReceiptsQuery = z.object({\n page: z.coerce.number().int().positive().default(1),\n limit: z.coerce.number().int().positive().max(100).default(50),\n agent_id: z.string().optional(),\n action: z.string().optional(),\n status: ReceiptStatus.optional(),\n environment: Environment.optional(),\n receipt_type: ReceiptType.optional(),\n chain_id: z.string().optional(),\n tag: z.string().optional(),\n from: z.string().datetime().optional(),\n to: z.string().datetime().optional(),\n sort: z.string().regex(/^(created_at|completed_at|latency_ms|cost_usd):(asc|desc)$/).default('created_at:desc'),\n})\nexport type ListReceiptsQuery = z.infer<typeof ListReceiptsQuery>\n\n/**\n * Pagination metadata included in list responses.\n */\nexport const PaginationMeta = z.object({\n page: z.number().int().positive(),\n limit: z.number().int().positive(),\n total: z.number().int().nonnegative(),\n total_pages: z.number().int().nonnegative(),\n has_next: z.boolean(),\n has_prev: z.boolean(),\n})\nexport type PaginationMeta = z.infer<typeof PaginationMeta>\n\n/**\n * Standard error response format.\n */\nexport const ErrorResponse = z.object({\n error: z.object({\n code: ErrorCode,\n message: z.string(),\n status: z.number().int(),\n }),\n})\nexport type ErrorResponse = z.infer<typeof ErrorResponse>\n","import { z } from 'zod'\nimport type { ErrorResponse } from './api'\n\n/**\n * Validate data against a Zod schema.\n * Returns { success: true, data } or { success: false, error: ErrorResponse }\n */\nexport function validate<T extends z.ZodSchema>(\n schema: T,\n data: unknown\n): { success: true; data: z.infer<T> } | { success: false; error: ErrorResponse } {\n const result = schema.safeParse(data)\n if (result.success) {\n return { success: true, data: result.data }\n }\n return {\n success: false,\n error: createErrorResponse(\n 'VALIDATION_ERROR',\n formatZodError(result.error),\n 400\n ),\n }\n}\n\n/**\n * Format Zod errors into a human-readable message.\n */\nexport function formatZodError(error: z.ZodError): string {\n return error.issues\n .map((issue) => {\n const path = issue.path.length > 0 ? `${issue.path.join('.')}: ` : ''\n return `${path}${issue.message}`\n })\n .join('; ')\n}\n\n/**\n * Create a standard error response object.\n */\nexport function createErrorResponse(\n code: string,\n message: string,\n status: number\n): ErrorResponse {\n return {\n error: {\n code: code as ErrorResponse['error']['code'],\n message,\n status,\n },\n }\n}\n"],"mappings":"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","names":["import_zod","import_zod"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/enums.ts","../src/receipt.ts","../src/constraints.ts","../src/rubric.ts","../src/api.ts","../src/validation.ts"],"sourcesContent":["// Enums\nexport { ReceiptStatus, ReceiptType, Environment, ErrorCode } from './enums'\n\n// Receipt schemas + types\nexport { SignablePayload, ActionReceipt } from './receipt'\n\n// Constraint schemas + types\nexport {\n ConstraintDefinition,\n SingleConstraintResult,\n ConstraintResult,\n ConstraintDefinitions,\n} from './constraints'\n\n// Rubric schemas + types\nexport {\n RubricCriterion,\n Rubric,\n CriterionResult,\n JudgmentResult,\n} from './rubric'\n\n// API schemas + types\nexport {\n CreateReceiptInput,\n CompleteReceiptInput,\n VerifyResponse,\n ListReceiptsQuery,\n PaginationMeta,\n ErrorResponse,\n} from './api'\n\n// Validation utilities\nexport { validate, formatZodError, createErrorResponse } from './validation'\n\n// Re-export types explicitly for consumers who import types only\nexport type {\n ReceiptStatus as ReceiptStatusType,\n ReceiptType as ReceiptTypeType,\n Environment as EnvironmentType,\n ErrorCode as ErrorCodeType,\n} from './enums'\n","import { z } from 'zod'\n\nexport const ReceiptStatus = z.enum(['pending', 'completed', 'failed', 'timeout'])\nexport type ReceiptStatus = z.infer<typeof ReceiptStatus>\n\nexport const ReceiptType = z.enum(['action', 'verification', 'judgment', 'arbitration'])\nexport type ReceiptType = z.infer<typeof ReceiptType>\n\nexport const Environment = z.enum(['production', 'staging', 'test'])\nexport type Environment = z.infer<typeof Environment>\n\nexport const ErrorCode = z.enum([\n 'UNAUTHORIZED',\n 'KEY_REVOKED',\n 'FORBIDDEN',\n 'RECEIPT_NOT_FOUND',\n 'CHAIN_NOT_FOUND',\n 'AGENT_NOT_FOUND',\n 'RECEIPT_NOT_PENDING',\n 'RECEIPT_IMMUTABLE',\n 'RATE_LIMIT_EXCEEDED',\n 'VALIDATION_ERROR',\n 'INTERNAL_ERROR',\n])\nexport type ErrorCode = z.infer<typeof ErrorCode>\n","import { z } from 'zod'\nimport { ReceiptStatus, ReceiptType, Environment } from './enums'\n\n/**\n * The 12 fields that are cryptographically signed.\n * These fields are extracted from a receipt and serialized as canonical JSON\n * before signing with Ed25519.\n */\nexport const SignablePayload = z.object({\n receipt_id: z.string(),\n chain_id: z.string(),\n receipt_type: ReceiptType,\n agent_id: z.string(),\n org_id: z.string(),\n action: z.string(),\n input_hash: z.string(),\n output_hash: z.string().nullable(),\n status: ReceiptStatus,\n timestamp: z.string().datetime(),\n completed_at: z.string().datetime().nullable(),\n environment: Environment,\n})\nexport type SignablePayload = z.infer<typeof SignablePayload>\n\n/**\n * The complete receipt object as returned by the API.\n */\nexport const ActionReceipt = z.object({\n // Identity\n receipt_id: z.string(),\n parent_receipt_id: z.string().nullable(),\n chain_id: z.string(),\n\n // Type\n receipt_type: ReceiptType,\n\n // Who\n agent_id: z.string(),\n org_id: z.string(),\n\n // What\n action: z.string(),\n input_hash: z.string(),\n output_hash: z.string().nullable(),\n output_summary: z.string().nullable(),\n\n // How (all nullable — may not be known at creation)\n model: z.string().nullable(),\n tokens_in: z.number().int().nonnegative().nullable(),\n tokens_out: z.number().int().nonnegative().nullable(),\n cost_usd: z.number().nonnegative().nullable(),\n latency_ms: z.number().int().nonnegative().nullable(),\n tool_calls: z.array(z.string()).nullable(),\n\n // When\n timestamp: z.string().datetime(),\n completed_at: z.string().datetime().nullable(),\n\n // Status\n status: ReceiptStatus,\n error: z.record(z.unknown()).nullable(),\n\n // Context\n environment: Environment,\n tags: z.array(z.string()).nullable(),\n\n // Verification (Tier 2 — Phase 6)\n constraints: z.record(z.unknown()).nullable(),\n constraint_result: z.record(z.unknown()).nullable(),\n\n // Trust\n signature: z.string(),\n verify_url: z.string().url(),\n\n // Optional\n callback_verified: z.boolean().nullable(),\n confidence: z.number().min(0).max(1).nullable(),\n metadata: z.record(z.unknown()),\n})\nexport type ActionReceipt = z.infer<typeof ActionReceipt>\n","import { z } from 'zod'\n\n/**\n * A single constraint definition that specifies a rule to evaluate.\n */\nexport const ConstraintDefinition = z.object({\n type: z.string().min(1),\n value: z.unknown(),\n message: z.string().optional(),\n})\nexport type ConstraintDefinition = z.infer<typeof ConstraintDefinition>\n\n/**\n * Result of evaluating a single constraint.\n */\nexport const SingleConstraintResult = z.object({\n type: z.string(),\n passed: z.boolean(),\n expected: z.unknown(),\n actual: z.unknown(),\n message: z.string().optional(),\n})\nexport type SingleConstraintResult = z.infer<typeof SingleConstraintResult>\n\n/**\n * Aggregate result of evaluating all constraints on a receipt.\n */\nexport const ConstraintResult = z.object({\n passed: z.boolean(),\n results: z.array(SingleConstraintResult),\n evaluated_at: z.string().datetime(),\n})\nexport type ConstraintResult = z.infer<typeof ConstraintResult>\n\n/**\n * Array of constraint definitions.\n */\nexport const ConstraintDefinitions = z.array(ConstraintDefinition)\nexport type ConstraintDefinitions = z.infer<typeof ConstraintDefinitions>\n","import { z } from 'zod'\n\nexport const RubricCriterion = z.object({\n name: z.string().min(1),\n description: z.string().min(1),\n weight: z.number().min(0).max(1),\n passing_threshold: z.number().min(0).max(1).optional(),\n examples: z.object({\n good: z.array(z.string()).optional(),\n bad: z.array(z.string()).optional(),\n }).optional(),\n})\nexport type RubricCriterion = z.infer<typeof RubricCriterion>\n\nexport const Rubric = z.object({\n version: z.string().default('1.0'),\n criteria: z.array(RubricCriterion).min(1),\n passing_threshold: z.number().min(0).max(1).default(0.7),\n require_all: z.boolean().default(false),\n})\nexport type Rubric = z.infer<typeof Rubric>\n\nexport const CriterionResult = z.object({\n criterion: z.string(),\n score: z.number().min(0).max(1),\n passed: z.boolean(),\n reasoning: z.string(),\n})\nexport type CriterionResult = z.infer<typeof CriterionResult>\n\nexport const JudgmentResult = z.object({\n verdict: z.enum(['pass', 'fail', 'partial']),\n score: z.number().min(0).max(1),\n criteria_results: z.array(CriterionResult),\n overall_reasoning: z.string(),\n rubric_version: z.string(),\n})\nexport type JudgmentResult = z.infer<typeof JudgmentResult>\n","import { z } from 'zod'\nimport { ReceiptStatus, ReceiptType, Environment, ErrorCode } from './enums'\n\n/**\n * What the client sends to POST /api/v1/receipts.\n */\nexport const CreateReceiptInput = z.object({\n // Required\n agent_id: z.string().min(1),\n action: z.string().min(1),\n input_hash: z.string().min(1),\n\n // Optional with defaults\n receipt_type: ReceiptType.default('action'),\n status: ReceiptStatus.default('pending'),\n environment: Environment.default('production'),\n\n // Optional\n parent_receipt_id: z.string().nullable().optional(),\n output_hash: z.string().nullable().optional(),\n output_summary: z.string().nullable().optional(),\n model: z.string().nullable().optional(),\n tokens_in: z.number().int().nonnegative().nullable().optional(),\n tokens_out: z.number().int().nonnegative().nullable().optional(),\n cost_usd: z.number().nonnegative().nullable().optional(),\n latency_ms: z.number().int().nonnegative().nullable().optional(),\n tool_calls: z.array(z.string()).nullable().optional(),\n tags: z.array(z.string()).nullable().optional(),\n confidence: z.number().min(0).max(1).nullable().optional(),\n callback_verified: z.boolean().nullable().optional(),\n metadata: z.record(z.unknown()).optional(),\n})\nexport type CreateReceiptInput = z.infer<typeof CreateReceiptInput>\n\n/**\n * What the client sends to PATCH /api/v1/receipts/:id/complete.\n */\nexport const CompleteReceiptInput = z.object({\n // Required — must transition from pending\n status: z.enum(['completed', 'failed', 'timeout']),\n\n // Execution results (all optional — set what you know)\n output_hash: z.string().nullable().optional(),\n output_summary: z.string().nullable().optional(),\n model: z.string().nullable().optional(),\n tokens_in: z.number().int().nonnegative().nullable().optional(),\n tokens_out: z.number().int().nonnegative().nullable().optional(),\n cost_usd: z.number().nonnegative().nullable().optional(),\n latency_ms: z.number().int().nonnegative().nullable().optional(),\n tool_calls: z.array(z.string()).nullable().optional(),\n confidence: z.number().min(0).max(1).nullable().optional(),\n callback_verified: z.boolean().nullable().optional(),\n error: z.record(z.unknown()).nullable().optional(),\n})\nexport type CompleteReceiptInput = z.infer<typeof CompleteReceiptInput>\n\n/**\n * What GET /api/v1/verify/:id returns.\n * Note: Does NOT include org_id, metadata, tags, or output_summary (org-private).\n */\nexport const VerifyResponse = z.object({\n verified: z.boolean(),\n receipt: z.object({\n receipt_id: z.string(),\n chain_id: z.string(),\n receipt_type: ReceiptType,\n agent_id: z.string(),\n action: z.string(),\n status: ReceiptStatus,\n input_hash: z.string(),\n output_hash: z.string().nullable(),\n signature: z.string(),\n timestamp: z.string().datetime(),\n completed_at: z.string().datetime().nullable(),\n environment: Environment,\n latency_ms: z.number().int().nonnegative().nullable(),\n }),\n signature_valid: z.boolean(),\n chain_length: z.number().int().nonnegative(),\n public_key_url: z.string().url(),\n})\nexport type VerifyResponse = z.infer<typeof VerifyResponse>\n\n/**\n * Query parameters for GET /api/v1/receipts.\n */\nexport const ListReceiptsQuery = z.object({\n page: z.coerce.number().int().positive().default(1),\n limit: z.coerce.number().int().positive().max(100).default(50),\n agent_id: z.string().optional(),\n action: z.string().optional(),\n status: ReceiptStatus.optional(),\n environment: Environment.optional(),\n receipt_type: ReceiptType.optional(),\n chain_id: z.string().optional(),\n tag: z.string().optional(),\n from: z.string().datetime().optional(),\n to: z.string().datetime().optional(),\n sort: z.string().regex(/^(created_at|completed_at|latency_ms|cost_usd):(asc|desc)$/).default('created_at:desc'),\n})\nexport type ListReceiptsQuery = z.infer<typeof ListReceiptsQuery>\n\n/**\n * Pagination metadata included in list responses.\n */\nexport const PaginationMeta = z.object({\n page: z.number().int().positive(),\n limit: z.number().int().positive(),\n total: z.number().int().nonnegative(),\n total_pages: z.number().int().nonnegative(),\n has_next: z.boolean(),\n has_prev: z.boolean(),\n})\nexport type PaginationMeta = z.infer<typeof PaginationMeta>\n\n/**\n * Standard error response format.\n */\nexport const ErrorResponse = z.object({\n error: z.object({\n code: ErrorCode,\n message: z.string(),\n status: z.number().int(),\n }),\n})\nexport type ErrorResponse = z.infer<typeof ErrorResponse>\n","import { z } from 'zod'\nimport type { ErrorResponse } from './api'\n\n/**\n * Validate data against a Zod schema.\n * Returns { success: true, data } or { success: false, error: ErrorResponse }\n */\nexport function validate<T extends z.ZodSchema>(\n schema: T,\n data: unknown\n): { success: true; data: z.infer<T> } | { success: false; error: ErrorResponse } {\n const result = schema.safeParse(data)\n if (result.success) {\n return { success: true, data: result.data }\n }\n return {\n success: false,\n error: createErrorResponse(\n 'VALIDATION_ERROR',\n formatZodError(result.error),\n 400\n ),\n }\n}\n\n/**\n * Format Zod errors into a human-readable message.\n */\nexport function formatZodError(error: z.ZodError): string {\n return error.issues\n .map((issue) => {\n const path = issue.path.length > 0 ? `${issue.path.join('.')}: ` : ''\n return `${path}${issue.message}`\n })\n .join('; ')\n}\n\n/**\n * Create a standard error response object.\n */\nexport function createErrorResponse(\n code: string,\n message: string,\n status: number\n): ErrorResponse {\n return {\n error: {\n code: code as ErrorResponse['error']['code'],\n message,\n status,\n },\n }\n}\n"],"mappings":"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","names":["import_zod","import_zod","import_zod","import_zod"]}
package/dist/index.mjs CHANGED
@@ -76,96 +76,149 @@ var ActionReceipt = z2.object({
76
76
  metadata: z2.record(z2.unknown())
77
77
  });
78
78
 
79
- // src/api.ts
79
+ // src/constraints.ts
80
80
  import { z as z3 } from "zod";
81
- var CreateReceiptInput = z3.object({
81
+ var ConstraintDefinition = z3.object({
82
+ type: z3.string().min(1),
83
+ value: z3.unknown(),
84
+ message: z3.string().optional()
85
+ });
86
+ var SingleConstraintResult = z3.object({
87
+ type: z3.string(),
88
+ passed: z3.boolean(),
89
+ expected: z3.unknown(),
90
+ actual: z3.unknown(),
91
+ message: z3.string().optional()
92
+ });
93
+ var ConstraintResult = z3.object({
94
+ passed: z3.boolean(),
95
+ results: z3.array(SingleConstraintResult),
96
+ evaluated_at: z3.string().datetime()
97
+ });
98
+ var ConstraintDefinitions = z3.array(ConstraintDefinition);
99
+
100
+ // src/rubric.ts
101
+ import { z as z4 } from "zod";
102
+ var RubricCriterion = z4.object({
103
+ name: z4.string().min(1),
104
+ description: z4.string().min(1),
105
+ weight: z4.number().min(0).max(1),
106
+ passing_threshold: z4.number().min(0).max(1).optional(),
107
+ examples: z4.object({
108
+ good: z4.array(z4.string()).optional(),
109
+ bad: z4.array(z4.string()).optional()
110
+ }).optional()
111
+ });
112
+ var Rubric = z4.object({
113
+ version: z4.string().default("1.0"),
114
+ criteria: z4.array(RubricCriterion).min(1),
115
+ passing_threshold: z4.number().min(0).max(1).default(0.7),
116
+ require_all: z4.boolean().default(false)
117
+ });
118
+ var CriterionResult = z4.object({
119
+ criterion: z4.string(),
120
+ score: z4.number().min(0).max(1),
121
+ passed: z4.boolean(),
122
+ reasoning: z4.string()
123
+ });
124
+ var JudgmentResult = z4.object({
125
+ verdict: z4.enum(["pass", "fail", "partial"]),
126
+ score: z4.number().min(0).max(1),
127
+ criteria_results: z4.array(CriterionResult),
128
+ overall_reasoning: z4.string(),
129
+ rubric_version: z4.string()
130
+ });
131
+
132
+ // src/api.ts
133
+ import { z as z5 } from "zod";
134
+ var CreateReceiptInput = z5.object({
82
135
  // Required
83
- agent_id: z3.string().min(1),
84
- action: z3.string().min(1),
85
- input_hash: z3.string().min(1),
136
+ agent_id: z5.string().min(1),
137
+ action: z5.string().min(1),
138
+ input_hash: z5.string().min(1),
86
139
  // Optional with defaults
87
140
  receipt_type: ReceiptType.default("action"),
88
141
  status: ReceiptStatus.default("pending"),
89
142
  environment: Environment.default("production"),
90
143
  // Optional
91
- parent_receipt_id: z3.string().nullable().optional(),
92
- output_hash: z3.string().nullable().optional(),
93
- output_summary: z3.string().nullable().optional(),
94
- model: z3.string().nullable().optional(),
95
- tokens_in: z3.number().int().nonnegative().nullable().optional(),
96
- tokens_out: z3.number().int().nonnegative().nullable().optional(),
97
- cost_usd: z3.number().nonnegative().nullable().optional(),
98
- latency_ms: z3.number().int().nonnegative().nullable().optional(),
99
- tool_calls: z3.array(z3.string()).nullable().optional(),
100
- tags: z3.array(z3.string()).nullable().optional(),
101
- confidence: z3.number().min(0).max(1).nullable().optional(),
102
- callback_verified: z3.boolean().nullable().optional(),
103
- metadata: z3.record(z3.unknown()).optional()
144
+ parent_receipt_id: z5.string().nullable().optional(),
145
+ output_hash: z5.string().nullable().optional(),
146
+ output_summary: z5.string().nullable().optional(),
147
+ model: z5.string().nullable().optional(),
148
+ tokens_in: z5.number().int().nonnegative().nullable().optional(),
149
+ tokens_out: z5.number().int().nonnegative().nullable().optional(),
150
+ cost_usd: z5.number().nonnegative().nullable().optional(),
151
+ latency_ms: z5.number().int().nonnegative().nullable().optional(),
152
+ tool_calls: z5.array(z5.string()).nullable().optional(),
153
+ tags: z5.array(z5.string()).nullable().optional(),
154
+ confidence: z5.number().min(0).max(1).nullable().optional(),
155
+ callback_verified: z5.boolean().nullable().optional(),
156
+ metadata: z5.record(z5.unknown()).optional()
104
157
  });
105
- var CompleteReceiptInput = z3.object({
158
+ var CompleteReceiptInput = z5.object({
106
159
  // Required — must transition from pending
107
- status: z3.enum(["completed", "failed", "timeout"]),
160
+ status: z5.enum(["completed", "failed", "timeout"]),
108
161
  // Execution results (all optional — set what you know)
109
- output_hash: z3.string().nullable().optional(),
110
- output_summary: z3.string().nullable().optional(),
111
- model: z3.string().nullable().optional(),
112
- tokens_in: z3.number().int().nonnegative().nullable().optional(),
113
- tokens_out: z3.number().int().nonnegative().nullable().optional(),
114
- cost_usd: z3.number().nonnegative().nullable().optional(),
115
- latency_ms: z3.number().int().nonnegative().nullable().optional(),
116
- tool_calls: z3.array(z3.string()).nullable().optional(),
117
- confidence: z3.number().min(0).max(1).nullable().optional(),
118
- callback_verified: z3.boolean().nullable().optional(),
119
- error: z3.record(z3.unknown()).nullable().optional()
162
+ output_hash: z5.string().nullable().optional(),
163
+ output_summary: z5.string().nullable().optional(),
164
+ model: z5.string().nullable().optional(),
165
+ tokens_in: z5.number().int().nonnegative().nullable().optional(),
166
+ tokens_out: z5.number().int().nonnegative().nullable().optional(),
167
+ cost_usd: z5.number().nonnegative().nullable().optional(),
168
+ latency_ms: z5.number().int().nonnegative().nullable().optional(),
169
+ tool_calls: z5.array(z5.string()).nullable().optional(),
170
+ confidence: z5.number().min(0).max(1).nullable().optional(),
171
+ callback_verified: z5.boolean().nullable().optional(),
172
+ error: z5.record(z5.unknown()).nullable().optional()
120
173
  });
121
- var VerifyResponse = z3.object({
122
- verified: z3.boolean(),
123
- receipt: z3.object({
124
- receipt_id: z3.string(),
125
- chain_id: z3.string(),
174
+ var VerifyResponse = z5.object({
175
+ verified: z5.boolean(),
176
+ receipt: z5.object({
177
+ receipt_id: z5.string(),
178
+ chain_id: z5.string(),
126
179
  receipt_type: ReceiptType,
127
- agent_id: z3.string(),
128
- action: z3.string(),
180
+ agent_id: z5.string(),
181
+ action: z5.string(),
129
182
  status: ReceiptStatus,
130
- input_hash: z3.string(),
131
- output_hash: z3.string().nullable(),
132
- signature: z3.string(),
133
- timestamp: z3.string().datetime(),
134
- completed_at: z3.string().datetime().nullable(),
183
+ input_hash: z5.string(),
184
+ output_hash: z5.string().nullable(),
185
+ signature: z5.string(),
186
+ timestamp: z5.string().datetime(),
187
+ completed_at: z5.string().datetime().nullable(),
135
188
  environment: Environment,
136
- latency_ms: z3.number().int().nonnegative().nullable()
189
+ latency_ms: z5.number().int().nonnegative().nullable()
137
190
  }),
138
- signature_valid: z3.boolean(),
139
- chain_length: z3.number().int().nonnegative(),
140
- public_key_url: z3.string().url()
191
+ signature_valid: z5.boolean(),
192
+ chain_length: z5.number().int().nonnegative(),
193
+ public_key_url: z5.string().url()
141
194
  });
142
- var ListReceiptsQuery = z3.object({
143
- page: z3.coerce.number().int().positive().default(1),
144
- limit: z3.coerce.number().int().positive().max(100).default(50),
145
- agent_id: z3.string().optional(),
146
- action: z3.string().optional(),
195
+ var ListReceiptsQuery = z5.object({
196
+ page: z5.coerce.number().int().positive().default(1),
197
+ limit: z5.coerce.number().int().positive().max(100).default(50),
198
+ agent_id: z5.string().optional(),
199
+ action: z5.string().optional(),
147
200
  status: ReceiptStatus.optional(),
148
201
  environment: Environment.optional(),
149
202
  receipt_type: ReceiptType.optional(),
150
- chain_id: z3.string().optional(),
151
- tag: z3.string().optional(),
152
- from: z3.string().datetime().optional(),
153
- to: z3.string().datetime().optional(),
154
- sort: z3.string().regex(/^(created_at|completed_at|latency_ms|cost_usd):(asc|desc)$/).default("created_at:desc")
203
+ chain_id: z5.string().optional(),
204
+ tag: z5.string().optional(),
205
+ from: z5.string().datetime().optional(),
206
+ to: z5.string().datetime().optional(),
207
+ sort: z5.string().regex(/^(created_at|completed_at|latency_ms|cost_usd):(asc|desc)$/).default("created_at:desc")
155
208
  });
156
- var PaginationMeta = z3.object({
157
- page: z3.number().int().positive(),
158
- limit: z3.number().int().positive(),
159
- total: z3.number().int().nonnegative(),
160
- total_pages: z3.number().int().nonnegative(),
161
- has_next: z3.boolean(),
162
- has_prev: z3.boolean()
209
+ var PaginationMeta = z5.object({
210
+ page: z5.number().int().positive(),
211
+ limit: z5.number().int().positive(),
212
+ total: z5.number().int().nonnegative(),
213
+ total_pages: z5.number().int().nonnegative(),
214
+ has_next: z5.boolean(),
215
+ has_prev: z5.boolean()
163
216
  });
164
- var ErrorResponse = z3.object({
165
- error: z3.object({
217
+ var ErrorResponse = z5.object({
218
+ error: z5.object({
166
219
  code: ErrorCode,
167
- message: z3.string(),
168
- status: z3.number().int()
220
+ message: z5.string(),
221
+ status: z5.number().int()
169
222
  })
170
223
  });
171
224
 
@@ -202,15 +255,23 @@ function createErrorResponse(code, message, status) {
202
255
  export {
203
256
  ActionReceipt,
204
257
  CompleteReceiptInput,
258
+ ConstraintDefinition,
259
+ ConstraintDefinitions,
260
+ ConstraintResult,
205
261
  CreateReceiptInput,
262
+ CriterionResult,
206
263
  Environment,
207
264
  ErrorCode,
208
265
  ErrorResponse,
266
+ JudgmentResult,
209
267
  ListReceiptsQuery,
210
268
  PaginationMeta,
211
269
  ReceiptStatus,
212
270
  ReceiptType,
271
+ Rubric,
272
+ RubricCriterion,
213
273
  SignablePayload,
274
+ SingleConstraintResult,
214
275
  VerifyResponse,
215
276
  createErrorResponse,
216
277
  formatZodError,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/enums.ts","../src/receipt.ts","../src/api.ts","../src/validation.ts"],"sourcesContent":["import { z } from 'zod'\n\nexport const ReceiptStatus = z.enum(['pending', 'completed', 'failed', 'timeout'])\nexport type ReceiptStatus = z.infer<typeof ReceiptStatus>\n\nexport const ReceiptType = z.enum(['action', 'verification', 'judgment', 'arbitration'])\nexport type ReceiptType = z.infer<typeof ReceiptType>\n\nexport const Environment = z.enum(['production', 'staging', 'test'])\nexport type Environment = z.infer<typeof Environment>\n\nexport const ErrorCode = z.enum([\n 'UNAUTHORIZED',\n 'KEY_REVOKED',\n 'FORBIDDEN',\n 'RECEIPT_NOT_FOUND',\n 'CHAIN_NOT_FOUND',\n 'AGENT_NOT_FOUND',\n 'RECEIPT_NOT_PENDING',\n 'RECEIPT_IMMUTABLE',\n 'RATE_LIMIT_EXCEEDED',\n 'VALIDATION_ERROR',\n 'INTERNAL_ERROR',\n])\nexport type ErrorCode = z.infer<typeof ErrorCode>\n","import { z } from 'zod'\nimport { ReceiptStatus, ReceiptType, Environment } from './enums'\n\n/**\n * The 12 fields that are cryptographically signed.\n * These fields are extracted from a receipt and serialized as canonical JSON\n * before signing with Ed25519.\n */\nexport const SignablePayload = z.object({\n receipt_id: z.string(),\n chain_id: z.string(),\n receipt_type: ReceiptType,\n agent_id: z.string(),\n org_id: z.string(),\n action: z.string(),\n input_hash: z.string(),\n output_hash: z.string().nullable(),\n status: ReceiptStatus,\n timestamp: z.string().datetime(),\n completed_at: z.string().datetime().nullable(),\n environment: Environment,\n})\nexport type SignablePayload = z.infer<typeof SignablePayload>\n\n/**\n * The complete receipt object as returned by the API.\n */\nexport const ActionReceipt = z.object({\n // Identity\n receipt_id: z.string(),\n parent_receipt_id: z.string().nullable(),\n chain_id: z.string(),\n\n // Type\n receipt_type: ReceiptType,\n\n // Who\n agent_id: z.string(),\n org_id: z.string(),\n\n // What\n action: z.string(),\n input_hash: z.string(),\n output_hash: z.string().nullable(),\n output_summary: z.string().nullable(),\n\n // How (all nullable — may not be known at creation)\n model: z.string().nullable(),\n tokens_in: z.number().int().nonnegative().nullable(),\n tokens_out: z.number().int().nonnegative().nullable(),\n cost_usd: z.number().nonnegative().nullable(),\n latency_ms: z.number().int().nonnegative().nullable(),\n tool_calls: z.array(z.string()).nullable(),\n\n // When\n timestamp: z.string().datetime(),\n completed_at: z.string().datetime().nullable(),\n\n // Status\n status: ReceiptStatus,\n error: z.record(z.unknown()).nullable(),\n\n // Context\n environment: Environment,\n tags: z.array(z.string()).nullable(),\n\n // Verification (Tier 2 — Phase 6)\n constraints: z.record(z.unknown()).nullable(),\n constraint_result: z.record(z.unknown()).nullable(),\n\n // Trust\n signature: z.string(),\n verify_url: z.string().url(),\n\n // Optional\n callback_verified: z.boolean().nullable(),\n confidence: z.number().min(0).max(1).nullable(),\n metadata: z.record(z.unknown()),\n})\nexport type ActionReceipt = z.infer<typeof ActionReceipt>\n","import { z } from 'zod'\nimport { ReceiptStatus, ReceiptType, Environment, ErrorCode } from './enums'\n\n/**\n * What the client sends to POST /api/v1/receipts.\n */\nexport const CreateReceiptInput = z.object({\n // Required\n agent_id: z.string().min(1),\n action: z.string().min(1),\n input_hash: z.string().min(1),\n\n // Optional with defaults\n receipt_type: ReceiptType.default('action'),\n status: ReceiptStatus.default('pending'),\n environment: Environment.default('production'),\n\n // Optional\n parent_receipt_id: z.string().nullable().optional(),\n output_hash: z.string().nullable().optional(),\n output_summary: z.string().nullable().optional(),\n model: z.string().nullable().optional(),\n tokens_in: z.number().int().nonnegative().nullable().optional(),\n tokens_out: z.number().int().nonnegative().nullable().optional(),\n cost_usd: z.number().nonnegative().nullable().optional(),\n latency_ms: z.number().int().nonnegative().nullable().optional(),\n tool_calls: z.array(z.string()).nullable().optional(),\n tags: z.array(z.string()).nullable().optional(),\n confidence: z.number().min(0).max(1).nullable().optional(),\n callback_verified: z.boolean().nullable().optional(),\n metadata: z.record(z.unknown()).optional(),\n})\nexport type CreateReceiptInput = z.infer<typeof CreateReceiptInput>\n\n/**\n * What the client sends to PATCH /api/v1/receipts/:id/complete.\n */\nexport const CompleteReceiptInput = z.object({\n // Required — must transition from pending\n status: z.enum(['completed', 'failed', 'timeout']),\n\n // Execution results (all optional — set what you know)\n output_hash: z.string().nullable().optional(),\n output_summary: z.string().nullable().optional(),\n model: z.string().nullable().optional(),\n tokens_in: z.number().int().nonnegative().nullable().optional(),\n tokens_out: z.number().int().nonnegative().nullable().optional(),\n cost_usd: z.number().nonnegative().nullable().optional(),\n latency_ms: z.number().int().nonnegative().nullable().optional(),\n tool_calls: z.array(z.string()).nullable().optional(),\n confidence: z.number().min(0).max(1).nullable().optional(),\n callback_verified: z.boolean().nullable().optional(),\n error: z.record(z.unknown()).nullable().optional(),\n})\nexport type CompleteReceiptInput = z.infer<typeof CompleteReceiptInput>\n\n/**\n * What GET /api/v1/verify/:id returns.\n * Note: Does NOT include org_id, metadata, tags, or output_summary (org-private).\n */\nexport const VerifyResponse = z.object({\n verified: z.boolean(),\n receipt: z.object({\n receipt_id: z.string(),\n chain_id: z.string(),\n receipt_type: ReceiptType,\n agent_id: z.string(),\n action: z.string(),\n status: ReceiptStatus,\n input_hash: z.string(),\n output_hash: z.string().nullable(),\n signature: z.string(),\n timestamp: z.string().datetime(),\n completed_at: z.string().datetime().nullable(),\n environment: Environment,\n latency_ms: z.number().int().nonnegative().nullable(),\n }),\n signature_valid: z.boolean(),\n chain_length: z.number().int().nonnegative(),\n public_key_url: z.string().url(),\n})\nexport type VerifyResponse = z.infer<typeof VerifyResponse>\n\n/**\n * Query parameters for GET /api/v1/receipts.\n */\nexport const ListReceiptsQuery = z.object({\n page: z.coerce.number().int().positive().default(1),\n limit: z.coerce.number().int().positive().max(100).default(50),\n agent_id: z.string().optional(),\n action: z.string().optional(),\n status: ReceiptStatus.optional(),\n environment: Environment.optional(),\n receipt_type: ReceiptType.optional(),\n chain_id: z.string().optional(),\n tag: z.string().optional(),\n from: z.string().datetime().optional(),\n to: z.string().datetime().optional(),\n sort: z.string().regex(/^(created_at|completed_at|latency_ms|cost_usd):(asc|desc)$/).default('created_at:desc'),\n})\nexport type ListReceiptsQuery = z.infer<typeof ListReceiptsQuery>\n\n/**\n * Pagination metadata included in list responses.\n */\nexport const PaginationMeta = z.object({\n page: z.number().int().positive(),\n limit: z.number().int().positive(),\n total: z.number().int().nonnegative(),\n total_pages: z.number().int().nonnegative(),\n has_next: z.boolean(),\n has_prev: z.boolean(),\n})\nexport type PaginationMeta = z.infer<typeof PaginationMeta>\n\n/**\n * Standard error response format.\n */\nexport const ErrorResponse = z.object({\n error: z.object({\n code: ErrorCode,\n message: z.string(),\n status: z.number().int(),\n }),\n})\nexport type ErrorResponse = z.infer<typeof ErrorResponse>\n","import { z } from 'zod'\nimport type { ErrorResponse } from './api'\n\n/**\n * Validate data against a Zod schema.\n * Returns { success: true, data } or { success: false, error: ErrorResponse }\n */\nexport function validate<T extends z.ZodSchema>(\n schema: T,\n data: unknown\n): { success: true; data: z.infer<T> } | { success: false; error: ErrorResponse } {\n const result = schema.safeParse(data)\n if (result.success) {\n return { success: true, data: result.data }\n }\n return {\n success: false,\n error: createErrorResponse(\n 'VALIDATION_ERROR',\n formatZodError(result.error),\n 400\n ),\n }\n}\n\n/**\n * Format Zod errors into a human-readable message.\n */\nexport function formatZodError(error: z.ZodError): string {\n return error.issues\n .map((issue) => {\n const path = issue.path.length > 0 ? `${issue.path.join('.')}: ` : ''\n return `${path}${issue.message}`\n })\n .join('; ')\n}\n\n/**\n * Create a standard error response object.\n */\nexport function createErrorResponse(\n code: string,\n message: string,\n status: number\n): ErrorResponse {\n return {\n error: {\n code: code as ErrorResponse['error']['code'],\n message,\n status,\n },\n }\n}\n"],"mappings":"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","names":["z","z","z","z"]}
1
+ {"version":3,"sources":["../src/enums.ts","../src/receipt.ts","../src/constraints.ts","../src/rubric.ts","../src/api.ts","../src/validation.ts"],"sourcesContent":["import { z } from 'zod'\n\nexport const ReceiptStatus = z.enum(['pending', 'completed', 'failed', 'timeout'])\nexport type ReceiptStatus = z.infer<typeof ReceiptStatus>\n\nexport const ReceiptType = z.enum(['action', 'verification', 'judgment', 'arbitration'])\nexport type ReceiptType = z.infer<typeof ReceiptType>\n\nexport const Environment = z.enum(['production', 'staging', 'test'])\nexport type Environment = z.infer<typeof Environment>\n\nexport const ErrorCode = z.enum([\n 'UNAUTHORIZED',\n 'KEY_REVOKED',\n 'FORBIDDEN',\n 'RECEIPT_NOT_FOUND',\n 'CHAIN_NOT_FOUND',\n 'AGENT_NOT_FOUND',\n 'RECEIPT_NOT_PENDING',\n 'RECEIPT_IMMUTABLE',\n 'RATE_LIMIT_EXCEEDED',\n 'VALIDATION_ERROR',\n 'INTERNAL_ERROR',\n])\nexport type ErrorCode = z.infer<typeof ErrorCode>\n","import { z } from 'zod'\nimport { ReceiptStatus, ReceiptType, Environment } from './enums'\n\n/**\n * The 12 fields that are cryptographically signed.\n * These fields are extracted from a receipt and serialized as canonical JSON\n * before signing with Ed25519.\n */\nexport const SignablePayload = z.object({\n receipt_id: z.string(),\n chain_id: z.string(),\n receipt_type: ReceiptType,\n agent_id: z.string(),\n org_id: z.string(),\n action: z.string(),\n input_hash: z.string(),\n output_hash: z.string().nullable(),\n status: ReceiptStatus,\n timestamp: z.string().datetime(),\n completed_at: z.string().datetime().nullable(),\n environment: Environment,\n})\nexport type SignablePayload = z.infer<typeof SignablePayload>\n\n/**\n * The complete receipt object as returned by the API.\n */\nexport const ActionReceipt = z.object({\n // Identity\n receipt_id: z.string(),\n parent_receipt_id: z.string().nullable(),\n chain_id: z.string(),\n\n // Type\n receipt_type: ReceiptType,\n\n // Who\n agent_id: z.string(),\n org_id: z.string(),\n\n // What\n action: z.string(),\n input_hash: z.string(),\n output_hash: z.string().nullable(),\n output_summary: z.string().nullable(),\n\n // How (all nullable — may not be known at creation)\n model: z.string().nullable(),\n tokens_in: z.number().int().nonnegative().nullable(),\n tokens_out: z.number().int().nonnegative().nullable(),\n cost_usd: z.number().nonnegative().nullable(),\n latency_ms: z.number().int().nonnegative().nullable(),\n tool_calls: z.array(z.string()).nullable(),\n\n // When\n timestamp: z.string().datetime(),\n completed_at: z.string().datetime().nullable(),\n\n // Status\n status: ReceiptStatus,\n error: z.record(z.unknown()).nullable(),\n\n // Context\n environment: Environment,\n tags: z.array(z.string()).nullable(),\n\n // Verification (Tier 2 — Phase 6)\n constraints: z.record(z.unknown()).nullable(),\n constraint_result: z.record(z.unknown()).nullable(),\n\n // Trust\n signature: z.string(),\n verify_url: z.string().url(),\n\n // Optional\n callback_verified: z.boolean().nullable(),\n confidence: z.number().min(0).max(1).nullable(),\n metadata: z.record(z.unknown()),\n})\nexport type ActionReceipt = z.infer<typeof ActionReceipt>\n","import { z } from 'zod'\n\n/**\n * A single constraint definition that specifies a rule to evaluate.\n */\nexport const ConstraintDefinition = z.object({\n type: z.string().min(1),\n value: z.unknown(),\n message: z.string().optional(),\n})\nexport type ConstraintDefinition = z.infer<typeof ConstraintDefinition>\n\n/**\n * Result of evaluating a single constraint.\n */\nexport const SingleConstraintResult = z.object({\n type: z.string(),\n passed: z.boolean(),\n expected: z.unknown(),\n actual: z.unknown(),\n message: z.string().optional(),\n})\nexport type SingleConstraintResult = z.infer<typeof SingleConstraintResult>\n\n/**\n * Aggregate result of evaluating all constraints on a receipt.\n */\nexport const ConstraintResult = z.object({\n passed: z.boolean(),\n results: z.array(SingleConstraintResult),\n evaluated_at: z.string().datetime(),\n})\nexport type ConstraintResult = z.infer<typeof ConstraintResult>\n\n/**\n * Array of constraint definitions.\n */\nexport const ConstraintDefinitions = z.array(ConstraintDefinition)\nexport type ConstraintDefinitions = z.infer<typeof ConstraintDefinitions>\n","import { z } from 'zod'\n\nexport const RubricCriterion = z.object({\n name: z.string().min(1),\n description: z.string().min(1),\n weight: z.number().min(0).max(1),\n passing_threshold: z.number().min(0).max(1).optional(),\n examples: z.object({\n good: z.array(z.string()).optional(),\n bad: z.array(z.string()).optional(),\n }).optional(),\n})\nexport type RubricCriterion = z.infer<typeof RubricCriterion>\n\nexport const Rubric = z.object({\n version: z.string().default('1.0'),\n criteria: z.array(RubricCriterion).min(1),\n passing_threshold: z.number().min(0).max(1).default(0.7),\n require_all: z.boolean().default(false),\n})\nexport type Rubric = z.infer<typeof Rubric>\n\nexport const CriterionResult = z.object({\n criterion: z.string(),\n score: z.number().min(0).max(1),\n passed: z.boolean(),\n reasoning: z.string(),\n})\nexport type CriterionResult = z.infer<typeof CriterionResult>\n\nexport const JudgmentResult = z.object({\n verdict: z.enum(['pass', 'fail', 'partial']),\n score: z.number().min(0).max(1),\n criteria_results: z.array(CriterionResult),\n overall_reasoning: z.string(),\n rubric_version: z.string(),\n})\nexport type JudgmentResult = z.infer<typeof JudgmentResult>\n","import { z } from 'zod'\nimport { ReceiptStatus, ReceiptType, Environment, ErrorCode } from './enums'\n\n/**\n * What the client sends to POST /api/v1/receipts.\n */\nexport const CreateReceiptInput = z.object({\n // Required\n agent_id: z.string().min(1),\n action: z.string().min(1),\n input_hash: z.string().min(1),\n\n // Optional with defaults\n receipt_type: ReceiptType.default('action'),\n status: ReceiptStatus.default('pending'),\n environment: Environment.default('production'),\n\n // Optional\n parent_receipt_id: z.string().nullable().optional(),\n output_hash: z.string().nullable().optional(),\n output_summary: z.string().nullable().optional(),\n model: z.string().nullable().optional(),\n tokens_in: z.number().int().nonnegative().nullable().optional(),\n tokens_out: z.number().int().nonnegative().nullable().optional(),\n cost_usd: z.number().nonnegative().nullable().optional(),\n latency_ms: z.number().int().nonnegative().nullable().optional(),\n tool_calls: z.array(z.string()).nullable().optional(),\n tags: z.array(z.string()).nullable().optional(),\n confidence: z.number().min(0).max(1).nullable().optional(),\n callback_verified: z.boolean().nullable().optional(),\n metadata: z.record(z.unknown()).optional(),\n})\nexport type CreateReceiptInput = z.infer<typeof CreateReceiptInput>\n\n/**\n * What the client sends to PATCH /api/v1/receipts/:id/complete.\n */\nexport const CompleteReceiptInput = z.object({\n // Required — must transition from pending\n status: z.enum(['completed', 'failed', 'timeout']),\n\n // Execution results (all optional — set what you know)\n output_hash: z.string().nullable().optional(),\n output_summary: z.string().nullable().optional(),\n model: z.string().nullable().optional(),\n tokens_in: z.number().int().nonnegative().nullable().optional(),\n tokens_out: z.number().int().nonnegative().nullable().optional(),\n cost_usd: z.number().nonnegative().nullable().optional(),\n latency_ms: z.number().int().nonnegative().nullable().optional(),\n tool_calls: z.array(z.string()).nullable().optional(),\n confidence: z.number().min(0).max(1).nullable().optional(),\n callback_verified: z.boolean().nullable().optional(),\n error: z.record(z.unknown()).nullable().optional(),\n})\nexport type CompleteReceiptInput = z.infer<typeof CompleteReceiptInput>\n\n/**\n * What GET /api/v1/verify/:id returns.\n * Note: Does NOT include org_id, metadata, tags, or output_summary (org-private).\n */\nexport const VerifyResponse = z.object({\n verified: z.boolean(),\n receipt: z.object({\n receipt_id: z.string(),\n chain_id: z.string(),\n receipt_type: ReceiptType,\n agent_id: z.string(),\n action: z.string(),\n status: ReceiptStatus,\n input_hash: z.string(),\n output_hash: z.string().nullable(),\n signature: z.string(),\n timestamp: z.string().datetime(),\n completed_at: z.string().datetime().nullable(),\n environment: Environment,\n latency_ms: z.number().int().nonnegative().nullable(),\n }),\n signature_valid: z.boolean(),\n chain_length: z.number().int().nonnegative(),\n public_key_url: z.string().url(),\n})\nexport type VerifyResponse = z.infer<typeof VerifyResponse>\n\n/**\n * Query parameters for GET /api/v1/receipts.\n */\nexport const ListReceiptsQuery = z.object({\n page: z.coerce.number().int().positive().default(1),\n limit: z.coerce.number().int().positive().max(100).default(50),\n agent_id: z.string().optional(),\n action: z.string().optional(),\n status: ReceiptStatus.optional(),\n environment: Environment.optional(),\n receipt_type: ReceiptType.optional(),\n chain_id: z.string().optional(),\n tag: z.string().optional(),\n from: z.string().datetime().optional(),\n to: z.string().datetime().optional(),\n sort: z.string().regex(/^(created_at|completed_at|latency_ms|cost_usd):(asc|desc)$/).default('created_at:desc'),\n})\nexport type ListReceiptsQuery = z.infer<typeof ListReceiptsQuery>\n\n/**\n * Pagination metadata included in list responses.\n */\nexport const PaginationMeta = z.object({\n page: z.number().int().positive(),\n limit: z.number().int().positive(),\n total: z.number().int().nonnegative(),\n total_pages: z.number().int().nonnegative(),\n has_next: z.boolean(),\n has_prev: z.boolean(),\n})\nexport type PaginationMeta = z.infer<typeof PaginationMeta>\n\n/**\n * Standard error response format.\n */\nexport const ErrorResponse = z.object({\n error: z.object({\n code: ErrorCode,\n message: z.string(),\n status: z.number().int(),\n }),\n})\nexport type ErrorResponse = z.infer<typeof ErrorResponse>\n","import { z } from 'zod'\nimport type { ErrorResponse } from './api'\n\n/**\n * Validate data against a Zod schema.\n * Returns { success: true, data } or { success: false, error: ErrorResponse }\n */\nexport function validate<T extends z.ZodSchema>(\n schema: T,\n data: unknown\n): { success: true; data: z.infer<T> } | { success: false; error: ErrorResponse } {\n const result = schema.safeParse(data)\n if (result.success) {\n return { success: true, data: result.data }\n }\n return {\n success: false,\n error: createErrorResponse(\n 'VALIDATION_ERROR',\n formatZodError(result.error),\n 400\n ),\n }\n}\n\n/**\n * Format Zod errors into a human-readable message.\n */\nexport function formatZodError(error: z.ZodError): string {\n return error.issues\n .map((issue) => {\n const path = issue.path.length > 0 ? `${issue.path.join('.')}: ` : ''\n return `${path}${issue.message}`\n })\n .join('; ')\n}\n\n/**\n * Create a standard error response object.\n */\nexport function createErrorResponse(\n code: string,\n message: string,\n status: number\n): ErrorResponse {\n return {\n error: {\n code: code as ErrorResponse['error']['code'],\n message,\n status,\n },\n }\n}\n"],"mappings":"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","names":["z","z","z","z","z","z"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-receipts/schema",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Zod schemas and TypeScript types for the Action Receipt Protocol",
5
5
  "license": "MIT",
6
6
  "author": "Amin <amin@webaes.co> (https://webaes.co)",
@@ -39,6 +39,12 @@
39
39
  "dist",
40
40
  "receipt.schema.json"
41
41
  ],
42
+ "scripts": {
43
+ "build": "tsup && node -e \"const{zodToJsonSchema}=require('zod-to-json-schema');const{ActionReceipt}=require('./dist');const fs=require('fs');fs.writeFileSync('receipt.schema.json',JSON.stringify(zodToJsonSchema(ActionReceipt,'ActionReceipt'),null,2));\"",
44
+ "dev": "tsup --watch",
45
+ "test": "vitest run",
46
+ "typecheck": "tsc --noEmit"
47
+ },
42
48
  "dependencies": {
43
49
  "zod": "^3.23.0"
44
50
  },
@@ -47,11 +53,5 @@
47
53
  "typescript": "^5.4.0",
48
54
  "vitest": "^2.1.0",
49
55
  "zod-to-json-schema": "^3.23.0"
50
- },
51
- "scripts": {
52
- "build": "tsup && node -e \"const{zodToJsonSchema}=require('zod-to-json-schema');const{ActionReceipt}=require('./dist');const fs=require('fs');fs.writeFileSync('receipt.schema.json',JSON.stringify(zodToJsonSchema(ActionReceipt,'ActionReceipt'),null,2));\"",
53
- "dev": "tsup --watch",
54
- "test": "vitest run",
55
- "typecheck": "tsc --noEmit"
56
56
  }
57
- }
57
+ }
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Webaes
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.