@blackbox_ai/blackbox-cli-core 0.0.9 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/README.md +11 -183
  2. package/dist/index.d.ts +2 -1
  3. package/dist/index.js +2 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/blackbox/blackboxOAuth2.js +17 -1
  6. package/dist/src/blackbox/blackboxOAuth2.js.map +1 -1
  7. package/dist/src/code_assist/oauth2.js +15 -3
  8. package/dist/src/code_assist/oauth2.js.map +1 -1
  9. package/dist/src/config/blackboxModels.d.ts +3 -2
  10. package/dist/src/config/blackboxModels.js +262 -33
  11. package/dist/src/config/blackboxModels.js.map +1 -1
  12. package/dist/src/config/config.d.ts +65 -0
  13. package/dist/src/config/config.js +282 -17
  14. package/dist/src/config/config.js.map +1 -1
  15. package/dist/src/config/models.d.ts +1 -1
  16. package/dist/src/config/models.js +1 -1
  17. package/dist/src/config/models.js.map +1 -1
  18. package/dist/src/config/multiAgentModels.d.ts +63 -0
  19. package/dist/src/config/multiAgentModels.js +194 -0
  20. package/dist/src/config/multiAgentModels.js.map +1 -0
  21. package/dist/src/core/client.js +8 -2
  22. package/dist/src/core/client.js.map +1 -1
  23. package/dist/src/core/contentGenerator.d.ts +1 -0
  24. package/dist/src/core/contentGenerator.js +57 -7
  25. package/dist/src/core/contentGenerator.js.map +1 -1
  26. package/dist/src/core/encryptedClientFactory.d.ts +17 -0
  27. package/dist/src/core/encryptedClientFactory.js +92 -0
  28. package/dist/src/core/encryptedClientFactory.js.map +1 -0
  29. package/dist/src/core/encryptedContentGenerator.d.ts +47 -0
  30. package/dist/src/core/encryptedContentGenerator.js +445 -0
  31. package/dist/src/core/encryptedContentGenerator.js.map +1 -0
  32. package/dist/src/core/encryptedGeminiClient.d.ts +59 -0
  33. package/dist/src/core/encryptedGeminiClient.js +177 -0
  34. package/dist/src/core/encryptedGeminiClient.js.map +1 -0
  35. package/dist/src/core/encryptedGeminiClientBridge.d.ts +107 -0
  36. package/dist/src/core/encryptedGeminiClientBridge.js +808 -0
  37. package/dist/src/core/encryptedGeminiClientBridge.js.map +1 -0
  38. package/dist/src/core/encryptedGeminiClientWrapper.d.ts +129 -0
  39. package/dist/src/core/encryptedGeminiClientWrapper.js +305 -0
  40. package/dist/src/core/encryptedGeminiClientWrapper.js.map +1 -0
  41. package/dist/src/core/encryptedTurn.d.ts +40 -0
  42. package/dist/src/core/encryptedTurn.js +114 -0
  43. package/dist/src/core/encryptedTurn.js.map +1 -0
  44. package/dist/src/core/logger.d.ts +21 -0
  45. package/dist/src/core/logger.js +110 -0
  46. package/dist/src/core/logger.js.map +1 -1
  47. package/dist/src/core/openaiContentGenerator/constants.d.ts +2 -0
  48. package/dist/src/core/openaiContentGenerator/constants.js +2 -0
  49. package/dist/src/core/openaiContentGenerator/constants.js.map +1 -1
  50. package/dist/src/core/openaiContentGenerator/converter.d.ts +16 -1
  51. package/dist/src/core/openaiContentGenerator/converter.js +135 -4
  52. package/dist/src/core/openaiContentGenerator/converter.js.map +1 -1
  53. package/dist/src/core/openaiContentGenerator/pipeline.js +6 -2
  54. package/dist/src/core/openaiContentGenerator/pipeline.js.map +1 -1
  55. package/dist/src/core/openaiContentGenerator/provider/default.js +10 -1
  56. package/dist/src/core/openaiContentGenerator/provider/default.js.map +1 -1
  57. package/dist/src/core/prompts.d.ts +17 -0
  58. package/dist/src/core/prompts.js +347 -19
  59. package/dist/src/core/prompts.js.map +1 -1
  60. package/dist/src/core/tokenLimits.d.ts +1 -0
  61. package/dist/src/core/tokenLimits.js +37 -2
  62. package/dist/src/core/tokenLimits.js.map +1 -1
  63. package/dist/src/core/tokenLimits.test.js +36 -1
  64. package/dist/src/core/tokenLimits.test.js.map +1 -1
  65. package/dist/src/encrypt/attestation.d.ts +5 -0
  66. package/dist/src/encrypt/attestation.js +100 -0
  67. package/dist/src/encrypt/attestation.js.map +1 -0
  68. package/dist/src/encrypt/client.d.ts +14 -0
  69. package/dist/src/encrypt/client.js +132 -0
  70. package/dist/src/encrypt/client.js.map +1 -0
  71. package/dist/src/encrypt/config.d.ts +22 -0
  72. package/dist/src/encrypt/config.js +43 -0
  73. package/dist/src/encrypt/config.js.map +1 -0
  74. package/dist/src/encrypt/crypto-utils.d.ts +57 -0
  75. package/dist/src/encrypt/crypto-utils.js +257 -0
  76. package/dist/src/encrypt/crypto-utils.js.map +1 -0
  77. package/dist/src/encrypt/history-manager.d.ts +43 -0
  78. package/dist/src/encrypt/history-manager.js +164 -0
  79. package/dist/src/encrypt/history-manager.js.map +1 -0
  80. package/dist/src/encrypt/minimax-template.d.ts +73 -0
  81. package/dist/src/encrypt/minimax-template.js +276 -0
  82. package/dist/src/encrypt/minimax-template.js.map +1 -0
  83. package/dist/src/encrypt/sessions.d.ts +17 -0
  84. package/dist/src/encrypt/sessions.js +221 -0
  85. package/dist/src/encrypt/sessions.js.map +1 -0
  86. package/dist/src/encrypt/streaming-client.d.ts +29 -0
  87. package/dist/src/encrypt/streaming-client.js +232 -0
  88. package/dist/src/encrypt/streaming-client.js.map +1 -0
  89. package/dist/src/encrypt/tool-formatter.d.ts +36 -0
  90. package/dist/src/encrypt/tool-formatter.js +353 -0
  91. package/dist/src/encrypt/tool-formatter.js.map +1 -0
  92. package/dist/src/encrypt/tool-parser.d.ts +93 -0
  93. package/dist/src/encrypt/tool-parser.js +567 -0
  94. package/dist/src/encrypt/tool-parser.js.map +1 -0
  95. package/dist/src/encrypt/types.d.ts +81 -0
  96. package/dist/src/encrypt/types.js +2 -0
  97. package/dist/src/encrypt/types.js.map +1 -0
  98. package/dist/src/generated/git-commit.d.ts +3 -3
  99. package/dist/src/generated/git-commit.js +3 -3
  100. package/dist/src/ide/ide-client.js +9 -19
  101. package/dist/src/ide/ide-client.js.map +1 -1
  102. package/dist/src/index.d.ts +15 -0
  103. package/dist/src/index.js +15 -0
  104. package/dist/src/index.js.map +1 -1
  105. package/dist/src/mcp/oauth-provider.js +2 -6
  106. package/dist/src/mcp/oauth-provider.js.map +1 -1
  107. package/dist/src/mcp/oauth-token-storage.d.ts +7 -0
  108. package/dist/src/mcp/oauth-token-storage.js +24 -0
  109. package/dist/src/mcp/oauth-token-storage.js.map +1 -1
  110. package/dist/src/services/EncryptedChatService.d.ts +80 -0
  111. package/dist/src/services/EncryptedChatService.js +202 -0
  112. package/dist/src/services/EncryptedChatService.js.map +1 -0
  113. package/dist/src/services/StatsHistoryService.d.ts +131 -0
  114. package/dist/src/services/StatsHistoryService.js +427 -0
  115. package/dist/src/services/StatsHistoryService.js.map +1 -0
  116. package/dist/src/services/checkpointApiService.d.ts +101 -0
  117. package/dist/src/services/checkpointApiService.js +215 -0
  118. package/dist/src/services/checkpointApiService.js.map +1 -0
  119. package/dist/src/services/environmentSanitization.d.ts +24 -0
  120. package/dist/src/services/environmentSanitization.js +152 -0
  121. package/dist/src/services/environmentSanitization.js.map +1 -0
  122. package/dist/src/telemetry/blackbox-logger/blackbox-logger.d.ts +2 -6
  123. package/dist/src/telemetry/blackbox-logger/blackbox-logger.js +29 -135
  124. package/dist/src/telemetry/blackbox-logger/blackbox-logger.js.map +1 -1
  125. package/dist/src/telemetry/blackbox-logger/blackbox-logger.test.js +1 -1
  126. package/dist/src/telemetry/blackbox-logger/blackbox-logger.test.js.map +1 -1
  127. package/dist/src/telemetry/uiTelemetry.d.ts +8 -0
  128. package/dist/src/telemetry/uiTelemetry.js +17 -0
  129. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  130. package/dist/src/tools/browser-interactive.d.ts +63 -0
  131. package/dist/src/tools/browser-interactive.js +394 -0
  132. package/dist/src/tools/browser-interactive.js.map +1 -0
  133. package/dist/src/tools/browser_use.d.ts +22 -1
  134. package/dist/src/tools/browser_use.js +403 -23
  135. package/dist/src/tools/browser_use.js.map +1 -1
  136. package/dist/src/tools/data-file-constants.d.ts +17 -0
  137. package/dist/src/tools/data-file-constants.js +30 -0
  138. package/dist/src/tools/data-file-constants.js.map +1 -0
  139. package/dist/src/tools/edit.js +44 -7
  140. package/dist/src/tools/edit.js.map +1 -1
  141. package/dist/src/tools/ls.js +40 -6
  142. package/dist/src/tools/ls.js.map +1 -1
  143. package/dist/src/tools/ls.test.js +4 -4
  144. package/dist/src/tools/ls.test.js.map +1 -1
  145. package/dist/src/tools/mcp-client-manager.d.ts +28 -2
  146. package/dist/src/tools/mcp-client-manager.js +62 -4
  147. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  148. package/dist/src/tools/mcp-client.d.ts +5 -3
  149. package/dist/src/tools/mcp-client.js +39 -11
  150. package/dist/src/tools/mcp-client.js.map +1 -1
  151. package/dist/src/tools/mcp-tool.d.ts +3 -1
  152. package/dist/src/tools/mcp-tool.js +37 -9
  153. package/dist/src/tools/mcp-tool.js.map +1 -1
  154. package/dist/src/tools/memoryTool.d.ts +14 -4
  155. package/dist/src/tools/memoryTool.js +98 -39
  156. package/dist/src/tools/memoryTool.js.map +1 -1
  157. package/dist/src/tools/read-data-file.d.ts +31 -0
  158. package/dist/src/tools/read-data-file.js +469 -0
  159. package/dist/src/tools/read-data-file.js.map +1 -0
  160. package/dist/src/tools/read-file.js +64 -5
  161. package/dist/src/tools/read-file.js.map +1 -1
  162. package/dist/src/tools/read-file.test.js +40 -6
  163. package/dist/src/tools/read-file.test.js.map +1 -1
  164. package/dist/src/tools/shell.d.ts +3 -1
  165. package/dist/src/tools/shell.js +25 -4
  166. package/dist/src/tools/shell.js.map +1 -1
  167. package/dist/src/tools/skill.d.ts +34 -0
  168. package/dist/src/tools/skill.js +143 -0
  169. package/dist/src/tools/skill.js.map +1 -0
  170. package/dist/src/tools/sql_db.d.ts +101 -0
  171. package/dist/src/tools/sql_db.js +1033 -0
  172. package/dist/src/tools/sql_db.js.map +1 -0
  173. package/dist/src/tools/sql_db_configure.d.ts +18 -0
  174. package/dist/src/tools/sql_db_configure.js +96 -0
  175. package/dist/src/tools/sql_db_configure.js.map +1 -0
  176. package/dist/src/tools/taskCompletion.d.ts +29 -0
  177. package/dist/src/tools/taskCompletion.js +231 -0
  178. package/dist/src/tools/taskCompletion.js.map +1 -0
  179. package/dist/src/tools/tool-error.d.ts +3 -1
  180. package/dist/src/tools/tool-error.js +3 -0
  181. package/dist/src/tools/tool-error.js.map +1 -1
  182. package/dist/src/tools/tool-names.d.ts +8 -0
  183. package/dist/src/tools/tool-names.js +8 -0
  184. package/dist/src/tools/tool-names.js.map +1 -1
  185. package/dist/src/tools/tool-registry.d.ts +22 -0
  186. package/dist/src/tools/tool-registry.js +41 -1
  187. package/dist/src/tools/tool-registry.js.map +1 -1
  188. package/dist/src/tools/tools.d.ts +18 -2
  189. package/dist/src/tools/tools.js +3 -0
  190. package/dist/src/tools/tools.js.map +1 -1
  191. package/dist/src/tools/web-fetch.js +24 -4
  192. package/dist/src/tools/web-fetch.js.map +1 -1
  193. package/dist/src/tools/web-search.js +160 -2
  194. package/dist/src/tools/web-search.js.map +1 -1
  195. package/dist/src/tools/workspace-error-helper.d.ts +9 -0
  196. package/dist/src/tools/workspace-error-helper.js +43 -0
  197. package/dist/src/tools/workspace-error-helper.js.map +1 -0
  198. package/dist/src/tools/workspace-error-helper.test.js +85 -0
  199. package/dist/src/tools/workspace-error-helper.test.js.map +1 -0
  200. package/dist/src/tools/write-file.js +42 -7
  201. package/dist/src/tools/write-file.js.map +1 -1
  202. package/dist/src/utils/environmentContext.js +3 -1
  203. package/dist/src/utils/environmentContext.js.map +1 -1
  204. package/dist/src/utils/environmentContext.test.js +3 -2
  205. package/dist/src/utils/environmentContext.test.js.map +1 -1
  206. package/dist/src/utils/fetch.d.ts +3 -1
  207. package/dist/src/utils/fetch.js +35 -2
  208. package/dist/src/utils/fetch.js.map +1 -1
  209. package/dist/src/utils/fileUtils.js +30 -3
  210. package/dist/src/utils/fileUtils.js.map +1 -1
  211. package/dist/src/utils/filesearch/fileSearch.d.ts +2 -0
  212. package/dist/src/utils/filesearch/fileSearch.js +38 -7
  213. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  214. package/dist/src/utils/git-worktree-utils.d.ts +56 -0
  215. package/dist/src/utils/git-worktree-utils.js +176 -0
  216. package/dist/src/utils/git-worktree-utils.js.map +1 -0
  217. package/dist/src/utils/imageCompression.d.ts +34 -0
  218. package/dist/src/utils/imageCompression.js +170 -0
  219. package/dist/src/utils/imageCompression.js.map +1 -0
  220. package/dist/src/utils/messageTruncator.d.ts +51 -0
  221. package/dist/src/utils/messageTruncator.js +346 -0
  222. package/dist/src/utils/messageTruncator.js.map +1 -0
  223. package/dist/src/utils/pathReader.js +26 -6
  224. package/dist/src/utils/pathReader.js.map +1 -1
  225. package/dist/src/utils/skill.d.ts +65 -0
  226. package/dist/src/utils/skill.js +241 -0
  227. package/dist/src/utils/skill.js.map +1 -0
  228. package/dist/src/utils/textCleaning.d.ts +51 -0
  229. package/dist/src/utils/textCleaning.js +327 -0
  230. package/dist/src/utils/textCleaning.js.map +1 -0
  231. package/dist/tsconfig.tsbuildinfo +1 -1
  232. package/package.json +16 -2
  233. package/dist/src/tools/mcp-client-manager.test.js +0 -39
  234. package/dist/src/tools/mcp-client-manager.test.js.map +0 -1
  235. package/dist/src/tools/mcp-client.test.d.ts +0 -6
  236. package/dist/src/tools/mcp-client.test.js +0 -454
  237. package/dist/src/tools/mcp-client.test.js.map +0 -1
  238. package/dist/src/tools/mcp-tool.test.d.ts +0 -6
  239. package/dist/src/tools/mcp-tool.test.js +0 -576
  240. package/dist/src/tools/mcp-tool.test.js.map +0 -1
  241. package/dist/src/tools/memoryTool.test.d.ts +0 -6
  242. package/dist/src/tools/memoryTool.test.js +0 -420
  243. package/dist/src/tools/memoryTool.test.js.map +0 -1
  244. package/dist/src/tools/tool-registry.test.d.ts +0 -6
  245. package/dist/src/tools/tool-registry.test.js +0 -332
  246. package/dist/src/tools/tool-registry.test.js.map +0 -1
  247. /package/dist/src/tools/{mcp-client-manager.test.d.ts → workspace-error-helper.test.d.ts} +0 -0
@@ -8,6 +8,7 @@ type TokenCount = number;
8
8
  export type TokenLimitType = 'input' | 'output';
9
9
  export declare const DEFAULT_TOKEN_LIMIT: TokenCount;
10
10
  export declare const DEFAULT_OUTPUT_TOKEN_LIMIT: TokenCount;
11
+ export declare const MAX_OUTPUT_TOKEN_LIMIT: TokenCount;
11
12
  /** Robust normalizer: strips provider prefixes, pipes/colons, date/version suffixes, etc. */
12
13
  export declare function normalize(model: string): string;
13
14
  /**
@@ -1,5 +1,6 @@
1
1
  export const DEFAULT_TOKEN_LIMIT = 131_072; // 128K (power-of-two)
2
2
  export const DEFAULT_OUTPUT_TOKEN_LIMIT = 4_096; // 4K tokens
3
+ export const MAX_OUTPUT_TOKEN_LIMIT = 128_000; // 128K tokens (for models like Claude 3.7 beta)
3
4
  /**
4
5
  * Accurate numeric limits:
5
6
  * - power-of-two approximations (128K -> 131072, 256K -> 262144, etc.)
@@ -19,14 +20,21 @@ const LIMITS = {
19
20
  '4k': 4_096,
20
21
  '8k': 8_192,
21
22
  '16k': 16_384,
23
+ // Anthropic-specific limits (exact values, not power-of-two)
24
+ '32k-anthropic': 32_000,
25
+ '64k-anthropic': 64_000,
26
+ '128k-anthropic': 128_000,
22
27
  };
23
28
  /** Robust normalizer: strips provider prefixes, pipes/colons, date/version suffixes, etc. */
24
29
  export function normalize(model) {
25
30
  let s = (model ?? '').toLowerCase().trim();
26
- // keep final path segment (strip provider prefixes), handle pipe/colon
31
+ // keep final path segment (strip provider prefixes), handle pipe
27
32
  s = s.replace(/^.*\//, '');
28
33
  s = s.split('|').pop() ?? s;
29
- s = s.split(':').pop() ?? s;
34
+ // Handle colon - but keep :beta, :thinking suffixes for Claude models
35
+ if (!s.match(/:(beta|thinking)$/)) {
36
+ s = s.split(':').pop() ?? s;
37
+ }
30
38
  // collapse whitespace to single hyphen
31
39
  s = s.replace(/\s+/g, '-');
32
40
  // remove trailing build / date / revision suffixes:
@@ -76,6 +84,9 @@ const PATTERNS = [
76
84
  // - Some Sonnet/Opus models offer 1M in beta/enterprise tiers (handled separately if needed).
77
85
  [/^claude-3\.5-sonnet.*$/, LIMITS['200k']],
78
86
  [/^claude-3\.7-sonnet.*$/, LIMITS['1m']], // some Sonnet 3.7/Opus variants advertise 1M beta in docs
87
+ [/^claude-sonnet-4\.5.*$/, LIMITS['1m']], // Claude Sonnet 4.5 (blackbox-pro): 1M context
88
+ [/^blackbox-pro$/, LIMITS['1m']], // blackbox-pro maps to Claude Sonnet 4.5
89
+ [/^claude-opus-4\.5.*$/, LIMITS['1m']], // Claude Opus 4.5: 1M context
79
90
  [/^claude-sonnet-4.*$/, LIMITS['1m']],
80
91
  [/^claude-opus-4.*$/, LIMITS['1m']],
81
92
  // -------------------
@@ -133,6 +144,30 @@ const PATTERNS = [
133
144
  * in a single response for specific models.
134
145
  */
135
146
  const OUTPUT_PATTERNS = [
147
+ // -------------------
148
+ // Anthropic Claude - Output Limits (from models-or.yaml)
149
+ // Use exact Anthropic values, not power-of-two approximations
150
+ // -------------------
151
+ // Claude Sonnet 4.5 (blackbox-pro): 64,000 max output tokens
152
+ [/^claude-sonnet-4\.5.*$/, LIMITS['64k-anthropic']],
153
+ [/^blackbox-pro$/, LIMITS['64k-anthropic']],
154
+ // Claude Opus 4.5: 64,000 max output tokens
155
+ [/^claude-opus-4\.5.*$/, LIMITS['64k-anthropic']],
156
+ // Claude Sonnet 4: 64,000 max output tokens
157
+ [/^claude-sonnet-4.*$/, LIMITS['64k-anthropic']],
158
+ // Claude 3.7 Sonnet: 64,000 max output tokens
159
+ [/^claude-3\.7-sonnet.*$/, LIMITS['64k-anthropic']],
160
+ // Claude Opus 4: 32,000 max output tokens
161
+ [/^claude-opus-4.*$/, LIMITS['32k-anthropic']],
162
+ // Claude 3.5 Sonnet: 8,192 max output tokens
163
+ [/^claude-3\.5-sonnet.*$/, LIMITS['8k']],
164
+ // -------------------
165
+ // OpenAI - Output Limits
166
+ // -------------------
167
+ // GPT-4.1 series: 16,384 max output tokens
168
+ [/^gpt-4\.1.*$/, LIMITS['16k']],
169
+ // GPT-4o series: 16,384 max output tokens
170
+ [/^gpt-4o.*$/, LIMITS['16k']],
136
171
  // -------------------
137
172
  // Alibaba / Blackbox - DashScope Models
138
173
  // -------------------
@@ -1 +1 @@
1
- {"version":3,"file":"tokenLimits.js","sourceRoot":"","sources":["../../../src/core/tokenLimits.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokenLimits.js","sourceRoot":"","sources":["../../../src/core/tokenLimits.ts"],"names":[],"mappings":"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"}
@@ -99,6 +99,11 @@ describe('tokenLimit', () => {
99
99
  it('should return the correct limit for Claude 3.7 Sonnet', () => {
100
100
  expect(tokenLimit('claude-3.7-sonnet')).toBe(1048576);
101
101
  });
102
+ it('should return the correct limit for Claude Sonnet 4.5 (blackbox-pro)', () => {
103
+ expect(tokenLimit('claude-sonnet-4.5')).toBe(1048576);
104
+ expect(tokenLimit('claude-sonnet-4-5-20250929')).toBe(1048576);
105
+ expect(tokenLimit('blackbox-pro')).toBe(1048576);
106
+ });
102
107
  it('should return the correct limit for Claude Sonnet 4', () => {
103
108
  expect(tokenLimit('claude-sonnet-4')).toBe(1048576);
104
109
  });
@@ -204,11 +209,41 @@ describe('tokenLimit with output type', () => {
204
209
  expect(tokenLimit('blackbox-vl-max-latest', 'output')).toBe(8192);
205
210
  });
206
211
  });
212
+ describe('Claude models with output limits', () => {
213
+ it('should return the correct output limit for Claude Sonnet 4.5 (blackbox-pro)', () => {
214
+ expect(tokenLimit('claude-sonnet-4.5', 'output')).toBe(64000); // 64K output (Anthropic exact)
215
+ expect(tokenLimit('claude-sonnet-4-5-20250929', 'output')).toBe(64000); // 64K output
216
+ expect(tokenLimit('blackbox-pro', 'output')).toBe(64000); // 64K output
217
+ });
218
+ it('should return the correct output limit for Claude Sonnet 4', () => {
219
+ expect(tokenLimit('claude-sonnet-4', 'output')).toBe(64000); // 64K output (Anthropic exact)
220
+ expect(tokenLimit('claude-sonnet-4-20250514', 'output')).toBe(64000); // 64K output
221
+ });
222
+ it('should return the correct output limit for Claude Opus 4', () => {
223
+ expect(tokenLimit('claude-opus-4', 'output')).toBe(32000); // 32K output (Anthropic exact)
224
+ expect(tokenLimit('claude-opus-4-20250514', 'output')).toBe(32000); // 32K output
225
+ });
226
+ it('should return the correct output limit for Claude 3.7 Sonnet', () => {
227
+ expect(tokenLimit('claude-3.7-sonnet', 'output')).toBe(64000); // 64K output (Anthropic exact)
228
+ });
229
+ it('should return the correct output limit for Claude 3.5 Sonnet', () => {
230
+ expect(tokenLimit('claude-3.5-sonnet', 'output')).toBe(8192); // 8K output
231
+ });
232
+ });
233
+ describe('OpenAI models with output limits', () => {
234
+ it('should return the correct output limit for GPT-4.1 models', () => {
235
+ expect(tokenLimit('gpt-4.1', 'output')).toBe(16384); // 16K output
236
+ expect(tokenLimit('gpt-4.1-mini', 'output')).toBe(16384); // 16K output
237
+ });
238
+ it('should return the correct output limit for GPT-4o models', () => {
239
+ expect(tokenLimit('gpt-4o', 'output')).toBe(16384); // 16K output
240
+ expect(tokenLimit('gpt-4o-mini', 'output')).toBe(16384); // 16K output
241
+ });
242
+ });
207
243
  describe('Default output limits', () => {
208
244
  it('should return the default output limit for unknown models', () => {
209
245
  expect(tokenLimit('unknown-model', 'output')).toBe(DEFAULT_OUTPUT_TOKEN_LIMIT);
210
246
  expect(tokenLimit('gpt-4', 'output')).toBe(DEFAULT_OUTPUT_TOKEN_LIMIT);
211
- expect(tokenLimit('claude-3.5-sonnet', 'output')).toBe(DEFAULT_OUTPUT_TOKEN_LIMIT);
212
247
  });
213
248
  it('should return the default output limit for models without specific output patterns', () => {
214
249
  expect(tokenLimit('blackbox3-coder-7b', 'output')).toBe(DEFAULT_OUTPUT_TOKEN_LIMIT);
@@ -1 +1 @@
1
- {"version":3,"file":"tokenLimits.test.js","sourceRoot":"","sources":["../../../src/core/tokenLimits.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokenLimits.test.js","sourceRoot":"","sources":["../../../src/core/tokenLimits.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { ProcessedAttestationData } from './types.js';
2
+ /**
3
+ * Performs secure attestation and key generation for a new session
4
+ */
5
+ export declare const performSecureAttestation: (systemPrompt?: string) => Promise<ProcessedAttestationData>;
@@ -0,0 +1,100 @@
1
+ import { ENCRYPTION_CONFIG } from './config.js';
2
+ import { fromB64, generateUuid, generateKeyPair, deserializePublicKeyPem, deriveSharedKey } from './crypto-utils.js';
3
+ /**
4
+ * Basic attestation verification extracted from streaming-client.ts
5
+ * Validates structure, nonce binding, and key presence.
6
+ * Internal function - not exported since it's only used within this module.
7
+ */
8
+ async function verifyAttestationBasic(reportJson, signature, gpuEat, publicKeyPem, nonce) {
9
+ // Perform minimal structural checks consistent with previous implementation
10
+ const report = JSON.parse(reportJson);
11
+ const expectedNonceB64 = btoa(String.fromCharCode.apply(null, Array.from(nonce)));
12
+ if (report.nonce !== expectedNonceB64) {
13
+ throw new Error(`Nonce mismatch: expected ${expectedNonceB64}, got ${report.nonce}`);
14
+ }
15
+ if (!signature || signature.length === 0) {
16
+ throw new Error('Missing signature');
17
+ }
18
+ if (!publicKeyPem.includes('BEGIN PUBLIC KEY')) {
19
+ throw new Error('Invalid public key format');
20
+ }
21
+ }
22
+ /**
23
+ * Process a single attestation result
24
+ */
25
+ async function processAttestationResult(result, localKeys) {
26
+ const { body } = result;
27
+ // Extract server public key
28
+ const serverPubPem = body.public_key || body.public_key_worker;
29
+ if (!serverPubPem) {
30
+ throw new Error(`Attestation result ${result.id} missing server public key`);
31
+ }
32
+ // Extract nonce
33
+ const nonceB64 = body.nonce_b64 || body.nonceB64 || body.nonce;
34
+ if (!nonceB64) {
35
+ throw new Error(`Attestation result ${result.id} missing nonce_b64`);
36
+ }
37
+ const nonceBytes = fromB64(nonceB64);
38
+ // Verify attestation
39
+ await verifyAttestationBasic(body.report_json, body.signature, body.gpu_eat, serverPubPem, nonceBytes);
40
+ // Deserialize public key and derive shared key
41
+ const serverPublicKeySpki = deserializePublicKeyPem(serverPubPem);
42
+ const sharedKey = await deriveSharedKey(localKeys.ecdhPrivate, serverPublicKeySpki);
43
+ return {
44
+ id: result.id,
45
+ publicKeySpki: serverPublicKeySpki,
46
+ publicKeyPem: serverPubPem,
47
+ sharedKey
48
+ };
49
+ }
50
+ /**
51
+ * Performs secure attestation and key generation for a new session
52
+ */
53
+ export const performSecureAttestation = async (systemPrompt) => {
54
+ // Perform attestation
55
+ const response = await fetch(ENCRYPTION_CONFIG.attestationUrl);
56
+ if (!response.ok) {
57
+ throw new Error(`Attestation request failed: ${response.status}`);
58
+ }
59
+ const responseData = await response.json();
60
+ // Generate local keys once for all attestations
61
+ const localKeys = await generateKeyPair();
62
+ const serverPublicKeys = [];
63
+ const sharedKeys = [];
64
+ // Process each attestation result
65
+ for (const result of responseData.results) {
66
+ try {
67
+ if (result.status === 200) {
68
+ const processed = await processAttestationResult(result, localKeys);
69
+ serverPublicKeys.push({
70
+ id: processed.id,
71
+ publicKeySpki: processed.publicKeySpki,
72
+ publicKeyPem: processed.publicKeyPem
73
+ });
74
+ sharedKeys.push({
75
+ id: processed.id,
76
+ sharedKey: processed.sharedKey
77
+ });
78
+ }
79
+ else {
80
+ console.warn(`⚠️ Skipping attestation result ${result.id} with status ${result.status}`);
81
+ }
82
+ }
83
+ catch (error) {
84
+ console.error(`❌ Failed to process attestation result ${result.id}:`, error);
85
+ // Continue processing other results even if one fails
86
+ }
87
+ }
88
+ if (sharedKeys.length === 0) {
89
+ throw new Error('No successful attestation results could be processed');
90
+ }
91
+ return {
92
+ sessionId: generateUuid(),
93
+ nonce: 1000,
94
+ history: systemPrompt ? [{ role: 'system', content: systemPrompt }] : [],
95
+ serverPublicKeys,
96
+ localKeys,
97
+ sharedKeys,
98
+ };
99
+ };
100
+ //# sourceMappingURL=attestation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attestation.js","sourceRoot":"","sources":["../../../src/encrypt/attestation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type FileData } from './types.js';
2
+ /**
3
+ * Sends a message through the encrypted stream using the StreamingClient.
4
+ * Now supports both sessionId and chatId for backward compatibility.
5
+ *
6
+ * @param sessionIdOrChatId - The session or chat ID
7
+ * @param userText - The current user message text
8
+ * @param fullMessageHistory - Optional full conversation history for proper context in followup messages
9
+ * @param fileData - Optional file data (images, PDFs, etc.)
10
+ */
11
+ export declare const sendMessageStream: (sessionIdOrChatId: string, userText: string, fullMessageHistory?: Array<{
12
+ role: "system" | "user" | "assistant";
13
+ content: string;
14
+ }>, fileData?: FileData) => Promise<ReadableStream<Uint8Array>>;
@@ -0,0 +1,132 @@
1
+ import { ENCRYPTION_CONFIG } from './config.js';
2
+ import { getHydratedSessionByChatId, initializeSecureSession } from './sessions.js';
3
+ import { StreamingClient } from './streaming-client.js';
4
+ import {} from './types.js';
5
+ import { toB64 } from './crypto-utils.js';
6
+ /**
7
+ * Sends a message through the encrypted stream using the StreamingClient.
8
+ * Now supports both sessionId and chatId for backward compatibility.
9
+ *
10
+ * @param sessionIdOrChatId - The session or chat ID
11
+ * @param userText - The current user message text
12
+ * @param fullMessageHistory - Optional full conversation history for proper context in followup messages
13
+ * @param fileData - Optional file data (images, PDFs, etc.)
14
+ */
15
+ export const sendMessageStream = async (sessionIdOrChatId, userText, fullMessageHistory, fileData) => {
16
+ // Validate input parameters
17
+ if (!sessionIdOrChatId || sessionIdOrChatId.trim().length === 0) {
18
+ throw new Error('Session ID or Chat ID cannot be empty');
19
+ }
20
+ if (!userText || userText.trim().length === 0) {
21
+ throw new Error('User message cannot be empty');
22
+ }
23
+ // Try to get hydrated session by chatId first (includes crypto keys)
24
+ let session = await getHydratedSessionByChatId(sessionIdOrChatId);
25
+ // If no session exists, create a new one
26
+ if (!session || !session.initialized) {
27
+ const systemPrompt = fullMessageHistory?.find((m) => m.role === 'system')?.content;
28
+ session = await initializeSecureSession(sessionIdOrChatId, systemPrompt);
29
+ }
30
+ try {
31
+ // Use provided message history or fall back to session history
32
+ // Ensure we always have a valid array
33
+ const messageHistory = fullMessageHistory && fullMessageHistory.length > 0
34
+ ? fullMessageHistory
35
+ : session.history || [];
36
+ // Create a streaming client for this session (system prompt from message history)
37
+ const systemPrompt = messageHistory.find((m) => m.role === 'system')?.content;
38
+ const client = new StreamingClient(ENCRYPTION_CONFIG.baseUrl, ENCRYPTION_CONFIG.attestationUrl, systemPrompt);
39
+ // Initialize from existing session data to avoid re-attestation
40
+ if (session.attestationData) {
41
+ client.initializeFromSession({
42
+ sessionId: session.sessionId,
43
+ nonce: session.nonce,
44
+ history: messageHistory,
45
+ attestationData: session.attestationData
46
+ });
47
+ }
48
+ // Send the message and get the encrypted stream
49
+ const encryptedStream = await client.sendMessageStream(userText, fileData);
50
+ // Update session history with the new user message
51
+ // If fullMessageHistory was provided, sync session.history with it
52
+ if (fullMessageHistory && fullMessageHistory.length > 0) {
53
+ session.history = [...fullMessageHistory];
54
+ }
55
+ else {
56
+ // Ensure session.history is initialized
57
+ if (!session.history) {
58
+ session.history = [];
59
+ }
60
+ session.history.push({ role: 'user', content: userText });
61
+ }
62
+ session.nonce += 1;
63
+ // Update the session in sessionStorage with crypto materials
64
+ try {
65
+ const attestationData = session.attestationData;
66
+ if (!attestationData) {
67
+ throw new Error('No attestation data available for storage update');
68
+ }
69
+ // Store multi-attestation data
70
+ const serverPublicKeysB64 = attestationData.serverPublicKeys.map((key) => ({
71
+ id: key.id,
72
+ publicKeySpki_b64: toB64(key.publicKeySpki),
73
+ publicKeyPem: key.publicKeyPem
74
+ }));
75
+ const sharedKeysB64 = attestationData.sharedKeys.map((key) => ({
76
+ id: key.id,
77
+ sharedKey_b64: toB64(key.sharedKey)
78
+ }));
79
+ const ecdsaPrivPkcs8 = await crypto.subtle.exportKey('pkcs8', attestationData.localKeys.ecdsaPrivate);
80
+ const ecdsaPrivB64 = toB64(new Uint8Array(ecdsaPrivPkcs8));
81
+ const ecdsaPubSpki = await crypto.subtle.exportKey('spki', attestationData.localKeys.ecdsaPublic);
82
+ const ecdsaPubB64 = toB64(new Uint8Array(ecdsaPubSpki));
83
+ const sessionFilePath = `${process.env['HOME'] || process.env['USERPROFILE']}/.blackboxcli/sessions/blackbox_secure_session_${sessionIdOrChatId}.json`;
84
+ const storedObj = {
85
+ sessionId: session.sessionId,
86
+ initialized: session.initialized,
87
+ nonce: session.nonce,
88
+ history: session.history,
89
+ createdAt: session.createdAt,
90
+ serverPublicKeys_b64: serverPublicKeysB64,
91
+ sharedKeys_b64: sharedKeysB64,
92
+ ecdsaPrivatePkcs8_b64: ecdsaPrivB64,
93
+ ecdsaPublicSpki_b64: ecdsaPubB64
94
+ };
95
+ // Import fs for file operations
96
+ const fs = await import('node:fs');
97
+ const path = await import('node:path');
98
+ // Ensure directory exists
99
+ const sessionDir = path.dirname(sessionFilePath);
100
+ if (!fs.existsSync(sessionDir)) {
101
+ fs.mkdirSync(sessionDir, { recursive: true });
102
+ }
103
+ fs.writeFileSync(sessionFilePath, JSON.stringify(storedObj));
104
+ }
105
+ catch (storageError) {
106
+ console.warn('⚠️ Failed to update session in storage:', storageError);
107
+ }
108
+ return encryptedStream;
109
+ }
110
+ catch (error) {
111
+ console.error('❌ Failed to send encrypted message:', error);
112
+ // Instead of creating a fake fallback response, throw the actual error
113
+ // This allows the model to learn from real errors and users to see actual issues
114
+ if (error instanceof Error) {
115
+ // Enhance the error with additional context for better debugging
116
+ const enhancedError = new Error(`Encryption service failed: ${error.message}\n` +
117
+ `Session ID: ${sessionIdOrChatId}\n` +
118
+ `Error Type: ${error.constructor.name}\n` +
119
+ `Timestamp: ${new Date().toISOString()}`);
120
+ enhancedError.stack = error.stack;
121
+ enhancedError.cause = error;
122
+ throw enhancedError;
123
+ }
124
+ else {
125
+ // Handle non-Error objects
126
+ throw new Error(`Encryption service failed with unknown error: ${String(error)}\n` +
127
+ `Session ID: ${sessionIdOrChatId}\n` +
128
+ `Timestamp: ${new Date().toISOString()}`);
129
+ }
130
+ }
131
+ };
132
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/encrypt/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,iBAAyB,EACzB,QAAgB,EAChB,kBAAsF,EACtF,QAAmB,EACkB,EAAE;IACvC,4BAA4B;IAC5B,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,qEAAqE;IACrE,IAAI,OAAO,GAAG,MAAM,0BAA0B,CAAC,iBAAiB,CAAC,CAAC;IAElE,yCAAyC;IACzC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnF,OAAO,GAAG,MAAM,uBAAuB,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,CAAC;QACH,+DAA+D;QAC/D,sCAAsC;QACtC,MAAM,cAAc,GAAG,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC;YACxE,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QAE1B,kFAAkF;QAClF,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,OAAO,CAAC;QAC9E,MAAM,MAAM,GAAG,IAAI,eAAe,CAChC,iBAAiB,CAAC,OAAO,EACzB,iBAAiB,CAAC,cAAc,EAChC,YAAY,CACb,CAAC;QAEF,gEAAgE;QAChE,IAAK,OAA0E,CAAC,eAAe,EAAE,CAAC;YAChG,MAAM,CAAC,qBAAqB,CAAC;gBAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,cAAc;gBACvB,eAAe,EAAG,OAAyE,CAAC,eAAe;aAC5G,CAAC,CAAC;QACL,CAAC;QAED,gDAAgD;QAChD,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE3E,mDAAmD;QACnD,mEAAmE;QACnE,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,OAAO,CAAC,OAAO,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;YACvB,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;QAEnB,6DAA6D;QAC7D,IAAI,CAAC;YACH,MAAM,eAAe,GAAI,OAA0E,CAAC,eAAe,CAAC;YACpH,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACtE,CAAC;YAED,+BAA+B;YAC/B,MAAM,mBAAmB,GAAG,eAAe,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACzE,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,iBAAiB,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;gBAC3C,YAAY,EAAE,GAAG,CAAC,YAAY;aAC/B,CAAC,CAAC,CAAC;YAEJ,MAAM,aAAa,GAAG,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC7D,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;aACpC,CAAC,CAAC,CAAC;YAEJ,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACtG,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;YAE3D,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAClG,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;YAExD,MAAM,eAAe,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,kDAAkD,iBAAiB,OAAO,CAAC;YACvJ,MAAM,SAAS,GAAG;gBAChB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,oBAAoB,EAAE,mBAAmB;gBACzC,cAAc,EAAE,aAAa;gBAC7B,qBAAqB,EAAE,YAAY;gBACnC,mBAAmB,EAAE,WAAW;aACjC,CAAC;YAEF,gCAAgC;YAChC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;YAEvC,0BAA0B;YAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,CAAC;YAED,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,YAAY,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAAE,YAAY,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;QAE5D,uEAAuE;QACvE,iFAAiF;QACjF,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,iEAAiE;YACjE,MAAM,aAAa,GAAG,IAAI,KAAK,CAC7B,8BAA8B,KAAK,CAAC,OAAO,IAAI;gBAC/C,eAAe,iBAAiB,IAAI;gBACpC,eAAe,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI;gBACzC,cAAc,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CACzC,CAAC;YACF,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAClC,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC;YAC5B,MAAM,aAAa,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,2BAA2B;YAC3B,MAAM,IAAI,KAAK,CACb,iDAAiD,MAAM,CAAC,KAAK,CAAC,IAAI;gBAClE,eAAe,iBAAiB,IAAI;gBACpC,cAAc,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CACzC,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Encrypted model identifiers - used to detect if a model requires encryption
3
+ */
4
+ export declare const ENCRYPTED_MODELS: string[];
5
+ /**
6
+ * Timeout constants for encrypted operations
7
+ */
8
+ export declare const DEFAULT_ENCRYPTED_TIMEOUT: number;
9
+ export declare const DEFAULT_ENCRYPTED_RETRY_COUNT: number;
10
+ export declare const ATTESTATION_TIMEOUT: number;
11
+ export declare const ENCRYPTION_CONFIG: {
12
+ baseUrl: string;
13
+ attestationUrl: string;
14
+ messageStreamUrl: string;
15
+ streamingTimeout: number;
16
+ attestationTimeout: number;
17
+ retryCount: number;
18
+ };
19
+ /**
20
+ * Detects if the selected model requires encryption
21
+ */
22
+ export declare const isEncryptedModel: (modelName: string) => boolean;
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Encrypted model identifiers - used to detect if a model requires encryption
3
+ */
4
+ export const ENCRYPTED_MODELS = [
5
+ 'blackboxai/encrypted',
6
+ 'blackboxai/encrypted-pro',
7
+ 'blackboxai/secure-coder',
8
+ 'blackbox/encrypted',
9
+ 'encrypted-gpt-4',
10
+ 'encrypted-claude',
11
+ 'secure-model'
12
+ ];
13
+ /**
14
+ * Timeout constants for encrypted operations
15
+ */
16
+ export const DEFAULT_ENCRYPTED_TIMEOUT = parseInt(process.env['BLACKBOX_ENCRYPTED_TIMEOUT'] || '1800000', 10);
17
+ export const DEFAULT_ENCRYPTED_RETRY_COUNT = parseInt(process.env['BLACKBOX_ENCRYPTED_RETRY_COUNT'] || '2', 10);
18
+ // Connection timeout for initial attestation
19
+ export const ATTESTATION_TIMEOUT = parseInt(process.env['BLACKBOX_ATTESTATION_TIMEOUT'] || '30000', // 30 seconds
20
+ 10);
21
+ /**
22
+ * Configuration for encryption service endpoints
23
+ */
24
+ // CLI environment - always use direct URL
25
+ const baseUrl = process.env['BLACKBOX_ENCRYPTION_BASE_URL'] || 'https://encrypt.blackboxai.app';
26
+ export const ENCRYPTION_CONFIG = {
27
+ baseUrl,
28
+ attestationUrl: `${baseUrl}/attestation`,
29
+ messageStreamUrl: `${baseUrl}/message_stream`,
30
+ // Timeout configuration
31
+ streamingTimeout: DEFAULT_ENCRYPTED_TIMEOUT,
32
+ attestationTimeout: ATTESTATION_TIMEOUT,
33
+ retryCount: DEFAULT_ENCRYPTED_RETRY_COUNT,
34
+ };
35
+ /**
36
+ * Detects if the selected model requires encryption
37
+ */
38
+ export const isEncryptedModel = (modelName) => {
39
+ if (!modelName)
40
+ return false;
41
+ return ENCRYPTED_MODELS.some(encryptedModel => modelName.toLowerCase().includes(encryptedModel.toLowerCase()));
42
+ };
43
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/encrypt/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,sBAAsB;IACtB,0BAA0B;IAC1B,yBAAyB;IACzB,oBAAoB;IACpB,iBAAiB;IACjB,kBAAkB;IAClB,cAAc;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,QAAQ,CAC/C,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,SAAS,EACtD,EAAE,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,QAAQ,CACnD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,IAAI,GAAG,EACpD,EAAE,CACH,CAAC;AAEF,6CAA6C;AAC7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CACzC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,OAAO,EAAE,aAAa;AACrE,EAAE,CACH,CAAC;AAEF;;GAEG;AAEH,0CAA0C;AAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,gCAAgC,CAAC;AAEhG,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO;IACP,cAAc,EAAE,GAAG,OAAO,cAAc;IACxC,gBAAgB,EAAE,GAAG,OAAO,iBAAiB;IAC7C,wBAAwB;IACxB,gBAAgB,EAAE,yBAAyB;IAC3C,kBAAkB,EAAE,mBAAmB;IACvC,UAAU,EAAE,6BAA6B;CAC1C,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAW,EAAE;IAC7D,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,OAAO,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAC5C,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAC/D,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Low-level cryptographic utilities extracted from streaming-client.ts
3
+ */
4
+ export interface CryptoKeyPair {
5
+ ecdhPrivate: CryptoKey;
6
+ ecdsaPrivate: CryptoKey;
7
+ ecdsaPublic: CryptoKey;
8
+ }
9
+ /**
10
+ * Convert Uint8Array to base64 string
11
+ */
12
+ export declare const toB64: (u8: Uint8Array) => string;
13
+ /**
14
+ * Convert base64 string to Uint8Array
15
+ */
16
+ export declare const fromB64: (b64: string) => Uint8Array;
17
+ /**
18
+ * Generate a UUID for identification (moved from streaming-client.ts)
19
+ */
20
+ export declare const generateUuid: () => string;
21
+ /**
22
+ * Generate a P-384 keypair for both ECDSA and ECDH operations (moved from streaming-client.ts)
23
+ * Reuses the same key material for both operations (matching Rust behavior)
24
+ */
25
+ export declare function generateKeyPair(): Promise<CryptoKeyPair>;
26
+ export declare function ecdsaRawToDer(raw: Uint8Array): Uint8Array;
27
+ export declare function ecdsaDerToRaw(der: Uint8Array): Uint8Array;
28
+ /**
29
+ * Serialize a WebCrypto ECDSA/ECDH public key to PEM (SPKI)
30
+ */
31
+ export declare function serializePublicKeyPem(publicKey: CryptoKey): Promise<string>;
32
+ /**
33
+ * Deserialize PEM (SPKI) public key string to Uint8Array bytes
34
+ */
35
+ export declare function deserializePublicKeyPem(pem: string): Uint8Array;
36
+ /**
37
+ * Derive a shared key using ECDH + HKDF (SHA-256) from local private key and server public key (SPKI)
38
+ * Matches the Rust implementation detail (using only X coordinate for HKDF input).
39
+ */
40
+ export declare function deriveSharedKey(localPrivateKey: CryptoKey, serverPublicKeySpki: Uint8Array): Promise<Uint8Array>;
41
+ /**
42
+ * Encrypted payload interface (moved from streaming-client.ts)
43
+ */
44
+ export interface EncryptedPayload {
45
+ nonce: number;
46
+ iv: string;
47
+ ciphertext: string;
48
+ signature: string;
49
+ }
50
+ /**
51
+ * Encrypt and sign a message using AES-GCM and ECDSA (moved from streaming-client.ts)
52
+ */
53
+ export declare function encryptAndSign(plaintext: string, sharedKey: Uint8Array, signingKey: CryptoKey, nonce: number): Promise<EncryptedPayload>;
54
+ /**
55
+ * Decrypt and verify a message using AES-GCM and ECDSA (moved from streaming-client.ts)
56
+ */
57
+ export declare function decryptAndVerify(payload: EncryptedPayload, sharedKey: Uint8Array, serverVerifyingKeySpki: Uint8Array): Promise<string>;