@spilno/herald-mcp 1.19.0 → 1.21.0

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/index.js CHANGED
@@ -14,6 +14,7 @@ import { homedir } from "os";
14
14
  import { join } from "path";
15
15
  import * as readline from "readline";
16
16
  import { runInit } from "./cli/init.js";
17
+ import { sanitize, previewSanitization } from "./sanitization.js";
17
18
  // Configuration - all sensitive values from environment only
18
19
  // CEDA_URL is primary, HERALD_API_URL for backwards compat, default to cloud
19
20
  const CEDA_API_URL = process.env.CEDA_URL || process.env.HERALD_API_URL || "https://getceda.com";
@@ -29,10 +30,21 @@ const HERALD_VAULT = process.env.HERALD_VAULT || "";
29
30
  const AEGIS_OFFSPRING_PATH = process.env.AEGIS_OFFSPRING_PATH || join(homedir(), "Documents", "aegis_ceda", "_offspring");
30
31
  // Cloud mode: Use CEDA API for offspring communication instead of local files
31
32
  const OFFSPRING_CLOUD_MODE = process.env.HERALD_OFFSPRING_CLOUD === "true";
32
- const VERSION = "1.20.0";
33
+ const VERSION = "1.21.0";
33
34
  // Self-routing description - teaches Claude when to call Herald
34
35
  const HERALD_DESCRIPTION = `AI-native pattern learning for CEDA.
35
36
 
37
+ AUTHORIZATION GATES (CRITICAL):
38
+ Before multi-file operations (>3 files), module scaffolding, or bulk changes:
39
+ 1. Present synthesis/plan to user
40
+ 2. Ask: "Proceed? [Y/continue/adjust]"
41
+ 3. WAIT for explicit approval before writing
42
+
43
+ Autonomous (no gate): reading, searching, planning, single-file edits, commits.
44
+ Gated: multi-file creation, module scaffolding, bulk operations.
45
+
46
+ Why: User steering > execution speed. Long uninterrupted runs block collaboration.
47
+
36
48
  WHEN TO OFFER REFLECTION:
37
49
  When you notice FRICTION (multiple iterations, debugging spirals, corrections, confusion)
38
50
  or FLOW (clean first-pass execution, good instincts, smooth outcomes),
@@ -631,6 +643,50 @@ const tools = [
631
643
  description: "Get CEDA server statistics and loaded patterns info",
632
644
  inputSchema: { type: "object", properties: {} },
633
645
  },
646
+ {
647
+ name: "herald_gate",
648
+ description: `Request authorization before large operations.
649
+
650
+ WHEN TO USE:
651
+ Call this BEFORE multi-file operations (>3 files), module scaffolding, or bulk changes.
652
+
653
+ This tool:
654
+ 1. Formats a clear authorization request for the user
655
+ 2. Returns a gate_id for tracking
656
+ 3. Records the operation scope for audit
657
+
658
+ After calling this tool, WAIT for explicit user approval before proceeding.
659
+ User may respond: Y/yes/proceed (approved), adjust (modify scope), or N/no (denied).
660
+
661
+ Example flow:
662
+ 1. You complete synthesis/planning
663
+ 2. Call herald_gate with operation summary
664
+ 3. Tool returns formatted request
665
+ 4. STOP and wait for user response
666
+ 5. Only proceed if user approves`,
667
+ inputSchema: {
668
+ type: "object",
669
+ properties: {
670
+ operation: {
671
+ type: "string",
672
+ description: "What operation needs authorization (e.g., 'Create bh-incidents module')"
673
+ },
674
+ scope: {
675
+ type: "string",
676
+ description: "Scope summary (e.g., '31 files, 6 dictionaries, 4 forms')"
677
+ },
678
+ template: {
679
+ type: "string",
680
+ description: "Template/pattern being followed (e.g., 'bh-inspections')"
681
+ },
682
+ rationale: {
683
+ type: "string",
684
+ description: "Brief rationale for the operation"
685
+ },
686
+ },
687
+ required: ["operation", "scope"],
688
+ },
689
+ },
634
690
  {
635
691
  name: "herald_predict",
636
692
  description: "Generate non-deterministic structure prediction from signal. Returns sessionId for multi-turn conversations.",
@@ -802,15 +858,28 @@ User's answer goes in the 'insight' parameter.
802
858
 
803
859
  DO NOT GUESS. The user knows what they valued. Ask them.
804
860
 
861
+ ABSTRACTION GUIDANCE:
862
+ Capture the PATTERN, not the SPECIFICS. Good patterns are reusable.
863
+ - BAD: "Fixed bug in /Users/john/project/auth.ts line 47"
864
+ - GOOD: "Early return pattern for auth validation reduces nesting"
865
+ - BAD: "API key sk-proj-xxx was in wrong env file"
866
+ - GOOD: "Secrets in .env.local not .env prevents accidental commits"
867
+
805
868
  Example flow:
806
869
  1. User: "That was smooth, capture it"
807
- 2. You: "What specifically worked here?"
870
+ 2. You: "What specifically worked here? (Describe the pattern, not specific files/values)"
808
871
  3. User: "The ASCII visualization approach"
809
872
  4. You call herald_reflect with insight: "ASCII visualization approach"
810
873
 
811
- DRY RUN MODE (CEDA-65):
812
- Set dry_run=true to preview what would be captured without storing.
813
- Shows sanitization results and data classification.`,
874
+ PRIVACY (CEDA-65):
875
+ - Client-side sanitization runs BEFORE any data leaves your machine
876
+ - API keys, tokens, passwords, file paths with usernames are auto-redacted
877
+ - Private keys and AWS credentials are BLOCKED entirely
878
+ - Use dry_run=true to preview exactly what would be transmitted
879
+
880
+ DRY RUN MODE:
881
+ Set dry_run=true to preview sanitization without storing.
882
+ Shows what would be redacted and final transmitted text.`,
814
883
  inputSchema: {
815
884
  type: "object",
816
885
  properties: {
@@ -1158,6 +1227,42 @@ Herald will:
1158
1227
  content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
1159
1228
  };
1160
1229
  }
1230
+ case "herald_gate": {
1231
+ const operation = args?.operation;
1232
+ const scope = args?.scope;
1233
+ const template = args?.template;
1234
+ const rationale = args?.rationale;
1235
+ // Generate gate ID for tracking
1236
+ const gateId = `gate-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
1237
+ // Format the authorization request
1238
+ let gateRequest = `\n## Authorization Required\n\n`;
1239
+ gateRequest += `**Operation:** ${operation}\n`;
1240
+ gateRequest += `**Scope:** ${scope}\n`;
1241
+ if (template) {
1242
+ gateRequest += `**Template:** Following \`${template}\` patterns\n`;
1243
+ }
1244
+ if (rationale) {
1245
+ gateRequest += `**Rationale:** ${rationale}\n`;
1246
+ }
1247
+ gateRequest += `\n---\n`;
1248
+ gateRequest += `**Proceed?** [Y/yes/proceed] [adjust] [N/no]\n`;
1249
+ gateRequest += `\n_Gate ID: ${gateId}_\n`;
1250
+ return {
1251
+ content: [{
1252
+ type: "text",
1253
+ text: JSON.stringify({
1254
+ success: true,
1255
+ gate_id: gateId,
1256
+ status: "awaiting_authorization",
1257
+ message: gateRequest,
1258
+ operation,
1259
+ scope,
1260
+ template: template || null,
1261
+ instruction: "STOP HERE. Wait for user response before proceeding with any file operations.",
1262
+ }, null, 2)
1263
+ }],
1264
+ };
1265
+ }
1161
1266
  case "herald_predict": {
1162
1267
  const signal = args?.signal;
1163
1268
  const contextStr = args?.context;
@@ -1451,45 +1556,62 @@ Herald will:
1451
1556
  const feeling = args?.feeling;
1452
1557
  const insight = args?.insight;
1453
1558
  const dryRun = args?.dry_run;
1454
- // CEDA-65: Dry-run mode - preview what would be captured without storing
1559
+ // CEDA-65: Client-side sanitization preview (no network required)
1560
+ const sessionPreview = previewSanitization(session);
1561
+ const insightPreview = previewSanitization(insight);
1562
+ // Check if content would be blocked
1563
+ if (sessionPreview.wouldBlock || insightPreview.wouldBlock) {
1564
+ return {
1565
+ content: [{
1566
+ type: "text",
1567
+ text: JSON.stringify({
1568
+ success: false,
1569
+ mode: "blocked",
1570
+ error: "Content contains restricted data that cannot be transmitted",
1571
+ blockReason: sessionPreview.blockReason || insightPreview.blockReason,
1572
+ detectedTypes: [...sessionPreview.detectedTypes, ...insightPreview.detectedTypes],
1573
+ hint: "Remove private keys, AWS credentials, or other restricted data before capturing.",
1574
+ }, null, 2)
1575
+ }],
1576
+ isError: true,
1577
+ };
1578
+ }
1579
+ // Dry-run mode - show sanitization preview without storing
1455
1580
  if (dryRun) {
1456
- try {
1457
- const result = await callCedaAPI("/api/herald/reflect/dry-run", "POST", {
1458
- session,
1459
- feeling,
1460
- insight,
1461
- company: HERALD_COMPANY,
1462
- project: HERALD_PROJECT,
1463
- user: HERALD_USER,
1464
- });
1465
- return {
1466
- content: [{
1467
- type: "text",
1468
- text: JSON.stringify({
1469
- success: true,
1470
- mode: "dry-run",
1471
- message: "Preview of what would be captured (no data stored)",
1472
- feeling,
1473
- insight,
1474
- ...result,
1475
- }, null, 2)
1476
- }],
1477
- };
1478
- }
1479
- catch (error) {
1480
- return {
1481
- content: [{
1482
- type: "text",
1483
- text: JSON.stringify({
1484
- success: false,
1485
- mode: "dry-run",
1486
- error: `Dry-run failed: ${error}`,
1487
- hint: "CEDA may be unavailable. Try again later.",
1488
- }, null, 2)
1489
- }],
1490
- };
1491
- }
1581
+ return {
1582
+ content: [{
1583
+ type: "text",
1584
+ text: JSON.stringify({
1585
+ success: true,
1586
+ mode: "dry-run",
1587
+ message: "Preview of what would be captured (no data stored or transmitted)",
1588
+ feeling,
1589
+ sanitization: {
1590
+ session: {
1591
+ original: session,
1592
+ sanitized: sessionPreview.sanitized,
1593
+ wouldSanitize: sessionPreview.wouldSanitize,
1594
+ detectedTypes: sessionPreview.detectedTypes,
1595
+ classification: sessionPreview.classification,
1596
+ },
1597
+ insight: {
1598
+ original: insight,
1599
+ sanitized: insightPreview.sanitized,
1600
+ wouldSanitize: insightPreview.wouldSanitize,
1601
+ detectedTypes: insightPreview.detectedTypes,
1602
+ classification: insightPreview.classification,
1603
+ },
1604
+ },
1605
+ hint: insightPreview.wouldSanitize || sessionPreview.wouldSanitize
1606
+ ? "Some content will be redacted. Consider using more abstract descriptions."
1607
+ : "Content looks clean. Safe to capture.",
1608
+ }, null, 2)
1609
+ }],
1610
+ };
1492
1611
  }
1612
+ // Sanitize before transmission
1613
+ const sanitizedSession = sessionPreview.sanitized;
1614
+ const sanitizedInsight = insightPreview.sanitized;
1493
1615
  // CEDA-64: Track reflection locally for session summary
1494
1616
  addSessionReflection({
1495
1617
  session,
@@ -1497,12 +1619,12 @@ Herald will:
1497
1619
  insight,
1498
1620
  method: "direct",
1499
1621
  });
1500
- // Call CEDA's reflect endpoint with user's insight
1622
+ // Call CEDA's reflect endpoint with SANITIZED insight
1501
1623
  try {
1502
1624
  const result = await callCedaAPI("/api/herald/reflect", "POST", {
1503
- session,
1625
+ session: sanitizedSession,
1504
1626
  feeling,
1505
- insight, // User-provided insight - the actual pattern
1627
+ insight: sanitizedInsight, // Sanitized - no PII/secrets transmitted
1506
1628
  method: "direct", // Track capture method for meta-learning
1507
1629
  company: HERALD_COMPANY,
1508
1630
  project: HERALD_PROJECT,
@@ -1510,18 +1632,9 @@ Herald will:
1510
1632
  vault: HERALD_VAULT || undefined,
1511
1633
  });
1512
1634
  if (result.error) {
1513
- // If cloud fails, store locally for later processing
1514
- const localRecord = {
1515
- session,
1516
- feeling,
1517
- company: HERALD_COMPANY,
1518
- project: HERALD_PROJECT,
1519
- user: HERALD_USER,
1520
- timestamp: new Date().toISOString(),
1521
- };
1522
- // Buffer as insight for later sync
1635
+ // If cloud fails, store locally for later processing (also sanitized)
1523
1636
  bufferInsight({
1524
- insight: `[REFLECT:${feeling}] ${insight} | Context: ${session}`,
1637
+ insight: `[REFLECT:${feeling}] ${sanitizedInsight} | Context: ${sanitizedSession}`,
1525
1638
  topic: feeling === "stuck" ? "antipattern" : "pattern",
1526
1639
  company: HERALD_COMPANY,
1527
1640
  project: HERALD_PROJECT,
@@ -1560,9 +1673,9 @@ Herald will:
1560
1673
  };
1561
1674
  }
1562
1675
  catch (error) {
1563
- // Network error - buffer locally
1676
+ // Network error - buffer locally (sanitized)
1564
1677
  bufferInsight({
1565
- insight: `[REFLECT:${feeling}] ${insight} | Context: ${session}`,
1678
+ insight: `[REFLECT:${feeling}] ${sanitizedInsight} | Context: ${sanitizedSession}`,
1566
1679
  topic: feeling === "stuck" ? "antipattern" : "pattern",
1567
1680
  company: HERALD_COMPANY,
1568
1681
  project: HERALD_PROJECT,
@@ -1576,9 +1689,10 @@ Herald will:
1576
1689
  mode: "local",
1577
1690
  message: "Reflection buffered locally (cloud unreachable)",
1578
1691
  feeling,
1579
- insight,
1692
+ insight: sanitizedInsight,
1580
1693
  hint: "Use herald_sync when cloud recovers.",
1581
1694
  buffered: true,
1695
+ sanitized: sessionPreview.wouldSanitize || insightPreview.wouldSanitize,
1582
1696
  }, null, 2)
1583
1697
  }],
1584
1698
  };
@@ -1643,6 +1757,27 @@ Herald will:
1643
1757
  const session = args?.session;
1644
1758
  const feeling = args?.feeling;
1645
1759
  const insight = args?.insight;
1760
+ // CEDA-65: Client-side sanitization
1761
+ const simSessionPreview = previewSanitization(session);
1762
+ const simInsightPreview = previewSanitization(insight);
1763
+ // Block restricted content
1764
+ if (simSessionPreview.wouldBlock || simInsightPreview.wouldBlock) {
1765
+ return {
1766
+ content: [{
1767
+ type: "text",
1768
+ text: JSON.stringify({
1769
+ success: false,
1770
+ mode: "blocked",
1771
+ error: "Content contains restricted data that cannot be transmitted",
1772
+ blockReason: simSessionPreview.blockReason || simInsightPreview.blockReason,
1773
+ hint: "Remove private keys, AWS credentials, or other restricted data before capturing.",
1774
+ }, null, 2)
1775
+ }],
1776
+ isError: true,
1777
+ };
1778
+ }
1779
+ const simSanitizedSession = simSessionPreview.sanitized;
1780
+ const simSanitizedInsight = simInsightPreview.sanitized;
1646
1781
  // CEDA-64: Track reflection locally for session summary
1647
1782
  addSessionReflection({
1648
1783
  session,
@@ -1666,29 +1801,33 @@ Herald will:
1666
1801
  };
1667
1802
  }
1668
1803
  try {
1669
- // Build prompt and call AI for reflection
1670
- const prompt = buildReflectionPrompt(session, feeling, insight);
1804
+ // Build prompt and call AI for reflection (use sanitized input)
1805
+ const prompt = buildReflectionPrompt(simSanitizedSession, feeling, simSanitizedInsight);
1671
1806
  const extracted = await callAIForReflection(aiClient, prompt);
1672
- // Send enriched data to CEDA
1807
+ // Sanitize AI-extracted fields too
1808
+ const sanitizedSignal = sanitize(extracted.signal || "").sanitizedText;
1809
+ const sanitizedReinforcement = extracted.reinforcement ? sanitize(extracted.reinforcement).sanitizedText : undefined;
1810
+ const sanitizedWarning = extracted.warning ? sanitize(extracted.warning).sanitizedText : undefined;
1811
+ // Send enriched data to CEDA (all sanitized)
1673
1812
  const result = await callCedaAPI("/api/herald/reflect", "POST", {
1674
- session,
1813
+ session: simSanitizedSession,
1675
1814
  feeling,
1676
- insight,
1815
+ insight: simSanitizedInsight,
1677
1816
  method: "simulation", // Track capture method
1678
- // AI-extracted fields
1679
- signal: extracted.signal,
1817
+ // AI-extracted fields (sanitized)
1818
+ signal: sanitizedSignal,
1680
1819
  outcome: extracted.outcome,
1681
- reinforcement: extracted.reinforcement,
1682
- warning: extracted.warning,
1820
+ reinforcement: sanitizedReinforcement,
1821
+ warning: sanitizedWarning,
1683
1822
  company: HERALD_COMPANY,
1684
1823
  project: HERALD_PROJECT,
1685
1824
  user: HERALD_USER,
1686
1825
  vault: HERALD_VAULT || undefined,
1687
1826
  });
1688
1827
  if (result.error) {
1689
- // Cloud failed but we have AI extraction - buffer with enriched data
1828
+ // Cloud failed but we have AI extraction - buffer with enriched data (sanitized)
1690
1829
  bufferInsight({
1691
- insight: `[SIMULATE:${feeling}] Signal: ${extracted.signal} | Insight: ${insight} | ${extracted.outcome === "pattern" ? `Reinforce: ${extracted.reinforcement}` : `Warn: ${extracted.warning}`}`,
1830
+ insight: `[SIMULATE:${feeling}] Signal: ${sanitizedSignal} | Insight: ${simSanitizedInsight} | ${extracted.outcome === "pattern" ? `Reinforce: ${sanitizedReinforcement}` : `Warn: ${sanitizedWarning}`}`,
1692
1831
  topic: extracted.outcome,
1693
1832
  company: HERALD_COMPANY,
1694
1833
  project: HERALD_PROJECT,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * CEDA-65: Client-Side Sanitization
3
+ *
4
+ * Pre-transmission sanitization for Herald MCP.
5
+ * Sensitive data never leaves the client machine.
6
+ */
7
+ export declare enum DataClassification {
8
+ PUBLIC = "PUBLIC",
9
+ INTERNAL = "INTERNAL",
10
+ CONFIDENTIAL = "CONFIDENTIAL",
11
+ RESTRICTED = "RESTRICTED"
12
+ }
13
+ export declare enum SensitiveDataType {
14
+ EMAIL = "EMAIL",
15
+ PHONE = "PHONE",
16
+ SSN = "SSN",
17
+ API_KEY = "API_KEY",
18
+ AWS_KEY = "AWS_KEY",
19
+ PASSWORD = "PASSWORD",
20
+ PRIVATE_KEY = "PRIVATE_KEY",
21
+ JWT_TOKEN = "JWT_TOKEN",
22
+ CREDIT_CARD = "CREDIT_CARD",
23
+ IP_ADDRESS = "IP_ADDRESS",
24
+ FILE_PATH = "FILE_PATH",
25
+ PHI_MEDICAL = "PHI_MEDICAL",
26
+ PHI_DIAGNOSIS = "PHI_DIAGNOSIS"
27
+ }
28
+ export interface SanitizationResult {
29
+ sanitizedText: string;
30
+ detectedTypes: SensitiveDataType[];
31
+ dataClass: DataClassification;
32
+ blocked: boolean;
33
+ blockReason?: string;
34
+ redactionCount: number;
35
+ }
36
+ /**
37
+ * Sanitize text by detecting and redacting sensitive data
38
+ * Called client-side before any data transmission
39
+ */
40
+ export declare function sanitize(text: string): SanitizationResult;
41
+ /**
42
+ * Preview what would be sanitized without modifying (for dry-run)
43
+ */
44
+ export declare function previewSanitization(text: string): {
45
+ original: string;
46
+ sanitized: string;
47
+ wouldSanitize: boolean;
48
+ detectedTypes: SensitiveDataType[];
49
+ classification: DataClassification;
50
+ wouldBlock: boolean;
51
+ blockReason?: string;
52
+ redactionCount: number;
53
+ };
54
+ /**
55
+ * Sanitize all text fields in a reflection payload
56
+ */
57
+ export declare function sanitizeReflection(payload: {
58
+ session: string;
59
+ insight: string;
60
+ signal?: string;
61
+ outcome?: string;
62
+ reinforcement?: string;
63
+ warning?: string;
64
+ }): {
65
+ sanitized: typeof payload;
66
+ summary: SanitizationResult;
67
+ };
68
+ //# sourceMappingURL=sanitization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitization.d.ts","sourceRoot":"","sources":["../src/sanitization.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,UAAU,eAAe;CAC1B;AAED,oBAAY,iBAAiB;IAC3B,KAAK,UAAU;IACf,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AA6ID;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAwCzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,cAAc,EAAE,kBAAkB,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB,CAYA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG;IACF,SAAS,EAAE,OAAO,OAAO,CAAC;IAC1B,OAAO,EAAE,kBAAkB,CAAC;CAC7B,CAuBA"}
@@ -0,0 +1,236 @@
1
+ /**
2
+ * CEDA-65: Client-Side Sanitization
3
+ *
4
+ * Pre-transmission sanitization for Herald MCP.
5
+ * Sensitive data never leaves the client machine.
6
+ */
7
+ export var DataClassification;
8
+ (function (DataClassification) {
9
+ DataClassification["PUBLIC"] = "PUBLIC";
10
+ DataClassification["INTERNAL"] = "INTERNAL";
11
+ DataClassification["CONFIDENTIAL"] = "CONFIDENTIAL";
12
+ DataClassification["RESTRICTED"] = "RESTRICTED";
13
+ })(DataClassification || (DataClassification = {}));
14
+ export var SensitiveDataType;
15
+ (function (SensitiveDataType) {
16
+ SensitiveDataType["EMAIL"] = "EMAIL";
17
+ SensitiveDataType["PHONE"] = "PHONE";
18
+ SensitiveDataType["SSN"] = "SSN";
19
+ SensitiveDataType["API_KEY"] = "API_KEY";
20
+ SensitiveDataType["AWS_KEY"] = "AWS_KEY";
21
+ SensitiveDataType["PASSWORD"] = "PASSWORD";
22
+ SensitiveDataType["PRIVATE_KEY"] = "PRIVATE_KEY";
23
+ SensitiveDataType["JWT_TOKEN"] = "JWT_TOKEN";
24
+ SensitiveDataType["CREDIT_CARD"] = "CREDIT_CARD";
25
+ SensitiveDataType["IP_ADDRESS"] = "IP_ADDRESS";
26
+ SensitiveDataType["FILE_PATH"] = "FILE_PATH";
27
+ SensitiveDataType["PHI_MEDICAL"] = "PHI_MEDICAL";
28
+ SensitiveDataType["PHI_DIAGNOSIS"] = "PHI_DIAGNOSIS";
29
+ })(SensitiveDataType || (SensitiveDataType = {}));
30
+ const PATTERNS = [
31
+ // RESTRICTED - Block entirely
32
+ {
33
+ type: SensitiveDataType.PRIVATE_KEY,
34
+ pattern: /-----BEGIN\s+(RSA\s+)?PRIVATE\s+KEY-----[\s\S]*?-----END\s+(RSA\s+)?PRIVATE\s+KEY-----/gi,
35
+ classification: DataClassification.RESTRICTED,
36
+ replacement: '[PRIVATE_KEY_BLOCKED]',
37
+ block: true,
38
+ },
39
+ {
40
+ type: SensitiveDataType.AWS_KEY,
41
+ pattern: /(?:AKIA|ABIA|ACCA|ASIA)[0-9A-Z]{16}/g,
42
+ classification: DataClassification.RESTRICTED,
43
+ replacement: '[AWS_KEY_REDACTED]',
44
+ block: true,
45
+ },
46
+ {
47
+ type: SensitiveDataType.AWS_KEY,
48
+ pattern: /aws_secret_access_key\s*[=:]\s*['"]?[A-Za-z0-9/+=]{40}['"]?/gi,
49
+ classification: DataClassification.RESTRICTED,
50
+ replacement: 'aws_secret_access_key=[AWS_SECRET_REDACTED]',
51
+ block: true,
52
+ },
53
+ // CONFIDENTIAL - Redact but allow
54
+ {
55
+ type: SensitiveDataType.SSN,
56
+ pattern: /\b\d{3}[-\s]?\d{2}[-\s]?\d{4}\b/g,
57
+ classification: DataClassification.CONFIDENTIAL,
58
+ replacement: '[SSN_REDACTED]',
59
+ },
60
+ {
61
+ type: SensitiveDataType.CREDIT_CARD,
62
+ pattern: /\b(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}|6(?:011|5[0-9]{2})[0-9]{12})\b/g,
63
+ classification: DataClassification.CONFIDENTIAL,
64
+ replacement: '[CREDIT_CARD_REDACTED]',
65
+ },
66
+ {
67
+ type: SensitiveDataType.API_KEY,
68
+ pattern: /(?:api[_-]?key|apikey|api[_-]?token)\s*[=:]\s*['"]?[A-Za-z0-9_\-]{20,}['"]?/gi,
69
+ classification: DataClassification.CONFIDENTIAL,
70
+ replacement: '[API_KEY_REDACTED]',
71
+ },
72
+ {
73
+ type: SensitiveDataType.API_KEY,
74
+ pattern: /(?:sk|pk)[-_](?:live|test)[-_][A-Za-z0-9]{24,}/g,
75
+ classification: DataClassification.CONFIDENTIAL,
76
+ replacement: '[API_KEY_REDACTED]',
77
+ },
78
+ {
79
+ type: SensitiveDataType.JWT_TOKEN,
80
+ pattern: /eyJ[A-Za-z0-9_-]*\.eyJ[A-Za-z0-9_-]*\.[A-Za-z0-9_-]*/g,
81
+ classification: DataClassification.CONFIDENTIAL,
82
+ replacement: '[JWT_TOKEN_REDACTED]',
83
+ },
84
+ {
85
+ type: SensitiveDataType.PASSWORD,
86
+ pattern: /(?:password|passwd|pwd)\s*[=:]\s*['"]?[^\s'"]{4,}['"]?/gi,
87
+ classification: DataClassification.CONFIDENTIAL,
88
+ replacement: '[PASSWORD_REDACTED]',
89
+ },
90
+ {
91
+ type: SensitiveDataType.PASSWORD,
92
+ pattern: /(?:secret|token|auth)\s*[=:]\s*['"]?[A-Za-z0-9_\-]{8,}['"]?/gi,
93
+ classification: DataClassification.CONFIDENTIAL,
94
+ replacement: '[SECRET_REDACTED]',
95
+ },
96
+ // PHI - Protected Health Information
97
+ {
98
+ type: SensitiveDataType.PHI_MEDICAL,
99
+ pattern: /\b(?:patient\s+id|medical\s+record\s+number|mrn|health\s+record)\s*[:#]?\s*[A-Z0-9\-]{4,}/gi,
100
+ classification: DataClassification.CONFIDENTIAL,
101
+ replacement: '[PHI_RECORD_REDACTED]',
102
+ },
103
+ {
104
+ type: SensitiveDataType.PHI_DIAGNOSIS,
105
+ pattern: /\b(?:diagnosed?\s+with|diagnosis|icd[-\s]?10|icd[-\s]?9)\s*[:#]?\s*[A-Z0-9\.\-]+/gi,
106
+ classification: DataClassification.CONFIDENTIAL,
107
+ replacement: '[PHI_DIAGNOSIS_REDACTED]',
108
+ },
109
+ {
110
+ type: SensitiveDataType.PHI_MEDICAL,
111
+ pattern: /\b(?:prescription|rx|medication)\s*[:#]?\s*[A-Za-z0-9\s\-]{4,}/gi,
112
+ classification: DataClassification.CONFIDENTIAL,
113
+ replacement: '[PHI_MEDICATION_REDACTED]',
114
+ },
115
+ // INTERNAL - Redact for privacy
116
+ {
117
+ type: SensitiveDataType.EMAIL,
118
+ pattern: /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,
119
+ classification: DataClassification.INTERNAL,
120
+ replacement: '[EMAIL_REDACTED]',
121
+ },
122
+ {
123
+ type: SensitiveDataType.PHONE,
124
+ pattern: /(?:\+?1[-.\s]?)?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}\b/g,
125
+ classification: DataClassification.INTERNAL,
126
+ replacement: '[PHONE_REDACTED]',
127
+ },
128
+ {
129
+ type: SensitiveDataType.IP_ADDRESS,
130
+ pattern: /\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/g,
131
+ classification: DataClassification.INTERNAL,
132
+ replacement: '[IP_REDACTED]',
133
+ },
134
+ {
135
+ type: SensitiveDataType.FILE_PATH,
136
+ pattern: /(?:\/Users\/|\/home\/|C:\\Users\\)[A-Za-z0-9_\-\.]+(?:\/[A-Za-z0-9_\-\.]+)*/g,
137
+ classification: DataClassification.INTERNAL,
138
+ replacement: '[PATH_REDACTED]',
139
+ },
140
+ {
141
+ type: SensitiveDataType.FILE_PATH,
142
+ pattern: /(?:\/var\/|\/etc\/|\/opt\/)[A-Za-z0-9_\-\.\/]+/g,
143
+ classification: DataClassification.INTERNAL,
144
+ replacement: '[PATH_REDACTED]',
145
+ },
146
+ ];
147
+ function getClassificationLevel(classification) {
148
+ switch (classification) {
149
+ case DataClassification.PUBLIC: return 0;
150
+ case DataClassification.INTERNAL: return 1;
151
+ case DataClassification.CONFIDENTIAL: return 2;
152
+ case DataClassification.RESTRICTED: return 3;
153
+ default: return 0;
154
+ }
155
+ }
156
+ /**
157
+ * Sanitize text by detecting and redacting sensitive data
158
+ * Called client-side before any data transmission
159
+ */
160
+ export function sanitize(text) {
161
+ const detectedTypes = new Set();
162
+ let sanitizedText = text;
163
+ let highestClassification = DataClassification.PUBLIC;
164
+ let blocked = false;
165
+ let blockReason;
166
+ let redactionCount = 0;
167
+ for (const pattern of PATTERNS) {
168
+ // Reset regex state for global patterns
169
+ pattern.pattern.lastIndex = 0;
170
+ const matches = [...text.matchAll(pattern.pattern)];
171
+ for (const match of matches) {
172
+ detectedTypes.add(pattern.type);
173
+ redactionCount++;
174
+ if (getClassificationLevel(pattern.classification) > getClassificationLevel(highestClassification)) {
175
+ highestClassification = pattern.classification;
176
+ }
177
+ if (pattern.block) {
178
+ blocked = true;
179
+ blockReason = `Detected ${pattern.type}: Content contains restricted data that cannot be transmitted`;
180
+ }
181
+ }
182
+ // Apply redaction
183
+ pattern.pattern.lastIndex = 0;
184
+ sanitizedText = sanitizedText.replace(pattern.pattern, pattern.replacement);
185
+ }
186
+ return {
187
+ sanitizedText: blocked ? '' : sanitizedText,
188
+ detectedTypes: Array.from(detectedTypes),
189
+ dataClass: highestClassification,
190
+ blocked,
191
+ blockReason,
192
+ redactionCount,
193
+ };
194
+ }
195
+ /**
196
+ * Preview what would be sanitized without modifying (for dry-run)
197
+ */
198
+ export function previewSanitization(text) {
199
+ const result = sanitize(text);
200
+ return {
201
+ original: text,
202
+ sanitized: result.blocked ? '[BLOCKED - Contains restricted data]' : result.sanitizedText,
203
+ wouldSanitize: result.redactionCount > 0,
204
+ detectedTypes: result.detectedTypes,
205
+ classification: result.dataClass,
206
+ wouldBlock: result.blocked,
207
+ blockReason: result.blockReason,
208
+ redactionCount: result.redactionCount,
209
+ };
210
+ }
211
+ /**
212
+ * Sanitize all text fields in a reflection payload
213
+ */
214
+ export function sanitizeReflection(payload) {
215
+ const allText = [
216
+ payload.session,
217
+ payload.insight,
218
+ payload.signal,
219
+ payload.outcome,
220
+ payload.reinforcement,
221
+ payload.warning,
222
+ ].filter(Boolean).join('\n---\n');
223
+ const summary = sanitize(allText);
224
+ return {
225
+ sanitized: {
226
+ session: sanitize(payload.session).sanitizedText,
227
+ insight: sanitize(payload.insight).sanitizedText,
228
+ signal: payload.signal ? sanitize(payload.signal).sanitizedText : undefined,
229
+ outcome: payload.outcome ? sanitize(payload.outcome).sanitizedText : undefined,
230
+ reinforcement: payload.reinforcement ? sanitize(payload.reinforcement).sanitizedText : undefined,
231
+ warning: payload.warning ? sanitize(payload.warning).sanitizedText : undefined,
232
+ },
233
+ summary,
234
+ };
235
+ }
236
+ //# sourceMappingURL=sanitization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitization.js","sourceRoot":"","sources":["../src/sanitization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sanitization.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitization.spec.d.ts","sourceRoot":"","sources":["../src/sanitization.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * CEDA-65: Sanitization Tests
3
+ */
4
+ import { sanitize, previewSanitization, DataClassification, SensitiveDataType } from "./sanitization.js";
5
+ describe("sanitization", () => {
6
+ describe("sanitize", () => {
7
+ it("should pass through clean text unchanged", () => {
8
+ const result = sanitize("This is a clean pattern about error handling");
9
+ expect(result.sanitizedText).toBe("This is a clean pattern about error handling");
10
+ expect(result.redactionCount).toBe(0);
11
+ expect(result.dataClass).toBe(DataClassification.PUBLIC);
12
+ });
13
+ it("should redact API keys", () => {
14
+ const result = sanitize("Found issue with api_key=sk-proj-abc123xyz789abc123xyz789");
15
+ expect(result.sanitizedText).toContain("[API_KEY_REDACTED]");
16
+ expect(result.detectedTypes).toContain(SensitiveDataType.API_KEY);
17
+ expect(result.dataClass).toBe(DataClassification.CONFIDENTIAL);
18
+ });
19
+ it("should redact Stripe-style keys", () => {
20
+ const result = sanitize("Using sk-live-abc123xyz789abc123xyz789abc");
21
+ expect(result.sanitizedText).toContain("[API_KEY_REDACTED]");
22
+ });
23
+ it("should redact JWT tokens", () => {
24
+ const result = sanitize("Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U");
25
+ expect(result.sanitizedText).toContain("[JWT_TOKEN_REDACTED]");
26
+ });
27
+ it("should redact file paths with usernames", () => {
28
+ const result = sanitize("Error in /Users/john/project/src/auth.ts");
29
+ expect(result.sanitizedText).toContain("[PATH_REDACTED]");
30
+ expect(result.detectedTypes).toContain(SensitiveDataType.FILE_PATH);
31
+ });
32
+ it("should redact email addresses", () => {
33
+ const result = sanitize("Contact user at john.doe@company.com for help");
34
+ expect(result.sanitizedText).toContain("[EMAIL_REDACTED]");
35
+ });
36
+ it("should redact phone numbers", () => {
37
+ const result = sanitize("Call support at 555-123-4567");
38
+ expect(result.sanitizedText).toContain("[PHONE_REDACTED]");
39
+ });
40
+ it("should redact IP addresses", () => {
41
+ const result = sanitize("Server at 192.168.1.100 is down");
42
+ expect(result.sanitizedText).toContain("[IP_REDACTED]");
43
+ });
44
+ it("should block private keys entirely", () => {
45
+ const result = sanitize(`-----BEGIN PRIVATE KEY-----
46
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC7
47
+ -----END PRIVATE KEY-----`);
48
+ expect(result.blocked).toBe(true);
49
+ expect(result.sanitizedText).toBe("");
50
+ expect(result.detectedTypes).toContain(SensitiveDataType.PRIVATE_KEY);
51
+ });
52
+ it("should block AWS access keys", () => {
53
+ const result = sanitize("Using AKIAIOSFODNN7EXAMPLE for S3");
54
+ expect(result.blocked).toBe(true);
55
+ expect(result.detectedTypes).toContain(SensitiveDataType.AWS_KEY);
56
+ });
57
+ it("should redact passwords", () => {
58
+ const result = sanitize("Set password=mysecretpass123");
59
+ expect(result.sanitizedText).toContain("[PASSWORD_REDACTED]");
60
+ });
61
+ it("should redact SSN patterns", () => {
62
+ const result = sanitize("SSN: 123-45-6789");
63
+ expect(result.sanitizedText).toContain("[SSN_REDACTED]");
64
+ });
65
+ it("should handle multiple redactions", () => {
66
+ const result = sanitize("User john@test.com at 192.168.1.1 with api_key=abc123xyz789abc123xyz789");
67
+ expect(result.redactionCount).toBeGreaterThan(2);
68
+ expect(result.sanitizedText).not.toContain("john@test.com");
69
+ expect(result.sanitizedText).not.toContain("192.168.1.1");
70
+ });
71
+ });
72
+ describe("previewSanitization", () => {
73
+ it("should show original and sanitized side by side", () => {
74
+ const result = previewSanitization("Contact john@example.com");
75
+ expect(result.original).toBe("Contact john@example.com");
76
+ expect(result.sanitized).toContain("[EMAIL_REDACTED]");
77
+ expect(result.wouldSanitize).toBe(true);
78
+ });
79
+ it("should indicate clean content", () => {
80
+ const result = previewSanitization("Clean pattern description");
81
+ expect(result.wouldSanitize).toBe(false);
82
+ expect(result.classification).toBe(DataClassification.PUBLIC);
83
+ });
84
+ it("should indicate blocked content", () => {
85
+ const result = previewSanitization("Key: AKIAIOSFODNN7EXAMPLE");
86
+ expect(result.wouldBlock).toBe(true);
87
+ });
88
+ });
89
+ });
90
+ //# sourceMappingURL=sanitization.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitization.spec.js","sourceRoot":"","sources":["../src/sanitization.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spilno/herald-mcp",
3
- "version": "1.19.0",
3
+ "version": "1.21.0",
4
4
  "description": "Herald MCP - AI-native interface to CEDA (Cognitive Event-Driven Architecture)",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -28,7 +28,7 @@
28
28
  "license": "MIT",
29
29
  "repository": {
30
30
  "type": "git",
31
- "url": "https://github.com/Spilno-me/ceda.git",
31
+ "url": "git+https://github.com/Spilno-me/ceda.git",
32
32
  "directory": "herald-mcp"
33
33
  },
34
34
  "homepage": "https://getceda.com",