@ttt-productions/ttt-core 0.27.0 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/doc-schemas/index.d.ts +0 -2
- package/dist/doc-schemas/index.d.ts.map +1 -1
- package/dist/doc-schemas/index.js +0 -2
- package/dist/doc-schemas/index.js.map +1 -1
- package/dist/doc-schemas/ncii/cases.d.ts +0 -21
- package/dist/doc-schemas/ncii/cases.d.ts.map +1 -1
- package/dist/doc-schemas/ncii/cases.js +3 -18
- package/dist/doc-schemas/ncii/cases.js.map +1 -1
- package/dist/doc-schemas/ncii/config.d.ts +1 -51
- package/dist/doc-schemas/ncii/config.d.ts.map +1 -1
- package/dist/doc-schemas/ncii/config.js +6 -72
- package/dist/doc-schemas/ncii/config.js.map +1 -1
- package/dist/doc-schemas/ncii/requests.d.ts +0 -9
- package/dist/doc-schemas/ncii/requests.d.ts.map +1 -1
- package/dist/doc-schemas/ncii/requests.js +1 -3
- package/dist/doc-schemas/ncii/requests.js.map +1 -1
- package/dist/doc-schemas/registry.d.ts +3 -172
- package/dist/doc-schemas/registry.d.ts.map +1 -1
- package/dist/doc-schemas/registry.js +1 -9
- package/dist/doc-schemas/registry.js.map +1 -1
- package/dist/doc-schemas/safety/foundation.d.ts +1 -36
- package/dist/doc-schemas/safety/foundation.d.ts.map +1 -1
- package/dist/doc-schemas/safety/foundation.js +1 -24
- package/dist/doc-schemas/safety/foundation.js.map +1 -1
- package/dist/doc-schemas/safety/holds.d.ts +3 -0
- package/dist/doc-schemas/safety/holds.d.ts.map +1 -1
- package/dist/doc-schemas/safety/holds.js +13 -0
- package/dist/doc-schemas/safety/holds.js.map +1 -1
- package/dist/paths/collections.d.ts +0 -3
- package/dist/paths/collections.d.ts.map +1 -1
- package/dist/paths/collections.js +1 -4
- package/dist/paths/collections.js.map +1 -1
- package/dist/paths/path-builders.d.ts +0 -6
- package/dist/paths/path-builders.d.ts.map +1 -1
- package/dist/paths/path-builders.js +0 -6
- package/dist/paths/path-builders.js.map +1 -1
- package/dist/types/audit.d.ts +1 -1
- package/dist/types/audit.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/doc-schemas/ncii/appeals.d.ts +0 -121
- package/dist/doc-schemas/ncii/appeals.d.ts.map +0 -1
- package/dist/doc-schemas/ncii/appeals.js +0 -132
- package/dist/doc-schemas/ncii/appeals.js.map +0 -1
- package/dist/doc-schemas/ncii/notices.d.ts +0 -109
- package/dist/doc-schemas/ncii/notices.d.ts.map +0 -1
- package/dist/doc-schemas/ncii/notices.js +0 -114
- package/dist/doc-schemas/ncii/notices.js.map +0 -1
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
/** Notice delivery channel. */
|
|
3
|
-
export declare const NciiUploaderNoticeChannelSchema: z.ZodEnum<{
|
|
4
|
-
email: "email";
|
|
5
|
-
inApp: "inApp";
|
|
6
|
-
}>;
|
|
7
|
-
export type NciiUploaderNoticeChannel = z.infer<typeof NciiUploaderNoticeChannelSchema>;
|
|
8
|
-
/** Who the notice is for, snapshotted at decision time (NEVER re-resolved). */
|
|
9
|
-
export declare const NciiUploaderNoticeRecipientSnapshotSchema: z.ZodObject<{
|
|
10
|
-
uid: z.ZodString;
|
|
11
|
-
deliveryAddressRef: z.ZodString;
|
|
12
|
-
capturedAt: z.ZodNumber;
|
|
13
|
-
}, z.core.$strict>;
|
|
14
|
-
export type NciiUploaderNoticeRecipientSnapshot = z.infer<typeof NciiUploaderNoticeRecipientSnapshotSchema>;
|
|
15
|
-
/** Durable retry/dead-letter delivery command on the notice. */
|
|
16
|
-
export declare const NciiUploaderNoticeCommandV1Schema: z.ZodObject<{
|
|
17
|
-
commandId: z.ZodString;
|
|
18
|
-
attemptCount: z.ZodNumber;
|
|
19
|
-
nextAttemptAt: z.ZodOptional<z.ZodNumber>;
|
|
20
|
-
leaseOwner: z.ZodOptional<z.ZodString>;
|
|
21
|
-
leaseExpiresAt: z.ZodOptional<z.ZodNumber>;
|
|
22
|
-
lastErrorCode: z.ZodOptional<z.ZodString>;
|
|
23
|
-
}, z.core.$strict>;
|
|
24
|
-
export type NciiUploaderNoticeCommandV1 = z.infer<typeof NciiUploaderNoticeCommandV1Schema>;
|
|
25
|
-
/** `nciiCases/{caseId}/uploaderNotices/{noticeId}` — durable uploader-notice
|
|
26
|
-
* delivery record (OWNED by the notices cluster). Doc id `noticeId` is
|
|
27
|
-
* deterministic:
|
|
28
|
-
* `sha256('ncii-uploader-notice-v1:' + caseId + ':' + recipientUid + ':' + removalGeneration)`. */
|
|
29
|
-
export declare const NciiUploaderNoticeV1Schema: z.ZodObject<{
|
|
30
|
-
schemaVersion: z.ZodLiteral<1>;
|
|
31
|
-
noticeId: z.ZodString;
|
|
32
|
-
caseId: z.ZodString;
|
|
33
|
-
requestIds: z.ZodArray<z.ZodString>;
|
|
34
|
-
removalGeneration: z.ZodNumber;
|
|
35
|
-
recipientSnapshot: z.ZodObject<{
|
|
36
|
-
uid: z.ZodString;
|
|
37
|
-
deliveryAddressRef: z.ZodString;
|
|
38
|
-
capturedAt: z.ZodNumber;
|
|
39
|
-
}, z.core.$strict>;
|
|
40
|
-
channel: z.ZodEnum<{
|
|
41
|
-
email: "email";
|
|
42
|
-
inApp: "inApp";
|
|
43
|
-
}>;
|
|
44
|
-
templateId: z.ZodString;
|
|
45
|
-
templateVersion: z.ZodNumber;
|
|
46
|
-
status: z.ZodEnum<{
|
|
47
|
-
pending: "pending";
|
|
48
|
-
sent: "sent";
|
|
49
|
-
delayed: "delayed";
|
|
50
|
-
suppressed: "suppressed";
|
|
51
|
-
notApplicable: "notApplicable";
|
|
52
|
-
}>;
|
|
53
|
-
suppressionReason: z.ZodOptional<z.ZodEnum<{
|
|
54
|
-
victimSafetyRisk: "victimSafetyRisk";
|
|
55
|
-
retaliationRisk: "retaliationRisk";
|
|
56
|
-
extortionRisk: "extortionRisk";
|
|
57
|
-
lawEnforcementRequest: "lawEnforcementRequest";
|
|
58
|
-
childSafetyInvestigation: "childSafetyInvestigation";
|
|
59
|
-
evidencePreservationRisk: "evidencePreservationRisk";
|
|
60
|
-
legalRestriction: "legalRestriction";
|
|
61
|
-
otherApproved: "otherApproved";
|
|
62
|
-
}>>;
|
|
63
|
-
rationaleRef: z.ZodOptional<z.ZodString>;
|
|
64
|
-
decidedByUid: z.ZodOptional<z.ZodString>;
|
|
65
|
-
delayedUntil: z.ZodOptional<z.ZodNumber>;
|
|
66
|
-
idempotencyKey: z.ZodString;
|
|
67
|
-
command: z.ZodObject<{
|
|
68
|
-
commandId: z.ZodString;
|
|
69
|
-
attemptCount: z.ZodNumber;
|
|
70
|
-
nextAttemptAt: z.ZodOptional<z.ZodNumber>;
|
|
71
|
-
leaseOwner: z.ZodOptional<z.ZodString>;
|
|
72
|
-
leaseExpiresAt: z.ZodOptional<z.ZodNumber>;
|
|
73
|
-
lastErrorCode: z.ZodOptional<z.ZodString>;
|
|
74
|
-
}, z.core.$strict>;
|
|
75
|
-
verifiedDeliveredAt: z.ZodOptional<z.ZodNumber>;
|
|
76
|
-
createdAt: z.ZodNumber;
|
|
77
|
-
updatedAt: z.ZodNumber;
|
|
78
|
-
}, z.core.$strict>;
|
|
79
|
-
export type NciiUploaderNoticeV1 = z.infer<typeof NciiUploaderNoticeV1Schema>;
|
|
80
|
-
/** Per-attempt delivery result. */
|
|
81
|
-
export declare const NciiUploaderNoticeAttemptResultSchema: z.ZodEnum<{
|
|
82
|
-
queued: "queued";
|
|
83
|
-
failed: "failed";
|
|
84
|
-
deferred: "deferred";
|
|
85
|
-
sent: "sent";
|
|
86
|
-
}>;
|
|
87
|
-
export type NciiUploaderNoticeAttemptResult = z.infer<typeof NciiUploaderNoticeAttemptResultSchema>;
|
|
88
|
-
/** `nciiCases/{caseId}/uploaderNotices/{noticeId}/attempts/{attemptId}` —
|
|
89
|
-
* IMMUTABLE append-only per-attempt ledger. Doc id `attemptId` is a
|
|
90
|
-
* deterministic/assigned id (z.string().min(1)). */
|
|
91
|
-
export declare const NciiUploaderNoticeAttemptV1Schema: z.ZodObject<{
|
|
92
|
-
schemaVersion: z.ZodLiteral<1>;
|
|
93
|
-
attemptId: z.ZodString;
|
|
94
|
-
at: z.ZodNumber;
|
|
95
|
-
channel: z.ZodEnum<{
|
|
96
|
-
email: "email";
|
|
97
|
-
inApp: "inApp";
|
|
98
|
-
}>;
|
|
99
|
-
result: z.ZodEnum<{
|
|
100
|
-
queued: "queued";
|
|
101
|
-
failed: "failed";
|
|
102
|
-
deferred: "deferred";
|
|
103
|
-
sent: "sent";
|
|
104
|
-
}>;
|
|
105
|
-
providerRef: z.ZodOptional<z.ZodString>;
|
|
106
|
-
errorCode: z.ZodOptional<z.ZodString>;
|
|
107
|
-
}, z.core.$strict>;
|
|
108
|
-
export type NciiUploaderNoticeAttemptV1 = z.infer<typeof NciiUploaderNoticeAttemptV1Schema>;
|
|
109
|
-
//# sourceMappingURL=notices.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"notices.d.ts","sourceRoot":"","sources":["../../../src/doc-schemas/ncii/notices.ts"],"names":[],"mappings":"AAqCA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,+BAA+B;AAC/B,eAAO,MAAM,+BAA+B;;;EAA6B,CAAC;AAC1E,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,+EAA+E;AAC/E,eAAO,MAAM,yCAAyC;;;;kBAI3C,CAAC;AACZ,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yCAAyC,CAAC,CAAC;AAE5G,gEAAgE;AAChE,eAAO,MAAM,iCAAiC;;;;;;;kBAOnC,CAAC;AACZ,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAM5F;;;mGAGmG;AACnG,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA6B5B,CAAC;AACZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAO9E,mCAAmC;AACnC,eAAO,MAAM,qCAAqC;;;;;EAAmD,CAAC;AACtG,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEpG;;oDAEoD;AACpD,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;kBAQnC,CAAC;AACZ,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
// Trust & Safety — durable uploader-notice delivery state machine (Appendix A
|
|
2
|
-
// §A11 [H-10]).
|
|
3
|
-
//
|
|
4
|
-
// `nciiCases/{caseId}/uploaderNotices/{noticeId}` — the uploader notice is a
|
|
5
|
-
// first-class durable delivery record like every other NCII workflow object (NOT
|
|
6
|
-
// just two bare enums). NOTE: this notices cluster OWNS the
|
|
7
|
-
// `nciiCases/{caseId}/uploaderNotices/{noticeId}` subcollection schema even though
|
|
8
|
-
// the `nciiCases` root doc itself is owned by the requests cluster.
|
|
9
|
-
//
|
|
10
|
-
// Deterministic `noticeId = sha256('ncii-uploader-notice-v1:' + caseId + ':' +
|
|
11
|
-
// recipientUid + ':' + removalGeneration)`. The client-supplied ≥128-bit
|
|
12
|
-
// `idempotencyKey` together with the deterministic noticeId guarantees one record
|
|
13
|
-
// per retry.
|
|
14
|
-
//
|
|
15
|
-
// TRANSITIONS [H-10]:
|
|
16
|
-
// pending → sent | delayed | suppressed | notApplicable
|
|
17
|
-
// delayed → sent (when `delayedUntil` elapses and no suppression applies)
|
|
18
|
-
// delayed → suppressed
|
|
19
|
-
// A failed delivery re-drives through `command` (retry/dead-letter), never silently
|
|
20
|
-
// drops. Each terminal/transition writes the matching NciiActionType
|
|
21
|
-
// (`uploaderNoticeSent` / `uploaderNoticeDelayed` / `uploaderNoticeSuppressed` /
|
|
22
|
-
// `uploaderNoticeNotApplicable`) to the request `actions` log.
|
|
23
|
-
//
|
|
24
|
-
// Every shape here is transcribed verbatim from docs/code_changes_needed/
|
|
25
|
-
// trust-and-safety/IMPLEMENTATION_PLAN.md Appendix A §A11 [H-10] — no invented
|
|
26
|
-
// values, no placeholders.
|
|
27
|
-
//
|
|
28
|
-
// SHARED enums come from ../safety/foundation.js (the single source for every
|
|
29
|
-
// cross-cluster enum); they are NEVER redefined here. This cluster IMPORTS
|
|
30
|
-
// UploaderNoticeStatusSchema + UploaderNoticeReasonSchema.
|
|
31
|
-
//
|
|
32
|
-
// Collection note: this cluster owns a NEW subcollection of the requests-cluster
|
|
33
|
-
// `nciiCases` root (+ an append-only per-attempt ledger); wiring collections.ts /
|
|
34
|
-
// path-builders.ts / registry.ts is deferred to the app leg (the orchestrator
|
|
35
|
-
// binds the schemas + path builders there); the deterministic doc-id shape is
|
|
36
|
-
// documented on each schema below.
|
|
37
|
-
import { z } from 'zod';
|
|
38
|
-
import { UploaderNoticeStatusSchema, UploaderNoticeReasonSchema, } from '../safety/foundation.js';
|
|
39
|
-
// ===========================================================================
|
|
40
|
-
// §A11 [H-10] — delivery channel + embedded shapes
|
|
41
|
-
// ===========================================================================
|
|
42
|
-
/** Notice delivery channel. */
|
|
43
|
-
export const NciiUploaderNoticeChannelSchema = z.enum(['inApp', 'email']);
|
|
44
|
-
/** Who the notice is for, snapshotted at decision time (NEVER re-resolved). */
|
|
45
|
-
export const NciiUploaderNoticeRecipientSnapshotSchema = z.object({
|
|
46
|
-
uid: z.string().min(1),
|
|
47
|
-
deliveryAddressRef: z.string().min(1),
|
|
48
|
-
capturedAt: z.number(),
|
|
49
|
-
}).strict();
|
|
50
|
-
/** Durable retry/dead-letter delivery command on the notice. */
|
|
51
|
-
export const NciiUploaderNoticeCommandV1Schema = z.object({
|
|
52
|
-
commandId: z.string().min(1),
|
|
53
|
-
attemptCount: z.number(),
|
|
54
|
-
nextAttemptAt: z.number().optional(),
|
|
55
|
-
leaseOwner: z.string().min(1).optional(),
|
|
56
|
-
leaseExpiresAt: z.number().optional(),
|
|
57
|
-
lastErrorCode: z.string().optional(),
|
|
58
|
-
}).strict();
|
|
59
|
-
// ===========================================================================
|
|
60
|
-
// §A11 [H-10] — nciiCases/{caseId}/uploaderNotices/{noticeId}
|
|
61
|
-
// ===========================================================================
|
|
62
|
-
/** `nciiCases/{caseId}/uploaderNotices/{noticeId}` — durable uploader-notice
|
|
63
|
-
* delivery record (OWNED by the notices cluster). Doc id `noticeId` is
|
|
64
|
-
* deterministic:
|
|
65
|
-
* `sha256('ncii-uploader-notice-v1:' + caseId + ':' + recipientUid + ':' + removalGeneration)`. */
|
|
66
|
-
export const NciiUploaderNoticeV1Schema = z.object({
|
|
67
|
-
schemaVersion: z.literal(1),
|
|
68
|
-
noticeId: z.string().min(1),
|
|
69
|
-
caseId: z.string().min(1),
|
|
70
|
-
requestIds: z.array(z.string().min(1)).max(16),
|
|
71
|
-
removalGeneration: z.number(),
|
|
72
|
-
// who, snapshotted at decision time (never re-resolved)
|
|
73
|
-
recipientSnapshot: NciiUploaderNoticeRecipientSnapshotSchema,
|
|
74
|
-
channel: NciiUploaderNoticeChannelSchema,
|
|
75
|
-
// the notice template + version actually used
|
|
76
|
-
templateId: z.string().min(1),
|
|
77
|
-
templateVersion: z.number(),
|
|
78
|
-
// 'pending'|'sent'|'delayed'|'suppressed'|'notApplicable'
|
|
79
|
-
status: UploaderNoticeStatusSchema,
|
|
80
|
-
// present ONLY when status='suppressed' (+ restricted rationale via rationaleRef + reviewer identity)
|
|
81
|
-
suppressionReason: UploaderNoticeReasonSchema.optional(),
|
|
82
|
-
// suppression/delay rationale (restricted) + reviewer identity
|
|
83
|
-
rationaleRef: z.string().min(1).optional(),
|
|
84
|
-
decidedByUid: z.string().min(1).optional(),
|
|
85
|
-
// when status='delayed' — the scheduled re-evaluation time (delayed → sent transition)
|
|
86
|
-
delayedUntil: z.number().optional(),
|
|
87
|
-
// ≥128-bit; with the deterministic noticeId guarantees one record per retry
|
|
88
|
-
idempotencyKey: z.string().min(1),
|
|
89
|
-
// durable retry/dead-letter delivery command
|
|
90
|
-
command: NciiUploaderNoticeCommandV1Schema,
|
|
91
|
-
// proof of delivery (provider receipt / read marker), when available
|
|
92
|
-
verifiedDeliveredAt: z.number().optional(),
|
|
93
|
-
createdAt: z.number(),
|
|
94
|
-
updatedAt: z.number(),
|
|
95
|
-
}).strict();
|
|
96
|
-
// ===========================================================================
|
|
97
|
-
// §A11 [H-10] — nciiCases/{caseId}/uploaderNotices/{noticeId}/attempts/{attemptId}
|
|
98
|
-
// IMMUTABLE append-only per-attempt ledger.
|
|
99
|
-
// ===========================================================================
|
|
100
|
-
/** Per-attempt delivery result. */
|
|
101
|
-
export const NciiUploaderNoticeAttemptResultSchema = z.enum(['queued', 'sent', 'failed', 'deferred']);
|
|
102
|
-
/** `nciiCases/{caseId}/uploaderNotices/{noticeId}/attempts/{attemptId}` —
|
|
103
|
-
* IMMUTABLE append-only per-attempt ledger. Doc id `attemptId` is a
|
|
104
|
-
* deterministic/assigned id (z.string().min(1)). */
|
|
105
|
-
export const NciiUploaderNoticeAttemptV1Schema = z.object({
|
|
106
|
-
schemaVersion: z.literal(1),
|
|
107
|
-
attemptId: z.string().min(1),
|
|
108
|
-
at: z.number(),
|
|
109
|
-
channel: NciiUploaderNoticeChannelSchema,
|
|
110
|
-
result: NciiUploaderNoticeAttemptResultSchema,
|
|
111
|
-
providerRef: z.string().min(1).optional(),
|
|
112
|
-
errorCode: z.string().optional(),
|
|
113
|
-
}).strict();
|
|
114
|
-
//# sourceMappingURL=notices.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"notices.js","sourceRoot":"","sources":["../../../src/doc-schemas/ncii/notices.ts"],"names":[],"mappings":"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"}
|