@safebrowse/daemon 0.1.3 → 0.1.5

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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # `@safebrowse/daemon`
2
2
 
3
- Localhost SafeBrowse daemon with built-in runtime assets for policy, registry, and KB loading.
3
+ Localhost SafeBrowse daemon with bundled runtime assets for policy, verified registry, and KB loading.
4
4
 
5
5
  ## Install
6
6
 
@@ -11,21 +11,74 @@ npm install @safebrowse/daemon
11
11
  ## Run
12
12
 
13
13
  ```bash
14
- npx @safebrowse/daemon --host 127.0.0.1 --port 8787
14
+ npx @safebrowse/daemon \
15
+ --host 127.0.0.1 \
16
+ --port 8787 \
17
+ --deployment-profile secure_v6 \
18
+ --approval-broker-public-key-path ./knowledge_base/signing/safebrowse_vf_ed25519_public.pem
15
19
  ```
16
20
 
17
- Environment variables:
21
+ When `secure_v6` is selected, the daemon forces:
18
22
 
19
- - `SAFEBROWSE_HOST`
20
- - `SAFEBROWSE_PORT`
21
- - `SAFEBROWSE_ROOT_DIR`
23
+ - approval broker mode `external_service`
24
+ - parser isolation mode `node_permission_process`
22
25
 
23
- Health endpoint:
26
+ ## Model Guard
24
27
 
25
- ```text
26
- GET /health
28
+ The daemon supports a model-guard sidecar protocol for compatible private runtimes. The SDK does not publish model weights or runtime bundles.
29
+
30
+ ```bash
31
+ npx @safebrowse/daemon \
32
+ --model-guard-url http://127.0.0.1:8788 \
33
+ --model-guard-enforcement-mode shadow
27
34
  ```
28
35
 
29
- See the repository README for full daemon routes and operational guidance:
36
+ Supported modes:
37
+
38
+ - `off`: default; no scoring, even when a URL is configured
39
+ - `shadow`: records `compiledObservation.modelAssessment` for deterministic `ALLOW` observations without changing verdicts or authorities
40
+ - `tighten`: only applies stricter outcomes such as approval, read-only replan, or block
41
+
42
+ `GET /health` reports model-guard readiness, bundle/schema metadata, and digest metadata when the sidecar provides it. `secure_v6` claim readiness does not require model availability.
43
+
44
+ ## Routes
45
+
46
+ - `GET /health`
47
+ - `POST /v6/session/start`
48
+ - `POST /v6/observe`
49
+ - `POST /v6/action/evaluate`
50
+ - `POST /v6/approval/issue`
51
+ - `POST /v6/tool/prepare`
52
+ - `POST /v6/tool/callback/verify`
53
+ - `POST /v6/artifact/ingest`
54
+ - `POST /v6/artifact/extract`
55
+ - `POST /v6/memory/stage`
56
+ - `POST /v6/memory/promote`
57
+ - `POST /v6/memory/rollback`
58
+ - `POST /v6/replay/bundle`
59
+
60
+ ## Secure Surface Notes
61
+
62
+ The daemon now accepts both pre-extracted structured captures and direct raw binary inputs for:
63
+
64
+ - MIME email via `rawMimeBase64`
65
+ - DOCX, XLSX, and PPTX via `contentBase64`
66
+
67
+ Those raw inputs are materialized into secure typed captures before normal policy and authority evaluation.
68
+
69
+ ## Environment Variables
70
+
71
+ - `SAFEBROWSE_HOST`
72
+ - `SAFEBROWSE_PORT`
73
+ - `SAFEBROWSE_ROOT_DIR`
74
+ - `SAFEBROWSE_DEPLOYMENT_PROFILE`
75
+ - `SAFEBROWSE_APPROVAL_BROKER_PUBLIC_KEY_PATH`
76
+ - `SAFEBROWSE_APPROVAL_BROKER_MODE`
77
+ - `SAFEBROWSE_PARSER_ISOLATION_MODE`
78
+ - `SAFEBROWSE_MODEL_GUARD_URL`
79
+ - `SAFEBROWSE_MODEL_GUARD_TIMEOUT_MS`
80
+ - `SAFEBROWSE_MODEL_GUARD_ENFORCEMENT_MODE` (`off`, `shadow`, or `tighten`)
81
+
82
+ See the repository README for release and security guidance:
30
83
 
31
- - https://github.com/RobKang1234/safebrowse-sdk#readme
84
+ - [https://github.com/RobKang1234/safebrowse-sdk](https://github.com/RobKang1234/safebrowse-sdk)
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAGA,OAAO,EAAyB,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAElF,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAqBD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,mBAAmB,CA4DrB;AAED,wBAAsB,YAAY,CAChC,IAAI,GAAE,MAAM,EAA0B,EACtC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,IAAI,CAAC,CAmBf"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAGA,OAAO,EAAyB,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAElF,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AA2CD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,mBAAmB,CA6JrB;AAED,wBAAsB,YAAY,CAChC,IAAI,GAAE,MAAM,EAA0B,EACtC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,IAAI,CAAC,CAmBf"}
package/dist/cli.js CHANGED
@@ -4,12 +4,22 @@ import { startSafeBrowseDaemon } from "./server.js";
4
4
  const HELP_TEXT = `SafeBrowse daemon
5
5
 
6
6
  Usage:
7
- safebrowse-daemon [--host 127.0.0.1] [--port 8787] [--root-dir <path>]
7
+ safebrowse-daemon [--host 127.0.0.1] [--port 8787] [--root-dir <path>] [--deployment-profile development|secure_v6]
8
+ [--approval-broker-mode signature_verification|external_service]
9
+ [--parser-isolation-mode scrubbed_process|node_permission_process]
10
+ [--model-guard-url <url>] [--model-guard-timeout-ms <ms>] [--model-guard-enforcement-mode off|shadow|tighten]
8
11
 
9
12
  Environment:
10
13
  SAFEBROWSE_HOST
11
14
  SAFEBROWSE_PORT
12
15
  SAFEBROWSE_ROOT_DIR
16
+ SAFEBROWSE_DEPLOYMENT_PROFILE
17
+ SAFEBROWSE_APPROVAL_BROKER_PUBLIC_KEY_PATH
18
+ SAFEBROWSE_APPROVAL_BROKER_MODE
19
+ SAFEBROWSE_PARSER_ISOLATION_MODE
20
+ SAFEBROWSE_MODEL_GUARD_URL
21
+ SAFEBROWSE_MODEL_GUARD_TIMEOUT_MS
22
+ SAFEBROWSE_MODEL_GUARD_ENFORCEMENT_MODE
13
23
  `;
14
24
  function parsePort(value) {
15
25
  const port = Number.parseInt(value, 10);
@@ -18,6 +28,16 @@ function parsePort(value) {
18
28
  }
19
29
  return port;
20
30
  }
31
+ function parsePositiveInt(value, field) {
32
+ const parsed = Number.parseInt(value, 10);
33
+ if (!Number.isInteger(parsed) || parsed <= 0) {
34
+ throw new Error(`Invalid ${field}: ${value}`);
35
+ }
36
+ return parsed;
37
+ }
38
+ function isModelGuardEnforcementMode(value) {
39
+ return value === "off" || value === "shadow" || value === "tighten";
40
+ }
21
41
  export function formatDaemonHelp() {
22
42
  return HELP_TEXT;
23
43
  }
@@ -27,6 +47,13 @@ export function parseDaemonOptions(argv, env = process.env) {
27
47
  const envHost = env.SAFEBROWSE_HOST?.trim();
28
48
  const envPort = env.SAFEBROWSE_PORT?.trim();
29
49
  const envRootDir = env.SAFEBROWSE_ROOT_DIR?.trim();
50
+ const envDeploymentProfile = env.SAFEBROWSE_DEPLOYMENT_PROFILE?.trim();
51
+ const envApprovalBrokerPublicKeyPath = env.SAFEBROWSE_APPROVAL_BROKER_PUBLIC_KEY_PATH?.trim();
52
+ const envApprovalBrokerMode = env.SAFEBROWSE_APPROVAL_BROKER_MODE?.trim();
53
+ const envParserIsolationMode = env.SAFEBROWSE_PARSER_ISOLATION_MODE?.trim();
54
+ const envModelGuardUrl = env.SAFEBROWSE_MODEL_GUARD_URL?.trim();
55
+ const envModelGuardTimeoutMs = env.SAFEBROWSE_MODEL_GUARD_TIMEOUT_MS?.trim();
56
+ const envModelGuardEnforcementMode = env.SAFEBROWSE_MODEL_GUARD_ENFORCEMENT_MODE?.trim();
30
57
  if (envHost) {
31
58
  options.host = envHost;
32
59
  }
@@ -36,6 +63,29 @@ export function parseDaemonOptions(argv, env = process.env) {
36
63
  if (envRootDir) {
37
64
  options.rootDir = resolve(envRootDir);
38
65
  }
66
+ if (envDeploymentProfile === "development" ||
67
+ envDeploymentProfile === "secure_v6") {
68
+ options.deploymentProfile = envDeploymentProfile;
69
+ }
70
+ if (envApprovalBrokerPublicKeyPath) {
71
+ options.approvalBrokerPublicKeyPath = resolve(envApprovalBrokerPublicKeyPath);
72
+ }
73
+ if (envApprovalBrokerMode === "signature_verification" || envApprovalBrokerMode === "external_service") {
74
+ options.approvalBrokerMode = envApprovalBrokerMode;
75
+ }
76
+ if (envParserIsolationMode === "scrubbed_process" ||
77
+ envParserIsolationMode === "node_permission_process") {
78
+ options.parserIsolationMode = envParserIsolationMode;
79
+ }
80
+ if (envModelGuardUrl) {
81
+ options.modelGuardBaseUrl = envModelGuardUrl;
82
+ }
83
+ if (envModelGuardTimeoutMs) {
84
+ options.modelGuardTimeoutMs = parsePositiveInt(envModelGuardTimeoutMs, "model guard timeout");
85
+ }
86
+ if (envModelGuardEnforcementMode && isModelGuardEnforcementMode(envModelGuardEnforcementMode)) {
87
+ options.modelGuardEnforcementMode = envModelGuardEnforcementMode;
88
+ }
39
89
  while (queue.length > 0) {
40
90
  const arg = queue.shift();
41
91
  if (!arg) {
@@ -69,6 +119,62 @@ export function parseDaemonOptions(argv, env = process.env) {
69
119
  options.rootDir = resolve(value);
70
120
  continue;
71
121
  }
122
+ if (arg === "--deployment-profile") {
123
+ const value = queue.shift();
124
+ if (!value || !["development", "secure_v6"].includes(value)) {
125
+ throw new Error("Invalid value for --deployment-profile");
126
+ }
127
+ options.deploymentProfile = value;
128
+ continue;
129
+ }
130
+ if (arg === "--approval-broker-public-key-path") {
131
+ const value = queue.shift();
132
+ if (!value) {
133
+ throw new Error("Missing value for --approval-broker-public-key-path");
134
+ }
135
+ options.approvalBrokerPublicKeyPath = resolve(value);
136
+ continue;
137
+ }
138
+ if (arg === "--approval-broker-mode") {
139
+ const value = queue.shift();
140
+ if (!value || !["signature_verification", "external_service"].includes(value)) {
141
+ throw new Error("Invalid value for --approval-broker-mode");
142
+ }
143
+ options.approvalBrokerMode = value;
144
+ continue;
145
+ }
146
+ if (arg === "--parser-isolation-mode") {
147
+ const value = queue.shift();
148
+ if (!value || !["scrubbed_process", "node_permission_process"].includes(value)) {
149
+ throw new Error("Invalid value for --parser-isolation-mode");
150
+ }
151
+ options.parserIsolationMode = value;
152
+ continue;
153
+ }
154
+ if (arg === "--model-guard-url") {
155
+ const value = queue.shift();
156
+ if (!value) {
157
+ throw new Error("Missing value for --model-guard-url");
158
+ }
159
+ options.modelGuardBaseUrl = value;
160
+ continue;
161
+ }
162
+ if (arg === "--model-guard-timeout-ms") {
163
+ const value = queue.shift();
164
+ if (!value) {
165
+ throw new Error("Missing value for --model-guard-timeout-ms");
166
+ }
167
+ options.modelGuardTimeoutMs = parsePositiveInt(value, "model guard timeout");
168
+ continue;
169
+ }
170
+ if (arg === "--model-guard-enforcement-mode") {
171
+ const value = queue.shift();
172
+ if (!value || !isModelGuardEnforcementMode(value)) {
173
+ throw new Error("Invalid value for --model-guard-enforcement-mode");
174
+ }
175
+ options.modelGuardEnforcementMode = value;
176
+ continue;
177
+ }
72
178
  throw new Error(`Unknown argument: ${arg}`);
73
179
  }
74
180
  return options;
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
  export { formatDaemonHelp, parseDaemonOptions, runDaemonCli } from "./cli.js";
3
- export { compileObservationInIsolation, probeParserIsolation } from "./parserIsolation.js";
3
+ export { compileObservationInIsolation, createParserIsolationService, probeParserIsolation } from "./parserIsolation.js";
4
4
  export { createSafeBrowseServer, startSafeBrowseDaemon } from "./server.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAQA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAYA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -2,10 +2,10 @@
2
2
  import { resolve } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import { formatDaemonHelp, parseDaemonOptions, runDaemonCli } from "./cli.js";
5
- import { compileObservationInIsolation, probeParserIsolation } from "./parserIsolation.js";
5
+ import { compileObservationInIsolation, createParserIsolationService, probeParserIsolation } from "./parserIsolation.js";
6
6
  import { createSafeBrowseServer, startSafeBrowseDaemon } from "./server.js";
7
7
  export { formatDaemonHelp, parseDaemonOptions, runDaemonCli } from "./cli.js";
8
- export { compileObservationInIsolation, probeParserIsolation } from "./parserIsolation.js";
8
+ export { compileObservationInIsolation, createParserIsolationService, probeParserIsolation } from "./parserIsolation.js";
9
9
  export { createSafeBrowseServer, startSafeBrowseDaemon } from "./server.js";
10
10
  function isDirectExecution() {
11
11
  if (!process.argv[1]) {
@@ -14,10 +14,15 @@ function isDirectExecution() {
14
14
  return fileURLToPath(import.meta.url) === resolve(process.argv[1]);
15
15
  }
16
16
  if (isDirectExecution()) {
17
- runDaemonCli().catch((error) => {
17
+ const startupKeepalive = setInterval(() => undefined, 1 << 30);
18
+ runDaemonCli()
19
+ .catch((error) => {
18
20
  console.error(error instanceof Error ? error.message : String(error));
19
21
  console.error(formatDaemonHelp());
20
22
  process.exitCode = 1;
23
+ })
24
+ .finally(() => {
25
+ clearInterval(startupKeepalive);
21
26
  });
22
27
  }
23
28
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE5E,SAAS,iBAAiB;IACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,IAAI,iBAAiB,EAAE,EAAE,CAAC;IACxB,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE5E,SAAS,iBAAiB;IACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,IAAI,iBAAiB,EAAE,EAAE,CAAC;IACxB,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/D,YAAY,EAAE;SACX,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC;SACD,OAAO,CAAC,GAAG,EAAE;QACZ,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"loaders.d.ts","sourceRoot":"","sources":["../src/loaders.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,oBAAoB,EAEpB,UAAU,EACV,sBAAsB,EAEvB,MAAM,kBAAkB,CAAC;AA6C1B,UAAU,iCAAiC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAoHD,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAS3F;AAED,wBAAgB,uBAAuB,CAAC,OAAO,SAAgB,GAAG;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAOA;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,UAAU,CAAC,CA6BtB;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,sBAAsB,CAAC,CA2BjC;AAED,wBAAgB,qBAAqB,CAAC,OAAO,SAAgB,GAAG,iCAAiC,CAWhG"}
1
+ {"version":3,"file":"loaders.d.ts","sourceRoot":"","sources":["../src/loaders.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAGV,oBAAoB,EAEpB,UAAU,EAEV,sBAAsB,EAEvB,MAAM,kBAAkB,CAAC;AAiG1B,UAAU,iCAAiC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAwMD,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAS3F;AAED,wBAAgB,uBAAuB,CAAC,OAAO,SAAgB,GAAG;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAOA;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,UAAU,CAAC,CA6BtB;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,sBAAsB,CAAC,CAiCjC;AAED,wBAAgB,qBAAqB,CAAC,OAAO,SAAgB,GAAG,iCAAiC,CAWhG"}
package/dist/loaders.js CHANGED
@@ -44,6 +44,9 @@ function toPolicyLayer(name, input) {
44
44
  const origins = (input.origins ?? {});
45
45
  const actions = (input.actions ?? {});
46
46
  const artifacts = (input.artifacts ?? {});
47
+ const email = (input.email ?? {});
48
+ const extraction = (input.extraction ?? {});
49
+ const api = (input.api ?? {});
47
50
  const memory = (input.memory ?? {});
48
51
  const toolProtocol = (input.tool_protocol ?? {});
49
52
  const telemetry = (input.telemetry ?? {});
@@ -63,7 +66,28 @@ function toPolicyLayer(name, input) {
63
66
  artifacts: {
64
67
  enableDocumentHandoff: Boolean(artifacts.enable_document_handoff ?? true),
65
68
  quarantineOnHiddenTextMismatch: Boolean(artifacts.quarantine_on_hidden_text_mismatch ?? true),
66
- allowMimeTypes: artifacts.allow_mime_types ?? []
69
+ allowMimeTypes: artifacts.allow_mime_types ?? [],
70
+ allowAttachmentMimeFamilies: artifacts.allow_attachment_mime_families ?? [],
71
+ maxExtractionDepth: Number(artifacts.max_extraction_depth ?? 3),
72
+ encryptedAttachmentDecision: artifacts.encrypted_attachment_decision ?? "quarantine"
73
+ },
74
+ email: {
75
+ allowedProviders: email.allowed_providers ?? [],
76
+ allowedRecipientDomains: email.allowed_recipient_domains ?? [],
77
+ forbiddenRecipientDomains: email.forbidden_recipient_domains ?? []
78
+ },
79
+ extraction: {
80
+ allowedExtractorIds: extraction.allowed_extractor_ids ?? [],
81
+ maxRecursionDepth: Number(extraction.max_recursion_depth ?? 3),
82
+ maxExpandedBytes: Number(extraction.max_expanded_bytes ?? 5_000_000),
83
+ blockEncryptedChildren: Boolean(extraction.block_encrypted_children ?? true)
84
+ },
85
+ api: {
86
+ allowedProviders: api.allowed_providers ?? [],
87
+ allowedOperationClasses: api.allowed_operation_classes ?? [],
88
+ mutationRequiresApproval: Boolean(api.mutation_requires_approval ?? true),
89
+ exportRequiresApproval: Boolean(api.export_requires_approval ?? true),
90
+ maxResponseBytes: Number(api.max_response_bytes ?? 1_000_000)
67
91
  },
68
92
  memory: {
69
93
  durableWrites: memory.durable_writes ?? "deny",
@@ -111,6 +135,43 @@ function toVerifiedEntry(adapter, bundle, version) {
111
135
  allowLoopbackCallbacks: adapter.allowLoopbackCallbacks ?? false
112
136
  };
113
137
  }
138
+ function toVerifiedApiProviderEntry(provider, bundle, version) {
139
+ return {
140
+ providerId: String(provider.providerId ?? "unknown-provider"),
141
+ bundleId: String(bundle.bundleId ?? "adapter-registry"),
142
+ bundleVersion: version,
143
+ signer: String(provider.signer ?? bundle.signer ?? "unknown"),
144
+ authType: provider.authType ?? "none",
145
+ allowedBaseUrls: provider.allowedBaseUrls ?? [],
146
+ allowedMethods: provider.allowedMethods ?? [],
147
+ allowedOperationClasses: provider.allowedOperationClasses ?? [],
148
+ requestSchemaHash: provider.requestSchemaHash,
149
+ responseSchemaHash: provider.responseSchemaHash,
150
+ allowedScopes: provider.allowedScopes ?? [],
151
+ allowedCallbackOrigins: provider.allowedCallbackOrigins ?? [],
152
+ allowedRedirectUris: provider.allowedRedirectUris ?? [],
153
+ readOnly: provider.readOnly ?? false,
154
+ mutating: provider.mutating ?? false,
155
+ expiresAt: provider.expiresAt ?? bundle.expiresAt
156
+ };
157
+ }
158
+ function toExtractorProfileEntry(extractor, bundle, version) {
159
+ return {
160
+ extractorId: String(extractor.extractorId ?? "unknown-extractor"),
161
+ bundleId: String(bundle.bundleId ?? "adapter-registry"),
162
+ bundleVersion: version,
163
+ signer: String(extractor.signer ?? bundle.signer ?? "unknown"),
164
+ supportedMimeTypes: extractor.supportedMimeTypes ?? [],
165
+ supportedSurfaceTypes: extractor.supportedSurfaceTypes ?? [],
166
+ parserDigest: String(extractor.parserDigest ?? ""),
167
+ maxRecursionDepth: extractor.maxRecursionDepth ?? 3,
168
+ maxExpandedBytes: extractor.maxExpandedBytes ?? 5_000_000,
169
+ networkPolicy: extractor.networkPolicy ?? "deny",
170
+ activeContentPolicy: extractor.activeContentPolicy ?? "block",
171
+ supportedChannels: (extractor.supportedChannels ?? []),
172
+ expiresAt: extractor.expiresAt ?? bundle.expiresAt
173
+ };
174
+ }
114
175
  export async function loadKnowledgeBaseContext(kbDir) {
115
176
  const entries = await Promise.all(Object.entries(KB_FILE_MAP).map(async ([key, fileName]) => {
116
177
  const payload = await readJsonFile(resolve(kbDir, fileName));
@@ -168,7 +229,9 @@ export async function loadVerifiedRegistryBundle(options) {
168
229
  expiresAt: bundle.expiresAt,
169
230
  publicKeyId: bundle.publicKeyId,
170
231
  signatureVerified,
171
- entries: (bundle.adapters ?? []).map((adapter) => toVerifiedEntry(adapter, bundle, version))
232
+ entries: (bundle.adapters ?? []).map((adapter) => toVerifiedEntry(adapter, bundle, version)),
233
+ apiProviders: (bundle.apiProviders ?? []).map((provider) => toVerifiedApiProviderEntry(provider, bundle, version)),
234
+ extractorProfiles: (bundle.extractorProfiles ?? []).map((extractor) => toExtractorProfileEntry(extractor, bundle, version))
172
235
  };
173
236
  }
174
237
  export function buildRegistryDefaults(rootDir = process.cwd()) {
@@ -1 +1 @@
1
- {"version":3,"file":"loaders.js","sourceRoot":"","sources":["../src/loaders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loaders.js","sourceRoot":"","sources":["../src/loaders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { ModelGuardEnforcementMode, ModelGuardObservationRequest, ModelGuardObservationResponse } from "@safebrowse/core";
2
+ export interface ModelGuardClientOptions {
3
+ baseUrl?: string;
4
+ timeoutMs?: number;
5
+ enforcementMode?: ModelGuardEnforcementMode;
6
+ }
7
+ export interface ModelGuardHealthSnapshot {
8
+ configured: boolean;
9
+ ready: boolean;
10
+ runtimeMode: "python_sidecar";
11
+ enforcementMode: ModelGuardEnforcementMode;
12
+ bundleVersion?: string;
13
+ featureSchemaVersion?: string;
14
+ bundleDigest?: string;
15
+ componentDigests?: Record<string, string>;
16
+ lastCheckedAt?: string;
17
+ validationError?: string;
18
+ }
19
+ export interface ModelGuardClient {
20
+ configured: boolean;
21
+ enforcementMode: ModelGuardEnforcementMode;
22
+ scoreObservation(request: ModelGuardObservationRequest): Promise<ModelGuardObservationResponse>;
23
+ getCachedHealth(): Promise<ModelGuardHealthSnapshot>;
24
+ refreshHealth(): Promise<ModelGuardHealthSnapshot>;
25
+ close(): Promise<void>;
26
+ }
27
+ export declare function createModelGuardClient(options?: ModelGuardClientOptions): ModelGuardClient;
28
+ //# sourceMappingURL=modelGuard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelGuard.d.ts","sourceRoot":"","sources":["../src/modelGuard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,yBAAyB,EAGzB,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,kBAAkB,CAAC;AAc1B,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,yBAAyB,CAAC;CAC7C;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,gBAAgB,CAAC;IAC9B,eAAe,EAAE,yBAAyB,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,yBAAyB,CAAC;IAC3C,gBAAgB,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAChG,eAAe,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACrD,aAAa,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAgWD,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,uBAA4B,GAAG,gBAAgB,CAQ9F"}