@safebrowse/core 0.1.2-rc.1

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.
Files changed (63) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +22 -0
  3. package/dist/action.d.ts +3 -0
  4. package/dist/action.d.ts.map +1 -0
  5. package/dist/action.js +142 -0
  6. package/dist/action.js.map +1 -0
  7. package/dist/artifact.d.ts +3 -0
  8. package/dist/artifact.d.ts.map +1 -0
  9. package/dist/artifact.js +123 -0
  10. package/dist/artifact.js.map +1 -0
  11. package/dist/artifactV2.d.ts +3 -0
  12. package/dist/artifactV2.d.ts.map +1 -0
  13. package/dist/artifactV2.js +32 -0
  14. package/dist/artifactV2.js.map +1 -0
  15. package/dist/index.d.ts +13 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +13 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/memory.d.ts +3 -0
  20. package/dist/memory.d.ts.map +1 -0
  21. package/dist/memory.js +79 -0
  22. package/dist/memory.js.map +1 -0
  23. package/dist/perf-smoke.d.ts +2 -0
  24. package/dist/perf-smoke.d.ts.map +1 -0
  25. package/dist/perf-smoke.js +86 -0
  26. package/dist/perf-smoke.js.map +1 -0
  27. package/dist/policy.d.ts +3 -0
  28. package/dist/policy.d.ts.map +1 -0
  29. package/dist/policy.js +74 -0
  30. package/dist/policy.js.map +1 -0
  31. package/dist/promptInjection.d.ts +3 -0
  32. package/dist/promptInjection.d.ts.map +1 -0
  33. package/dist/promptInjection.js +58 -0
  34. package/dist/promptInjection.js.map +1 -0
  35. package/dist/replay.d.ts +3 -0
  36. package/dist/replay.d.ts.map +1 -0
  37. package/dist/replay.js +39 -0
  38. package/dist/replay.js.map +1 -0
  39. package/dist/sanitize.d.ts +3 -0
  40. package/dist/sanitize.d.ts.map +1 -0
  41. package/dist/sanitize.js +50 -0
  42. package/dist/sanitize.js.map +1 -0
  43. package/dist/toolProtocol.d.ts +3 -0
  44. package/dist/toolProtocol.d.ts.map +1 -0
  45. package/dist/toolProtocol.js +80 -0
  46. package/dist/toolProtocol.js.map +1 -0
  47. package/dist/toolProtocolV2.d.ts +6 -0
  48. package/dist/toolProtocolV2.d.ts.map +1 -0
  49. package/dist/toolProtocolV2.js +330 -0
  50. package/dist/toolProtocolV2.js.map +1 -0
  51. package/dist/trust.d.ts +4 -0
  52. package/dist/trust.d.ts.map +1 -0
  53. package/dist/trust.js +32 -0
  54. package/dist/trust.js.map +1 -0
  55. package/dist/types.d.ts +399 -0
  56. package/dist/types.d.ts.map +1 -0
  57. package/dist/types.js +2 -0
  58. package/dist/types.js.map +1 -0
  59. package/dist/utils.d.ts +11 -0
  60. package/dist/utils.d.ts.map +1 -0
  61. package/dist/utils.js +102 -0
  62. package/dist/utils.js.map +1 -0
  63. package/package.json +47 -0
@@ -0,0 +1,399 @@
1
+ export type JsonPrimitive = string | number | boolean | null;
2
+ export type JsonValue = JsonPrimitive | JsonObject | JsonValue[];
3
+ export interface JsonObject {
4
+ [key: string]: JsonValue;
5
+ }
6
+ export type SafeDecision = "ALLOW" | "BLOCK" | "REPLAN_READ_ONLY" | "USER_CONFIRM" | "QUARANTINE_ARTIFACT" | "ESCALATE_INCIDENT";
7
+ export type TaintClass = "trusted" | "user-provided" | "session-discovered" | "untrusted" | "tainted";
8
+ export type VisibilityClass = "visible" | "hidden" | "metadata" | "annotation" | "dynamic";
9
+ export type ExtractionMethod = "dom" | "ax-tree" | "ocr" | "download" | "api" | "manual";
10
+ export type ArtifactKind = "page" | "document" | "pdf" | "image" | "archive" | "tool_manifest" | "memory" | "unknown";
11
+ export interface TrustSignalSet {
12
+ sourceOrigin: string;
13
+ frameOrigin: string;
14
+ sameOriginRelation: "same-origin" | "same-site" | "cross-site" | "cross-channel";
15
+ visibilityClass: VisibilityClass;
16
+ extractionMethod: ExtractionMethod;
17
+ artifactKind: ArtifactKind;
18
+ taintClass: TaintClass;
19
+ approvalBindingId?: string;
20
+ lineageChain: string[];
21
+ userSharedFlag: boolean;
22
+ sessionDiscoveredFlag: boolean;
23
+ }
24
+ export type OriginatingSurface = "page" | "artifact" | "tool_description" | "tool_schema" | "memory" | "api";
25
+ export interface ObservationFragment {
26
+ fragmentId: string;
27
+ text: string;
28
+ visibilityClass: VisibilityClass;
29
+ medium: "text" | "ocr" | "metadata" | "annotation";
30
+ sourceOrigin: string;
31
+ frameOrigin: string;
32
+ selector?: string;
33
+ tainted: boolean;
34
+ }
35
+ export interface RawObservationInput {
36
+ observationId?: string;
37
+ taskId?: string;
38
+ sourceType?: "page" | "document" | "tool_text" | "memory" | "api";
39
+ text?: string;
40
+ fragments?: Array<Partial<ObservationFragment> & Pick<ObservationFragment, "text">>;
41
+ trustSignals?: Partial<TrustSignalSet>;
42
+ rawHash?: string;
43
+ }
44
+ export interface ObservationEnvelope {
45
+ observationId: string;
46
+ taskId?: string;
47
+ sourceType: "page" | "document" | "tool_text" | "memory" | "api";
48
+ text: string;
49
+ normalizedText: string;
50
+ fragments: ObservationFragment[];
51
+ trustSignals: TrustSignalSet;
52
+ suspicionFlags: string[];
53
+ matchedPatternIds: string[];
54
+ riskScore: number;
55
+ rawHash?: string;
56
+ createdAt: string;
57
+ }
58
+ export interface TaskEnvelope {
59
+ taskId: string;
60
+ userGoal: string;
61
+ phase?: string;
62
+ allowedOrigins?: string[];
63
+ allowedVerbs?: string[];
64
+ forbiddenSinks?: string[];
65
+ }
66
+ export interface ActionProposal {
67
+ actionId: string;
68
+ taskId?: string;
69
+ verb: string;
70
+ currentOrigin?: string;
71
+ targetOrigin?: string;
72
+ targetUrl?: string;
73
+ parameters?: Record<string, JsonValue>;
74
+ dataRefs?: string[];
75
+ riskClass?: "low" | "medium" | "high" | "critical";
76
+ requestedWrite?: boolean;
77
+ sensitiveSink?: boolean;
78
+ userInitiated?: boolean;
79
+ summary?: string;
80
+ lineage?: string[];
81
+ trustSignals: Partial<TrustSignalSet>;
82
+ }
83
+ export interface SafeVerdict {
84
+ decision: SafeDecision;
85
+ reasonCodes: string[];
86
+ riskScore: number;
87
+ safeConstraints?: Record<string, JsonValue>;
88
+ matchedPatternIds?: string[];
89
+ incidentPlaybookId?: string;
90
+ telemetryTags?: string[];
91
+ }
92
+ export interface ArtifactInput {
93
+ artifactId?: string;
94
+ path?: string;
95
+ bytes?: Uint8Array;
96
+ mimeType: string;
97
+ surfaceKind?: ArtifactKind;
98
+ sourceOrigin?: string;
99
+ viewerOrigin?: string;
100
+ downloadOrigin?: string;
101
+ extractionMethod?: ExtractionMethod;
102
+ renderedText?: string;
103
+ extractedText?: string;
104
+ ocrText?: string;
105
+ annotations?: string[];
106
+ metadataText?: string[];
107
+ trustSignals?: Partial<TrustSignalSet>;
108
+ }
109
+ export interface ArtifactEnvelope {
110
+ artifactId: string;
111
+ mimeType: string;
112
+ surfaceKind: ArtifactKind;
113
+ sourceOrigin: string;
114
+ viewerOrigin?: string;
115
+ downloadOrigin?: string;
116
+ extractionMethod: ExtractionMethod;
117
+ sha256: string;
118
+ sizeBytes: number;
119
+ mismatchSignals: string[];
120
+ metadataSignals: string[];
121
+ trustSignals: TrustSignalSet;
122
+ lineageChain: string[];
123
+ derivedTaintClass?: TaintClass;
124
+ toolActivationPolicy?: "allow" | "user_confirm" | "block";
125
+ approvalRequiredForFollowOn?: boolean;
126
+ sourceObservationId?: string;
127
+ createdAt: string;
128
+ }
129
+ export interface ArtifactBrokerResult {
130
+ artifact: ArtifactEnvelope;
131
+ verdict: SafeVerdict;
132
+ }
133
+ export interface ToolRequest {
134
+ requestId: string;
135
+ toolId: string;
136
+ description: string;
137
+ schemaDescriptions?: string[];
138
+ authType?: "none" | "oauth" | "api_key";
139
+ requestedRedirectUri?: string;
140
+ allowedRedirectUris?: string[];
141
+ tokenPassthroughRequested?: boolean;
142
+ egressHosts?: string[];
143
+ registrySigned?: boolean;
144
+ registrySigner?: string;
145
+ allowLocalhostEgress?: boolean;
146
+ registryEntryId?: string;
147
+ registryBundleId?: string;
148
+ manifestHash?: string;
149
+ schemaHash?: string;
150
+ requestedScopes?: string[];
151
+ callbackUri?: string;
152
+ callbackOrigin?: string;
153
+ sourceObservationId?: string;
154
+ sourceArtifactId?: string;
155
+ originatingSurface?: OriginatingSurface;
156
+ approvalBindingId?: string;
157
+ oauthContext?: OAuthContext;
158
+ trustSignals?: Partial<TrustSignalSet>;
159
+ }
160
+ export interface OAuthContext {
161
+ authorizationServer?: string;
162
+ redirectUri?: string;
163
+ callbackUri?: string;
164
+ callbackOrigin?: string;
165
+ requiresPkce?: boolean;
166
+ pkceMethod?: "S256" | "plain";
167
+ requestedScopes?: string[];
168
+ }
169
+ export interface VerifiedRegistryEntry {
170
+ registryEntryId: string;
171
+ adapterId: string;
172
+ bundleId: string;
173
+ bundleVersion: string;
174
+ signer: string;
175
+ authType: "none" | "oauth" | "api_key";
176
+ package?: string;
177
+ mode?: string;
178
+ capabilities: string[];
179
+ allowedTransports: string[];
180
+ allowedRedirectUris: string[];
181
+ allowedCallbackOrigins: string[];
182
+ allowedScopes: string[];
183
+ manifestHash?: string;
184
+ schemaHash?: string;
185
+ expiresAt?: string;
186
+ allowPrivateEgress?: boolean;
187
+ allowLoopbackCallbacks?: boolean;
188
+ }
189
+ export interface VerifiedRegistryBundle {
190
+ bundleId: string;
191
+ version: string;
192
+ signer: string;
193
+ generatedAt: string;
194
+ expiresAt?: string;
195
+ publicKeyId?: string;
196
+ signatureVerified: boolean;
197
+ entries: VerifiedRegistryEntry[];
198
+ }
199
+ export interface WorkflowBinding {
200
+ bindingId: string;
201
+ sourceObservationId?: string;
202
+ sourceArtifactId?: string;
203
+ originatingSurface: OriginatingSurface;
204
+ lineageChain: string[];
205
+ derivedTaintClass: TaintClass;
206
+ createdAt: string;
207
+ }
208
+ export interface ToolOnboardingSession {
209
+ sessionId: string;
210
+ approvalBindingId: string;
211
+ workflowBindingId?: string;
212
+ toolId: string;
213
+ registryEntryId: string;
214
+ registryBundleId: string;
215
+ callbackUri: string;
216
+ callbackOrigin: string;
217
+ requestedScopes: string[];
218
+ state: string;
219
+ pkceMethod: "S256";
220
+ createdAt: string;
221
+ expiresAt: string;
222
+ status: "prepared" | "used" | "expired";
223
+ }
224
+ export interface ToolPreparationResult {
225
+ verdict: SafeVerdict;
226
+ verifiedRegistryEntry?: VerifiedRegistryEntry;
227
+ workflowBinding?: WorkflowBinding;
228
+ }
229
+ export interface ToolCallbackVerificationRequest {
230
+ sessionId: string;
231
+ callbackUri: string;
232
+ callbackOrigin: string;
233
+ state: string;
234
+ payload?: Record<string, JsonValue>;
235
+ }
236
+ export interface ToolCallbackVerificationResult {
237
+ verdict: SafeVerdict;
238
+ sessionId: string;
239
+ verifiedAt: string;
240
+ }
241
+ export interface ArtifactV2Input extends ArtifactInput {
242
+ sourceObservationId?: string;
243
+ followOnToolRequest?: ToolRequest;
244
+ }
245
+ export interface ArtifactV2Result extends ArtifactBrokerResult {
246
+ followOnToolVerdict?: SafeVerdict;
247
+ workflowBinding?: WorkflowBinding;
248
+ }
249
+ export interface MemoryWriteRequest {
250
+ entryId: string;
251
+ key: string;
252
+ value: JsonValue;
253
+ source: "user" | "web" | "system";
254
+ durable: boolean;
255
+ previousValue?: JsonValue;
256
+ trustSignals?: Partial<TrustSignalSet>;
257
+ }
258
+ export interface ReplayEvent {
259
+ eventId: string;
260
+ kind: "observation" | "action" | "artifact" | "tool" | "memory" | "verdict";
261
+ payload: JsonValue;
262
+ trustSignals?: Partial<TrustSignalSet>;
263
+ timestamp?: string;
264
+ }
265
+ export interface ReplayBundle {
266
+ bundleId: string;
267
+ createdAt: string;
268
+ policyVersion: string;
269
+ profile: string;
270
+ policyLayers?: PolicyLayerProvenance[];
271
+ eventDigests: string[];
272
+ events: ReplayEvent[];
273
+ metrics: {
274
+ totalEvents: number;
275
+ blockingDecisions: number;
276
+ reviewDecisions: number;
277
+ };
278
+ }
279
+ export interface PolicyLayerProvenance {
280
+ name: string;
281
+ version: string;
282
+ profile: string;
283
+ }
284
+ export interface PolicyLayer {
285
+ name: string;
286
+ version: string;
287
+ profile: string;
288
+ origins?: {
289
+ readOnlyAllow?: string[];
290
+ writableAllow?: string[];
291
+ };
292
+ actions?: {
293
+ allow?: string[];
294
+ requireApproval?: string[];
295
+ deny?: string[];
296
+ };
297
+ artifacts?: {
298
+ enableDocumentHandoff?: boolean;
299
+ quarantineOnHiddenTextMismatch?: boolean;
300
+ allowMimeTypes?: string[];
301
+ };
302
+ memory?: {
303
+ durableWrites?: "allow" | "deny" | "approval";
304
+ protectedKeys?: string[];
305
+ };
306
+ toolProtocol?: {
307
+ forbidTokenPassthrough?: boolean;
308
+ enforceExactRedirectUri?: boolean;
309
+ allowedRegistrySigners?: string[];
310
+ requireVerifiedRegistry?: boolean;
311
+ requireApprovalBinding?: boolean;
312
+ requireOauthStateBinding?: boolean;
313
+ taintedConnectorFlowDecision?: "block" | "user_confirm";
314
+ allowLoopbackCallbacksInDev?: boolean;
315
+ };
316
+ telemetry?: {
317
+ replayBundle?: boolean;
318
+ redactSensitiveValues?: boolean;
319
+ sampling?: "full" | "adaptive" | "off";
320
+ };
321
+ raw?: Record<string, JsonValue>;
322
+ }
323
+ export interface PolicyPack {
324
+ packId: string;
325
+ profile: string;
326
+ version: string;
327
+ layers: PolicyLayer[];
328
+ metadata?: Record<string, JsonValue>;
329
+ }
330
+ export interface KBOverlay {
331
+ overlayId: string;
332
+ targetKbIds: string[];
333
+ additions: Array<Record<string, unknown>>;
334
+ metadata?: Record<string, JsonValue>;
335
+ }
336
+ export interface CompiledPolicy {
337
+ packId: string;
338
+ profile: string;
339
+ version: string;
340
+ layerOrder: string[];
341
+ layerProvenance: PolicyLayerProvenance[];
342
+ readOnlyOrigins: ReadonlySet<string>;
343
+ writableOrigins: ReadonlySet<string>;
344
+ allowedActions: ReadonlySet<string>;
345
+ approvalActions: ReadonlySet<string>;
346
+ deniedActions: ReadonlySet<string>;
347
+ allowedMimeTypes: ReadonlySet<string>;
348
+ protectedMemoryKeys: ReadonlySet<string>;
349
+ memoryDurableWrites: "allow" | "deny" | "approval";
350
+ forbidTokenPassthrough: boolean;
351
+ enforceExactRedirectUri: boolean;
352
+ allowedRegistrySigners: ReadonlySet<string>;
353
+ requireVerifiedRegistry: boolean;
354
+ requireApprovalBinding: boolean;
355
+ requireOauthStateBinding: boolean;
356
+ taintedConnectorFlowDecision: "block" | "user_confirm";
357
+ allowLoopbackCallbacksInDev: boolean;
358
+ enableDocumentHandoff: boolean;
359
+ quarantineOnHiddenTextMismatch: boolean;
360
+ replayBundle: boolean;
361
+ redactSensitiveValues: boolean;
362
+ telemetrySampling: "full" | "adaptive" | "off";
363
+ compiledAt: string;
364
+ }
365
+ export interface KnowledgeBaseContext {
366
+ promptInjectionPatterns: Array<Record<string, unknown>>;
367
+ actionIntegrityPatterns: Array<Record<string, unknown>>;
368
+ artifactSurfacePatterns: Array<Record<string, unknown>>;
369
+ toolProtocolPatterns: Array<Record<string, unknown>>;
370
+ memoryContextPatterns: Array<Record<string, unknown>>;
371
+ trustSignalsCatalog: Array<Record<string, unknown>>;
372
+ policyControls: Array<Record<string, unknown>>;
373
+ incidentPlaybooks: Array<Record<string, unknown>>;
374
+ evaluationScenarios: Array<Record<string, unknown>>;
375
+ sourceRegistry: Array<Record<string, unknown>>;
376
+ }
377
+ export interface MetadataCriticInput {
378
+ actionId: string;
379
+ verb: string;
380
+ targetOrigin: string;
381
+ requestedWrite: boolean;
382
+ taintClass: TaintClass;
383
+ sameOriginRelation: TrustSignalSet["sameOriginRelation"];
384
+ reasonCodes: string[];
385
+ }
386
+ export interface RuntimeContext {
387
+ policy: CompiledPolicy;
388
+ knowledgeBase?: Partial<KnowledgeBaseContext>;
389
+ taskEnvelope?: TaskEnvelope;
390
+ verifiedRegistry?: VerifiedRegistryBundle;
391
+ metadataOnlyCritic?: (input: MetadataCriticInput) => number;
392
+ now?: () => Date;
393
+ }
394
+ export interface PromptGuardResult {
395
+ suspicionFlags: string[];
396
+ matchedPatternIds: string[];
397
+ riskScore: number;
398
+ }
399
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ export declare function normalizeOrigin(input?: string): string;
2
+ export declare function sameOriginRelation(sourceOrigin: string, targetOrigin: string): "same-origin" | "same-site" | "cross-site" | "cross-channel";
3
+ export declare function normalizeText(input: string): string;
4
+ export declare function tokenize(input: string): string[];
5
+ export declare function overlapScore(left: string, right: string): number;
6
+ export declare function sha256Hex(input: string | Uint8Array): string;
7
+ export declare function stableStringify(value: unknown): string;
8
+ export declare function isPrivateHost(input: string): boolean;
9
+ export declare function clamp(value: number, min?: number, max?: number): number;
10
+ export declare function uniq<T>(values: Iterable<T>): T[];
11
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAYtD;AAaD,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,eAAe,CAW9D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAKhD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAehE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAE5D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAetD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAmBpD;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAI,EAAE,GAAG,SAAI,GAAG,MAAM,CAE7D;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAEhD"}
package/dist/utils.js ADDED
@@ -0,0 +1,102 @@
1
+ import { createHash } from "node:crypto";
2
+ export function normalizeOrigin(input) {
3
+ if (!input) {
4
+ return "unknown";
5
+ }
6
+ try {
7
+ const value = input.includes("://") ? input : `https://${input}`;
8
+ const url = new URL(value);
9
+ return url.origin.toLowerCase();
10
+ }
11
+ catch {
12
+ return input.trim().toLowerCase() || "unknown";
13
+ }
14
+ }
15
+ function siteKey(origin) {
16
+ try {
17
+ const host = new URL(origin).hostname.toLowerCase();
18
+ const parts = host.split(".").filter(Boolean);
19
+ return parts.slice(-2).join(".");
20
+ }
21
+ catch {
22
+ const parts = origin.toLowerCase().split(".").filter(Boolean);
23
+ return parts.slice(-2).join(".");
24
+ }
25
+ }
26
+ export function sameOriginRelation(sourceOrigin, targetOrigin) {
27
+ if (sourceOrigin === "unknown" || targetOrigin === "unknown") {
28
+ return "cross-channel";
29
+ }
30
+ if (sourceOrigin === targetOrigin) {
31
+ return "same-origin";
32
+ }
33
+ if (siteKey(sourceOrigin) === siteKey(targetOrigin)) {
34
+ return "same-site";
35
+ }
36
+ return "cross-site";
37
+ }
38
+ export function normalizeText(input) {
39
+ return input
40
+ .normalize("NFKC")
41
+ .replace(/[\u200B-\u200D\uFEFF]/g, "")
42
+ .replace(/\s+/g, " ")
43
+ .trim();
44
+ }
45
+ export function tokenize(input) {
46
+ return normalizeText(input)
47
+ .toLowerCase()
48
+ .split(/[^a-z0-9]+/i)
49
+ .filter(Boolean);
50
+ }
51
+ export function overlapScore(left, right) {
52
+ const a = new Set(tokenize(left));
53
+ const b = new Set(tokenize(right));
54
+ if (!a.size || !b.size) {
55
+ return 0;
56
+ }
57
+ let hits = 0;
58
+ for (const token of a) {
59
+ if (b.has(token)) {
60
+ hits += 1;
61
+ }
62
+ }
63
+ return hits / Math.max(a.size, b.size);
64
+ }
65
+ export function sha256Hex(input) {
66
+ return createHash("sha256").update(input).digest("hex");
67
+ }
68
+ export function stableStringify(value) {
69
+ if (Array.isArray(value)) {
70
+ return `[${value.map((entry) => stableStringify(entry)).join(",")}]`;
71
+ }
72
+ if (value && typeof value === "object") {
73
+ const entries = Object.entries(value).sort(([a], [b]) => a.localeCompare(b));
74
+ return `{${entries
75
+ .map(([key, entry]) => `${JSON.stringify(key)}:${stableStringify(entry)}`)
76
+ .join(",")}}`;
77
+ }
78
+ return JSON.stringify(value);
79
+ }
80
+ export function isPrivateHost(input) {
81
+ const host = input.toLowerCase();
82
+ if (host === "localhost" || host.endsWith(".local")) {
83
+ return true;
84
+ }
85
+ const ipv4 = host.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/);
86
+ if (!ipv4) {
87
+ return false;
88
+ }
89
+ const first = Number(ipv4[1]);
90
+ const second = Number(ipv4[2]);
91
+ return (first === 10 ||
92
+ first === 127 ||
93
+ (first === 172 && second >= 16 && second <= 31) ||
94
+ (first === 192 && second === 168));
95
+ }
96
+ export function clamp(value, min = 0, max = 1) {
97
+ return Math.min(max, Math.max(min, value));
98
+ }
99
+ export function uniq(values) {
100
+ return [...new Set(values)];
101
+ }
102
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@safebrowse/core",
3
+ "version": "0.1.2-rc.1",
4
+ "description": "Core SafeBrowse policy runtime for browser-use agents",
5
+ "license": "SEE LICENSE IN LICENSE",
6
+ "type": "module",
7
+ "main": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/RobKang1234/safebrowse-sdk.git",
12
+ "directory": "packages/core"
13
+ },
14
+ "homepage": "https://github.com/RobKang1234/safebrowse-sdk#readme",
15
+ "bugs": {
16
+ "url": "https://github.com/RobKang1234/safebrowse-sdk/issues"
17
+ },
18
+ "keywords": [
19
+ "agent-security",
20
+ "browser-agents",
21
+ "middleware",
22
+ "policy-engine",
23
+ "safebrowse"
24
+ ],
25
+ "publishConfig": {
26
+ "access": "public",
27
+ "provenance": false
28
+ },
29
+ "engines": {
30
+ "node": "\u003e=22.0.0"
31
+ },
32
+ "exports": {
33
+ ".": {
34
+ "types": "./dist/index.d.ts",
35
+ "import": "./dist/index.js"
36
+ }
37
+ },
38
+ "files": [
39
+ "dist",
40
+ "README.md"
41
+ ],
42
+ "scripts": {
43
+ "build": "tsc -p tsconfig.json",
44
+ "typecheck": "tsc -p tsconfig.json --noEmit"
45
+ },
46
+ "sideEffects": false
47
+ }