You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
and explicit org/session paths). It reads `index.json` files with `readFileSync` and
14
+
probes for their existence with `existsSync`. It never writes, never walks arbitrary
15
+
trees, and never follows network locations.
16
+
-**Usage tracking** — `recordUsage()` / `readUsage()` perform **append-only local
17
+
JSONL writes** (`appendFileSync`) and reads (`readFileSync`) to a path supplied by the
18
+
caller. Events are appended one line at a time; nothing is ever transmitted.
19
+
20
+
Across all three parts:
21
+
22
+
-**No network access** — makes no HTTP requests, opens no sockets.
23
+
-**No code execution** — no `eval`, `Function()`, or dynamic imports.
24
+
-**No telemetry / exfiltration** — usage data stays on the local disk path the caller
25
+
chooses; nothing is collected centrally or sent anywhere.
26
+
-**No secrets** — the library handles loadout metadata only; it reads no credentials,
27
+
environment secrets, or tokens.
28
+
-**No native dependencies** — pure TypeScript, zero production deps.
29
+
30
+
Filesystem access is confined to: reading the caller-specified index files the resolver
31
+
discovers, and reading/appending the caller-specified usage JSONL log. The library never
32
+
writes outside the path the caller hands it.
14
33
15
34
## Input Validation
16
35
17
36
The `parseFrontmatter()` function processes untrusted text input. It uses simple string splitting — no YAML parser, no regex-based evaluation, no prototype pollution vectors.
18
37
19
38
The `validateIndex()` function checks structural integrity of index objects. It does not execute or interpret any field values.
20
39
40
+
The resolver and usage reader treat on-disk files as untrusted: malformed `index.json`
41
+
layers are skipped silently (the layer is reported as not found), and malformed JSONL
42
+
usage lines are skipped without throwing. No file content is ever executed or evaluated.
0 commit comments