@sanctuary-framework/mcp-server 0.4.2 → 0.5.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.
- package/dist/cli.cjs +2528 -638
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +2528 -638
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +2530 -638
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +328 -42
- package/dist/index.d.ts +328 -42
- package/dist/index.js +2529 -639
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -58,6 +58,9 @@ interface SanctuaryConfig {
|
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
60
60
|
* Load configuration from file, falling back to defaults.
|
|
61
|
+
*
|
|
62
|
+
* Precedence (highest wins): CLI flags > env vars > config file > defaults
|
|
63
|
+
* This matches the standard config precedence pattern used by most tools.
|
|
61
64
|
*/
|
|
62
65
|
declare function loadConfig(configPath?: string): Promise<SanctuaryConfig>;
|
|
63
66
|
|
|
@@ -1363,48 +1366,116 @@ declare function classifyField(fieldName: string): FieldClassification;
|
|
|
1363
1366
|
declare function recommendPolicy(context: Record<string, unknown>, provider?: string): PolicyRecommendation;
|
|
1364
1367
|
|
|
1365
1368
|
/**
|
|
1366
|
-
* Sanctuary MCP Server —
|
|
1367
|
-
*
|
|
1368
|
-
* Used for testing. Implements the same interface as filesystem storage
|
|
1369
|
-
* but stores everything in memory. Data does not persist across restarts.
|
|
1370
|
-
*/
|
|
1371
|
-
|
|
1372
|
-
declare class MemoryStorage implements StorageBackend {
|
|
1373
|
-
private store;
|
|
1374
|
-
private storageKey;
|
|
1375
|
-
write(namespace: string, key: string, data: Uint8Array): Promise<void>;
|
|
1376
|
-
read(namespace: string, key: string): Promise<Uint8Array | null>;
|
|
1377
|
-
delete(namespace: string, key: string, _secureOverwrite?: boolean): Promise<boolean>;
|
|
1378
|
-
list(namespace: string, prefix?: string): Promise<StorageEntryMeta[]>;
|
|
1379
|
-
exists(namespace: string, key: string): Promise<boolean>;
|
|
1380
|
-
totalSize(): Promise<number>;
|
|
1381
|
-
/** Clear all stored data (useful in tests) */
|
|
1382
|
-
clear(): void;
|
|
1383
|
-
}
|
|
1384
|
-
|
|
1385
|
-
/**
|
|
1386
|
-
* Sanctuary MCP Server — Filesystem Storage Backend
|
|
1369
|
+
* Sanctuary MCP Server — Prompt Injection Detection Layer
|
|
1387
1370
|
*
|
|
1388
|
-
*
|
|
1389
|
-
*
|
|
1371
|
+
* Fast, zero-dependency detection of common prompt injection patterns.
|
|
1372
|
+
* Scans tool arguments for role override, security bypass, encoding evasion,
|
|
1373
|
+
* data exfiltration, and prompt stuffing signals.
|
|
1390
1374
|
*
|
|
1391
1375
|
* Security invariants:
|
|
1392
|
-
* -
|
|
1393
|
-
* -
|
|
1394
|
-
* -
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1376
|
+
* - Always returns a result, never throws
|
|
1377
|
+
* - Typical scan completes in < 5ms
|
|
1378
|
+
* - False positives minimized via field-aware scanning
|
|
1379
|
+
* - Recursive scanning of nested objects/arrays
|
|
1380
|
+
*/
|
|
1381
|
+
interface InjectionDetectorConfig {
|
|
1382
|
+
enabled: boolean;
|
|
1383
|
+
sensitivity: "low" | "medium" | "high";
|
|
1384
|
+
on_detection: "escalate" | "block" | "log";
|
|
1385
|
+
custom_patterns?: string[];
|
|
1386
|
+
}
|
|
1387
|
+
interface InjectionSignal {
|
|
1388
|
+
type: string;
|
|
1389
|
+
pattern: string;
|
|
1390
|
+
location: string;
|
|
1391
|
+
severity: "low" | "medium" | "high";
|
|
1392
|
+
}
|
|
1393
|
+
interface DetectionResult {
|
|
1394
|
+
flagged: boolean;
|
|
1395
|
+
confidence: number;
|
|
1396
|
+
signals: InjectionSignal[];
|
|
1397
|
+
recommendation: "allow" | "escalate" | "block";
|
|
1398
|
+
}
|
|
1399
|
+
declare class InjectionDetector {
|
|
1400
|
+
private config;
|
|
1401
|
+
private stats;
|
|
1402
|
+
constructor(config?: Partial<InjectionDetectorConfig>);
|
|
1403
|
+
/**
|
|
1404
|
+
* Scan tool arguments for injection signals.
|
|
1405
|
+
* @param toolName Full tool name (e.g., "sanctuary/state_read")
|
|
1406
|
+
* @param args Tool arguments
|
|
1407
|
+
* @returns DetectionResult with all detected signals
|
|
1408
|
+
*/
|
|
1409
|
+
scan(toolName: string, args: Record<string, unknown>): DetectionResult;
|
|
1410
|
+
/**
|
|
1411
|
+
* Recursively scan a value and all nested values.
|
|
1412
|
+
*/
|
|
1413
|
+
private scanValue;
|
|
1414
|
+
/**
|
|
1415
|
+
* Scan a single string for injection signals.
|
|
1416
|
+
*/
|
|
1417
|
+
private scanString;
|
|
1418
|
+
/**
|
|
1419
|
+
* Detect base64 strings and zero-width character evasion.
|
|
1420
|
+
*/
|
|
1421
|
+
private detectEncodingEvasion;
|
|
1422
|
+
/**
|
|
1423
|
+
* Detect URLs and emails in fields that shouldn't have them.
|
|
1424
|
+
*/
|
|
1425
|
+
private detectDataExfiltration;
|
|
1426
|
+
/**
|
|
1427
|
+
* Detect prompt stuffing: very large strings or high repetition.
|
|
1428
|
+
*/
|
|
1429
|
+
private detectPromptStuffing;
|
|
1430
|
+
/**
|
|
1431
|
+
* Determine if this field is inherently safe from role override.
|
|
1432
|
+
*/
|
|
1433
|
+
private isSafeField;
|
|
1434
|
+
/**
|
|
1435
|
+
* Determine if this is a tool name field (where tool refs are expected).
|
|
1436
|
+
*/
|
|
1437
|
+
private isToolNameField;
|
|
1438
|
+
/**
|
|
1439
|
+
* Determine if this field is safe for URLs.
|
|
1440
|
+
*/
|
|
1441
|
+
private isUrlSafeField;
|
|
1442
|
+
/**
|
|
1443
|
+
* Determine if this field is safe for emails.
|
|
1444
|
+
*/
|
|
1445
|
+
private isEmailSafeField;
|
|
1446
|
+
/**
|
|
1447
|
+
* Determine if this field is safe for structured data (JSON/XML).
|
|
1448
|
+
*/
|
|
1449
|
+
private isStructuredField;
|
|
1450
|
+
/**
|
|
1451
|
+
* SEC-032: Map common cross-script confusable characters to their Latin equivalents.
|
|
1452
|
+
* NFKC normalization handles fullwidth and compatibility forms, but does NOT map
|
|
1453
|
+
* Cyrillic/Greek lookalikes to Latin (they're distinct codepoints by design).
|
|
1454
|
+
* This covers the most common confusables used in injection evasion.
|
|
1455
|
+
*/
|
|
1456
|
+
private normalizeConfusables;
|
|
1457
|
+
/**
|
|
1458
|
+
* Compute confidence score based on signals.
|
|
1459
|
+
* More high-severity signals = higher confidence.
|
|
1460
|
+
*/
|
|
1461
|
+
private computeConfidence;
|
|
1462
|
+
/**
|
|
1463
|
+
* Compute recommendation based on signals and sensitivity.
|
|
1464
|
+
*/
|
|
1465
|
+
private computeRecommendation;
|
|
1466
|
+
/**
|
|
1467
|
+
* Get statistics about scans performed.
|
|
1468
|
+
*/
|
|
1469
|
+
getStats(): {
|
|
1470
|
+
total_scans: number;
|
|
1471
|
+
total_flags: number;
|
|
1472
|
+
total_blocks: number;
|
|
1473
|
+
signals_by_type: Record<string, number>;
|
|
1474
|
+
};
|
|
1475
|
+
/**
|
|
1476
|
+
* Reset statistics.
|
|
1477
|
+
*/
|
|
1478
|
+
resetStats(): void;
|
|
1408
1479
|
}
|
|
1409
1480
|
|
|
1410
1481
|
/**
|
|
@@ -1640,12 +1711,20 @@ declare class BaselineTracker {
|
|
|
1640
1711
|
* - All gate decisions (approve, deny, allow) are audit-logged.
|
|
1641
1712
|
*/
|
|
1642
1713
|
|
|
1714
|
+
/** Callback invoked when an injection is detected, for dashboard broadcasting */
|
|
1715
|
+
type InjectionAlertCallback = (alert: {
|
|
1716
|
+
toolName: string;
|
|
1717
|
+
result: DetectionResult;
|
|
1718
|
+
timestamp: string;
|
|
1719
|
+
}) => void;
|
|
1643
1720
|
declare class ApprovalGate {
|
|
1644
1721
|
private policy;
|
|
1645
1722
|
private baseline;
|
|
1646
1723
|
private channel;
|
|
1647
1724
|
private auditLog;
|
|
1648
|
-
|
|
1725
|
+
private injectionDetector;
|
|
1726
|
+
private onInjectionAlert?;
|
|
1727
|
+
constructor(policy: PrincipalPolicy, baseline: BaselineTracker, channel: ApprovalChannel, auditLog: AuditLog, injectionDetector?: InjectionDetector, onInjectionAlert?: InjectionAlertCallback);
|
|
1649
1728
|
/**
|
|
1650
1729
|
* Evaluate a tool call against the Principal Policy.
|
|
1651
1730
|
*
|
|
@@ -1669,6 +1748,189 @@ declare class ApprovalGate {
|
|
|
1669
1748
|
private summarizeArgs;
|
|
1670
1749
|
/** Get the baseline tracker for saving at session end */
|
|
1671
1750
|
getBaseline(): BaselineTracker;
|
|
1751
|
+
/** Get the injection detector for stats/configuration access */
|
|
1752
|
+
getInjectionDetector(): InjectionDetector;
|
|
1753
|
+
}
|
|
1754
|
+
|
|
1755
|
+
/**
|
|
1756
|
+
* Sanctuary MCP Server — Tool Router
|
|
1757
|
+
*
|
|
1758
|
+
* Routes sanctuary/* tool calls to their layer-specific handlers.
|
|
1759
|
+
* Every tool call passes through schema validation and the ApprovalGate
|
|
1760
|
+
* (if configured) before execution. Neither can be bypassed.
|
|
1761
|
+
*
|
|
1762
|
+
* This module is the abstraction boundary for MCP SDK version migration —
|
|
1763
|
+
* if the SDK API changes, only this module needs updating.
|
|
1764
|
+
*/
|
|
1765
|
+
|
|
1766
|
+
/** Tool handler function signature */
|
|
1767
|
+
type ToolHandler = (args: Record<string, unknown>) => Promise<{
|
|
1768
|
+
content: Array<{
|
|
1769
|
+
type: "text";
|
|
1770
|
+
text: string;
|
|
1771
|
+
}>;
|
|
1772
|
+
}>;
|
|
1773
|
+
|
|
1774
|
+
/**
|
|
1775
|
+
* Sanctuary MCP Server — L2 Context Gating: Automatic Enforcer
|
|
1776
|
+
*
|
|
1777
|
+
* The context gate enforcer wraps tool handlers to automatically filter
|
|
1778
|
+
* their arguments before execution. Unlike context_gate_filter (which agents
|
|
1779
|
+
* call voluntarily), the enforcer runs automatically on every tool call
|
|
1780
|
+
* when enabled.
|
|
1781
|
+
*
|
|
1782
|
+
* This enforces minimum-necessary-context by default and makes bypassing
|
|
1783
|
+
* context protection explicit (requires reconfiguration).
|
|
1784
|
+
*
|
|
1785
|
+
* Security invariants:
|
|
1786
|
+
* - The enforcer wraps every tool handler when enabled
|
|
1787
|
+
* - Filtering decisions are audit-logged
|
|
1788
|
+
* - Default action on missing policy: fallback to built-in sensitive patterns
|
|
1789
|
+
* - Denied fields block the entire request (with logged reason)
|
|
1790
|
+
* - Redacted fields are stripped from tool arguments
|
|
1791
|
+
* - log_only mode logs what would be filtered but passes original args
|
|
1792
|
+
*/
|
|
1793
|
+
|
|
1794
|
+
interface EnforcerConfig {
|
|
1795
|
+
/** Enable/disable automatic filtering (default: true) */
|
|
1796
|
+
enabled: boolean;
|
|
1797
|
+
/** Policy ID to use when no specific one is set */
|
|
1798
|
+
default_policy_id?: string;
|
|
1799
|
+
/** Tool name prefixes to skip filtering (e.g., ["sanctuary/"] to skip system tools) */
|
|
1800
|
+
bypass_prefixes: string[];
|
|
1801
|
+
/** Log but don't filter — for gradual rollout (default: false) */
|
|
1802
|
+
log_only: boolean;
|
|
1803
|
+
/** What to do when a field triggers deny action: "block" or "redact" */
|
|
1804
|
+
on_deny: "block" | "redact";
|
|
1805
|
+
}
|
|
1806
|
+
interface EnforcerStatus {
|
|
1807
|
+
enabled: boolean;
|
|
1808
|
+
log_only: boolean;
|
|
1809
|
+
default_policy_id: string | null;
|
|
1810
|
+
stats: {
|
|
1811
|
+
calls_inspected: number;
|
|
1812
|
+
calls_bypassed: number;
|
|
1813
|
+
fields_redacted: number;
|
|
1814
|
+
fields_hashed: number;
|
|
1815
|
+
fields_blocked: number;
|
|
1816
|
+
calls_blocked: number;
|
|
1817
|
+
};
|
|
1818
|
+
}
|
|
1819
|
+
declare class ContextGateEnforcer {
|
|
1820
|
+
private policyStore;
|
|
1821
|
+
private auditLog;
|
|
1822
|
+
private config;
|
|
1823
|
+
private stats;
|
|
1824
|
+
constructor(policyStore: ContextGatePolicyStore, auditLog: AuditLog, config: EnforcerConfig);
|
|
1825
|
+
/**
|
|
1826
|
+
* Wrap a tool handler to apply automatic context gating.
|
|
1827
|
+
*
|
|
1828
|
+
* The wrapped handler:
|
|
1829
|
+
* 1. Checks if tool should be filtered (based on bypass_prefixes)
|
|
1830
|
+
* 2. If not filtering, calls original handler directly
|
|
1831
|
+
* 3. If filtering:
|
|
1832
|
+
* a. Gets the active policy or falls back to built-in patterns
|
|
1833
|
+
* b. Calls filterContext() with tool arguments
|
|
1834
|
+
* c. If any field triggered "deny" and on_deny is "block", returns error
|
|
1835
|
+
* d. If on_deny is "redact", replaces denied fields with "[REDACTED]"
|
|
1836
|
+
* e. Calls original handler with filtered arguments
|
|
1837
|
+
* f. Logs the filtering decision
|
|
1838
|
+
* 4. In log_only mode: runs filter, logs what would happen, passes original args
|
|
1839
|
+
*/
|
|
1840
|
+
wrapHandler(toolName: string, originalHandler: ToolHandler): ToolHandler;
|
|
1841
|
+
/**
|
|
1842
|
+
* Filter tool arguments using an explicit policy.
|
|
1843
|
+
*/
|
|
1844
|
+
private filterWithPolicy;
|
|
1845
|
+
/**
|
|
1846
|
+
* Filter tool arguments using built-in sensitive patterns.
|
|
1847
|
+
* This provides baseline protection when no explicit policy is configured.
|
|
1848
|
+
*/
|
|
1849
|
+
private filterWithBuiltinPatterns;
|
|
1850
|
+
/**
|
|
1851
|
+
* Check if a tool should be filtered based on bypass prefixes.
|
|
1852
|
+
*
|
|
1853
|
+
* SEC-033: Uses exact namespace component matching, not bare startsWith().
|
|
1854
|
+
* A prefix of "sanctuary/" matches "sanctuary/state_read" but NOT
|
|
1855
|
+
* "sanctuary_evil/steal_data" (no slash boundary confusion). The prefix
|
|
1856
|
+
* must match exactly up to its length, and the prefix must end with "/"
|
|
1857
|
+
* to enforce namespace boundaries (if it doesn't, we add one for safety).
|
|
1858
|
+
*/
|
|
1859
|
+
shouldFilter(toolName: string): boolean;
|
|
1860
|
+
/**
|
|
1861
|
+
* Extract provider category from tool name.
|
|
1862
|
+
* Default: "tool-api". Override for specific patterns.
|
|
1863
|
+
*/
|
|
1864
|
+
private extractProviderCategory;
|
|
1865
|
+
/**
|
|
1866
|
+
* Build filtered arguments from filter decisions.
|
|
1867
|
+
*/
|
|
1868
|
+
private buildFilteredArgs;
|
|
1869
|
+
/**
|
|
1870
|
+
* Set the active policy ID.
|
|
1871
|
+
*/
|
|
1872
|
+
setDefaultPolicy(policyId: string): void;
|
|
1873
|
+
/**
|
|
1874
|
+
* Get current enforcer status and stats.
|
|
1875
|
+
*/
|
|
1876
|
+
getStatus(): EnforcerStatus;
|
|
1877
|
+
/**
|
|
1878
|
+
* Toggle enforcer enabled state.
|
|
1879
|
+
*/
|
|
1880
|
+
setEnabled(enabled: boolean): void;
|
|
1881
|
+
/**
|
|
1882
|
+
* Toggle log_only mode.
|
|
1883
|
+
*/
|
|
1884
|
+
setLogOnly(logOnly: boolean): void;
|
|
1885
|
+
/**
|
|
1886
|
+
* Reset stats counters.
|
|
1887
|
+
*/
|
|
1888
|
+
resetStats(): void;
|
|
1889
|
+
}
|
|
1890
|
+
|
|
1891
|
+
/**
|
|
1892
|
+
* Sanctuary MCP Server — In-Memory Storage Backend
|
|
1893
|
+
*
|
|
1894
|
+
* Used for testing. Implements the same interface as filesystem storage
|
|
1895
|
+
* but stores everything in memory. Data does not persist across restarts.
|
|
1896
|
+
*/
|
|
1897
|
+
|
|
1898
|
+
declare class MemoryStorage implements StorageBackend {
|
|
1899
|
+
private store;
|
|
1900
|
+
private storageKey;
|
|
1901
|
+
write(namespace: string, key: string, data: Uint8Array): Promise<void>;
|
|
1902
|
+
read(namespace: string, key: string): Promise<Uint8Array | null>;
|
|
1903
|
+
delete(namespace: string, key: string, _secureOverwrite?: boolean): Promise<boolean>;
|
|
1904
|
+
list(namespace: string, prefix?: string): Promise<StorageEntryMeta[]>;
|
|
1905
|
+
exists(namespace: string, key: string): Promise<boolean>;
|
|
1906
|
+
totalSize(): Promise<number>;
|
|
1907
|
+
/** Clear all stored data (useful in tests) */
|
|
1908
|
+
clear(): void;
|
|
1909
|
+
}
|
|
1910
|
+
|
|
1911
|
+
/**
|
|
1912
|
+
* Sanctuary MCP Server — Filesystem Storage Backend
|
|
1913
|
+
*
|
|
1914
|
+
* Default storage backend using the local filesystem.
|
|
1915
|
+
* Files are stored as: {basePath}/{namespace}/{key}.enc
|
|
1916
|
+
*
|
|
1917
|
+
* Security invariants:
|
|
1918
|
+
* - Secure deletion overwrites file content with random bytes before unlinking
|
|
1919
|
+
* - Directory creation uses restrictive permissions (0o700)
|
|
1920
|
+
* - File creation uses restrictive permissions (0o600)
|
|
1921
|
+
*/
|
|
1922
|
+
|
|
1923
|
+
declare class FilesystemStorage implements StorageBackend {
|
|
1924
|
+
private basePath;
|
|
1925
|
+
constructor(basePath: string);
|
|
1926
|
+
private entryPath;
|
|
1927
|
+
private namespacePath;
|
|
1928
|
+
write(namespace: string, key: string, data: Uint8Array): Promise<void>;
|
|
1929
|
+
read(namespace: string, key: string): Promise<Uint8Array | null>;
|
|
1930
|
+
delete(namespace: string, key: string, secureOverwrite?: boolean): Promise<boolean>;
|
|
1931
|
+
list(namespace: string, prefix?: string): Promise<StorageEntryMeta[]>;
|
|
1932
|
+
exists(namespace: string, key: string): Promise<boolean>;
|
|
1933
|
+
totalSize(): Promise<number>;
|
|
1672
1934
|
}
|
|
1673
1935
|
|
|
1674
1936
|
/**
|
|
@@ -1818,7 +2080,7 @@ declare class DashboardApprovalChannel implements ApprovalChannel {
|
|
|
1818
2080
|
private handlePendingList;
|
|
1819
2081
|
private handleAuditLog;
|
|
1820
2082
|
private handleDecision;
|
|
1821
|
-
|
|
2083
|
+
broadcastSSE(event: string, data: unknown): void;
|
|
1822
2084
|
/**
|
|
1823
2085
|
* Broadcast an audit entry to connected dashboards.
|
|
1824
2086
|
* Called externally when audit events happen.
|
|
@@ -1834,6 +2096,30 @@ declare class DashboardApprovalChannel implements ApprovalChannel {
|
|
|
1834
2096
|
* Called externally after baseline changes.
|
|
1835
2097
|
*/
|
|
1836
2098
|
broadcastBaselineUpdate(): void;
|
|
2099
|
+
/**
|
|
2100
|
+
* Broadcast a tool call event to connected dashboards.
|
|
2101
|
+
* Called from the gate or router when a tool is invoked.
|
|
2102
|
+
*/
|
|
2103
|
+
broadcastToolCall(data: {
|
|
2104
|
+
tool: string;
|
|
2105
|
+
tier: number;
|
|
2106
|
+
allowed: boolean;
|
|
2107
|
+
timestamp: string;
|
|
2108
|
+
}): void;
|
|
2109
|
+
/**
|
|
2110
|
+
* Broadcast a context gate decision to connected dashboards.
|
|
2111
|
+
*/
|
|
2112
|
+
broadcastContextGateDecision(data: {
|
|
2113
|
+
tool: string;
|
|
2114
|
+
fields_filtered: number;
|
|
2115
|
+
fields_total: number;
|
|
2116
|
+
action: string;
|
|
2117
|
+
timestamp: string;
|
|
2118
|
+
}): void;
|
|
2119
|
+
/**
|
|
2120
|
+
* Broadcast current protection status to connected dashboards.
|
|
2121
|
+
*/
|
|
2122
|
+
broadcastProtectionStatus(data: Record<string, unknown>): void;
|
|
1837
2123
|
/** Get the number of pending requests */
|
|
1838
2124
|
get pendingCount(): number;
|
|
1839
2125
|
/** Get the number of connected SSE clients */
|
|
@@ -2241,4 +2527,4 @@ declare function createSanctuaryServer(options?: {
|
|
|
2241
2527
|
storage?: StorageBackend;
|
|
2242
2528
|
}): Promise<SanctuaryServer>;
|
|
2243
2529
|
|
|
2244
|
-
export { ApprovalGate, AuditLog, AutoApproveChannel, BaselineTracker, type BridgeAttestationRequest, type BridgeAttestationResult, type BridgeCommitment, type BridgeVerificationResult, TEMPLATES as CONTEXT_GATE_TEMPLATES, CallbackApprovalChannel, CommitmentStore, type ConcordiaOutcome, type ContextAction, type ContextFilterResult, type ContextGatePolicy, ContextGatePolicyStore, type ContextGateRule, type ContextGateTemplate, DashboardApprovalChannel, type DashboardConfig, type FederationCapabilities, type FederationPeer, FederationRegistry, type FieldClassification, type FieldFilterResult, FilesystemStorage, type GateResult, type HandshakeChallenge, type HandshakeCompletion, type HandshakeResponse, type HandshakeResult, MemoryStorage, type PedersenCommitment, type PeerTrustEvaluation, type PolicyRecommendation, PolicyStore, type PrincipalPolicy, type ProviderCategory, ReputationStore, type SHRBody, type SHRVerificationResult, type SanctuaryConfig, type SanctuaryServer, type SignedSHR, type SovereigntyTier, StateStore, StderrApprovalChannel, TIER_WEIGHTS, type TierMetadata, type TieredAttestation, WebhookApprovalChannel, type WebhookCallbackPayload, type WebhookConfig, type WebhookPayload, type ZKProofOfKnowledge, type ZKRangeProof, canonicalize, classifyField, completeHandshake, computeWeightedScore, createBridgeCommitment, createPedersenCommitment, createProofOfKnowledge, createRangeProof, createSanctuaryServer, evaluateField, filterContext, generateSHR, getTemplate, initiateHandshake, listTemplateIds, loadConfig, loadPrincipalPolicy, recommendPolicy, resolveTier, respondToHandshake, signPayload, tierDistribution, verifyBridgeCommitment, verifyCompletion, verifyPedersenCommitment, verifyProofOfKnowledge, verifyRangeProof, verifySHR, verifySignature };
|
|
2530
|
+
export { ApprovalGate, AuditLog, AutoApproveChannel, BaselineTracker, type BridgeAttestationRequest, type BridgeAttestationResult, type BridgeCommitment, type BridgeVerificationResult, TEMPLATES as CONTEXT_GATE_TEMPLATES, CallbackApprovalChannel, CommitmentStore, type ConcordiaOutcome, type ContextAction, type ContextFilterResult, ContextGateEnforcer, type ContextGatePolicy, ContextGatePolicyStore, type ContextGateRule, type ContextGateTemplate, DashboardApprovalChannel, type DashboardConfig, type DetectionResult, type EnforcerConfig, type FederationCapabilities, type FederationPeer, FederationRegistry, type FieldClassification, type FieldFilterResult, FilesystemStorage, type GateResult, type HandshakeChallenge, type HandshakeCompletion, type HandshakeResponse, type HandshakeResult, InjectionDetector, type InjectionDetectorConfig, type InjectionSignal, MemoryStorage, type PedersenCommitment, type PeerTrustEvaluation, type PolicyRecommendation, PolicyStore, type PrincipalPolicy, type ProviderCategory, ReputationStore, type SHRBody, type SHRVerificationResult, type SanctuaryConfig, type SanctuaryServer, type SignedSHR, type SovereigntyTier, StateStore, StderrApprovalChannel, TIER_WEIGHTS, type TierMetadata, type TieredAttestation, WebhookApprovalChannel, type WebhookCallbackPayload, type WebhookConfig, type WebhookPayload, type ZKProofOfKnowledge, type ZKRangeProof, canonicalize, classifyField, completeHandshake, computeWeightedScore, createBridgeCommitment, createPedersenCommitment, createProofOfKnowledge, createRangeProof, createSanctuaryServer, evaluateField, filterContext, generateSHR, getTemplate, initiateHandshake, listTemplateIds, loadConfig, loadPrincipalPolicy, recommendPolicy, resolveTier, respondToHandshake, signPayload, tierDistribution, verifyBridgeCommitment, verifyCompletion, verifyPedersenCommitment, verifyProofOfKnowledge, verifyRangeProof, verifySHR, verifySignature };
|