code wiki / _hdl_build / nx_vizsla_ics.nx

nx_vizsla_ics.nx

buildroot/runtime/_hdl_build/nx_vizsla_ics.nx

31783 B847 linesdepth 6pulls 7 transitivereach 0 importersview sourcekind orphan librarytopic vizsla
docsdependenciesstructsconstsfunctions

about

nx_vizsla_ics.nx -- NISHI VIZSLA R-CAL.4 (census PA14 interop): RFC 5545 iCalendar EXPORT. Operator 2026-07-07: "exposing a calendar for a group to coordinate" -- the sovereign calendar store becomes a standards-compliant .ics artifact ANY calendar app (Google/Apple/Outlook/ Thunderbird) can import or subscribe to. READ-ONLY over the R-CAL data plane (cal: events + rec: RRULE records written by nx_vizsla_calendar); the data never needs a cloud account. Command (argv[1]): export <prefix> <from YYYY-MM-DD> <to YYYY-MM-DD> <out.ics> cal: events with from<=date<=to -> VEVENT (DTSTART/DTEND local floating time) rec: rules intersecting [from,to] (first occurrence <= to AND last >= from) -> VEVENT anchored at sdate + native RRULE passthrough (FREQ=DAILY|WEEKLY|MONTHLY|YEARLY;INTERVAL;COUNT) RFC 5545 discipline (the gate's oracle): CRLF line ends; VERSION:2.0 + PRODID; every VEVENT carries UID (stable "<id>-<YYYYMMDD>@nishi.vizsla") + DTSTAMP; TEXT escaping of \ ; , in SUMMARY; content lines folded at 75 octets (continuation = CRLF + single space). DETERMINISM: no clocks -- DTSTAMP derives from the record's own date, so the same store exports byte-identical .ics every run (subscribable artifact, CID-friendly). HONEST SCOPE: floating local time (no VTIMEZONE) -- right for a same-timezone friend group; TZ-aware export is a later rung. Loud-fail: bad dates, to<from, unwritable out, unknown cmd. spec: knowledge/research/2026-06-22-vizsla-sclass-roadmap.md license_tier: ORIGINAL

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_seg_store.nx nx_canon_cid.nx nx_vizsla_ics.nx

imports: nx_syscalls.nxnx_seg_store.nxnx_canon_cid.nx

imported by: nobody (leaf or entry point)

structs

none

consts

24const K_MAGIC_1970: i64 = 1970
25const K_MAGIC_146097: i64 = 146097
26const K_MAGIC_719468: i64 = 719468
27const K_MAGIC_146096: i64 = 146096
28const K_MAGIC_1460: i64 = 1460
29const K_MAGIC_36524: i64 = 36524
30const K_MAGIC_524288: i64 = 524288
31const K_MAGIC_4096: i64 = 4096
32const K_MAGIC_2048: i64 = 2048
33const K_MAGIC_1024: i64 = 1024

functions

35func vi_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
called by 2: vi_pvi_kmemeq
36func vi_p(s: *u8) -> i64 { sys_write(1, s, vi_slen(s)); return 0 }
called by 1: vi_cmd_export calls 2: sys_writevi_slen
38func vi_eq(a: *u8, b: *u8) -> i64
called by 1: vi_occ
49func vi_atoi(s: *u8) -> i64
60func vi_cat(dst: *u8, off: i64, s: *u8) -> i64
called by 2: vi_hmsvi_cmd_export
66func vi_catc(dst: *u8, off: i64, c: i64) -> i64
called by 2: vi_escvi_fold
71func vi_catn(dst: *u8, off: i64, v: i64) -> i64
called by 1: vi_hms calls 1: sys_mmap
84func vi_kmemeq(b: *u8, off: i64, n: i64, s: *u8) -> i64
called by 2: vi_fieldvi_iskind calls 1: vi_slen
94func vi_field(rec: *u8, rl: i64, want: *u8, out: *u8, cap: i64) -> i64
calls 2: ss_r32vi_kmemeq
121func vi_iskind(b: *u8, koff: i64, kl: i64, pfx: *u8) -> i64
calls 1: vi_kmemeq
127func vi_datedays(s: *u8) -> i64
called by 1: vi_cmd_export calls 1: sys_mmap
168func vi_ymd2days(y0: i64, m: i64, d: i64) -> i64
called by 1: vi_occ
180func vi_civil(z0: i64, out: *i64) -> i64
198func vi_dim(y: i64, m: i64) -> i64
called by 1: vi_occ
215func vi_occ(freq: *u8, sd0: i64, sy: i64, sm: i64, sd: i64, interval: i64, k: i64) -> i64
230func vi_dt8(dst: *u8, off: i64, s: *u8) -> i64
241func vi_hms(dst: *u8, off: i64, m: i64) -> i64
calls 2: vi_catnvi_cat
254func vi_esc(dst: *u8, off: i64, s: *u8) -> i64
calls 1: vi_catc
273func vi_fold(rep: *u8, off: i64, lb: *u8, ll: i64, st: *i64) -> i64
called by 1: vi_cmd_export calls 1: vi_catc
302func vi_cmd_export(argc: i64, argv: *i64) -> i64
492func vi_find2(list: *i64, n: i64, s: *u8) -> i64
501func vi_dup(s: *u8) -> *u8
510func vi_put(keys: *i64, vals: *i64, nf: i64, kp: *u8, st: *i64) -> i64
539func vi_unfold(src: *u8, slen: i64, dst: *u8) -> i64
560func vi_prop(line: *u8, llen: i64, name: *u8, out: *u8, cap: i64) -> i64
592func vi_dtparse(v: *u8, datebuf: *u8) -> i64
618func vi_idfromuid(uid: *u8, out: *u8, cap: i64) -> i64
652func vi_rrparse(v: *u8, freq: *u8, ival: *u8, cnt: *u8) -> i64
682func vi_cmd_import(argc: i64, argv: *i64) -> i64
840func main(argc: i64, argv: *i64) -> i64