@tuteliq/sdk 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1034 -0
  3. package/dist/cjs/client.js +1283 -0
  4. package/dist/cjs/client.js.map +1 -0
  5. package/dist/cjs/constants.js +179 -0
  6. package/dist/cjs/constants.js.map +1 -0
  7. package/dist/cjs/errors.js +129 -0
  8. package/dist/cjs/errors.js.map +1 -0
  9. package/dist/cjs/index.js +37 -0
  10. package/dist/cjs/index.js.map +1 -0
  11. package/dist/cjs/types/account.js +6 -0
  12. package/dist/cjs/types/account.js.map +1 -0
  13. package/dist/cjs/types/analysis.js +6 -0
  14. package/dist/cjs/types/analysis.js.map +1 -0
  15. package/dist/cjs/types/guidance.js +3 -0
  16. package/dist/cjs/types/guidance.js.map +1 -0
  17. package/dist/cjs/types/index.js +28 -0
  18. package/dist/cjs/types/index.js.map +1 -0
  19. package/dist/cjs/types/media.js +6 -0
  20. package/dist/cjs/types/media.js.map +1 -0
  21. package/dist/cjs/types/policy.js +6 -0
  22. package/dist/cjs/types/policy.js.map +1 -0
  23. package/dist/cjs/types/pricing.js +6 -0
  24. package/dist/cjs/types/pricing.js.map +1 -0
  25. package/dist/cjs/types/reports.js +3 -0
  26. package/dist/cjs/types/reports.js.map +1 -0
  27. package/dist/cjs/types/safety.js +7 -0
  28. package/dist/cjs/types/safety.js.map +1 -0
  29. package/dist/cjs/types/voice-stream.js +6 -0
  30. package/dist/cjs/types/voice-stream.js.map +1 -0
  31. package/dist/cjs/types/webhooks.js +6 -0
  32. package/dist/cjs/types/webhooks.js.map +1 -0
  33. package/dist/cjs/utils/retry.js +64 -0
  34. package/dist/cjs/utils/retry.js.map +1 -0
  35. package/dist/cjs/voice-stream.js +184 -0
  36. package/dist/cjs/voice-stream.js.map +1 -0
  37. package/dist/client.d.ts +643 -0
  38. package/dist/client.d.ts.map +1 -0
  39. package/dist/client.js +1280 -0
  40. package/dist/client.js.map +1 -0
  41. package/dist/constants.d.ts +141 -0
  42. package/dist/constants.d.ts.map +1 -0
  43. package/dist/constants.js +176 -0
  44. package/dist/constants.js.map +1 -0
  45. package/dist/errors.d.ts +81 -0
  46. package/dist/errors.d.ts.map +1 -0
  47. package/dist/errors.js +116 -0
  48. package/dist/errors.js.map +1 -0
  49. package/dist/index.d.ts +6 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +9 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/types/account.d.ts +161 -0
  54. package/dist/types/account.d.ts.map +1 -0
  55. package/dist/types/account.js +5 -0
  56. package/dist/types/account.js.map +1 -0
  57. package/dist/types/analysis.d.ts +41 -0
  58. package/dist/types/analysis.d.ts.map +1 -0
  59. package/dist/types/analysis.js +4 -0
  60. package/dist/types/analysis.js.map +1 -0
  61. package/dist/types/guidance.d.ts +35 -0
  62. package/dist/types/guidance.d.ts.map +1 -0
  63. package/dist/types/guidance.js +2 -0
  64. package/dist/types/guidance.js.map +1 -0
  65. package/dist/types/index.d.ts +231 -0
  66. package/dist/types/index.d.ts.map +1 -0
  67. package/dist/types/index.js +12 -0
  68. package/dist/types/index.js.map +1 -0
  69. package/dist/types/media.d.ts +121 -0
  70. package/dist/types/media.d.ts.map +1 -0
  71. package/dist/types/media.js +4 -0
  72. package/dist/types/media.js.map +1 -0
  73. package/dist/types/policy.d.ts +54 -0
  74. package/dist/types/policy.d.ts.map +1 -0
  75. package/dist/types/policy.js +5 -0
  76. package/dist/types/policy.js.map +1 -0
  77. package/dist/types/pricing.d.ts +53 -0
  78. package/dist/types/pricing.d.ts.map +1 -0
  79. package/dist/types/pricing.js +5 -0
  80. package/dist/types/pricing.js.map +1 -0
  81. package/dist/types/reports.d.ts +44 -0
  82. package/dist/types/reports.d.ts.map +1 -0
  83. package/dist/types/reports.js +2 -0
  84. package/dist/types/reports.js.map +1 -0
  85. package/dist/types/safety.d.ts +151 -0
  86. package/dist/types/safety.d.ts.map +1 -0
  87. package/dist/types/safety.js +4 -0
  88. package/dist/types/safety.js.map +1 -0
  89. package/dist/types/voice-stream.d.ts +97 -0
  90. package/dist/types/voice-stream.d.ts.map +1 -0
  91. package/dist/types/voice-stream.js +5 -0
  92. package/dist/types/voice-stream.js.map +1 -0
  93. package/dist/types/webhooks.d.ts +110 -0
  94. package/dist/types/webhooks.d.ts.map +1 -0
  95. package/dist/types/webhooks.js +4 -0
  96. package/dist/types/webhooks.js.map +1 -0
  97. package/dist/utils/retry.d.ts +17 -0
  98. package/dist/utils/retry.d.ts.map +1 -0
  99. package/dist/utils/retry.js +61 -0
  100. package/dist/utils/retry.js.map +1 -0
  101. package/dist/voice-stream.d.ts +16 -0
  102. package/dist/voice-stream.d.ts.map +1 -0
  103. package/dist/voice-stream.js +148 -0
  104. package/dist/voice-stream.js.map +1 -0
  105. package/package.json +81 -0
@@ -0,0 +1,4 @@
1
+ import { ContentSeverity } from '../constants.js';
2
+ // Re-export for convenience
3
+ export { ContentSeverity };
4
+ //# sourceMappingURL=media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/types/media.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIlD,4BAA4B;AAC5B,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,54 @@
1
+ export interface ThresholdConfig {
2
+ enabled: boolean;
3
+ minRiskScoreToFlag: number;
4
+ minRiskScoreToBlock: number;
5
+ }
6
+ export interface BullyingPolicyConfig extends ThresholdConfig {
7
+ autoModeration: boolean;
8
+ }
9
+ export interface GroomingPolicyConfig extends ThresholdConfig {
10
+ requireAdultReview: boolean;
11
+ }
12
+ export interface SelfHarmPolicyConfig {
13
+ enabled: boolean;
14
+ minRiskScoreToAlert: number;
15
+ provideResources: boolean;
16
+ escalateImmediately: boolean;
17
+ }
18
+ export interface HateSpeechPolicyConfig extends ThresholdConfig {
19
+ }
20
+ export interface ThreatsPolicyConfig extends ThresholdConfig {
21
+ notifyAuthorities: boolean;
22
+ }
23
+ export interface SexualContentPolicyConfig extends ThresholdConfig {
24
+ ageAppropriate: boolean;
25
+ }
26
+ export interface ViolencePolicyConfig extends ThresholdConfig {
27
+ }
28
+ export interface EmotionMonitoringConfig {
29
+ enabled: boolean;
30
+ trackTrends: boolean;
31
+ alertOnDistress: boolean;
32
+ }
33
+ export interface IncidentReportingConfig {
34
+ enabled: boolean;
35
+ anonymize: boolean;
36
+ notifyParents: boolean;
37
+ }
38
+ export interface PolicyConfig {
39
+ bullying: BullyingPolicyConfig;
40
+ grooming: GroomingPolicyConfig;
41
+ selfHarm: SelfHarmPolicyConfig;
42
+ hateSpeech: HateSpeechPolicyConfig;
43
+ threats: ThreatsPolicyConfig;
44
+ sexualContent: SexualContentPolicyConfig;
45
+ violence: ViolencePolicyConfig;
46
+ emotionMonitoring: EmotionMonitoringConfig;
47
+ incidentReporting: IncidentReportingConfig;
48
+ }
49
+ export interface PolicyConfigResponse {
50
+ success: boolean;
51
+ config?: PolicyConfig;
52
+ message?: string;
53
+ }
54
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/types/policy.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IACzD,cAAc,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IACzD,kBAAkB,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,sBAAuB,SAAQ,eAAe;CAAG;AAElE,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IACxD,iBAAiB,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,yBAA0B,SAAQ,eAAe;IAC9D,cAAc,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAqB,SAAQ,eAAe;CAAG;AAEhE,MAAM,WAAW,uBAAuB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,UAAU,EAAE,sBAAsB,CAAC;IACnC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,aAAa,EAAE,yBAAyB,CAAC;IACzC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,iBAAiB,EAAE,uBAAuB,CAAC;IAC3C,iBAAiB,EAAE,uBAAuB,CAAC;CAC9C;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,5 @@
1
+ // =============================================================================
2
+ // Policy Configuration
3
+ // =============================================================================
4
+ export {};
5
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/types/policy.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF"}
@@ -0,0 +1,53 @@
1
+ /** A public pricing plan (no auth required). */
2
+ export interface PricingPlan {
3
+ /** Plan name */
4
+ name: string;
5
+ /** Price display string (e.g., "$29/mo") */
6
+ price: string;
7
+ /** Billing period */
8
+ period: string;
9
+ /** Plan description */
10
+ description: string;
11
+ /** Feature list */
12
+ features: string[];
13
+ /** Whether this is the recommended plan */
14
+ is_popular: boolean;
15
+ /** Call-to-action text */
16
+ cta: string;
17
+ /** Call-to-action link */
18
+ cta_link: string;
19
+ }
20
+ /** Result from `GET /api/v1/pricing`. */
21
+ export interface PricingResult {
22
+ /** Available pricing plans */
23
+ plans: PricingPlan[];
24
+ }
25
+ /** A detailed pricing plan (requires auth). */
26
+ export interface PricingDetailPlan {
27
+ /** Plan ID */
28
+ id: string;
29
+ /** Plan name */
30
+ name: string;
31
+ /** Tier identifier */
32
+ tier: string;
33
+ /** Plan description */
34
+ description: string;
35
+ /** Monthly price in USD */
36
+ price_monthly: number;
37
+ /** Yearly price in USD */
38
+ price_yearly: number;
39
+ /** Monthly API call limit */
40
+ api_calls_per_month: number;
41
+ /** Requests per minute rate limit */
42
+ rate_limit: number;
43
+ /** Feature list */
44
+ features: string[];
45
+ /** Whether this is the recommended plan */
46
+ is_popular: boolean;
47
+ }
48
+ /** Result from `GET /api/v1/pricing/details`. */
49
+ export interface PricingDetailsResult {
50
+ /** Detailed pricing plans */
51
+ plans: PricingDetailPlan[];
52
+ }
53
+ //# sourceMappingURL=pricing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/types/pricing.ts"],"names":[],"mappings":"AAIA,gDAAgD;AAChD,MAAM,WAAW,WAAW;IACxB,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,2CAA2C;IAC3C,UAAU,EAAE,OAAO,CAAC;IACpB,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC1B,8BAA8B;IAC9B,KAAK,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,+CAA+C;AAC/C,MAAM,WAAW,iBAAiB;IAC9B,cAAc;IACd,EAAE,EAAE,MAAM,CAAC;IACX,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,2CAA2C;IAC3C,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,iDAAiD;AACjD,MAAM,WAAW,oBAAoB;IACjC,6BAA6B;IAC7B,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC9B"}
@@ -0,0 +1,5 @@
1
+ // =============================================================================
2
+ // Pricing Types
3
+ // =============================================================================
4
+ export {};
5
+ //# sourceMappingURL=pricing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/types/pricing.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF"}
@@ -0,0 +1,44 @@
1
+ import { TrackingFields } from './index.js';
2
+ export interface ReportMessage {
3
+ /** Sender identifier or role */
4
+ sender: string;
5
+ /** Message content */
6
+ content: string;
7
+ /** Optional timestamp */
8
+ timestamp?: string | Date;
9
+ }
10
+ export interface GenerateReportInput extends TrackingFields {
11
+ /** Messages involved in the incident */
12
+ messages: ReportMessage[];
13
+ /** Age of the child */
14
+ childAge?: number;
15
+ /** Optional incident metadata */
16
+ incident?: {
17
+ /** Incident type/category */
18
+ type?: string;
19
+ /** When the incident occurred */
20
+ occurredAt?: string | Date;
21
+ /** Additional notes */
22
+ notes?: string;
23
+ };
24
+ }
25
+ export interface ReportResult {
26
+ /** Summary of the incident */
27
+ summary: string;
28
+ /** Risk level assessment */
29
+ risk_level: 'low' | 'medium' | 'high' | 'critical';
30
+ /** Categories of concerns */
31
+ categories: string[];
32
+ /** Recommended next steps */
33
+ recommended_next_steps: string[];
34
+ /** Number of credits consumed by this request */
35
+ credits_used?: number;
36
+ /** Echo of provided external_id (if any) */
37
+ external_id?: string;
38
+ /** Echo of provided metadata (if any) */
39
+ metadata?: Record<string, unknown>;
40
+ }
41
+ export type IncidentMessage = ReportMessage;
42
+ export type IncidentReportRequest = GenerateReportInput;
43
+ export type IncidentReportResponse = ReportResult;
44
+ //# sourceMappingURL=reports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../src/types/reports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAM5C,MAAM,WAAW,aAAa;IAC1B,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACvD,wCAAwC;IACxC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,QAAQ,CAAC,EAAE;QACP,6BAA6B;QAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,iCAAiC;QACjC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,uBAAuB;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACL;AAED,MAAM,WAAW,YAAY;IACzB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACnD,6BAA6B;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,6BAA6B;IAC7B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAGD,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC;AAC5C,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AACxD,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=reports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reports.js","sourceRoot":"","sources":["../../src/types/reports.ts"],"names":[],"mappings":""}
@@ -0,0 +1,151 @@
1
+ import { Severity, GroomingRisk } from '../constants.js';
2
+ import { TrackingFields } from './index.js';
3
+ export { Severity, GroomingRisk };
4
+ /**
5
+ * Context type - can be a string shorthand or detailed object
6
+ */
7
+ export type ContextInput = string | {
8
+ /** Language of the content (e.g., "en") */
9
+ language?: string;
10
+ /** Age group (e.g., "11-13", "14-17") */
11
+ ageGroup?: string;
12
+ /** Relationship between participants (e.g., "classmates", "strangers") */
13
+ relationship?: string;
14
+ /** Platform type (e.g., "chat", "social_media", "gaming") */
15
+ platform?: string;
16
+ };
17
+ export interface DetectBullyingInput extends TrackingFields {
18
+ /** The content to analyze */
19
+ content: string;
20
+ /** Context for better analysis - string shorthand or detailed object */
21
+ context?: ContextInput;
22
+ }
23
+ export interface BullyingResult {
24
+ /** Whether bullying was detected */
25
+ is_bullying: boolean;
26
+ /** Types of bullying detected */
27
+ bullying_type: string[];
28
+ /** Confidence score (0-1) */
29
+ confidence: number;
30
+ /** Severity of the bullying */
31
+ severity: Severity;
32
+ /** Explanation of the analysis */
33
+ rationale: string;
34
+ /** Recommended action to take */
35
+ recommended_action: string;
36
+ /** Risk score (0-1) */
37
+ risk_score: number;
38
+ /** Number of credits consumed by this request */
39
+ credits_used?: number;
40
+ /** Echo of provided external_id (if any) */
41
+ external_id?: string;
42
+ /** Echo of provided customer_id (if any) */
43
+ customer_id?: string;
44
+ /** Echo of provided metadata (if any) */
45
+ metadata?: Record<string, unknown>;
46
+ }
47
+ export interface GroomingMessage {
48
+ /** Role of sender */
49
+ role: 'adult' | 'child' | 'unknown' | string;
50
+ /** Message content */
51
+ content: string;
52
+ /** Optional timestamp */
53
+ timestamp?: string | Date;
54
+ }
55
+ export interface DetectGroomingInput extends TrackingFields {
56
+ /** Sequence of messages to analyze */
57
+ messages: GroomingMessage[];
58
+ /** Age of the child (optional) */
59
+ childAge?: number;
60
+ /** Context for better analysis */
61
+ context?: ContextInput;
62
+ }
63
+ export interface GroomingResult {
64
+ /** Level of grooming risk detected */
65
+ grooming_risk: GroomingRisk;
66
+ /** Confidence score (0-1) */
67
+ confidence: number;
68
+ /** Grooming indicators/flags detected */
69
+ flags: string[];
70
+ /** Explanation of the analysis */
71
+ rationale: string;
72
+ /** Risk score (0-1) */
73
+ risk_score: number;
74
+ /** Recommended action to take */
75
+ recommended_action: string;
76
+ /** Number of credits consumed by this request */
77
+ credits_used?: number;
78
+ /** Echo of provided external_id (if any) */
79
+ external_id?: string;
80
+ /** Echo of provided customer_id (if any) */
81
+ customer_id?: string;
82
+ /** Echo of provided metadata (if any) */
83
+ metadata?: Record<string, unknown>;
84
+ }
85
+ export interface DetectUnsafeInput extends TrackingFields {
86
+ /** The content to analyze */
87
+ content: string;
88
+ /** Context for better analysis */
89
+ context?: ContextInput;
90
+ }
91
+ export interface UnsafeResult {
92
+ /** Whether unsafe content was detected */
93
+ unsafe: boolean;
94
+ /** Categories of unsafe content detected */
95
+ categories: string[];
96
+ /** Severity of the unsafe content */
97
+ severity: Severity;
98
+ /** Confidence score (0-1) */
99
+ confidence: number;
100
+ /** Risk score (0-1) */
101
+ risk_score: number;
102
+ /** Explanation of the analysis */
103
+ rationale: string;
104
+ /** Recommended action to take */
105
+ recommended_action: string;
106
+ /** Number of credits consumed by this request */
107
+ credits_used?: number;
108
+ /** Echo of provided external_id (if any) */
109
+ external_id?: string;
110
+ /** Echo of provided customer_id (if any) */
111
+ customer_id?: string;
112
+ /** Echo of provided metadata (if any) */
113
+ metadata?: Record<string, unknown>;
114
+ }
115
+ export interface AnalyzeInput extends TrackingFields {
116
+ /** The content to analyze */
117
+ content: string;
118
+ /** Context for better analysis */
119
+ context?: ContextInput;
120
+ /** Which detections to run (defaults to ['bullying', 'unsafe']) */
121
+ include?: Array<'bullying' | 'unsafe'>;
122
+ }
123
+ export interface AnalyzeResult {
124
+ /** Overall risk assessment */
125
+ risk_level: 'safe' | 'low' | 'medium' | 'high' | 'critical';
126
+ /** Overall risk score (0-1) */
127
+ risk_score: number;
128
+ /** Summary of findings */
129
+ summary: string;
130
+ /** Bullying detection result (if included) */
131
+ bullying?: BullyingResult;
132
+ /** Unsafe content result (if included) */
133
+ unsafe?: UnsafeResult;
134
+ /** Combined recommended action */
135
+ recommended_action: string;
136
+ /** Number of credits consumed by this request */
137
+ credits_used?: number;
138
+ /** Echo of provided external_id (if any) */
139
+ external_id?: string;
140
+ /** Echo of provided customer_id (if any) */
141
+ customer_id?: string;
142
+ /** Echo of provided metadata (if any) */
143
+ metadata?: Record<string, unknown>;
144
+ }
145
+ export type DetectBullyingRequest = DetectBullyingInput;
146
+ export type DetectBullyingResponse = BullyingResult;
147
+ export type DetectGroomingRequest = DetectGroomingInput;
148
+ export type DetectGroomingResponse = GroomingResult;
149
+ export type DetectUnsafeRequest = DetectUnsafeInput;
150
+ export type DetectUnsafeResponse = UnsafeResult;
151
+ //# sourceMappingURL=safety.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../../src/types/safety.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Severity, GroomingRisk, } from '../constants.js';
2
+ // Re-export enums for convenience
3
+ export { Severity, GroomingRisk };
4
+ //# sourceMappingURL=safety.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safety.js","sourceRoot":"","sources":["../../src/types/safety.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,YAAY,GACf,MAAM,iBAAiB,CAAC;AAGzB,kCAAkC;AAClC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Configuration for a voice streaming session.
3
+ */
4
+ export interface VoiceStreamConfig {
5
+ /** Flush interval in seconds (5-30, default 10) */
6
+ intervalSeconds?: number;
7
+ /** Analysis types to run on each flush */
8
+ analysisTypes?: Array<'bullying' | 'unsafe' | 'grooming' | 'emotions'>;
9
+ /** Additional context for analysis */
10
+ context?: {
11
+ language?: string;
12
+ ageGroup?: string;
13
+ relationship?: string;
14
+ platform?: string;
15
+ };
16
+ }
17
+ export interface VoiceReadyEvent {
18
+ type: 'ready';
19
+ session_id: string;
20
+ config: {
21
+ interval_seconds: number;
22
+ analysis_types: string[];
23
+ };
24
+ }
25
+ export interface VoiceTranscriptionSegment {
26
+ start: number;
27
+ end: number;
28
+ text: string;
29
+ }
30
+ export interface VoiceTranscriptionEvent {
31
+ type: 'transcription';
32
+ text: string;
33
+ segments: VoiceTranscriptionSegment[];
34
+ flush_index: number;
35
+ }
36
+ export interface VoiceAlertEvent {
37
+ type: 'alert';
38
+ category: string;
39
+ severity: string;
40
+ risk_score: number;
41
+ details: Record<string, unknown>;
42
+ flush_index: number;
43
+ }
44
+ export interface VoiceSessionSummaryEvent {
45
+ type: 'session_summary';
46
+ session_id: string;
47
+ duration_seconds: number;
48
+ overall_risk: string;
49
+ overall_risk_score: number;
50
+ total_flushes: number;
51
+ transcript: string;
52
+ }
53
+ export interface VoiceConfigUpdatedEvent {
54
+ type: 'config_updated';
55
+ config: {
56
+ interval_seconds: number;
57
+ analysis_types: string[];
58
+ };
59
+ }
60
+ export interface VoiceErrorEvent {
61
+ type: 'error';
62
+ code: string;
63
+ message: string;
64
+ }
65
+ /** Union of all voice stream events */
66
+ export type VoiceStreamEvent = VoiceReadyEvent | VoiceTranscriptionEvent | VoiceAlertEvent | VoiceSessionSummaryEvent | VoiceConfigUpdatedEvent | VoiceErrorEvent;
67
+ export interface VoiceStreamHandlers {
68
+ /** Called when the session is ready */
69
+ onReady?: (event: VoiceReadyEvent) => void;
70
+ /** Called when a transcription flush arrives */
71
+ onTranscription?: (event: VoiceTranscriptionEvent) => void;
72
+ /** Called when a safety alert is triggered */
73
+ onAlert?: (event: VoiceAlertEvent) => void;
74
+ /** Called when the session ends with a summary */
75
+ onSessionSummary?: (event: VoiceSessionSummaryEvent) => void;
76
+ /** Called when config is updated */
77
+ onConfigUpdated?: (event: VoiceConfigUpdatedEvent) => void;
78
+ /** Called on server-side errors */
79
+ onError?: (event: VoiceErrorEvent) => void;
80
+ /** Called when the connection closes */
81
+ onClose?: (code: number, reason: string) => void;
82
+ }
83
+ export interface VoiceStreamSession {
84
+ /** Send raw audio data (binary frame) */
85
+ sendAudio(data: Buffer | Uint8Array): void;
86
+ /** Update the session configuration */
87
+ updateConfig(config: VoiceStreamConfig): void;
88
+ /** Signal end of audio. Resolves with the session summary. */
89
+ end(): Promise<VoiceSessionSummaryEvent>;
90
+ /** Force-close the connection immediately */
91
+ close(): void;
92
+ /** The session ID (available after ready event) */
93
+ readonly sessionId: string | null;
94
+ /** Whether the connection is active */
95
+ readonly isActive: boolean;
96
+ }
97
+ //# sourceMappingURL=voice-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-stream.d.ts","sourceRoot":"","sources":["../../src/types/voice-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ // =============================================================================
2
+ // Voice Streaming Types
3
+ // =============================================================================
4
+ export {};
5
+ //# sourceMappingURL=voice-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-stream.js","sourceRoot":"","sources":["../../src/types/voice-stream.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF"}
@@ -0,0 +1,110 @@
1
+ import { WebhookEventType } from '../constants.js';
2
+ export { WebhookEventType };
3
+ /** A webhook configuration. */
4
+ export interface Webhook {
5
+ /** Webhook ID */
6
+ id: string;
7
+ /** Webhook name */
8
+ name: string;
9
+ /** Webhook URL (HTTPS) */
10
+ url: string;
11
+ /** Subscribed event types */
12
+ events: string[];
13
+ /** Whether the webhook is active */
14
+ is_active: boolean;
15
+ /** Consecutive delivery failure count */
16
+ failure_count: number;
17
+ /** Last time the webhook was triggered (ISO timestamp) */
18
+ last_triggered_at?: string;
19
+ /** Last delivery error message */
20
+ last_error?: string;
21
+ /** Creation timestamp (ISO) */
22
+ created_at: string;
23
+ /** Last update timestamp (ISO) */
24
+ updated_at: string;
25
+ }
26
+ /** Result from listing webhooks. */
27
+ export interface WebhookListResult {
28
+ /** Array of webhook configurations */
29
+ webhooks: Webhook[];
30
+ }
31
+ /** Input for creating a new webhook. */
32
+ export interface CreateWebhookInput {
33
+ /** Webhook name (max 100 characters) */
34
+ name: string;
35
+ /** Webhook URL (must be HTTPS) */
36
+ url: string;
37
+ /** Event types to subscribe to (1-5 events) */
38
+ events: WebhookEventType[];
39
+ /** Optional custom headers to send with webhook payloads */
40
+ headers?: Record<string, string>;
41
+ }
42
+ /** Result from creating a webhook (includes signing secret). */
43
+ export interface CreateWebhookResult {
44
+ /** Webhook ID */
45
+ id: string;
46
+ /** Webhook name */
47
+ name: string;
48
+ /** Webhook URL */
49
+ url: string;
50
+ /** Signing secret — only returned on creation, store it securely */
51
+ secret: string;
52
+ /** Subscribed event types */
53
+ events: string[];
54
+ /** Whether the webhook is active */
55
+ is_active: boolean;
56
+ /** Creation timestamp (ISO) */
57
+ created_at: string;
58
+ }
59
+ /** Input for updating a webhook (only non-undefined fields are sent). */
60
+ export interface UpdateWebhookInput {
61
+ /** New name */
62
+ name?: string;
63
+ /** New URL */
64
+ url?: string;
65
+ /** New event subscriptions */
66
+ events?: WebhookEventType[];
67
+ /** Enable or disable the webhook */
68
+ isActive?: boolean;
69
+ /** Custom headers */
70
+ headers?: Record<string, string>;
71
+ }
72
+ /** Result from updating a webhook. */
73
+ export interface UpdateWebhookResult {
74
+ /** Webhook ID */
75
+ id: string;
76
+ /** Webhook name */
77
+ name: string;
78
+ /** Webhook URL */
79
+ url: string;
80
+ /** Subscribed event types */
81
+ events: string[];
82
+ /** Whether the webhook is active */
83
+ is_active: boolean;
84
+ /** Last update timestamp (ISO) */
85
+ updated_at: string;
86
+ }
87
+ /** Result from deleting a webhook. */
88
+ export interface DeleteWebhookResult {
89
+ /** Whether the deletion was successful */
90
+ success: boolean;
91
+ /** Confirmation message */
92
+ message: string;
93
+ }
94
+ /** Result from testing a webhook. */
95
+ export interface TestWebhookResult {
96
+ /** Whether the test payload was delivered */
97
+ success: boolean;
98
+ /** HTTP status code from the webhook endpoint */
99
+ status_code: number;
100
+ /** Round-trip latency in milliseconds */
101
+ latency_ms: number;
102
+ /** Error message if delivery failed */
103
+ error?: string;
104
+ }
105
+ /** Result from regenerating a webhook secret. */
106
+ export interface RegenerateSecretResult {
107
+ /** The new signing secret */
108
+ secret: string;
109
+ }
110
+ //# sourceMappingURL=webhooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/types/webhooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { WebhookEventType } from '../constants.js';
2
+ // Re-export for convenience
3
+ export { WebhookEventType };
4
+ //# sourceMappingURL=webhooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/types/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,4BAA4B;AAC5B,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ export interface RetryOptions {
2
+ /** Maximum number of retry attempts */
3
+ maxRetries: number;
4
+ /** Initial delay in milliseconds */
5
+ initialDelay: number;
6
+ /** Maximum delay in milliseconds */
7
+ maxDelay?: number;
8
+ /** Multiplier for exponential backoff */
9
+ backoffMultiplier?: number;
10
+ /** Function to determine if an error is retryable */
11
+ isRetryable?: (error: unknown) => boolean;
12
+ }
13
+ /**
14
+ * Execute a function with exponential backoff retry
15
+ */
16
+ export declare function withRetry<T>(fn: () => Promise<T>, options?: Partial<RetryOptions>): Promise<T>;
17
+ //# sourceMappingURL=retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IACzB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qDAAqD;IACrD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CAC7C;AAkCD;;GAEG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC7B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,OAAO,CAAC,YAAY,CAAM,GACpC,OAAO,CAAC,CAAC,CAAC,CA2BZ"}