azerclaw 2.1.9 → 2.2.2

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 +81 -29
  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,540 @@
1
+ "use strict";
2
+ /**
3
+ * 🐟 AZERCLAW Terminal Visualizations
4
+ * Rich terminal visualizations using ASCII/Unicode art and colors
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.TerminalUtils = exports.TerminalAnimations = exports.TerminalTables = exports.TerminalCards = exports.TerminalProgress = exports.TerminalCharts = exports.TerminalCanvas = void 0;
41
+ const chalk = __importStar(require("chalk"));
42
+ // ─── Terminal Canvas Implementation ─────────────────────────────────────
43
+ class TerminalCanvas {
44
+ width;
45
+ height;
46
+ buffer;
47
+ constructor(width, height) {
48
+ this.width = width;
49
+ this.height = height;
50
+ this.buffer = Array(height).fill(null).map(() => Array(width).fill(' '));
51
+ }
52
+ clear() {
53
+ this.buffer = Array(this.height).fill(null).map(() => Array(this.width).fill(' '));
54
+ }
55
+ setPixel(x, y, char, color) {
56
+ if (x >= 0 && x < this.width && y >= 0 && y < this.height) {
57
+ this.buffer[y][x] = color && color in chalk ? chalk[color](char) : char;
58
+ }
59
+ }
60
+ drawLine(x1, y1, x2, y2, char = '─', color) {
61
+ const dx = Math.abs(x2 - x1);
62
+ const dy = Math.abs(y2 - y1);
63
+ const sx = x1 < x2 ? 1 : -1;
64
+ const sy = y1 < y2 ? 1 : -1;
65
+ let err = dx - dy;
66
+ let x = x1;
67
+ let y = y1;
68
+ while (true) {
69
+ this.setPixel(x, y, char, color);
70
+ if (x === x2 && y === y2)
71
+ break;
72
+ const e2 = 2 * err;
73
+ if (e2 > -dy) {
74
+ err -= dy;
75
+ x += sx;
76
+ }
77
+ if (e2 < dx) {
78
+ err += dx;
79
+ y += sy;
80
+ }
81
+ }
82
+ }
83
+ drawBox(x, y, width, height, color) {
84
+ // Draw corners
85
+ this.setPixel(x, y, '┌', color);
86
+ this.setPixel(x + width - 1, y, '┐', color);
87
+ this.setPixel(x, y + height - 1, '└', color);
88
+ this.setPixel(x + width - 1, y + height - 1, '┘', color);
89
+ // Draw edges
90
+ for (let i = 1; i < width - 1; i++) {
91
+ this.setPixel(x + i, y, '─', color);
92
+ this.setPixel(x + i, y + height - 1, '─', color);
93
+ }
94
+ for (let i = 1; i < height - 1; i++) {
95
+ this.setPixel(x, y + i, '│', color);
96
+ this.setPixel(x + width - 1, y + i, '│', color);
97
+ }
98
+ }
99
+ drawText(x, y, text, color) {
100
+ for (let i = 0; i < text.length && x + i < this.width; i++) {
101
+ this.setPixel(x + i, y, text[i], color);
102
+ }
103
+ }
104
+ render() {
105
+ return this.buffer.map(row => row.join('')).join('\n');
106
+ }
107
+ }
108
+ exports.TerminalCanvas = TerminalCanvas;
109
+ // ─── Chart Visualizations ───────────────────────────────────────────────
110
+ class TerminalCharts {
111
+ static renderBarChart(data, width = 50, height = 10) {
112
+ const canvas = new TerminalCanvas(width, height);
113
+ if (data.labels.length === 0 || data.datasets.length === 0) {
114
+ canvas.drawText(1, 1, 'No data available', 'gray');
115
+ return canvas.render();
116
+ }
117
+ const dataset = data.datasets[0]; // Use first dataset
118
+ const maxValue = Math.max(...dataset.data);
119
+ const barWidth = Math.floor((width - 10) / data.labels.length);
120
+ const chartHeight = height - 3;
121
+ // Draw chart border
122
+ canvas.drawBox(0, 0, width, height, 'cyan');
123
+ // Draw bars
124
+ data.labels.forEach((label, index) => {
125
+ const value = dataset.data[index];
126
+ const barHeight = Math.round((value / maxValue) * chartHeight);
127
+ const x = 2 + index * (barWidth + 1);
128
+ // Draw bar
129
+ for (let i = 0; i < barHeight; i++) {
130
+ const y = height - 2 - i;
131
+ for (let j = 0; j < barWidth; j++) {
132
+ canvas.setPixel(x + j, y, '█', dataset.color || 'green');
133
+ }
134
+ }
135
+ // Draw label
136
+ if (label.length <= barWidth) {
137
+ canvas.drawText(x + Math.floor((barWidth - label.length) / 2), height - 1, label, 'white');
138
+ }
139
+ else {
140
+ canvas.drawText(x, height - 1, label.substring(0, barWidth), 'white');
141
+ }
142
+ // Draw value
143
+ const valueStr = value.toString();
144
+ canvas.drawText(x + Math.floor((barWidth - valueStr.length) / 2), height - 2 - barHeight, valueStr, 'yellow');
145
+ });
146
+ // Draw title
147
+ if (dataset.label) {
148
+ canvas.drawText(Math.floor((width - dataset.label.length) / 2), 0, dataset.label, 'cyan');
149
+ }
150
+ return canvas.render();
151
+ }
152
+ static renderLineChart(data, width = 60, height = 15) {
153
+ const canvas = new TerminalCanvas(width, height);
154
+ if (data.labels.length === 0 || data.datasets.length === 0) {
155
+ canvas.drawText(1, 1, 'No data available', 'gray');
156
+ return canvas.render();
157
+ }
158
+ const chartWidth = width - 10;
159
+ const chartHeight = height - 4;
160
+ // Find max value across all datasets
161
+ const maxValue = Math.max(...data.datasets.flatMap(d => d.data));
162
+ // Draw chart border
163
+ canvas.drawBox(0, 0, width, height, 'cyan');
164
+ // Draw grid lines
165
+ for (let i = 0; i <= 4; i++) {
166
+ const y = 1 + Math.floor(i * chartHeight / 4);
167
+ for (let x = 1; x < width - 1; x++) {
168
+ canvas.setPixel(x, y, '·', 'gray');
169
+ }
170
+ }
171
+ // Draw datasets
172
+ data.datasets.forEach(dataset => {
173
+ const points = [];
174
+ dataset.data.forEach((value, index) => {
175
+ const x = 2 + Math.floor(index * chartWidth / (data.labels.length - 1));
176
+ const y = 1 + chartHeight - Math.floor((value / maxValue) * chartHeight);
177
+ points.push({ x, y });
178
+ });
179
+ // Draw line
180
+ for (let i = 0; i < points.length - 1; i++) {
181
+ canvas.drawLine(points[i].x, points[i].y, points[i + 1].x, points[i + 1].y, '─', dataset.color || 'green');
182
+ }
183
+ // Draw points
184
+ points.forEach(point => {
185
+ canvas.setPixel(point.x, point.y, '●', dataset.color || 'green');
186
+ });
187
+ });
188
+ // Draw title
189
+ if (data.datasets[0].label) {
190
+ canvas.drawText(Math.floor((width - data.datasets[0].label.length) / 2), 0, data.datasets[0].label, 'cyan');
191
+ }
192
+ return canvas.render();
193
+ }
194
+ static renderPieChart(data, width = 30, height = 15) {
195
+ const canvas = new TerminalCanvas(width, height);
196
+ if (data.labels.length === 0 || data.datasets.length === 0) {
197
+ canvas.drawText(1, 1, 'No data available', 'gray');
198
+ return canvas.render();
199
+ }
200
+ const dataset = data.datasets[0];
201
+ const total = dataset.data.reduce((sum, value) => sum + value, 0);
202
+ const centerX = Math.floor(width / 2);
203
+ const centerY = Math.floor(height / 2);
204
+ const radius = Math.min(width, height) / 3;
205
+ // Draw pie slices
206
+ let currentAngle = 0;
207
+ const colors = ['red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white'];
208
+ dataset.data.forEach((value, index) => {
209
+ const percentage = value / total;
210
+ const angle = percentage * 2 * Math.PI;
211
+ // Draw slice (simplified - using characters)
212
+ const sliceChar = ['◐', '◑', '◒', '◓'][index % 4];
213
+ const color = colors[index % colors.length];
214
+ for (let r = 0; r < radius; r++) {
215
+ for (let a = 0; a < angle; a += 0.1) {
216
+ const x = Math.round(centerX + r * Math.cos(currentAngle + a));
217
+ const y = Math.round(centerY + r * Math.sin(currentAngle + a));
218
+ if (x >= 0 && x < width && y >= 0 && y < height) {
219
+ canvas.setPixel(x, y, sliceChar, color);
220
+ }
221
+ }
222
+ }
223
+ currentAngle += angle;
224
+ });
225
+ // Draw legend
226
+ let legendY = 1;
227
+ data.labels.forEach((label, index) => {
228
+ const value = dataset.data[index];
229
+ const percentage = ((value / total) * 100).toFixed(1);
230
+ const color = colors[index % colors.length];
231
+ canvas.drawText(width - 15, legendY, '●', color);
232
+ canvas.drawText(width - 13, legendY, `${label}: ${percentage}%`, 'white');
233
+ legendY++;
234
+ });
235
+ return canvas.render();
236
+ }
237
+ }
238
+ exports.TerminalCharts = TerminalCharts;
239
+ // ─── Progress Indicators ───────────────────────────────────────────────
240
+ class TerminalProgress {
241
+ static renderProgressBar(progress, width = 40) {
242
+ const percentage = Math.min(100, Math.max(0, (progress.current / progress.total) * 100));
243
+ const filled = Math.round((width - 2) * (percentage / 100));
244
+ const empty = (width - 2) - filled;
245
+ const filledBar = '█'.repeat(filled);
246
+ const emptyBar = '░'.repeat(empty);
247
+ const color = progress.color || 'green';
248
+ let progressBar = color in chalk ? chalk[color](`[${filledBar}${emptyBar}]`) : chalk.green(`[${filledBar}${emptyBar}]`);
249
+ if (progress.label) {
250
+ progressBar += ` ${progress.label}`;
251
+ }
252
+ progressBar += ` ${percentage.toFixed(1)}%`;
253
+ return progressBar;
254
+ }
255
+ static renderSpinner(frame, label) {
256
+ const frames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
257
+ const spinner = frames[frame % frames.length];
258
+ let output = chalk.cyan(spinner);
259
+ if (label) {
260
+ output += ` ${label}`;
261
+ }
262
+ return output;
263
+ }
264
+ static renderLoadingBar(message, width = 50) {
265
+ const time = Date.now() / 1000;
266
+ const position = Math.floor((Math.sin(time) + 1) * (width - message.length - 4) / 2);
267
+ const before = ' '.repeat(position);
268
+ const after = ' '.repeat(width - message.length - 4 - position);
269
+ return chalk.blue(`[ ${before}${chalk.white(message)}${after} ]`);
270
+ }
271
+ }
272
+ exports.TerminalProgress = TerminalProgress;
273
+ // ─── Metric Cards ─────────────────────────────────────────────────────
274
+ class TerminalCards {
275
+ static renderMetricCard(card, width = 20) {
276
+ const canvas = new TerminalCanvas(width, 6);
277
+ // Draw border
278
+ canvas.drawBox(0, 0, width, 6, card.color || 'blue');
279
+ // Draw icon
280
+ if (card.icon) {
281
+ canvas.drawText(1, 1, card.icon, card.color || 'blue');
282
+ }
283
+ // Draw title
284
+ const title = card.title.length > width - 4 ? card.title.substring(0, width - 6) + '..' : card.title;
285
+ canvas.drawText(1, 2, title, 'white');
286
+ // Draw value
287
+ const valueStr = card.value.toString();
288
+ const valueX = Math.floor((width - valueStr.length) / 2);
289
+ canvas.drawText(valueX, 3, valueStr, card.color || 'blue');
290
+ // Draw change indicator
291
+ if (card.change !== undefined) {
292
+ const changeStr = card.change >= 0 ? `↑${card.change}` : `↓${Math.abs(card.change)}`;
293
+ const changeColor = card.change >= 0 ? 'green' : 'red';
294
+ canvas.drawText(1, 4, changeStr, changeColor);
295
+ }
296
+ // Draw unit
297
+ if (card.unit) {
298
+ canvas.drawText(width - card.unit.length - 1, 4, card.unit, 'gray');
299
+ }
300
+ return canvas.render();
301
+ }
302
+ static renderDashboard(cards, columns = 3) {
303
+ const cardWidth = 25;
304
+ const cardHeight = 6;
305
+ const padding = 1;
306
+ const rows = Math.ceil(cards.length / columns);
307
+ const totalHeight = rows * (cardHeight + padding) - padding;
308
+ const totalWidth = columns * (cardWidth + padding) - padding;
309
+ const canvas = new TerminalCanvas(totalWidth, totalHeight);
310
+ cards.forEach((card, index) => {
311
+ const row = Math.floor(index / columns);
312
+ const col = index % columns;
313
+ const x = col * (cardWidth + padding);
314
+ const y = row * (cardHeight + padding);
315
+ const cardCanvas = new TerminalCanvas(cardWidth, cardHeight);
316
+ const cardRender = this.renderMetricCard(card, cardWidth);
317
+ // Draw card on main canvas
318
+ const lines = cardRender.split('\n');
319
+ lines.forEach((line, lineIndex) => {
320
+ for (let i = 0; i < line.length; i++) {
321
+ canvas.setPixel(x + i, y + lineIndex, line[i]);
322
+ }
323
+ });
324
+ });
325
+ return canvas.render();
326
+ }
327
+ }
328
+ exports.TerminalCards = TerminalCards;
329
+ // ─── Table Rendering ─────────────────────────────────────────────────
330
+ class TerminalTables {
331
+ static renderTable(data, width = 80) {
332
+ if (data.headers.length === 0 || data.rows.length === 0) {
333
+ return chalk.gray('No data to display');
334
+ }
335
+ // Calculate column widths
336
+ const columnCount = data.headers.length;
337
+ const columnWidths = [];
338
+ // Initialize with header widths
339
+ for (let i = 0; i < columnCount; i++) {
340
+ columnWidths[i] = data.headers[i].length;
341
+ }
342
+ // Adjust for row content
343
+ for (const row of data.rows) {
344
+ for (let i = 0; i < Math.min(columnCount, row.length); i++) {
345
+ columnWidths[i] = Math.max(columnWidths[i], row[i].length);
346
+ }
347
+ }
348
+ // Limit column widths to fit total width
349
+ const totalWidth = columnWidths.reduce((sum, width) => sum + width, 0) + (columnCount - 1) * 3; // +3 for separators
350
+ if (totalWidth > width) {
351
+ const scale = (width - (columnCount - 1) * 3) / columnWidths.reduce((sum, width) => sum + width, 0);
352
+ for (let i = 0; i < columnWidths.length; i++) {
353
+ columnWidths[i] = Math.floor(columnWidths[i] * scale);
354
+ columnWidths[i] = Math.max(columnWidths[i], 3); // Minimum width
355
+ }
356
+ }
357
+ let output = '';
358
+ // Render header
359
+ output += chalk.cyan('┌');
360
+ for (let i = 0; i < columnCount; i++) {
361
+ output += '─'.repeat(columnWidths[i] + 2);
362
+ if (i < columnCount - 1)
363
+ output += '┬';
364
+ }
365
+ output += '┐\n';
366
+ output += chalk.cyan('│');
367
+ for (let i = 0; i < columnCount; i++) {
368
+ const header = data.headers[i];
369
+ const alignment = data.alignments?.[i] || 'left';
370
+ const paddedHeader = this.padString(header, columnWidths[i], alignment);
371
+ output += ` ${chalk.bold(paddedHeader)} `;
372
+ output += chalk.cyan('│');
373
+ }
374
+ output += '\n';
375
+ output += chalk.cyan('├');
376
+ for (let i = 0; i < columnCount; i++) {
377
+ output += '─'.repeat(columnWidths[i] + 2);
378
+ if (i < columnCount - 1)
379
+ output += '┼';
380
+ }
381
+ output += '┤\n';
382
+ // Render rows
383
+ for (const row of data.rows) {
384
+ output += chalk.cyan('│');
385
+ for (let i = 0; i < columnCount; i++) {
386
+ const cell = row[i] || '';
387
+ const alignment = data.alignments?.[i] || 'left';
388
+ const paddedCell = this.padString(cell, columnWidths[i], alignment);
389
+ output += ` ${paddedCell} `;
390
+ output += chalk.cyan('│');
391
+ }
392
+ output += '\n';
393
+ }
394
+ // Render bottom border
395
+ output += chalk.cyan('└');
396
+ for (let i = 0; i < columnCount; i++) {
397
+ output += '─'.repeat(columnWidths[i] + 2);
398
+ if (i < columnCount - 1)
399
+ output += '┴';
400
+ }
401
+ output += '┘';
402
+ return output;
403
+ }
404
+ static padString(str, width, alignment) {
405
+ if (str.length >= width) {
406
+ return str.substring(0, width - 3) + '...';
407
+ }
408
+ const padding = width - str.length;
409
+ switch (alignment) {
410
+ case 'center':
411
+ const leftPad = Math.floor(padding / 2);
412
+ const rightPad = padding - leftPad;
413
+ return ' '.repeat(leftPad) + str + ' '.repeat(rightPad);
414
+ case 'right':
415
+ return ' '.repeat(padding) + str;
416
+ case 'left':
417
+ default:
418
+ return str + ' '.repeat(padding);
419
+ }
420
+ }
421
+ }
422
+ exports.TerminalTables = TerminalTables;
423
+ // ─── Animated Visualizations ───────────────────────────────────────────
424
+ class TerminalAnimations {
425
+ static renderWave(time, width = 50, height = 10) {
426
+ const canvas = new TerminalCanvas(width, height);
427
+ for (let x = 0; x < width; x++) {
428
+ const y = Math.floor(height / 2 + Math.sin((x / width) * Math.PI * 4 + time) * (height / 3));
429
+ canvas.setPixel(x, y, '∿', 'cyan');
430
+ }
431
+ return canvas.render();
432
+ }
433
+ static renderPulse(time, width = 20, height = 10) {
434
+ const canvas = new TerminalCanvas(width, height);
435
+ const centerX = Math.floor(width / 2);
436
+ const centerY = Math.floor(height / 2);
437
+ const radius = Math.abs(Math.sin(time)) * Math.min(width, height) / 3;
438
+ for (let angle = 0; angle < Math.PI * 2; angle += 0.1) {
439
+ const x = Math.round(centerX + radius * Math.cos(angle));
440
+ const y = Math.round(centerY + radius * Math.sin(angle));
441
+ if (x >= 0 && x < width && y >= 0 && y < height) {
442
+ canvas.setPixel(x, y, '●', 'magenta');
443
+ }
444
+ }
445
+ return canvas.render();
446
+ }
447
+ static renderMatrixRain(time, width = 40, height = 15) {
448
+ const canvas = new TerminalCanvas(width, height);
449
+ // Simple matrix rain effect
450
+ for (let x = 0; x < width; x += 2) {
451
+ const seed = (x * 1000 + time * 100) % 1000;
452
+ const y = Math.floor((seed / 1000) * height);
453
+ for (let i = 0; i < 5; i++) {
454
+ const currentY = (y - i + height) % height;
455
+ const brightness = 1 - (i / 5);
456
+ const char = i === 0 ? '█' : '▓';
457
+ const color = brightness > 0.7 ? 'green' : brightness > 0.3 ? 'white' : 'gray';
458
+ canvas.setPixel(x, currentY, char, color);
459
+ }
460
+ }
461
+ return canvas.render();
462
+ }
463
+ }
464
+ exports.TerminalAnimations = TerminalAnimations;
465
+ // ─── Utility Functions ─────────────────────────────────────────────────
466
+ class TerminalUtils {
467
+ static renderHeader(title, width = 80) {
468
+ const titleWithPadding = ` ${title} `;
469
+ const padding = Math.max(0, width - titleWithPadding.length - 4);
470
+ const leftPad = Math.floor(padding / 2);
471
+ const rightPad = padding - leftPad;
472
+ const line = '═'.repeat(width);
473
+ const titleLine = `║${' '.repeat(leftPad)}${chalk.bold(title)}${' '.repeat(rightPad)}║`;
474
+ return chalk.cyan(line) + '\n' + chalk.cyan(titleLine) + '\n' + chalk.cyan(line);
475
+ }
476
+ static renderSeparator(char = '─', width = 80) {
477
+ return chalk.gray(char.repeat(width));
478
+ }
479
+ static renderBox(content, title, width = 80) {
480
+ const lines = content.split('\n');
481
+ const maxContentWidth = Math.max(...lines.map(line => line.length));
482
+ const boxWidth = Math.max(width, maxContentWidth + 4);
483
+ let output = '';
484
+ // Top border
485
+ output += chalk.cyan('┌' + '─'.repeat(boxWidth - 2) + '┐') + '\n';
486
+ // Title
487
+ if (title) {
488
+ const titlePadding = boxWidth - title.length - 4;
489
+ const leftTitlePad = Math.floor(titlePadding / 2);
490
+ const rightTitlePad = titlePadding - leftTitlePad;
491
+ output += chalk.cyan('│') + ' '.repeat(leftTitlePad) + chalk.bold(title) + ' '.repeat(rightTitlePad) + chalk.cyan('│') + '\n';
492
+ output += chalk.cyan('├' + '─'.repeat(boxWidth - 2) + '┤') + '\n';
493
+ }
494
+ // Content
495
+ for (const line of lines) {
496
+ const paddedLine = line.padEnd(boxWidth - 2);
497
+ output += chalk.cyan('│') + paddedLine + chalk.cyan('│') + '\n';
498
+ }
499
+ // Bottom border
500
+ output += chalk.cyan('└' + '─'.repeat(boxWidth - 2) + '┘');
501
+ return output;
502
+ }
503
+ static colorizeNumber(value, thresholds) {
504
+ if (value >= thresholds.good) {
505
+ return chalk.green(value.toString());
506
+ }
507
+ else if (value >= thresholds.warning) {
508
+ return chalk.yellow(value.toString());
509
+ }
510
+ else {
511
+ return chalk.red(value.toString());
512
+ }
513
+ }
514
+ static formatBytes(bytes) {
515
+ const units = ['B', 'KB', 'MB', 'GB', 'TB'];
516
+ let size = bytes;
517
+ let unitIndex = 0;
518
+ while (size >= 1024 && unitIndex < units.length - 1) {
519
+ size /= 1024;
520
+ unitIndex++;
521
+ }
522
+ return `${size.toFixed(1)} ${units[unitIndex]}`;
523
+ }
524
+ static formatDuration(ms) {
525
+ if (ms < 1000) {
526
+ return `${ms}ms`;
527
+ }
528
+ else if (ms < 60000) {
529
+ return `${(ms / 1000).toFixed(1)}s`;
530
+ }
531
+ else if (ms < 3600000) {
532
+ return `${(ms / 60000).toFixed(1)}m`;
533
+ }
534
+ else {
535
+ return `${(ms / 3600000).toFixed(1)}h`;
536
+ }
537
+ }
538
+ }
539
+ exports.TerminalUtils = TerminalUtils;
540
+ //# sourceMappingURL=visualizations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visualizations.js","sourceRoot":"","sources":["../../../../src/interfaces/terminal/visualizations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * 🐟 AZERCLAW Web Interface
3
+ * Optional lightweight web interface for advanced users
4
+ */
5
+ import { EventEmitter } from 'events';
6
+ export interface WebServerConfig {
7
+ enabled: boolean;
8
+ port: number;
9
+ host: string;
10
+ auth: {
11
+ enabled: boolean;
12
+ token?: string;
13
+ };
14
+ cors: {
15
+ enabled: boolean;
16
+ origins: string[];
17
+ };
18
+ static: {
19
+ enabled: boolean;
20
+ path: string;
21
+ };
22
+ }
23
+ export interface WebDashboardData {
24
+ system: {
25
+ uptime: number;
26
+ memory: NodeJS.MemoryUsage;
27
+ cpu: number;
28
+ };
29
+ azerclaw: {
30
+ version: string;
31
+ plugins: number;
32
+ sessions: number;
33
+ tools: number;
34
+ };
35
+ network: {
36
+ packets: number;
37
+ sessions: number;
38
+ activeConnections: number;
39
+ };
40
+ privacy: {
41
+ events: number;
42
+ violations: number;
43
+ lastViolation?: string;
44
+ };
45
+ workspace: {
46
+ tasks: number;
47
+ activeTasks: number;
48
+ completedTasks: number;
49
+ };
50
+ }
51
+ export declare class WebServer extends EventEmitter {
52
+ private app;
53
+ private server;
54
+ private io;
55
+ private config;
56
+ private isRunning;
57
+ constructor(config?: Partial<WebServerConfig>);
58
+ private setupMiddleware;
59
+ private authMiddleware;
60
+ private setupRoutes;
61
+ private getDashboardData;
62
+ private setupSocketIO;
63
+ start(): Promise<void>;
64
+ stop(): Promise<void>;
65
+ getConfig(): WebServerConfig;
66
+ updateConfig(newConfig: Partial<WebServerConfig>): void;
67
+ isActive(): boolean;
68
+ getAddress(): string | null;
69
+ }
70
+ export declare function getWebServer(config?: Partial<WebServerConfig>): WebServer;
71
+ export declare function initializeWebServer(config?: Partial<WebServerConfig>): Promise<WebServer>;
72
+ export declare function shutdownWebServer(): Promise<void>;
73
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/web/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAUtC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;QAC3B,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAID,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,SAAS,CAAkB;gBAEvB,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM;IA0BjD,OAAO,CAAC,eAAe;IAoCvB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,WAAW;YAsML,gBAAgB;IA2F9B,OAAO,CAAC,aAAa;IAQf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B3B,SAAS,IAAI,eAAe;IAI5B,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IASvD,QAAQ,IAAI,OAAO;IAInB,UAAU,IAAI,MAAM,GAAG,IAAI;CAW5B;AAMD,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,CAKzE;AAED,wBAAsB,mBAAmB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAO/F;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAKvD"}