@agentpolicyspecification/core 0.1.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 (94) hide show
  1. package/LICENSE +187 -0
  2. package/README.md +13 -0
  3. package/coverage/clover.xml +458 -0
  4. package/coverage/coverage-final.json +7 -0
  5. package/coverage/lcov-report/base.css +224 -0
  6. package/coverage/lcov-report/block-navigation.js +87 -0
  7. package/coverage/lcov-report/favicon.png +0 -0
  8. package/coverage/lcov-report/index.html +146 -0
  9. package/coverage/lcov-report/prettify.css +1 -0
  10. package/coverage/lcov-report/prettify.js +2 -0
  11. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  12. package/coverage/lcov-report/sorter.js +210 -0
  13. package/coverage/lcov-report/src/core/errors.ts.html +217 -0
  14. package/coverage/lcov-report/src/core/index.html +146 -0
  15. package/coverage/lcov-report/src/core/policy.ts.html +142 -0
  16. package/coverage/lcov-report/src/core/types.ts.html +364 -0
  17. package/coverage/lcov-report/src/engine/aps-engine.ts.html +703 -0
  18. package/coverage/lcov-report/src/engine/index.html +131 -0
  19. package/coverage/lcov-report/src/engine/policy-set.ts.html +115 -0
  20. package/coverage/lcov-report/src/index.html +116 -0
  21. package/coverage/lcov-report/src/index.ts.html +244 -0
  22. package/coverage/lcov.info +558 -0
  23. package/dist/core/errors.d.ts +29 -0
  24. package/dist/core/errors.d.ts.map +1 -0
  25. package/dist/core/errors.js +21 -0
  26. package/dist/core/errors.js.map +1 -0
  27. package/dist/core/policy.d.ts +17 -0
  28. package/dist/core/policy.d.ts.map +1 -0
  29. package/dist/core/policy.js +2 -0
  30. package/dist/core/policy.js.map +1 -0
  31. package/dist/core/types.d.ts +67 -0
  32. package/dist/core/types.d.ts.map +1 -0
  33. package/dist/core/types.js +3 -0
  34. package/dist/core/types.js.map +1 -0
  35. package/dist/engine/aps-engine.d.ts +22 -0
  36. package/dist/engine/aps-engine.d.ts.map +1 -0
  37. package/dist/engine/aps-engine.js +167 -0
  38. package/dist/engine/aps-engine.js.map +1 -0
  39. package/dist/engine/policy-set.d.ts +9 -0
  40. package/dist/engine/policy-set.d.ts.map +1 -0
  41. package/dist/engine/policy-set.js +2 -0
  42. package/dist/engine/policy-set.js.map +1 -0
  43. package/dist/generated/base.d.ts +7 -0
  44. package/dist/generated/base.d.ts.map +1 -0
  45. package/dist/generated/base.js +4 -0
  46. package/dist/generated/base.js.map +1 -0
  47. package/dist/generated/dsl-policy.d.ts +130 -0
  48. package/dist/generated/dsl-policy.d.ts.map +1 -0
  49. package/dist/generated/dsl-policy.js +4 -0
  50. package/dist/generated/dsl-policy.js.map +1 -0
  51. package/dist/generated/input-context.d.ts +48 -0
  52. package/dist/generated/input-context.d.ts.map +1 -0
  53. package/dist/generated/input-context.js +4 -0
  54. package/dist/generated/input-context.js.map +1 -0
  55. package/dist/generated/output-context.d.ts +42 -0
  56. package/dist/generated/output-context.d.ts.map +1 -0
  57. package/dist/generated/output-context.js +4 -0
  58. package/dist/generated/output-context.js.map +1 -0
  59. package/dist/generated/policy-decision.d.ts +95 -0
  60. package/dist/generated/policy-decision.d.ts.map +1 -0
  61. package/dist/generated/policy-decision.js +4 -0
  62. package/dist/generated/policy-decision.js.map +1 -0
  63. package/dist/generated/policy-set.d.ts +139 -0
  64. package/dist/generated/policy-set.d.ts.map +1 -0
  65. package/dist/generated/policy-set.js +4 -0
  66. package/dist/generated/policy-set.js.map +1 -0
  67. package/dist/generated/tool-call-context.d.ts +52 -0
  68. package/dist/generated/tool-call-context.d.ts.map +1 -0
  69. package/dist/generated/tool-call-context.js +4 -0
  70. package/dist/generated/tool-call-context.js.map +1 -0
  71. package/dist/index.d.ts +13 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +3 -0
  74. package/dist/index.js.map +1 -0
  75. package/examples/basic-usage.ts +89 -0
  76. package/jest.config.js +20 -0
  77. package/package.json +46 -0
  78. package/scripts/generate-types.mjs +24 -0
  79. package/src/core/errors.ts +44 -0
  80. package/src/core/policy.ts +19 -0
  81. package/src/core/types.ts +93 -0
  82. package/src/engine/aps-engine.ts +206 -0
  83. package/src/engine/policy-set.ts +10 -0
  84. package/src/generated/base.ts +9 -0
  85. package/src/generated/dsl-policy.ts +133 -0
  86. package/src/generated/input-context.ts +51 -0
  87. package/src/generated/output-context.ts +45 -0
  88. package/src/generated/policy-decision.ts +98 -0
  89. package/src/generated/policy-set.ts +142 -0
  90. package/src/generated/tool-call-context.ts +55 -0
  91. package/src/index.ts +53 -0
  92. package/test/aps-engine.test.ts +264 -0
  93. package/tsconfig.json +22 -0
  94. package/tsconfig.test.json +10 -0
@@ -0,0 +1,558 @@
1
+ TN:
2
+ SF:src/index.ts
3
+ FN:1,(empty-report)
4
+ FNF:1
5
+ FNH:0
6
+ FNDA:0,(empty-report)
7
+ DA:1,0
8
+ DA:2,0
9
+ DA:3,0
10
+ DA:4,0
11
+ DA:5,0
12
+ DA:6,0
13
+ DA:7,0
14
+ DA:8,0
15
+ DA:9,0
16
+ DA:10,0
17
+ DA:11,0
18
+ DA:12,0
19
+ DA:13,0
20
+ DA:14,0
21
+ DA:15,0
22
+ DA:16,0
23
+ DA:17,0
24
+ DA:18,0
25
+ DA:19,0
26
+ DA:20,0
27
+ DA:21,0
28
+ DA:22,0
29
+ DA:23,0
30
+ DA:24,0
31
+ DA:25,0
32
+ DA:26,0
33
+ DA:27,0
34
+ DA:28,0
35
+ DA:29,0
36
+ DA:30,0
37
+ DA:31,0
38
+ DA:32,0
39
+ DA:33,0
40
+ DA:34,0
41
+ DA:35,0
42
+ DA:36,0
43
+ DA:37,0
44
+ DA:38,0
45
+ DA:39,0
46
+ DA:40,0
47
+ DA:41,0
48
+ DA:42,0
49
+ DA:43,0
50
+ DA:44,0
51
+ DA:45,0
52
+ DA:46,0
53
+ DA:47,0
54
+ DA:48,0
55
+ DA:49,0
56
+ DA:50,0
57
+ DA:51,0
58
+ DA:52,0
59
+ DA:53,0
60
+ LF:53
61
+ LH:0
62
+ BRDA:1,0,0,0
63
+ BRF:1
64
+ BRH:0
65
+ end_of_record
66
+ TN:
67
+ SF:src/core/errors.ts
68
+ FN:5,<instance_members_initializer>
69
+ FN:9,PolicyDenialError
70
+ FN:21,<instance_members_initializer>
71
+ FN:25,PolicyEvaluationError
72
+ FNF:4
73
+ FNH:4
74
+ FNDA:7,<instance_members_initializer>
75
+ FNDA:7,PolicyDenialError
76
+ FNDA:3,<instance_members_initializer>
77
+ FNDA:3,PolicyEvaluationError
78
+ DA:1,1
79
+ DA:2,1
80
+ DA:3,1
81
+ DA:4,1
82
+ DA:5,1
83
+ DA:6,7
84
+ DA:7,7
85
+ DA:8,7
86
+ DA:9,7
87
+ DA:10,7
88
+ DA:11,7
89
+ DA:12,7
90
+ DA:13,7
91
+ DA:14,7
92
+ DA:15,7
93
+ DA:16,7
94
+ DA:17,7
95
+ DA:18,7
96
+ DA:19,7
97
+ DA:20,1
98
+ DA:21,1
99
+ DA:22,3
100
+ DA:23,3
101
+ DA:24,3
102
+ DA:25,3
103
+ DA:26,3
104
+ DA:27,3
105
+ DA:28,3
106
+ DA:29,3
107
+ DA:30,3
108
+ DA:31,3
109
+ DA:32,3
110
+ DA:33,3
111
+ DA:34,3
112
+ DA:35,3
113
+ DA:36,1
114
+ DA:37,1
115
+ DA:38,1
116
+ DA:39,1
117
+ DA:40,1
118
+ DA:41,1
119
+ DA:42,1
120
+ DA:43,1
121
+ DA:44,1
122
+ LF:44
123
+ LH:44
124
+ BRDA:5,0,0,7
125
+ BRDA:9,1,0,7
126
+ BRDA:14,2,0,0
127
+ BRDA:21,3,0,3
128
+ BRDA:25,4,0,3
129
+ BRF:5
130
+ BRH:4
131
+ end_of_record
132
+ TN:
133
+ SF:src/core/policy.ts
134
+ FN:1,(empty-report)
135
+ FNF:1
136
+ FNH:0
137
+ FNDA:0,(empty-report)
138
+ DA:1,0
139
+ DA:2,0
140
+ DA:3,0
141
+ DA:4,0
142
+ DA:5,0
143
+ DA:6,0
144
+ DA:7,0
145
+ DA:8,0
146
+ DA:9,0
147
+ DA:10,0
148
+ DA:11,0
149
+ DA:12,0
150
+ DA:13,0
151
+ DA:14,0
152
+ DA:15,0
153
+ DA:16,0
154
+ DA:17,0
155
+ DA:18,0
156
+ DA:19,0
157
+ LF:19
158
+ LH:0
159
+ BRDA:1,0,0,0
160
+ BRF:1
161
+ BRH:0
162
+ end_of_record
163
+ TN:
164
+ SF:src/core/types.ts
165
+ FN:1,(empty-report)
166
+ FNF:1
167
+ FNH:0
168
+ FNDA:0,(empty-report)
169
+ DA:1,0
170
+ DA:2,0
171
+ DA:3,0
172
+ DA:4,0
173
+ DA:5,0
174
+ DA:6,0
175
+ DA:7,0
176
+ DA:8,0
177
+ DA:9,0
178
+ DA:10,0
179
+ DA:11,0
180
+ DA:12,0
181
+ DA:13,0
182
+ DA:14,0
183
+ DA:15,0
184
+ DA:16,0
185
+ DA:17,0
186
+ DA:18,0
187
+ DA:19,0
188
+ DA:20,0
189
+ DA:21,0
190
+ DA:22,0
191
+ DA:23,0
192
+ DA:24,0
193
+ DA:25,0
194
+ DA:26,0
195
+ DA:27,0
196
+ DA:28,0
197
+ DA:29,0
198
+ DA:30,0
199
+ DA:31,0
200
+ DA:32,0
201
+ DA:33,0
202
+ DA:34,0
203
+ DA:35,0
204
+ DA:36,0
205
+ DA:37,0
206
+ DA:38,0
207
+ DA:39,0
208
+ DA:40,0
209
+ DA:41,0
210
+ DA:42,0
211
+ DA:43,0
212
+ DA:44,0
213
+ DA:45,0
214
+ DA:46,0
215
+ DA:47,0
216
+ DA:48,0
217
+ DA:49,0
218
+ DA:50,0
219
+ DA:51,0
220
+ DA:52,0
221
+ DA:53,0
222
+ DA:54,0
223
+ DA:55,0
224
+ DA:56,0
225
+ DA:57,0
226
+ DA:58,0
227
+ DA:59,0
228
+ DA:60,0
229
+ DA:61,0
230
+ DA:62,0
231
+ DA:63,0
232
+ DA:64,0
233
+ DA:65,0
234
+ DA:66,0
235
+ DA:67,0
236
+ DA:68,0
237
+ DA:69,0
238
+ DA:70,0
239
+ DA:71,0
240
+ DA:72,0
241
+ DA:73,0
242
+ DA:74,0
243
+ DA:75,0
244
+ DA:76,0
245
+ DA:77,0
246
+ DA:78,0
247
+ DA:79,0
248
+ DA:80,0
249
+ DA:81,0
250
+ DA:82,0
251
+ DA:83,0
252
+ DA:84,0
253
+ DA:85,0
254
+ DA:86,0
255
+ DA:87,0
256
+ DA:88,0
257
+ DA:89,0
258
+ DA:90,0
259
+ DA:91,0
260
+ DA:92,0
261
+ DA:93,0
262
+ LF:93
263
+ LH:0
264
+ BRDA:1,0,0,0
265
+ BRF:1
266
+ BRH:0
267
+ end_of_record
268
+ TN:
269
+ SF:src/engine/aps-engine.ts
270
+ FN:18,<instance_members_initializer>
271
+ FN:22,ApsEngine
272
+ FN:27,fromJson
273
+ FN:65,evaluateInput
274
+ FN:69,evaluateToolCall
275
+ FN:73,evaluateOutput
276
+ FN:80,runPolicies
277
+ FN:156,audit
278
+ FN:165,evaluateEntry
279
+ FN:172,evaluateCondition
280
+ FN:184,resolveField
281
+ FN:188,buildDecision
282
+ FNF:12
283
+ FNH:7
284
+ FNDA:17,<instance_members_initializer>
285
+ FNDA:17,ApsEngine
286
+ FNDA:0,fromJson
287
+ FNDA:12,evaluateInput
288
+ FNDA:3,evaluateToolCall
289
+ FNDA:2,evaluateOutput
290
+ FNDA:17,runPolicies
291
+ FNDA:9,audit
292
+ FNDA:0,evaluateEntry
293
+ FNDA:0,evaluateCondition
294
+ FNDA:0,resolveField
295
+ FNDA:0,buildDecision
296
+ DA:1,1
297
+ DA:2,1
298
+ DA:3,1
299
+ DA:4,1
300
+ DA:5,1
301
+ DA:6,1
302
+ DA:7,1
303
+ DA:8,1
304
+ DA:9,1
305
+ DA:10,1
306
+ DA:11,1
307
+ DA:12,1
308
+ DA:13,1
309
+ DA:14,1
310
+ DA:15,1
311
+ DA:16,1
312
+ DA:17,1
313
+ DA:18,1
314
+ DA:19,17
315
+ DA:20,17
316
+ DA:21,17
317
+ DA:22,17
318
+ DA:23,17
319
+ DA:24,17
320
+ DA:25,17
321
+ DA:26,17
322
+ DA:27,17
323
+ DA:28,0
324
+ DA:29,0
325
+ DA:30,0
326
+ DA:31,0
327
+ DA:32,0
328
+ DA:33,0
329
+ DA:34,0
330
+ DA:35,0
331
+ DA:36,0
332
+ DA:37,0
333
+ DA:38,0
334
+ DA:39,0
335
+ DA:40,0
336
+ DA:41,0
337
+ DA:42,0
338
+ DA:43,0
339
+ DA:44,0
340
+ DA:45,0
341
+ DA:46,0
342
+ DA:47,0
343
+ DA:48,0
344
+ DA:49,0
345
+ DA:50,0
346
+ DA:51,0
347
+ DA:52,0
348
+ DA:53,0
349
+ DA:54,0
350
+ DA:55,0
351
+ DA:56,0
352
+ DA:57,0
353
+ DA:58,0
354
+ DA:59,0
355
+ DA:60,0
356
+ DA:61,0
357
+ DA:62,0
358
+ DA:63,0
359
+ DA:64,17
360
+ DA:65,17
361
+ DA:66,12
362
+ DA:67,5
363
+ DA:68,17
364
+ DA:69,17
365
+ DA:70,3
366
+ DA:71,1
367
+ DA:72,17
368
+ DA:73,17
369
+ DA:74,2
370
+ DA:75,1
371
+ DA:76,17
372
+ DA:77,17
373
+ DA:78,17
374
+ DA:79,17
375
+ DA:80,17
376
+ DA:81,17
377
+ DA:82,17
378
+ DA:83,17
379
+ DA:84,17
380
+ DA:85,17
381
+ DA:86,18
382
+ DA:87,18
383
+ DA:88,18
384
+ DA:89,18
385
+ DA:90,18
386
+ DA:91,4
387
+ DA:92,4
388
+ DA:93,0
389
+ DA:94,0
390
+ DA:95,0
391
+ DA:96,0
392
+ DA:97,0
393
+ DA:98,0
394
+ DA:99,0
395
+ DA:100,0
396
+ DA:101,0
397
+ DA:102,4
398
+ DA:103,4
399
+ DA:104,3
400
+ DA:105,3
401
+ DA:106,3
402
+ DA:107,3
403
+ DA:108,1
404
+ DA:109,1
405
+ DA:110,1
406
+ DA:111,14
407
+ DA:112,18
408
+ DA:113,1
409
+ DA:114,1
410
+ DA:115,1
411
+ DA:116,1
412
+ DA:117,1
413
+ DA:118,1
414
+ DA:119,1
415
+ DA:120,1
416
+ DA:121,1
417
+ DA:122,1
418
+ DA:123,13
419
+ DA:124,18
420
+ DA:125,7
421
+ DA:126,7
422
+ DA:127,7
423
+ DA:128,7
424
+ DA:129,7
425
+ DA:130,7
426
+ DA:131,7
427
+ DA:132,7
428
+ DA:133,7
429
+ DA:134,7
430
+ DA:135,7
431
+ DA:136,7
432
+ DA:137,7
433
+ DA:138,7
434
+ DA:139,7
435
+ DA:140,6
436
+ DA:141,6
437
+ DA:142,6
438
+ DA:143,18
439
+ DA:144,1
440
+ DA:145,1
441
+ DA:146,1
442
+ DA:147,1
443
+ DA:148,1
444
+ DA:149,1
445
+ DA:150,1
446
+ DA:151,1
447
+ DA:152,1
448
+ DA:153,18
449
+ DA:154,7
450
+ DA:155,17
451
+ DA:156,17
452
+ DA:157,9
453
+ DA:158,3
454
+ DA:159,3
455
+ DA:160,9
456
+ DA:161,17
457
+ DA:162,1
458
+ DA:163,1
459
+ DA:164,1
460
+ DA:165,0
461
+ DA:166,0
462
+ DA:167,0
463
+ DA:168,0
464
+ DA:169,0
465
+ DA:170,0
466
+ DA:171,1
467
+ DA:172,0
468
+ DA:173,0
469
+ DA:174,0
470
+ DA:175,0
471
+ DA:176,0
472
+ DA:177,0
473
+ DA:178,0
474
+ DA:179,0
475
+ DA:180,0
476
+ DA:181,0
477
+ DA:182,0
478
+ DA:183,1
479
+ DA:184,0
480
+ DA:185,0
481
+ DA:186,0
482
+ DA:187,1
483
+ DA:188,0
484
+ DA:189,0
485
+ DA:190,0
486
+ DA:191,0
487
+ DA:192,0
488
+ DA:193,0
489
+ DA:194,0
490
+ DA:195,0
491
+ DA:196,0
492
+ DA:197,0
493
+ DA:198,0
494
+ DA:199,0
495
+ DA:200,0
496
+ DA:201,0
497
+ DA:202,0
498
+ DA:203,0
499
+ DA:204,0
500
+ DA:205,0
501
+ DA:206,0
502
+ LF:206
503
+ LH:122
504
+ BRDA:18,0,0,17
505
+ BRDA:22,1,0,17
506
+ BRDA:65,2,0,12
507
+ BRDA:66,3,0,1
508
+ BRDA:67,4,0,5
509
+ BRDA:69,5,0,3
510
+ BRDA:70,6,0,0
511
+ BRDA:71,7,0,1
512
+ BRDA:73,8,0,2
513
+ BRDA:74,9,0,0
514
+ BRDA:75,10,0,1
515
+ BRDA:80,11,0,17
516
+ BRDA:85,12,0,18
517
+ BRDA:90,13,0,14
518
+ BRDA:90,14,0,4
519
+ BRDA:92,15,0,0
520
+ BRDA:103,16,0,2
521
+ BRDA:103,17,0,3
522
+ BRDA:105,18,0,0
523
+ BRDA:108,19,0,1
524
+ BRDA:111,20,0,14
525
+ BRDA:112,21,0,1
526
+ BRDA:123,22,0,13
527
+ BRDA:124,23,0,7
528
+ BRDA:137,24,0,3
529
+ BRDA:140,25,0,6
530
+ BRDA:143,26,0,1
531
+ BRDA:154,27,0,7
532
+ BRDA:156,28,0,9
533
+ BRDA:157,29,0,3
534
+ BRF:30
535
+ BRH:26
536
+ end_of_record
537
+ TN:
538
+ SF:src/engine/policy-set.ts
539
+ FN:1,(empty-report)
540
+ FNF:1
541
+ FNH:0
542
+ FNDA:0,(empty-report)
543
+ DA:1,0
544
+ DA:2,0
545
+ DA:3,0
546
+ DA:4,0
547
+ DA:5,0
548
+ DA:6,0
549
+ DA:7,0
550
+ DA:8,0
551
+ DA:9,0
552
+ DA:10,0
553
+ LF:10
554
+ LH:0
555
+ BRDA:1,0,0,0
556
+ BRF:1
557
+ BRH:0
558
+ end_of_record
@@ -0,0 +1,29 @@
1
+ import type { InputContext, OutputContext, ToolCallContext } from "./types.js";
2
+ export type InterceptionPoint = "input" | "tool_call" | "output";
3
+ export declare class PolicyDenialError extends Error {
4
+ readonly policy_id: string | undefined;
5
+ readonly interception_point: InterceptionPoint;
6
+ constructor(opts: {
7
+ policy_id?: string;
8
+ interception_point: InterceptionPoint;
9
+ reason?: string;
10
+ });
11
+ }
12
+ export declare class PolicyEvaluationError extends Error {
13
+ readonly policy_id: string;
14
+ readonly interception_point: InterceptionPoint;
15
+ constructor(opts: {
16
+ policy_id: string;
17
+ interception_point: InterceptionPoint;
18
+ cause: unknown;
19
+ });
20
+ }
21
+ export type AuditRecord = {
22
+ policy_id: string | undefined;
23
+ decision: string;
24
+ interception_point: InterceptionPoint;
25
+ reason: string | undefined;
26
+ context: InputContext | ToolCallContext | OutputContext;
27
+ timestamp: string;
28
+ };
29
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE/E,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEjE,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;gBAEnC,IAAI,EAAE;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,kBAAkB,EAAE,iBAAiB,CAAC;QACtC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;CAMF;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;gBAEnC,IAAI,EAAE;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,kBAAkB,EAAE,iBAAiB,CAAC;QACtC,KAAK,EAAE,OAAO,CAAC;KAChB;CAMF;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,YAAY,GAAG,eAAe,GAAG,aAAa,CAAC;IACxD,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC"}
@@ -0,0 +1,21 @@
1
+ export class PolicyDenialError extends Error {
2
+ policy_id;
3
+ interception_point;
4
+ constructor(opts) {
5
+ super(opts.reason ?? "Request denied by policy.");
6
+ this.name = "PolicyDenialError";
7
+ this.policy_id = opts.policy_id;
8
+ this.interception_point = opts.interception_point;
9
+ }
10
+ }
11
+ export class PolicyEvaluationError extends Error {
12
+ policy_id;
13
+ interception_point;
14
+ constructor(opts) {
15
+ super(`Policy evaluation failed for '${opts.policy_id}' at '${opts.interception_point}'.`, { cause: opts.cause });
16
+ this.name = "PolicyEvaluationError";
17
+ this.policy_id = opts.policy_id;
18
+ this.interception_point = opts.interception_point;
19
+ }
20
+ }
21
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,SAAS,CAAqB;IAC9B,kBAAkB,CAAoB;IAE/C,YAAY,IAIX;QACC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,2BAA2B,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,SAAS,CAAS;IAClB,kBAAkB,CAAoB;IAE/C,YAAY,IAIX;QACC,KAAK,CAAC,iCAAiC,IAAI,CAAC,SAAS,SAAS,IAAI,CAAC,kBAAkB,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAClH,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;IACpD,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import type { PolicyDecision } from "../generated/policy-decision.js";
2
+ import type { InputContext } from "../generated/input-context.js";
3
+ import type { OutputContext } from "../generated/output-context.js";
4
+ import type { ToolCallContext } from "../generated/tool-call-context.js";
5
+ export interface InputPolicy {
6
+ readonly id: string;
7
+ evaluate(context: InputContext): Promise<PolicyDecision> | PolicyDecision;
8
+ }
9
+ export interface ToolCallPolicy {
10
+ readonly id: string;
11
+ evaluate(context: ToolCallContext): Promise<PolicyDecision> | PolicyDecision;
12
+ }
13
+ export interface OutputPolicy {
14
+ readonly id: string;
15
+ evaluate(context: OutputContext): Promise<PolicyDecision> | PolicyDecision;
16
+ }
17
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/core/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEzE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC;CAC3E;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC;CAC9E;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC;CAC5E"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/core/policy.ts"],"names":[],"mappings":""}
@@ -0,0 +1,67 @@
1
+ export type MessageRole = "system" | "user" | "assistant";
2
+ export interface Message {
3
+ role: MessageRole;
4
+ content: string;
5
+ }
6
+ export interface Metadata {
7
+ agent_id: string;
8
+ session_id: string;
9
+ timestamp: string;
10
+ [key: string]: unknown;
11
+ }
12
+ export interface InputContext {
13
+ messages: Message[];
14
+ metadata: Metadata;
15
+ }
16
+ export interface ToolCallContext {
17
+ tool_name: string;
18
+ arguments: Record<string, unknown>;
19
+ calling_message: Message & {
20
+ role: "assistant";
21
+ };
22
+ metadata: Metadata;
23
+ }
24
+ export interface OutputContext {
25
+ response: Message & {
26
+ role: "assistant";
27
+ };
28
+ metadata: Metadata;
29
+ }
30
+ export interface AllowDecision {
31
+ decision: "allow";
32
+ }
33
+ export interface DenyDecision {
34
+ decision: "deny";
35
+ reason?: string;
36
+ policy_id?: string;
37
+ }
38
+ export interface RedactDecision {
39
+ decision: "redact";
40
+ redactions: Redaction[];
41
+ }
42
+ export interface TransformDecision {
43
+ decision: "transform";
44
+ transformation: Transformation;
45
+ }
46
+ export interface AuditDecision {
47
+ decision: "audit";
48
+ reason?: string;
49
+ }
50
+ export type PolicyDecision = AllowDecision | DenyDecision | RedactDecision | TransformDecision | AuditDecision;
51
+ export type RedactionStrategy = "mask" | "remove" | "replace";
52
+ export interface Redaction {
53
+ field: string;
54
+ strategy: RedactionStrategy;
55
+ replacement?: string;
56
+ pattern?: string;
57
+ }
58
+ export type TransformOp = "set" | "prepend" | "append";
59
+ export interface TransformOperation {
60
+ op: TransformOp;
61
+ field: string;
62
+ value: unknown;
63
+ }
64
+ export interface Transformation {
65
+ operations: TransformOperation[];
66
+ }
67
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE1D,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,eAAe,EAAE,OAAO,GAAG;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;IACjD,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,GAAG;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;IAC1C,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAID,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,WAAW,CAAC;IACtB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,YAAY,GACZ,cAAc,GACd,iBAAiB,GACjB,aAAa,CAAC;AAIlB,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,WAAW,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,kBAAkB,EAAE,CAAC;CAClC"}
@@ -0,0 +1,3 @@
1
+ // ─── Shared ──────────────────────────────────────────────────────────────────
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,gFAAgF"}