@grantex/sdk 0.5.1 → 0.7.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.
Files changed (185) hide show
  1. package/LICENSE +185 -0
  2. package/NOTICE +16 -0
  3. package/README.md +34 -2
  4. package/dist/authorization-details.d.ts +86 -0
  5. package/dist/authorization-details.d.ts.map +1 -0
  6. package/dist/authorization-details.js +209 -0
  7. package/dist/authorization-details.js.map +1 -0
  8. package/dist/canonical.d.ts +47 -0
  9. package/dist/canonical.d.ts.map +1 -0
  10. package/dist/canonical.js +163 -0
  11. package/dist/canonical.js.map +1 -0
  12. package/dist/caps/index.d.ts +19 -0
  13. package/dist/caps/index.d.ts.map +1 -0
  14. package/dist/caps/index.js +19 -0
  15. package/dist/caps/index.js.map +1 -0
  16. package/dist/caps/limits.d.ts +40 -0
  17. package/dist/caps/limits.d.ts.map +1 -0
  18. package/dist/caps/limits.js +109 -0
  19. package/dist/caps/limits.js.map +1 -0
  20. package/dist/caps/memory.d.ts +15 -0
  21. package/dist/caps/memory.d.ts.map +1 -0
  22. package/dist/caps/memory.js +57 -0
  23. package/dist/caps/memory.js.map +1 -0
  24. package/dist/caps/meter.d.ts +107 -0
  25. package/dist/caps/meter.d.ts.map +1 -0
  26. package/dist/caps/meter.js +200 -0
  27. package/dist/caps/meter.js.map +1 -0
  28. package/dist/caps/postgres.d.ts +64 -0
  29. package/dist/caps/postgres.d.ts.map +1 -0
  30. package/dist/caps/postgres.js +221 -0
  31. package/dist/caps/postgres.js.map +1 -0
  32. package/dist/caps/redis.d.ts +45 -0
  33. package/dist/caps/redis.d.ts.map +1 -0
  34. package/dist/caps/redis.js +173 -0
  35. package/dist/caps/redis.js.map +1 -0
  36. package/dist/client.d.ts +12 -0
  37. package/dist/client.d.ts.map +1 -1
  38. package/dist/client.js +517 -57
  39. package/dist/client.js.map +1 -1
  40. package/dist/decisions/action.d.ts +51 -0
  41. package/dist/decisions/action.d.ts.map +1 -0
  42. package/dist/decisions/action.js +237 -0
  43. package/dist/decisions/action.js.map +1 -0
  44. package/dist/decisions/index.d.ts +11 -0
  45. package/dist/decisions/index.d.ts.map +1 -0
  46. package/dist/decisions/index.js +8 -0
  47. package/dist/decisions/index.js.map +1 -0
  48. package/dist/decisions/verify.d.ts +103 -0
  49. package/dist/decisions/verify.d.ts.map +1 -0
  50. package/dist/decisions/verify.js +277 -0
  51. package/dist/decisions/verify.js.map +1 -0
  52. package/dist/denials.d.ts +132 -0
  53. package/dist/denials.d.ts.map +1 -0
  54. package/dist/denials.js +129 -0
  55. package/dist/denials.js.map +1 -0
  56. package/dist/evidence/build.d.ts +63 -0
  57. package/dist/evidence/build.d.ts.map +1 -0
  58. package/dist/evidence/build.js +201 -0
  59. package/dist/evidence/build.js.map +1 -0
  60. package/dist/evidence/canonical.d.ts +3 -0
  61. package/dist/evidence/canonical.d.ts.map +1 -0
  62. package/dist/evidence/canonical.js +3 -0
  63. package/dist/evidence/canonical.js.map +1 -0
  64. package/dist/evidence/checks.d.ts +13 -0
  65. package/dist/evidence/checks.d.ts.map +1 -0
  66. package/dist/evidence/checks.js +406 -0
  67. package/dist/evidence/checks.js.map +1 -0
  68. package/dist/evidence/document.d.ts +8 -0
  69. package/dist/evidence/document.d.ts.map +1 -0
  70. package/dist/evidence/document.js +298 -0
  71. package/dist/evidence/document.js.map +1 -0
  72. package/dist/evidence/hashing.d.ts +37 -0
  73. package/dist/evidence/hashing.d.ts.map +1 -0
  74. package/dist/evidence/hashing.js +106 -0
  75. package/dist/evidence/hashing.js.map +1 -0
  76. package/dist/evidence/index.d.ts +24 -0
  77. package/dist/evidence/index.d.ts.map +1 -0
  78. package/dist/evidence/index.js +24 -0
  79. package/dist/evidence/index.js.map +1 -0
  80. package/dist/evidence/result.d.ts +88 -0
  81. package/dist/evidence/result.d.ts.map +1 -0
  82. package/dist/evidence/result.js +88 -0
  83. package/dist/evidence/result.js.map +1 -0
  84. package/dist/evidence/schema-1.0.d.ts +2 -0
  85. package/dist/evidence/schema-1.0.d.ts.map +1 -0
  86. package/dist/evidence/schema-1.0.js +1398 -0
  87. package/dist/evidence/schema-1.0.js.map +1 -0
  88. package/dist/evidence/schema.d.ts +13 -0
  89. package/dist/evidence/schema.d.ts.map +1 -0
  90. package/dist/evidence/schema.js +264 -0
  91. package/dist/evidence/schema.js.map +1 -0
  92. package/dist/evidence/signature.d.ts +23 -0
  93. package/dist/evidence/signature.d.ts.map +1 -0
  94. package/dist/evidence/signature.js +136 -0
  95. package/dist/evidence/signature.js.map +1 -0
  96. package/dist/evidence/trace.d.ts +23 -0
  97. package/dist/evidence/trace.d.ts.map +1 -0
  98. package/dist/evidence/trace.js +69 -0
  99. package/dist/evidence/trace.js.map +1 -0
  100. package/dist/evidence/verify.d.ts +29 -0
  101. package/dist/evidence/verify.d.ts.map +1 -0
  102. package/dist/evidence/verify.js +163 -0
  103. package/dist/evidence/verify.js.map +1 -0
  104. package/dist/http.d.ts +12 -1
  105. package/dist/http.d.ts.map +1 -1
  106. package/dist/http.js +11 -5
  107. package/dist/http.js.map +1 -1
  108. package/dist/index.d.ts +16 -3
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.js +16 -2
  111. package/dist/index.js.map +1 -1
  112. package/dist/manifest.d.ts +178 -9
  113. package/dist/manifest.d.ts.map +1 -1
  114. package/dist/manifest.js +379 -16
  115. package/dist/manifest.js.map +1 -1
  116. package/dist/prepaid-wallets.d.ts +21 -0
  117. package/dist/prepaid-wallets.d.ts.map +1 -1
  118. package/dist/prepaid-wallets.js +6 -0
  119. package/dist/prepaid-wallets.js.map +1 -1
  120. package/dist/purpose.d.ts +29 -0
  121. package/dist/purpose.d.ts.map +1 -0
  122. package/dist/purpose.js +60 -0
  123. package/dist/purpose.js.map +1 -0
  124. package/dist/resources/agents.js +3 -3
  125. package/dist/resources/agents.js.map +1 -1
  126. package/dist/resources/anomalies.d.ts +3 -1
  127. package/dist/resources/anomalies.d.ts.map +1 -1
  128. package/dist/resources/anomalies.js +7 -1
  129. package/dist/resources/anomalies.js.map +1 -1
  130. package/dist/resources/audit.js +1 -1
  131. package/dist/resources/audit.js.map +1 -1
  132. package/dist/resources/budgets.js +2 -2
  133. package/dist/resources/budgets.js.map +1 -1
  134. package/dist/resources/credentials.js +1 -1
  135. package/dist/resources/credentials.js.map +1 -1
  136. package/dist/resources/decisions.d.ts +69 -0
  137. package/dist/resources/decisions.d.ts.map +1 -0
  138. package/dist/resources/decisions.js +115 -0
  139. package/dist/resources/decisions.js.map +1 -0
  140. package/dist/resources/domains.js +2 -2
  141. package/dist/resources/domains.js.map +1 -1
  142. package/dist/resources/dpdp.js +4 -4
  143. package/dist/resources/dpdp.js.map +1 -1
  144. package/dist/resources/grants.js +2 -2
  145. package/dist/resources/grants.js.map +1 -1
  146. package/dist/resources/policies.js +3 -3
  147. package/dist/resources/policies.js.map +1 -1
  148. package/dist/resources/scim.js +5 -5
  149. package/dist/resources/scim.js.map +1 -1
  150. package/dist/resources/tokens.d.ts.map +1 -1
  151. package/dist/resources/tokens.js +5 -1
  152. package/dist/resources/tokens.js.map +1 -1
  153. package/dist/resources/vault.js +2 -2
  154. package/dist/resources/vault.js.map +1 -1
  155. package/dist/resources/webauthn.d.ts +6 -1
  156. package/dist/resources/webauthn.d.ts.map +1 -1
  157. package/dist/resources/webauthn.js +5 -1
  158. package/dist/resources/webauthn.js.map +1 -1
  159. package/dist/resources/webhooks.js +1 -1
  160. package/dist/resources/webhooks.js.map +1 -1
  161. package/dist/revocations/feed.d.ts +61 -0
  162. package/dist/revocations/feed.d.ts.map +1 -0
  163. package/dist/revocations/feed.js +282 -0
  164. package/dist/revocations/feed.js.map +1 -0
  165. package/dist/revocations/index.d.ts +20 -0
  166. package/dist/revocations/index.d.ts.map +1 -0
  167. package/dist/revocations/index.js +19 -0
  168. package/dist/revocations/index.js.map +1 -0
  169. package/dist/revocations/set.d.ts +59 -0
  170. package/dist/revocations/set.d.ts.map +1 -0
  171. package/dist/revocations/set.js +87 -0
  172. package/dist/revocations/set.js.map +1 -0
  173. package/dist/scopes.d.ts +26 -0
  174. package/dist/scopes.d.ts.map +1 -0
  175. package/dist/scopes.js +37 -0
  176. package/dist/scopes.js.map +1 -0
  177. package/dist/types.d.ts +121 -4
  178. package/dist/types.d.ts.map +1 -1
  179. package/dist/types.js +0 -1
  180. package/dist/types.js.map +1 -1
  181. package/dist/verify.d.ts +31 -2
  182. package/dist/verify.d.ts.map +1 -1
  183. package/dist/verify.js +236 -29
  184. package/dist/verify.js.map +1 -1
  185. package/package.json +13 -4
@@ -0,0 +1,1398 @@
1
+ // Generated from spec/evidence-package-1.0.schema.json. Do not edit by hand:
2
+ // tests/evidence-package.test.ts fails when the two differ.
3
+ export const EVIDENCE_SCHEMA_1_0 = {
4
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
5
+ "$id": "https://grantex.dev/spec/evidence-package-1.0.schema.json",
6
+ "title": "Grantex evidence package 1.0",
7
+ "description": "Structure of a per-case evidence package. Structure alone is not verification: see spec/evidence-package.md for canonical form, the hash chain, cross-entry rules, anchoring and signatures. The verifiers in the Python and TypeScript SDKs interpret this file directly, using only the keywords listed in the specification. `format: date-time` is asserted by those verifiers (calendar-valid UTC timestamps with millisecond precision).",
8
+ "type": "object",
9
+ "additionalProperties": false,
10
+ "required": [
11
+ "case",
12
+ "chain",
13
+ "entries",
14
+ "format",
15
+ "privacy",
16
+ "version"
17
+ ],
18
+ "properties": {
19
+ "anchor": {
20
+ "$ref": "#/$defs/anchor"
21
+ },
22
+ "case": {
23
+ "$ref": "#/$defs/case"
24
+ },
25
+ "chain": {
26
+ "$ref": "#/$defs/chain"
27
+ },
28
+ "entries": {
29
+ "type": "array",
30
+ "minItems": 1,
31
+ "maxItems": 100000,
32
+ "items": {
33
+ "$ref": "#/$defs/entry"
34
+ }
35
+ },
36
+ "format": {
37
+ "const": "grantex-evidence-package"
38
+ },
39
+ "privacy": {
40
+ "$ref": "#/$defs/privacy"
41
+ },
42
+ "signature": {
43
+ "$ref": "#/$defs/signature"
44
+ },
45
+ "version": {
46
+ "const": "1.0"
47
+ }
48
+ },
49
+ "$defs": {
50
+ "token": {
51
+ "type": "string",
52
+ "minLength": 1,
53
+ "maxLength": 256,
54
+ "pattern": "^[!-~]+$"
55
+ },
56
+ "text": {
57
+ "type": "string",
58
+ "minLength": 1,
59
+ "maxLength": 512
60
+ },
61
+ "digest": {
62
+ "type": "string",
63
+ "pattern": "^sha256:[0-9a-f]{64}$"
64
+ },
65
+ "auditHash": {
66
+ "type": "string",
67
+ "pattern": "^[0-9a-f]{64}$"
68
+ },
69
+ "actionHash": {
70
+ "type": "string",
71
+ "pattern": "^sha256:[A-Za-z0-9_-]{43}$"
72
+ },
73
+ "timestamp": {
74
+ "type": "string",
75
+ "format": "date-time",
76
+ "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]\\.[0-9]{3}Z$"
77
+ },
78
+ "uint": {
79
+ "type": "integer",
80
+ "minimum": 0,
81
+ "maximum": 9007199254740991
82
+ },
83
+ "identifier": {
84
+ "description": "A person, subject or record identifier. Where its class is not listed in privacy.disclosed it must be a pseudonym (pz:...).",
85
+ "type": "string",
86
+ "minLength": 1,
87
+ "maxLength": 256
88
+ },
89
+ "scalar": {
90
+ "type": [
91
+ "string",
92
+ "number",
93
+ "boolean",
94
+ "null"
95
+ ],
96
+ "maxLength": 256
97
+ },
98
+ "ext": {
99
+ "type": "object",
100
+ "maxProperties": 64,
101
+ "propertyNames": {
102
+ "pattern": "^x-[a-z0-9-]+\\.[A-Za-z0-9_.-]+$"
103
+ }
104
+ },
105
+ "tier": {
106
+ "enum": [
107
+ "low",
108
+ "medium",
109
+ "high",
110
+ "blocked"
111
+ ]
112
+ },
113
+ "case": {
114
+ "type": "object",
115
+ "additionalProperties": false,
116
+ "required": [
117
+ "case_id",
118
+ "exported_at",
119
+ "issuer",
120
+ "state",
121
+ "tenant_id"
122
+ ],
123
+ "properties": {
124
+ "case_id": {
125
+ "$ref": "#/$defs/token"
126
+ },
127
+ "exported_at": {
128
+ "$ref": "#/$defs/timestamp"
129
+ },
130
+ "ext": {
131
+ "$ref": "#/$defs/ext"
132
+ },
133
+ "issuer": {
134
+ "$ref": "#/$defs/token"
135
+ },
136
+ "state": {
137
+ "enum": [
138
+ "open",
139
+ "decided",
140
+ "closed"
141
+ ]
142
+ },
143
+ "subject": {
144
+ "$ref": "#/$defs/identifier"
145
+ },
146
+ "tenant_id": {
147
+ "$ref": "#/$defs/token"
148
+ }
149
+ }
150
+ },
151
+ "privacy": {
152
+ "type": "object",
153
+ "additionalProperties": false,
154
+ "required": [
155
+ "disclosed",
156
+ "scheme"
157
+ ],
158
+ "properties": {
159
+ "disclosed": {
160
+ "type": "array",
161
+ "maxItems": 5,
162
+ "uniqueItems": true,
163
+ "items": {
164
+ "enum": [
165
+ "approver",
166
+ "content",
167
+ "principal",
168
+ "record",
169
+ "subject"
170
+ ]
171
+ }
172
+ },
173
+ "key_id": {
174
+ "type": "string",
175
+ "minLength": 1,
176
+ "maxLength": 64,
177
+ "pattern": "^[A-Za-z0-9._:-]+$"
178
+ },
179
+ "scheme": {
180
+ "enum": [
181
+ "hmac-sha256-v1",
182
+ "none"
183
+ ]
184
+ }
185
+ }
186
+ },
187
+ "chain": {
188
+ "type": "object",
189
+ "additionalProperties": false,
190
+ "required": [
191
+ "alg",
192
+ "canonicalization",
193
+ "genesis",
194
+ "head",
195
+ "length",
196
+ "root"
197
+ ],
198
+ "properties": {
199
+ "alg": {
200
+ "const": "sha256"
201
+ },
202
+ "canonicalization": {
203
+ "const": "RFC8785"
204
+ },
205
+ "genesis": {
206
+ "$ref": "#/$defs/digest"
207
+ },
208
+ "head": {
209
+ "$ref": "#/$defs/digest"
210
+ },
211
+ "length": {
212
+ "$ref": "#/$defs/uint"
213
+ },
214
+ "root": {
215
+ "$ref": "#/$defs/digest"
216
+ }
217
+ }
218
+ },
219
+ "source": {
220
+ "type": "object",
221
+ "additionalProperties": false,
222
+ "required": [
223
+ "authority",
224
+ "recorded_at"
225
+ ],
226
+ "properties": {
227
+ "audit_entry_id": {
228
+ "$ref": "#/$defs/token"
229
+ },
230
+ "audit_hash": {
231
+ "$ref": "#/$defs/auditHash"
232
+ },
233
+ "authority": {
234
+ "enum": [
235
+ "platform",
236
+ "tenant"
237
+ ]
238
+ },
239
+ "late": {
240
+ "const": true
241
+ },
242
+ "recorded_at": {
243
+ "$ref": "#/$defs/timestamp"
244
+ }
245
+ }
246
+ },
247
+ "entry": {
248
+ "type": "object",
249
+ "additionalProperties": false,
250
+ "required": [
251
+ "at",
252
+ "data",
253
+ "hash",
254
+ "prev",
255
+ "seq",
256
+ "source",
257
+ "type"
258
+ ],
259
+ "properties": {
260
+ "at": {
261
+ "$ref": "#/$defs/timestamp"
262
+ },
263
+ "data": {
264
+ "type": "object"
265
+ },
266
+ "ext": {
267
+ "$ref": "#/$defs/ext"
268
+ },
269
+ "hash": {
270
+ "$ref": "#/$defs/digest"
271
+ },
272
+ "prev": {
273
+ "$ref": "#/$defs/digest"
274
+ },
275
+ "seq": {
276
+ "$ref": "#/$defs/uint"
277
+ },
278
+ "source": {
279
+ "$ref": "#/$defs/source"
280
+ },
281
+ "type": {
282
+ "enum": [
283
+ "decision",
284
+ "decision_consumption",
285
+ "disposition",
286
+ "grant",
287
+ "policy_evaluation",
288
+ "recommendation",
289
+ "revocation",
290
+ "run_context",
291
+ "tool_call",
292
+ "void"
293
+ ]
294
+ }
295
+ },
296
+ "allOf": [
297
+ {
298
+ "if": {
299
+ "properties": {
300
+ "type": {
301
+ "const": "grant"
302
+ }
303
+ }
304
+ },
305
+ "then": {
306
+ "properties": {
307
+ "data": {
308
+ "$ref": "#/$defs/grant"
309
+ }
310
+ }
311
+ }
312
+ },
313
+ {
314
+ "if": {
315
+ "properties": {
316
+ "type": {
317
+ "const": "run_context"
318
+ }
319
+ }
320
+ },
321
+ "then": {
322
+ "properties": {
323
+ "data": {
324
+ "$ref": "#/$defs/runContext"
325
+ }
326
+ }
327
+ }
328
+ },
329
+ {
330
+ "if": {
331
+ "properties": {
332
+ "type": {
333
+ "const": "tool_call"
334
+ }
335
+ }
336
+ },
337
+ "then": {
338
+ "properties": {
339
+ "data": {
340
+ "$ref": "#/$defs/toolCall"
341
+ }
342
+ }
343
+ }
344
+ },
345
+ {
346
+ "if": {
347
+ "properties": {
348
+ "type": {
349
+ "const": "policy_evaluation"
350
+ }
351
+ }
352
+ },
353
+ "then": {
354
+ "properties": {
355
+ "data": {
356
+ "$ref": "#/$defs/policyEvaluation"
357
+ }
358
+ }
359
+ }
360
+ },
361
+ {
362
+ "if": {
363
+ "properties": {
364
+ "type": {
365
+ "const": "recommendation"
366
+ }
367
+ }
368
+ },
369
+ "then": {
370
+ "properties": {
371
+ "data": {
372
+ "$ref": "#/$defs/recommendation"
373
+ }
374
+ }
375
+ }
376
+ },
377
+ {
378
+ "if": {
379
+ "properties": {
380
+ "type": {
381
+ "const": "decision"
382
+ }
383
+ }
384
+ },
385
+ "then": {
386
+ "properties": {
387
+ "data": {
388
+ "$ref": "#/$defs/decision"
389
+ }
390
+ }
391
+ }
392
+ },
393
+ {
394
+ "if": {
395
+ "properties": {
396
+ "type": {
397
+ "const": "decision_consumption"
398
+ }
399
+ }
400
+ },
401
+ "then": {
402
+ "properties": {
403
+ "data": {
404
+ "$ref": "#/$defs/decisionConsumption"
405
+ }
406
+ }
407
+ }
408
+ },
409
+ {
410
+ "if": {
411
+ "properties": {
412
+ "type": {
413
+ "const": "revocation"
414
+ }
415
+ }
416
+ },
417
+ "then": {
418
+ "properties": {
419
+ "data": {
420
+ "$ref": "#/$defs/revocation"
421
+ }
422
+ }
423
+ }
424
+ },
425
+ {
426
+ "if": {
427
+ "properties": {
428
+ "type": {
429
+ "const": "disposition"
430
+ }
431
+ }
432
+ },
433
+ "then": {
434
+ "properties": {
435
+ "data": {
436
+ "$ref": "#/$defs/disposition"
437
+ }
438
+ }
439
+ }
440
+ },
441
+ {
442
+ "if": {
443
+ "properties": {
444
+ "type": {
445
+ "const": "void"
446
+ }
447
+ }
448
+ },
449
+ "then": {
450
+ "properties": {
451
+ "data": {
452
+ "$ref": "#/$defs/void"
453
+ }
454
+ }
455
+ }
456
+ }
457
+ ]
458
+ },
459
+ "toolsAuthorization": {
460
+ "type": "object",
461
+ "required": [
462
+ "type"
463
+ ],
464
+ "properties": {
465
+ "caps": {
466
+ "type": "object",
467
+ "maxProperties": 256,
468
+ "additionalProperties": {
469
+ "type": "object",
470
+ "maxProperties": 16,
471
+ "additionalProperties": {
472
+ "$ref": "#/$defs/uint"
473
+ }
474
+ }
475
+ },
476
+ "connector": {
477
+ "$ref": "#/$defs/token"
478
+ },
479
+ "data_region": {
480
+ "$ref": "#/$defs/token"
481
+ },
482
+ "purpose": {
483
+ "$ref": "#/$defs/token"
484
+ },
485
+ "tools": {
486
+ "type": "array",
487
+ "maxItems": 256,
488
+ "items": {
489
+ "$ref": "#/$defs/token"
490
+ }
491
+ },
492
+ "type": {
493
+ "$ref": "#/$defs/token"
494
+ }
495
+ }
496
+ },
497
+ "grant": {
498
+ "type": "object",
499
+ "additionalProperties": false,
500
+ "required": [
501
+ "agent_id",
502
+ "authorization_details",
503
+ "depth",
504
+ "expires_at",
505
+ "grant_id",
506
+ "issued_at",
507
+ "parent_grant_id",
508
+ "principal",
509
+ "purpose",
510
+ "revoked_at",
511
+ "scopes",
512
+ "status"
513
+ ],
514
+ "properties": {
515
+ "agent_id": {
516
+ "$ref": "#/$defs/token"
517
+ },
518
+ "authorization_details": {
519
+ "type": "array",
520
+ "maxItems": 32,
521
+ "items": {
522
+ "$ref": "#/$defs/toolsAuthorization"
523
+ }
524
+ },
525
+ "depth": {
526
+ "type": "integer",
527
+ "minimum": 0,
528
+ "maximum": 32
529
+ },
530
+ "expires_at": {
531
+ "$ref": "#/$defs/timestamp"
532
+ },
533
+ "grant_id": {
534
+ "$ref": "#/$defs/token"
535
+ },
536
+ "issued_at": {
537
+ "$ref": "#/$defs/timestamp"
538
+ },
539
+ "parent_grant_id": {
540
+ "type": [
541
+ "string",
542
+ "null"
543
+ ],
544
+ "minLength": 1,
545
+ "maxLength": 256,
546
+ "pattern": "^[!-~]+$"
547
+ },
548
+ "principal": {
549
+ "$ref": "#/$defs/identifier"
550
+ },
551
+ "purpose": {
552
+ "type": [
553
+ "string",
554
+ "null"
555
+ ],
556
+ "minLength": 1,
557
+ "maxLength": 256,
558
+ "pattern": "^[!-~]+$"
559
+ },
560
+ "revoked_at": {
561
+ "type": [
562
+ "string",
563
+ "null"
564
+ ],
565
+ "format": "date-time",
566
+ "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]\\.[0-9]{3}Z$"
567
+ },
568
+ "scopes": {
569
+ "type": "array",
570
+ "maxItems": 256,
571
+ "items": {
572
+ "$ref": "#/$defs/token"
573
+ }
574
+ },
575
+ "status": {
576
+ "enum": [
577
+ "active",
578
+ "revoked",
579
+ "expired"
580
+ ]
581
+ }
582
+ }
583
+ },
584
+ "versionRef": {
585
+ "type": "object",
586
+ "additionalProperties": false,
587
+ "required": [
588
+ "digest",
589
+ "id",
590
+ "version"
591
+ ],
592
+ "properties": {
593
+ "digest": {
594
+ "$ref": "#/$defs/digest"
595
+ },
596
+ "id": {
597
+ "$ref": "#/$defs/token"
598
+ },
599
+ "version": {
600
+ "$ref": "#/$defs/token"
601
+ }
602
+ }
603
+ },
604
+ "runContext": {
605
+ "type": "object",
606
+ "additionalProperties": false,
607
+ "required": [
608
+ "agent_id",
609
+ "model",
610
+ "policies",
611
+ "prompts",
612
+ "run_id",
613
+ "schemas"
614
+ ],
615
+ "properties": {
616
+ "agent_id": {
617
+ "$ref": "#/$defs/token"
618
+ },
619
+ "model": {
620
+ "type": "object",
621
+ "additionalProperties": false,
622
+ "required": [
623
+ "name",
624
+ "provider",
625
+ "version"
626
+ ],
627
+ "properties": {
628
+ "name": {
629
+ "$ref": "#/$defs/token"
630
+ },
631
+ "provider": {
632
+ "$ref": "#/$defs/token"
633
+ },
634
+ "version": {
635
+ "$ref": "#/$defs/token"
636
+ }
637
+ }
638
+ },
639
+ "policies": {
640
+ "type": "array",
641
+ "maxItems": 16,
642
+ "items": {
643
+ "$ref": "#/$defs/versionRef"
644
+ }
645
+ },
646
+ "prompts": {
647
+ "type": "array",
648
+ "maxItems": 64,
649
+ "items": {
650
+ "$ref": "#/$defs/versionRef"
651
+ }
652
+ },
653
+ "run_id": {
654
+ "$ref": "#/$defs/token"
655
+ },
656
+ "schemas": {
657
+ "type": "array",
658
+ "maxItems": 64,
659
+ "items": {
660
+ "type": "object",
661
+ "additionalProperties": false,
662
+ "required": [
663
+ "id",
664
+ "version"
665
+ ],
666
+ "properties": {
667
+ "id": {
668
+ "$ref": "#/$defs/token"
669
+ },
670
+ "version": {
671
+ "$ref": "#/$defs/token"
672
+ }
673
+ }
674
+ }
675
+ }
676
+ }
677
+ },
678
+ "upstreamRecord": {
679
+ "type": "object",
680
+ "additionalProperties": false,
681
+ "required": [
682
+ "record_id",
683
+ "retrieved_at"
684
+ ],
685
+ "properties": {
686
+ "record_id": {
687
+ "$ref": "#/$defs/identifier"
688
+ },
689
+ "record_type": {
690
+ "$ref": "#/$defs/token"
691
+ },
692
+ "retrieved_at": {
693
+ "$ref": "#/$defs/timestamp"
694
+ }
695
+ }
696
+ },
697
+ "toolCall": {
698
+ "type": "object",
699
+ "additionalProperties": false,
700
+ "required": [
701
+ "call_id",
702
+ "connector",
703
+ "grant_id",
704
+ "input_hash",
705
+ "outcome",
706
+ "output_hash",
707
+ "provider",
708
+ "purpose",
709
+ "started_at",
710
+ "tool",
711
+ "upstream_records"
712
+ ],
713
+ "properties": {
714
+ "call_id": {
715
+ "$ref": "#/$defs/token"
716
+ },
717
+ "completed_at": {
718
+ "$ref": "#/$defs/timestamp"
719
+ },
720
+ "connector": {
721
+ "$ref": "#/$defs/token"
722
+ },
723
+ "cost_units": {
724
+ "$ref": "#/$defs/uint"
725
+ },
726
+ "denial": {
727
+ "type": "object",
728
+ "additionalProperties": false,
729
+ "required": [
730
+ "reason"
731
+ ],
732
+ "properties": {
733
+ "reason": {
734
+ "$ref": "#/$defs/token"
735
+ },
736
+ "sub_reason": {
737
+ "$ref": "#/$defs/token"
738
+ }
739
+ }
740
+ },
741
+ "grant_id": {
742
+ "$ref": "#/$defs/token"
743
+ },
744
+ "input_hash": {
745
+ "$ref": "#/$defs/contentHash"
746
+ },
747
+ "outcome": {
748
+ "enum": [
749
+ "allowed",
750
+ "denied",
751
+ "error"
752
+ ]
753
+ },
754
+ "output_hash": {
755
+ "type": [
756
+ "string",
757
+ "null"
758
+ ],
759
+ "pattern": "^(sha256|hmac-sha256):[0-9a-f]{64}$"
760
+ },
761
+ "provider": {
762
+ "$ref": "#/$defs/token"
763
+ },
764
+ "purpose": {
765
+ "type": [
766
+ "string",
767
+ "null"
768
+ ],
769
+ "minLength": 1,
770
+ "maxLength": 256,
771
+ "pattern": "^[!-~]+$"
772
+ },
773
+ "run_id": {
774
+ "$ref": "#/$defs/token"
775
+ },
776
+ "started_at": {
777
+ "$ref": "#/$defs/timestamp"
778
+ },
779
+ "tool": {
780
+ "$ref": "#/$defs/token"
781
+ },
782
+ "upstream_records": {
783
+ "type": "array",
784
+ "maxItems": 1024,
785
+ "items": {
786
+ "$ref": "#/$defs/upstreamRecord"
787
+ }
788
+ }
789
+ }
790
+ },
791
+ "evidenceRef": {
792
+ "type": "object",
793
+ "additionalProperties": false,
794
+ "required": [
795
+ "call_id",
796
+ "provider",
797
+ "record_id",
798
+ "retrieved_at"
799
+ ],
800
+ "properties": {
801
+ "call_id": {
802
+ "$ref": "#/$defs/token"
803
+ },
804
+ "excerpt_ref": {
805
+ "$ref": "#/$defs/identifier"
806
+ },
807
+ "field": {
808
+ "$ref": "#/$defs/token"
809
+ },
810
+ "provider": {
811
+ "$ref": "#/$defs/token"
812
+ },
813
+ "record_id": {
814
+ "$ref": "#/$defs/identifier"
815
+ },
816
+ "retrieved_at": {
817
+ "$ref": "#/$defs/timestamp"
818
+ }
819
+ }
820
+ },
821
+ "policyEvaluation": {
822
+ "type": "object",
823
+ "additionalProperties": false,
824
+ "required": [
825
+ "evaluation_id",
826
+ "fired_rules",
827
+ "inputs",
828
+ "policy",
829
+ "score",
830
+ "tier"
831
+ ],
832
+ "properties": {
833
+ "evaluation_id": {
834
+ "$ref": "#/$defs/token"
835
+ },
836
+ "fired_rules": {
837
+ "type": "array",
838
+ "maxItems": 1024,
839
+ "items": {
840
+ "type": "object",
841
+ "additionalProperties": false,
842
+ "required": [
843
+ "reason_code",
844
+ "rule_id",
845
+ "tier"
846
+ ],
847
+ "properties": {
848
+ "reason_code": {
849
+ "$ref": "#/$defs/token"
850
+ },
851
+ "reason_digest": {
852
+ "$ref": "#/$defs/digest"
853
+ },
854
+ "rule_id": {
855
+ "$ref": "#/$defs/token"
856
+ },
857
+ "tier": {
858
+ "$ref": "#/$defs/tier"
859
+ }
860
+ }
861
+ }
862
+ },
863
+ "inputs": {
864
+ "type": "array",
865
+ "maxItems": 4096,
866
+ "items": {
867
+ "type": "object",
868
+ "additionalProperties": false,
869
+ "required": [
870
+ "evidence",
871
+ "path",
872
+ "value"
873
+ ],
874
+ "properties": {
875
+ "evidence": {
876
+ "type": "array",
877
+ "maxItems": 256,
878
+ "items": {
879
+ "$ref": "#/$defs/evidenceRef"
880
+ }
881
+ },
882
+ "path": {
883
+ "$ref": "#/$defs/token"
884
+ },
885
+ "unsourced": {
886
+ "const": true
887
+ },
888
+ "value": {
889
+ "$ref": "#/$defs/scalar"
890
+ }
891
+ }
892
+ }
893
+ },
894
+ "policy": {
895
+ "$ref": "#/$defs/versionRef"
896
+ },
897
+ "run_id": {
898
+ "$ref": "#/$defs/token"
899
+ },
900
+ "score": {
901
+ "type": "number",
902
+ "minimum": -1000000000,
903
+ "maximum": 1000000000
904
+ },
905
+ "tier": {
906
+ "$ref": "#/$defs/tier"
907
+ }
908
+ }
909
+ },
910
+ "recommendation": {
911
+ "type": "object",
912
+ "additionalProperties": false,
913
+ "required": [
914
+ "evaluation_ids",
915
+ "memo_digest",
916
+ "outcome",
917
+ "recommendation_id",
918
+ "sections"
919
+ ],
920
+ "properties": {
921
+ "evaluation_ids": {
922
+ "type": "array",
923
+ "minItems": 1,
924
+ "maxItems": 64,
925
+ "uniqueItems": true,
926
+ "items": {
927
+ "$ref": "#/$defs/token"
928
+ }
929
+ },
930
+ "memo_digest": {
931
+ "$ref": "#/$defs/digest"
932
+ },
933
+ "missing_items": {
934
+ "type": "array",
935
+ "maxItems": 256,
936
+ "items": {
937
+ "$ref": "#/$defs/token"
938
+ }
939
+ },
940
+ "outcome": {
941
+ "enum": [
942
+ "approve",
943
+ "decline",
944
+ "refer",
945
+ "request_information"
946
+ ]
947
+ },
948
+ "recommendation_id": {
949
+ "$ref": "#/$defs/token"
950
+ },
951
+ "run_id": {
952
+ "$ref": "#/$defs/token"
953
+ },
954
+ "sections": {
955
+ "type": "array",
956
+ "minItems": 1,
957
+ "maxItems": 256,
958
+ "items": {
959
+ "type": "object",
960
+ "additionalProperties": false,
961
+ "required": [
962
+ "evidence",
963
+ "section",
964
+ "status"
965
+ ],
966
+ "properties": {
967
+ "evidence": {
968
+ "type": "array",
969
+ "maxItems": 1024,
970
+ "items": {
971
+ "$ref": "#/$defs/evidenceRef"
972
+ }
973
+ },
974
+ "section": {
975
+ "$ref": "#/$defs/token"
976
+ },
977
+ "status": {
978
+ "enum": [
979
+ "complete",
980
+ "issues_found",
981
+ "not_available"
982
+ ]
983
+ }
984
+ }
985
+ }
986
+ }
987
+ }
988
+ },
989
+ "decision": {
990
+ "type": "object",
991
+ "additionalProperties": false,
992
+ "required": [
993
+ "action",
994
+ "approval_position",
995
+ "approvals_required",
996
+ "approver",
997
+ "approver_auth",
998
+ "dwell_ms",
999
+ "expires_at",
1000
+ "issued_at",
1001
+ "issuer",
1002
+ "jti"
1003
+ ],
1004
+ "properties": {
1005
+ "action": {
1006
+ "type": "object",
1007
+ "additionalProperties": false,
1008
+ "required": [
1009
+ "action",
1010
+ "case_id",
1011
+ "decision",
1012
+ "subject"
1013
+ ],
1014
+ "properties": {
1015
+ "action": {
1016
+ "$ref": "#/$defs/token"
1017
+ },
1018
+ "amount": {
1019
+ "type": [
1020
+ "number",
1021
+ "string"
1022
+ ],
1023
+ "minLength": 1,
1024
+ "maxLength": 64,
1025
+ "pattern": "^-?(0|[1-9][0-9]*)(\\.[0-9]*[1-9])?$"
1026
+ },
1027
+ "case_id": {
1028
+ "$ref": "#/$defs/token"
1029
+ },
1030
+ "decision": {
1031
+ "$ref": "#/$defs/token"
1032
+ },
1033
+ "subject": {
1034
+ "$ref": "#/$defs/identifier"
1035
+ }
1036
+ }
1037
+ },
1038
+ "action_hash": {
1039
+ "$ref": "#/$defs/actionHash"
1040
+ },
1041
+ "action_ref": {
1042
+ "$ref": "#/$defs/actionRef"
1043
+ },
1044
+ "approval_position": {
1045
+ "enum": [
1046
+ 1,
1047
+ 2
1048
+ ]
1049
+ },
1050
+ "approvals_required": {
1051
+ "enum": [
1052
+ 1,
1053
+ 2
1054
+ ]
1055
+ },
1056
+ "approver": {
1057
+ "$ref": "#/$defs/identifier"
1058
+ },
1059
+ "approver_auth": {
1060
+ "$ref": "#/$defs/token"
1061
+ },
1062
+ "dwell_ms": {
1063
+ "$ref": "#/$defs/uint"
1064
+ },
1065
+ "expires_at": {
1066
+ "$ref": "#/$defs/timestamp"
1067
+ },
1068
+ "first_jti": {
1069
+ "$ref": "#/$defs/token"
1070
+ },
1071
+ "issued_at": {
1072
+ "$ref": "#/$defs/timestamp"
1073
+ },
1074
+ "issuer": {
1075
+ "$ref": "#/$defs/token"
1076
+ },
1077
+ "jti": {
1078
+ "$ref": "#/$defs/token"
1079
+ },
1080
+ "request_id": {
1081
+ "$ref": "#/$defs/token"
1082
+ }
1083
+ }
1084
+ },
1085
+ "decisionConsumption": {
1086
+ "type": "object",
1087
+ "additionalProperties": false,
1088
+ "required": [
1089
+ "consumed_at",
1090
+ "jtis"
1091
+ ],
1092
+ "properties": {
1093
+ "action_hash": {
1094
+ "$ref": "#/$defs/actionHash"
1095
+ },
1096
+ "action_ref": {
1097
+ "$ref": "#/$defs/actionRef"
1098
+ },
1099
+ "call_id": {
1100
+ "$ref": "#/$defs/token"
1101
+ },
1102
+ "consumed_at": {
1103
+ "$ref": "#/$defs/timestamp"
1104
+ },
1105
+ "jtis": {
1106
+ "type": "array",
1107
+ "minItems": 1,
1108
+ "maxItems": 2,
1109
+ "uniqueItems": true,
1110
+ "items": {
1111
+ "$ref": "#/$defs/token"
1112
+ }
1113
+ }
1114
+ }
1115
+ },
1116
+ "revocation": {
1117
+ "type": "object",
1118
+ "additionalProperties": false,
1119
+ "required": [
1120
+ "grant_id",
1121
+ "revoked_at"
1122
+ ],
1123
+ "properties": {
1124
+ "cascade": {
1125
+ "type": "boolean"
1126
+ },
1127
+ "event_id": {
1128
+ "$ref": "#/$defs/token"
1129
+ },
1130
+ "grant_id": {
1131
+ "$ref": "#/$defs/token"
1132
+ },
1133
+ "reason": {
1134
+ "$ref": "#/$defs/token"
1135
+ },
1136
+ "revoked_at": {
1137
+ "$ref": "#/$defs/timestamp"
1138
+ },
1139
+ "trigger": {
1140
+ "enum": [
1141
+ "admin",
1142
+ "api",
1143
+ "cascade",
1144
+ "event",
1145
+ "expiry"
1146
+ ]
1147
+ }
1148
+ }
1149
+ },
1150
+ "anchor": {
1151
+ "type": "object",
1152
+ "additionalProperties": false,
1153
+ "required": [
1154
+ "audit_entry",
1155
+ "type"
1156
+ ],
1157
+ "properties": {
1158
+ "audit_entry": {
1159
+ "type": "object",
1160
+ "additionalProperties": false,
1161
+ "required": [
1162
+ "action",
1163
+ "agentDid",
1164
+ "agentId",
1165
+ "developerId",
1166
+ "grantId",
1167
+ "hash",
1168
+ "id",
1169
+ "metadata",
1170
+ "prevHash",
1171
+ "principalId",
1172
+ "status",
1173
+ "timestamp"
1174
+ ],
1175
+ "properties": {
1176
+ "action": {
1177
+ "const": "evidence.package_exported"
1178
+ },
1179
+ "agentDid": {
1180
+ "const": ""
1181
+ },
1182
+ "agentId": {
1183
+ "const": ""
1184
+ },
1185
+ "developerId": {
1186
+ "$ref": "#/$defs/token"
1187
+ },
1188
+ "grantId": {
1189
+ "const": ""
1190
+ },
1191
+ "hash": {
1192
+ "$ref": "#/$defs/auditHash"
1193
+ },
1194
+ "id": {
1195
+ "$ref": "#/$defs/token"
1196
+ },
1197
+ "metadata": {
1198
+ "type": "object",
1199
+ "additionalProperties": false,
1200
+ "required": [
1201
+ "case_id",
1202
+ "entry_count",
1203
+ "format",
1204
+ "grantex:platform",
1205
+ "package_root",
1206
+ "version"
1207
+ ],
1208
+ "properties": {
1209
+ "case_id": {
1210
+ "$ref": "#/$defs/token"
1211
+ },
1212
+ "entry_count": {
1213
+ "$ref": "#/$defs/uint"
1214
+ },
1215
+ "format": {
1216
+ "const": "grantex-evidence-package"
1217
+ },
1218
+ "grantex:platform": {
1219
+ "const": true
1220
+ },
1221
+ "package_root": {
1222
+ "$ref": "#/$defs/digest"
1223
+ },
1224
+ "version": {
1225
+ "const": "1.0"
1226
+ }
1227
+ }
1228
+ },
1229
+ "prevHash": {
1230
+ "type": [
1231
+ "string",
1232
+ "null"
1233
+ ],
1234
+ "pattern": "^[0-9a-f]{64}$"
1235
+ },
1236
+ "principalId": {
1237
+ "const": "platform"
1238
+ },
1239
+ "status": {
1240
+ "const": "success"
1241
+ },
1242
+ "timestamp": {
1243
+ "$ref": "#/$defs/timestamp"
1244
+ }
1245
+ }
1246
+ },
1247
+ "type": {
1248
+ "const": "grantex-audit-entry"
1249
+ }
1250
+ }
1251
+ },
1252
+ "signature": {
1253
+ "type": "object",
1254
+ "additionalProperties": false,
1255
+ "required": [
1256
+ "alg",
1257
+ "jws",
1258
+ "kid"
1259
+ ],
1260
+ "properties": {
1261
+ "alg": {
1262
+ "enum": [
1263
+ "ES256",
1264
+ "RS256"
1265
+ ]
1266
+ },
1267
+ "jws": {
1268
+ "type": "string",
1269
+ "maxLength": 4096,
1270
+ "pattern": "^[A-Za-z0-9_-]+\\.\\.[A-Za-z0-9_-]+$"
1271
+ },
1272
+ "kid": {
1273
+ "$ref": "#/$defs/token"
1274
+ }
1275
+ }
1276
+ },
1277
+ "contentHash": {
1278
+ "type": "string",
1279
+ "pattern": "^(sha256|hmac-sha256):[0-9a-f]{64}$"
1280
+ },
1281
+ "actionRef": {
1282
+ "type": "string",
1283
+ "pattern": "^ak:[A-Za-z0-9_-]{43}$"
1284
+ },
1285
+ "disposition": {
1286
+ "type": "object",
1287
+ "additionalProperties": false,
1288
+ "required": [
1289
+ "comparisons",
1290
+ "confidence_band",
1291
+ "disposition_id",
1292
+ "hit",
1293
+ "outcome",
1294
+ "rationale_digest"
1295
+ ],
1296
+ "properties": {
1297
+ "comparisons": {
1298
+ "type": "array",
1299
+ "maxItems": 64,
1300
+ "items": {
1301
+ "type": "object",
1302
+ "additionalProperties": false,
1303
+ "required": [
1304
+ "evidence",
1305
+ "identifier",
1306
+ "result"
1307
+ ],
1308
+ "properties": {
1309
+ "evidence": {
1310
+ "type": "array",
1311
+ "maxItems": 256,
1312
+ "items": {
1313
+ "$ref": "#/$defs/evidenceRef"
1314
+ }
1315
+ },
1316
+ "identifier": {
1317
+ "enum": [
1318
+ "address",
1319
+ "associated_entities",
1320
+ "date_of_birth",
1321
+ "name",
1322
+ "nationality",
1323
+ "registration_number"
1324
+ ]
1325
+ },
1326
+ "result": {
1327
+ "enum": [
1328
+ "match",
1329
+ "mismatch",
1330
+ "not_available",
1331
+ "partial"
1332
+ ]
1333
+ }
1334
+ }
1335
+ }
1336
+ },
1337
+ "confidence_band": {
1338
+ "enum": [
1339
+ "high",
1340
+ "low",
1341
+ "medium"
1342
+ ]
1343
+ },
1344
+ "disposition_id": {
1345
+ "$ref": "#/$defs/token"
1346
+ },
1347
+ "hit": {
1348
+ "$ref": "#/$defs/evidenceRef"
1349
+ },
1350
+ "outcome": {
1351
+ "enum": [
1352
+ "escalate",
1353
+ "false_positive",
1354
+ "inconclusive",
1355
+ "true_match"
1356
+ ]
1357
+ },
1358
+ "rationale_digest": {
1359
+ "$ref": "#/$defs/digest"
1360
+ },
1361
+ "run_id": {
1362
+ "$ref": "#/$defs/token"
1363
+ }
1364
+ }
1365
+ },
1366
+ "void": {
1367
+ "type": "object",
1368
+ "additionalProperties": false,
1369
+ "required": [
1370
+ "reason_code",
1371
+ "target_id",
1372
+ "target_type",
1373
+ "voided_at"
1374
+ ],
1375
+ "properties": {
1376
+ "reason_code": {
1377
+ "$ref": "#/$defs/token"
1378
+ },
1379
+ "target_id": {
1380
+ "$ref": "#/$defs/token"
1381
+ },
1382
+ "target_type": {
1383
+ "enum": [
1384
+ "disposition",
1385
+ "policy_evaluation",
1386
+ "recommendation",
1387
+ "run_context",
1388
+ "tool_call"
1389
+ ]
1390
+ },
1391
+ "voided_at": {
1392
+ "$ref": "#/$defs/timestamp"
1393
+ }
1394
+ }
1395
+ }
1396
+ }
1397
+ };
1398
+ //# sourceMappingURL=schema-1.0.js.map