@de-otio/chaoskb-client 0.3.6 → 0.3.8

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 (134) hide show
  1. package/dist/cli/bootstrap.d.ts +11 -3
  2. package/dist/cli/bootstrap.d.ts.map +1 -1
  3. package/dist/cli/bootstrap.js +181 -126
  4. package/dist/cli/bootstrap.js.map +1 -1
  5. package/dist/cli/commands/config.d.ts +30 -4
  6. package/dist/cli/commands/config.d.ts.map +1 -1
  7. package/dist/cli/commands/config.js +289 -134
  8. package/dist/cli/commands/config.js.map +1 -1
  9. package/dist/cli/commands/devices.d.ts.map +1 -1
  10. package/dist/cli/commands/devices.js +58 -33
  11. package/dist/cli/commands/devices.js.map +1 -1
  12. package/dist/cli/commands/export.d.ts.map +1 -1
  13. package/dist/cli/commands/export.js +6 -9
  14. package/dist/cli/commands/export.js.map +1 -1
  15. package/dist/cli/commands/import.js +1 -1
  16. package/dist/cli/commands/import.js.map +1 -1
  17. package/dist/cli/commands/projects.d.ts.map +1 -1
  18. package/dist/cli/commands/projects.js +33 -10
  19. package/dist/cli/commands/projects.js.map +1 -1
  20. package/dist/cli/commands/rotate-key.d.ts +3 -3
  21. package/dist/cli/commands/rotate-key.d.ts.map +1 -1
  22. package/dist/cli/commands/rotate-key.js +88 -35
  23. package/dist/cli/commands/rotate-key.js.map +1 -1
  24. package/dist/cli/commands/setup-sync.d.ts.map +1 -1
  25. package/dist/cli/commands/setup-sync.js +22 -4
  26. package/dist/cli/commands/setup-sync.js.map +1 -1
  27. package/dist/cli/index.js +20 -1
  28. package/dist/cli/index.js.map +1 -1
  29. package/dist/cli/mcp-server.d.ts +6 -0
  30. package/dist/cli/mcp-server.d.ts.map +1 -1
  31. package/dist/cli/mcp-server.js +93 -42
  32. package/dist/cli/mcp-server.js.map +1 -1
  33. package/dist/crypto/aad.d.ts +2 -5
  34. package/dist/crypto/aad.d.ts.map +1 -1
  35. package/dist/crypto/aad.js +2 -8
  36. package/dist/crypto/aad.js.map +1 -1
  37. package/dist/crypto/aead.d.ts +8 -16
  38. package/dist/crypto/aead.d.ts.map +1 -1
  39. package/dist/crypto/aead.js +10 -36
  40. package/dist/crypto/aead.js.map +1 -1
  41. package/dist/crypto/blob-id.d.ts +2 -3
  42. package/dist/crypto/blob-id.d.ts.map +1 -1
  43. package/dist/crypto/blob-id.js +2 -30
  44. package/dist/crypto/blob-id.js.map +1 -1
  45. package/dist/crypto/canonical-json.d.ts +5 -3
  46. package/dist/crypto/canonical-json.d.ts.map +1 -1
  47. package/dist/crypto/canonical-json.js +5 -85
  48. package/dist/crypto/canonical-json.js.map +1 -1
  49. package/dist/crypto/commitment.d.ts +3 -9
  50. package/dist/crypto/commitment.d.ts.map +1 -1
  51. package/dist/crypto/commitment.js +3 -27
  52. package/dist/crypto/commitment.js.map +1 -1
  53. package/dist/crypto/encryption-service.d.ts +3 -0
  54. package/dist/crypto/encryption-service.d.ts.map +1 -1
  55. package/dist/crypto/encryption-service.js +10 -6
  56. package/dist/crypto/encryption-service.js.map +1 -1
  57. package/dist/crypto/envelope-cbor.d.ts +4 -34
  58. package/dist/crypto/envelope-cbor.d.ts.map +1 -1
  59. package/dist/crypto/envelope-cbor.js +4 -121
  60. package/dist/crypto/envelope-cbor.js.map +1 -1
  61. package/dist/crypto/envelope.d.ts +1 -31
  62. package/dist/crypto/envelope.d.ts.map +1 -1
  63. package/dist/crypto/envelope.js +31 -137
  64. package/dist/crypto/envelope.js.map +1 -1
  65. package/dist/crypto/hkdf.d.ts +7 -11
  66. package/dist/crypto/hkdf.d.ts.map +1 -1
  67. package/dist/crypto/hkdf.js +9 -18
  68. package/dist/crypto/hkdf.js.map +1 -1
  69. package/dist/crypto/index.d.ts +9 -4
  70. package/dist/crypto/index.d.ts.map +1 -1
  71. package/dist/crypto/index.js +9 -4
  72. package/dist/crypto/index.js.map +1 -1
  73. package/dist/crypto/ssh-keys.d.ts +17 -10
  74. package/dist/crypto/ssh-keys.d.ts.map +1 -1
  75. package/dist/crypto/ssh-keys.js +28 -108
  76. package/dist/crypto/ssh-keys.js.map +1 -1
  77. package/dist/crypto/types.d.ts +18 -88
  78. package/dist/crypto/types.d.ts.map +1 -1
  79. package/dist/crypto/types.js +3 -0
  80. package/dist/crypto/types.js.map +1 -1
  81. package/dist/pipeline/content-pipeline.d.ts.map +1 -1
  82. package/dist/pipeline/content-pipeline.js +21 -5
  83. package/dist/pipeline/content-pipeline.js.map +1 -1
  84. package/dist/pipeline/extract.d.ts +8 -0
  85. package/dist/pipeline/extract.d.ts.map +1 -1
  86. package/dist/pipeline/extract.js +15 -4
  87. package/dist/pipeline/extract.js.map +1 -1
  88. package/dist/pipeline/fetch-browser.d.ts +29 -0
  89. package/dist/pipeline/fetch-browser.d.ts.map +1 -0
  90. package/dist/pipeline/fetch-browser.js +98 -0
  91. package/dist/pipeline/fetch-browser.js.map +1 -0
  92. package/dist/pipeline/safety.d.ts +43 -6
  93. package/dist/pipeline/safety.d.ts.map +1 -1
  94. package/dist/pipeline/safety.js +52 -15
  95. package/dist/pipeline/safety.js.map +1 -1
  96. package/dist/pipeline/validate.js +35 -23
  97. package/dist/pipeline/validate.js.map +1 -1
  98. package/package.json +4 -1
  99. package/dist/crypto/argon2.d.ts +0 -11
  100. package/dist/crypto/argon2.d.ts.map +0 -1
  101. package/dist/crypto/argon2.js +0 -33
  102. package/dist/crypto/argon2.js.map +0 -1
  103. package/dist/crypto/invite.d.ts +0 -31
  104. package/dist/crypto/invite.d.ts.map +0 -1
  105. package/dist/crypto/invite.js +0 -139
  106. package/dist/crypto/invite.js.map +0 -1
  107. package/dist/crypto/keyring.d.ts +0 -37
  108. package/dist/crypto/keyring.d.ts.map +0 -1
  109. package/dist/crypto/keyring.js +0 -219
  110. package/dist/crypto/keyring.js.map +0 -1
  111. package/dist/crypto/known-keys.d.ts +0 -34
  112. package/dist/crypto/known-keys.d.ts.map +0 -1
  113. package/dist/crypto/known-keys.js +0 -114
  114. package/dist/crypto/known-keys.js.map +0 -1
  115. package/dist/crypto/project-keys.d.ts +0 -26
  116. package/dist/crypto/project-keys.d.ts.map +0 -1
  117. package/dist/crypto/project-keys.js +0 -69
  118. package/dist/crypto/project-keys.js.map +0 -1
  119. package/dist/crypto/secure-buffer.d.ts +0 -31
  120. package/dist/crypto/secure-buffer.d.ts.map +0 -1
  121. package/dist/crypto/secure-buffer.js +0 -61
  122. package/dist/crypto/secure-buffer.js.map +0 -1
  123. package/dist/crypto/tiers/enhanced.d.ts +0 -25
  124. package/dist/crypto/tiers/enhanced.d.ts.map +0 -1
  125. package/dist/crypto/tiers/enhanced.js +0 -56
  126. package/dist/crypto/tiers/enhanced.js.map +0 -1
  127. package/dist/crypto/tiers/maximum.d.ts +0 -19
  128. package/dist/crypto/tiers/maximum.d.ts.map +0 -1
  129. package/dist/crypto/tiers/maximum.js +0 -25
  130. package/dist/crypto/tiers/maximum.js.map +0 -1
  131. package/dist/crypto/tiers/standard.d.ts +0 -27
  132. package/dist/crypto/tiers/standard.d.ts.map +0 -1
  133. package/dist/crypto/tiers/standard.js +0 -155
  134. package/dist/crypto/tiers/standard.js.map +0 -1
@@ -1,12 +1,49 @@
1
1
  /**
2
- * Shared safety checker instance for the content pipeline.
2
+ * Lazy-initialised safety checker for the content pipeline.
3
3
  *
4
- * Uses @de-otio/agent-safety-pack for URL blocklist checks,
5
- * prompt injection detection, and secrets scanning.
4
+ * Wraps @de-otio/agent-safety-pack and layers chaoskb-specific policy
5
+ * dials on top: whether matched prompt-injection and secrets content
6
+ * blocks ingestion or just emits a warning.
6
7
  *
7
- * A single instance is created at module load time so pattern files
8
- * are only read from disk once per process.
8
+ * Call `initSafetyChecker(config)` once at MCP startup after loading
9
+ * `~/.chaoskb/config.json`. Subsequent calls re-build the checker with
10
+ * the new config (useful for tests and for hot-reloading the
11
+ * `chaoskb-mcp config safety` command output).
12
+ *
13
+ * If `getSafetyChecker()` / policy accessors are called before init,
14
+ * defaults are used (same as pre-configurable behaviour).
9
15
  */
10
16
  import { type SafetyChecker } from '@de-otio/agent-safety-pack';
11
- export declare const safetyChecker: SafetyChecker;
17
+ export type ContentPolicy = 'block' | 'warn' | 'allow';
18
+ /**
19
+ * chaoskb-level safety configuration. Fields forwarded to the pack's
20
+ * `createSafetyChecker()` plus two chaoskb-internal policy dials for
21
+ * how extracted content that trips a pattern match is handled.
22
+ */
23
+ export interface ChaosKbSafetyConfig {
24
+ /** Promote `'ask'` decisions to `'deny'` (pack `strict` mode). Default false. */
25
+ strict?: boolean;
26
+ /** Enable local threat-feed lookups (pack default true). */
27
+ localFeeds?: boolean;
28
+ /** Remote threat-intel APIs, all off unless explicitly enabled. */
29
+ remoteApis?: {
30
+ urlhaus?: boolean;
31
+ googleSafeBrowsing?: string;
32
+ spamhausDbl?: boolean;
33
+ };
34
+ /** Milliseconds per remote API call. Pack default 5000. */
35
+ remoteTimeoutMs?: number;
36
+ /** How to treat prompt-injection matches. Default 'block'. */
37
+ injectionPolicy?: ContentPolicy;
38
+ /** How to treat secrets/credential matches. Default 'warn'. */
39
+ secretsPolicy?: ContentPolicy;
40
+ }
41
+ /**
42
+ * Build (or rebuild) the safety checker with the given chaoskb config.
43
+ * Pass `undefined` or omit to restore defaults.
44
+ */
45
+ export declare function initSafetyChecker(config?: ChaosKbSafetyConfig): void;
46
+ export declare function getSafetyChecker(): SafetyChecker;
47
+ export declare function getInjectionPolicy(): ContentPolicy;
48
+ export declare function getSecretsPolicy(): ContentPolicy;
12
49
  //# sourceMappingURL=safety.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../../pipeline/safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAUrF,eAAO,MAAM,aAAa,EAAE,aAG1B,CAAC"}
1
+ {"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../../pipeline/safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAEvD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mEAAmE;IACnE,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;IACF,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC,+DAA+D;IAC/D,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AA0BD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAIpE;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CAGhD;AAED,wBAAgB,kBAAkB,IAAI,aAAa,CAElD;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CAEhD"}
@@ -1,24 +1,61 @@
1
1
  /**
2
- * Shared safety checker instance for the content pipeline.
2
+ * Lazy-initialised safety checker for the content pipeline.
3
3
  *
4
- * Uses @de-otio/agent-safety-pack for URL blocklist checks,
5
- * prompt injection detection, and secrets scanning.
4
+ * Wraps @de-otio/agent-safety-pack and layers chaoskb-specific policy
5
+ * dials on top: whether matched prompt-injection and secrets content
6
+ * blocks ingestion or just emits a warning.
6
7
  *
7
- * A single instance is created at module load time so pattern files
8
- * are only read from disk once per process.
8
+ * Call `initSafetyChecker(config)` once at MCP startup after loading
9
+ * `~/.chaoskb/config.json`. Subsequent calls re-build the checker with
10
+ * the new config (useful for tests and for hot-reloading the
11
+ * `chaoskb-mcp config safety` command output).
12
+ *
13
+ * If `getSafetyChecker()` / policy accessors are called before init,
14
+ * defaults are used (same as pre-configurable behaviour).
9
15
  */
10
16
  import { dirname, resolve } from 'node:path';
11
17
  import { fileURLToPath } from 'node:url';
12
- import { createSafetyChecker } from '@de-otio/agent-safety-pack';
13
- // Resolve the patterns directory from the package's main entry point.
14
- // The main entry is at {packageRoot}/dist/index.js, so patterns/ is two
15
- // levels up from that file. Passing patternsDir explicitly avoids a
16
- // `new Function("return import.meta.url")()` call inside the library
17
- // that fails under Vite's ESM-to-CJS transform used by vitest.
18
+ import { createSafetyChecker, } from '@de-otio/agent-safety-pack';
19
+ // Resolve patterns/ relative to the installed agent-safety-pack main entry.
18
20
  const _indexPath = fileURLToPath(import.meta.resolve('@de-otio/agent-safety-pack'));
19
21
  const _patternsDir = resolve(dirname(dirname(_indexPath)), 'patterns');
20
- export const safetyChecker = createSafetyChecker({
21
- patternsDir: _patternsDir,
22
- localFeeds: true,
23
- });
22
+ const DEFAULT_INJECTION_POLICY = 'block';
23
+ const DEFAULT_SECRETS_POLICY = 'warn';
24
+ let _checker = null;
25
+ let _injectionPolicy = DEFAULT_INJECTION_POLICY;
26
+ let _secretsPolicy = DEFAULT_SECRETS_POLICY;
27
+ function buildPackConfig(c) {
28
+ const packConfig = {
29
+ patternsDir: _patternsDir,
30
+ localFeeds: c?.localFeeds ?? true,
31
+ };
32
+ if (c?.strict !== undefined)
33
+ packConfig.strict = c.strict;
34
+ if (c?.remoteApis)
35
+ packConfig.remoteApis = c.remoteApis;
36
+ if (c?.remoteTimeoutMs !== undefined) {
37
+ packConfig.timeouts = { remoteApi: c.remoteTimeoutMs };
38
+ }
39
+ return packConfig;
40
+ }
41
+ /**
42
+ * Build (or rebuild) the safety checker with the given chaoskb config.
43
+ * Pass `undefined` or omit to restore defaults.
44
+ */
45
+ export function initSafetyChecker(config) {
46
+ _checker = createSafetyChecker(buildPackConfig(config));
47
+ _injectionPolicy = config?.injectionPolicy ?? DEFAULT_INJECTION_POLICY;
48
+ _secretsPolicy = config?.secretsPolicy ?? DEFAULT_SECRETS_POLICY;
49
+ }
50
+ export function getSafetyChecker() {
51
+ if (!_checker)
52
+ initSafetyChecker();
53
+ return _checker;
54
+ }
55
+ export function getInjectionPolicy() {
56
+ return _injectionPolicy;
57
+ }
58
+ export function getSecretsPolicy() {
59
+ return _secretsPolicy;
60
+ }
24
61
  //# sourceMappingURL=safety.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"safety.js","sourceRoot":"","sources":["../../pipeline/safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAsB,MAAM,4BAA4B,CAAC;AAErF,sEAAsE;AACtE,wEAAwE;AACxE,oEAAoE;AACpE,qEAAqE;AACrE,+DAA+D;AAC/D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC;AACpF,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,aAAa,GAAkB,mBAAmB,CAAC;IAC9D,WAAW,EAAE,YAAY;IACzB,UAAU,EAAE,IAAI;CACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"safety.js","sourceRoot":"","sources":["../../pipeline/safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,mBAAmB,GAGpB,MAAM,4BAA4B,CAAC;AA4BpC,4EAA4E;AAC5E,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC;AACpF,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAEvE,MAAM,wBAAwB,GAAkB,OAAO,CAAC;AACxD,MAAM,sBAAsB,GAAkB,MAAM,CAAC;AAErD,IAAI,QAAQ,GAAyB,IAAI,CAAC;AAC1C,IAAI,gBAAgB,GAAkB,wBAAwB,CAAC;AAC/D,IAAI,cAAc,GAAkB,sBAAsB,CAAC;AAE3D,SAAS,eAAe,CAAC,CAAuB;IAC9C,MAAM,UAAU,GAAwB;QACtC,WAAW,EAAE,YAAY;QACzB,UAAU,EAAE,CAAC,EAAE,UAAU,IAAI,IAAI;KAClC,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,KAAK,SAAS;QAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1D,IAAI,CAAC,EAAE,UAAU;QAAE,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;IACxD,IAAI,CAAC,EAAE,eAAe,KAAK,SAAS,EAAE,CAAC;QACrC,UAAU,CAAC,QAAQ,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;IACzD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAA4B;IAC5D,QAAQ,GAAG,mBAAmB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,gBAAgB,GAAG,MAAM,EAAE,eAAe,IAAI,wBAAwB,CAAC;IACvE,cAAc,GAAG,MAAM,EAAE,aAAa,IAAI,sBAAsB,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,QAAQ;QAAE,iBAAiB,EAAE,CAAC;IACnC,OAAO,QAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -12,7 +12,7 @@
12
12
  *
13
13
  * All patterns are English-only for now.
14
14
  */
15
- import { safetyChecker } from './safety.js';
15
+ import { getSafetyChecker, getInjectionPolicy, getSecretsPolicy } from './safety.js';
16
16
  // ===== Thresholds ==========================================================
17
17
  const THIN_CONTENT_LIMIT = 50;
18
18
  const SHORT_CONTENT_LIMIT = 200;
@@ -577,29 +577,41 @@ function checkZeroWidthCharacters(text, issues) {
577
577
  }
578
578
  }
579
579
  function checkInjectionAndSecrets(text, issues) {
580
- const injection = safetyChecker.checkContentInjection(text);
581
- if (injection.decision !== 'allow') {
582
- const count = injection.matchCount;
583
- issues.push({
584
- severity: 'warning',
585
- code: 'possible-prompt-injection',
586
- message: count >= 3
587
- ? `The extracted content matches ${count} prompt-injection patterns ` +
588
- '(instruction overrides, role impersonation, or delimiter escapes). ' +
589
- 'This content has a high likelihood of containing adversarial text designed to manipulate an AI agent.'
590
- : 'The extracted content contains text that resembles a prompt-injection attempt ' +
591
- '(e.g. instruction overrides, system impersonation, or delimiter escapes). ' +
592
- 'The content was stored but may contain adversarial text.',
593
- });
580
+ const checker = getSafetyChecker();
581
+ const injectionPolicy = getInjectionPolicy();
582
+ if (injectionPolicy !== 'allow') {
583
+ const injection = checker.checkContentInjection(text);
584
+ if (injection.decision !== 'allow') {
585
+ const count = injection.matchCount;
586
+ const blocking = injectionPolicy === 'block';
587
+ const tail = blocking ? 'was not stored.' : 'was stored but may contain adversarial text.';
588
+ issues.push({
589
+ severity: blocking ? 'error' : 'warning',
590
+ code: 'possible-prompt-injection',
591
+ message: count >= 3
592
+ ? `The extracted content matches ${count} prompt-injection patterns ` +
593
+ '(instruction overrides, role impersonation, or delimiter escapes). ' +
594
+ `This content has a high likelihood of containing adversarial text designed to manipulate an AI agent, and ${tail}`
595
+ : 'The extracted content contains text that resembles a prompt-injection attempt ' +
596
+ `(e.g. instruction overrides, system impersonation, or delimiter escapes), and ${tail}`,
597
+ });
598
+ }
594
599
  }
595
- const secrets = safetyChecker.checkContentSecrets(text);
596
- if (secrets.decision !== 'allow') {
597
- issues.push({
598
- severity: 'warning',
599
- code: 'possible-credentials',
600
- message: 'The extracted content appears to contain credentials or secret keys. ' +
601
- 'Review before using this content with any external services.',
602
- });
600
+ const secretsPolicy = getSecretsPolicy();
601
+ if (secretsPolicy !== 'allow') {
602
+ const secrets = checker.checkContentSecrets(text);
603
+ if (secrets.decision !== 'allow') {
604
+ const blocking = secretsPolicy === 'block';
605
+ issues.push({
606
+ severity: blocking ? 'error' : 'warning',
607
+ code: 'possible-credentials',
608
+ message: blocking
609
+ ? 'The extracted content appears to contain credentials or secret keys; ' +
610
+ 'ingestion rejected. Review your safety config if this is a false positive.'
611
+ : 'The extracted content appears to contain credentials or secret keys. ' +
612
+ 'Review before using this content with any external services.',
613
+ });
614
+ }
603
615
  }
604
616
  }
605
617
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../pipeline/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../pipeline/validate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@de-otio/chaoskb-client",
3
- "version": "0.3.6",
3
+ "version": "0.3.8",
4
4
  "description": "ChaosKB - E2E encrypted personal knowledge base with MCP integration",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -46,6 +46,8 @@
46
46
  },
47
47
  "dependencies": {
48
48
  "@de-otio/agent-safety-pack": "^0.1.1",
49
+ "@de-otio/crypto-envelope": "^0.2.0-alpha.1",
50
+ "@de-otio/keyring": "^0.1.0-alpha.1",
49
51
  "@modelcontextprotocol/sdk": "^1.27.1",
50
52
  "@mozilla/readability": "^0.6.0",
51
53
  "@noble/ciphers": "^2.1.1",
@@ -60,6 +62,7 @@
60
62
  "mammoth": "^1.12.0",
61
63
  "onnxruntime-node": "^1.24.3",
62
64
  "pdf-parse": "^2.4.5",
65
+ "playwright": "^1.48.0",
63
66
  "sodium-native": "^5.1.0",
64
67
  "sshpk": "^1.18.0"
65
68
  },
@@ -1,11 +0,0 @@
1
- import type { ISecureBuffer } from './types.js';
2
- /**
3
- * Derive a master key from a passphrase using Argon2id.
4
- * The passphrase is held in a SecureBuffer and zeroed after derivation.
5
- *
6
- * @param passphrase - User passphrase
7
- * @param salt - 16-byte salt (CSPRNG-generated, stored on server)
8
- * @returns SecureBuffer containing the 32-byte derived key
9
- */
10
- export declare function deriveFromPassphrase(passphrase: string, salt: Uint8Array): ISecureBuffer;
11
- //# sourceMappingURL=argon2.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"argon2.d.ts","sourceRoot":"","sources":["../../crypto/argon2.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAQhD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,aAAa,CAiBxF"}
@@ -1,33 +0,0 @@
1
- import { argon2id } from '@noble/hashes/argon2.js';
2
- import { SecureBuffer } from './secure-buffer.js';
3
- // Argon2id parameters per spec: t=3, m=65536 (64MB), p=1, output 32 bytes
4
- const ARGON2_TIME_COST = 3;
5
- const ARGON2_MEMORY_COST = 65536; // in KiB = 64 MB
6
- const ARGON2_PARALLELISM = 1;
7
- const ARGON2_OUTPUT_LENGTH = 32;
8
- /**
9
- * Derive a master key from a passphrase using Argon2id.
10
- * The passphrase is held in a SecureBuffer and zeroed after derivation.
11
- *
12
- * @param passphrase - User passphrase
13
- * @param salt - 16-byte salt (CSPRNG-generated, stored on server)
14
- * @returns SecureBuffer containing the 32-byte derived key
15
- */
16
- export function deriveFromPassphrase(passphrase, salt) {
17
- // Convert passphrase to bytes and hold in a buffer we can zero
18
- const passphraseBytes = Buffer.from(passphrase, 'utf-8');
19
- try {
20
- const derived = argon2id(passphraseBytes, salt, {
21
- t: ARGON2_TIME_COST,
22
- m: ARGON2_MEMORY_COST,
23
- p: ARGON2_PARALLELISM,
24
- dkLen: ARGON2_OUTPUT_LENGTH,
25
- });
26
- return SecureBuffer.from(Buffer.from(derived));
27
- }
28
- finally {
29
- // Zero passphrase memory immediately
30
- passphraseBytes.fill(0);
31
- }
32
- }
33
- //# sourceMappingURL=argon2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"argon2.js","sourceRoot":"","sources":["../../crypto/argon2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,0EAA0E;AAC1E,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,kBAAkB,GAAG,KAAK,CAAC,CAAC,iBAAiB;AACnD,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB,EAAE,IAAgB;IACvE,+DAA+D;IAC/D,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEzD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,EAAE,IAAI,EAAE;YAC9C,CAAC,EAAE,gBAAgB;YACnB,CAAC,EAAE,kBAAkB;YACrB,CAAC,EAAE,kBAAkB;YACrB,KAAK,EAAE,oBAAoB;SAC5B,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC;YAAS,CAAC;QACT,qCAAqC;QACrC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC"}
@@ -1,31 +0,0 @@
1
- import type { SSHKeyInfo } from './types.js';
2
- /**
3
- * Create an encrypted invite blob for sharing a project key.
4
- *
5
- * Uses ephemeral X25519 ECDH + HKDF (with domain separation) + XChaCha20-Poly1305.
6
- * The sender's and recipient's fingerprints and the project ID are bound into the
7
- * HKDF info string to prevent cross-context key confusion.
8
- *
9
- * Output format: ephemeral_public_key(32) || nonce(24) || ciphertext || tag(16)
10
- */
11
- export declare function createInviteBlob(projectKey: Uint8Array, projectId: string, senderKeyInfo: SSHKeyInfo, recipientKeyInfo: SSHKeyInfo): Uint8Array;
12
- /**
13
- * Open an encrypted invite blob to recover the project key.
14
- *
15
- * @param blob - The full invite blob (ephemeral_pk || nonce || ciphertext || tag)
16
- * @param recipientEd25519Sk - The recipient's 64-byte Ed25519 secret key
17
- * @param recipientKeyInfo - The recipient's SSH key info (for fingerprint)
18
- * @param senderKeyInfo - The sender's SSH key info (for fingerprint)
19
- * @param projectId - The project ID (for HKDF domain separation)
20
- * @returns The raw project key bytes
21
- */
22
- export declare function openInviteBlob(blob: Uint8Array, recipientEd25519Sk: Uint8Array, recipientKeyInfo: SSHKeyInfo, senderKeyInfo: SSHKeyInfo, projectId: string): Uint8Array;
23
- /**
24
- * Pad payload to a fixed size to prevent metadata leakage from blob sizes.
25
- */
26
- export declare function padPayload(payload: Uint8Array, targetSize: number): Uint8Array;
27
- /**
28
- * Remove padding to recover the original payload.
29
- */
30
- export declare function unpadPayload(padded: Uint8Array): Uint8Array;
31
- //# sourceMappingURL=invite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"invite.d.ts","sourceRoot":"","sources":["../../crypto/invite.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,UAAU,EACzB,gBAAgB,EAAE,UAAU,GAC3B,UAAU,CA4CZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,kBAAkB,EAAE,UAAU,EAC9B,gBAAgB,EAAE,UAAU,EAC5B,aAAa,EAAE,UAAU,EACzB,SAAS,EAAE,MAAM,GAChB,UAAU,CAkCZ;AAeD;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,CAgB9E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAS3D"}
@@ -1,139 +0,0 @@
1
- import { createHash, randomBytes } from 'node:crypto';
2
- import sodium from 'sodium-native';
3
- // sodium-native types are incomplete — these functions exist at runtime
4
- const sodiumAny = sodium;
5
- import { aeadEncrypt, aeadDecrypt } from './aead.js';
6
- import { deriveKey } from './hkdf.js';
7
- import { ed25519ToX25519PublicKey, ed25519ToX25519SecretKey } from './ssh-keys.js';
8
- const PADDED_PAYLOAD_SIZE = 512;
9
- /**
10
- * Create an encrypted invite blob for sharing a project key.
11
- *
12
- * Uses ephemeral X25519 ECDH + HKDF (with domain separation) + XChaCha20-Poly1305.
13
- * The sender's and recipient's fingerprints and the project ID are bound into the
14
- * HKDF info string to prevent cross-context key confusion.
15
- *
16
- * Output format: ephemeral_public_key(32) || nonce(24) || ciphertext || tag(16)
17
- */
18
- export function createInviteBlob(projectKey, projectId, senderKeyInfo, recipientKeyInfo) {
19
- if (recipientKeyInfo.type !== 'ed25519') {
20
- throw new Error('Invite crypto currently supports Ed25519 recipients only');
21
- }
22
- // Generate ephemeral X25519 key pair
23
- const ephPk = Buffer.alloc(sodium.crypto_box_PUBLICKEYBYTES);
24
- const ephSk = Buffer.alloc(sodium.crypto_box_SECRETKEYBYTES);
25
- sodiumAny.crypto_box_keypair(ephPk, ephSk);
26
- // Convert recipient Ed25519 public key to X25519
27
- const recipientX25519Pk = ed25519ToX25519PublicKey(recipientKeyInfo.publicKeyBytes);
28
- // ECDH: shared_secret = X25519(ephemeral_secret, recipient_x25519_public)
29
- const sharedSecret = Buffer.alloc(sodiumAny.crypto_scalarmult_BYTES);
30
- sodiumAny.crypto_scalarmult(sharedSecret, ephSk, Buffer.from(recipientX25519Pk));
31
- // Derive encryption key with domain separation
32
- const info = buildInviteHkdfInfo(senderKeyInfo.fingerprint, recipientKeyInfo.fingerprint, projectId);
33
- const encryptionKey = deriveKey(new Uint8Array(sharedSecret), info);
34
- // Pad and encrypt payload
35
- const payload = JSON.stringify({
36
- projectKey: Buffer.from(projectKey).toString('base64'),
37
- projectId,
38
- });
39
- const padded = padPayload(new TextEncoder().encode(payload), PADDED_PAYLOAD_SIZE);
40
- const emptyAAD = new Uint8Array(0);
41
- const { nonce, ciphertext, tag } = aeadEncrypt(encryptionKey, padded, emptyAAD);
42
- // Zero sensitive buffers
43
- ephSk.fill(0);
44
- sharedSecret.fill(0);
45
- encryptionKey.fill(0);
46
- // Output: ephemeral_pk(32) || nonce(24) || ciphertext || tag(16)
47
- const result = new Uint8Array(ephPk.length + nonce.length + ciphertext.length + tag.length);
48
- let offset = 0;
49
- result.set(ephPk, offset);
50
- offset += ephPk.length;
51
- result.set(nonce, offset);
52
- offset += nonce.length;
53
- result.set(ciphertext, offset);
54
- offset += ciphertext.length;
55
- result.set(tag, offset);
56
- return result;
57
- }
58
- /**
59
- * Open an encrypted invite blob to recover the project key.
60
- *
61
- * @param blob - The full invite blob (ephemeral_pk || nonce || ciphertext || tag)
62
- * @param recipientEd25519Sk - The recipient's 64-byte Ed25519 secret key
63
- * @param recipientKeyInfo - The recipient's SSH key info (for fingerprint)
64
- * @param senderKeyInfo - The sender's SSH key info (for fingerprint)
65
- * @param projectId - The project ID (for HKDF domain separation)
66
- * @returns The raw project key bytes
67
- */
68
- export function openInviteBlob(blob, recipientEd25519Sk, recipientKeyInfo, senderKeyInfo, projectId) {
69
- // Parse the blob
70
- let offset = 0;
71
- const ephPk = blob.slice(offset, offset + 32);
72
- offset += 32;
73
- const nonce = blob.slice(offset, offset + 24);
74
- offset += 24;
75
- const tagStart = blob.length - 16;
76
- const ciphertext = blob.slice(offset, tagStart);
77
- const tag = blob.slice(tagStart);
78
- // Convert recipient Ed25519 secret key to X25519
79
- const recipientX25519Sk = ed25519ToX25519SecretKey(recipientEd25519Sk);
80
- // ECDH: shared_secret = X25519(recipient_x25519_secret, ephemeral_public)
81
- const sharedSecret = Buffer.alloc(sodiumAny.crypto_scalarmult_BYTES);
82
- sodiumAny.crypto_scalarmult(sharedSecret, Buffer.from(recipientX25519Sk), Buffer.from(ephPk));
83
- // Derive same encryption key
84
- const info = buildInviteHkdfInfo(senderKeyInfo.fingerprint, recipientKeyInfo.fingerprint, projectId);
85
- const encryptionKey = deriveKey(new Uint8Array(sharedSecret), info);
86
- // Decrypt
87
- const emptyAAD = new Uint8Array(0);
88
- const padded = aeadDecrypt(encryptionKey, nonce, ciphertext, tag, emptyAAD);
89
- // Zero sensitive buffers
90
- const skBuf = Buffer.from(recipientX25519Sk);
91
- skBuf.fill(0);
92
- sharedSecret.fill(0);
93
- encryptionKey.fill(0);
94
- // Unpad and extract project key
95
- const payload = unpadPayload(padded);
96
- const parsed = JSON.parse(new TextDecoder().decode(payload));
97
- return Buffer.from(parsed.projectKey, 'base64');
98
- }
99
- /**
100
- * Build the HKDF info string with domain separation.
101
- *
102
- * Format: "chaoskb-invite-v1" || SHA256(senderFingerprint)(32) || SHA256(recipientFingerprint)(32) || SHA256(projectId)(32)
103
- * Fixed-width encoding prevents ambiguity from variable-length fields.
104
- */
105
- function buildInviteHkdfInfo(senderFingerprint, recipientFingerprint, projectId) {
106
- const senderHash = createHash('sha256').update(senderFingerprint).digest('hex').slice(0, 64);
107
- const recipientHash = createHash('sha256').update(recipientFingerprint).digest('hex').slice(0, 64);
108
- const projectHash = createHash('sha256').update(projectId).digest('hex').slice(0, 64);
109
- return `chaoskb-invite-v1${senderHash}${recipientHash}${projectHash}`;
110
- }
111
- /**
112
- * Pad payload to a fixed size to prevent metadata leakage from blob sizes.
113
- */
114
- export function padPayload(payload, targetSize) {
115
- if (payload.length > targetSize - 4) {
116
- throw new Error(`Payload too large to pad: ${payload.length} bytes (max ${targetSize - 4})`);
117
- }
118
- const padded = new Uint8Array(targetSize);
119
- // First 4 bytes: big-endian payload length
120
- const view = new DataView(padded.buffer);
121
- view.setUint32(0, payload.length, false);
122
- padded.set(payload, 4);
123
- // Fill remainder with random bytes
124
- const randomPadding = randomBytes(targetSize - 4 - payload.length);
125
- padded.set(randomPadding, 4 + payload.length);
126
- return padded;
127
- }
128
- /**
129
- * Remove padding to recover the original payload.
130
- */
131
- export function unpadPayload(padded) {
132
- const view = new DataView(padded.buffer, padded.byteOffset, padded.byteLength);
133
- const length = view.getUint32(0, false);
134
- if (length > padded.length - 4) {
135
- throw new Error('Invalid padding: declared length exceeds buffer');
136
- }
137
- return padded.slice(4, 4 + length);
138
- }
139
- //# sourceMappingURL=invite.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"invite.js","sourceRoot":"","sources":["../../crypto/invite.ts"],"names":[],"mappings":"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"}
@@ -1,37 +0,0 @@
1
- import type { IKeyringService, ISecureBuffer } from './types.js';
2
- /**
3
- * OS keyring integration via shell commands.
4
- * Uses execFile (not exec) to prevent shell injection.
5
- *
6
- * macOS: security add-generic-password / find-generic-password / delete-generic-password
7
- * Linux: secret-tool store / lookup / clear
8
- * Windows: cmdkey /add: / /list: / /delete:
9
- */
10
- export declare class KeyringService implements IKeyringService {
11
- private readonly platform;
12
- constructor(platform?: NodeJS.Platform);
13
- /**
14
- * Store a secret in the OS keyring.
15
- */
16
- store(service: string, account: string, secret: ISecureBuffer): Promise<void>;
17
- /**
18
- * Retrieve a secret from the OS keyring.
19
- * Returns null if not found.
20
- */
21
- retrieve(service: string, account: string): Promise<ISecureBuffer | null>;
22
- /**
23
- * Delete a secret from the OS keyring.
24
- * Returns true if deleted, false if not found.
25
- */
26
- delete(service: string, account: string): Promise<boolean>;
27
- private storeMacOS;
28
- private retrieveMacOS;
29
- private deleteMacOS;
30
- private storeLinux;
31
- private retrieveLinux;
32
- private deleteLinux;
33
- private storeWindows;
34
- private retrieveWindows;
35
- private deleteWindows;
36
- }
37
- //# sourceMappingURL=keyring.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyring.d.ts","sourceRoot":"","sources":["../../crypto/keyring.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIjE;;;;;;;GAOG;AACH,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAE/B,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ;IAItC;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBnF;;;OAGG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAyB/E;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAuBlD,UAAU;YAqBV,aAAa;YAUb,WAAW;YAUX,UAAU;YAkBV,aAAa;YASb,WAAW;YAUX,YAAY;YAWZ,eAAe;YA4Cf,aAAa;CAI5B"}