code wiki / (root) / nx_takedown.nx

nx_takedown.nx

buildroot/runtime/nx_takedown.nx

6277 B111 linesdepth 0pulls 0 transitivereach 2 importersview sourcekind library
docsdependenciesstructsconstsfunctions

about

nx_takedown.nx -- WRITING/HOSTING arc, rung W-TD-1: NOTICE-AND-TAKEDOWN, the SAFE-HARBOUR POSTURE. ★★★★★★THIRD OPERATOR CORRECTION, 2026-08-04, and it moved the compliance work to a different place entirely: "how it works really is like the dmca takedown -- i don't act as the arbiter of the content and inherit that legal headache, but like google or bing or ai companies i use what is available till its requested to be removed, and i inherit that different set of requirements." THIS IS THE CORRECT ARCHITECTURE AND MY EARLIER ONE WAS BACKWARDS. I had been building a PRE-PUBLICATION ARBITER. In US law that posture is not merely unhelpful, it is often WORSE: * Editorial screening is what turns a conduit into a PUBLISHER, and publishers answer for what they let through. The safe harbours (DMCA 512, and 230 for third-party content) are built for intermediaries who do NOT sit in judgement of every item. * ★★★★★★ACTUAL KNOWLEDGE IS THE ENEMY OF SAFE HARBOUR. 512(c) protection turns on the absence of actual or "red flag" knowledge. A detector that concludes "this is probably unlawful" and proceeds anyway MANUFACTURES the very knowledge that removes the protection. So an aggressive pre-screen can strictly increase exposure. That is the deep reason the operator is right. ⇒ THE DUTY THAT ACTUALLY BINDS IS RESPONSE, NOT PRIOR RESTRAINT: a reachable notice path, expeditious removal on a VALID notice, honest records, and a repeat-infringer policy (512(i)). ⛔THE ONE CLASS THAT IS NOT A TAKEDOWN AT ALL: CSAM. There is an affirmative REPORT-AND-PRESERVE duty (18 U.S.C. 2258A, reporting to NCMEC), and quietly deleting it is not compliance -- it destroys evidence. It gets its own branch and can never be answered with "removed, case closed". ⚠NOT LEGAL ADVICE. This encodes the SHAPE of the regime so a machine can route and a human can answer; it does not decide anyone's case, and where the law is unsettled it says so. Pure integer, NO syscalls, caller owns every buffer. license_tier: ORIGINAL module: nishi-core.hosting.takedown capability: HOSTING_NOTICE_AND_TAKEDOWN

dependencies 0 imports · 2 importers

nx_takedown.nx nx_notice.nx nx_takedown_gate.nx

imports: none

imported by: nx_notice.nxnx_takedown_gate.nx

structs

none

consts

33const TD_COPYRIGHT: i64 = 0 // DMCA 512: counter-notice + restoration exists
34const TD_NCII: i64 = 1 // TAKE IT DOWN Act: 48h removal duty, no casual restoration
35const TD_DEFAMATION: i64 = 2 // truth/harm are for a human (often a court), not a string match
36const TD_PUBLICITY: i64 = 3 // right of publicity, a state-varying tort
37const TD_CSAM: i64 = 4 // NOT a takedown -- preserve + report
40const TD_REJECT_INCOMPLETE: i64 = 0 // notice missing required elements -> do NOT act on it
41const TD_REMOVE: i64 = 1 // expeditious removal (soft-delete: rule 13, history is sacred)
42const TD_REVIEW_HUMAN: i64 = 2 // genuinely contested -> a person decides
43const TD_PRESERVE_REPORT: i64 = 3 // CSAM: preserve evidence + mandatory report. NEVER silent delete.
46const TD_HOURS_NCII: i64 = 48
47const TD_HOURS_EXPEDITIOUS: i64 = 0 - 1
50const TD_REPEAT_DEFAULT: i64 = 3

functions

57func td_notice_valid(has_work: i64, has_locator: i64, has_contact: i64,
called by 1: main
69func td_deadline_hours(class: i64) -> i64
76func td_overdue(class: i64, age_hours: i64) -> i64
called by 2: nl_overduemain calls 1: td_deadline_hours
91func td_action(class: i64, valid: i64) -> i64
101func td_restorable(class: i64) -> i64
called by 1: main
108func td_repeat_action(strikes: i64, threshold: i64) -> i64
called by 2: mainmain