@trustloopguard/sdk 0.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.
Files changed (242) hide show
  1. package/dist/client.d.ts +98 -0
  2. package/dist/client.js +198 -0
  3. package/dist/errors.d.ts +46 -0
  4. package/dist/errors.js +187 -0
  5. package/dist/generated/AgentAuthority.d.ts +4 -0
  6. package/dist/generated/AgentAuthority.js +2 -0
  7. package/dist/generated/AgentListResponse.d.ts +4 -0
  8. package/dist/generated/AgentListResponse.js +1 -0
  9. package/dist/generated/AgentProfile.d.ts +29 -0
  10. package/dist/generated/AgentProfile.js +1 -0
  11. package/dist/generated/AgentScope.d.ts +4 -0
  12. package/dist/generated/AgentScope.js +2 -0
  13. package/dist/generated/AgentTone.d.ts +4 -0
  14. package/dist/generated/AgentTone.js +2 -0
  15. package/dist/generated/ApiError.d.ts +25 -0
  16. package/dist/generated/ApiError.js +1 -0
  17. package/dist/generated/ApiErrorCode.d.ts +6 -0
  18. package/dist/generated/ApiErrorCode.js +2 -0
  19. package/dist/generated/ApiKeyBatchRevokeRequest.d.ts +3 -0
  20. package/dist/generated/ApiKeyBatchRevokeRequest.js +2 -0
  21. package/dist/generated/ApiKeyBatchRevokeResponse.d.ts +4 -0
  22. package/dist/generated/ApiKeyBatchRevokeResponse.js +1 -0
  23. package/dist/generated/ApiKeyListResponse.d.ts +4 -0
  24. package/dist/generated/ApiKeyListResponse.js +1 -0
  25. package/dist/generated/AuthRequest.d.ts +15 -0
  26. package/dist/generated/AuthRequest.js +2 -0
  27. package/dist/generated/AuthResponse.d.ts +16 -0
  28. package/dist/generated/AuthResponse.js +2 -0
  29. package/dist/generated/ChangePasswordRequest.d.ts +15 -0
  30. package/dist/generated/ChangePasswordRequest.js +2 -0
  31. package/dist/generated/Channel.d.ts +8 -0
  32. package/dist/generated/Channel.js +2 -0
  33. package/dist/generated/CheckRequest.d.ts +21 -0
  34. package/dist/generated/CheckRequest.js +1 -0
  35. package/dist/generated/CreateApiKeyRequest.d.ts +3 -0
  36. package/dist/generated/CreateApiKeyRequest.js +2 -0
  37. package/dist/generated/CreateApiKeyResponse.d.ts +8 -0
  38. package/dist/generated/CreateApiKeyResponse.js +1 -0
  39. package/dist/generated/CreateInviteRequest.d.ts +8 -0
  40. package/dist/generated/CreateInviteRequest.js +1 -0
  41. package/dist/generated/CreateInviteResponse.d.ts +18 -0
  42. package/dist/generated/CreateInviteResponse.js +1 -0
  43. package/dist/generated/CreateKnowledgeSourceRequest.d.ts +9 -0
  44. package/dist/generated/CreateKnowledgeSourceRequest.js +1 -0
  45. package/dist/generated/CreateRunEventRequest.d.ts +13 -0
  46. package/dist/generated/CreateRunEventRequest.js +1 -0
  47. package/dist/generated/CreateRunRequest.d.ts +9 -0
  48. package/dist/generated/CreateRunRequest.js +1 -0
  49. package/dist/generated/CreateWorkspaceRequest.d.ts +7 -0
  50. package/dist/generated/CreateWorkspaceRequest.js +2 -0
  51. package/dist/generated/DashboardApiKey.d.ts +15 -0
  52. package/dist/generated/DashboardApiKey.js +2 -0
  53. package/dist/generated/DashboardKnowledgeSourceKind.d.ts +1 -0
  54. package/dist/generated/DashboardKnowledgeSourceKind.js +2 -0
  55. package/dist/generated/Decision.d.ts +17 -0
  56. package/dist/generated/Decision.js +1 -0
  57. package/dist/generated/GuardrailGenerateResponse.d.ts +11 -0
  58. package/dist/generated/GuardrailGenerateResponse.js +1 -0
  59. package/dist/generated/GuardrailListResponse.d.ts +7 -0
  60. package/dist/generated/GuardrailListResponse.js +1 -0
  61. package/dist/generated/InviteListResponse.d.ts +4 -0
  62. package/dist/generated/InviteListResponse.js +1 -0
  63. package/dist/generated/InviteStatus.d.ts +4 -0
  64. package/dist/generated/InviteStatus.js +2 -0
  65. package/dist/generated/KnowledgeFileInput.d.ts +5 -0
  66. package/dist/generated/KnowledgeFileInput.js +2 -0
  67. package/dist/generated/KnowledgeFileMetadata.d.ts +6 -0
  68. package/dist/generated/KnowledgeFileMetadata.js +2 -0
  69. package/dist/generated/KnowledgeSource.d.ts +7 -0
  70. package/dist/generated/KnowledgeSource.js +1 -0
  71. package/dist/generated/KnowledgeSourceDocument.d.ts +22 -0
  72. package/dist/generated/KnowledgeSourceDocument.js +1 -0
  73. package/dist/generated/KnowledgeSourceFileResponse.d.ts +6 -0
  74. package/dist/generated/KnowledgeSourceFileResponse.js +2 -0
  75. package/dist/generated/KnowledgeSourceKind.d.ts +1 -0
  76. package/dist/generated/KnowledgeSourceKind.js +2 -0
  77. package/dist/generated/KnowledgeSourceListResponse.d.ts +4 -0
  78. package/dist/generated/KnowledgeSourceListResponse.js +1 -0
  79. package/dist/generated/KnowledgeSourceStatus.d.ts +1 -0
  80. package/dist/generated/KnowledgeSourceStatus.js +2 -0
  81. package/dist/generated/MemberListResponse.d.ts +4 -0
  82. package/dist/generated/MemberListResponse.js +1 -0
  83. package/dist/generated/MyWorkspace.d.ts +12 -0
  84. package/dist/generated/MyWorkspace.js +1 -0
  85. package/dist/generated/MyWorkspacesResponse.d.ts +4 -0
  86. package/dist/generated/MyWorkspacesResponse.js +1 -0
  87. package/dist/generated/PolicyAction.d.ts +4 -0
  88. package/dist/generated/PolicyAction.js +2 -0
  89. package/dist/generated/PolicyBatchSetEnabledRequest.d.ts +4 -0
  90. package/dist/generated/PolicyBatchSetEnabledRequest.js +2 -0
  91. package/dist/generated/PolicyBatchSetEnabledResponse.d.ts +4 -0
  92. package/dist/generated/PolicyBatchSetEnabledResponse.js +1 -0
  93. package/dist/generated/PolicyDocument.d.ts +8 -0
  94. package/dist/generated/PolicyDocument.js +1 -0
  95. package/dist/generated/PolicyDraft.d.ts +17 -0
  96. package/dist/generated/PolicyDraft.js +1 -0
  97. package/dist/generated/PolicyDraftRequest.d.ts +6 -0
  98. package/dist/generated/PolicyDraftRequest.js +2 -0
  99. package/dist/generated/PolicyDraftResponse.d.ts +4 -0
  100. package/dist/generated/PolicyDraftResponse.js +1 -0
  101. package/dist/generated/PolicyListResponse.d.ts +4 -0
  102. package/dist/generated/PolicyListResponse.js +1 -0
  103. package/dist/generated/PolicyMatchType.d.ts +5 -0
  104. package/dist/generated/PolicyMatchType.js +2 -0
  105. package/dist/generated/PolicySetEnabledRequest.d.ts +3 -0
  106. package/dist/generated/PolicySetEnabledRequest.js +2 -0
  107. package/dist/generated/PolicySummary.d.ts +9 -0
  108. package/dist/generated/PolicySummary.js +1 -0
  109. package/dist/generated/PolicyValidateResponse.d.ts +6 -0
  110. package/dist/generated/PolicyValidateResponse.js +1 -0
  111. package/dist/generated/PolicyValidationIssue.d.ts +4 -0
  112. package/dist/generated/PolicyValidationIssue.js +2 -0
  113. package/dist/generated/RunDetail.d.ts +8 -0
  114. package/dist/generated/RunDetail.js +1 -0
  115. package/dist/generated/RunEventKind.d.ts +1 -0
  116. package/dist/generated/RunEventKind.js +2 -0
  117. package/dist/generated/RunEventListResponse.d.ts +4 -0
  118. package/dist/generated/RunEventListResponse.js +1 -0
  119. package/dist/generated/RunEventSummary.d.ts +20 -0
  120. package/dist/generated/RunEventSummary.js +1 -0
  121. package/dist/generated/RunKind.d.ts +1 -0
  122. package/dist/generated/RunKind.js +2 -0
  123. package/dist/generated/RunListResponse.d.ts +4 -0
  124. package/dist/generated/RunListResponse.js +1 -0
  125. package/dist/generated/RunStatus.d.ts +1 -0
  126. package/dist/generated/RunStatus.js +2 -0
  127. package/dist/generated/RunSummary.d.ts +32 -0
  128. package/dist/generated/RunSummary.js +1 -0
  129. package/dist/generated/Severity.d.ts +1 -0
  130. package/dist/generated/Severity.js +2 -0
  131. package/dist/generated/Tier.d.ts +4 -0
  132. package/dist/generated/Tier.js +2 -0
  133. package/dist/generated/TierResult.d.ts +12 -0
  134. package/dist/generated/TierResult.js +1 -0
  135. package/dist/generated/TierStatus.d.ts +4 -0
  136. package/dist/generated/TierStatus.js +2 -0
  137. package/dist/generated/TraceListResponse.d.ts +4 -0
  138. package/dist/generated/TraceListResponse.js +1 -0
  139. package/dist/generated/TraceSummary.d.ts +13 -0
  140. package/dist/generated/TraceSummary.js +2 -0
  141. package/dist/generated/TriggeredPolicy.d.ts +6 -0
  142. package/dist/generated/TriggeredPolicy.js +1 -0
  143. package/dist/generated/UpdateRunRequest.d.ts +10 -0
  144. package/dist/generated/UpdateRunRequest.js +1 -0
  145. package/dist/generated/Verdict.d.ts +4 -0
  146. package/dist/generated/Verdict.js +2 -0
  147. package/dist/generated/WorkspaceInvite.d.ts +20 -0
  148. package/dist/generated/WorkspaceInvite.js +1 -0
  149. package/dist/generated/WorkspaceMember.d.ts +13 -0
  150. package/dist/generated/WorkspaceMember.js +1 -0
  151. package/dist/generated/WorkspaceRole.d.ts +5 -0
  152. package/dist/generated/WorkspaceRole.js +2 -0
  153. package/dist/generated/WorkspaceSettings.d.ts +11 -0
  154. package/dist/generated/WorkspaceSettings.js +2 -0
  155. package/dist/guard.d.ts +193 -0
  156. package/dist/guard.js +211 -0
  157. package/dist/index.d.ts +64 -0
  158. package/dist/index.js +64 -0
  159. package/dist/retry.d.ts +18 -0
  160. package/dist/retry.js +48 -0
  161. package/package.json +39 -0
  162. package/src/client.ts +453 -0
  163. package/src/errors.ts +202 -0
  164. package/src/generated/AgentAuthority.ts +3 -0
  165. package/src/generated/AgentListResponse.ts +4 -0
  166. package/src/generated/AgentProfile.ts +23 -0
  167. package/src/generated/AgentScope.ts +3 -0
  168. package/src/generated/AgentTone.ts +3 -0
  169. package/src/generated/ApiError.ts +24 -0
  170. package/src/generated/ApiErrorCode.ts +8 -0
  171. package/src/generated/ApiKeyBatchRevokeRequest.ts +3 -0
  172. package/src/generated/ApiKeyBatchRevokeResponse.ts +4 -0
  173. package/src/generated/ApiKeyListResponse.ts +4 -0
  174. package/src/generated/AuthRequest.ts +16 -0
  175. package/src/generated/AuthResponse.ts +15 -0
  176. package/src/generated/ChangePasswordRequest.ts +15 -0
  177. package/src/generated/Channel.ts +10 -0
  178. package/src/generated/CheckRequest.ts +11 -0
  179. package/src/generated/CreateApiKeyRequest.ts +3 -0
  180. package/src/generated/CreateApiKeyResponse.ts +8 -0
  181. package/src/generated/CreateInviteRequest.ts +7 -0
  182. package/src/generated/CreateInviteResponse.ts +14 -0
  183. package/src/generated/CreateKnowledgeSourceRequest.ts +5 -0
  184. package/src/generated/CreateRunEventRequest.ts +8 -0
  185. package/src/generated/CreateRunRequest.ts +5 -0
  186. package/src/generated/CreateWorkspaceRequest.ts +7 -0
  187. package/src/generated/DashboardApiKey.ts +11 -0
  188. package/src/generated/DashboardKnowledgeSourceKind.ts +3 -0
  189. package/src/generated/Decision.ts +12 -0
  190. package/src/generated/GuardrailGenerateResponse.ts +11 -0
  191. package/src/generated/GuardrailListResponse.ts +7 -0
  192. package/src/generated/InviteListResponse.ts +4 -0
  193. package/src/generated/InviteStatus.ts +6 -0
  194. package/src/generated/KnowledgeFileInput.ts +3 -0
  195. package/src/generated/KnowledgeFileMetadata.ts +3 -0
  196. package/src/generated/KnowledgeSource.ts +4 -0
  197. package/src/generated/KnowledgeSourceDocument.ts +17 -0
  198. package/src/generated/KnowledgeSourceFileResponse.ts +3 -0
  199. package/src/generated/KnowledgeSourceKind.ts +3 -0
  200. package/src/generated/KnowledgeSourceListResponse.ts +4 -0
  201. package/src/generated/KnowledgeSourceStatus.ts +3 -0
  202. package/src/generated/MemberListResponse.ts +4 -0
  203. package/src/generated/MyWorkspace.ts +8 -0
  204. package/src/generated/MyWorkspacesResponse.ts +4 -0
  205. package/src/generated/PolicyAction.ts +6 -0
  206. package/src/generated/PolicyBatchSetEnabledRequest.ts +3 -0
  207. package/src/generated/PolicyBatchSetEnabledResponse.ts +4 -0
  208. package/src/generated/PolicyDocument.ts +4 -0
  209. package/src/generated/PolicyDraft.ts +11 -0
  210. package/src/generated/PolicyDraftRequest.ts +6 -0
  211. package/src/generated/PolicyDraftResponse.ts +4 -0
  212. package/src/generated/PolicyListResponse.ts +4 -0
  213. package/src/generated/PolicyMatchType.ts +7 -0
  214. package/src/generated/PolicySetEnabledRequest.ts +3 -0
  215. package/src/generated/PolicySummary.ts +4 -0
  216. package/src/generated/PolicyValidateResponse.ts +4 -0
  217. package/src/generated/PolicyValidationIssue.ts +3 -0
  218. package/src/generated/README.md +1 -0
  219. package/src/generated/RunDetail.ts +6 -0
  220. package/src/generated/RunEventKind.ts +3 -0
  221. package/src/generated/RunEventListResponse.ts +4 -0
  222. package/src/generated/RunEventSummary.ts +12 -0
  223. package/src/generated/RunKind.ts +3 -0
  224. package/src/generated/RunListResponse.ts +4 -0
  225. package/src/generated/RunStatus.ts +3 -0
  226. package/src/generated/RunSummary.ts +21 -0
  227. package/src/generated/Severity.ts +3 -0
  228. package/src/generated/Tier.ts +6 -0
  229. package/src/generated/TierResult.ts +9 -0
  230. package/src/generated/TierStatus.ts +6 -0
  231. package/src/generated/TraceListResponse.ts +4 -0
  232. package/src/generated/TraceSummary.ts +7 -0
  233. package/src/generated/TriggeredPolicy.ts +4 -0
  234. package/src/generated/UpdateRunRequest.ts +9 -0
  235. package/src/generated/Verdict.ts +6 -0
  236. package/src/generated/WorkspaceInvite.ts +14 -0
  237. package/src/generated/WorkspaceMember.ts +11 -0
  238. package/src/generated/WorkspaceRole.ts +7 -0
  239. package/src/generated/WorkspaceSettings.ts +7 -0
  240. package/src/guard.ts +492 -0
  241. package/src/index.ts +97 -0
  242. package/src/retry.ts +67 -0
@@ -0,0 +1 @@
1
+ export type RunEventKind = "user_turn" | "assistant_turn" | "tool_call" | "workflow_step" | "interruption" | "retry" | "system_event" | "other";
@@ -0,0 +1,2 @@
1
+ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
2
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { RunEventSummary } from "./RunEventSummary";
2
+ export type RunEventListResponse = {
3
+ events: Array<RunEventSummary>;
4
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,20 @@
1
+ import type { RunEventKind } from "./RunEventKind";
2
+ export type RunEventSummary = {
3
+ id: string;
4
+ workspace_id: string;
5
+ run_id: string;
6
+ sequence: number;
7
+ kind: RunEventKind;
8
+ label: string | null;
9
+ input_summary: string | null;
10
+ output_summary: string | null;
11
+ metadata: Record<string, unknown>;
12
+ /**
13
+ * RFC 3339 timestamp.
14
+ */
15
+ occurred_at: string;
16
+ /**
17
+ * RFC 3339 timestamp.
18
+ */
19
+ created_at: string;
20
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export type RunKind = "chat_session" | "live_call" | "workflow" | "job" | "other";
@@ -0,0 +1,2 @@
1
+ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
2
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { RunSummary } from "./RunSummary";
2
+ export type RunListResponse = {
3
+ runs: Array<RunSummary>;
4
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export type RunStatus = "warming" | "running" | "completed" | "failed" | "canceled";
@@ -0,0 +1,2 @@
1
+ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
2
+ export {};
@@ -0,0 +1,32 @@
1
+ import type { RunKind } from "./RunKind";
2
+ import type { RunStatus } from "./RunStatus";
3
+ export type RunSummary = {
4
+ id: string;
5
+ workspace_id: string;
6
+ agent_id: string;
7
+ kind: RunKind;
8
+ status: RunStatus;
9
+ external_id: string | null;
10
+ metadata: Record<string, unknown>;
11
+ /**
12
+ * RFC 3339 timestamp.
13
+ */
14
+ started_at: string;
15
+ /**
16
+ * RFC 3339 timestamp.
17
+ */
18
+ ended_at: string | null;
19
+ /**
20
+ * RFC 3339 timestamp.
21
+ */
22
+ created_at: string;
23
+ /**
24
+ * RFC 3339 timestamp.
25
+ */
26
+ updated_at: string;
27
+ trace_count: number;
28
+ blocked_count: number;
29
+ rewritten_count: number;
30
+ escalated_count: number;
31
+ p95_latency_ms: number | null;
32
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export type Severity = "low" | "medium" | "high" | "critical";
@@ -0,0 +1,2 @@
1
+ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
2
+ export {};
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Which pipeline tier produced a result.
3
+ */
4
+ export type Tier = "deterministic" | "fuzzy" | "llm";
@@ -0,0 +1,2 @@
1
+ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
2
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { Tier } from "./Tier";
2
+ import type { TierStatus } from "./TierStatus";
3
+ import type { TriggeredPolicy } from "./TriggeredPolicy";
4
+ /**
5
+ * One row of evidence per tier in the final `Decision`.
6
+ */
7
+ export type TierResult = {
8
+ tier: Tier;
9
+ status: TierStatus;
10
+ reasons: Array<TriggeredPolicy>;
11
+ elapsed_ms: bigint;
12
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ /**
2
+ * How a tier finished.
3
+ */
4
+ export type TierStatus = "completed" | "cancelled" | "timed_out" | "skipped";
@@ -0,0 +1,2 @@
1
+ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
2
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { TraceSummary } from "./TraceSummary";
2
+ export type TraceListResponse = {
3
+ traces: Array<TraceSummary>;
4
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ export type TraceSummary = {
2
+ trace_id: string;
3
+ run_id: string | null;
4
+ run_event_id: string | null;
5
+ domain: string;
6
+ decision: string;
7
+ elapsed_ms: number;
8
+ payload: Record<string, unknown>;
9
+ /**
10
+ * RFC 3339 timestamp.
11
+ */
12
+ created_at: string;
13
+ };
@@ -0,0 +1,2 @@
1
+ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
2
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { Severity } from "./Severity";
2
+ export type TriggeredPolicy = {
3
+ id: string;
4
+ severity: Severity;
5
+ reason: string;
6
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ import type { RunStatus } from "./RunStatus";
2
+ export type UpdateRunRequest = {
3
+ status?: RunStatus;
4
+ metadata?: Record<string, unknown> | null;
5
+ /**
6
+ * RFC 3339 timestamp. Defaults to now when completing/failing/canceling
7
+ * a run without an explicit timestamp.
8
+ */
9
+ ended_at?: string;
10
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ /**
2
+ * What TrustLoopGuard tells the caller to do with the proposed output.
3
+ */
4
+ export type Verdict = "allow" | "block" | "rewrite" | "escalate";
@@ -0,0 +1,2 @@
1
+ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
2
+ export {};
@@ -0,0 +1,20 @@
1
+ import type { InviteStatus } from "./InviteStatus";
2
+ import type { WorkspaceRole } from "./WorkspaceRole";
3
+ /**
4
+ * A pending or historical invite. The `id` doubles as the bearer
5
+ * token: it's an opaque URL-safe random string, single-use, and
6
+ * invalidated on accept/revoke/expire.
7
+ */
8
+ export type WorkspaceInvite = {
9
+ id: string;
10
+ workspace_id: string;
11
+ email: string;
12
+ role: WorkspaceRole;
13
+ status: InviteStatus;
14
+ invited_by_user_id: string | null;
15
+ /**
16
+ * RFC3339 timestamps.
17
+ */
18
+ created_at: string;
19
+ expires_at: string;
20
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { WorkspaceRole } from "./WorkspaceRole";
2
+ /**
3
+ * A user who currently has access to a workspace.
4
+ */
5
+ export type WorkspaceMember = {
6
+ user_id: string;
7
+ username: string;
8
+ role: WorkspaceRole;
9
+ /**
10
+ * RFC3339 timestamp.
11
+ */
12
+ joined_at: string;
13
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Permission level a user holds inside a workspace. Mirrors the
3
+ * `workspace_role` Postgres enum (migration 6).
4
+ */
5
+ export type WorkspaceRole = "owner" | "admin" | "editor" | "viewer";
@@ -0,0 +1,2 @@
1
+ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
2
+ export {};
@@ -0,0 +1,11 @@
1
+ export type WorkspaceSettings = {
2
+ default_action: string;
3
+ escalation_webhook_url: string | null;
4
+ telemetry_enabled: boolean;
5
+ retention_days: string;
6
+ config: Record<string, unknown>;
7
+ /**
8
+ * RFC 3339 timestamp.
9
+ */
10
+ updated_at: string | null;
11
+ };
@@ -0,0 +1,2 @@
1
+ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
2
+ export {};
@@ -0,0 +1,193 @@
1
+ import { Client, type ClientOptions } from './client';
2
+ import type { Channel } from './generated/Channel';
3
+ import type { CreateRunEventRequest } from './generated/CreateRunEventRequest';
4
+ import type { Decision } from './generated/Decision';
5
+ import { SdkError } from './errors';
6
+ type DecisionHandler = string | ((decision: Decision) => string | Promise<string>);
7
+ type ErrorHandler = string | ((err: SdkError, draft: string) => string | Promise<string>);
8
+ export declare const GuardMode: {
9
+ readonly Strict: "strict";
10
+ readonly Rewrite: "rewrite";
11
+ readonly RewriteOrRegenerate: "rewrite_or_regenerate";
12
+ };
13
+ export type GuardMode = (typeof GuardMode)[keyof typeof GuardMode];
14
+ export interface RegenerateFeedback {
15
+ /** What the user said. */
16
+ input: string;
17
+ /** The draft that failed the guard check. */
18
+ draft: string;
19
+ /** Full TrustLoopGuard decision for the failed draft. */
20
+ decision: Decision;
21
+ /** Human-readable reason returned by TrustLoopGuard. */
22
+ reason: string;
23
+ /** Safe output returned by TrustLoopGuard, when available. */
24
+ safeOutput: string | null;
25
+ /** 1-based regeneration attempt number. */
26
+ attempt: number;
27
+ /** Maximum allowed regeneration attempts. */
28
+ maxAttempts: number;
29
+ }
30
+ type RegenerateHandler = (feedback: RegenerateFeedback) => string | Promise<string>;
31
+ export interface GuardCallbacks {
32
+ /**
33
+ * Called when the verdict is `allow`. Default: return the original
34
+ * draft unchanged. Override only if you want to log the allow path
35
+ * or strip a draft suffix etc.
36
+ */
37
+ onAllow?: (draft: string, decision: Decision) => string | Promise<string>;
38
+ /**
39
+ * Called when the verdict is `rewrite`. Default: return
40
+ * `decision.safe_output ?? draft`. Override to post-process or
41
+ * substitute your own canned rewrite.
42
+ */
43
+ onRevise?: (revised: string | null, draft: string, decision: Decision) => string | Promise<string>;
44
+ /**
45
+ * Called when the verdict is `block`. **Required** — there is no
46
+ * sensible automatic answer. Return the canned safe message your
47
+ * brand wants the customer to see (or throw to abort the send).
48
+ */
49
+ onBlock: (decision: Decision) => string | Promise<string>;
50
+ /**
51
+ * Called when the verdict is `escalate`. **Required** — typically
52
+ * pushes onto a human-review queue and returns a holding message.
53
+ */
54
+ onEscalate: (decision: Decision) => string | Promise<string>;
55
+ /**
56
+ * Called when the SDK transport itself fails (network down, server
57
+ * 5xx, decode error, retries exhausted). Default: **fail-open** —
58
+ * return the original draft. Pass an explicit handler if you'd
59
+ * rather fail-closed (e.g. `() => cannedSafeReply`).
60
+ */
61
+ onError?: (err: SdkError, draft: string) => string | Promise<string>;
62
+ }
63
+ export interface GuardOptions extends GuardCallbacks {
64
+ client: Client;
65
+ /** What the user said. */
66
+ input: string;
67
+ /** What the agent wants to send. The string returned by `guard` is
68
+ * what the caller should actually deliver. */
69
+ draft: string;
70
+ /** Conversation channel — drives latency budget on the server. */
71
+ channel?: Channel;
72
+ /** Required: the registered agent profile id. */
73
+ agentId: string;
74
+ /**
75
+ * Optional structured context — typically `{ docs: [...] }` for
76
+ * grounding the LLM judges. Anything JSON-serialisable.
77
+ */
78
+ context?: Record<string, unknown>;
79
+ /**
80
+ * Optional override for `domain` (defaults to the server's
81
+ * `customer_support` dispatcher).
82
+ */
83
+ domain?: string;
84
+ /** Optional caller-supplied trace id — overrides the server-assigned one. */
85
+ traceId?: string;
86
+ /** Optional run id used to group this check in the dashboard. */
87
+ runId?: string;
88
+ /** Optional existing run event id to attach to this check. Requires runId. */
89
+ runEventId?: string;
90
+ /** Optional inline run event to create and attach to this check. Requires runId. */
91
+ runEvent?: CreateRunEventRequest;
92
+ /**
93
+ * Logger hook. If provided, gets one structured event per `guard`
94
+ * invocation: { trace_id, verdict, branch, latency_ms }. Useful for
95
+ * surfacing which branch fired without forcing a specific logger
96
+ * dependency.
97
+ */
98
+ log?: (event: GuardLogEvent) => void;
99
+ /** Optional cancellation. Forwarded to the underlying check call. */
100
+ signal?: AbortSignal;
101
+ }
102
+ export interface GuardFactoryOptions {
103
+ /** Required: the registered agent profile id. */
104
+ agentId: string;
105
+ /** Existing client. Pass this when you want to own transport lifecycle/config. */
106
+ client?: Client;
107
+ /** TrustLoopGuard server URL. Defaults to env or localhost. */
108
+ baseUrl?: string;
109
+ /** Bearer token. Defaults to env when available. */
110
+ apiKey?: string;
111
+ /** Retry policy forwarded when the factory owns the Client. */
112
+ retry?: ClientOptions['retry'];
113
+ /** Fetch implementation forwarded when the factory owns the Client. */
114
+ fetchImpl?: ClientOptions['fetchImpl'];
115
+ /** Retry logger forwarded when the factory owns the Client. */
116
+ onRetry?: ClientOptions['onRetry'];
117
+ /** Conversation channel — drives latency budget on the server. */
118
+ channel?: Channel;
119
+ /** Optional override for `domain`. */
120
+ domain?: string;
121
+ /** Structured context merged into every call. */
122
+ context?: Record<string, unknown>;
123
+ /** Default block branch. Omit for the SDK safe message. */
124
+ onBlock?: DecisionHandler;
125
+ /** Default escalation branch. Omit for the SDK safe message. */
126
+ onEscalate?: DecisionHandler;
127
+ /** Transport failure branch. Omit for fail-open. */
128
+ onError?: ErrorHandler;
129
+ /**
130
+ * Output mode:
131
+ * - strict: treat rewrite verdicts as blocked output
132
+ * - rewrite: use safeOutput, block when no safeOutput exists
133
+ * - rewrite_or_regenerate: use safeOutput, otherwise ask the model to try again
134
+ */
135
+ mode?: GuardMode;
136
+ /** Called by rewrite_or_regenerate when TrustLoopGuard has no safeOutput. */
137
+ regenerate?: RegenerateHandler;
138
+ /** Hard cap for model regeneration loops. Defaults to 1. */
139
+ maxRegenerations?: number;
140
+ /** Return the default block message on transport errors when no onError is set. */
141
+ failClosed?: boolean;
142
+ /** Logger hook for every guard invocation. */
143
+ log?: (event: GuardLogEvent) => void;
144
+ }
145
+ export interface GuardCallOptions {
146
+ /** What the user said. */
147
+ input: string;
148
+ /** What the agent wants to send. */
149
+ draft: string;
150
+ channel?: Channel;
151
+ domain?: string;
152
+ context?: Record<string, unknown>;
153
+ traceId?: string;
154
+ runId?: string;
155
+ runEventId?: string;
156
+ runEvent?: CreateRunEventRequest;
157
+ onBlock?: DecisionHandler;
158
+ onEscalate?: DecisionHandler;
159
+ onError?: ErrorHandler;
160
+ mode?: GuardMode;
161
+ regenerate?: RegenerateHandler;
162
+ maxRegenerations?: number;
163
+ log?: (event: GuardLogEvent) => void;
164
+ signal?: AbortSignal;
165
+ }
166
+ export interface OutputGuard {
167
+ (opts: GuardCallOptions): Promise<string>;
168
+ }
169
+ export interface GuardLogEvent {
170
+ trace_id: string;
171
+ verdict: Decision['verdict'];
172
+ /** Which callback we ended up calling. */
173
+ branch: 'allow' | 'revise' | 'block' | 'escalate' | 'error';
174
+ latency_ms: number;
175
+ }
176
+ /**
177
+ * Run the SDK's check + dispatch the appropriate callback. Returns the
178
+ * string the caller should actually send to the customer.
179
+ *
180
+ * Verdicts map 1:1 to callbacks:
181
+ *
182
+ * allow → onAllow (default: return draft as-is)
183
+ * rewrite → onRevise (default: return decision.safe_output ?? draft)
184
+ * block → onBlock (required)
185
+ * escalate → onEscalate (required)
186
+ *
187
+ * Transport / decode / retry-exhausted errors go to `onError`. Default
188
+ * is **fail-open** — return the original draft. Pass an explicit
189
+ * `onError` if your domain prefers fail-closed.
190
+ */
191
+ export declare function guard(opts: GuardFactoryOptions): OutputGuard;
192
+ export declare function guard(opts: GuardOptions): Promise<string>;
193
+ export {};