@the-40-thieves/obsidian-tc-shared 1.31.1 → 1.31.3

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.
@@ -98,6 +98,7 @@ export declare const ExperientialConfigSchema: z.ZodObject<{
98
98
  apiKey: z.ZodOptional<z.ZodString>;
99
99
  apiKeyEnv: z.ZodDefault<z.ZodString>;
100
100
  baseUrl: z.ZodDefault<z.ZodString>;
101
+ allowPlainHttp: z.ZodDefault<z.ZodBoolean>;
101
102
  timeoutMs: z.ZodOptional<z.ZodNumber>;
102
103
  }, z.core.$strip>>;
103
104
  }, z.core.$strip>>;
@@ -1 +1 @@
1
- {"version":3,"file":"retrieval.schema.d.ts","sourceRoot":"","sources":["../../src/config/retrieval.schema.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA4BxB,oFAAoF;AACpF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0WhC,CAAC;AAEH;;;;0DAI0D;AAC1D,eAAO,MAAM,uBAAuB;;;;iBAQlC,CAAC;AAEH;yEACyE;AACzE,eAAO,MAAM,mBAAmB;;;;;;;;;;iBA+B9B,CAAC;AAEH,0EAA0E;AAC1E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmbnC,CAAC"}
1
+ {"version":3,"file":"retrieval.schema.d.ts","sourceRoot":"","sources":["../../src/config/retrieval.schema.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,oFAAoF;AACpF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0WhC,CAAC;AAEH;;;;0DAI0D;AAC1D,eAAO,MAAM,uBAAuB;;;;iBAQlC,CAAC;AAEH;yEACyE;AACzE,eAAO,MAAM,mBAAmB;;;;;;;;;;iBA+B9B,CAAC;AAEH,0EAA0E;AAC1E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmcnC,CAAC"}
@@ -7,38 +7,15 @@
7
7
  // a cross-domain read, so it stays here rather than moving to config.schema.ts's own superRefine.
8
8
  // It also added the first non-Zod import, `isLoopbackHost` from `../net-host` — a dependency-free
9
9
  // leaf util (same category as Zod itself, not a schema module), reused rather than reimplemented
10
- // for citationInfer.judge.baseUrl's https-unless-loopback check.
10
+ // for citationInfer.judge.baseUrl's https-unless-loopback check. THE-1084 review round 1 replaced
11
+ // this file's own hand-rolled `://`-requiring regex parser with `classifyJudgeBaseUrl` (also
12
+ // `../net-host`) after that regex rejected a WHATWG-valid-but-non-canonical URL
13
+ // ("http:evil.example/path") as unparseable, and the refine below treated "unparseable" as "not
14
+ // remote http" — see classifyJudgeBaseUrl's own doc comment. The doctor warning
15
+ // (doctor/citation-judge.ts) and the runtime builder (experiential/citation-judge.ts) now call the
16
+ // SAME function, so all three can never classify one baseUrl three different ways again.
11
17
  import { z } from "zod";
12
- import { isLoopbackHost } from "../net-host";
13
- /**
14
- * Minimal, dependency-free parse of a URL string's scheme + host, for the baseUrl check below.
15
- * This package is deliberately isomorphic and carries no Node/DOM type dependency (no `@types/
16
- * node`, no `lib: "dom"`) — the global `URL` class exists at RUNTIME on every platform this ships
17
- * to, but is untyped here, so a narrow regex is used instead of `new URL(...)`. `.url()` on the
18
- * field below already validated the string is well-formed; this only answers two questions about
19
- * it: which scheme, and what host (port and userinfo stripped, IPv6 brackets kept — the same shape
20
- * `isLoopbackHost` expects).
21
- */
22
- function parseSchemeAndHost(u) {
23
- const m = /^([a-zA-Z][a-zA-Z0-9+.-]*):\/\/([^/?#]*)/.exec(u);
24
- if (!m)
25
- return null;
26
- let host = m[2] ?? "";
27
- const at = host.lastIndexOf("@");
28
- if (at !== -1)
29
- host = host.slice(at + 1); // drop userinfo (user:pass@)
30
- if (host.startsWith("[")) {
31
- const end = host.indexOf("]");
32
- if (end !== -1)
33
- host = host.slice(0, end + 1); // "[::1]:443" -> "[::1]"
34
- }
35
- else {
36
- const colon = host.indexOf(":");
37
- if (colon !== -1)
38
- host = host.slice(0, colon); // "example.com:443" -> "example.com"
39
- }
40
- return { scheme: (m[1] ?? "").toLowerCase(), host };
41
- }
18
+ import { classifyJudgeBaseUrl } from "../net-host";
42
19
  /** THE-397: retrieval-fusion knobs (the first config-exposed retrieval section). */
43
20
  export const RetrievalConfigSchema = z.object({
44
21
  /** RRF constant for graph_rrf fusion. Keep BELOW the stream pool size (~30): larger k lets
@@ -622,20 +599,15 @@ export const ExperientialConfigSchema = z.object({
622
599
  baseUrl: z
623
600
  .string()
624
601
  .url()
625
- // This URL carries the bearer key (Authorization header) and vault-derived
626
- // source/response text in every request body — a plain `http://` endpoint would send
627
- // both in cleartext. Loopback stays allowed unencrypted for a local test/dev double,
628
- // the same carve-out `isLoopbackHost` already draws for the HTTP transport bind.
629
- .refine((u) => {
630
- const parsed = parseSchemeAndHost(u);
631
- if (!parsed)
632
- return false; // unreachable — .url() above already rejected this
633
- return parsed.scheme === "https" || isLoopbackHost(parsed.host);
634
- }, {
635
- message: "judge.baseUrl must use https:// — this URL carries the bearer key and vault-derived source/response text — unless the host is loopback (localhost/127.0.0.1/[::1]) for a local test or dev endpoint.",
636
- })
602
+ // The https-unless-loopback rule lives in the object-level superRefine below, not
603
+ // here: it needs to see the sibling `allowPlainHttp` field, which a per-field .refine
604
+ // on this string cannot reach.
637
605
  .default("https://api.typesafe.ai")
638
- .describe("TypeSafe API base URL. Must be https:// unless the host is loopback (a local test/dev endpoint) — this URL carries the bearer key and vault-derived text."),
606
+ .describe("TypeSafe API base URL. Must be https:// unless the host is loopback (a local test/dev endpoint) or allowPlainHttp is set — this URL carries the bearer key and vault-derived text."),
607
+ allowPlainHttp: z
608
+ .boolean()
609
+ .default(false)
610
+ .describe("Widen the https-unless-loopback rule on judge.baseUrl to allow ANY http:// host, not just loopback. Intended ONLY for a gateway reachable over a host-local docker network or an encrypted overlay (e.g. Tailscale) — such as the Cave LiteLLM gateway's pass-through endpoint (`http://litellm:4000/typesafe` inside the compose network) — never a plain internet path. The bearer key and vault-derived text still travel in clear over whatever link the URL names; this flag only asserts the operator has judged that link safe, it does not make the traffic safe."),
639
611
  timeoutMs: z
640
612
  .number()
641
613
  .int()
@@ -644,6 +616,27 @@ export const ExperientialConfigSchema = z.object({
644
616
  .describe("Per-attempt request timeout in ms for the TypeSafe client. Defaults to the client's own 60s."),
645
617
  })
646
618
  .superRefine((c, ctx) => {
619
+ // This URL carries the bearer key (Authorization header) and vault-derived
620
+ // source/response text in every request body — a plain `http://` endpoint would send
621
+ // both in cleartext. Loopback stays allowed unencrypted for a local test/dev double,
622
+ // the same carve-out `isLoopbackHost` already draws for the HTTP transport bind;
623
+ // `allowPlainHttp` is a further, explicit opt-in for any other http:// host — and ONLY
624
+ // http://, never any other non-https scheme (classifyJudgeBaseUrl's own doc comment).
625
+ const cls = classifyJudgeBaseUrl(c.baseUrl);
626
+ if (cls === "invalid") {
627
+ ctx.addIssue({
628
+ code: z.ZodIssueCode.custom,
629
+ path: ["baseUrl"],
630
+ message: 'judge.baseUrl must be a canonical "scheme://host" URL with scheme https or http — either it could not be parsed that way, or its scheme is neither (e.g. ftp:/file:). allowPlainHttp only ever widens http:// on a non-loopback host, never any other scheme.',
631
+ });
632
+ }
633
+ else if (cls === "http-remote" && !c.allowPlainHttp) {
634
+ ctx.addIssue({
635
+ code: z.ZodIssueCode.custom,
636
+ path: ["baseUrl"],
637
+ message: "judge.baseUrl must use https:// — this URL carries the bearer key and vault-derived source/response text — unless the host is loopback (localhost/127.0.0.1/[::1]) for a local test or dev endpoint, or judge.allowPlainHttp is explicitly set to opt into a trusted plain-http path (e.g. a host-local gateway or an encrypted overlay).",
638
+ });
639
+ }
647
640
  // Scoped to provider "typesafe" ONLY: the gateway's own `judge` role is free to name
648
641
  // any model string it likes (that is the gateway's contract, not this block's), so this
649
642
  // predicate must not reject a `model` set here while `provider` stays "gateway".
@@ -1 +1 @@
1
- {"version":3,"file":"retrieval.schema.js","sourceRoot":"","sources":["../../src/config/retrieval.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retrieval.schema.js","sourceRoot":"","sources":["../../src/config/retrieval.schema.ts"],"names":[],"mappings":"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"}
@@ -242,6 +242,7 @@ export declare const ServerConfigObject: z.ZodObject<{
242
242
  apiKey: z.ZodOptional<z.ZodString>;
243
243
  apiKeyEnv: z.ZodDefault<z.ZodString>;
244
244
  baseUrl: z.ZodDefault<z.ZodString>;
245
+ allowPlainHttp: z.ZodDefault<z.ZodBoolean>;
245
246
  timeoutMs: z.ZodOptional<z.ZodNumber>;
246
247
  }, z.core.$strip>>;
247
248
  }, z.core.$strip>>;
@@ -645,6 +646,7 @@ export declare const ServerConfigSchema: z.ZodObject<{
645
646
  apiKey: z.ZodOptional<z.ZodString>;
646
647
  apiKeyEnv: z.ZodDefault<z.ZodString>;
647
648
  baseUrl: z.ZodDefault<z.ZodString>;
649
+ allowPlainHttp: z.ZodDefault<z.ZodBoolean>;
648
650
  timeoutMs: z.ZodOptional<z.ZodNumber>;
649
651
  }, z.core.$strip>>;
650
652
  }, z.core.$strip>>;
@@ -1 +1 @@
1
- {"version":3,"file":"server.schema.d.ts","sourceRoot":"","sources":["../../src/config/server.schema.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsCxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyI7B,CAAC;AAKH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6C7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE1D"}
1
+ {"version":3,"file":"server.schema.d.ts","sourceRoot":"","sources":["../../src/config/server.schema.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsCxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyI7B,CAAC;AAKH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6C7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE1D"}
@@ -9,8 +9,30 @@ export declare function normalizeHostForBind(host: string): string;
9
9
  /**
10
10
  * True only for genuine loopback hosts: "localhost", the IPv4 loopback block
11
11
  * 127.0.0.0/8 (octets validated), IPv6 "::1", and IPv4-mapped IPv6 loopback
12
- * "::ffff:127.x.x.x". "0.0.0.0", "::", and any LAN or public address are
13
- * intentionally NOT loopback (F2).
12
+ * "::ffff:127.x.x.x" in EITHER its dotted-quad spelling or the compressed-hex
13
+ * spelling ("::ffff:7f00:1") a real URL parser canonicalizes it to. "0.0.0.0",
14
+ * "::", and any LAN or public address are intentionally NOT loopback (F2).
14
15
  */
15
16
  export declare function isLoopbackHost(host: string): boolean;
17
+ /** THE-1084: how `experiential.citationInfer.judge.baseUrl` (and any URL with the same shape of
18
+ * requirement) is treated by the https-unless-loopback-unless-opted-in rule, centralized so the
19
+ * schema refine, the doctor warning, and the runtime builder's own enforcement can never drift
20
+ * from each other or from three separately hand-rolled parsers (THE-1084 review round 1, finding
21
+ * 1 — that drift is exactly what let a non-canonical URL bypass the schema check).
22
+ *
23
+ * - `"https"` — always fine, any host.
24
+ * - `"http-loopback"` — http:// on a genuine loopback host (localhost/127.0.0.1/[::1] etc) — the
25
+ * existing local test/dev carve-out, unconditional, no flag needed.
26
+ * - `"http-remote"` — http:// on any other host — fine ONLY when the caller has separately
27
+ * confirmed `allowPlainHttp === true`; this function does not read that flag.
28
+ * - `"invalid"` — the URL could not be parsed, OR its scheme is neither https nor http (ftp:,
29
+ * file:, ...). Review round 1 finding 3: the opt-in widens exactly http:// on a non-loopback
30
+ * host, never "any non-https scheme" — an unsupported scheme is invalid regardless of
31
+ * allowPlainHttp, same as an unparseable one.
32
+ */
33
+ export declare function classifyJudgeBaseUrl(u: string): "https" | "http-loopback" | "http-remote" | "invalid";
34
+ /** The host `classifyJudgeBaseUrl` parsed `u` as, for a warning message — never the key, the
35
+ * path, the query, or any userinfo, only `URL.hostname`.
36
+ * Returns undefined for a URL classify would call "invalid" (nothing safe to name). */
37
+ export declare function judgeBaseUrlHost(u: string): string | undefined;
16
38
  //# sourceMappingURL=net-host.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"net-host.d.ts","sourceRoot":"","sources":["../src/net-host.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAYD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CASpD"}
1
+ {"version":3,"file":"net-host.d.ts","sourceRoot":"","sources":["../src/net-host.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AA4BD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAUpD;AAsCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,MAAM,GACR,OAAO,GAAG,eAAe,GAAG,aAAa,GAAG,SAAS,CAMvD;AAED;;wFAEwF;AACxF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9D"}
package/dist/net-host.js CHANGED
@@ -18,11 +18,28 @@ function isStrictIpv4(h) {
18
18
  return false;
19
19
  return m.slice(1).every((octet) => Number(octet) <= 255);
20
20
  }
21
+ // THE-1084 review round 2, finding 2: `new URL("http://[::ffff:127.0.0.1]").hostname` canonicalizes
22
+ // to the COMPRESSED HEX form "[::ffff:7f00:1]", not the dotted-quad spelling below — so a caller
23
+ // that only recognized "::ffff:<dotted>" missed exactly the address the runtime URL parser (and
24
+ // every real caller building this string through it) actually produces. `rest` is the two
25
+ // colon-separated hex groups after "::ffff:" (each 1-4 hex digits, zero-padding optional); this
26
+ // decodes them back to the four bytes they encode. Returns null for anything that isn't that shape.
27
+ function ipv4MappedHexToDotted(rest) {
28
+ const m = /^([0-9a-f]{1,4}):([0-9a-f]{1,4})$/.exec(rest);
29
+ const g1 = m?.[1];
30
+ const g2 = m?.[2];
31
+ if (!g1 || !g2)
32
+ return null;
33
+ const hi = Number.parseInt(g1, 16);
34
+ const lo = Number.parseInt(g2, 16);
35
+ return `${(hi >> 8) & 0xff}.${hi & 0xff}.${(lo >> 8) & 0xff}.${lo & 0xff}`;
36
+ }
21
37
  /**
22
38
  * True only for genuine loopback hosts: "localhost", the IPv4 loopback block
23
39
  * 127.0.0.0/8 (octets validated), IPv6 "::1", and IPv4-mapped IPv6 loopback
24
- * "::ffff:127.x.x.x". "0.0.0.0", "::", and any LAN or public address are
25
- * intentionally NOT loopback (F2).
40
+ * "::ffff:127.x.x.x" in EITHER its dotted-quad spelling or the compressed-hex
41
+ * spelling ("::ffff:7f00:1") a real URL parser canonicalizes it to. "0.0.0.0",
42
+ * "::", and any LAN or public address are intentionally NOT loopback (F2).
26
43
  */
27
44
  export function isLoopbackHost(host) {
28
45
  const h = normalizeHostForBind(host);
@@ -31,9 +48,69 @@ export function isLoopbackHost(host) {
31
48
  if (isStrictIpv4(h))
32
49
  return h.startsWith("127.");
33
50
  if (h.startsWith("::ffff:")) {
34
- const v4 = h.slice("::ffff:".length);
35
- return isStrictIpv4(v4) && v4.startsWith("127.");
51
+ const rest = h.slice("::ffff:".length);
52
+ const dotted = isStrictIpv4(rest) ? rest : ipv4MappedHexToDotted(rest);
53
+ return dotted?.startsWith("127.") ?? false;
36
54
  }
37
55
  return false;
38
56
  }
57
+ // THE-1084 review round 1, finding 1: parses with the RUNTIME `URL` class, which canonicalizes
58
+ // non-canonical-but-valid forms exactly as `new URL()`/`fetch` will before the request actually
59
+ // goes out ("http:evil.example/path" -> scheme "http", host "evil.example" — verified against
60
+ // Node/Bun). A hand-rolled `://`-requiring regex used to be the only parser here and rejected that
61
+ // form as unparseable; the caller then treated "unparseable" as "not remote http" and let it
62
+ // through with allowPlainHttp still false.
63
+ //
64
+ // THE-1084 review round 2, finding 1: an EARLIER version of this function kept that same regex as
65
+ // a fallback for "no global URL" — but the regex is permissive in ways the WHATWG parser is not
66
+ // (it accepted "https://exa mple", "https://%zz", and "http://localhost:99999", all of which
67
+ // `new URL()` rejects), so the fallback could pass a URL the real HTTP client would refuse, or
68
+ // classify one with a host the client will never actually reach. Bun and Node both always have a
69
+ // global `URL`, so there is no real runtime to fall back FOR — removed entirely. When
70
+ // `globalThis.URL` is not a function, this returns `null` (parseJudgeBaseUrl) and the classifier
71
+ // answers "invalid": fail CLOSED, never open, on a classifier a security decision reads.
72
+ function parseJudgeBaseUrl(u) {
73
+ const UrlCtor = globalThis.URL;
74
+ if (typeof UrlCtor !== "function")
75
+ return null;
76
+ try {
77
+ const parsed = new UrlCtor(u);
78
+ return { scheme: parsed.protocol.replace(/:$/, "").toLowerCase(), host: parsed.hostname };
79
+ }
80
+ catch {
81
+ return null;
82
+ }
83
+ }
84
+ /** THE-1084: how `experiential.citationInfer.judge.baseUrl` (and any URL with the same shape of
85
+ * requirement) is treated by the https-unless-loopback-unless-opted-in rule, centralized so the
86
+ * schema refine, the doctor warning, and the runtime builder's own enforcement can never drift
87
+ * from each other or from three separately hand-rolled parsers (THE-1084 review round 1, finding
88
+ * 1 — that drift is exactly what let a non-canonical URL bypass the schema check).
89
+ *
90
+ * - `"https"` — always fine, any host.
91
+ * - `"http-loopback"` — http:// on a genuine loopback host (localhost/127.0.0.1/[::1] etc) — the
92
+ * existing local test/dev carve-out, unconditional, no flag needed.
93
+ * - `"http-remote"` — http:// on any other host — fine ONLY when the caller has separately
94
+ * confirmed `allowPlainHttp === true`; this function does not read that flag.
95
+ * - `"invalid"` — the URL could not be parsed, OR its scheme is neither https nor http (ftp:,
96
+ * file:, ...). Review round 1 finding 3: the opt-in widens exactly http:// on a non-loopback
97
+ * host, never "any non-https scheme" — an unsupported scheme is invalid regardless of
98
+ * allowPlainHttp, same as an unparseable one.
99
+ */
100
+ export function classifyJudgeBaseUrl(u) {
101
+ const parsed = parseJudgeBaseUrl(u);
102
+ if (!parsed?.host)
103
+ return "invalid";
104
+ if (parsed.scheme === "https")
105
+ return "https";
106
+ if (parsed.scheme !== "http")
107
+ return "invalid";
108
+ return isLoopbackHost(parsed.host) ? "http-loopback" : "http-remote";
109
+ }
110
+ /** The host `classifyJudgeBaseUrl` parsed `u` as, for a warning message — never the key, the
111
+ * path, the query, or any userinfo, only `URL.hostname`.
112
+ * Returns undefined for a URL classify would call "invalid" (nothing safe to name). */
113
+ export function judgeBaseUrlHost(u) {
114
+ return parseJudgeBaseUrl(u)?.host;
115
+ }
39
116
  //# sourceMappingURL=net-host.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"net-host.js","sourceRoot":"","sources":["../src/net-host.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,6EAA6E;AAC7E,wBAAwB;AACxB,SAAS,YAAY,CAAC,CAAS;IAC7B,MAAM,CAAC,GAAG,8CAA8C,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAClD,IAAI,YAAY,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"net-host.js","sourceRoot":"","sources":["../src/net-host.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@the-40-thieves/obsidian-tc-shared",
3
- "version": "1.31.1",
3
+ "version": "1.31.3",
4
4
  "description": "Shared Zod schemas and types for obsidian-tc",
5
5
  "license": "AGPL-3.0-only",
6
6
  "type": "module",