qati-sdk 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -780,6 +780,9 @@ var Session = class {
780
780
  return new Client(this._config, httpClients ?? {});
781
781
  }
782
782
  };
783
+ var fraction01 = () => zod.z.number().min(0).max(1);
784
+ var fraction01Nullable = () => fraction01().nullable().optional();
785
+ var nonEmptyString = () => zod.z.string().min(1);
783
786
 
784
787
  // src/shared/types/signal-type.ts
785
788
  var SIGNAL_TYPES = [
@@ -789,7 +792,16 @@ var SIGNAL_TYPES = [
789
792
  "SYSTEM_TELEMETRY",
790
793
  "MODEL_OUTPUT",
791
794
  "ANOMALY_FLAG",
792
- "NETWORK_EVENT"
795
+ "NETWORK_EVENT",
796
+ "SESSION",
797
+ "PROMPT_INPUT",
798
+ "CONTEXT_INTEGRITY",
799
+ "TOOL_CALL",
800
+ "RAG_RETRIEVAL",
801
+ "POLICY_EVENT",
802
+ "USER_FEEDBACK",
803
+ "WORKFLOW_ACTION",
804
+ "API_CALL"
793
805
  ];
794
806
 
795
807
  // src/shared/types/provenance-mode.ts
@@ -838,103 +850,15 @@ var RawEventRequestSchema = zod.z.object({
838
850
  payload: zod.z.record(zod.z.any()).describe("JSON payload (stored as JSONB in DB).")
839
851
  });
840
852
 
841
- // src/v1/schemas/signal-payload.ts
842
- var TransactionSignalPayloadSchema = zod.z.object({
843
- amount: zod.z.number().nonnegative().default(0),
844
- amount_minor: zod.z.number().int().nonnegative().nullable().optional(),
845
- amount_usd: zod.z.number().nonnegative().nullable().optional(),
846
- currency: zod.z.string().nullable().optional(),
847
- merchant_category: zod.z.string().nullable().optional(),
848
- merchant_id: zod.z.string().nullable().optional(),
849
- channel: zod.z.string().nullable().optional(),
850
- country: zod.z.string().nullable().optional(),
851
- velocity: zod.z.number().nonnegative().nullable().optional(),
852
- external_anomaly_score: zod.z.number().nullable().optional(),
853
- geo_distance: zod.z.number().nonnegative().nullable().optional(),
854
- geo_distance_km: zod.z.number().nonnegative().nullable().optional(),
855
- records_accessed: zod.z.number().int().nonnegative().nullable().optional(),
856
- baseline_records_accessed: zod.z.number().int().nonnegative().nullable().optional(),
857
- sensitivity_level: zod.z.string().nullable().optional(),
858
- export_count: zod.z.number().int().nonnegative().nullable().optional(),
859
- bulk_export: zod.z.boolean().optional().default(false),
860
- contains_phi: zod.z.boolean().optional().default(false),
861
- control_command: zod.z.string().nullable().optional(),
862
- authorized: zod.z.boolean().nullable().optional(),
863
- safety_critical: zod.z.boolean().optional().default(false)
864
- });
865
- var AuthSignalPayloadSchema = zod.z.object({
866
- result: zod.z.string().nullable().optional(),
867
- auth_method: zod.z.string().nullable().optional(),
868
- mfa_used: zod.z.boolean().nullable().optional(),
869
- mfa_bypassed: zod.z.boolean().optional().default(false),
870
- failed_attempts: zod.z.number().int().nonnegative().optional().default(0),
871
- ip: zod.z.string().nullable().optional(),
872
- country: zod.z.string().nullable().optional(),
873
- user_agent: zod.z.string().nullable().optional(),
874
- unusual_location: zod.z.boolean().optional().default(false),
875
- after_hours_login: zod.z.boolean().optional().default(false)
876
- });
877
- var ModelOutputSignalPayloadSchema = zod.z.object({
878
- missing_citations_rate: zod.z.number().min(0).max(1).nullable().optional(),
879
- citation_rate: zod.z.number().min(0).max(1).nullable().optional(),
880
- expected_citation_rate: zod.z.number().min(0).max(1).nullable().optional(),
881
- policy_violations: zod.z.number().int().nonnegative().optional().default(0),
882
- policy_violation_rate: zod.z.number().min(0).max(1).nullable().optional(),
883
- tool_call_inconsistency: zod.z.number().min(0).max(1).optional().default(0),
884
- tool_inconsistency_rate: zod.z.number().min(0).max(1).nullable().optional(),
885
- tool_miss_rate: zod.z.number().min(0).max(1).nullable().optional(),
886
- eval_window_n: zod.z.number().int().min(1).nullable().optional()
887
- });
888
- var SystemTelemetrySignalPayloadSchema = zod.z.object({
889
- metric_name: zod.z.string().nullable().optional(),
890
- value: zod.z.number().nullable().optional(),
891
- baseline: zod.z.number().nullable().optional(),
892
- window_seconds: zod.z.number().int().min(1).nullable().optional(),
893
- error_rate: zod.z.number().min(0).max(1).optional().default(0),
894
- baseline_error_rate: zod.z.number().min(0).max(1).nullable().optional(),
895
- unusual_auth_rate: zod.z.number().min(0).max(1).optional().default(0),
896
- firmware_hash_changed: zod.z.boolean().optional().default(false),
897
- expected_hash_match: zod.z.boolean().nullable().optional(),
898
- sensor_deviation_score: zod.z.number().min(0).max(1).nullable().optional()
899
- });
853
+ // src/v1/schemas/anomaly-flag.ts
900
854
  var AnomalyFlagSignalPayloadSchema = zod.z.object({
901
- severity: zod.z.number().min(0).max(1)
902
- });
903
- var BehaviorSignalPayloadSchema = zod.z.object({
904
- deviation_score: zod.z.number().min(0).max(1)
905
- });
906
- var NetworkSignalPayloadSchema = zod.z.object({
907
- ip: zod.z.string().nullable().optional(),
908
- asn: zod.z.string().nullable().optional(),
909
- reputation_score: zod.z.number().min(0).max(1).nullable().optional(),
910
- threat_score: zod.z.number().min(0).max(1).nullable().optional(),
911
- is_datacenter: zod.z.boolean().nullable().optional(),
912
- is_untrusted_segment: zod.z.boolean().optional().default(false),
913
- asn_reputation: zod.z.number().min(0).max(1).nullable().optional()
914
- });
915
- BaseEventSchema.extend({
916
- signal_payload: TransactionSignalPayloadSchema
855
+ severity: fraction01()
917
856
  });
918
857
  BaseEventSchema.extend({
919
858
  signal_payload: AnomalyFlagSignalPayloadSchema
920
859
  });
921
- BaseEventSchema.extend({
922
- signal_payload: AuthSignalPayloadSchema
923
- });
924
- BaseEventSchema.extend({
925
- signal_payload: BehaviorSignalPayloadSchema
926
- });
927
- BaseEventSchema.extend({
928
- signal_payload: NetworkSignalPayloadSchema
929
- });
930
- BaseEventSchema.extend({
931
- signal_payload: ModelOutputSignalPayloadSchema
932
- });
933
- BaseEventSchema.extend({
934
- signal_payload: SystemTelemetrySignalPayloadSchema
935
- });
936
860
 
937
- // src/v1/builders/event-builder.ts
861
+ // src/v1/builders/_common.ts
938
862
  var buildRawEventPayload = (event, signalPayload, signalType) => {
939
863
  const rawEventPayload = {
940
864
  timestamp: event.timestamp,
@@ -960,36 +884,296 @@ var buildRawEventRequest = (event, signalPayload, signalType) => {
960
884
  payload: rawEventPayload
961
885
  };
962
886
  };
963
- var createAuthEvent = (event) => {
964
- const signalPayload = AuthSignalPayloadSchema.parse(event.signal_payload);
965
- return buildRawEventRequest(event, signalPayload, "AUTH");
966
- };
967
- function createTransactionEvent(event) {
968
- const signalPayload = TransactionSignalPayloadSchema.parse(
969
- event.signal_payload
970
- );
971
- return buildRawEventRequest(event, signalPayload, "TRANSACTION");
972
- }
887
+
888
+ // src/v1/builders/anomaly-flag-builder.ts
973
889
  var createAnomalyFlagEvent = (event) => {
974
890
  const signalPayload = AnomalyFlagSignalPayloadSchema.parse(
975
891
  event.signal_payload
976
892
  );
977
893
  return buildRawEventRequest(event, signalPayload, "ANOMALY_FLAG");
978
894
  };
895
+
896
+ // src/shared/types/http-method.ts
897
+ var HTTP_METHODS = ["GET", "POST", "PUT", "PATCH", "DELETE"];
898
+
899
+ // src/v1/schemas/api-call.ts
900
+ var ApiCallSignalPayloadSchema = zod.z.object({
901
+ service_id: nonEmptyString(),
902
+ endpoint: nonEmptyString(),
903
+ method: zod.z.enum(HTTP_METHODS),
904
+ status_code: zod.z.number().int().min(100).max(599),
905
+ authorized: zod.z.boolean().nullable(),
906
+ authentication_present: zod.z.boolean().nullable().optional(),
907
+ rate_limited: zod.z.boolean().nullable().optional(),
908
+ external_side_effect: zod.z.boolean().nullable().optional(),
909
+ records_returned: zod.z.number().int().nonnegative().nullable().optional(),
910
+ records_modified: zod.z.number().int().nonnegative().nullable().optional(),
911
+ contains_sensitive_data: zod.z.boolean().nullable().optional(),
912
+ latency_ms: zod.z.number().nonnegative().nullable().optional(),
913
+ retry_count: zod.z.number().int().nonnegative().nullable().optional(),
914
+ api_key_id: zod.z.string().nullable().optional()
915
+ });
916
+ BaseEventSchema.extend({
917
+ signal_payload: ApiCallSignalPayloadSchema
918
+ });
919
+
920
+ // src/v1/builders/api-call-builder.ts
921
+ var createApiCallEvent = (event) => {
922
+ const signalPayload = ApiCallSignalPayloadSchema.parse(event.signal_payload);
923
+ return buildRawEventRequest(event, signalPayload, "API_CALL");
924
+ };
925
+ var AuthSignalPayloadSchema = zod.z.object({
926
+ result: zod.z.string().nullable().optional(),
927
+ auth_method: zod.z.string().nullable().optional(),
928
+ mfa_used: zod.z.boolean().nullable().optional(),
929
+ mfa_bypassed: zod.z.boolean().optional().default(false),
930
+ failed_attempts: zod.z.number().int().nonnegative().optional().default(0),
931
+ ip: zod.z.string().nullable().optional(),
932
+ country: zod.z.string().nullable().optional(),
933
+ user_agent: zod.z.string().nullable().optional(),
934
+ unusual_location: zod.z.boolean().optional().default(false),
935
+ after_hours_login: zod.z.boolean().optional().default(false)
936
+ });
937
+ BaseEventSchema.extend({
938
+ signal_payload: AuthSignalPayloadSchema
939
+ });
940
+
941
+ // src/v1/builders/auth-builder.ts
942
+ var createAuthEvent = (event) => {
943
+ const signalPayload = AuthSignalPayloadSchema.parse(event.signal_payload);
944
+ return buildRawEventRequest(event, signalPayload, "AUTH");
945
+ };
946
+ var BehaviorSignalPayloadSchema = zod.z.object({
947
+ deviation_score: fraction01()
948
+ });
949
+ BaseEventSchema.extend({
950
+ signal_payload: BehaviorSignalPayloadSchema
951
+ });
952
+
953
+ // src/v1/builders/behavior-builder.ts
979
954
  var createBehaviorEvent = (event) => {
980
955
  const signalPayload = BehaviorSignalPayloadSchema.parse(event.signal_payload);
981
956
  return buildRawEventRequest(event, signalPayload, "BEHAVIOR");
982
957
  };
983
- var createNetworkEvent = (event) => {
984
- const signalPayload = NetworkSignalPayloadSchema.parse(event.signal_payload);
985
- return buildRawEventRequest(event, signalPayload, "NETWORK_EVENT");
958
+
959
+ // src/shared/types/context-integrity.ts
960
+ var CONTEXT_SOURCES = [
961
+ "CONVERSATION_HISTORY",
962
+ "RETRIEVED_DOCUMENT",
963
+ "TOOL_OUTPUT",
964
+ "SYSTEM",
965
+ "DEVELOPER",
966
+ "USER"
967
+ ];
968
+
969
+ // src/v1/schemas/context-integrity.ts
970
+ var ContextIntegritySignalPayloadSchema = zod.z.object({
971
+ context_source: zod.z.enum(CONTEXT_SOURCES),
972
+ instruction_conflict_detected: zod.z.boolean(),
973
+ untrusted_instruction_detected: zod.z.boolean(),
974
+ context_priority_violation: zod.z.boolean(),
975
+ recursive_instruction_pattern: zod.z.boolean().optional().default(false),
976
+ context_drift_score: fraction01Nullable(),
977
+ system_prompt_conflict_score: fraction01Nullable(),
978
+ developer_prompt_conflict_score: fraction01Nullable(),
979
+ retrieved_instruction_count: zod.z.number().int().nonnegative().optional().default(0),
980
+ hidden_instruction_score: fraction01Nullable(),
981
+ source_document_id: zod.z.string().nullable().optional(),
982
+ untrusted_source_count: zod.z.number().int().nonnegative().optional().default(0),
983
+ source_trust_score: fraction01Nullable(),
984
+ lowest_source_trust_score: fraction01Nullable(),
985
+ recursive_pattern_score: fraction01Nullable(),
986
+ prompt_injection_score: fraction01Nullable(),
987
+ contains_instruction_override: zod.z.boolean().optional().default(false),
988
+ context_injection_score: fraction01Nullable()
989
+ });
990
+ BaseEventSchema.extend({
991
+ signal_payload: ContextIntegritySignalPayloadSchema
992
+ });
993
+
994
+ // src/v1/builders/context-integrity-builder.ts
995
+ var createContextIntegrityEvent = (event) => {
996
+ const signalPayload = ContextIntegritySignalPayloadSchema.parse(
997
+ event.signal_payload
998
+ );
999
+ return buildRawEventRequest(event, signalPayload, "CONTEXT_INTEGRITY");
986
1000
  };
1001
+ var ModelOutputSignalPayloadSchema = zod.z.object({
1002
+ missing_citations_rate: fraction01Nullable(),
1003
+ citation_rate: fraction01Nullable(),
1004
+ expected_citation_rate: fraction01Nullable(),
1005
+ policy_violations: zod.z.number().int().nonnegative().optional().default(0),
1006
+ policy_violation_rate: fraction01Nullable(),
1007
+ tool_call_inconsistency: fraction01().optional().default(0),
1008
+ tool_inconsistency_rate: fraction01Nullable(),
1009
+ tool_miss_rate: fraction01Nullable(),
1010
+ eval_window_n: zod.z.number().int().min(1).nullable().optional(),
1011
+ hallucination_risk_score: fraction01Nullable(),
1012
+ self_contradiction_score: fraction01Nullable(),
1013
+ grounding_score: fraction01Nullable(),
1014
+ contains_unsupported_claims: zod.z.boolean().optional().default(false)
1015
+ });
1016
+ BaseEventSchema.extend({
1017
+ signal_payload: ModelOutputSignalPayloadSchema
1018
+ });
1019
+
1020
+ // src/v1/builders/model-output-builder.ts
987
1021
  var createModelOutputEvent = (event) => {
988
1022
  const signalPayload = ModelOutputSignalPayloadSchema.parse(
989
1023
  event.signal_payload
990
1024
  );
991
1025
  return buildRawEventRequest(event, signalPayload, "MODEL_OUTPUT");
992
1026
  };
1027
+ var NetworkSignalPayloadSchema = zod.z.object({
1028
+ ip: zod.z.string().nullable().optional(),
1029
+ asn: zod.z.string().nullable().optional(),
1030
+ reputation_score: fraction01Nullable(),
1031
+ threat_score: fraction01Nullable(),
1032
+ is_datacenter: zod.z.boolean().nullable().optional(),
1033
+ is_untrusted_segment: zod.z.boolean().optional().default(false),
1034
+ asn_reputation: fraction01Nullable()
1035
+ });
1036
+ BaseEventSchema.extend({
1037
+ signal_payload: NetworkSignalPayloadSchema
1038
+ });
1039
+
1040
+ // src/v1/builders/network-builder.ts
1041
+ var createNetworkEvent = (event) => {
1042
+ const signalPayload = NetworkSignalPayloadSchema.parse(event.signal_payload);
1043
+ return buildRawEventRequest(event, signalPayload, "NETWORK_EVENT");
1044
+ };
1045
+
1046
+ // src/shared/types/policy-event.ts
1047
+ var POLICY_CATEGORIES = [
1048
+ "SAFETY",
1049
+ "PRIVACY",
1050
+ "SECURITY",
1051
+ "COMPLIANCE",
1052
+ "CONTENT",
1053
+ "OTHER"
1054
+ ];
1055
+ var POLICY_RESULTS = ["PASS", "WARN", "FAIL", "BLOCKED"];
1056
+
1057
+ // src/v1/schemas/policy-event.ts
1058
+ var PolicyEventSignalPayloadSchema = zod.z.object({
1059
+ policy_check_name: nonEmptyString(),
1060
+ policy_category: zod.z.enum(POLICY_CATEGORIES),
1061
+ policy_result: zod.z.enum(POLICY_RESULTS),
1062
+ severity: fraction01(),
1063
+ blocked: zod.z.boolean().optional().default(false),
1064
+ violation_count: zod.z.number().int().nonnegative().optional().default(0),
1065
+ policy_confidence: fraction01Nullable(),
1066
+ redaction_applied: zod.z.boolean().optional().default(false)
1067
+ });
1068
+ BaseEventSchema.extend({
1069
+ signal_payload: PolicyEventSignalPayloadSchema
1070
+ });
1071
+
1072
+ // src/v1/builders/policy-event-builder.ts
1073
+ var createPolicyEvent = (event) => {
1074
+ const signalPayload = PolicyEventSignalPayloadSchema.parse(
1075
+ event.signal_payload
1076
+ );
1077
+ return buildRawEventRequest(event, signalPayload, "POLICY_EVENT");
1078
+ };
1079
+ var promptHashSchema = zod.z.string().regex(/^[a-fA-F0-9]{64}$/).optional();
1080
+ var PromptInputSignalPayloadSchema = zod.z.object({
1081
+ prompt_length_chars: zod.z.number().int().nonnegative(),
1082
+ conversation_turn_index: zod.z.number().int().nonnegative(),
1083
+ contains_instruction_override: zod.z.boolean(),
1084
+ contains_tool_request: zod.z.boolean().optional().default(false),
1085
+ contains_secret_request: zod.z.boolean().optional().default(false),
1086
+ contains_policy_challenge: zod.z.boolean().optional().default(false),
1087
+ recursive_pattern_score: fraction01Nullable(),
1088
+ prompt_injection_score: fraction01Nullable(),
1089
+ sensitive_domain: zod.z.boolean().optional().default(false),
1090
+ complexity_score: fraction01Nullable(),
1091
+ prompt_hash: promptHashSchema
1092
+ });
1093
+ BaseEventSchema.extend({
1094
+ signal_payload: PromptInputSignalPayloadSchema
1095
+ });
1096
+
1097
+ // src/v1/builders/prompt-input-builder.ts
1098
+ var createPromptInputEvent = (event) => {
1099
+ const signalPayload = PromptInputSignalPayloadSchema.parse(
1100
+ event.signal_payload
1101
+ );
1102
+ return buildRawEventRequest(event, signalPayload, "PROMPT_INPUT");
1103
+ };
1104
+ var RagRetrievalSignalPayloadSchema = zod.z.object({
1105
+ retriever_id: nonEmptyString(),
1106
+ query_hash: zod.z.string().nullable().optional(),
1107
+ documents_retrieved: zod.z.number().int().nonnegative(),
1108
+ top_k: zod.z.number().int().min(1),
1109
+ average_relevance_score: fraction01(),
1110
+ source_trust_score: fraction01(),
1111
+ lowest_source_trust_score: fraction01Nullable(),
1112
+ untrusted_source_count: zod.z.number().int().nonnegative().optional().default(0),
1113
+ retrieved_context_tokens: zod.z.number().int().nonnegative().optional().default(0),
1114
+ context_injection_score: fraction01().optional().default(0),
1115
+ document_ids: zod.z.array(zod.z.string()).optional().default([])
1116
+ });
1117
+ BaseEventSchema.extend({
1118
+ signal_payload: RagRetrievalSignalPayloadSchema
1119
+ });
1120
+
1121
+ // src/v1/builders/rag-retrieval-builder.ts
1122
+ var createRagRetrievalEvent = (event) => {
1123
+ const signalPayload = RagRetrievalSignalPayloadSchema.parse(
1124
+ event.signal_payload
1125
+ );
1126
+ return buildRawEventRequest(event, signalPayload, "RAG_RETRIEVAL");
1127
+ };
1128
+
1129
+ // src/shared/types/session.ts
1130
+ var SESSION_STATUSES = [
1131
+ "STARTED",
1132
+ "ACTIVE",
1133
+ "ENDED",
1134
+ "TIMEOUT",
1135
+ "ABANDONED"
1136
+ ];
1137
+
1138
+ // src/v1/schemas/session.ts
1139
+ var SessionSignalPayloadSchema = zod.z.object({
1140
+ session_status: zod.z.enum(SESSION_STATUSES),
1141
+ session_age_seconds: zod.z.number().nonnegative().optional().default(0),
1142
+ turn_count: zod.z.number().int().nonnegative().optional().default(0),
1143
+ messages_last_minute: zod.z.number().nonnegative().optional().default(0),
1144
+ avg_seconds_between_turns: zod.z.number().nonnegative().nullable().optional(),
1145
+ restart_count_10m: zod.z.number().int().nonnegative().optional().default(0),
1146
+ session_timeout: zod.z.boolean().optional().default(false),
1147
+ abandoned: zod.z.boolean().optional().default(false),
1148
+ conversation_id: zod.z.string().nullable().optional(),
1149
+ user_id: zod.z.string().nullable().optional()
1150
+ });
1151
+ BaseEventSchema.extend({
1152
+ signal_payload: SessionSignalPayloadSchema
1153
+ });
1154
+
1155
+ // src/v1/builders/session-builder.ts
1156
+ var createSessionEvent = (event) => {
1157
+ const signalPayload = SessionSignalPayloadSchema.parse(event.signal_payload);
1158
+ return buildRawEventRequest(event, signalPayload, "SESSION");
1159
+ };
1160
+ var SystemTelemetrySignalPayloadSchema = zod.z.object({
1161
+ metric_name: zod.z.string().nullable().optional(),
1162
+ value: zod.z.number().nullable().optional(),
1163
+ baseline: zod.z.number().nullable().optional(),
1164
+ window_seconds: zod.z.number().int().min(1).nullable().optional(),
1165
+ error_rate: fraction01().optional().default(0),
1166
+ baseline_error_rate: fraction01Nullable(),
1167
+ unusual_auth_rate: fraction01().optional().default(0),
1168
+ firmware_hash_changed: zod.z.boolean().optional().default(false),
1169
+ expected_hash_match: zod.z.boolean().nullable().optional(),
1170
+ sensor_deviation_score: fraction01Nullable()
1171
+ });
1172
+ BaseEventSchema.extend({
1173
+ signal_payload: SystemTelemetrySignalPayloadSchema
1174
+ });
1175
+
1176
+ // src/v1/builders/system-telemetry-builder.ts
993
1177
  var createSystemTelemetryEvent = (event) => {
994
1178
  const signalPayload = SystemTelemetrySignalPayloadSchema.parse(
995
1179
  event.signal_payload
@@ -997,6 +1181,172 @@ var createSystemTelemetryEvent = (event) => {
997
1181
  return buildRawEventRequest(event, signalPayload, "SYSTEM_TELEMETRY");
998
1182
  };
999
1183
 
1184
+ // src/shared/types/tool-call.ts
1185
+ var TOOL_CATEGORIES = [
1186
+ "RETRIEVAL",
1187
+ "DATABASE",
1188
+ "PAYMENT",
1189
+ "MESSAGING",
1190
+ "CODE_EXECUTION",
1191
+ "FILE",
1192
+ "EXTERNAL_API",
1193
+ "OTHER"
1194
+ ];
1195
+
1196
+ // src/v1/schemas/tool-call.ts
1197
+ var ToolCallSignalPayloadSchema = zod.z.object({
1198
+ tool_name: nonEmptyString(),
1199
+ tool_category: zod.z.enum(TOOL_CATEGORIES),
1200
+ action: nonEmptyString(),
1201
+ authorized: zod.z.boolean().nullable(),
1202
+ safety_critical: zod.z.boolean(),
1203
+ external_side_effect: zod.z.boolean(),
1204
+ tool_call_success: zod.z.boolean().nullable().optional(),
1205
+ latency_ms: zod.z.number().nonnegative().nullable().optional(),
1206
+ error_code: zod.z.string().nullable().optional(),
1207
+ argument_risk_score: fraction01Nullable(),
1208
+ result_size_bytes: zod.z.number().int().nonnegative().nullable().optional(),
1209
+ records_accessed: zod.z.number().int().nonnegative().optional().default(0),
1210
+ contains_sensitive_data: zod.z.boolean().optional().default(false),
1211
+ action_category: zod.z.string().nullable().optional(),
1212
+ method: zod.z.string().nullable().optional(),
1213
+ sensitive_data_involved: zod.z.boolean().optional().default(false),
1214
+ contains_phi: zod.z.boolean().optional().default(false),
1215
+ sensitive_domain: zod.z.boolean().optional().default(false)
1216
+ });
1217
+ BaseEventSchema.extend({
1218
+ signal_payload: ToolCallSignalPayloadSchema
1219
+ });
1220
+
1221
+ // src/v1/builders/tool-call-builder.ts
1222
+ var createToolCallEvent = (event) => {
1223
+ const signalPayload = ToolCallSignalPayloadSchema.parse(event.signal_payload);
1224
+ return buildRawEventRequest(event, signalPayload, "TOOL_CALL");
1225
+ };
1226
+ var TransactionSignalPayloadSchema = zod.z.object({
1227
+ amount: zod.z.number().nonnegative().default(0),
1228
+ amount_minor: zod.z.number().int().nonnegative().nullable().optional(),
1229
+ amount_usd: zod.z.number().nonnegative().nullable().optional(),
1230
+ currency: zod.z.string().nullable().optional(),
1231
+ merchant_category: zod.z.string().nullable().optional(),
1232
+ merchant_id: zod.z.string().nullable().optional(),
1233
+ channel: zod.z.string().nullable().optional(),
1234
+ country: zod.z.string().nullable().optional(),
1235
+ velocity: zod.z.number().nonnegative().nullable().optional(),
1236
+ external_anomaly_score: zod.z.number().nullable().optional(),
1237
+ geo_distance: zod.z.number().nonnegative().nullable().optional(),
1238
+ geo_distance_km: zod.z.number().nonnegative().nullable().optional(),
1239
+ records_accessed: zod.z.number().int().nonnegative().nullable().optional(),
1240
+ baseline_records_accessed: zod.z.number().int().nonnegative().nullable().optional(),
1241
+ sensitivity_level: zod.z.string().nullable().optional(),
1242
+ export_count: zod.z.number().int().nonnegative().nullable().optional(),
1243
+ bulk_export: zod.z.boolean().optional().default(false),
1244
+ contains_phi: zod.z.boolean().optional().default(false),
1245
+ control_command: zod.z.string().nullable().optional(),
1246
+ authorized: zod.z.boolean().nullable().optional(),
1247
+ safety_critical: zod.z.boolean().optional().default(false)
1248
+ });
1249
+ BaseEventSchema.extend({
1250
+ signal_payload: TransactionSignalPayloadSchema
1251
+ });
1252
+
1253
+ // src/v1/builders/transaction-builder.ts
1254
+ var createTransactionEvent = (event) => {
1255
+ const signalPayload = TransactionSignalPayloadSchema.parse(
1256
+ event.signal_payload
1257
+ );
1258
+ return buildRawEventRequest(event, signalPayload, "TRANSACTION");
1259
+ };
1260
+
1261
+ // src/shared/types/user-feedback.ts
1262
+ var FEEDBACK_TYPES = [
1263
+ "THUMBS_UP",
1264
+ "THUMBS_DOWN",
1265
+ "REPORT",
1266
+ "CORRECTION",
1267
+ "RATING"
1268
+ ];
1269
+ var FEEDBACK_ISSUE_TYPES = [
1270
+ "HALLUCINATION",
1271
+ "UNSAFE",
1272
+ "IRRELEVANT",
1273
+ "PRIVACY",
1274
+ "OFFENSIVE",
1275
+ "OTHER"
1276
+ ];
1277
+
1278
+ // src/v1/schemas/user-feedback.ts
1279
+ var UserFeedbackSignalPayloadSchema = zod.z.object({
1280
+ feedback_type: zod.z.enum(FEEDBACK_TYPES),
1281
+ rating: zod.z.number().nullable().optional(),
1282
+ reported_issue: zod.z.boolean().optional().default(false),
1283
+ issue_type: zod.z.enum(FEEDBACK_ISSUE_TYPES).nullable().optional(),
1284
+ severity: fraction01Nullable(),
1285
+ response_id: zod.z.string().nullable().optional(),
1286
+ user_comment_hash: zod.z.string().nullable().optional()
1287
+ });
1288
+ BaseEventSchema.extend({
1289
+ signal_payload: UserFeedbackSignalPayloadSchema
1290
+ });
1291
+
1292
+ // src/v1/builders/user-feedback-builder.ts
1293
+ var createUserFeedbackEvent = (event) => {
1294
+ const signalPayload = UserFeedbackSignalPayloadSchema.parse(
1295
+ event.signal_payload
1296
+ );
1297
+ return buildRawEventRequest(event, signalPayload, "USER_FEEDBACK");
1298
+ };
1299
+
1300
+ // src/shared/types/workflow-action.ts
1301
+ var WORKFLOW_ACTION_CATEGORIES = [
1302
+ "FINANCIAL",
1303
+ "DATA_ACCESS",
1304
+ "COMMUNICATION",
1305
+ "ADMIN",
1306
+ "SECURITY",
1307
+ "CODE",
1308
+ "OTHER"
1309
+ ];
1310
+ var WORKFLOW_ACTION_STAGES = [
1311
+ "PROPOSED",
1312
+ "PRE_EXECUTION",
1313
+ "EXECUTED",
1314
+ "FAILED",
1315
+ "ROLLED_BACK"
1316
+ ];
1317
+ var WORKFLOW_ACTOR_TYPES = ["USER", "AI_AGENT", "SYSTEM"];
1318
+
1319
+ // src/v1/schemas/workflow-action.ts
1320
+ var WorkflowActionSignalPayloadSchema = zod.z.object({
1321
+ workflow_id: nonEmptyString(),
1322
+ workflow_type: nonEmptyString(),
1323
+ action_name: nonEmptyString(),
1324
+ action_category: zod.z.enum(WORKFLOW_ACTION_CATEGORIES),
1325
+ action_stage: zod.z.enum(WORKFLOW_ACTION_STAGES),
1326
+ actor_type: zod.z.enum(WORKFLOW_ACTOR_TYPES),
1327
+ requires_approval: zod.z.boolean().optional().default(false),
1328
+ approval_present: zod.z.boolean().optional().default(false),
1329
+ external_side_effect: zod.z.boolean().nullable().optional(),
1330
+ safety_critical: zod.z.boolean().nullable().optional(),
1331
+ amount_usd: zod.z.number().nonnegative().nullable().optional(),
1332
+ sensitive_data_involved: zod.z.boolean().optional().default(false),
1333
+ new_counterparty: zod.z.boolean().optional().default(false),
1334
+ is_new_vendor: zod.z.boolean().optional().default(false),
1335
+ is_new_recipient: zod.z.boolean().optional().default(false),
1336
+ is_new_endpoint: zod.z.boolean().optional().default(false)
1337
+ });
1338
+ BaseEventSchema.extend({
1339
+ signal_payload: WorkflowActionSignalPayloadSchema
1340
+ });
1341
+
1342
+ // src/v1/builders/workflow-action-builder.ts
1343
+ var createWorkflowActionEvent = (event) => {
1344
+ const signalPayload = WorkflowActionSignalPayloadSchema.parse(
1345
+ event.signal_payload
1346
+ );
1347
+ return buildRawEventRequest(event, signalPayload, "WORKFLOW_ACTION");
1348
+ };
1349
+
1000
1350
  exports.API_REGISTRY = API_REGISTRY;
1001
1351
  exports.QatiAPIError = QatiAPIError;
1002
1352
  exports.QatiAuthError = QatiAuthError;
@@ -1009,12 +1359,21 @@ exports.RawEventRequestSchema = RawEventRequestSchema;
1009
1359
  exports.Session = Session;
1010
1360
  exports.baseUrlFor = baseUrlFor;
1011
1361
  exports.createAnomalyFlagEvent = createAnomalyFlagEvent;
1362
+ exports.createApiCallEvent = createApiCallEvent;
1012
1363
  exports.createAuthEvent = createAuthEvent;
1013
1364
  exports.createBehaviorEvent = createBehaviorEvent;
1365
+ exports.createContextIntegrityEvent = createContextIntegrityEvent;
1014
1366
  exports.createModelOutputEvent = createModelOutputEvent;
1015
1367
  exports.createNetworkEvent = createNetworkEvent;
1368
+ exports.createPolicyEvent = createPolicyEvent;
1369
+ exports.createPromptInputEvent = createPromptInputEvent;
1370
+ exports.createRagRetrievalEvent = createRagRetrievalEvent;
1371
+ exports.createSessionEvent = createSessionEvent;
1016
1372
  exports.createSystemTelemetryEvent = createSystemTelemetryEvent;
1373
+ exports.createToolCallEvent = createToolCallEvent;
1017
1374
  exports.createTransactionEvent = createTransactionEvent;
1375
+ exports.createUserFeedbackEvent = createUserFeedbackEvent;
1376
+ exports.createWorkflowActionEvent = createWorkflowActionEvent;
1018
1377
  exports.parseQatiConfig = parseQatiConfig;
1019
1378
  exports.resolveQatiConfig = resolveQatiConfig;
1020
1379
  //# sourceMappingURL=index.cjs.map