@handlebar/governance-schema 0.1.1-beta.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/README.md CHANGED
@@ -1,24 +1,94 @@
1
- # Handlebar Governance Schema
1
+ # Handlebar, Agent Control Layer
2
2
 
3
- Schemas and types for [Handlebar] rules.
3
+ [Handlebar] is a runtime control layer for your AI agents.
4
4
 
5
- ## Getting started
5
+ Enforce deterministic rules on your agents as they act,
6
+ so you can guarantee they don't violate your team's policies.
6
7
 
7
- This package should be used alongside a framework-specific Handlebar SDK,
8
- such as [ai-sdk-v5](https://github.com/gethandlebar/handlebar-js/blob/main/packages/ai-sdk-v5/).
9
- Refer to that package's README for more information.
8
+ This package provides the policy and event types that Handlebar manages.
10
9
 
11
- ## Contributing
10
+ | Without Handlebar | With Handlebar |
11
+ |:------|:------|
12
+ | "Whoops the agent deleted prod DB" | Deterministically block dangerous tool actions. Full auditability into what your agent _tried_ to do. |
13
+ | "Our costs are ballooning with no way to control them" | Track token usage and USD spend, and set hard limits on your agents. When the limit is reached, Handlebar can block the agent from taking further actions. |
14
+ | "Someone convinced the agent to leak another user's emails" | Limit tool permissions to the user. |
15
+ | "The agent is going off-the-rails and spamming heavy APIs" | Set rate limits on tool use and prevent runaway actions |
16
+ | "We can't be sure the agent isn't leaking sensitive data" | Enforce hard data boundaries between tools and your output. Filter PII before it leaks through agent context |
12
17
 
13
- We welcome contributions from the community: bug reports, feedback, feature requests
14
- Please refer to [CONTRIBUTING.md][root_contributing]
15
- for ways you can help,
16
- and guidelines.
18
+ ## Features
17
19
 
18
- ## About Handlebar
20
+ - Collects auditable event logs of your agent's actions
21
+ - Block dangerous tools use (e.g. `send_email(internalAddress) -> PASS | send_email(unknownperson@randomaddress.ru) -> BLOCK`)
22
+ - Block dangerous tool chaining (e.g. `get_pii` -> `send_slack_message -> BLOCK: risk of data exfil`)
23
+ - Require human reviews on dangerous actions
24
+ - Enforce hard cost budgets and token usage limits for your agents
25
+ - Track usage from each enduser and enforce per-user budgets
26
+ - Rate limit agent actions
19
27
 
20
- Find out more at [https://gethandlebar.com][handlebar]
28
+ ## How it works
21
29
 
22
- [handlebar]: https://gethandlebar.com
23
- [root_contributing]: https://github.com/gethandlebar/handlebar-js/blob/main/CONTRIBUTING.md
24
- [discord_invite]: https://discord.gg/Q6xwvccg
30
+ 1. Wrap a Handlebar client (this codebase) around your agent
31
+ 1. The client sends event logs of your agent's actions to the [Handlebar platform][platform], where you can analyse them
32
+ 1. As your agent receives an action from the LLM, Handlebar intercepts and evaluates the proposed action against your configured policies
33
+ 1. If there are violations, Handlebar either permits the action, blocks it, or exits the run
34
+
35
+ ## Get started
36
+
37
+ You will need:
38
+
39
+ - an agent...
40
+ - Wrap your agent with a Handlebar client
41
+ - Connect to the [Handlebar platform][platform]
42
+ - Configure policies to enforce on your agent
43
+
44
+ ### Wrap your agent with Handlebar
45
+
46
+ This repository is a monorepo containing installable packages
47
+ for different JS/TS agent building frameworks. We provide some pre-built wrappers for agent frameworks,
48
+ with more on the way soon. If your agent is not directly supported, you can still easily plug Handlebar into your agent.
49
+
50
+ | Framework | Install command | Where to read more |
51
+ |:---:|:---:|:---:|
52
+ | Vercel ai **Version 5** | `bun i @handlebar/ai-sdk-v5` | [Vercel AI integration guide](../docs/integrations/vercel-ai-sdk.md) |
53
+ | Vercel ai **Version >=6** | Soon... | |
54
+ | Langchain | Soon... it's still being tested 😕 | See the [langchain integration guide](../docs/integrations/langchain.md) |
55
+ | Openai agents | `bun i @handlebar/core` | See the [OpenAI integration guide](../docs/integrations/openai-agents.md)
56
+ | Other JS/TS, and custom agents | `bun i @handlebar/core` | [`packages/core`](../packages/core) |
57
+ | Python agents | Soon... | |
58
+
59
+ ### Connect your agent to the Handlebar platform
60
+
61
+ The client SDKs interact with the Handlebar API to emit agent telemetry and event data it collects,
62
+ and to evaluate your configured policies.
63
+
64
+ Sign up at [`https://app.gethandlebar.com`][platform].\
65
+ If you are waitlisted, [get in touch](#get-in-touch) with us to get access.
66
+
67
+ Once on the platform, create an API key and activate your agent by setting the `HANDLEBAR_API_KEY` environment variable.
68
+
69
+ ### Configure policies to enforce on your agent
70
+
71
+ On the [platform] you can create policies from simple templates: usage limits, dangerous tool use, GDPR, finance agents, and more.
72
+
73
+ Alternatively, run the Handlebar claude code skill to generate rules custom to your agent, by running:
74
+
75
+ ```bash
76
+ npx skills add gethandlebar/agent-skills
77
+ ```
78
+
79
+ Go to the [skill repository](https://github.com/gethandlebar/agent-skills)
80
+ for full instructions.
81
+
82
+ ## Get in touch
83
+
84
+ Please [open an issue](https://github.com/gethandlebar/handlebar-js/issues/new) if you have any feedback, suggestions, or requests for framework support.
85
+ Alternatively, [book a call][calendar] to talk to us about how Handlebar could help to protect your team's agents.
86
+
87
+ ## License
88
+
89
+ Apache 2.0 [`LICENSE`](../LICENSE).
90
+
91
+ [handlebar]: https://www.gethandlebar.com
92
+ [platform]: https://app.gethandlebar.com
93
+ [calendar]: https://calendly.com/arjun-handlebar/30min
94
+ [docs]: https://handlebar.mintlify.app
@@ -3,10 +3,8 @@ export declare const AuditEnvelopeSchema: z.ZodObject<{
3
3
  schema: z.ZodLiteral<"handlebar.audit.v1">;
4
4
  ts: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDate>;
5
5
  runId: z.ZodString;
6
- stepIndex: z.ZodOptional<z.ZodNumber>;
7
- decisionId: z.ZodOptional<z.ZodString>;
8
- enduserExternalId: z.ZodOptional<z.ZodString>;
9
6
  sessionId: z.ZodOptional<z.ZodString>;
7
+ stepIndex: z.ZodOptional<z.ZodNumber>;
10
8
  actorExternalId: z.ZodOptional<z.ZodString>;
11
9
  otel: z.ZodOptional<z.ZodObject<{
12
10
  traceId: z.ZodOptional<z.ZodString>;
@@ -3,10 +3,8 @@ export declare const RunStartedEventSchema: z.ZodObject<{
3
3
  schema: z.ZodLiteral<"handlebar.audit.v1">;
4
4
  ts: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDate>;
5
5
  runId: z.ZodString;
6
- stepIndex: z.ZodOptional<z.ZodNumber>;
7
- decisionId: z.ZodOptional<z.ZodString>;
8
- enduserExternalId: z.ZodOptional<z.ZodString>;
9
6
  sessionId: z.ZodOptional<z.ZodString>;
7
+ stepIndex: z.ZodOptional<z.ZodNumber>;
10
8
  actorExternalId: z.ZodOptional<z.ZodString>;
11
9
  otel: z.ZodOptional<z.ZodObject<{
12
10
  traceId: z.ZodOptional<z.ZodString>;
@@ -36,16 +34,6 @@ export declare const RunStartedEventSchema: z.ZodObject<{
36
34
  id: z.ZodOptional<z.ZodString>;
37
35
  name: z.ZodOptional<z.ZodString>;
38
36
  }, z.core.$strip>;
39
- enduser: z.ZodOptional<z.ZodObject<{
40
- externalId: z.ZodString;
41
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
42
- name: z.ZodOptional<z.ZodString>;
43
- group: z.ZodOptional<z.ZodObject<{
44
- externalId: z.ZodString;
45
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
46
- name: z.ZodOptional<z.ZodString>;
47
- }, z.core.$strip>>;
48
- }, z.core.$strip>>;
49
37
  actor: z.ZodOptional<z.ZodObject<{
50
38
  externalId: z.ZodString;
51
39
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -79,10 +67,8 @@ export declare const RunEndedEventSchema: z.ZodObject<{
79
67
  schema: z.ZodLiteral<"handlebar.audit.v1">;
80
68
  ts: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDate>;
81
69
  runId: z.ZodString;
82
- stepIndex: z.ZodOptional<z.ZodNumber>;
83
- decisionId: z.ZodOptional<z.ZodString>;
84
- enduserExternalId: z.ZodOptional<z.ZodString>;
85
70
  sessionId: z.ZodOptional<z.ZodString>;
71
+ stepIndex: z.ZodOptional<z.ZodNumber>;
86
72
  actorExternalId: z.ZodOptional<z.ZodString>;
87
73
  otel: z.ZodOptional<z.ZodObject<{
88
74
  traceId: z.ZodOptional<z.ZodString>;
@@ -104,13 +90,10 @@ export declare const RunEndedEventSchema: z.ZodObject<{
104
90
  status: z.ZodEnum<{
105
91
  success: "success";
106
92
  error: "error";
107
- ok: "ok";
108
- blocked: "blocked";
109
93
  timeout: "timeout";
110
94
  interrupted: "interrupted";
111
95
  }>;
112
96
  totalSteps: z.ZodNumber;
113
- firstErrorDecisionId: z.ZodOptional<z.ZodString>;
114
97
  summary: z.ZodOptional<z.ZodString>;
115
98
  }, z.core.$strip>;
116
99
  }, z.core.$strip>;
@@ -118,10 +101,8 @@ export declare const ErrorEventSchema: z.ZodObject<{
118
101
  schema: z.ZodLiteral<"handlebar.audit.v1">;
119
102
  ts: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDate>;
120
103
  runId: z.ZodString;
121
- stepIndex: z.ZodOptional<z.ZodNumber>;
122
- decisionId: z.ZodOptional<z.ZodString>;
123
- enduserExternalId: z.ZodOptional<z.ZodString>;
124
104
  sessionId: z.ZodOptional<z.ZodString>;
105
+ stepIndex: z.ZodOptional<z.ZodNumber>;
125
106
  actorExternalId: z.ZodOptional<z.ZodString>;
126
107
  otel: z.ZodOptional<z.ZodObject<{
127
108
  traceId: z.ZodOptional<z.ZodString>;
@@ -155,10 +136,8 @@ export declare const AuditEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
155
136
  schema: z.ZodLiteral<"handlebar.audit.v1">;
156
137
  ts: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDate>;
157
138
  runId: z.ZodString;
158
- stepIndex: z.ZodOptional<z.ZodNumber>;
159
- decisionId: z.ZodOptional<z.ZodString>;
160
- enduserExternalId: z.ZodOptional<z.ZodString>;
161
139
  sessionId: z.ZodOptional<z.ZodString>;
140
+ stepIndex: z.ZodOptional<z.ZodNumber>;
162
141
  actorExternalId: z.ZodOptional<z.ZodString>;
163
142
  otel: z.ZodOptional<z.ZodObject<{
164
143
  traceId: z.ZodOptional<z.ZodString>;
@@ -188,16 +167,6 @@ export declare const AuditEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
188
167
  id: z.ZodOptional<z.ZodString>;
189
168
  name: z.ZodOptional<z.ZodString>;
190
169
  }, z.core.$strip>;
191
- enduser: z.ZodOptional<z.ZodObject<{
192
- externalId: z.ZodString;
193
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
194
- name: z.ZodOptional<z.ZodString>;
195
- group: z.ZodOptional<z.ZodObject<{
196
- externalId: z.ZodString;
197
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
198
- name: z.ZodOptional<z.ZodString>;
199
- }, z.core.$strip>>;
200
- }, z.core.$strip>>;
201
170
  actor: z.ZodOptional<z.ZodObject<{
202
171
  externalId: z.ZodString;
203
172
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -230,10 +199,8 @@ export declare const AuditEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
230
199
  schema: z.ZodLiteral<"handlebar.audit.v1">;
231
200
  ts: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDate>;
232
201
  runId: z.ZodString;
233
- stepIndex: z.ZodOptional<z.ZodNumber>;
234
- decisionId: z.ZodOptional<z.ZodString>;
235
- enduserExternalId: z.ZodOptional<z.ZodString>;
236
202
  sessionId: z.ZodOptional<z.ZodString>;
203
+ stepIndex: z.ZodOptional<z.ZodNumber>;
237
204
  actorExternalId: z.ZodOptional<z.ZodString>;
238
205
  otel: z.ZodOptional<z.ZodObject<{
239
206
  traceId: z.ZodOptional<z.ZodString>;
@@ -252,14 +219,35 @@ export declare const AuditEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
252
219
  }, z.core.$strip>>;
253
220
  kind: z.ZodLiteral<"tool.decision">;
254
221
  data: z.ZodObject<{
255
- effect: z.ZodCustom<import("./governance-actions").GovernanceEffect, import("./governance-actions").GovernanceEffect>;
256
- code: z.ZodCustom<import("./governance-actions").GovernanceCode, import("./governance-actions").GovernanceCode>;
257
- matchedRuleIds: z.ZodArray<z.ZodString>;
258
- appliedActions: z.ZodArray<z.ZodObject<{
259
- type: z.ZodCustom<"allow" | "block" | "hitl" | "notify" | "log", "allow" | "block" | "hitl" | "notify" | "log">;
222
+ verdict: z.ZodEnum<{
223
+ ALLOW: "ALLOW";
224
+ BLOCK: "BLOCK";
225
+ }>;
226
+ control: z.ZodEnum<{
227
+ CONTINUE: "CONTINUE";
228
+ TERMINATE: "TERMINATE";
229
+ }>;
230
+ cause: z.ZodDiscriminatedUnion<[z.ZodObject<{
231
+ kind: z.ZodLiteral<"ALLOW">;
232
+ }, z.core.$strip>, z.ZodObject<{
233
+ kind: z.ZodLiteral<"RULE_VIOLATION">;
234
+ ruleId: z.ZodString;
235
+ }, z.core.$strip>, z.ZodObject<{
236
+ kind: z.ZodLiteral<"HITL_PENDING">;
237
+ approvalId: z.ZodString;
238
+ ruleId: z.ZodOptional<z.ZodString>;
239
+ }, z.core.$strip>, z.ZodObject<{
240
+ kind: z.ZodLiteral<"LOCKDOWN">;
241
+ lockdownId: z.ZodOptional<z.ZodString>;
242
+ }, z.core.$strip>], "kind">;
243
+ message: z.ZodString;
244
+ evaluatedRules: z.ZodArray<z.ZodObject<{
260
245
  ruleId: z.ZodString;
246
+ enabled: z.ZodBoolean;
247
+ matched: z.ZodBoolean;
248
+ violated: z.ZodBoolean;
261
249
  }, z.core.$strip>>;
262
- reason: z.ZodOptional<z.ZodString>;
250
+ finalRuleId: z.ZodOptional<z.ZodString>;
263
251
  tool: z.ZodObject<{
264
252
  name: z.ZodString;
265
253
  categories: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -286,56 +274,14 @@ export declare const AuditEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
286
274
  value: z.ZodString;
287
275
  idSystem: z.ZodOptional<z.ZodString>;
288
276
  }, z.core.$strip>>>;
289
- signals: z.ZodOptional<z.ZodArray<z.ZodObject<{
290
- key: z.ZodString;
291
- args: z.ZodOptional<z.ZodArray<z.ZodString>>;
292
- result: z.ZodUnion<readonly [z.ZodObject<{
293
- ok: z.ZodLiteral<false>;
294
- error: z.ZodOptional<z.ZodString>;
295
- }, z.core.$strip>, z.ZodObject<{
296
- ok: z.ZodLiteral<true>;
297
- value: z.ZodString;
298
- }, z.core.$strip>]>;
299
- }, z.core.$strip>>>;
300
- counters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
301
277
  latencyMs: z.ZodOptional<z.ZodNumber>;
302
- verdict: z.ZodOptional<z.ZodEnum<{
303
- ALLOW: "ALLOW";
304
- BLOCK: "BLOCK";
305
- }>>;
306
- control: z.ZodOptional<z.ZodEnum<{
307
- CONTINUE: "CONTINUE";
308
- TERMINATE: "TERMINATE";
309
- }>>;
310
- cause: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
311
- kind: z.ZodLiteral<"ALLOW">;
312
- }, z.core.$strip>, z.ZodObject<{
313
- kind: z.ZodLiteral<"RULE_VIOLATION">;
314
- ruleId: z.ZodString;
315
- }, z.core.$strip>, z.ZodObject<{
316
- kind: z.ZodLiteral<"HITL_PENDING">;
317
- approvalId: z.ZodString;
318
- ruleId: z.ZodOptional<z.ZodString>;
319
- }, z.core.$strip>, z.ZodObject<{
320
- kind: z.ZodLiteral<"LOCKDOWN">;
321
- lockdownId: z.ZodOptional<z.ZodString>;
322
- }, z.core.$strip>], "kind">>;
323
- evaluatedRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
324
- ruleId: z.ZodString;
325
- enabled: z.ZodBoolean;
326
- matched: z.ZodBoolean;
327
- violated: z.ZodBoolean;
328
- }, z.core.$strip>>>;
329
- finalRuleId: z.ZodOptional<z.ZodString>;
330
278
  }, z.core.$strip>;
331
279
  }, z.core.$strip>, z.ZodObject<{
332
280
  schema: z.ZodLiteral<"handlebar.audit.v1">;
333
281
  ts: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDate>;
334
282
  runId: z.ZodString;
335
- stepIndex: z.ZodOptional<z.ZodNumber>;
336
- decisionId: z.ZodOptional<z.ZodString>;
337
- enduserExternalId: z.ZodOptional<z.ZodString>;
338
283
  sessionId: z.ZodOptional<z.ZodString>;
284
+ stepIndex: z.ZodOptional<z.ZodNumber>;
339
285
  actorExternalId: z.ZodOptional<z.ZodString>;
340
286
  otel: z.ZodOptional<z.ZodObject<{
341
287
  traceId: z.ZodOptional<z.ZodString>;
@@ -413,10 +359,8 @@ export declare const AuditEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
413
359
  schema: z.ZodLiteral<"handlebar.audit.v1">;
414
360
  ts: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDate>;
415
361
  runId: z.ZodString;
416
- stepIndex: z.ZodOptional<z.ZodNumber>;
417
- decisionId: z.ZodOptional<z.ZodString>;
418
- enduserExternalId: z.ZodOptional<z.ZodString>;
419
362
  sessionId: z.ZodOptional<z.ZodString>;
363
+ stepIndex: z.ZodOptional<z.ZodNumber>;
420
364
  actorExternalId: z.ZodOptional<z.ZodString>;
421
365
  otel: z.ZodOptional<z.ZodObject<{
422
366
  traceId: z.ZodOptional<z.ZodString>;
@@ -438,23 +382,18 @@ export declare const AuditEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
438
382
  status: z.ZodEnum<{
439
383
  success: "success";
440
384
  error: "error";
441
- ok: "ok";
442
- blocked: "blocked";
443
385
  timeout: "timeout";
444
386
  interrupted: "interrupted";
445
387
  }>;
446
388
  totalSteps: z.ZodNumber;
447
- firstErrorDecisionId: z.ZodOptional<z.ZodString>;
448
389
  summary: z.ZodOptional<z.ZodString>;
449
390
  }, z.core.$strip>;
450
391
  }, z.core.$strip>, z.ZodObject<{
451
392
  schema: z.ZodLiteral<"handlebar.audit.v1">;
452
393
  ts: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDate>;
453
394
  runId: z.ZodString;
454
- stepIndex: z.ZodOptional<z.ZodNumber>;
455
- decisionId: z.ZodOptional<z.ZodString>;
456
- enduserExternalId: z.ZodOptional<z.ZodString>;
457
395
  sessionId: z.ZodOptional<z.ZodString>;
396
+ stepIndex: z.ZodOptional<z.ZodNumber>;
458
397
  actorExternalId: z.ZodOptional<z.ZodString>;
459
398
  otel: z.ZodOptional<z.ZodObject<{
460
399
  traceId: z.ZodOptional<z.ZodString>;
@@ -487,10 +426,8 @@ export declare const AuditEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
487
426
  schema: z.ZodLiteral<"handlebar.audit.v1">;
488
427
  ts: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDate>;
489
428
  runId: z.ZodString;
490
- stepIndex: z.ZodOptional<z.ZodNumber>;
491
- decisionId: z.ZodOptional<z.ZodString>;
492
- enduserExternalId: z.ZodOptional<z.ZodString>;
493
429
  sessionId: z.ZodOptional<z.ZodString>;
430
+ stepIndex: z.ZodOptional<z.ZodNumber>;
494
431
  actorExternalId: z.ZodOptional<z.ZodString>;
495
432
  otel: z.ZodOptional<z.ZodObject<{
496
433
  traceId: z.ZodOptional<z.ZodString>;
@@ -542,10 +479,8 @@ export declare const AuditEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
542
479
  schema: z.ZodLiteral<"handlebar.audit.v1">;
543
480
  ts: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDate>;
544
481
  runId: z.ZodString;
545
- stepIndex: z.ZodOptional<z.ZodNumber>;
546
- decisionId: z.ZodOptional<z.ZodString>;
547
- enduserExternalId: z.ZodOptional<z.ZodString>;
548
482
  sessionId: z.ZodOptional<z.ZodString>;
483
+ stepIndex: z.ZodOptional<z.ZodNumber>;
549
484
  actorExternalId: z.ZodOptional<z.ZodString>;
550
485
  otel: z.ZodOptional<z.ZodObject<{
551
486
  traceId: z.ZodOptional<z.ZodString>;
@@ -55,10 +55,8 @@ export declare const MessageEventSchema: z.ZodObject<{
55
55
  schema: z.ZodLiteral<"handlebar.audit.v1">;
56
56
  ts: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDate>;
57
57
  runId: z.ZodString;
58
- stepIndex: z.ZodOptional<z.ZodNumber>;
59
- decisionId: z.ZodOptional<z.ZodString>;
60
- enduserExternalId: z.ZodOptional<z.ZodString>;
61
58
  sessionId: z.ZodOptional<z.ZodString>;
59
+ stepIndex: z.ZodOptional<z.ZodNumber>;
62
60
  actorExternalId: z.ZodOptional<z.ZodString>;
63
61
  otel: z.ZodOptional<z.ZodObject<{
64
62
  traceId: z.ZodOptional<z.ZodString>;
@@ -111,10 +109,8 @@ export declare const LLMResultEventSchema: z.ZodObject<{
111
109
  schema: z.ZodLiteral<"handlebar.audit.v1">;
112
110
  ts: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDate>;
113
111
  runId: z.ZodString;
114
- stepIndex: z.ZodOptional<z.ZodNumber>;
115
- decisionId: z.ZodOptional<z.ZodString>;
116
- enduserExternalId: z.ZodOptional<z.ZodString>;
117
112
  sessionId: z.ZodOptional<z.ZodString>;
113
+ stepIndex: z.ZodOptional<z.ZodNumber>;
118
114
  actorExternalId: z.ZodOptional<z.ZodString>;
119
115
  otel: z.ZodOptional<z.ZodObject<{
120
116
  traceId: z.ZodOptional<z.ZodString>;
@@ -19,10 +19,8 @@ export declare const ToolDecisionEventSchema: z.ZodObject<{
19
19
  schema: z.ZodLiteral<"handlebar.audit.v1">;
20
20
  ts: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDate>;
21
21
  runId: z.ZodString;
22
- stepIndex: z.ZodOptional<z.ZodNumber>;
23
- decisionId: z.ZodOptional<z.ZodString>;
24
- enduserExternalId: z.ZodOptional<z.ZodString>;
25
22
  sessionId: z.ZodOptional<z.ZodString>;
23
+ stepIndex: z.ZodOptional<z.ZodNumber>;
26
24
  actorExternalId: z.ZodOptional<z.ZodString>;
27
25
  otel: z.ZodOptional<z.ZodObject<{
28
26
  traceId: z.ZodOptional<z.ZodString>;
@@ -41,14 +39,35 @@ export declare const ToolDecisionEventSchema: z.ZodObject<{
41
39
  }, z.core.$strip>>;
42
40
  kind: z.ZodLiteral<"tool.decision">;
43
41
  data: z.ZodObject<{
44
- effect: z.ZodCustom<import("./governance-actions").GovernanceEffect, import("./governance-actions").GovernanceEffect>;
45
- code: z.ZodCustom<import("./governance-actions").GovernanceCode, import("./governance-actions").GovernanceCode>;
46
- matchedRuleIds: z.ZodArray<z.ZodString>;
47
- appliedActions: z.ZodArray<z.ZodObject<{
48
- type: z.ZodCustom<"allow" | "block" | "hitl" | "notify" | "log", "allow" | "block" | "hitl" | "notify" | "log">;
42
+ verdict: z.ZodEnum<{
43
+ ALLOW: "ALLOW";
44
+ BLOCK: "BLOCK";
45
+ }>;
46
+ control: z.ZodEnum<{
47
+ CONTINUE: "CONTINUE";
48
+ TERMINATE: "TERMINATE";
49
+ }>;
50
+ cause: z.ZodDiscriminatedUnion<[z.ZodObject<{
51
+ kind: z.ZodLiteral<"ALLOW">;
52
+ }, z.core.$strip>, z.ZodObject<{
53
+ kind: z.ZodLiteral<"RULE_VIOLATION">;
54
+ ruleId: z.ZodString;
55
+ }, z.core.$strip>, z.ZodObject<{
56
+ kind: z.ZodLiteral<"HITL_PENDING">;
57
+ approvalId: z.ZodString;
58
+ ruleId: z.ZodOptional<z.ZodString>;
59
+ }, z.core.$strip>, z.ZodObject<{
60
+ kind: z.ZodLiteral<"LOCKDOWN">;
61
+ lockdownId: z.ZodOptional<z.ZodString>;
62
+ }, z.core.$strip>], "kind">;
63
+ message: z.ZodString;
64
+ evaluatedRules: z.ZodArray<z.ZodObject<{
49
65
  ruleId: z.ZodString;
66
+ enabled: z.ZodBoolean;
67
+ matched: z.ZodBoolean;
68
+ violated: z.ZodBoolean;
50
69
  }, z.core.$strip>>;
51
- reason: z.ZodOptional<z.ZodString>;
70
+ finalRuleId: z.ZodOptional<z.ZodString>;
52
71
  tool: z.ZodObject<{
53
72
  name: z.ZodString;
54
73
  categories: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -75,57 +94,15 @@ export declare const ToolDecisionEventSchema: z.ZodObject<{
75
94
  value: z.ZodString;
76
95
  idSystem: z.ZodOptional<z.ZodString>;
77
96
  }, z.core.$strip>>>;
78
- signals: z.ZodOptional<z.ZodArray<z.ZodObject<{
79
- key: z.ZodString;
80
- args: z.ZodOptional<z.ZodArray<z.ZodString>>;
81
- result: z.ZodUnion<readonly [z.ZodObject<{
82
- ok: z.ZodLiteral<false>;
83
- error: z.ZodOptional<z.ZodString>;
84
- }, z.core.$strip>, z.ZodObject<{
85
- ok: z.ZodLiteral<true>;
86
- value: z.ZodString;
87
- }, z.core.$strip>]>;
88
- }, z.core.$strip>>>;
89
- counters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
90
97
  latencyMs: z.ZodOptional<z.ZodNumber>;
91
- verdict: z.ZodOptional<z.ZodEnum<{
92
- ALLOW: "ALLOW";
93
- BLOCK: "BLOCK";
94
- }>>;
95
- control: z.ZodOptional<z.ZodEnum<{
96
- CONTINUE: "CONTINUE";
97
- TERMINATE: "TERMINATE";
98
- }>>;
99
- cause: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
100
- kind: z.ZodLiteral<"ALLOW">;
101
- }, z.core.$strip>, z.ZodObject<{
102
- kind: z.ZodLiteral<"RULE_VIOLATION">;
103
- ruleId: z.ZodString;
104
- }, z.core.$strip>, z.ZodObject<{
105
- kind: z.ZodLiteral<"HITL_PENDING">;
106
- approvalId: z.ZodString;
107
- ruleId: z.ZodOptional<z.ZodString>;
108
- }, z.core.$strip>, z.ZodObject<{
109
- kind: z.ZodLiteral<"LOCKDOWN">;
110
- lockdownId: z.ZodOptional<z.ZodString>;
111
- }, z.core.$strip>], "kind">>;
112
- evaluatedRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
113
- ruleId: z.ZodString;
114
- enabled: z.ZodBoolean;
115
- matched: z.ZodBoolean;
116
- violated: z.ZodBoolean;
117
- }, z.core.$strip>>>;
118
- finalRuleId: z.ZodOptional<z.ZodString>;
119
98
  }, z.core.$strip>;
120
99
  }, z.core.$strip>;
121
100
  export declare const ToolResultEventSchema: z.ZodObject<{
122
101
  schema: z.ZodLiteral<"handlebar.audit.v1">;
123
102
  ts: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDate>;
124
103
  runId: z.ZodString;
125
- stepIndex: z.ZodOptional<z.ZodNumber>;
126
- decisionId: z.ZodOptional<z.ZodString>;
127
- enduserExternalId: z.ZodOptional<z.ZodString>;
128
104
  sessionId: z.ZodOptional<z.ZodString>;
105
+ stepIndex: z.ZodOptional<z.ZodNumber>;
129
106
  actorExternalId: z.ZodOptional<z.ZodString>;
130
107
  otel: z.ZodOptional<z.ZodObject<{
131
108
  traceId: z.ZodOptional<z.ZodString>;
@@ -62,49 +62,3 @@ export declare const DecisionSchema: z.ZodObject<{
62
62
  finalRuleId: z.ZodOptional<z.ZodString>;
63
63
  }, z.core.$strip>;
64
64
  export type Decision = z.infer<typeof DecisionSchema>;
65
- export declare const SignalSchema: z.ZodObject<{
66
- key: z.ZodString;
67
- args: z.ZodOptional<z.ZodArray<z.ZodString>>;
68
- result: z.ZodUnion<readonly [z.ZodObject<{
69
- ok: z.ZodLiteral<false>;
70
- error: z.ZodOptional<z.ZodString>;
71
- }, z.core.$strip>, z.ZodObject<{
72
- ok: z.ZodLiteral<true>;
73
- value: z.ZodString;
74
- }, z.core.$strip>]>;
75
- }, z.core.$strip>;
76
- /**
77
- * "hitl" effect specifically denote human-in-the-loop interventions.
78
- * Flow blocking/approval as a result of a decided hitl intervention should have the corresponding effect.
79
- */
80
- export type GovernanceEffect = "allow" | "block" | "hitl";
81
- type RuleAction = "allow" | "block" | "notify" | "log" | "hitl";
82
- export type GovernanceCode = "ALLOWED" | "ALLOWED_HITL_APPROVED" | "BLOCKED_UNCATEGORISED" | "BLOCKED_RULE" | "BLOCKED_CUSTOM" | "BLOCKED_HITL_DENIED" | "BLOCKED_HITL_PENDING" | "BLOCKED_HITL_REQUESTED" | "NO_OP";
83
- export declare const AppliedActionSchema: z.ZodObject<{
84
- type: z.ZodCustom<RuleAction, RuleAction>;
85
- ruleId: z.ZodString;
86
- }, z.core.$strip>;
87
- export declare const GovernanceDecisionSchema: z.ZodObject<{
88
- effect: z.ZodCustom<GovernanceEffect, GovernanceEffect>;
89
- code: z.ZodCustom<GovernanceCode, GovernanceCode>;
90
- matchedRuleIds: z.ZodArray<z.ZodString>;
91
- appliedActions: z.ZodArray<z.ZodObject<{
92
- type: z.ZodCustom<RuleAction, RuleAction>;
93
- ruleId: z.ZodString;
94
- }, z.core.$strip>>;
95
- reason: z.ZodOptional<z.ZodString>;
96
- signals: z.ZodOptional<z.ZodArray<z.ZodObject<{
97
- key: z.ZodString;
98
- args: z.ZodOptional<z.ZodArray<z.ZodString>>;
99
- result: z.ZodUnion<readonly [z.ZodObject<{
100
- ok: z.ZodLiteral<false>;
101
- error: z.ZodOptional<z.ZodString>;
102
- }, z.core.$strip>, z.ZodObject<{
103
- ok: z.ZodLiteral<true>;
104
- value: z.ZodString;
105
- }, z.core.$strip>]>;
106
- }, z.core.$strip>>>;
107
- }, z.core.$strip>;
108
- export type GovernanceDecision = z.infer<typeof GovernanceDecisionSchema>;
109
- export type AppliedAction = z.infer<typeof AppliedActionSchema>;
110
- export {};
package/dist/index.js CHANGED
@@ -13565,10 +13565,8 @@ var AuditEnvelopeSchema = exports_external.object({
13565
13565
  return v;
13566
13566
  }, exports_external.date()),
13567
13567
  runId: exports_external.string(),
13568
- stepIndex: exports_external.number().min(0).optional(),
13569
- decisionId: exports_external.string().optional(),
13570
- enduserExternalId: exports_external.string().optional(),
13571
13568
  sessionId: exports_external.string().optional(),
13569
+ stepIndex: exports_external.number().min(0).optional(),
13572
13570
  actorExternalId: exports_external.string().optional(),
13573
13571
  otel: exports_external.object({
13574
13572
  traceId: exports_external.string().optional(),
@@ -13669,26 +13667,6 @@ var DecisionSchema = exports_external.object({
13669
13667
  evaluatedRules: exports_external.array(RuleEvalSchema),
13670
13668
  finalRuleId: exports_external.string().optional()
13671
13669
  });
13672
- var SignalSchema = exports_external.object({
13673
- key: exports_external.string().max(256),
13674
- args: exports_external.array(exports_external.string().max(256)).max(100).optional(),
13675
- result: exports_external.union([
13676
- exports_external.object({ ok: exports_external.literal(false), error: exports_external.string().optional() }),
13677
- exports_external.object({ ok: exports_external.literal(true), value: exports_external.string().max(256) })
13678
- ])
13679
- });
13680
- var AppliedActionSchema = exports_external.object({
13681
- type: exports_external.custom(),
13682
- ruleId: exports_external.string()
13683
- });
13684
- var GovernanceDecisionSchema = exports_external.object({
13685
- effect: exports_external.custom(),
13686
- code: exports_external.custom(),
13687
- matchedRuleIds: exports_external.array(exports_external.string()),
13688
- appliedActions: exports_external.array(AppliedActionSchema),
13689
- reason: exports_external.optional(exports_external.string()),
13690
- signals: exports_external.array(SignalSchema).max(100).optional()
13691
- });
13692
13670
 
13693
13671
  // src/audit/run-metrics.ts
13694
13672
  var InbuiltAgentMetricKind = exports_external.enum([
@@ -13738,20 +13716,13 @@ var HitlMetaSchema = zod_default.object({
13738
13716
  });
13739
13717
  var ToolDecisionEventSchema = AuditEnvelopeSchema.extend({
13740
13718
  kind: zod_default.literal("tool.decision"),
13741
- data: GovernanceDecisionSchema.extend({
13719
+ data: DecisionSchema.extend({
13742
13720
  tool: ToolIdentitySchema,
13743
13721
  args: ToolArgsSchema.optional(),
13744
13722
  argsMeta: ToolMetaSchema.optional(),
13745
13723
  hitl: HitlMetaSchema.optional(),
13746
13724
  subjects: zod_default.array(SubjectSchema).max(100).optional(),
13747
- signals: zod_default.array(SignalSchema).max(100).optional(),
13748
- counters: CountersSchema.optional(),
13749
- latencyMs: zod_default.number().min(0).optional(),
13750
- verdict: VerdictSchema.optional(),
13751
- control: RunControlSchema.optional(),
13752
- cause: DecisionCauseSchema.optional(),
13753
- evaluatedRules: zod_default.array(RuleEvalSchema).optional(),
13754
- finalRuleId: zod_default.string().optional()
13725
+ latencyMs: zod_default.number().min(0).optional()
13755
13726
  })
13756
13727
  });
13757
13728
  var ToolResultEventSchema = AuditEnvelopeSchema.extend({
@@ -13791,7 +13762,6 @@ var RunStartedEventSchema = AuditEnvelopeSchema.extend({
13791
13762
  id: exports_external.string().optional(),
13792
13763
  name: exports_external.string().optional()
13793
13764
  }),
13794
- enduser: ActorSchema.optional(),
13795
13765
  actor: ActorSchema.optional(),
13796
13766
  model: exports_external.object({
13797
13767
  provider: exports_external.string().optional(),
@@ -13815,16 +13785,8 @@ var RunStartedEventSchema = AuditEnvelopeSchema.extend({
13815
13785
  var RunEndedEventSchema = AuditEnvelopeSchema.extend({
13816
13786
  kind: exports_external.literal("run.ended"),
13817
13787
  data: exports_external.object({
13818
- status: exports_external.enum([
13819
- "ok",
13820
- "error",
13821
- "blocked",
13822
- "success",
13823
- "timeout",
13824
- "interrupted"
13825
- ]),
13788
+ status: exports_external.enum(["error", "success", "timeout", "interrupted"]),
13826
13789
  totalSteps: exports_external.number().min(0),
13827
- firstErrorDecisionId: exports_external.string().optional(),
13828
13790
  summary: exports_external.string().optional()
13829
13791
  })
13830
13792
  });
@@ -14117,7 +14079,6 @@ export {
14117
14079
  ToolResultEventSchema,
14118
14080
  ToolDecisionEventSchema,
14119
14081
  SubjectSchema,
14120
- SignalSchema,
14121
14082
  RunStartedEventSchema,
14122
14083
  RunEndedEventSchema,
14123
14084
  RunControlSchema,
@@ -14132,14 +14093,12 @@ export {
14132
14093
  LLMResultEventSchema,
14133
14094
  InbuiltAgentMetricKind,
14134
14095
  HitlMetaSchema,
14135
- GovernanceDecisionSchema,
14136
14096
  ErrorEventSchema,
14137
14097
  DecisionSchema,
14138
14098
  DecisionCauseSchema,
14139
14099
  CustomAgentMetricKind,
14140
14100
  AuditEventSchema,
14141
14101
  AuditEnvelopeSchema,
14142
- AppliedActionSchema,
14143
14102
  AgentSelectorSchema,
14144
14103
  AgentMetrics
14145
14104
  };
@@ -151,9 +151,9 @@ declare const AndConditionSchema: z.ZodObject<{
151
151
  }>;
152
152
  value: z.ZodNumber;
153
153
  onMissing: z.ZodOptional<z.ZodEnum<{
154
+ hitl: "hitl";
154
155
  allow: "allow";
155
156
  block: "block";
156
- hitl: "hitl";
157
157
  }>>;
158
158
  }, z.core.$strict>, z.ZodObject<{
159
159
  kind: z.ZodLiteral<"timeGate">;
@@ -219,9 +219,9 @@ declare const AndConditionSchema: z.ZodObject<{
219
219
  }>;
220
220
  value: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>;
221
221
  onMissing: z.ZodOptional<z.ZodEnum<{
222
+ hitl: "hitl";
222
223
  allow: "allow";
223
224
  block: "block";
224
- hitl: "hitl";
225
225
  }>>;
226
226
  }, z.core.$strict>]>>;
227
227
  }, z.core.$strict>;
@@ -377,9 +377,9 @@ declare const OrConditionSchema: z.ZodObject<{
377
377
  }>;
378
378
  value: z.ZodNumber;
379
379
  onMissing: z.ZodOptional<z.ZodEnum<{
380
+ hitl: "hitl";
380
381
  allow: "allow";
381
382
  block: "block";
382
- hitl: "hitl";
383
383
  }>>;
384
384
  }, z.core.$strict>, z.ZodObject<{
385
385
  kind: z.ZodLiteral<"timeGate">;
@@ -445,9 +445,9 @@ declare const OrConditionSchema: z.ZodObject<{
445
445
  }>;
446
446
  value: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>;
447
447
  onMissing: z.ZodOptional<z.ZodEnum<{
448
+ hitl: "hitl";
448
449
  allow: "allow";
449
450
  block: "block";
450
- hitl: "hitl";
451
451
  }>>;
452
452
  }, z.core.$strict>]>>;
453
453
  }, z.core.$strict>;
@@ -603,9 +603,9 @@ declare const NotConditionSchema: z.ZodObject<{
603
603
  }>;
604
604
  value: z.ZodNumber;
605
605
  onMissing: z.ZodOptional<z.ZodEnum<{
606
+ hitl: "hitl";
606
607
  allow: "allow";
607
608
  block: "block";
608
- hitl: "hitl";
609
609
  }>>;
610
610
  }, z.core.$strict>, z.ZodObject<{
611
611
  kind: z.ZodLiteral<"timeGate">;
@@ -671,9 +671,9 @@ declare const NotConditionSchema: z.ZodObject<{
671
671
  }>;
672
672
  value: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>;
673
673
  onMissing: z.ZodOptional<z.ZodEnum<{
674
+ hitl: "hitl";
674
675
  allow: "allow";
675
676
  block: "block";
676
- hitl: "hitl";
677
677
  }>>;
678
678
  }, z.core.$strict>]>;
679
679
  }, z.core.$strict>;
@@ -830,9 +830,9 @@ export declare const RuleConditionSchema: z.ZodUnion<readonly [z.ZodUnion<readon
830
830
  }>;
831
831
  value: z.ZodNumber;
832
832
  onMissing: z.ZodOptional<z.ZodEnum<{
833
+ hitl: "hitl";
833
834
  allow: "allow";
834
835
  block: "block";
835
- hitl: "hitl";
836
836
  }>>;
837
837
  }, z.core.$strict>, z.ZodObject<{
838
838
  kind: z.ZodLiteral<"timeGate">;
@@ -898,9 +898,9 @@ export declare const RuleConditionSchema: z.ZodUnion<readonly [z.ZodUnion<readon
898
898
  }>;
899
899
  value: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>;
900
900
  onMissing: z.ZodOptional<z.ZodEnum<{
901
+ hitl: "hitl";
901
902
  allow: "allow";
902
903
  block: "block";
903
- hitl: "hitl";
904
904
  }>>;
905
905
  }, z.core.$strict>]>, z.ZodObject<{
906
906
  kind: z.ZodLiteral<"and">;
@@ -1054,9 +1054,9 @@ export declare const RuleConditionSchema: z.ZodUnion<readonly [z.ZodUnion<readon
1054
1054
  }>;
1055
1055
  value: z.ZodNumber;
1056
1056
  onMissing: z.ZodOptional<z.ZodEnum<{
1057
+ hitl: "hitl";
1057
1058
  allow: "allow";
1058
1059
  block: "block";
1059
- hitl: "hitl";
1060
1060
  }>>;
1061
1061
  }, z.core.$strict>, z.ZodObject<{
1062
1062
  kind: z.ZodLiteral<"timeGate">;
@@ -1122,9 +1122,9 @@ export declare const RuleConditionSchema: z.ZodUnion<readonly [z.ZodUnion<readon
1122
1122
  }>;
1123
1123
  value: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>;
1124
1124
  onMissing: z.ZodOptional<z.ZodEnum<{
1125
+ hitl: "hitl";
1125
1126
  allow: "allow";
1126
1127
  block: "block";
1127
- hitl: "hitl";
1128
1128
  }>>;
1129
1129
  }, z.core.$strict>]>>;
1130
1130
  }, z.core.$strict>, z.ZodObject<{
@@ -1279,9 +1279,9 @@ export declare const RuleConditionSchema: z.ZodUnion<readonly [z.ZodUnion<readon
1279
1279
  }>;
1280
1280
  value: z.ZodNumber;
1281
1281
  onMissing: z.ZodOptional<z.ZodEnum<{
1282
+ hitl: "hitl";
1282
1283
  allow: "allow";
1283
1284
  block: "block";
1284
- hitl: "hitl";
1285
1285
  }>>;
1286
1286
  }, z.core.$strict>, z.ZodObject<{
1287
1287
  kind: z.ZodLiteral<"timeGate">;
@@ -1347,9 +1347,9 @@ export declare const RuleConditionSchema: z.ZodUnion<readonly [z.ZodUnion<readon
1347
1347
  }>;
1348
1348
  value: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>;
1349
1349
  onMissing: z.ZodOptional<z.ZodEnum<{
1350
+ hitl: "hitl";
1350
1351
  allow: "allow";
1351
1352
  block: "block";
1352
- hitl: "hitl";
1353
1353
  }>>;
1354
1354
  }, z.core.$strict>]>>;
1355
1355
  }, z.core.$strict>, z.ZodObject<{
@@ -1504,9 +1504,9 @@ export declare const RuleConditionSchema: z.ZodUnion<readonly [z.ZodUnion<readon
1504
1504
  }>;
1505
1505
  value: z.ZodNumber;
1506
1506
  onMissing: z.ZodOptional<z.ZodEnum<{
1507
+ hitl: "hitl";
1507
1508
  allow: "allow";
1508
1509
  block: "block";
1509
- hitl: "hitl";
1510
1510
  }>>;
1511
1511
  }, z.core.$strict>, z.ZodObject<{
1512
1512
  kind: z.ZodLiteral<"timeGate">;
@@ -1572,9 +1572,9 @@ export declare const RuleConditionSchema: z.ZodUnion<readonly [z.ZodUnion<readon
1572
1572
  }>;
1573
1573
  value: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>;
1574
1574
  onMissing: z.ZodOptional<z.ZodEnum<{
1575
+ hitl: "hitl";
1575
1576
  allow: "allow";
1576
1577
  block: "block";
1577
- hitl: "hitl";
1578
1578
  }>>;
1579
1579
  }, z.core.$strict>]>;
1580
1580
  }, z.core.$strict>]>;
@@ -1,8 +1,8 @@
1
1
  import z from "zod";
2
2
  export declare const RuleEffectKindSchema: z.ZodEnum<{
3
+ hitl: "hitl";
3
4
  allow: "allow";
4
5
  block: "block";
5
- hitl: "hitl";
6
6
  }>;
7
7
  export type RuleEffectKind = z.infer<typeof RuleEffectKindSchema>;
8
8
  /**
@@ -60,9 +60,9 @@ export declare const MetricWindowConditionSchema: z.ZodObject<{
60
60
  }>;
61
61
  value: z.ZodNumber;
62
62
  onMissing: z.ZodOptional<z.ZodEnum<{
63
+ hitl: "hitl";
63
64
  allow: "allow";
64
65
  block: "block";
65
- hitl: "hitl";
66
66
  }>>;
67
67
  }, z.core.$strict>;
68
68
  export type MetricWindowCondition = z.infer<typeof MetricWindowConditionSchema>;
@@ -183,9 +183,9 @@ export declare const RuleSchema: z.ZodObject<{
183
183
  }>;
184
184
  value: z.ZodNumber;
185
185
  onMissing: z.ZodOptional<z.ZodEnum<{
186
+ hitl: "hitl";
186
187
  allow: "allow";
187
188
  block: "block";
188
- hitl: "hitl";
189
189
  }>>;
190
190
  }, z.core.$strict>, z.ZodObject<{
191
191
  kind: z.ZodLiteral<"timeGate">;
@@ -251,9 +251,9 @@ export declare const RuleSchema: z.ZodObject<{
251
251
  }>;
252
252
  value: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>;
253
253
  onMissing: z.ZodOptional<z.ZodEnum<{
254
+ hitl: "hitl";
254
255
  allow: "allow";
255
256
  block: "block";
256
- hitl: "hitl";
257
257
  }>>;
258
258
  }, z.core.$strict>]>, z.ZodObject<{
259
259
  kind: z.ZodLiteral<"and">;
@@ -407,9 +407,9 @@ export declare const RuleSchema: z.ZodObject<{
407
407
  }>;
408
408
  value: z.ZodNumber;
409
409
  onMissing: z.ZodOptional<z.ZodEnum<{
410
+ hitl: "hitl";
410
411
  allow: "allow";
411
412
  block: "block";
412
- hitl: "hitl";
413
413
  }>>;
414
414
  }, z.core.$strict>, z.ZodObject<{
415
415
  kind: z.ZodLiteral<"timeGate">;
@@ -475,9 +475,9 @@ export declare const RuleSchema: z.ZodObject<{
475
475
  }>;
476
476
  value: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>;
477
477
  onMissing: z.ZodOptional<z.ZodEnum<{
478
+ hitl: "hitl";
478
479
  allow: "allow";
479
480
  block: "block";
480
- hitl: "hitl";
481
481
  }>>;
482
482
  }, z.core.$strict>]>>;
483
483
  }, z.core.$strict>, z.ZodObject<{
@@ -632,9 +632,9 @@ export declare const RuleSchema: z.ZodObject<{
632
632
  }>;
633
633
  value: z.ZodNumber;
634
634
  onMissing: z.ZodOptional<z.ZodEnum<{
635
+ hitl: "hitl";
635
636
  allow: "allow";
636
637
  block: "block";
637
- hitl: "hitl";
638
638
  }>>;
639
639
  }, z.core.$strict>, z.ZodObject<{
640
640
  kind: z.ZodLiteral<"timeGate">;
@@ -700,9 +700,9 @@ export declare const RuleSchema: z.ZodObject<{
700
700
  }>;
701
701
  value: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>;
702
702
  onMissing: z.ZodOptional<z.ZodEnum<{
703
+ hitl: "hitl";
703
704
  allow: "allow";
704
705
  block: "block";
705
- hitl: "hitl";
706
706
  }>>;
707
707
  }, z.core.$strict>]>>;
708
708
  }, z.core.$strict>, z.ZodObject<{
@@ -857,9 +857,9 @@ export declare const RuleSchema: z.ZodObject<{
857
857
  }>;
858
858
  value: z.ZodNumber;
859
859
  onMissing: z.ZodOptional<z.ZodEnum<{
860
+ hitl: "hitl";
860
861
  allow: "allow";
861
862
  block: "block";
862
- hitl: "hitl";
863
863
  }>>;
864
864
  }, z.core.$strict>, z.ZodObject<{
865
865
  kind: z.ZodLiteral<"timeGate">;
@@ -925,9 +925,9 @@ export declare const RuleSchema: z.ZodObject<{
925
925
  }>;
926
926
  value: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>;
927
927
  onMissing: z.ZodOptional<z.ZodEnum<{
928
+ hitl: "hitl";
928
929
  allow: "allow";
929
930
  block: "block";
930
- hitl: "hitl";
931
931
  }>>;
932
932
  }, z.core.$strict>]>;
933
933
  }, z.core.$strict>]>;
@@ -942,29 +942,19 @@ export declare const RuleSchema: z.ZodObject<{
942
942
  reason: z.ZodOptional<z.ZodString>;
943
943
  }, z.core.$strict>], "type">;
944
944
  onMissing: z.ZodOptional<z.ZodEnum<{
945
+ hitl: "hitl";
945
946
  allow: "allow";
946
947
  block: "block";
947
- hitl: "hitl";
948
948
  }>>;
949
949
  }, z.core.$strict>;
950
950
  export type Rule = z.infer<typeof RuleSchema>;
951
951
  export declare const RuleSpecSchema: z.ZodObject<{
952
952
  name: z.ZodString;
953
953
  enabled: z.ZodBoolean;
954
- effect: z.ZodDiscriminatedUnion<[z.ZodObject<{
955
- type: z.ZodLiteral<"allow">;
956
- reason: z.ZodOptional<z.ZodString>;
957
- }, z.core.$strict>, z.ZodObject<{
958
- type: z.ZodLiteral<"hitl">;
959
- reason: z.ZodOptional<z.ZodString>;
960
- }, z.core.$strict>, z.ZodObject<{
961
- type: z.ZodLiteral<"block">;
962
- reason: z.ZodOptional<z.ZodString>;
963
- }, z.core.$strict>], "type">;
964
954
  onMissing: z.ZodOptional<z.ZodEnum<{
955
+ hitl: "hitl";
965
956
  allow: "allow";
966
957
  block: "block";
967
- hitl: "hitl";
968
958
  }>>;
969
959
  selector: z.ZodObject<{
970
960
  phase: z.ZodEnum<{
@@ -1127,9 +1117,9 @@ export declare const RuleSpecSchema: z.ZodObject<{
1127
1117
  }>;
1128
1118
  value: z.ZodNumber;
1129
1119
  onMissing: z.ZodOptional<z.ZodEnum<{
1120
+ hitl: "hitl";
1130
1121
  allow: "allow";
1131
1122
  block: "block";
1132
- hitl: "hitl";
1133
1123
  }>>;
1134
1124
  }, z.core.$strict>, z.ZodObject<{
1135
1125
  kind: z.ZodLiteral<"timeGate">;
@@ -1195,9 +1185,9 @@ export declare const RuleSpecSchema: z.ZodObject<{
1195
1185
  }>;
1196
1186
  value: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>;
1197
1187
  onMissing: z.ZodOptional<z.ZodEnum<{
1188
+ hitl: "hitl";
1198
1189
  allow: "allow";
1199
1190
  block: "block";
1200
- hitl: "hitl";
1201
1191
  }>>;
1202
1192
  }, z.core.$strict>]>, z.ZodObject<{
1203
1193
  kind: z.ZodLiteral<"and">;
@@ -1351,9 +1341,9 @@ export declare const RuleSpecSchema: z.ZodObject<{
1351
1341
  }>;
1352
1342
  value: z.ZodNumber;
1353
1343
  onMissing: z.ZodOptional<z.ZodEnum<{
1344
+ hitl: "hitl";
1354
1345
  allow: "allow";
1355
1346
  block: "block";
1356
- hitl: "hitl";
1357
1347
  }>>;
1358
1348
  }, z.core.$strict>, z.ZodObject<{
1359
1349
  kind: z.ZodLiteral<"timeGate">;
@@ -1419,9 +1409,9 @@ export declare const RuleSpecSchema: z.ZodObject<{
1419
1409
  }>;
1420
1410
  value: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>;
1421
1411
  onMissing: z.ZodOptional<z.ZodEnum<{
1412
+ hitl: "hitl";
1422
1413
  allow: "allow";
1423
1414
  block: "block";
1424
- hitl: "hitl";
1425
1415
  }>>;
1426
1416
  }, z.core.$strict>]>>;
1427
1417
  }, z.core.$strict>, z.ZodObject<{
@@ -1576,9 +1566,9 @@ export declare const RuleSpecSchema: z.ZodObject<{
1576
1566
  }>;
1577
1567
  value: z.ZodNumber;
1578
1568
  onMissing: z.ZodOptional<z.ZodEnum<{
1569
+ hitl: "hitl";
1579
1570
  allow: "allow";
1580
1571
  block: "block";
1581
- hitl: "hitl";
1582
1572
  }>>;
1583
1573
  }, z.core.$strict>, z.ZodObject<{
1584
1574
  kind: z.ZodLiteral<"timeGate">;
@@ -1644,9 +1634,9 @@ export declare const RuleSpecSchema: z.ZodObject<{
1644
1634
  }>;
1645
1635
  value: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>;
1646
1636
  onMissing: z.ZodOptional<z.ZodEnum<{
1637
+ hitl: "hitl";
1647
1638
  allow: "allow";
1648
1639
  block: "block";
1649
- hitl: "hitl";
1650
1640
  }>>;
1651
1641
  }, z.core.$strict>]>>;
1652
1642
  }, z.core.$strict>, z.ZodObject<{
@@ -1801,9 +1791,9 @@ export declare const RuleSpecSchema: z.ZodObject<{
1801
1791
  }>;
1802
1792
  value: z.ZodNumber;
1803
1793
  onMissing: z.ZodOptional<z.ZodEnum<{
1794
+ hitl: "hitl";
1804
1795
  allow: "allow";
1805
1796
  block: "block";
1806
- hitl: "hitl";
1807
1797
  }>>;
1808
1798
  }, z.core.$strict>, z.ZodObject<{
1809
1799
  kind: z.ZodLiteral<"timeGate">;
@@ -1869,11 +1859,21 @@ export declare const RuleSpecSchema: z.ZodObject<{
1869
1859
  }>;
1870
1860
  value: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>;
1871
1861
  onMissing: z.ZodOptional<z.ZodEnum<{
1862
+ hitl: "hitl";
1872
1863
  allow: "allow";
1873
1864
  block: "block";
1874
- hitl: "hitl";
1875
1865
  }>>;
1876
1866
  }, z.core.$strict>]>;
1877
1867
  }, z.core.$strict>]>;
1868
+ effect: z.ZodDiscriminatedUnion<[z.ZodObject<{
1869
+ type: z.ZodLiteral<"allow">;
1870
+ reason: z.ZodOptional<z.ZodString>;
1871
+ }, z.core.$strict>, z.ZodObject<{
1872
+ type: z.ZodLiteral<"hitl">;
1873
+ reason: z.ZodOptional<z.ZodString>;
1874
+ }, z.core.$strict>, z.ZodObject<{
1875
+ type: z.ZodLiteral<"block">;
1876
+ reason: z.ZodOptional<z.ZodString>;
1877
+ }, z.core.$strict>], "type">;
1878
1878
  priority: z.ZodNumber;
1879
1879
  }, z.core.$strict>;
@@ -71,9 +71,9 @@ export declare const SignalConditionSchema: z.ZodObject<{
71
71
  }>;
72
72
  value: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>;
73
73
  onMissing: z.ZodOptional<z.ZodEnum<{
74
+ hitl: "hitl";
74
75
  allow: "allow";
75
76
  block: "block";
76
- hitl: "hitl";
77
77
  }>>;
78
78
  }, z.core.$strict>;
79
79
  export type SignalCondition = z.infer<typeof SignalConditionSchema>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@handlebar/governance-schema",
3
- "version": "0.1.1-beta.0",
3
+ "version": "0.2.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",