@ttt-productions/ttt-core 0.19.0 → 0.19.2

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 (128) hide show
  1. package/dist/doc-schemas/chat-sync.d.ts +2 -2
  2. package/dist/doc-schemas/index.d.ts +19 -0
  3. package/dist/doc-schemas/index.d.ts.map +1 -1
  4. package/dist/doc-schemas/index.js +21 -0
  5. package/dist/doc-schemas/index.js.map +1 -1
  6. package/dist/doc-schemas/media-activation-jobs.d.ts +6 -6
  7. package/dist/doc-schemas/media-assets.d.ts +168 -14
  8. package/dist/doc-schemas/media-assets.d.ts.map +1 -1
  9. package/dist/doc-schemas/media-assets.js +60 -0
  10. package/dist/doc-schemas/media-assets.js.map +1 -1
  11. package/dist/doc-schemas/moderation.d.ts +6 -6
  12. package/dist/doc-schemas/ncii/allegations.d.ts +84 -0
  13. package/dist/doc-schemas/ncii/allegations.d.ts.map +1 -0
  14. package/dist/doc-schemas/ncii/allegations.js +45 -0
  15. package/dist/doc-schemas/ncii/allegations.js.map +1 -0
  16. package/dist/doc-schemas/ncii/appeals.d.ts +121 -0
  17. package/dist/doc-schemas/ncii/appeals.d.ts.map +1 -0
  18. package/dist/doc-schemas/ncii/appeals.js +132 -0
  19. package/dist/doc-schemas/ncii/appeals.js.map +1 -0
  20. package/dist/doc-schemas/ncii/cases.d.ts +158 -0
  21. package/dist/doc-schemas/ncii/cases.d.ts.map +1 -0
  22. package/dist/doc-schemas/ncii/cases.js +132 -0
  23. package/dist/doc-schemas/ncii/cases.js.map +1 -0
  24. package/dist/doc-schemas/ncii/config.d.ts +131 -0
  25. package/dist/doc-schemas/ncii/config.d.ts.map +1 -0
  26. package/dist/doc-schemas/ncii/config.js +227 -0
  27. package/dist/doc-schemas/ncii/config.js.map +1 -0
  28. package/dist/doc-schemas/ncii/holds.d.ts +84 -0
  29. package/dist/doc-schemas/ncii/holds.d.ts.map +1 -0
  30. package/dist/doc-schemas/ncii/holds.js +63 -0
  31. package/dist/doc-schemas/ncii/holds.js.map +1 -0
  32. package/dist/doc-schemas/ncii/notices.d.ts +109 -0
  33. package/dist/doc-schemas/ncii/notices.d.ts.map +1 -0
  34. package/dist/doc-schemas/ncii/notices.js +114 -0
  35. package/dist/doc-schemas/ncii/notices.js.map +1 -0
  36. package/dist/doc-schemas/ncii/removal.d.ts +222 -0
  37. package/dist/doc-schemas/ncii/removal.d.ts.map +1 -0
  38. package/dist/doc-schemas/ncii/removal.js +130 -0
  39. package/dist/doc-schemas/ncii/removal.js.map +1 -0
  40. package/dist/doc-schemas/ncii/requests.d.ts +372 -0
  41. package/dist/doc-schemas/ncii/requests.d.ts.map +1 -0
  42. package/dist/doc-schemas/ncii/requests.js +287 -0
  43. package/dist/doc-schemas/ncii/requests.js.map +1 -0
  44. package/dist/doc-schemas/ncii/scan.d.ts +59 -0
  45. package/dist/doc-schemas/ncii/scan.d.ts.map +1 -0
  46. package/dist/doc-schemas/ncii/scan.js +105 -0
  47. package/dist/doc-schemas/ncii/scan.js.map +1 -0
  48. package/dist/doc-schemas/notification-ledger.d.ts +1 -1
  49. package/dist/doc-schemas/payments.d.ts +2 -2
  50. package/dist/doc-schemas/registry.d.ts +1929 -96
  51. package/dist/doc-schemas/registry.d.ts.map +1 -1
  52. package/dist/doc-schemas/registry.js +86 -0
  53. package/dist/doc-schemas/registry.js.map +1 -1
  54. package/dist/doc-schemas/report-docs.d.ts +3 -3
  55. package/dist/doc-schemas/safety/age.d.ts +178 -0
  56. package/dist/doc-schemas/safety/age.d.ts.map +1 -0
  57. package/dist/doc-schemas/safety/age.js +222 -0
  58. package/dist/doc-schemas/safety/age.js.map +1 -0
  59. package/dist/doc-schemas/safety/case-aliases.d.ts +97 -0
  60. package/dist/doc-schemas/safety/case-aliases.d.ts.map +1 -0
  61. package/dist/doc-schemas/safety/case-aliases.js +110 -0
  62. package/dist/doc-schemas/safety/case-aliases.js.map +1 -0
  63. package/dist/doc-schemas/safety/case.d.ts +542 -0
  64. package/dist/doc-schemas/safety/case.d.ts.map +1 -0
  65. package/dist/doc-schemas/safety/case.js +339 -0
  66. package/dist/doc-schemas/safety/case.js.map +1 -0
  67. package/dist/doc-schemas/safety/evidence.d.ts +346 -0
  68. package/dist/doc-schemas/safety/evidence.d.ts.map +1 -0
  69. package/dist/doc-schemas/safety/evidence.js +273 -0
  70. package/dist/doc-schemas/safety/evidence.js.map +1 -0
  71. package/dist/doc-schemas/safety/foundation.d.ts +425 -0
  72. package/dist/doc-schemas/safety/foundation.d.ts.map +1 -0
  73. package/dist/doc-schemas/safety/foundation.js +349 -0
  74. package/dist/doc-schemas/safety/foundation.js.map +1 -0
  75. package/dist/doc-schemas/safety/holds.d.ts +152 -0
  76. package/dist/doc-schemas/safety/holds.d.ts.map +1 -0
  77. package/dist/doc-schemas/safety/holds.js +142 -0
  78. package/dist/doc-schemas/safety/holds.js.map +1 -0
  79. package/dist/doc-schemas/safety/monitors.d.ts +77 -0
  80. package/dist/doc-schemas/safety/monitors.d.ts.map +1 -0
  81. package/dist/doc-schemas/safety/monitors.js +87 -0
  82. package/dist/doc-schemas/safety/monitors.js.map +1 -0
  83. package/dist/doc-schemas/safety/provenance.d.ts +70 -0
  84. package/dist/doc-schemas/safety/provenance.d.ts.map +1 -0
  85. package/dist/doc-schemas/safety/provenance.js +76 -0
  86. package/dist/doc-schemas/safety/provenance.js.map +1 -0
  87. package/dist/doc-schemas/safety/report.d.ts +256 -0
  88. package/dist/doc-schemas/safety/report.d.ts.map +1 -0
  89. package/dist/doc-schemas/safety/report.js +116 -0
  90. package/dist/doc-schemas/safety/report.js.map +1 -0
  91. package/dist/doc-schemas/safety/sagas.d.ts +154 -0
  92. package/dist/doc-schemas/safety/sagas.d.ts.map +1 -0
  93. package/dist/doc-schemas/safety/sagas.js +162 -0
  94. package/dist/doc-schemas/safety/sagas.js.map +1 -0
  95. package/dist/doc-schemas/social.d.ts +3 -3
  96. package/dist/doc-schemas/user.d.ts +15 -0
  97. package/dist/doc-schemas/user.d.ts.map +1 -1
  98. package/dist/doc-schemas/user.js +9 -0
  99. package/dist/doc-schemas/user.js.map +1 -1
  100. package/dist/doc-schemas/work-project.d.ts +1 -1
  101. package/dist/media/atoms.d.ts +2 -2
  102. package/dist/media/domain-events-admin.d.ts +1 -1
  103. package/dist/media/domain-events.d.ts +1 -1
  104. package/dist/media/file-origin.d.ts +1 -1
  105. package/dist/media/index.d.ts +1 -0
  106. package/dist/media/index.d.ts.map +1 -1
  107. package/dist/media/index.js +1 -0
  108. package/dist/media/index.js.map +1 -1
  109. package/dist/media/pending-media.d.ts +25 -25
  110. package/dist/media/photodna-coverage.d.ts +46 -0
  111. package/dist/media/photodna-coverage.d.ts.map +1 -0
  112. package/dist/media/photodna-coverage.js +74 -0
  113. package/dist/media/photodna-coverage.js.map +1 -0
  114. package/dist/media/start-upload.d.ts +1 -1
  115. package/dist/media/target-info.d.ts +1 -1
  116. package/dist/paths/collections.d.ts +58 -0
  117. package/dist/paths/collections.d.ts.map +1 -1
  118. package/dist/paths/collections.js +77 -0
  119. package/dist/paths/collections.js.map +1 -1
  120. package/dist/paths/path-builders.d.ts +57 -0
  121. package/dist/paths/path-builders.d.ts.map +1 -1
  122. package/dist/paths/path-builders.js +75 -0
  123. package/dist/paths/path-builders.js.map +1 -1
  124. package/dist/schemas/social.d.ts +2 -2
  125. package/dist/types/audit.d.ts +1 -1
  126. package/dist/types/audit.d.ts.map +1 -1
  127. package/dist/upload-variables/square-streetz-post-variables.d.ts +1 -1
  128. package/package.json +1 -1
@@ -0,0 +1,97 @@
1
+ import { z } from 'zod';
2
+ /** Version token folded into `aliasId` and `incidentKey`. */
3
+ export declare const SAFETY_ALIAS_VERSION = "v1";
4
+ /** Version token folded into `correlationKey`. */
5
+ export declare const SAFETY_CORRELATION_VERSION = "v1";
6
+ /** Version token folded into `mergeJobId`. */
7
+ export declare const SAFETY_MERGE_VERSION = "merge-v1";
8
+ /** OWNING alias types — ONLY these four. (Correlation links are NEVER owning
9
+ * aliases; see CorrelationType below.) */
10
+ export declare const ChildSafetyOwningAliasTypeSchema: z.ZodEnum<{
11
+ incidentKey: "incidentKey";
12
+ rootIngest: "rootIngest";
13
+ canonicalTarget: "canonicalTarget";
14
+ messageRange: "messageRange";
15
+ }>;
16
+ export type ChildSafetyOwningAliasType = z.infer<typeof ChildSafetyOwningAliasTypeSchema>;
17
+ /** CORRELATION types — M:N, search/link only. NEVER select a winner, NEVER
18
+ * trigger a merge, NEVER live as an owning alias. */
19
+ export declare const ChildSafetyCorrelationTypeSchema: z.ZodEnum<{
20
+ exactSha256: "exactSha256";
21
+ detectorMatch: "detectorMatch";
22
+ }>;
23
+ export type ChildSafetyCorrelationType = z.infer<typeof ChildSafetyCorrelationTypeSchema>;
24
+ /** `safetyCaseMergeJobs` lifecycle status. */
25
+ export declare const SafetyCaseMergeJobStatusSchema: z.ZodEnum<{
26
+ pending: "pending";
27
+ complete: "complete";
28
+ deadLetter: "deadLetter";
29
+ fenced: "fenced";
30
+ movingLinks: "movingLinks";
31
+ reconcilingSubmissions: "reconcilingSubmissions";
32
+ }>;
33
+ export type SafetyCaseMergeJobStatus = z.infer<typeof SafetyCaseMergeJobStatusSchema>;
34
+ export declare const ChildSafetyOwningAliasV1Schema: z.ZodObject<{
35
+ schemaVersion: z.ZodLiteral<1>;
36
+ caseId: z.ZodString;
37
+ aliasType: z.ZodEnum<{
38
+ incidentKey: "incidentKey";
39
+ rootIngest: "rootIngest";
40
+ canonicalTarget: "canonicalTarget";
41
+ messageRange: "messageRange";
42
+ }>;
43
+ canonicalValueHash: z.ZodString;
44
+ createdAt: z.ZodNumber;
45
+ }, z.core.$strict>;
46
+ export type ChildSafetyOwningAliasV1 = z.infer<typeof ChildSafetyOwningAliasV1Schema>;
47
+ export declare const ChildSafetyCorrelationCaseV1Schema: z.ZodObject<{
48
+ schemaVersion: z.ZodLiteral<1>;
49
+ caseId: z.ZodString;
50
+ correlationType: z.ZodEnum<{
51
+ exactSha256: "exactSha256";
52
+ detectorMatch: "detectorMatch";
53
+ }>;
54
+ canonicalValueHash: z.ZodString;
55
+ rootIngestId: z.ZodString;
56
+ originatingUploaderUid: z.ZodString;
57
+ firstSeenAt: z.ZodNumber;
58
+ sourceSignalId: z.ZodString;
59
+ }, z.core.$strict>;
60
+ export type ChildSafetyCorrelationCaseV1 = z.infer<typeof ChildSafetyCorrelationCaseV1Schema>;
61
+ /** A losing participant of a merge job (frozen at claim time). */
62
+ export declare const SafetyCaseMergeLoserV1Schema: z.ZodObject<{
63
+ caseId: z.ZodString;
64
+ expectedRevision: z.ZodNumber;
65
+ redirectWritten: z.ZodBoolean;
66
+ }, z.core.$strict>;
67
+ export type SafetyCaseMergeLoserV1 = z.infer<typeof SafetyCaseMergeLoserV1Schema>;
68
+ export declare const SafetyCaseMergeJobV1Schema: z.ZodObject<{
69
+ schemaVersion: z.ZodLiteral<1>;
70
+ mergeJobId: z.ZodString;
71
+ participantCaseIds: z.ZodArray<z.ZodString>;
72
+ winnerCaseId: z.ZodString;
73
+ mergeGeneration: z.ZodNumber;
74
+ losers: z.ZodArray<z.ZodObject<{
75
+ caseId: z.ZodString;
76
+ expectedRevision: z.ZodNumber;
77
+ redirectWritten: z.ZodBoolean;
78
+ }, z.core.$strict>>;
79
+ status: z.ZodEnum<{
80
+ pending: "pending";
81
+ complete: "complete";
82
+ deadLetter: "deadLetter";
83
+ fenced: "fenced";
84
+ movingLinks: "movingLinks";
85
+ reconcilingSubmissions: "reconcilingSubmissions";
86
+ }>;
87
+ leaseOwner: z.ZodOptional<z.ZodString>;
88
+ leaseExpiresAt: z.ZodOptional<z.ZodNumber>;
89
+ attemptCount: z.ZodNumber;
90
+ nextAttemptAt: z.ZodOptional<z.ZodNumber>;
91
+ lastErrorCode: z.ZodOptional<z.ZodString>;
92
+ createdAt: z.ZodNumber;
93
+ updatedAt: z.ZodNumber;
94
+ completedAt: z.ZodOptional<z.ZodNumber>;
95
+ }, z.core.$strict>;
96
+ export type SafetyCaseMergeJobV1 = z.infer<typeof SafetyCaseMergeJobV1Schema>;
97
+ //# sourceMappingURL=case-aliases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"case-aliases.d.ts","sourceRoot":"","sources":["../../../src/doc-schemas/safety/case-aliases.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,6DAA6D;AAC7D,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,kDAAkD;AAClD,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAC/C,8CAA8C;AAC9C,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAM/C;0CAC0C;AAC1C,eAAO,MAAM,gCAAgC;;;;;EAK3C,CAAC;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F;qDACqD;AACrD,eAAO,MAAM,gCAAgC;;;EAA2C,CAAC;AACzF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,8CAA8C;AAC9C,eAAO,MAAM,8BAA8B;;;;;;;EAOzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAStF,eAAO,MAAM,8BAA8B;;;;;;;;;;;kBAMhC,CAAC;AACZ,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAUtF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;kBASpC,CAAC;AACZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAU9F,kEAAkE;AAClE,eAAO,MAAM,4BAA4B;;;;kBAI9B,CAAC;AACZ,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAgB5B,CAAC;AACZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
@@ -0,0 +1,110 @@
1
+ // Trust & Safety — child-safety case ALIASES, CORRELATIONS, and MERGE (§A2,
2
+ // Finding-H2/H3).
3
+ //
4
+ // The alias model is SPLIT into two disjoint structures:
5
+ // - OWNING aliases (1:1; the ONLY inputs to claim/merge) —
6
+ // `childSafetyOwningAliases/{aliasId}`.
7
+ // - CORRELATIONS (M:N; search/link only, NEVER inputs to claim/merge) —
8
+ // `childSafetyCorrelations/{correlationKey}/cases/{caseId}`.
9
+ // A multi-case owning-alias collision spawns a deterministic, fenced merge job —
10
+ // `safetyCaseMergeJobs/{mergeJobId}`.
11
+ //
12
+ // Every shape here is transcribed verbatim from docs/code_changes_needed/
13
+ // trust-and-safety/IMPLEMENTATION_PLAN.md Appendix A §A2 — no invented values,
14
+ // no placeholders. Deterministic IDs are documented as comments; the server
15
+ // computes them (never this schema layer).
16
+ import { z } from 'zod';
17
+ // ===========================================================================
18
+ // Canonical-key version tokens (folded into the deterministic id formulas
19
+ // below). Bump a token if its formula input set or hashing scheme changes.
20
+ // ===========================================================================
21
+ /** Version token folded into `aliasId` and `incidentKey`. */
22
+ export const SAFETY_ALIAS_VERSION = 'v1';
23
+ /** Version token folded into `correlationKey`. */
24
+ export const SAFETY_CORRELATION_VERSION = 'v1';
25
+ /** Version token folded into `mergeJobId`. */
26
+ export const SAFETY_MERGE_VERSION = 'merge-v1';
27
+ // ===========================================================================
28
+ // Cluster-local enums (§A2).
29
+ // ===========================================================================
30
+ /** OWNING alias types — ONLY these four. (Correlation links are NEVER owning
31
+ * aliases; see CorrelationType below.) */
32
+ export const ChildSafetyOwningAliasTypeSchema = z.enum([
33
+ 'incidentKey',
34
+ 'rootIngest',
35
+ 'canonicalTarget',
36
+ 'messageRange',
37
+ ]);
38
+ /** CORRELATION types — M:N, search/link only. NEVER select a winner, NEVER
39
+ * trigger a merge, NEVER live as an owning alias. */
40
+ export const ChildSafetyCorrelationTypeSchema = z.enum(['exactSha256', 'detectorMatch']);
41
+ /** `safetyCaseMergeJobs` lifecycle status. */
42
+ export const SafetyCaseMergeJobStatusSchema = z.enum([
43
+ 'pending',
44
+ 'fenced',
45
+ 'movingLinks',
46
+ 'reconcilingSubmissions',
47
+ 'complete',
48
+ 'deadLetter',
49
+ ]);
50
+ // ===========================================================================
51
+ // §A2 — OWNING aliases: childSafetyOwningAliases/{aliasId}
52
+ // aliasId = sha256(SAFETY_ALIAS_VERSION + ':' + aliasType + ':' + canonicalValueHash)
53
+ // incidentKey = sha256('incident-v1:' + normalizedRootIngestId + ':' +
54
+ // normalizedOriginatingUploaderUid) (Finding-H3 hard key)
55
+ // ===========================================================================
56
+ export const ChildSafetyOwningAliasV1Schema = z.object({
57
+ schemaVersion: z.literal(1),
58
+ caseId: z.string().min(1),
59
+ aliasType: ChildSafetyOwningAliasTypeSchema,
60
+ canonicalValueHash: z.string(),
61
+ createdAt: z.number(),
62
+ }).strict();
63
+ // ===========================================================================
64
+ // §A2 — CORRELATIONS (M:N): childSafetyCorrelations/{correlationKey}/cases/{caseId}
65
+ // correlationKey = sha256(SAFETY_CORRELATION_VERSION + ':' + correlationType +
66
+ // ':' + canonicalValueHash)
67
+ // A correlation key may list many cases; the child doc is keyed by caseId.
68
+ // Correlations NEVER select a winner and NEVER trigger a merge.
69
+ // ===========================================================================
70
+ export const ChildSafetyCorrelationCaseV1Schema = z.object({
71
+ schemaVersion: z.literal(1),
72
+ caseId: z.string().min(1),
73
+ correlationType: ChildSafetyCorrelationTypeSchema,
74
+ canonicalValueHash: z.string(),
75
+ rootIngestId: z.string().min(1),
76
+ originatingUploaderUid: z.string().min(1),
77
+ firstSeenAt: z.number(),
78
+ sourceSignalId: z.string().min(1),
79
+ }).strict();
80
+ // ===========================================================================
81
+ // §A2 — MERGE jobs: safetyCaseMergeJobs/{mergeJobId}
82
+ // mergeJobId = sha256(SAFETY_MERGE_VERSION + ':' + sortedCaseIds.join(','))
83
+ // (deterministic — racing workers create the same job). Winner is selected and
84
+ // FROZEN at merge-claim time (`mergeGeneration` stamped on every participant)
85
+ // and never recalculated. participantCaseIds + losers each MAX 16.
86
+ // ===========================================================================
87
+ /** A losing participant of a merge job (frozen at claim time). */
88
+ export const SafetyCaseMergeLoserV1Schema = z.object({
89
+ caseId: z.string().min(1),
90
+ expectedRevision: z.number(),
91
+ redirectWritten: z.boolean(),
92
+ }).strict();
93
+ export const SafetyCaseMergeJobV1Schema = z.object({
94
+ schemaVersion: z.literal(1),
95
+ mergeJobId: z.string().min(1),
96
+ participantCaseIds: z.array(z.string().min(1)).max(16),
97
+ winnerCaseId: z.string().min(1),
98
+ mergeGeneration: z.number(),
99
+ losers: z.array(SafetyCaseMergeLoserV1Schema).max(16),
100
+ status: SafetyCaseMergeJobStatusSchema,
101
+ leaseOwner: z.string().min(1).optional(),
102
+ leaseExpiresAt: z.number().optional(),
103
+ attemptCount: z.number(),
104
+ nextAttemptAt: z.number().optional(),
105
+ lastErrorCode: z.string().min(1).optional(),
106
+ createdAt: z.number(),
107
+ updatedAt: z.number(),
108
+ completedAt: z.number().optional(),
109
+ }).strict();
110
+ //# sourceMappingURL=case-aliases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"case-aliases.js","sourceRoot":"","sources":["../../../src/doc-schemas/safety/case-aliases.ts"],"names":[],"mappings":"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"}