azerclaw 2.1.9 → 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 (258) hide show
  1. package/bin/azerclaw.ts +45 -6
  2. package/bin/opencode.ts +1 -1
  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.js +1 -1
  8. package/dist/src/agents/builtin.js +12 -12
  9. package/dist/src/brain/adapters/base.d.ts +33 -0
  10. package/dist/src/brain/adapters/base.d.ts.map +1 -0
  11. package/dist/src/brain/adapters/base.js +11 -0
  12. package/dist/src/brain/adapters/base.js.map +1 -0
  13. package/dist/src/brain/adapters/index.d.ts +11 -0
  14. package/dist/src/brain/adapters/index.d.ts.map +1 -0
  15. package/dist/src/brain/adapters/index.js +37 -0
  16. package/dist/src/brain/adapters/index.js.map +1 -0
  17. package/dist/src/brain/adapters/native.d.ts +15 -0
  18. package/dist/src/brain/adapters/native.d.ts.map +1 -0
  19. package/dist/src/brain/adapters/native.js +25 -0
  20. package/dist/src/brain/adapters/native.js.map +1 -0
  21. package/dist/src/brain/adapters/prompt.d.ts +16 -0
  22. package/dist/src/brain/adapters/prompt.d.ts.map +1 -0
  23. package/dist/src/brain/adapters/prompt.js +91 -0
  24. package/dist/src/brain/adapters/prompt.js.map +1 -0
  25. package/dist/src/brain/hybrid.d.ts +53 -0
  26. package/dist/src/brain/hybrid.d.ts.map +1 -0
  27. package/dist/src/brain/hybrid.js +263 -0
  28. package/dist/src/brain/hybrid.js.map +1 -0
  29. package/dist/src/brain/index.d.ts +8 -0
  30. package/dist/src/brain/index.d.ts.map +1 -0
  31. package/dist/src/brain/index.js +19 -0
  32. package/dist/src/brain/index.js.map +1 -0
  33. package/dist/src/brain/router.d.ts +55 -0
  34. package/dist/src/brain/router.d.ts.map +1 -0
  35. package/dist/src/brain/router.js +174 -0
  36. package/dist/src/brain/router.js.map +1 -0
  37. package/dist/src/channels/adapter.d.ts +6 -0
  38. package/dist/src/channels/adapter.d.ts.map +1 -1
  39. package/dist/src/channels/adapter.js +44 -1
  40. package/dist/src/channels/adapter.js.map +1 -1
  41. package/dist/src/channels/discord.d.ts.map +1 -1
  42. package/dist/src/channels/discord.js +60 -14
  43. package/dist/src/channels/discord.js.map +1 -1
  44. package/dist/src/channels/slack.d.ts +5 -0
  45. package/dist/src/channels/slack.d.ts.map +1 -1
  46. package/dist/src/channels/slack.js +77 -9
  47. package/dist/src/channels/slack.js.map +1 -1
  48. package/dist/src/channels/telegram.d.ts +1 -0
  49. package/dist/src/channels/telegram.d.ts.map +1 -1
  50. package/dist/src/channels/telegram.js +42 -4
  51. package/dist/src/channels/telegram.js.map +1 -1
  52. package/dist/src/channels/webhook.d.ts.map +1 -1
  53. package/dist/src/channels/webhook.js +37 -6
  54. package/dist/src/channels/webhook.js.map +1 -1
  55. package/dist/src/cli/animations/fish.d.ts +9 -0
  56. package/dist/src/cli/animations/fish.d.ts.map +1 -1
  57. package/dist/src/cli/animations/fish.js +64 -80
  58. package/dist/src/cli/animations/fish.js.map +1 -1
  59. package/dist/src/cli/animations/markdown.d.ts.map +1 -1
  60. package/dist/src/cli/animations/markdown.js +0 -1
  61. package/dist/src/cli/animations/markdown.js.map +1 -1
  62. package/dist/src/cli/commands/agents.js +31 -30
  63. package/dist/src/cli/commands/agents.js.map +1 -1
  64. package/dist/src/cli/commands/channels.js +41 -48
  65. package/dist/src/cli/commands/channels.js.map +1 -1
  66. package/dist/src/cli/commands/chat.d.ts +1 -0
  67. package/dist/src/cli/commands/chat.d.ts.map +1 -1
  68. package/dist/src/cli/commands/chat.js +81 -8
  69. package/dist/src/cli/commands/chat.js.map +1 -1
  70. package/dist/src/cli/commands/config.js +0 -1
  71. package/dist/src/cli/commands/config.js.map +1 -1
  72. package/dist/src/cli/commands/doctor.js +42 -40
  73. package/dist/src/cli/commands/doctor.js.map +1 -1
  74. package/dist/src/cli/commands/export.js +6 -6
  75. package/dist/src/cli/commands/export.js.map +1 -1
  76. package/dist/src/cli/commands/mcp.js +7 -7
  77. package/dist/src/cli/commands/mcp.js.map +1 -1
  78. package/dist/src/cli/commands/models.js +0 -1
  79. package/dist/src/cli/commands/models.js.map +1 -1
  80. package/dist/src/cli/commands/onboard.js +0 -55
  81. package/dist/src/cli/commands/onboard.js.map +1 -1
  82. package/dist/src/cli/commands/pairing.js +22 -24
  83. package/dist/src/cli/commands/pairing.js.map +1 -1
  84. package/dist/src/cli/commands/plugins.js +8 -8
  85. package/dist/src/cli/commands/plugins.js.map +1 -1
  86. package/dist/src/cli/commands/run.d.ts +1 -0
  87. package/dist/src/cli/commands/run.d.ts.map +1 -1
  88. package/dist/src/cli/commands/run.js +101 -50
  89. package/dist/src/cli/commands/run.js.map +1 -1
  90. package/dist/src/cli/commands/sandbox.js +27 -32
  91. package/dist/src/cli/commands/sandbox.js.map +1 -1
  92. package/dist/src/cli/commands/settings.js +1 -16
  93. package/dist/src/cli/commands/settings.js.map +1 -1
  94. package/dist/src/cli/commands/share.js +6 -6
  95. package/dist/src/cli/commands/share.js.map +1 -1
  96. package/dist/src/cli/commands/tui.js +0 -1
  97. package/dist/src/cli/commands/tui.js.map +1 -1
  98. package/dist/src/config/hotreload.d.ts +87 -0
  99. package/dist/src/config/hotreload.d.ts.map +1 -0
  100. package/dist/src/config/hotreload.js +497 -0
  101. package/dist/src/config/hotreload.js.map +1 -0
  102. package/dist/src/config/manager.d.ts +4 -2
  103. package/dist/src/config/manager.d.ts.map +1 -1
  104. package/dist/src/config/manager.js +23 -5
  105. package/dist/src/config/manager.js.map +1 -1
  106. package/dist/src/config/schema.d.ts +286 -9
  107. package/dist/src/config/schema.d.ts.map +1 -1
  108. package/dist/src/config/schema.js +71 -7
  109. package/dist/src/config/schema.js.map +1 -1
  110. package/dist/src/core/runtime.d.ts +18 -0
  111. package/dist/src/core/runtime.d.ts.map +1 -1
  112. package/dist/src/core/runtime.js +82 -12
  113. package/dist/src/core/runtime.js.map +1 -1
  114. package/dist/src/core/server.d.ts.map +1 -1
  115. package/dist/src/core/server.js +18 -2
  116. package/dist/src/core/server.js.map +1 -1
  117. package/dist/src/index.d.ts +2 -0
  118. package/dist/src/index.d.ts.map +1 -1
  119. package/dist/src/index.js +6 -0
  120. package/dist/src/index.js.map +1 -1
  121. package/dist/src/interfaces/terminal/dashboard.d.ts +80 -0
  122. package/dist/src/interfaces/terminal/dashboard.d.ts.map +1 -0
  123. package/dist/src/interfaces/terminal/dashboard.js +618 -0
  124. package/dist/src/interfaces/terminal/dashboard.js.map +1 -0
  125. package/dist/src/interfaces/terminal/index.d.ts +46 -0
  126. package/dist/src/interfaces/terminal/index.d.ts.map +1 -0
  127. package/dist/src/interfaces/terminal/index.js +171 -0
  128. package/dist/src/interfaces/terminal/index.js.map +1 -0
  129. package/dist/src/interfaces/terminal/visualizations.d.ts +78 -0
  130. package/dist/src/interfaces/terminal/visualizations.d.ts.map +1 -0
  131. package/dist/src/interfaces/terminal/visualizations.js +540 -0
  132. package/dist/src/interfaces/terminal/visualizations.js.map +1 -0
  133. package/dist/src/interfaces/web/server.d.ts +73 -0
  134. package/dist/src/interfaces/web/server.d.ts.map +1 -0
  135. package/dist/src/interfaces/web/server.js +505 -0
  136. package/dist/src/interfaces/web/server.js.map +1 -0
  137. package/dist/src/mcp-servers/antigravity/index.js +2 -2
  138. package/dist/src/mcp-servers/antigravity/index.js.map +1 -1
  139. package/dist/src/memory/dreaming.d.ts +91 -0
  140. package/dist/src/memory/dreaming.d.ts.map +1 -0
  141. package/dist/src/memory/dreaming.js +582 -0
  142. package/dist/src/memory/dreaming.js.map +1 -0
  143. package/dist/src/memory/index.d.ts +8 -0
  144. package/dist/src/memory/index.d.ts.map +1 -0
  145. package/dist/src/memory/index.js +29 -0
  146. package/dist/src/memory/index.js.map +1 -0
  147. package/dist/src/memory/store.d.ts +13 -0
  148. package/dist/src/memory/store.d.ts.map +1 -1
  149. package/dist/src/memory/store.js +28 -0
  150. package/dist/src/memory/store.js.map +1 -1
  151. package/dist/src/memory/vector.d.ts +94 -0
  152. package/dist/src/memory/vector.d.ts.map +1 -0
  153. package/dist/src/memory/vector.js +457 -0
  154. package/dist/src/memory/vector.js.map +1 -0
  155. package/dist/src/networking/analyzer.d.ts +189 -0
  156. package/dist/src/networking/analyzer.d.ts.map +1 -0
  157. package/dist/src/networking/analyzer.js +604 -0
  158. package/dist/src/networking/analyzer.js.map +1 -0
  159. package/dist/src/plugins/bundled/context-engine/index.d.ts +8 -0
  160. package/dist/src/plugins/bundled/context-engine/index.d.ts.map +1 -0
  161. package/dist/src/plugins/bundled/context-engine/index.js +353 -0
  162. package/dist/src/plugins/bundled/context-engine/index.js.map +1 -0
  163. package/dist/src/plugins/bundled/observability/index.d.ts +64 -0
  164. package/dist/src/plugins/bundled/observability/index.d.ts.map +1 -0
  165. package/dist/src/plugins/bundled/observability/index.js +441 -0
  166. package/dist/src/plugins/bundled/observability/index.js.map +1 -0
  167. package/dist/src/plugins/index.d.ts +15 -0
  168. package/dist/src/plugins/index.d.ts.map +1 -0
  169. package/dist/src/plugins/index.js +117 -0
  170. package/dist/src/plugins/index.js.map +1 -0
  171. package/dist/src/plugins/loader.d.ts +19 -0
  172. package/dist/src/plugins/loader.d.ts.map +1 -0
  173. package/dist/src/plugins/loader.js +333 -0
  174. package/dist/src/plugins/loader.js.map +1 -0
  175. package/dist/src/plugins/manager.d.ts +32 -0
  176. package/dist/src/plugins/manager.d.ts.map +1 -0
  177. package/dist/src/plugins/manager.js +410 -0
  178. package/dist/src/plugins/manager.js.map +1 -0
  179. package/dist/src/plugins/registry.d.ts +50 -0
  180. package/dist/src/plugins/registry.d.ts.map +1 -0
  181. package/dist/src/plugins/registry.js +285 -0
  182. package/dist/src/plugins/registry.js.map +1 -0
  183. package/dist/src/plugins/types.d.ts +165 -0
  184. package/dist/src/plugins/types.d.ts.map +1 -0
  185. package/dist/src/plugins/types.js +7 -0
  186. package/dist/src/plugins/types.js.map +1 -0
  187. package/dist/src/providers/base.d.ts +5 -0
  188. package/dist/src/providers/base.d.ts.map +1 -1
  189. package/dist/src/providers/base.js.map +1 -1
  190. package/dist/src/providers/huggingface.d.ts +27 -0
  191. package/dist/src/providers/huggingface.d.ts.map +1 -0
  192. package/dist/src/providers/huggingface.js +140 -0
  193. package/dist/src/providers/huggingface.js.map +1 -0
  194. package/dist/src/providers/kiloauto.d.ts +29 -0
  195. package/dist/src/providers/kiloauto.d.ts.map +1 -0
  196. package/dist/src/providers/kiloauto.js +242 -0
  197. package/dist/src/providers/kiloauto.js.map +1 -0
  198. package/dist/src/providers/localllama.d.ts +26 -0
  199. package/dist/src/providers/localllama.d.ts.map +1 -0
  200. package/dist/src/providers/localllama.js +192 -0
  201. package/dist/src/providers/localllama.js.map +1 -0
  202. package/dist/src/providers/openai.d.ts.map +1 -1
  203. package/dist/src/providers/openai.js +8 -1
  204. package/dist/src/providers/openai.js.map +1 -1
  205. package/dist/src/providers/router.d.ts.map +1 -1
  206. package/dist/src/providers/router.js +36 -4
  207. package/dist/src/providers/router.js.map +1 -1
  208. package/dist/src/scheduler/heartbeat.d.ts.map +1 -1
  209. package/dist/src/scheduler/heartbeat.js +23 -1
  210. package/dist/src/scheduler/heartbeat.js.map +1 -1
  211. package/dist/src/security/privacy.d.ts +199 -0
  212. package/dist/src/security/privacy.d.ts.map +1 -0
  213. package/dist/src/security/privacy.js +600 -0
  214. package/dist/src/security/privacy.js.map +1 -0
  215. package/dist/src/server/hq.d.ts.map +1 -1
  216. package/dist/src/server/hq.js +56 -4
  217. package/dist/src/server/hq.js.map +1 -1
  218. package/dist/src/skills/loader.d.ts.map +1 -1
  219. package/dist/src/skills/loader.js +13 -3
  220. package/dist/src/skills/loader.js.map +1 -1
  221. package/dist/src/tools/advanced.d.ts.map +1 -1
  222. package/dist/src/tools/advanced.js +73 -18
  223. package/dist/src/tools/advanced.js.map +1 -1
  224. package/dist/src/tools/filesystem.d.ts.map +1 -1
  225. package/dist/src/tools/filesystem.js +110 -7
  226. package/dist/src/tools/filesystem.js.map +1 -1
  227. package/dist/src/tools/index_memory.d.ts.map +1 -1
  228. package/dist/src/tools/index_memory.js +13 -6
  229. package/dist/src/tools/index_memory.js.map +1 -1
  230. package/dist/src/tools/loader.d.ts.map +1 -1
  231. package/dist/src/tools/loader.js +4 -2
  232. package/dist/src/tools/loader.js.map +1 -1
  233. package/dist/src/tools/registry.d.ts +6 -0
  234. package/dist/src/tools/registry.d.ts.map +1 -1
  235. package/dist/src/tools/registry.js +51 -12
  236. package/dist/src/tools/registry.js.map +1 -1
  237. package/dist/src/tools/shell.d.ts.map +1 -1
  238. package/dist/src/tools/shell.js +2 -0
  239. package/dist/src/tools/shell.js.map +1 -1
  240. package/dist/src/tools/specialized.d.ts.map +1 -1
  241. package/dist/src/tools/specialized.js +52 -12
  242. package/dist/src/tools/specialized.js.map +1 -1
  243. package/dist/src/workflow/engine.d.ts.map +1 -1
  244. package/dist/src/workflow/engine.js +43 -13
  245. package/dist/src/workflow/engine.js.map +1 -1
  246. package/dist/src/workflow/lobster.d.ts +138 -0
  247. package/dist/src/workflow/lobster.d.ts.map +1 -0
  248. package/dist/src/workflow/lobster.js +620 -0
  249. package/dist/src/workflow/lobster.js.map +1 -0
  250. package/dist/src/workspace/heartbeat.d.ts +122 -0
  251. package/dist/src/workspace/heartbeat.d.ts.map +1 -0
  252. package/dist/src/workspace/heartbeat.js +624 -0
  253. package/dist/src/workspace/heartbeat.js.map +1 -0
  254. package/dist/src/workspace/index.d.ts +29 -0
  255. package/dist/src/workspace/index.d.ts.map +1 -0
  256. package/dist/src/workspace/index.js +97 -0
  257. package/dist/src/workspace/index.js.map +1 -0
  258. package/package.json +2 -2
@@ -0,0 +1,604 @@
1
+ "use strict";
2
+ /**
3
+ * 🐟 AZERCLAW Network Analysis Tools
4
+ * Network traffic analysis, protocol decoding, and security analysis
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.NetworkAnalyzer = exports.Protocol = void 0;
8
+ exports.getNetworkAnalyzer = getNetworkAnalyzer;
9
+ exports.initializeNetworkAnalyzer = initializeNetworkAnalyzer;
10
+ exports.shutdownNetworkAnalyzer = shutdownNetworkAnalyzer;
11
+ const events_1 = require("events");
12
+ var Protocol;
13
+ (function (Protocol) {
14
+ Protocol["TCP"] = "TCP";
15
+ Protocol["UDP"] = "UDP";
16
+ Protocol["ICMP"] = "ICMP";
17
+ Protocol["HTTP"] = "HTTP";
18
+ Protocol["HTTPS"] = "HTTPS";
19
+ Protocol["DNS"] = "DNS";
20
+ Protocol["FTP"] = "FTP";
21
+ Protocol["SSH"] = "SSH";
22
+ Protocol["SMTP"] = "SMTP";
23
+ Protocol["UNKNOWN"] = "UNKNOWN";
24
+ })(Protocol || (exports.Protocol = Protocol = {}));
25
+ // ─── Network Analyzer Implementation ─────────────────────────────────────
26
+ class NetworkAnalyzer extends events_1.EventEmitter {
27
+ sessions = new Map();
28
+ packets = [];
29
+ decoders = new Map();
30
+ isActive = false;
31
+ captureInterface;
32
+ maxPackets = 10000;
33
+ simulationTimer = null;
34
+ constructor() {
35
+ super();
36
+ this.initializeDecoders();
37
+ }
38
+ initializeDecoders() {
39
+ // HTTP/HTTPS Decoder
40
+ this.decoders.set(Protocol.HTTP, {
41
+ name: 'HTTP Decoder',
42
+ protocol: Protocol.HTTP,
43
+ decode: this.decodeHTTP.bind(this),
44
+ analyze: this.analyzeHTTP.bind(this)
45
+ });
46
+ this.decoders.set(Protocol.HTTPS, {
47
+ name: 'HTTPS Decoder',
48
+ protocol: Protocol.HTTPS,
49
+ decode: this.decodeHTTPS.bind(this),
50
+ analyze: this.analyzeHTTPS.bind(this)
51
+ });
52
+ // DNS Decoder
53
+ this.decoders.set(Protocol.DNS, {
54
+ name: 'DNS Decoder',
55
+ protocol: Protocol.DNS,
56
+ decode: this.decodeDNS.bind(this),
57
+ analyze: this.analyzeDNS.bind(this)
58
+ });
59
+ // TCP Decoder
60
+ this.decoders.set(Protocol.TCP, {
61
+ name: 'TCP Decoder',
62
+ protocol: Protocol.TCP,
63
+ decode: this.decodeTCP.bind(this),
64
+ analyze: this.analyzeTCP.bind(this)
65
+ });
66
+ // UDP Decoder
67
+ this.decoders.set(Protocol.UDP, {
68
+ name: 'UDP Decoder',
69
+ protocol: Protocol.UDP,
70
+ decode: this.decodeUDP.bind(this),
71
+ analyze: this.analyzeUDP.bind(this)
72
+ });
73
+ }
74
+ // ─── Packet Capture ─────────────────────────────────────────────────
75
+ async startCapture(interfaceName) {
76
+ if (this.isActive) {
77
+ return;
78
+ }
79
+ this.captureInterface = interfaceName;
80
+ this.isActive = true;
81
+ console.log(`[NetworkAnalyzer] Starting packet capture on ${interfaceName || 'default interface'}`);
82
+ // In a real implementation, this would use pcap or similar
83
+ // For demo purposes, we'll simulate packet capture
84
+ this.simulatePacketCapture();
85
+ this.emit('capture-started');
86
+ }
87
+ stopCapture() {
88
+ this.isActive = false;
89
+ if (this.simulationTimer) {
90
+ clearTimeout(this.simulationTimer);
91
+ this.simulationTimer = null;
92
+ }
93
+ console.log('[NetworkAnalyzer] Stopped packet capture');
94
+ this.emit('capture-stopped');
95
+ }
96
+ simulatePacketCapture() {
97
+ // Cancel any prior simulation chain before starting a new one
98
+ if (this.simulationTimer) {
99
+ clearTimeout(this.simulationTimer);
100
+ this.simulationTimer = null;
101
+ }
102
+ // Simulate network traffic for demo purposes
103
+ const simulatePacket = () => {
104
+ this.simulationTimer = null;
105
+ if (!this.isActive)
106
+ return;
107
+ const packet = this.generateSimulatedPacket();
108
+ this.processPacket(packet);
109
+ // Simulate random packet timing
110
+ this.simulationTimer = setTimeout(simulatePacket, Math.random() * 1000);
111
+ };
112
+ // Start simulation
113
+ simulatePacket();
114
+ }
115
+ generateSimulatedPacket() {
116
+ const protocols = [Protocol.TCP, Protocol.UDP, Protocol.HTTP, Protocol.DNS];
117
+ const protocol = protocols[Math.floor(Math.random() * protocols.length)];
118
+ return {
119
+ timestamp: new Date(),
120
+ source: {
121
+ ip: `192.168.1.${Math.floor(Math.random() * 254) + 1}`,
122
+ port: Math.floor(Math.random() * 65535),
123
+ mac: this.generateRandomMAC()
124
+ },
125
+ destination: {
126
+ ip: `10.0.0.${Math.floor(Math.random() * 254) + 1}`,
127
+ port: [80, 443, 53, 22, 25, 8080][Math.floor(Math.random() * 6)],
128
+ mac: this.generateRandomMAC()
129
+ },
130
+ protocol,
131
+ size: Math.floor(Math.random() * 1500) + 64,
132
+ payload: Buffer.alloc(Math.floor(Math.random() * 1000)),
133
+ flags: this.generatePacketFlags(protocol),
134
+ ttl: Math.floor(Math.random() * 64) + 1,
135
+ metadata: {
136
+ simulated: true,
137
+ interface: this.captureInterface || 'eth0'
138
+ }
139
+ };
140
+ }
141
+ generateRandomMAC() {
142
+ return Array.from({ length: 6 }, () => Math.floor(Math.random() * 256).toString(16).padStart(2, '0')).join(':');
143
+ }
144
+ generatePacketFlags(protocol) {
145
+ switch (protocol) {
146
+ case Protocol.TCP:
147
+ return ['SYN', 'ACK', 'FIN', 'RST'].filter(() => Math.random() > 0.7);
148
+ case Protocol.UDP:
149
+ return [];
150
+ case Protocol.HTTP:
151
+ return ['GET', 'POST', 'PUT', 'DELETE'].filter(() => Math.random() > 0.8);
152
+ default:
153
+ return [];
154
+ }
155
+ }
156
+ // ─── Packet Processing ─────────────────────────────────────────────
157
+ processPacket(packet) {
158
+ // Store packet
159
+ this.packets.push(packet);
160
+ // Cleanup old packets in place to avoid full-array reallocation
161
+ while (this.packets.length > this.maxPackets) {
162
+ this.packets.shift();
163
+ }
164
+ // Update or create session
165
+ this.updateSession(packet);
166
+ // Decode packet
167
+ const decoder = this.decoders.get(packet.protocol);
168
+ if (decoder) {
169
+ try {
170
+ const decoded = decoder.decode(packet);
171
+ this.emit('packet-decoded', decoded);
172
+ // Check for anomalies
173
+ this.checkAnomalies(decoded);
174
+ }
175
+ catch (error) {
176
+ console.warn(`[NetworkAnalyzer] Failed to decode packet:`, error);
177
+ }
178
+ }
179
+ this.emit('packet-processed', packet);
180
+ }
181
+ updateSession(packet) {
182
+ const sessionId = this.generateSessionId(packet);
183
+ let session = this.sessions.get(sessionId);
184
+ if (!session) {
185
+ session = {
186
+ id: sessionId,
187
+ protocol: packet.protocol,
188
+ source: `${packet.source.ip}:${packet.source.port}`,
189
+ destination: `${packet.destination.ip}:${packet.destination.port}`,
190
+ startTime: packet.timestamp,
191
+ packetCount: 0,
192
+ byteCount: 0,
193
+ state: 'active',
194
+ flags: [],
195
+ metadata: {}
196
+ };
197
+ this.sessions.set(sessionId, session);
198
+ }
199
+ session.packetCount++;
200
+ session.byteCount += packet.size;
201
+ if (packet.flags) {
202
+ session.flags.push(...packet.flags);
203
+ session.flags = [...new Set(session.flags)]; // Remove duplicates
204
+ }
205
+ // Check for session termination
206
+ if (packet.flags?.includes('FIN') || packet.flags?.includes('RST')) {
207
+ session.state = 'closed';
208
+ session.endTime = packet.timestamp;
209
+ }
210
+ }
211
+ generateSessionId(packet) {
212
+ const src = `${packet.source.ip}:${packet.source.port}`;
213
+ const dst = `${packet.destination.ip}:${packet.destination.port}`;
214
+ return `${packet.protocol}-${src}-${dst}`;
215
+ }
216
+ // ─── Protocol Decoders ───────────────────────────────────────────────
217
+ decodeHTTP(packet) {
218
+ const decoded = {
219
+ original: packet,
220
+ protocol: Protocol.HTTP,
221
+ headers: {},
222
+ payload: undefined,
223
+ decodedData: undefined,
224
+ anomalies: [],
225
+ securityFlags: []
226
+ };
227
+ if (packet.payload) {
228
+ const payloadStr = packet.payload.toString('utf8');
229
+ // Parse HTTP request/response
230
+ const lines = payloadStr.split('\r\n');
231
+ if (lines.length > 0) {
232
+ const requestLine = lines[0];
233
+ decoded.headers['request'] = requestLine;
234
+ // Parse headers
235
+ for (let i = 1; i < lines.length; i++) {
236
+ const line = lines[i];
237
+ if (line === '')
238
+ break; // End of headers
239
+ const colonIndex = line.indexOf(':');
240
+ if (colonIndex > 0) {
241
+ const key = line.substring(0, colonIndex).trim();
242
+ const value = line.substring(colonIndex + 1).trim();
243
+ decoded.headers[key.toLowerCase()] = value;
244
+ }
245
+ }
246
+ }
247
+ // Security checks
248
+ if (decoded.headers['user-agent']?.includes('bot') || decoded.headers['user-agent']?.includes('scanner')) {
249
+ decoded.securityFlags = decoded.securityFlags || [];
250
+ decoded.securityFlags.push('potential_bot');
251
+ }
252
+ if (payloadStr.includes('<script>') || payloadStr.includes('javascript:')) {
253
+ decoded.securityFlags = decoded.securityFlags || [];
254
+ decoded.securityFlags.push('javascript_content');
255
+ }
256
+ }
257
+ return decoded;
258
+ }
259
+ decodeHTTPS(packet) {
260
+ return {
261
+ original: packet,
262
+ protocol: Protocol.HTTPS,
263
+ headers: {
264
+ encrypted: true,
265
+ cipher_suite: 'TLS_AES_256_GCM_SHA384' // Mock
266
+ },
267
+ anomalies: [],
268
+ securityFlags: ['encrypted_traffic']
269
+ };
270
+ }
271
+ decodeDNS(packet) {
272
+ const decoded = {
273
+ original: packet,
274
+ protocol: Protocol.DNS,
275
+ headers: {},
276
+ anomalies: [],
277
+ securityFlags: []
278
+ };
279
+ // Mock DNS parsing
280
+ if (packet.destination.port === 53) {
281
+ decoded.headers['query_type'] = 'standard';
282
+ decoded.headers['domain'] = 'example.com'; // Mock domain
283
+ // Check for suspicious domains
284
+ const suspiciousDomains = ['malware.com', 'phishing.net', 'suspicious.org'];
285
+ if (suspiciousDomains.some(domain => decoded.headers['domain']?.includes(domain))) {
286
+ decoded.securityFlags = decoded.securityFlags || [];
287
+ decoded.securityFlags.push('suspicious_domain');
288
+ }
289
+ }
290
+ return decoded;
291
+ }
292
+ decodeTCP(packet) {
293
+ return {
294
+ original: packet,
295
+ protocol: Protocol.TCP,
296
+ headers: {
297
+ flags: packet.flags || [],
298
+ window_size: Math.floor(Math.random() * 65535),
299
+ sequence_number: Math.floor(Math.random() * 4294967295)
300
+ },
301
+ anomalies: [],
302
+ securityFlags: []
303
+ };
304
+ }
305
+ decodeUDP(packet) {
306
+ return {
307
+ original: packet,
308
+ protocol: Protocol.UDP,
309
+ headers: {
310
+ length: packet.size,
311
+ checksum: Math.floor(Math.random() * 65535)
312
+ },
313
+ anomalies: [],
314
+ securityFlags: []
315
+ };
316
+ }
317
+ // ─── Protocol Analysis ─────────────────────────────────────────────
318
+ analyzeHTTP(session) {
319
+ const analysis = {
320
+ session,
321
+ protocol: Protocol.HTTP,
322
+ summary: this.calculateSessionSummary(session),
323
+ patterns: [],
324
+ anomalies: [],
325
+ securityIssues: [],
326
+ recommendations: []
327
+ };
328
+ // Analyze HTTP patterns
329
+ if (session.packetCount > 100) {
330
+ analysis.patterns.push({
331
+ type: 'frequency',
332
+ description: 'High HTTP traffic volume',
333
+ confidence: 0.8,
334
+ evidence: [{ packetCount: session.packetCount }]
335
+ });
336
+ }
337
+ // Check for security issues
338
+ if (session.byteCount > 10 * 1024 * 1024) { // 10MB
339
+ analysis.securityIssues.push({
340
+ type: 'data_exfiltration',
341
+ severity: 'medium',
342
+ description: 'Large amount of HTTP data transferred',
343
+ indicators: [`Total bytes: ${session.byteCount}`],
344
+ mitigation: 'Monitor data transfer patterns and implement DLP'
345
+ });
346
+ }
347
+ analysis.recommendations.push('Consider encrypting sensitive HTTP traffic');
348
+ return analysis;
349
+ }
350
+ analyzeHTTPS(session) {
351
+ const analysis = {
352
+ session,
353
+ protocol: Protocol.HTTPS,
354
+ summary: this.calculateSessionSummary(session),
355
+ patterns: [],
356
+ anomalies: [],
357
+ securityIssues: [],
358
+ recommendations: []
359
+ };
360
+ analysis.recommendations.push('HTTPS traffic is properly encrypted');
361
+ return analysis;
362
+ }
363
+ analyzeDNS(session) {
364
+ const analysis = {
365
+ session,
366
+ protocol: Protocol.DNS,
367
+ summary: this.calculateSessionSummary(session),
368
+ patterns: [],
369
+ anomalies: [],
370
+ securityIssues: [],
371
+ recommendations: []
372
+ };
373
+ // Check for DNS tunneling
374
+ if (session.packetCount > 50 && session.byteCount > 10000) {
375
+ analysis.anomalies.push({
376
+ type: 'unusual_timing',
377
+ severity: 'medium',
378
+ description: 'Potential DNS tunneling detected',
379
+ timestamp: new Date(),
380
+ evidence: { packetCount: session.packetCount, byteCount: session.byteCount }
381
+ });
382
+ }
383
+ analysis.recommendations.push('Monitor DNS queries for unusual patterns');
384
+ return analysis;
385
+ }
386
+ analyzeTCP(session) {
387
+ const analysis = {
388
+ session,
389
+ protocol: Protocol.TCP,
390
+ summary: this.calculateSessionSummary(session),
391
+ patterns: [],
392
+ anomalies: [],
393
+ securityIssues: [],
394
+ recommendations: []
395
+ };
396
+ // Check for port scanning
397
+ if (session.flags.includes('SYN') && !session.flags.includes('ACK')) {
398
+ analysis.anomalies.push({
399
+ type: 'protocol_violation',
400
+ severity: 'low',
401
+ description: 'Potential port scanning activity',
402
+ timestamp: new Date(),
403
+ evidence: { flags: session.flags }
404
+ });
405
+ }
406
+ return analysis;
407
+ }
408
+ analyzeUDP(session) {
409
+ const analysis = {
410
+ session,
411
+ protocol: Protocol.UDP,
412
+ summary: this.calculateSessionSummary(session),
413
+ patterns: [],
414
+ anomalies: [],
415
+ securityIssues: [],
416
+ recommendations: []
417
+ };
418
+ // UDP analysis logic here
419
+ return analysis;
420
+ }
421
+ calculateSessionSummary(session) {
422
+ const duration = session.endTime
423
+ ? session.endTime.getTime() - session.startTime.getTime()
424
+ : Date.now() - session.startTime.getTime();
425
+ return {
426
+ totalPackets: session.packetCount,
427
+ totalBytes: session.byteCount,
428
+ duration,
429
+ averagePacketSize: session.packetCount > 0 ? session.byteCount / session.packetCount : 0
430
+ };
431
+ }
432
+ checkAnomalies(decoded) {
433
+ // Check for unusual packet sizes
434
+ if (decoded.original.size > 8000) {
435
+ this.emit('anomaly-detected', {
436
+ type: 'size_anomaly',
437
+ severity: 'medium',
438
+ description: 'Unusually large packet detected',
439
+ packet: decoded.original
440
+ });
441
+ }
442
+ // Check for security flags
443
+ if (decoded.securityFlags && decoded.securityFlags.length > 0) {
444
+ this.emit('security-issue-detected', {
445
+ type: 'suspicious_traffic',
446
+ severity: 'low',
447
+ description: 'Security flags detected',
448
+ flags: decoded.securityFlags,
449
+ packet: decoded.original
450
+ });
451
+ }
452
+ }
453
+ // ─── Network Topology Mapping ───────────────────────────────────────
454
+ async mapNetworkTopology(targetRange) {
455
+ console.log('[NetworkAnalyzer] Mapping network topology...');
456
+ const topology = {
457
+ nodes: [],
458
+ connections: [],
459
+ metadata: {
460
+ scanTime: new Date(),
461
+ totalNodes: 0,
462
+ totalConnections: 0
463
+ }
464
+ };
465
+ // Simulate network discovery
466
+ const nodes = this.simulateNetworkDiscovery(targetRange);
467
+ topology.nodes = nodes;
468
+ topology.metadata.totalNodes = nodes.length;
469
+ // Generate connections based on observed traffic
470
+ topology.connections = this.generateConnections(nodes);
471
+ topology.metadata.totalConnections = topology.connections.length;
472
+ this.emit('topology-mapped', topology);
473
+ return topology;
474
+ }
475
+ simulateNetworkDiscovery(targetRange) {
476
+ const nodes = [];
477
+ // Simulate discovering nodes on the network
478
+ for (let i = 1; i <= 10; i++) {
479
+ const ip = `192.168.1.${i}`;
480
+ const node = {
481
+ id: `node-${i}`,
482
+ ip,
483
+ hostname: `host-${i}.local`,
484
+ mac: this.generateRandomMAC(),
485
+ os: ['Linux', 'Windows', 'macOS'][Math.floor(Math.random() * 3)],
486
+ openPorts: this.generateOpenPorts(),
487
+ services: this.generateServices(),
488
+ confidence: 0.8 + Math.random() * 0.2
489
+ };
490
+ nodes.push(node);
491
+ }
492
+ return nodes;
493
+ }
494
+ generateOpenPorts() {
495
+ const commonPorts = [22, 80, 443, 53, 25, 110, 143, 993, 995, 3389, 5432, 3306];
496
+ const numPorts = Math.floor(Math.random() * 5) + 1;
497
+ const ports = [];
498
+ for (let i = 0; i < numPorts; i++) {
499
+ const port = commonPorts[Math.floor(Math.random() * commonPorts.length)];
500
+ if (!ports.includes(port)) {
501
+ ports.push(port);
502
+ }
503
+ }
504
+ return ports;
505
+ }
506
+ generateServices() {
507
+ const services = [
508
+ { port: 22, protocol: 'TCP', service: 'SSH', version: 'OpenSSH_7.4' },
509
+ { port: 80, protocol: 'TCP', service: 'HTTP', version: 'Apache/2.4.41' },
510
+ { port: 443, protocol: 'TCP', service: 'HTTPS', version: 'Apache/2.4.41' },
511
+ { port: 53, protocol: 'UDP', service: 'DNS', version: 'BIND 9.11' },
512
+ { port: 25, protocol: 'TCP', service: 'SMTP', version: 'Postfix 3.4' }
513
+ ];
514
+ const numServices = Math.floor(Math.random() * 3) + 1;
515
+ return services.slice(0, numServices);
516
+ }
517
+ generateConnections(nodes) {
518
+ const connections = [];
519
+ // Generate connections based on observed traffic patterns
520
+ for (let i = 0; i < nodes.length; i++) {
521
+ for (let j = i + 1; j < nodes.length; j++) {
522
+ if (Math.random() > 0.7) { // 30% chance of connection
523
+ connections.push({
524
+ source: nodes[i].id,
525
+ target: nodes[j].id,
526
+ protocol: [Protocol.TCP, Protocol.UDP][Math.floor(Math.random() * 2)],
527
+ port: nodes[j].openPorts[0] || 80,
528
+ state: 'established',
529
+ strength: Math.random()
530
+ });
531
+ }
532
+ }
533
+ }
534
+ return connections;
535
+ }
536
+ // ─── Public API ─────────────────────────────────────────────────────
537
+ getSessions() {
538
+ return Array.from(this.sessions.values());
539
+ }
540
+ getSessionsByProtocol(protocol) {
541
+ return this.getSessions().filter(session => session.protocol === protocol);
542
+ }
543
+ getPackets(timeRange) {
544
+ if (!timeRange) {
545
+ return [...this.packets];
546
+ }
547
+ return this.packets.filter(packet => packet.timestamp >= timeRange.start && packet.timestamp <= timeRange.end);
548
+ }
549
+ getStats() {
550
+ const protocols = {};
551
+ let dataTransferred = 0;
552
+ for (const packet of this.packets) {
553
+ protocols[packet.protocol] = (protocols[packet.protocol] || 0) + 1;
554
+ dataTransferred += packet.size;
555
+ }
556
+ return {
557
+ totalPackets: this.packets.length,
558
+ totalSessions: this.sessions.size,
559
+ protocols,
560
+ activeSessions: Array.from(this.sessions.values()).filter(s => s.state === 'active').length,
561
+ dataTransferred
562
+ };
563
+ }
564
+ async analyzeProtocol(protocol) {
565
+ const sessions = this.getSessionsByProtocol(protocol);
566
+ const decoder = this.decoders.get(protocol);
567
+ if (!decoder) {
568
+ throw new Error(`No decoder available for protocol: ${protocol}`);
569
+ }
570
+ return sessions.map(session => decoder.analyze(session));
571
+ }
572
+ clearData() {
573
+ this.packets = [];
574
+ this.sessions.clear();
575
+ this.emit('data-cleared');
576
+ }
577
+ isCapturing() {
578
+ return this.isActive;
579
+ }
580
+ }
581
+ exports.NetworkAnalyzer = NetworkAnalyzer;
582
+ // ─── Global Network Analyzer ───────────────────────────────────────────
583
+ let networkAnalyzer = null;
584
+ function getNetworkAnalyzer() {
585
+ if (!networkAnalyzer) {
586
+ networkAnalyzer = new NetworkAnalyzer();
587
+ }
588
+ return networkAnalyzer;
589
+ }
590
+ function initializeNetworkAnalyzer() {
591
+ if (networkAnalyzer) {
592
+ networkAnalyzer.removeAllListeners();
593
+ }
594
+ networkAnalyzer = new NetworkAnalyzer();
595
+ return networkAnalyzer;
596
+ }
597
+ function shutdownNetworkAnalyzer() {
598
+ if (networkAnalyzer) {
599
+ networkAnalyzer.stopCapture();
600
+ networkAnalyzer.removeAllListeners();
601
+ networkAnalyzer = null;
602
+ }
603
+ }
604
+ //# sourceMappingURL=analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../../src/networking/analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 🐟 AZERCLAW Context Engine Plugin
3
+ * Ported from OpenClaw - Enhanced memory retrieval and context management
4
+ */
5
+ import { Plugin } from '../../types';
6
+ declare const ContextEnginePlugin: Plugin;
7
+ export default ContextEnginePlugin;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/bundled/context-engine/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAiD,MAAM,aAAa,CAAC;AAKpF,QAAA,MAAM,mBAAmB,EAAE,MAgS1B,CAAC;AAmGF,eAAe,mBAAmB,CAAC"}