@intutic/shared-types 2.9.1 → 3.0.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 (119) hide show
  1. package/dist/decide.d.ts +269 -0
  2. package/dist/decide.d.ts.map +1 -0
  3. package/dist/decide.js +781 -0
  4. package/dist/decide.js.map +1 -0
  5. package/dist/decideEngine.d.ts +195 -0
  6. package/dist/decideEngine.d.ts.map +1 -0
  7. package/dist/decideEngine.js +720 -0
  8. package/dist/decideEngine.js.map +1 -0
  9. package/dist/decideEvaluate.d.ts +250 -0
  10. package/dist/decideEvaluate.d.ts.map +1 -0
  11. package/dist/decideEvaluate.js +518 -0
  12. package/dist/decideEvaluate.js.map +1 -0
  13. package/dist/decideHostGuard.d.ts +56 -0
  14. package/dist/decideHostGuard.d.ts.map +1 -0
  15. package/dist/decideHostGuard.js +200 -0
  16. package/dist/decideHostGuard.js.map +1 -0
  17. package/dist/decideLog.d.ts +287 -0
  18. package/dist/decideLog.d.ts.map +1 -0
  19. package/dist/decideLog.js +543 -0
  20. package/dist/decideLog.js.map +1 -0
  21. package/dist/decideLogRedaction.d.ts +12 -0
  22. package/dist/decideLogRedaction.d.ts.map +1 -0
  23. package/dist/decideLogRedaction.js +19 -0
  24. package/dist/decideLogRedaction.js.map +1 -0
  25. package/dist/decideRecord.d.ts +128 -0
  26. package/dist/decideRecord.d.ts.map +1 -0
  27. package/dist/decideRecord.js +266 -0
  28. package/dist/decideRecord.js.map +1 -0
  29. package/dist/decideSdk.d.ts +86 -0
  30. package/dist/decideSdk.d.ts.map +1 -0
  31. package/dist/decideSdk.js +151 -0
  32. package/dist/decideSdk.js.map +1 -0
  33. package/dist/errors.d.ts +11 -1
  34. package/dist/errors.d.ts.map +1 -1
  35. package/dist/errors.js +12 -1
  36. package/dist/errors.js.map +1 -1
  37. package/dist/gateLimits.d.ts +27 -0
  38. package/dist/gateLimits.d.ts.map +1 -1
  39. package/dist/gateLimits.js +29 -1
  40. package/dist/gateLimits.js.map +1 -1
  41. package/dist/gateRuleRecord.d.ts +244 -0
  42. package/dist/gateRuleRecord.d.ts.map +1 -0
  43. package/dist/gateRuleRecord.js +474 -0
  44. package/dist/gateRuleRecord.js.map +1 -0
  45. package/dist/guardrailIr.d.ts +301 -10
  46. package/dist/guardrailIr.d.ts.map +1 -1
  47. package/dist/guardrailIr.js +86 -7
  48. package/dist/guardrailIr.js.map +1 -1
  49. package/dist/guardrailRender.d.ts +35 -2
  50. package/dist/guardrailRender.d.ts.map +1 -1
  51. package/dist/guardrailRender.js +133 -7
  52. package/dist/guardrailRender.js.map +1 -1
  53. package/dist/index.d.ts +28 -6
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +162 -8
  56. package/dist/index.js.map +1 -1
  57. package/dist/lanes.d.ts +94 -0
  58. package/dist/lanes.d.ts.map +1 -0
  59. package/dist/lanes.js +160 -0
  60. package/dist/lanes.js.map +1 -0
  61. package/dist/loopVerify.d.ts +49 -0
  62. package/dist/loopVerify.d.ts.map +1 -0
  63. package/dist/loopVerify.js +77 -0
  64. package/dist/loopVerify.js.map +1 -0
  65. package/dist/mcpBudgets.d.ts +8 -8
  66. package/dist/notifications.d.ts +1 -1
  67. package/dist/notifications.d.ts.map +1 -1
  68. package/dist/notifications.js +14 -0
  69. package/dist/notifications.js.map +1 -1
  70. package/dist/providers.d.ts +13 -0
  71. package/dist/providers.d.ts.map +1 -1
  72. package/dist/providers.js +31 -0
  73. package/dist/providers.js.map +1 -1
  74. package/dist/refusalDetail.d.ts +58 -0
  75. package/dist/refusalDetail.d.ts.map +1 -0
  76. package/dist/refusalDetail.js +128 -0
  77. package/dist/refusalDetail.js.map +1 -0
  78. package/dist/responses/decide.d.ts +1858 -0
  79. package/dist/responses/decide.d.ts.map +1 -0
  80. package/dist/responses/decide.js +166 -0
  81. package/dist/responses/decide.js.map +1 -0
  82. package/dist/responses/gateways.d.ts +745 -101
  83. package/dist/responses/gateways.d.ts.map +1 -1
  84. package/dist/responses/gateways.js +34 -2
  85. package/dist/responses/gateways.js.map +1 -1
  86. package/dist/responses/guardrails.d.ts +1434 -144
  87. package/dist/responses/guardrails.d.ts.map +1 -1
  88. package/dist/responses/identity.d.ts +6 -6
  89. package/dist/responses/index.d.ts +1 -0
  90. package/dist/responses/index.d.ts.map +1 -1
  91. package/dist/responses/index.js +1 -0
  92. package/dist/responses/index.js.map +1 -1
  93. package/dist/responses/integrations.d.ts +84 -84
  94. package/dist/responses/observability.d.ts +272 -92
  95. package/dist/responses/observability.d.ts.map +1 -1
  96. package/dist/responses/observability.js +31 -1
  97. package/dist/responses/observability.js.map +1 -1
  98. package/dist/responses/rules.d.ts +1026 -187
  99. package/dist/responses/rules.d.ts.map +1 -1
  100. package/dist/responses/rules.js +47 -1
  101. package/dist/responses/rules.js.map +1 -1
  102. package/dist/scopeMatch.d.ts +156 -0
  103. package/dist/scopeMatch.d.ts.map +1 -0
  104. package/dist/scopeMatch.js +451 -0
  105. package/dist/scopeMatch.js.map +1 -0
  106. package/dist/sopKeySince.d.ts +41 -0
  107. package/dist/sopKeySince.d.ts.map +1 -0
  108. package/dist/sopKeySince.js +81 -0
  109. package/dist/sopKeySince.js.map +1 -0
  110. package/dist/testOutcome.d.ts +164 -0
  111. package/dist/testOutcome.d.ts.map +1 -0
  112. package/dist/testOutcome.js +454 -0
  113. package/dist/testOutcome.js.map +1 -0
  114. package/dist/upstreamRetry.d.ts +2 -2
  115. package/dist/workspaceSettings.d.ts +91 -0
  116. package/dist/workspaceSettings.d.ts.map +1 -1
  117. package/dist/workspaceSettings.js +48 -2
  118. package/dist/workspaceSettings.js.map +1 -1
  119. package/package.json +2 -2
@@ -28,6 +28,10 @@
28
28
  * (`SETTING_KIND_KEYS`). Neither carries roles — a workspace setting has no
29
29
  * per-role form — and neither is projected into a rule endpoint: a promoted
30
30
  * one is written into the setting the proxy already enforces.
31
+ * - `decide` — a few narrow questions a self-hosted model answers about a
32
+ * tool call or a response, combined by a `when` expression. Its grammar,
33
+ * validation and semantics live in `./decide.ts`, which every port of the
34
+ * rule shares; it is written as one `decide: {json}` front-matter line.
31
35
  * - `none` — "this passage contains no enforceable rule", so the corpus can
32
36
  * measure over-generation.
33
37
  *
@@ -47,13 +51,14 @@
47
51
  */
48
52
  import { z } from 'zod';
49
53
  /**
50
- * The eight `action:` tokens the proxy's classifier synthesises from tool
51
- * calls. Moved here from `services/control-plane/src/services/learnedHoldService.ts`
54
+ * The `action:` tokens the proxy's classifier synthesises from tool calls.
55
+ * Moved here from `services/control-plane/src/services/learnedHoldService.ts`
52
56
  * so the IR, the validator and the hold miner read one list; that file
53
57
  * re-exports it. A token outside this set and outside the observed tool names
54
- * compiles into a control that can never fire.
58
+ * compiles into a control that can never fire. The last five
59
+ * are lanes: each token's reversibility class is in `./lanes.ts`.
55
60
  */
56
- export declare const ACTION_TOKENS: readonly ["action:deploy", "action:publish", "action:release", "action:db_write", "action:secret_read", "action:http_post", "action:pii_export", "action:run_tests"];
61
+ export declare const ACTION_TOKENS: readonly ["action:deploy", "action:publish", "action:release", "action:db_write", "action:secret_read", "action:http_post", "action:pii_export", "action:run_tests", "action:migrate", "action:prod_write", "action:destroy", "action:force_push", "action:payment"];
57
62
  export type ActionToken = (typeof ACTION_TOKENS)[number];
58
63
  export declare function isActionToken(value: string): value is ActionToken;
59
64
  /**
@@ -72,6 +77,12 @@ export declare const MAX_ROLES = 8;
72
77
  export declare const MAX_TITLE_CHARS = 80;
73
78
  export declare const MAX_RATIONALE_CHARS = 480;
74
79
  export declare const MAX_CALLS_LIMIT = 1000;
80
+ /**
81
+ * The tokens a qualified ordering rule may name on its left
82
+ * (`requires_before: action:run_tests[ok] -> action:deploy`):
83
+ * only `action:run_tests[ok]`, met only by the latest test run passing.
84
+ */
85
+ export declare const QUALIFIED_TOKENS: readonly ["action:run_tests[ok]"];
75
86
  declare const HookRuleSchema: z.ZodObject<{
76
87
  kind: z.ZodLiteral<"hook_rule">;
77
88
  title: z.ZodString;
@@ -106,15 +117,15 @@ declare const WasmPredicateSchema: z.ZodObject<{
106
117
  title: string;
107
118
  rationale: string;
108
119
  verdict: 3;
109
- roles?: string[] | undefined;
110
120
  predicate?: unknown;
121
+ roles?: string[] | undefined;
111
122
  }, {
112
123
  kind: "wasm_predicate";
113
124
  title: string;
114
125
  rationale: string;
115
126
  verdict: 3;
116
- roles?: string[] | undefined;
117
127
  predicate?: unknown;
128
+ roles?: string[] | undefined;
118
129
  }>;
119
130
  /**
120
131
  * A model id as the proxy compares it: `check_model_allowed` in
@@ -141,6 +152,145 @@ export declare const MIN_EGRESS_CIDR_PREFIX = 8;
141
152
  * everything). IPv6 is honoured by the proxy but not offered here.
142
153
  */
143
154
  export declare function isEgressHostEntry(value: string): boolean;
155
+ declare const DecideSchema: z.ZodObject<{
156
+ kind: z.ZodLiteral<"decide">;
157
+ id: z.ZodString;
158
+ title: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
159
+ on: z.ZodEnum<["tool_call", "response"]>;
160
+ tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
161
+ questions: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
162
+ type: z.ZodLiteral<"yes_no">;
163
+ ask: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
164
+ band: z.ZodOptional<z.ZodObject<{
165
+ yes_at: z.ZodNumber;
166
+ no_below: z.ZodNumber;
167
+ }, "strict", z.ZodTypeAny, {
168
+ yes_at: number;
169
+ no_below: number;
170
+ }, {
171
+ yes_at: number;
172
+ no_below: number;
173
+ }>>;
174
+ }, "strict", z.ZodTypeAny, {
175
+ type: "yes_no";
176
+ ask: string;
177
+ band?: {
178
+ yes_at: number;
179
+ no_below: number;
180
+ } | undefined;
181
+ }, {
182
+ type: "yes_no";
183
+ ask: string;
184
+ band?: {
185
+ yes_at: number;
186
+ no_below: number;
187
+ } | undefined;
188
+ }>, z.ZodObject<{
189
+ type: z.ZodLiteral<"choice">;
190
+ ask: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
191
+ options: z.ZodArray<z.ZodString, "many">;
192
+ band: z.ZodOptional<z.ZodObject<{
193
+ yes_at: z.ZodNumber;
194
+ no_below: z.ZodNumber;
195
+ }, "strict", z.ZodTypeAny, {
196
+ yes_at: number;
197
+ no_below: number;
198
+ }, {
199
+ yes_at: number;
200
+ no_below: number;
201
+ }>>;
202
+ }, "strict", z.ZodTypeAny, {
203
+ options: string[];
204
+ type: "choice";
205
+ ask: string;
206
+ band?: {
207
+ yes_at: number;
208
+ no_below: number;
209
+ } | undefined;
210
+ }, {
211
+ options: string[];
212
+ type: "choice";
213
+ ask: string;
214
+ band?: {
215
+ yes_at: number;
216
+ no_below: number;
217
+ } | undefined;
218
+ }>]>>;
219
+ when: z.ZodEffects<z.ZodString, string, string>;
220
+ band: z.ZodOptional<z.ZodObject<{
221
+ yes_at: z.ZodNumber;
222
+ no_below: z.ZodNumber;
223
+ }, "strict", z.ZodTypeAny, {
224
+ yes_at: number;
225
+ no_below: number;
226
+ }, {
227
+ yes_at: number;
228
+ no_below: number;
229
+ }>>;
230
+ escalate: z.ZodOptional<z.ZodEnum<["ask", "review", "refuse"]>>;
231
+ rollout: z.ZodOptional<z.ZodEnum<["shadow", "enforce"]>>;
232
+ context: z.ZodOptional<z.ZodArray<z.ZodLiteral<"last_user_turn">, "many">>;
233
+ }, "strict", z.ZodTypeAny, {
234
+ id: string;
235
+ kind: "decide";
236
+ on: "tool_call" | "response";
237
+ questions: Record<string, {
238
+ type: "yes_no";
239
+ ask: string;
240
+ band?: {
241
+ yes_at: number;
242
+ no_below: number;
243
+ } | undefined;
244
+ } | {
245
+ options: string[];
246
+ type: "choice";
247
+ ask: string;
248
+ band?: {
249
+ yes_at: number;
250
+ no_below: number;
251
+ } | undefined;
252
+ }>;
253
+ when: string;
254
+ title?: string | undefined;
255
+ tools?: string[] | undefined;
256
+ band?: {
257
+ yes_at: number;
258
+ no_below: number;
259
+ } | undefined;
260
+ escalate?: "ask" | "review" | "refuse" | undefined;
261
+ rollout?: "shadow" | "enforce" | undefined;
262
+ context?: "last_user_turn"[] | undefined;
263
+ }, {
264
+ id: string;
265
+ kind: "decide";
266
+ on: "tool_call" | "response";
267
+ questions: Record<string, {
268
+ type: "yes_no";
269
+ ask: string;
270
+ band?: {
271
+ yes_at: number;
272
+ no_below: number;
273
+ } | undefined;
274
+ } | {
275
+ options: string[];
276
+ type: "choice";
277
+ ask: string;
278
+ band?: {
279
+ yes_at: number;
280
+ no_below: number;
281
+ } | undefined;
282
+ }>;
283
+ when: string;
284
+ title?: string | undefined;
285
+ tools?: string[] | undefined;
286
+ band?: {
287
+ yes_at: number;
288
+ no_below: number;
289
+ } | undefined;
290
+ escalate?: "ask" | "review" | "refuse" | undefined;
291
+ rollout?: "shadow" | "enforce" | undefined;
292
+ context?: "last_user_turn"[] | undefined;
293
+ }>;
144
294
  export declare const GuardrailIrSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
145
295
  kind: z.ZodLiteral<"hook_rule">;
146
296
  title: z.ZodString;
@@ -258,15 +408,15 @@ export declare const GuardrailIrSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodOb
258
408
  title: string;
259
409
  rationale: string;
260
410
  verdict: 3;
261
- roles?: string[] | undefined;
262
411
  predicate?: unknown;
412
+ roles?: string[] | undefined;
263
413
  }, {
264
414
  kind: "wasm_predicate";
265
415
  title: string;
266
416
  rationale: string;
267
417
  verdict: 3;
268
- roles?: string[] | undefined;
269
418
  predicate?: unknown;
419
+ roles?: string[] | undefined;
270
420
  }>, z.ZodObject<{
271
421
  kind: z.ZodLiteral<"allowed_models">;
272
422
  models: z.ZodArray<z.ZodString, "many">;
@@ -285,6 +435,144 @@ export declare const GuardrailIrSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodOb
285
435
  }, {
286
436
  kind: "egress_allow";
287
437
  hosts: string[];
438
+ }>, z.ZodObject<{
439
+ kind: z.ZodLiteral<"decide">;
440
+ id: z.ZodString;
441
+ title: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
442
+ on: z.ZodEnum<["tool_call", "response"]>;
443
+ tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
444
+ questions: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
445
+ type: z.ZodLiteral<"yes_no">;
446
+ ask: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
447
+ band: z.ZodOptional<z.ZodObject<{
448
+ yes_at: z.ZodNumber;
449
+ no_below: z.ZodNumber;
450
+ }, "strict", z.ZodTypeAny, {
451
+ yes_at: number;
452
+ no_below: number;
453
+ }, {
454
+ yes_at: number;
455
+ no_below: number;
456
+ }>>;
457
+ }, "strict", z.ZodTypeAny, {
458
+ type: "yes_no";
459
+ ask: string;
460
+ band?: {
461
+ yes_at: number;
462
+ no_below: number;
463
+ } | undefined;
464
+ }, {
465
+ type: "yes_no";
466
+ ask: string;
467
+ band?: {
468
+ yes_at: number;
469
+ no_below: number;
470
+ } | undefined;
471
+ }>, z.ZodObject<{
472
+ type: z.ZodLiteral<"choice">;
473
+ ask: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
474
+ options: z.ZodArray<z.ZodString, "many">;
475
+ band: z.ZodOptional<z.ZodObject<{
476
+ yes_at: z.ZodNumber;
477
+ no_below: z.ZodNumber;
478
+ }, "strict", z.ZodTypeAny, {
479
+ yes_at: number;
480
+ no_below: number;
481
+ }, {
482
+ yes_at: number;
483
+ no_below: number;
484
+ }>>;
485
+ }, "strict", z.ZodTypeAny, {
486
+ options: string[];
487
+ type: "choice";
488
+ ask: string;
489
+ band?: {
490
+ yes_at: number;
491
+ no_below: number;
492
+ } | undefined;
493
+ }, {
494
+ options: string[];
495
+ type: "choice";
496
+ ask: string;
497
+ band?: {
498
+ yes_at: number;
499
+ no_below: number;
500
+ } | undefined;
501
+ }>]>>;
502
+ when: z.ZodEffects<z.ZodString, string, string>;
503
+ band: z.ZodOptional<z.ZodObject<{
504
+ yes_at: z.ZodNumber;
505
+ no_below: z.ZodNumber;
506
+ }, "strict", z.ZodTypeAny, {
507
+ yes_at: number;
508
+ no_below: number;
509
+ }, {
510
+ yes_at: number;
511
+ no_below: number;
512
+ }>>;
513
+ escalate: z.ZodOptional<z.ZodEnum<["ask", "review", "refuse"]>>;
514
+ rollout: z.ZodOptional<z.ZodEnum<["shadow", "enforce"]>>;
515
+ context: z.ZodOptional<z.ZodArray<z.ZodLiteral<"last_user_turn">, "many">>;
516
+ }, "strict", z.ZodTypeAny, {
517
+ id: string;
518
+ kind: "decide";
519
+ on: "tool_call" | "response";
520
+ questions: Record<string, {
521
+ type: "yes_no";
522
+ ask: string;
523
+ band?: {
524
+ yes_at: number;
525
+ no_below: number;
526
+ } | undefined;
527
+ } | {
528
+ options: string[];
529
+ type: "choice";
530
+ ask: string;
531
+ band?: {
532
+ yes_at: number;
533
+ no_below: number;
534
+ } | undefined;
535
+ }>;
536
+ when: string;
537
+ title?: string | undefined;
538
+ tools?: string[] | undefined;
539
+ band?: {
540
+ yes_at: number;
541
+ no_below: number;
542
+ } | undefined;
543
+ escalate?: "ask" | "review" | "refuse" | undefined;
544
+ rollout?: "shadow" | "enforce" | undefined;
545
+ context?: "last_user_turn"[] | undefined;
546
+ }, {
547
+ id: string;
548
+ kind: "decide";
549
+ on: "tool_call" | "response";
550
+ questions: Record<string, {
551
+ type: "yes_no";
552
+ ask: string;
553
+ band?: {
554
+ yes_at: number;
555
+ no_below: number;
556
+ } | undefined;
557
+ } | {
558
+ options: string[];
559
+ type: "choice";
560
+ ask: string;
561
+ band?: {
562
+ yes_at: number;
563
+ no_below: number;
564
+ } | undefined;
565
+ }>;
566
+ when: string;
567
+ title?: string | undefined;
568
+ tools?: string[] | undefined;
569
+ band?: {
570
+ yes_at: number;
571
+ no_below: number;
572
+ } | undefined;
573
+ escalate?: "ask" | "review" | "refuse" | undefined;
574
+ rollout?: "shadow" | "enforce" | undefined;
575
+ context?: "last_user_turn"[] | undefined;
288
576
  }>, z.ZodObject<{
289
577
  kind: z.ZodLiteral<"none">;
290
578
  reason: z.ZodString;
@@ -298,6 +586,7 @@ export declare const GuardrailIrSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodOb
298
586
  export type GuardrailIr = z.infer<typeof GuardrailIrSchema>;
299
587
  export type HookRuleIr = z.infer<typeof HookRuleSchema>;
300
588
  export type WasmPredicateIr = z.infer<typeof WasmPredicateSchema>;
589
+ export type DecideIr = z.infer<typeof DecideSchema>;
301
590
  export type FrontMatterIr = Extract<GuardrailIr, {
302
591
  kind: 'deny_tools' | 'review_before' | 'requires_before' | 'forbid_after' | 'max_calls' | 'forbid_with';
303
592
  }>;
@@ -306,7 +595,7 @@ export type SettingIr = Extract<GuardrailIr, {
306
595
  }>;
307
596
  export type IrKind = GuardrailIr['kind'];
308
597
  /** Every kind, in one place, for the lint gate (`check-guardrail-ir-keys.js`). */
309
- export declare const IR_KINDS: readonly ["hook_rule", "deny_tools", "review_before", "requires_before", "forbid_after", "max_calls", "forbid_with", "wasm_predicate", "allowed_models", "egress_allow", "none"];
598
+ export declare const IR_KINDS: readonly ["hook_rule", "deny_tools", "review_before", "requires_before", "forbid_after", "max_calls", "forbid_with", "wasm_predicate", "allowed_models", "egress_allow", "decide", "none"];
310
599
  /** The kinds that render to a SOP front-matter key the Rust proxy reads. */
311
600
  export declare const FRONT_MATTER_KINDS: readonly ["deny_tools", "review_before", "requires_before", "forbid_after", "max_calls", "forbid_with"];
312
601
  export declare function isFrontMatterIr(ir: GuardrailIr): ir is FrontMatterIr;
@@ -335,7 +624,9 @@ export type IrValidation = {
335
624
  * Parse an untrusted value into the IR, or say why it is not one. Never
336
625
  * throws. This — not `GuardrailIrSchema.parse` — is the entry point: the
337
626
  * shape parse cannot express "the two ordering tokens differ" or "the wasm
338
- * predicate is in the closed DSL", so both are checked here.
627
+ * predicate is in the closed DSL", so both are checked here. A `decide` IR
628
+ * is answered by `validateDecideRule`, the ordered checks every port of the
629
+ * rule shares, before the shape parse types it.
339
630
  */
340
631
  export declare function validateGuardrailIr(value: unknown): IrValidation;
341
632
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"guardrailIr.d.ts","sourceRoot":"","sources":["../src/guardrailIr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guardrailIr.d.ts","sourceRoot":"","sources":["../src/guardrailIr.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,10 @@
29
29
  * (`SETTING_KIND_KEYS`). Neither carries roles — a workspace setting has no
30
30
  * per-role form — and neither is projected into a rule endpoint: a promoted
31
31
  * one is written into the setting the proxy already enforces.
32
+ * - `decide` — a few narrow questions a self-hosted model answers about a
33
+ * tool call or a response, combined by a `when` expression. Its grammar,
34
+ * validation and semantics live in `./decide.ts`, which every port of the
35
+ * rule shares; it is written as one `decide: {json}` front-matter line.
32
36
  * - `none` — "this passage contains no enforceable rule", so the corpus can
33
37
  * measure over-generation.
34
38
  *
@@ -47,7 +51,7 @@
47
51
  * @module
48
52
  */
49
53
  Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.SETTING_KIND_KEYS = exports.SETTING_KINDS = exports.FRONT_MATTER_KINDS = exports.IR_KINDS = exports.GuardrailIrSchema = exports.MIN_EGRESS_CIDR_PREFIX = exports.MAX_SETTING_VALUES = exports.MODEL_ID_RE = exports.MAX_CALLS_LIMIT = exports.MAX_RATIONALE_CHARS = exports.MAX_TITLE_CHARS = exports.MAX_ROLES = exports.MAX_LITERAL_CHARS = exports.MAX_LITERALS = exports.MAX_LIST_TOKENS = exports.MAX_HOOK_TOOLS = exports.TOOL_TOKEN_RE = exports.ACTION_TOKENS = void 0;
54
+ exports.SETTING_KIND_KEYS = exports.SETTING_KINDS = exports.FRONT_MATTER_KINDS = exports.IR_KINDS = exports.GuardrailIrSchema = exports.MIN_EGRESS_CIDR_PREFIX = exports.MAX_SETTING_VALUES = exports.MODEL_ID_RE = exports.QUALIFIED_TOKENS = exports.MAX_CALLS_LIMIT = exports.MAX_RATIONALE_CHARS = exports.MAX_TITLE_CHARS = exports.MAX_ROLES = exports.MAX_LITERAL_CHARS = exports.MAX_LITERALS = exports.MAX_LIST_TOKENS = exports.MAX_HOOK_TOOLS = exports.TOOL_TOKEN_RE = exports.ACTION_TOKENS = void 0;
51
55
  exports.isActionToken = isActionToken;
52
56
  exports.isEgressHostEntry = isEgressHostEntry;
53
57
  exports.isFrontMatterIr = isFrontMatterIr;
@@ -58,12 +62,14 @@ exports.canonicalizeIr = canonicalizeIr;
58
62
  exports.irTokens = irTokens;
59
63
  const zod_1 = require("zod");
60
64
  const rulePredicateDsl_js_1 = require("./rulePredicateDsl.js");
65
+ const decide_js_1 = require("./decide.js");
61
66
  /**
62
- * The eight `action:` tokens the proxy's classifier synthesises from tool
63
- * calls. Moved here from `services/control-plane/src/services/learnedHoldService.ts`
67
+ * The `action:` tokens the proxy's classifier synthesises from tool calls.
68
+ * Moved here from `services/control-plane/src/services/learnedHoldService.ts`
64
69
  * so the IR, the validator and the hold miner read one list; that file
65
70
  * re-exports it. A token outside this set and outside the observed tool names
66
- * compiles into a control that can never fire.
71
+ * compiles into a control that can never fire. The last five
72
+ * are lanes: each token's reversibility class is in `./lanes.ts`.
67
73
  */
68
74
  exports.ACTION_TOKENS = [
69
75
  'action:deploy',
@@ -74,6 +80,11 @@ exports.ACTION_TOKENS = [
74
80
  'action:http_post',
75
81
  'action:pii_export',
76
82
  'action:run_tests',
83
+ 'action:migrate',
84
+ 'action:prod_write',
85
+ 'action:destroy',
86
+ 'action:force_push',
87
+ 'action:payment',
77
88
  ];
78
89
  function isActionToken(value) {
79
90
  return exports.ACTION_TOKENS.includes(value);
@@ -99,7 +110,21 @@ const Token = zod_1.z
99
110
  .min(1)
100
111
  .max(64)
101
112
  .refine((v) => isActionToken(v) || exports.TOOL_TOKEN_RE.test(v), {
102
- message: 'a token is a tool name (`Bash`, `mcp__github__create_issue`) or one of the eight `action:` tokens — never a command',
113
+ message: 'a token is a tool name (`Bash`, `mcp__github__create_issue`) or one of the `action:` tokens — never a command',
114
+ });
115
+ /**
116
+ * The tokens a qualified ordering rule may name on its left
117
+ * (`requires_before: action:run_tests[ok] -> action:deploy`):
118
+ * only `action:run_tests[ok]`, met only by the latest test run passing.
119
+ */
120
+ exports.QUALIFIED_TOKENS = ['action:run_tests[ok]'];
121
+ /** The left side of a `requires_before`: a token, or {@link QUALIFIED_TOKENS}. */
122
+ const RequiresFirst = zod_1.z
123
+ .string()
124
+ .min(1)
125
+ .max(64)
126
+ .refine((v) => isActionToken(v) || exports.TOOL_TOKEN_RE.test(v) || exports.QUALIFIED_TOKENS.includes(v), {
127
+ message: 'a token is a tool name (`Bash`, `mcp__github__create_issue`), one of the `action:` tokens, or `action:run_tests[ok]` (requires_before, on the left) — never a command',
103
128
  });
104
129
  /**
105
130
  * A literal substring of the serialised tool input. No tab or newline (the
@@ -144,7 +169,7 @@ const orderingShape = {
144
169
  // Discriminated-union members must be plain objects, so the two cross-field
145
170
  // rules (ordering tokens differ; a wasm predicate validates) are applied in
146
171
  // `validateGuardrailIr` after the shape parse rather than as refinements here.
147
- const RequiresBeforeSchema = zod_1.z.object({ kind: zod_1.z.literal('requires_before'), ...orderingShape }).strict();
172
+ const RequiresBeforeSchema = zod_1.z.object({ kind: zod_1.z.literal('requires_before'), ...orderingShape, first: RequiresFirst }).strict();
148
173
  const ForbidAfterSchema = zod_1.z.object({ kind: zod_1.z.literal('forbid_after'), ...orderingShape }).strict();
149
174
  const MaxCallsSchema = zod_1.z
150
175
  .object({
@@ -239,6 +264,45 @@ const EgressAllowSchema = zod_1.z
239
264
  .object({ kind: zod_1.z.literal('egress_allow'), hosts: zod_1.z.array(HostEntry).min(1).max(exports.MAX_SETTING_VALUES) })
240
265
  .strict();
241
266
  const NoneSchema = zod_1.z.object({ kind: zod_1.z.literal('none'), reason: Rationale }).strict();
267
+ // The decide kind's shape. `validateDecideRule` in `./decide.ts` is what
268
+ // `validateGuardrailIr` answers with, so every port gives the same reason;
269
+ // this schema types the result and holds the same bounds. Lengths are in
270
+ // code points, as the Rust and Python ports count them.
271
+ const codePointsBetween = (min, max) => (v) => {
272
+ const n = Array.from(v).length;
273
+ return n >= min && n <= max;
274
+ };
275
+ const DecideName = zod_1.z.string().regex(/^[a-z][a-z0-9_]{0,31}$/);
276
+ const DecideAsk = zod_1.z
277
+ .string()
278
+ .refine(codePointsBetween(decide_js_1.DECIDE_MIN_ASK_CHARS, decide_js_1.DECIDE_MAX_ASK_CHARS))
279
+ .refine((v) => !/[\t\r\n]/.test(v))
280
+ .refine((v) => !decide_js_1.DECIDE_APPROVAL_RE.test(v));
281
+ const DecideTitle = zod_1.z
282
+ .string()
283
+ .refine(codePointsBetween(1, exports.MAX_TITLE_CHARS))
284
+ .refine((v) => !/[\t\r\n]/.test(v));
285
+ // `no_below < yes_at` is a cross-field rule, checked by `validateDecideRule`.
286
+ const DecideBand = zod_1.z.object({ yes_at: zod_1.z.number().gt(0.5).lt(1), no_below: zod_1.z.number().gt(0) }).strict();
287
+ const DecideQuestion = zod_1.z.discriminatedUnion('type', [
288
+ zod_1.z.object({ type: zod_1.z.literal('yes_no'), ask: DecideAsk, band: DecideBand.optional() }).strict(),
289
+ zod_1.z.object({ type: zod_1.z.literal('choice'), ask: DecideAsk, options: zod_1.z.array(DecideName).min(2).max(decide_js_1.DECIDE_MAX_OPTIONS), band: DecideBand.optional() }).strict(),
290
+ ]);
291
+ const DecideSchema = zod_1.z
292
+ .object({
293
+ kind: zod_1.z.literal('decide'),
294
+ id: zod_1.z.string().regex(/^[a-z][a-z0-9_-]{0,47}$/),
295
+ title: DecideTitle.optional(),
296
+ on: zod_1.z.enum(['tool_call', 'response']),
297
+ tools: zod_1.z.array(zod_1.z.string().regex(exports.TOOL_TOKEN_RE)).min(1).max(exports.MAX_HOOK_TOOLS).optional(),
298
+ questions: zod_1.z.record(DecideName, DecideQuestion),
299
+ when: zod_1.z.string().refine(codePointsBetween(1, decide_js_1.DECIDE_MAX_WHEN_CHARS)),
300
+ band: DecideBand.optional(),
301
+ escalate: zod_1.z.enum(['ask', 'review', 'refuse']).optional(),
302
+ rollout: zod_1.z.enum(['shadow', 'enforce']).optional(),
303
+ context: zod_1.z.array(zod_1.z.literal('last_user_turn')).max(1).optional(),
304
+ })
305
+ .strict();
242
306
  exports.GuardrailIrSchema = zod_1.z.discriminatedUnion('kind', [
243
307
  HookRuleSchema,
244
308
  DenyToolsSchema,
@@ -250,6 +314,7 @@ exports.GuardrailIrSchema = zod_1.z.discriminatedUnion('kind', [
250
314
  WasmPredicateSchema,
251
315
  AllowedModelsSchema,
252
316
  EgressAllowSchema,
317
+ DecideSchema,
253
318
  NoneSchema,
254
319
  ]);
255
320
  /** Every kind, in one place, for the lint gate (`check-guardrail-ir-keys.js`). */
@@ -264,6 +329,7 @@ exports.IR_KINDS = [
264
329
  'wasm_predicate',
265
330
  'allowed_models',
266
331
  'egress_allow',
332
+ 'decide',
267
333
  'none',
268
334
  ];
269
335
  /** The kinds that render to a SOP front-matter key the Rust proxy reads. */
@@ -296,9 +362,16 @@ function settingValues(ir) {
296
362
  * Parse an untrusted value into the IR, or say why it is not one. Never
297
363
  * throws. This — not `GuardrailIrSchema.parse` — is the entry point: the
298
364
  * shape parse cannot express "the two ordering tokens differ" or "the wasm
299
- * predicate is in the closed DSL", so both are checked here.
365
+ * predicate is in the closed DSL", so both are checked here. A `decide` IR
366
+ * is answered by `validateDecideRule`, the ordered checks every port of the
367
+ * rule shares, before the shape parse types it.
300
368
  */
301
369
  function validateGuardrailIr(value) {
370
+ if (value !== null && typeof value === 'object' && !Array.isArray(value) && value.kind === 'decide') {
371
+ const decided = (0, decide_js_1.validateDecideRule)(Object.fromEntries(Object.entries(value).filter(([k]) => k !== 'kind')));
372
+ if (!decided.ok)
373
+ return { ok: false, reason: decided.reason };
374
+ }
302
375
  const parsed = exports.GuardrailIrSchema.safeParse(value);
303
376
  if (!parsed.success) {
304
377
  const first = parsed.error.issues[0];
@@ -368,6 +441,10 @@ function canonicalizeIr(ir) {
368
441
  case 'egress_allow':
369
442
  core = { hosts: settingValues(ir) };
370
443
  break;
444
+ case 'decide':
445
+ // The rule hash's input, so a policy clause and the snapshot name a
446
+ // decide rule by the same bytes.
447
+ return (0, decide_js_1.decideHashInput)(ir);
371
448
  case 'none':
372
449
  core = {};
373
450
  break;
@@ -386,6 +463,8 @@ function irTokens(ir) {
386
463
  case 'hook_rule':
387
464
  case 'deny_tools':
388
465
  return [...ir.tools];
466
+ case 'decide':
467
+ return [...(ir.tools ?? [])];
389
468
  case 'review_before':
390
469
  return [...ir.tokens];
391
470
  case 'requires_before':
@@ -1 +1 @@
1
- {"version":3,"file":"guardrailIr.js","sourceRoot":"","sources":["../src/guardrailIr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guardrailIr.js","sourceRoot":"","sources":["../src/guardrailIr.ts"],"names":[],"mappings":"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"}