azerclaw 2.1.8 → 2.2.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 (261) hide show
  1. package/bin/azerclaw.ts +45 -6
  2. package/bin/opencode.ts +59 -0
  3. package/dist/bin/azerclaw.d.ts +1 -47
  4. package/dist/bin/azerclaw.d.ts.map +1 -1
  5. package/dist/bin/azerclaw.js +94 -55
  6. package/dist/bin/azerclaw.js.map +1 -1
  7. package/dist/bin/opencode.d.ts +14 -0
  8. package/dist/bin/opencode.d.ts.map +1 -0
  9. package/dist/bin/opencode.js +54 -0
  10. package/dist/bin/opencode.js.map +1 -0
  11. package/dist/src/agents/builtin.js +12 -12
  12. package/dist/src/brain/adapters/base.d.ts +33 -0
  13. package/dist/src/brain/adapters/base.d.ts.map +1 -0
  14. package/dist/src/brain/adapters/base.js +11 -0
  15. package/dist/src/brain/adapters/base.js.map +1 -0
  16. package/dist/src/brain/adapters/index.d.ts +11 -0
  17. package/dist/src/brain/adapters/index.d.ts.map +1 -0
  18. package/dist/src/brain/adapters/index.js +37 -0
  19. package/dist/src/brain/adapters/index.js.map +1 -0
  20. package/dist/src/brain/adapters/native.d.ts +15 -0
  21. package/dist/src/brain/adapters/native.d.ts.map +1 -0
  22. package/dist/src/brain/adapters/native.js +25 -0
  23. package/dist/src/brain/adapters/native.js.map +1 -0
  24. package/dist/src/brain/adapters/prompt.d.ts +16 -0
  25. package/dist/src/brain/adapters/prompt.d.ts.map +1 -0
  26. package/dist/src/brain/adapters/prompt.js +91 -0
  27. package/dist/src/brain/adapters/prompt.js.map +1 -0
  28. package/dist/src/brain/hybrid.d.ts +53 -0
  29. package/dist/src/brain/hybrid.d.ts.map +1 -0
  30. package/dist/src/brain/hybrid.js +263 -0
  31. package/dist/src/brain/hybrid.js.map +1 -0
  32. package/dist/src/brain/index.d.ts +8 -0
  33. package/dist/src/brain/index.d.ts.map +1 -0
  34. package/dist/src/brain/index.js +19 -0
  35. package/dist/src/brain/index.js.map +1 -0
  36. package/dist/src/brain/router.d.ts +55 -0
  37. package/dist/src/brain/router.d.ts.map +1 -0
  38. package/dist/src/brain/router.js +174 -0
  39. package/dist/src/brain/router.js.map +1 -0
  40. package/dist/src/channels/adapter.d.ts +6 -0
  41. package/dist/src/channels/adapter.d.ts.map +1 -1
  42. package/dist/src/channels/adapter.js +44 -1
  43. package/dist/src/channels/adapter.js.map +1 -1
  44. package/dist/src/channels/discord.d.ts.map +1 -1
  45. package/dist/src/channels/discord.js +60 -14
  46. package/dist/src/channels/discord.js.map +1 -1
  47. package/dist/src/channels/slack.d.ts +5 -0
  48. package/dist/src/channels/slack.d.ts.map +1 -1
  49. package/dist/src/channels/slack.js +77 -9
  50. package/dist/src/channels/slack.js.map +1 -1
  51. package/dist/src/channels/telegram.d.ts +1 -0
  52. package/dist/src/channels/telegram.d.ts.map +1 -1
  53. package/dist/src/channels/telegram.js +42 -4
  54. package/dist/src/channels/telegram.js.map +1 -1
  55. package/dist/src/channels/webhook.d.ts.map +1 -1
  56. package/dist/src/channels/webhook.js +37 -6
  57. package/dist/src/channels/webhook.js.map +1 -1
  58. package/dist/src/cli/animations/fish.d.ts +9 -0
  59. package/dist/src/cli/animations/fish.d.ts.map +1 -1
  60. package/dist/src/cli/animations/fish.js +64 -80
  61. package/dist/src/cli/animations/fish.js.map +1 -1
  62. package/dist/src/cli/animations/markdown.d.ts.map +1 -1
  63. package/dist/src/cli/animations/markdown.js +23 -4
  64. package/dist/src/cli/animations/markdown.js.map +1 -1
  65. package/dist/src/cli/commands/agents.js +31 -30
  66. package/dist/src/cli/commands/agents.js.map +1 -1
  67. package/dist/src/cli/commands/channels.js +41 -48
  68. package/dist/src/cli/commands/channels.js.map +1 -1
  69. package/dist/src/cli/commands/chat.d.ts +1 -0
  70. package/dist/src/cli/commands/chat.d.ts.map +1 -1
  71. package/dist/src/cli/commands/chat.js +81 -8
  72. package/dist/src/cli/commands/chat.js.map +1 -1
  73. package/dist/src/cli/commands/config.js +0 -1
  74. package/dist/src/cli/commands/config.js.map +1 -1
  75. package/dist/src/cli/commands/doctor.js +42 -40
  76. package/dist/src/cli/commands/doctor.js.map +1 -1
  77. package/dist/src/cli/commands/export.js +6 -6
  78. package/dist/src/cli/commands/export.js.map +1 -1
  79. package/dist/src/cli/commands/mcp.js +7 -7
  80. package/dist/src/cli/commands/mcp.js.map +1 -1
  81. package/dist/src/cli/commands/models.js +0 -1
  82. package/dist/src/cli/commands/models.js.map +1 -1
  83. package/dist/src/cli/commands/onboard.js +0 -55
  84. package/dist/src/cli/commands/onboard.js.map +1 -1
  85. package/dist/src/cli/commands/pairing.js +22 -24
  86. package/dist/src/cli/commands/pairing.js.map +1 -1
  87. package/dist/src/cli/commands/plugins.js +8 -8
  88. package/dist/src/cli/commands/plugins.js.map +1 -1
  89. package/dist/src/cli/commands/run.d.ts +1 -0
  90. package/dist/src/cli/commands/run.d.ts.map +1 -1
  91. package/dist/src/cli/commands/run.js +101 -50
  92. package/dist/src/cli/commands/run.js.map +1 -1
  93. package/dist/src/cli/commands/sandbox.js +27 -32
  94. package/dist/src/cli/commands/sandbox.js.map +1 -1
  95. package/dist/src/cli/commands/settings.js +1 -16
  96. package/dist/src/cli/commands/settings.js.map +1 -1
  97. package/dist/src/cli/commands/share.js +6 -6
  98. package/dist/src/cli/commands/share.js.map +1 -1
  99. package/dist/src/cli/commands/tui.js +0 -1
  100. package/dist/src/cli/commands/tui.js.map +1 -1
  101. package/dist/src/config/hotreload.d.ts +87 -0
  102. package/dist/src/config/hotreload.d.ts.map +1 -0
  103. package/dist/src/config/hotreload.js +497 -0
  104. package/dist/src/config/hotreload.js.map +1 -0
  105. package/dist/src/config/manager.d.ts +4 -2
  106. package/dist/src/config/manager.d.ts.map +1 -1
  107. package/dist/src/config/manager.js +23 -5
  108. package/dist/src/config/manager.js.map +1 -1
  109. package/dist/src/config/schema.d.ts +286 -9
  110. package/dist/src/config/schema.d.ts.map +1 -1
  111. package/dist/src/config/schema.js +71 -7
  112. package/dist/src/config/schema.js.map +1 -1
  113. package/dist/src/core/runtime.d.ts +18 -0
  114. package/dist/src/core/runtime.d.ts.map +1 -1
  115. package/dist/src/core/runtime.js +84 -14
  116. package/dist/src/core/runtime.js.map +1 -1
  117. package/dist/src/core/server.d.ts.map +1 -1
  118. package/dist/src/core/server.js +20 -2
  119. package/dist/src/core/server.js.map +1 -1
  120. package/dist/src/index.d.ts +2 -0
  121. package/dist/src/index.d.ts.map +1 -1
  122. package/dist/src/index.js +6 -0
  123. package/dist/src/index.js.map +1 -1
  124. package/dist/src/interfaces/terminal/dashboard.d.ts +80 -0
  125. package/dist/src/interfaces/terminal/dashboard.d.ts.map +1 -0
  126. package/dist/src/interfaces/terminal/dashboard.js +618 -0
  127. package/dist/src/interfaces/terminal/dashboard.js.map +1 -0
  128. package/dist/src/interfaces/terminal/index.d.ts +46 -0
  129. package/dist/src/interfaces/terminal/index.d.ts.map +1 -0
  130. package/dist/src/interfaces/terminal/index.js +171 -0
  131. package/dist/src/interfaces/terminal/index.js.map +1 -0
  132. package/dist/src/interfaces/terminal/visualizations.d.ts +78 -0
  133. package/dist/src/interfaces/terminal/visualizations.d.ts.map +1 -0
  134. package/dist/src/interfaces/terminal/visualizations.js +540 -0
  135. package/dist/src/interfaces/terminal/visualizations.js.map +1 -0
  136. package/dist/src/interfaces/web/server.d.ts +73 -0
  137. package/dist/src/interfaces/web/server.d.ts.map +1 -0
  138. package/dist/src/interfaces/web/server.js +505 -0
  139. package/dist/src/interfaces/web/server.js.map +1 -0
  140. package/dist/src/mcp-servers/antigravity/index.js +2 -2
  141. package/dist/src/mcp-servers/antigravity/index.js.map +1 -1
  142. package/dist/src/memory/dreaming.d.ts +91 -0
  143. package/dist/src/memory/dreaming.d.ts.map +1 -0
  144. package/dist/src/memory/dreaming.js +582 -0
  145. package/dist/src/memory/dreaming.js.map +1 -0
  146. package/dist/src/memory/index.d.ts +8 -0
  147. package/dist/src/memory/index.d.ts.map +1 -0
  148. package/dist/src/memory/index.js +29 -0
  149. package/dist/src/memory/index.js.map +1 -0
  150. package/dist/src/memory/store.d.ts +13 -0
  151. package/dist/src/memory/store.d.ts.map +1 -1
  152. package/dist/src/memory/store.js +28 -0
  153. package/dist/src/memory/store.js.map +1 -1
  154. package/dist/src/memory/vector.d.ts +94 -0
  155. package/dist/src/memory/vector.d.ts.map +1 -0
  156. package/dist/src/memory/vector.js +457 -0
  157. package/dist/src/memory/vector.js.map +1 -0
  158. package/dist/src/networking/analyzer.d.ts +189 -0
  159. package/dist/src/networking/analyzer.d.ts.map +1 -0
  160. package/dist/src/networking/analyzer.js +604 -0
  161. package/dist/src/networking/analyzer.js.map +1 -0
  162. package/dist/src/plugins/bundled/context-engine/index.d.ts +8 -0
  163. package/dist/src/plugins/bundled/context-engine/index.d.ts.map +1 -0
  164. package/dist/src/plugins/bundled/context-engine/index.js +353 -0
  165. package/dist/src/plugins/bundled/context-engine/index.js.map +1 -0
  166. package/dist/src/plugins/bundled/observability/index.d.ts +64 -0
  167. package/dist/src/plugins/bundled/observability/index.d.ts.map +1 -0
  168. package/dist/src/plugins/bundled/observability/index.js +441 -0
  169. package/dist/src/plugins/bundled/observability/index.js.map +1 -0
  170. package/dist/src/plugins/index.d.ts +15 -0
  171. package/dist/src/plugins/index.d.ts.map +1 -0
  172. package/dist/src/plugins/index.js +117 -0
  173. package/dist/src/plugins/index.js.map +1 -0
  174. package/dist/src/plugins/loader.d.ts +19 -0
  175. package/dist/src/plugins/loader.d.ts.map +1 -0
  176. package/dist/src/plugins/loader.js +333 -0
  177. package/dist/src/plugins/loader.js.map +1 -0
  178. package/dist/src/plugins/manager.d.ts +32 -0
  179. package/dist/src/plugins/manager.d.ts.map +1 -0
  180. package/dist/src/plugins/manager.js +410 -0
  181. package/dist/src/plugins/manager.js.map +1 -0
  182. package/dist/src/plugins/registry.d.ts +50 -0
  183. package/dist/src/plugins/registry.d.ts.map +1 -0
  184. package/dist/src/plugins/registry.js +285 -0
  185. package/dist/src/plugins/registry.js.map +1 -0
  186. package/dist/src/plugins/types.d.ts +165 -0
  187. package/dist/src/plugins/types.d.ts.map +1 -0
  188. package/dist/src/plugins/types.js +7 -0
  189. package/dist/src/plugins/types.js.map +1 -0
  190. package/dist/src/providers/base.d.ts +5 -0
  191. package/dist/src/providers/base.d.ts.map +1 -1
  192. package/dist/src/providers/base.js.map +1 -1
  193. package/dist/src/providers/huggingface.d.ts +27 -0
  194. package/dist/src/providers/huggingface.d.ts.map +1 -0
  195. package/dist/src/providers/huggingface.js +140 -0
  196. package/dist/src/providers/huggingface.js.map +1 -0
  197. package/dist/src/providers/kiloauto.d.ts +29 -0
  198. package/dist/src/providers/kiloauto.d.ts.map +1 -0
  199. package/dist/src/providers/kiloauto.js +242 -0
  200. package/dist/src/providers/kiloauto.js.map +1 -0
  201. package/dist/src/providers/localllama.d.ts +26 -0
  202. package/dist/src/providers/localllama.d.ts.map +1 -0
  203. package/dist/src/providers/localllama.js +192 -0
  204. package/dist/src/providers/localllama.js.map +1 -0
  205. package/dist/src/providers/openai.d.ts.map +1 -1
  206. package/dist/src/providers/openai.js +9 -1
  207. package/dist/src/providers/openai.js.map +1 -1
  208. package/dist/src/providers/router.d.ts.map +1 -1
  209. package/dist/src/providers/router.js +41 -5
  210. package/dist/src/providers/router.js.map +1 -1
  211. package/dist/src/scheduler/heartbeat.d.ts.map +1 -1
  212. package/dist/src/scheduler/heartbeat.js +23 -1
  213. package/dist/src/scheduler/heartbeat.js.map +1 -1
  214. package/dist/src/security/privacy.d.ts +199 -0
  215. package/dist/src/security/privacy.d.ts.map +1 -0
  216. package/dist/src/security/privacy.js +600 -0
  217. package/dist/src/security/privacy.js.map +1 -0
  218. package/dist/src/server/hq.d.ts.map +1 -1
  219. package/dist/src/server/hq.js +56 -4
  220. package/dist/src/server/hq.js.map +1 -1
  221. package/dist/src/skills/loader.d.ts.map +1 -1
  222. package/dist/src/skills/loader.js +13 -3
  223. package/dist/src/skills/loader.js.map +1 -1
  224. package/dist/src/tools/advanced.d.ts.map +1 -1
  225. package/dist/src/tools/advanced.js +73 -18
  226. package/dist/src/tools/advanced.js.map +1 -1
  227. package/dist/src/tools/filesystem.d.ts.map +1 -1
  228. package/dist/src/tools/filesystem.js +110 -7
  229. package/dist/src/tools/filesystem.js.map +1 -1
  230. package/dist/src/tools/index_memory.d.ts.map +1 -1
  231. package/dist/src/tools/index_memory.js +13 -6
  232. package/dist/src/tools/index_memory.js.map +1 -1
  233. package/dist/src/tools/loader.d.ts.map +1 -1
  234. package/dist/src/tools/loader.js +4 -2
  235. package/dist/src/tools/loader.js.map +1 -1
  236. package/dist/src/tools/registry.d.ts +6 -0
  237. package/dist/src/tools/registry.d.ts.map +1 -1
  238. package/dist/src/tools/registry.js +51 -12
  239. package/dist/src/tools/registry.js.map +1 -1
  240. package/dist/src/tools/shell.d.ts.map +1 -1
  241. package/dist/src/tools/shell.js +2 -0
  242. package/dist/src/tools/shell.js.map +1 -1
  243. package/dist/src/tools/specialized.d.ts.map +1 -1
  244. package/dist/src/tools/specialized.js +52 -12
  245. package/dist/src/tools/specialized.js.map +1 -1
  246. package/dist/src/workflow/engine.d.ts.map +1 -1
  247. package/dist/src/workflow/engine.js +43 -13
  248. package/dist/src/workflow/engine.js.map +1 -1
  249. package/dist/src/workflow/lobster.d.ts +138 -0
  250. package/dist/src/workflow/lobster.d.ts.map +1 -0
  251. package/dist/src/workflow/lobster.js +620 -0
  252. package/dist/src/workflow/lobster.js.map +1 -0
  253. package/dist/src/workspace/heartbeat.d.ts +122 -0
  254. package/dist/src/workspace/heartbeat.d.ts.map +1 -0
  255. package/dist/src/workspace/heartbeat.js +624 -0
  256. package/dist/src/workspace/heartbeat.js.map +1 -0
  257. package/dist/src/workspace/index.d.ts +29 -0
  258. package/dist/src/workspace/index.d.ts.map +1 -0
  259. package/dist/src/workspace/index.js +97 -0
  260. package/dist/src/workspace/index.js.map +1 -0
  261. package/package.json +4 -3
@@ -0,0 +1,600 @@
1
+ "use strict";
2
+ /**
3
+ * 🐟 AZERCLAW Privacy Tracking & Data Flow Mapping
4
+ * Comprehensive privacy monitoring and data flow analysis
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.PrivacyManager = exports.SensitivityLevel = exports.DataType = exports.DataDestination = exports.DataSource = exports.DataFlowType = void 0;
41
+ exports.getPrivacyManager = getPrivacyManager;
42
+ exports.initializePrivacy = initializePrivacy;
43
+ exports.shutdownPrivacy = shutdownPrivacy;
44
+ const fs = __importStar(require("fs"));
45
+ const path = __importStar(require("path"));
46
+ const os = __importStar(require("os"));
47
+ const events_1 = require("events");
48
+ const crypto = __importStar(require("crypto"));
49
+ var DataFlowType;
50
+ (function (DataFlowType) {
51
+ DataFlowType["API_CALL"] = "api_call";
52
+ DataFlowType["MEMORY_STORE"] = "memory_store";
53
+ DataFlowType["FILE_ACCESS"] = "file_access";
54
+ DataFlowType["NETWORK_REQUEST"] = "network_request";
55
+ DataFlowType["PLUGIN_EXECUTION"] = "plugin_execution";
56
+ DataFlowType["TOOL_EXECUTION"] = "tool_execution";
57
+ DataFlowType["CONFIG_ACCESS"] = "config_access";
58
+ DataFlowType["LOGGING"] = "logging";
59
+ })(DataFlowType || (exports.DataFlowType = DataFlowType = {}));
60
+ var DataSource;
61
+ (function (DataSource) {
62
+ DataSource["USER_INPUT"] = "user_input";
63
+ DataSource["AI_RESPONSE"] = "ai_response";
64
+ DataSource["MEMORY"] = "memory";
65
+ DataSource["CONFIG"] = "config";
66
+ DataSource["FILE_SYSTEM"] = "file_system";
67
+ DataSource["NETWORK"] = "network";
68
+ DataSource["PLUGIN"] = "plugin";
69
+ DataSource["TOOL"] = "tool";
70
+ })(DataSource || (exports.DataSource = DataSource = {}));
71
+ var DataDestination;
72
+ (function (DataDestination) {
73
+ DataDestination["AI_PROVIDER"] = "ai_provider";
74
+ DataDestination["MEMORY"] = "memory";
75
+ DataDestination["FILE_SYSTEM"] = "file_system";
76
+ DataDestination["NETWORK"] = "network";
77
+ DataDestination["LOG"] = "log";
78
+ DataDestination["PLUGIN"] = "plugin";
79
+ DataDestination["TOOL"] = "tool";
80
+ DataDestination["CONSOLE"] = "console";
81
+ })(DataDestination || (exports.DataDestination = DataDestination = {}));
82
+ var DataType;
83
+ (function (DataType) {
84
+ DataType["TEXT"] = "text";
85
+ DataType["JSON"] = "json";
86
+ DataType["BINARY"] = "binary";
87
+ DataType["IMAGE"] = "image";
88
+ DataType["AUDIO"] = "audio";
89
+ DataType["VIDEO"] = "video";
90
+ DataType["METADATA"] = "metadata";
91
+ DataType["TOKENS"] = "tokens";
92
+ DataType["API_KEY"] = "api_key";
93
+ DataType["PII"] = "pii";
94
+ })(DataType || (exports.DataType = DataType = {}));
95
+ var SensitivityLevel;
96
+ (function (SensitivityLevel) {
97
+ SensitivityLevel["PUBLIC"] = "public";
98
+ SensitivityLevel["INTERNAL"] = "internal";
99
+ SensitivityLevel["CONFIDENTIAL"] = "confidential";
100
+ SensitivityLevel["RESTRICTED"] = "restricted";
101
+ SensitivityLevel["PII"] = "pii";
102
+ })(SensitivityLevel || (exports.SensitivityLevel = SensitivityLevel = {}));
103
+ // ─── Privacy Manager Implementation ─────────────────────────────────────
104
+ class PrivacyManager extends events_1.EventEmitter {
105
+ config;
106
+ events = [];
107
+ violations = [];
108
+ consentRecords = new Map();
109
+ dataStorePath;
110
+ isRunning = false;
111
+ constructor(config = {}) {
112
+ super();
113
+ this.config = {
114
+ enabled: true,
115
+ logLevel: 'standard',
116
+ retentionDays: 30,
117
+ encryptSensitive: true,
118
+ blockPII: true,
119
+ requireConsent: false,
120
+ auditMode: false,
121
+ dataFilters: [
122
+ {
123
+ type: DataType.API_KEY,
124
+ sensitivity: SensitivityLevel.RESTRICTED,
125
+ action: 'encrypt',
126
+ conditions: ['contains_api_key']
127
+ },
128
+ {
129
+ type: DataType.TEXT,
130
+ sensitivity: SensitivityLevel.PII,
131
+ action: 'mask',
132
+ conditions: ['contains_email', 'contains_phone', 'contains_ssn']
133
+ }
134
+ ],
135
+ ...config
136
+ };
137
+ const privacyDir = path.join(os.homedir(), '.azerclaw', 'privacy');
138
+ this.dataStorePath = path.join(privacyDir, 'privacy.json');
139
+ this.ensureDirectories();
140
+ this.loadData();
141
+ }
142
+ ensureDirectories() {
143
+ const privacyDir = path.dirname(this.dataStorePath);
144
+ if (!fs.existsSync(privacyDir)) {
145
+ fs.mkdirSync(privacyDir, { recursive: true, mode: 0o700 });
146
+ }
147
+ }
148
+ loadData() {
149
+ try {
150
+ if (fs.existsSync(this.dataStorePath)) {
151
+ const data = JSON.parse(fs.readFileSync(this.dataStorePath, 'utf-8'));
152
+ this.events = (data.events || []).map((e) => this.deserializeEvent(e));
153
+ this.violations = (data.violations || []).map((v) => this.deserializeViolation(v));
154
+ }
155
+ }
156
+ catch (error) {
157
+ console.warn('[PrivacyManager] Failed to load privacy data:', error);
158
+ }
159
+ }
160
+ saveData() {
161
+ try {
162
+ const data = {
163
+ events: this.events.map((e) => this.serializeEvent(e)),
164
+ violations: this.violations.map((v) => this.serializeViolation(v)),
165
+ lastUpdated: new Date().toISOString()
166
+ };
167
+ fs.writeFileSync(this.dataStorePath, JSON.stringify(data, null, 2), { mode: 0o600 });
168
+ }
169
+ catch (error) {
170
+ console.error('[PrivacyManager] Failed to save privacy data:', error);
171
+ }
172
+ }
173
+ // ─── Event Tracking ─────────────────────────────────────────────────
174
+ trackDataFlow(event) {
175
+ if (!this.config.enabled) {
176
+ return;
177
+ }
178
+ const fullEvent = {
179
+ id: this.generateEventId(),
180
+ timestamp: new Date(),
181
+ type: event.type || DataFlowType.API_CALL,
182
+ source: event.source || DataSource.USER_INPUT,
183
+ destination: event.destination || DataDestination.AI_PROVIDER,
184
+ dataType: event.dataType || DataType.TEXT,
185
+ dataSize: event.dataSize || 0,
186
+ sensitivity: event.sensitivity || SensitivityLevel.PUBLIC,
187
+ purpose: event.purpose || 'unknown',
188
+ retention: event.retention,
189
+ metadata: event.metadata || {}
190
+ };
191
+ // Apply privacy filters
192
+ const filteredEvent = this.applyDataFilters(fullEvent);
193
+ if (!filteredEvent) {
194
+ return; // Event blocked by filter
195
+ }
196
+ // Check for violations
197
+ this.checkForViolations(filteredEvent);
198
+ // Store event
199
+ this.events.push(filteredEvent);
200
+ // Cleanup old events
201
+ this.cleanupOldEvents();
202
+ // Hard cap to prevent unbounded memory growth
203
+ const MAX_EVENTS = 10000;
204
+ if (this.events.length > MAX_EVENTS) {
205
+ this.events = this.events.slice(-MAX_EVENTS);
206
+ }
207
+ // Save data
208
+ if (this.events.length % 10 === 0) { // Save every 10 events
209
+ this.saveData();
210
+ }
211
+ // Emit event
212
+ this.emit('data-flow-tracked', filteredEvent);
213
+ // Log if detailed logging enabled
214
+ if (this.config.logLevel === 'detailed') {
215
+ console.log(`[Privacy] Data flow: ${filteredEvent.source} -> ${filteredEvent.destination} (${filteredEvent.dataType}, ${filteredEvent.sensitivity})`);
216
+ }
217
+ }
218
+ applyDataFilters(event) {
219
+ for (const filter of this.config.dataFilters) {
220
+ if (filter.type === event.dataType && filter.sensitivity === event.sensitivity) {
221
+ switch (filter.action) {
222
+ case 'block':
223
+ this.createViolation({
224
+ id: this.generateViolationId(),
225
+ timestamp: new Date(),
226
+ type: 'unauthorized_access',
227
+ severity: 'medium',
228
+ description: `Data flow blocked by filter: ${filter.type} with sensitivity ${filter.sensitivity}`,
229
+ eventId: event.id,
230
+ remediation: 'Review data filter configuration'
231
+ });
232
+ return null;
233
+ case 'mask':
234
+ event.metadata.masked = true;
235
+ event.metadata.originalSize = event.dataSize;
236
+ event.dataSize = Math.floor(event.dataSize * 0.3); // Estimate masked size
237
+ break;
238
+ case 'encrypt':
239
+ event.metadata.encrypted = true;
240
+ if (this.config.encryptSensitive) {
241
+ event.metadata.encryptedData = this.encryptSensitiveData(event.metadata);
242
+ }
243
+ break;
244
+ }
245
+ }
246
+ }
247
+ return event;
248
+ }
249
+ checkForViolations(event) {
250
+ // Check for sensitive data types
251
+ if (event.sensitivity === SensitivityLevel.RESTRICTED) {
252
+ this.createViolation({
253
+ id: this.generateViolationId(),
254
+ timestamp: new Date(),
255
+ type: 'pii_exposure',
256
+ severity: 'high',
257
+ description: 'Restricted data detected',
258
+ eventId: event.id,
259
+ remediation: 'Review data handling and implement proper protection'
260
+ });
261
+ }
262
+ // Check for API key exposure
263
+ if (event.dataType === DataType.API_KEY && event.destination !== DataDestination.MEMORY) {
264
+ this.createViolation({
265
+ id: this.generateViolationId(),
266
+ timestamp: new Date(),
267
+ type: 'data_leak',
268
+ severity: 'critical',
269
+ description: 'API key sent to non-secure destination',
270
+ eventId: event.id,
271
+ remediation: 'Immediately revoke exposed API key'
272
+ });
273
+ }
274
+ // Check for retention violations
275
+ if (event.retention && event.retention.duration > this.config.retentionDays * 24 * 3600) {
276
+ this.createViolation({
277
+ id: this.generateViolationId(),
278
+ timestamp: new Date(),
279
+ type: 'retention_violation',
280
+ severity: 'medium',
281
+ description: 'Data retention period exceeds policy limits',
282
+ eventId: event.id,
283
+ remediation: 'Adjust retention policy or implement auto-deletion'
284
+ });
285
+ }
286
+ }
287
+ createViolation(violation) {
288
+ this.violations.push(violation);
289
+ this.emit('privacy-violation', violation);
290
+ if (this.config.auditMode) {
291
+ console.error(`[Privacy] VIOLATION: ${violation.description} (${violation.severity})`);
292
+ }
293
+ }
294
+ // ─── Consent Management ─────────────────────────────────────────────
295
+ requestConsent(purpose, dataTypes, sensitivityLevels) {
296
+ return new Promise((resolve) => {
297
+ if (!this.config.requireConsent) {
298
+ resolve(true);
299
+ return;
300
+ }
301
+ const consentId = this.generateConsentId();
302
+ const record = {
303
+ id: consentId,
304
+ purpose,
305
+ dataTypes,
306
+ sensitivityLevels,
307
+ requestedAt: new Date(),
308
+ status: 'pending'
309
+ };
310
+ this.consentRecords.set(consentId, record);
311
+ // In a real implementation, this would show a user prompt
312
+ // For now, we'll auto-approve in non-interactive mode
313
+ console.log(`[Privacy] Consent requested for: ${purpose}`);
314
+ console.log(`[Privacy] Data types: ${dataTypes.join(', ')}`);
315
+ console.log(`[Privacy] Sensitivity: ${sensitivityLevels.join(', ')}`);
316
+ // Auto-approve for demo purposes
317
+ record.status = 'approved';
318
+ record.decidedAt = new Date();
319
+ resolve(true);
320
+ });
321
+ }
322
+ hasConsent(purpose) {
323
+ for (const record of this.consentRecords.values()) {
324
+ if (record.purpose === purpose && record.status === 'approved') {
325
+ return true;
326
+ }
327
+ }
328
+ return false;
329
+ }
330
+ // ─── Reporting and Analysis ─────────────────────────────────────────
331
+ generateReport(timeRange) {
332
+ const now = new Date();
333
+ const defaultTimeRange = {
334
+ start: new Date(now.getTime() - 24 * 60 * 60 * 1000), // Last 24 hours
335
+ end: now
336
+ };
337
+ const range = timeRange || defaultTimeRange;
338
+ const filteredEvents = this.events.filter(event => event.timestamp >= range.start && event.timestamp <= range.end);
339
+ const summary = this.generateSummary(filteredEvents);
340
+ const dataFlowMap = this.generateDataFlowMap(filteredEvents);
341
+ return {
342
+ id: this.generateReportId(),
343
+ generatedAt: now,
344
+ timeRange: range,
345
+ summary,
346
+ violations: this.violations.filter(v => v.timestamp >= range.start && v.timestamp <= range.end),
347
+ recommendations: this.generateRecommendations(summary, this.violations),
348
+ dataFlowMap
349
+ };
350
+ }
351
+ generateSummary(events) {
352
+ const summary = {
353
+ totalEvents: events.length,
354
+ dataTypes: {},
355
+ sensitivityLevels: {},
356
+ dataSources: {},
357
+ dataDestinations: {},
358
+ totalDataTransferred: 0
359
+ };
360
+ for (const event of events) {
361
+ // Count data types
362
+ summary.dataTypes[event.dataType] = (summary.dataTypes[event.dataType] || 0) + 1;
363
+ // Count sensitivity levels
364
+ summary.sensitivityLevels[event.sensitivity] = (summary.sensitivityLevels[event.sensitivity] || 0) + 1;
365
+ // Count sources
366
+ summary.dataSources[event.source] = (summary.dataSources[event.source] || 0) + 1;
367
+ // Count destinations
368
+ summary.dataDestinations[event.destination] = (summary.dataDestinations[event.destination] || 0) + 1;
369
+ // Sum data sizes
370
+ summary.totalDataTransferred += event.dataSize;
371
+ }
372
+ return summary;
373
+ }
374
+ generateDataFlowMap(events) {
375
+ const nodes = new Map();
376
+ const edges = new Map();
377
+ for (const event of events) {
378
+ // Create/update source node
379
+ const sourceId = event.source.toString();
380
+ if (!nodes.has(sourceId)) {
381
+ nodes.set(sourceId, {
382
+ id: sourceId,
383
+ type: event.source,
384
+ label: this.formatNodeLabel(event.source),
385
+ dataTypes: [],
386
+ sensitivityLevels: [],
387
+ eventCount: 0,
388
+ totalDataSize: 0
389
+ });
390
+ }
391
+ const sourceNode = nodes.get(sourceId);
392
+ sourceNode.dataTypes.push(event.dataType);
393
+ sourceNode.sensitivityLevels.push(event.sensitivity);
394
+ sourceNode.eventCount++;
395
+ sourceNode.totalDataSize += event.dataSize;
396
+ // Create/update destination node
397
+ const destId = event.destination.toString();
398
+ if (!nodes.has(destId)) {
399
+ nodes.set(destId, {
400
+ id: destId,
401
+ type: event.destination,
402
+ label: this.formatNodeLabel(event.destination),
403
+ dataTypes: [],
404
+ sensitivityLevels: [],
405
+ eventCount: 0,
406
+ totalDataSize: 0
407
+ });
408
+ }
409
+ const destNode = nodes.get(destId);
410
+ destNode.dataTypes.push(event.dataType);
411
+ destNode.sensitivityLevels.push(event.sensitivity);
412
+ destNode.eventCount++;
413
+ destNode.totalDataSize += event.dataSize;
414
+ // Create/update edge
415
+ const edgeId = `${sourceId}->${destId}`;
416
+ if (!edges.has(edgeId)) {
417
+ edges.set(edgeId, {
418
+ id: edgeId,
419
+ source: sourceId,
420
+ target: destId,
421
+ dataTypes: [],
422
+ sensitivityLevels: [],
423
+ eventCount: 0,
424
+ totalDataSize: 0
425
+ });
426
+ }
427
+ const edge = edges.get(edgeId);
428
+ edge.dataTypes.push(event.dataType);
429
+ edge.sensitivityLevels.push(event.sensitivity);
430
+ edge.eventCount++;
431
+ edge.totalDataSize += event.dataSize;
432
+ }
433
+ // Remove duplicates from arrays
434
+ for (const node of nodes.values()) {
435
+ node.dataTypes = [...new Set(node.dataTypes)];
436
+ node.sensitivityLevels = [...new Set(node.sensitivityLevels)];
437
+ }
438
+ for (const edge of edges.values()) {
439
+ edge.dataTypes = [...new Set(edge.dataTypes)];
440
+ edge.sensitivityLevels = [...new Set(edge.sensitivityLevels)];
441
+ }
442
+ return {
443
+ nodes: Array.from(nodes.values()),
444
+ edges: Array.from(edges.values())
445
+ };
446
+ }
447
+ generateRecommendations(summary, violations) {
448
+ const recommendations = [];
449
+ // Analyze data types
450
+ if (summary.dataTypes[DataType.API_KEY] > 0) {
451
+ recommendations.push('Review API key handling and ensure encryption');
452
+ }
453
+ if (summary.dataTypes[DataType.PII] > 0) {
454
+ recommendations.push('Implement stronger PII protection measures');
455
+ }
456
+ // Analyze sensitivity levels
457
+ if (summary.sensitivityLevels[SensitivityLevel.PII] > summary.sensitivityLevels[SensitivityLevel.PUBLIC] * 0.1) {
458
+ recommendations.push('High proportion of PII data - consider data minimization');
459
+ }
460
+ // Analyze violations
461
+ const criticalViolations = violations.filter(v => v.severity === 'critical');
462
+ if (criticalViolations.length > 0) {
463
+ recommendations.push('Address critical privacy violations immediately');
464
+ }
465
+ // Analyze data flow patterns
466
+ if (summary.dataDestinations[DataDestination.NETWORK] > summary.dataDestinations[DataDestination.MEMORY]) {
467
+ recommendations.push('Consider reducing network data transfers for privacy');
468
+ }
469
+ return recommendations;
470
+ }
471
+ // ─── Utility Methods ─────────────────────────────────────────────────
472
+ formatNodeLabel(type) {
473
+ return type.toString().replace(/_/g, ' ').replace(/\b\w/g, l => l.toUpperCase());
474
+ }
475
+ encryptSensitiveData(data) {
476
+ // Simple encryption for demo purposes
477
+ // In production, use proper encryption
478
+ return crypto.createHash('sha256').update(JSON.stringify(data)).digest('hex');
479
+ }
480
+ cleanupOldEvents() {
481
+ const cutoffDate = new Date();
482
+ cutoffDate.setDate(cutoffDate.getDate() - this.config.retentionDays);
483
+ this.events = this.events.filter(event => event.timestamp > cutoffDate);
484
+ this.violations = this.violations.filter(violation => violation.timestamp > cutoffDate);
485
+ }
486
+ generateEventId() {
487
+ return `evt_${Date.now()}_${crypto.randomBytes(4).toString('hex')}`;
488
+ }
489
+ generateViolationId() {
490
+ return `vio_${Date.now()}_${crypto.randomBytes(4).toString('hex')}`;
491
+ }
492
+ generateConsentId() {
493
+ return `con_${Date.now()}_${crypto.randomBytes(4).toString('hex')}`;
494
+ }
495
+ generateReportId() {
496
+ return `rpt_${Date.now()}_${crypto.randomBytes(4).toString('hex')}`;
497
+ }
498
+ serializeEvent(event) {
499
+ return {
500
+ ...event,
501
+ timestamp: event.timestamp.toISOString()
502
+ };
503
+ }
504
+ deserializeEvent(data) {
505
+ return {
506
+ ...data,
507
+ timestamp: new Date(data.timestamp)
508
+ };
509
+ }
510
+ serializeViolation(violation) {
511
+ return {
512
+ ...violation,
513
+ timestamp: violation.timestamp.toISOString()
514
+ };
515
+ }
516
+ deserializeViolation(data) {
517
+ return {
518
+ ...data,
519
+ timestamp: new Date(data.timestamp)
520
+ };
521
+ }
522
+ // ─── Public API ─────────────────────────────────────────────────────
523
+ getEvents(timeRange) {
524
+ if (!timeRange) {
525
+ return [...this.events];
526
+ }
527
+ return this.events.filter(event => event.timestamp >= timeRange.start && event.timestamp <= timeRange.end);
528
+ }
529
+ getViolations(timeRange) {
530
+ if (!timeRange) {
531
+ return [...this.violations];
532
+ }
533
+ return this.violations.filter(violation => violation.timestamp >= timeRange.start && violation.timestamp <= timeRange.end);
534
+ }
535
+ getStats() {
536
+ const eventsByType = {};
537
+ const violationsBySeverity = {};
538
+ for (const event of this.events) {
539
+ eventsByType[event.type] = (eventsByType[event.type] || 0) + 1;
540
+ }
541
+ for (const violation of this.violations) {
542
+ violationsBySeverity[violation.severity] = (violationsBySeverity[violation.severity] || 0) + 1;
543
+ }
544
+ return {
545
+ totalEvents: this.events.length,
546
+ totalViolations: this.violations.length,
547
+ eventsByType,
548
+ violationsBySeverity
549
+ };
550
+ }
551
+ getConfig() {
552
+ return { ...this.config };
553
+ }
554
+ updateConfig(newConfig) {
555
+ this.config = { ...this.config, ...newConfig };
556
+ this.saveData();
557
+ }
558
+ enable() {
559
+ this.config.enabled = true;
560
+ this.emit('privacy-enabled');
561
+ }
562
+ disable() {
563
+ this.config.enabled = false;
564
+ this.emit('privacy-disabled');
565
+ }
566
+ isEnabled() {
567
+ return this.config.enabled;
568
+ }
569
+ clearData() {
570
+ this.events = [];
571
+ this.violations = [];
572
+ this.consentRecords.clear();
573
+ this.saveData();
574
+ this.emit('data-cleared');
575
+ }
576
+ }
577
+ exports.PrivacyManager = PrivacyManager;
578
+ // ─── Global Privacy Manager ─────────────────────────────────────────────
579
+ let privacyManager = null;
580
+ function getPrivacyManager(config) {
581
+ if (!privacyManager) {
582
+ privacyManager = new PrivacyManager(config);
583
+ }
584
+ return privacyManager;
585
+ }
586
+ function initializePrivacy(config) {
587
+ if (privacyManager) {
588
+ privacyManager.removeAllListeners();
589
+ }
590
+ privacyManager = new PrivacyManager(config);
591
+ return privacyManager;
592
+ }
593
+ function shutdownPrivacy() {
594
+ if (privacyManager) {
595
+ privacyManager.saveData();
596
+ privacyManager.removeAllListeners();
597
+ privacyManager = null;
598
+ }
599
+ }
600
+ //# sourceMappingURL=privacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy.js","sourceRoot":"","sources":["../../../src/security/privacy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hq.d.ts","sourceRoot":"","sources":["../../../src/server/hq.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAa,QAAQ;IACnB,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,GAAG,CAAgD;IAC3D,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,OAAO,CAA6B;gBAEhC,IAAI,GAAE,MAAa;IAY/B,KAAK,IAAI,IAAI;IAgBb;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAYlC,IAAI,IAAI,IAAI;CAIb;AAGD,wBAAgB,WAAW,IAAI,QAAQ,CAGtC"}
1
+ {"version":3,"file":"hq.d.ts","sourceRoot":"","sources":["../../../src/server/hq.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAa,QAAQ;IACnB,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,GAAG,CAAgD;IAC3D,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,OAAO,CAA6B;gBAEhC,IAAI,GAAE,MAAa;IAiB/B,KAAK,IAAI,IAAI;IA8Bb;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAYlC,IAAI,IAAI,IAAI;CAIb;AAGD,wBAAgB,WAAW,IAAI,QAAQ,CAGtC"}