@poolzin/pool-bot 2026.3.13 → 2026.3.15

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 (186) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/dist/agents/checkpoint-manager.js +291 -0
  3. package/dist/agents/poolbot-tools.js +5 -0
  4. package/dist/agents/subagent-announce-reliability.js +160 -0
  5. package/dist/agents/tool-result-truncation.js +299 -0
  6. package/dist/agents/tools/nodes-file-tool.js +197 -0
  7. package/dist/build-info.json +3 -3
  8. package/dist/cli/config-cli.js +60 -0
  9. package/dist/cron/cron-improvements.js +195 -0
  10. package/dist/discord/discord-improvements.js +167 -0
  11. package/dist/gateway/auth-rate-limit.js +19 -0
  12. package/dist/gateway/auth.js +41 -0
  13. package/dist/gateway/gateway-improvements.js +294 -0
  14. package/dist/gateway/node-command-policy.js +7 -2
  15. package/dist/infra/net/ssrf.js +15 -2
  16. package/dist/infra/shell-security.js +201 -0
  17. package/dist/memory/memory-improvements.js +239 -0
  18. package/dist/node-host/runner.js +146 -79
  19. package/dist/security/prototype-pollution.js +141 -0
  20. package/dist/security/webhook-security.js +253 -0
  21. package/dist/shared/net/ip.js +52 -1
  22. package/dist/slack/slack-improvements.js +225 -0
  23. package/dist/telegram/telegram-improvements.js +220 -0
  24. package/dist/ui-plugins/ui-plugins-improvements.js +191 -0
  25. package/docs/ANALISE_OPENCLAW_PROFISSIONAL.md +520 -0
  26. package/docs/competitive-analysis.md +421 -0
  27. package/docs/implementation-analysis.md +393 -0
  28. package/docs/plans/2026-03-11-file-operations-security-hardening.md +307 -0
  29. package/docs/plans/2026-03-11-integracao-projetos-poolbot.md +666 -0
  30. package/extensions/agency-agents/README.md +301 -0
  31. package/extensions/agency-agents/agents/CONTRIBUTING.md +353 -0
  32. package/extensions/agency-agents/agents/README.md +602 -0
  33. package/extensions/agency-agents/agents/design/design-brand-guardian.md +320 -0
  34. package/extensions/agency-agents/agents/design/design-image-prompt-engineer.md +234 -0
  35. package/extensions/agency-agents/agents/design/design-ui-designer.md +381 -0
  36. package/extensions/agency-agents/agents/design/design-ux-architect.md +467 -0
  37. package/extensions/agency-agents/agents/design/design-ux-researcher.md +327 -0
  38. package/extensions/agency-agents/agents/design/design-visual-storyteller.md +147 -0
  39. package/extensions/agency-agents/agents/design/design-whimsy-injector.md +436 -0
  40. package/extensions/agency-agents/agents/engineering/engineering-ai-engineer.md +144 -0
  41. package/extensions/agency-agents/agents/engineering/engineering-backend-architect.md +233 -0
  42. package/extensions/agency-agents/agents/engineering/engineering-devops-automator.md +374 -0
  43. package/extensions/agency-agents/agents/engineering/engineering-frontend-developer.md +223 -0
  44. package/extensions/agency-agents/agents/engineering/engineering-mobile-app-builder.md +491 -0
  45. package/extensions/agency-agents/agents/engineering/engineering-rapid-prototyper.md +460 -0
  46. package/extensions/agency-agents/agents/engineering/engineering-security-engineer.md +275 -0
  47. package/extensions/agency-agents/agents/engineering/engineering-senior-developer.md +174 -0
  48. package/extensions/agency-agents/agents/examples/README.md +48 -0
  49. package/extensions/agency-agents/agents/examples/nexus-spatial-discovery.md +852 -0
  50. package/extensions/agency-agents/agents/examples/workflow-landing-page.md +119 -0
  51. package/extensions/agency-agents/agents/examples/workflow-startup-mvp.md +155 -0
  52. package/extensions/agency-agents/agents/integrations/README.md +117 -0
  53. package/extensions/agency-agents/agents/integrations/aider/README.md +38 -0
  54. package/extensions/agency-agents/agents/integrations/antigravity/README.md +49 -0
  55. package/extensions/agency-agents/agents/integrations/claude-code/README.md +31 -0
  56. package/extensions/agency-agents/agents/integrations/cursor/README.md +38 -0
  57. package/extensions/agency-agents/agents/integrations/gemini-cli/README.md +36 -0
  58. package/extensions/agency-agents/agents/integrations/opencode/README.md +58 -0
  59. package/extensions/agency-agents/agents/integrations/windsurf/README.md +26 -0
  60. package/extensions/agency-agents/agents/marketing/marketing-app-store-optimizer.md +319 -0
  61. package/extensions/agency-agents/agents/marketing/marketing-content-creator.md +52 -0
  62. package/extensions/agency-agents/agents/marketing/marketing-growth-hacker.md +52 -0
  63. package/extensions/agency-agents/agents/marketing/marketing-instagram-curator.md +111 -0
  64. package/extensions/agency-agents/agents/marketing/marketing-reddit-community-builder.md +121 -0
  65. package/extensions/agency-agents/agents/marketing/marketing-social-media-strategist.md +123 -0
  66. package/extensions/agency-agents/agents/marketing/marketing-tiktok-strategist.md +123 -0
  67. package/extensions/agency-agents/agents/marketing/marketing-twitter-engager.md +124 -0
  68. package/extensions/agency-agents/agents/marketing/marketing-wechat-official-account.md +143 -0
  69. package/extensions/agency-agents/agents/marketing/marketing-xiaohongshu-specialist.md +136 -0
  70. package/extensions/agency-agents/agents/marketing/marketing-zhihu-strategist.md +160 -0
  71. package/extensions/agency-agents/agents/product/product-feedback-synthesizer.md +117 -0
  72. package/extensions/agency-agents/agents/product/product-sprint-prioritizer.md +152 -0
  73. package/extensions/agency-agents/agents/product/product-trend-researcher.md +157 -0
  74. package/extensions/agency-agents/agents/project-management/project-management-experiment-tracker.md +196 -0
  75. package/extensions/agency-agents/agents/project-management/project-management-project-shepherd.md +192 -0
  76. package/extensions/agency-agents/agents/project-management/project-management-studio-operations.md +198 -0
  77. package/extensions/agency-agents/agents/project-management/project-management-studio-producer.md +201 -0
  78. package/extensions/agency-agents/agents/project-management/project-manager-senior.md +133 -0
  79. package/extensions/agency-agents/agents/scripts/convert.sh +362 -0
  80. package/extensions/agency-agents/agents/scripts/install.sh +465 -0
  81. package/extensions/agency-agents/agents/scripts/lint-agents.sh +115 -0
  82. package/extensions/agency-agents/agents/spatial-computing/macos-spatial-metal-engineer.md +335 -0
  83. package/extensions/agency-agents/agents/spatial-computing/terminal-integration-specialist.md +68 -0
  84. package/extensions/agency-agents/agents/spatial-computing/visionos-spatial-engineer.md +52 -0
  85. package/extensions/agency-agents/agents/spatial-computing/xr-cockpit-interaction-specialist.md +30 -0
  86. package/extensions/agency-agents/agents/spatial-computing/xr-immersive-developer.md +30 -0
  87. package/extensions/agency-agents/agents/spatial-computing/xr-interface-architect.md +30 -0
  88. package/extensions/agency-agents/agents/specialized/agentic-identity-trust.md +367 -0
  89. package/extensions/agency-agents/agents/specialized/agents-orchestrator.md +365 -0
  90. package/extensions/agency-agents/agents/specialized/data-analytics-reporter.md +52 -0
  91. package/extensions/agency-agents/agents/specialized/data-consolidation-agent.md +58 -0
  92. package/extensions/agency-agents/agents/specialized/lsp-index-engineer.md +312 -0
  93. package/extensions/agency-agents/agents/specialized/report-distribution-agent.md +63 -0
  94. package/extensions/agency-agents/agents/specialized/sales-data-extraction-agent.md +65 -0
  95. package/extensions/agency-agents/agents/strategy/EXECUTIVE-BRIEF.md +95 -0
  96. package/extensions/agency-agents/agents/strategy/QUICKSTART.md +194 -0
  97. package/extensions/agency-agents/agents/strategy/coordination/agent-activation-prompts.md +401 -0
  98. package/extensions/agency-agents/agents/strategy/coordination/handoff-templates.md +357 -0
  99. package/extensions/agency-agents/agents/strategy/nexus-strategy.md +1110 -0
  100. package/extensions/agency-agents/agents/strategy/playbooks/phase-0-discovery.md +178 -0
  101. package/extensions/agency-agents/agents/strategy/playbooks/phase-1-strategy.md +238 -0
  102. package/extensions/agency-agents/agents/strategy/playbooks/phase-2-foundation.md +278 -0
  103. package/extensions/agency-agents/agents/strategy/playbooks/phase-3-build.md +286 -0
  104. package/extensions/agency-agents/agents/strategy/playbooks/phase-4-hardening.md +332 -0
  105. package/extensions/agency-agents/agents/strategy/playbooks/phase-5-launch.md +277 -0
  106. package/extensions/agency-agents/agents/strategy/playbooks/phase-6-operate.md +318 -0
  107. package/extensions/agency-agents/agents/strategy/runbooks/scenario-enterprise-feature.md +157 -0
  108. package/extensions/agency-agents/agents/strategy/runbooks/scenario-incident-response.md +217 -0
  109. package/extensions/agency-agents/agents/strategy/runbooks/scenario-marketing-campaign.md +187 -0
  110. package/extensions/agency-agents/agents/strategy/runbooks/scenario-startup-mvp.md +154 -0
  111. package/extensions/agency-agents/agents/support/support-analytics-reporter.md +363 -0
  112. package/extensions/agency-agents/agents/support/support-executive-summary-generator.md +210 -0
  113. package/extensions/agency-agents/agents/support/support-finance-tracker.md +440 -0
  114. package/extensions/agency-agents/agents/support/support-infrastructure-maintainer.md +616 -0
  115. package/extensions/agency-agents/agents/support/support-legal-compliance-checker.md +586 -0
  116. package/extensions/agency-agents/agents/support/support-support-responder.md +583 -0
  117. package/extensions/agency-agents/agents/testing/testing-accessibility-auditor.md +313 -0
  118. package/extensions/agency-agents/agents/testing/testing-api-tester.md +304 -0
  119. package/extensions/agency-agents/agents/testing/testing-evidence-collector.md +208 -0
  120. package/extensions/agency-agents/agents/testing/testing-performance-benchmarker.md +266 -0
  121. package/extensions/agency-agents/agents/testing/testing-reality-checker.md +236 -0
  122. package/extensions/agency-agents/agents/testing/testing-test-results-analyzer.md +303 -0
  123. package/extensions/agency-agents/agents/testing/testing-tool-evaluator.md +392 -0
  124. package/extensions/agency-agents/agents/testing/testing-workflow-optimizer.md +448 -0
  125. package/extensions/agency-agents/index.ts +733 -0
  126. package/extensions/agency-agents/node_modules/.bin/jiti +21 -0
  127. package/extensions/agency-agents/node_modules/.bin/tsc +21 -0
  128. package/extensions/agency-agents/node_modules/.bin/tsserver +21 -0
  129. package/extensions/agency-agents/node_modules/.bin/tsx +21 -0
  130. package/extensions/agency-agents/node_modules/.bin/vite +21 -0
  131. package/extensions/agency-agents/node_modules/.bin/vitest +21 -0
  132. package/extensions/agency-agents/node_modules/.bin/yaml +21 -0
  133. package/extensions/agency-agents/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  134. package/extensions/agency-agents/package.json +25 -0
  135. package/extensions/agency-agents/poolbot.plugin.json +11 -0
  136. package/extensions/agency-agents/src/AgencyAgentsService.test.ts +443 -0
  137. package/extensions/agency-agents/src/AgencyAgentsService.ts +288 -0
  138. package/extensions/agency-agents/src/types.ts +147 -0
  139. package/extensions/agency-agents/vitest.config.ts +8 -0
  140. package/extensions/hexstrike-ai/README.md +98 -0
  141. package/extensions/hexstrike-ai/node_modules/.bin/tsc +21 -0
  142. package/extensions/hexstrike-ai/node_modules/.bin/tsserver +21 -0
  143. package/extensions/hexstrike-ai/package.json +29 -0
  144. package/extensions/hexstrike-ai/poolbot.plugin.json +31 -0
  145. package/extensions/hexstrike-ai/src/client.ts +91 -0
  146. package/extensions/hexstrike-ai/src/index.ts +170 -0
  147. package/extensions/hexstrike-ai/src/server/hexstrike_mcp.py +5470 -0
  148. package/extensions/hexstrike-ai/src/server/hexstrike_server.py +17289 -0
  149. package/extensions/hexstrike-ai/src/server/requirements.txt +84 -0
  150. package/extensions/hexstrike-ai/src/server-manager.ts +83 -0
  151. package/extensions/hexstrike-ai/tsconfig.json +20 -0
  152. package/extensions/page-agent/README.md +159 -0
  153. package/extensions/page-agent/index.ts +595 -0
  154. package/extensions/page-agent/node_modules/.bin/jiti +21 -0
  155. package/extensions/page-agent/node_modules/.bin/playwright +21 -0
  156. package/extensions/page-agent/node_modules/.bin/tsc +21 -0
  157. package/extensions/page-agent/node_modules/.bin/tsserver +21 -0
  158. package/extensions/page-agent/node_modules/.bin/tsx +21 -0
  159. package/extensions/page-agent/node_modules/.bin/vitest +21 -0
  160. package/extensions/page-agent/node_modules/.bin/yaml +21 -0
  161. package/extensions/page-agent/package.json +43 -0
  162. package/extensions/page-agent/poolbot.plugin.json +24 -0
  163. package/extensions/page-agent/src/PageAgentService.test.ts +517 -0
  164. package/extensions/page-agent/src/PageAgentService.ts +636 -0
  165. package/extensions/page-agent/src/PoolBotPageController.test.ts +358 -0
  166. package/extensions/page-agent/src/PoolBotPageController.ts +245 -0
  167. package/extensions/page-agent/src/index.ts +20 -0
  168. package/extensions/page-agent/src/tools.test.ts +231 -0
  169. package/extensions/page-agent/src/tools.ts +167 -0
  170. package/extensions/page-agent/src/types.ts +198 -0
  171. package/extensions/xyops/README.md +227 -0
  172. package/extensions/xyops/index.ts +342 -0
  173. package/extensions/xyops/node_modules/.bin/jiti +21 -0
  174. package/extensions/xyops/node_modules/.bin/tsc +21 -0
  175. package/extensions/xyops/node_modules/.bin/tsserver +21 -0
  176. package/extensions/xyops/node_modules/.bin/tsx +21 -0
  177. package/extensions/xyops/node_modules/.bin/vitest +21 -0
  178. package/extensions/xyops/node_modules/.bin/yaml +21 -0
  179. package/extensions/xyops/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  180. package/extensions/xyops/package.json +39 -0
  181. package/extensions/xyops/poolbot.plugin.json +21 -0
  182. package/extensions/xyops/src/client.test.ts +467 -0
  183. package/extensions/xyops/src/client.ts +157 -0
  184. package/extensions/xyops/src/types.ts +147 -0
  185. package/extensions/xyops/vitest.config.ts +8 -0
  186. package/package.json +1 -1
@@ -0,0 +1,91 @@
1
+ export interface ScanTarget {
2
+ target: string;
3
+ scanners?: string[];
4
+ options?: Record<string, unknown>;
5
+ }
6
+
7
+ export interface ScanResult {
8
+ id: string;
9
+ status: "pending" | "running" | "completed" | "failed";
10
+ findings: Array<{
11
+ severity: "info" | "low" | "medium" | "high" | "critical";
12
+ title: string;
13
+ description: string;
14
+ remediation?: string;
15
+ }>;
16
+ metadata: {
17
+ startedAt: string;
18
+ completedAt?: string;
19
+ duration?: number;
20
+ };
21
+ }
22
+
23
+ export interface HealthStatus {
24
+ status: string;
25
+ version?: string;
26
+ uptime?: number;
27
+ }
28
+
29
+ export interface ToolsResponse {
30
+ tools: string[];
31
+ }
32
+
33
+ export interface ScanResponse {
34
+ id: string;
35
+ }
36
+
37
+ export class HexStrikeClient {
38
+ private baseUrl: string;
39
+ private token?: string;
40
+
41
+ constructor(config: { host?: string; port?: number; token?: string } = {}) {
42
+ const host = config.host ?? "127.0.0.1";
43
+ const port = config.port ?? 8888;
44
+ this.baseUrl = `http://${host}:${port}`;
45
+ this.token = config.token;
46
+ }
47
+
48
+ async health(): Promise<HealthStatus> {
49
+ const response = await fetch(`${this.baseUrl}/health`);
50
+ if (!response.ok) throw new Error(`Health check failed: ${response.status}`);
51
+ return response.json() as Promise<HealthStatus>;
52
+ }
53
+
54
+ async getTools(): Promise<string[]> {
55
+ const response = await fetch(`${this.baseUrl}/api/tools`, {
56
+ headers: this.getHeaders(),
57
+ });
58
+ if (!response.ok) throw new Error(`Failed to get tools: ${response.status}`);
59
+ const data = (await response.json()) as ToolsResponse;
60
+ return data.tools ?? [];
61
+ }
62
+
63
+ async scan(target: ScanTarget): Promise<{ scanId: string }> {
64
+ const response = await fetch(`${this.baseUrl}/api/scan`, {
65
+ method: "POST",
66
+ headers: this.getHeaders(),
67
+ body: JSON.stringify(target),
68
+ });
69
+ if (!response.ok) throw new Error(`Scan failed: ${response.status}`);
70
+ const data = (await response.json()) as ScanResponse;
71
+ return { scanId: data.id };
72
+ }
73
+
74
+ async getScanResult(scanId: string): Promise<ScanResult> {
75
+ const response = await fetch(`${this.baseUrl}/api/scan/${scanId}`, {
76
+ headers: this.getHeaders(),
77
+ });
78
+ if (!response.ok) throw new Error(`Failed to get scan: ${response.status}`);
79
+ return response.json() as Promise<ScanResult>;
80
+ }
81
+
82
+ private getHeaders(): Record<string, string> {
83
+ const headers: Record<string, string> = {
84
+ "Content-Type": "application/json",
85
+ };
86
+ if (this.token) {
87
+ headers["Authorization"] = `Bearer ${this.token}`;
88
+ }
89
+ return headers;
90
+ }
91
+ }
@@ -0,0 +1,170 @@
1
+ import type { PoolBotPlugin } from "poolbot/plugin-sdk";
2
+ import { HexStrikeServerManager } from "./server-manager.js";
3
+ import { HexStrikeClient } from "./client.js";
4
+
5
+ interface HexStrikeConfig {
6
+ port?: number;
7
+ host?: string;
8
+ autoStart?: boolean;
9
+ token?: string;
10
+ pythonPath?: string;
11
+ }
12
+
13
+ export default async function createPlugin(
14
+ ctx: PoolBotPlugin.Context
15
+ ): Promise<PoolBotPlugin.Instance> {
16
+ const config = ctx.config as HexStrikeConfig;
17
+ const serverManager = new HexStrikeServerManager({
18
+ port: config.port,
19
+ host: config.host,
20
+ pythonPath: config.pythonPath,
21
+ });
22
+
23
+ const client = new HexStrikeClient({
24
+ host: config.host,
25
+ port: config.port,
26
+ token: config.token,
27
+ });
28
+
29
+ // Auto-start server if configured
30
+ if (config.autoStart !== false) {
31
+ ctx.logger.info("Starting HexStrike AI server...");
32
+ try {
33
+ await serverManager.start();
34
+ ctx.logger.info("HexStrike AI server started successfully");
35
+ } catch (err) {
36
+ ctx.logger.error("Failed to start HexStrike AI server:", err);
37
+ throw err;
38
+ }
39
+ }
40
+
41
+ // Register CLI commands
42
+ ctx.cli
43
+ .command("security.status")
44
+ .description("Check HexStrike AI server status")
45
+ .action(async () => {
46
+ try {
47
+ const health = await client.health();
48
+ console.log("✅ HexStrike AI is running");
49
+ console.log(" Status:", health.status);
50
+ console.log(" Version:", health.version ?? "unknown");
51
+ console.log(" Uptime:", health.uptime ? `${Math.floor(health.uptime / 60)}m` : "N/A");
52
+ } catch (err) {
53
+ console.error("❌ HexStrike AI is not running");
54
+ console.error(" Error:", err instanceof Error ? err.message : String(err));
55
+ process.exit(1);
56
+ }
57
+ });
58
+
59
+ ctx.cli
60
+ .command("security.tools")
61
+ .description("List available security scanners")
62
+ .action(async () => {
63
+ try {
64
+ const tools = await client.getTools();
65
+ console.log("🔧 Available security scanners:");
66
+ for (const tool of tools) {
67
+ console.log(` • ${tool}`);
68
+ }
69
+ console.log(`\nTotal: ${tools.length} scanners`);
70
+ } catch (err) {
71
+ console.error("❌ Failed to get tools:", err instanceof Error ? err.message : String(err));
72
+ process.exit(1);
73
+ }
74
+ });
75
+
76
+ ctx.cli
77
+ .command("security.scan")
78
+ .description("Run security scan on target")
79
+ .argument("<target>", "Target URL or IP to scan")
80
+ .option("-s, --scanners <scanners>", "Comma-separated list of scanners (default: all)")
81
+ .option("-o, --output <file>", "Save report to file")
82
+ .action(async (target: string, options: { scanners?: string; output?: string }) => {
83
+ try {
84
+ const scanners = options.scanners?.split(",").map(s => s.trim()).filter(Boolean);
85
+ console.log(`🚀 Starting security scan on ${target}...`);
86
+ if (scanners) {
87
+ console.log(` Scanners: ${scanners.join(", ")}`);
88
+ }
89
+
90
+ const scan = await client.scan({
91
+ target,
92
+ scanners,
93
+ });
94
+
95
+ console.log(`✅ Scan started: ${scan.scanId}`);
96
+ console.log(` Use 'poolbot security report ${scan.scanId}' to check results`);
97
+
98
+ if (options.output) {
99
+ // TODO: Poll for results and save to file
100
+ console.log(` Report will be saved to: ${options.output}`);
101
+ }
102
+ } catch (err) {
103
+ console.error("❌ Scan failed:", err instanceof Error ? err.message : String(err));
104
+ process.exit(1);
105
+ }
106
+ });
107
+
108
+ ctx.cli
109
+ .command("security.report")
110
+ .description("Get security scan report")
111
+ .argument("<scan-id>", "Scan ID from security scan command")
112
+ .option("-f, --format <format>", "Output format: json, table (default: table)")
113
+ .action(async (scanId: string, options: { format?: string }) => {
114
+ try {
115
+ const result = await client.getScanResult(scanId);
116
+ const format = options.format ?? "table";
117
+
118
+ if (format === "json") {
119
+ console.log(JSON.stringify(result, null, 2));
120
+ } else {
121
+ console.log(`📊 Scan Report: ${scanId}`);
122
+ console.log(` Status: ${result.status}`);
123
+ console.log(` Started: ${result.metadata.startedAt}`);
124
+ if (result.metadata.completedAt) {
125
+ console.log(` Completed: ${result.metadata.completedAt}`);
126
+ }
127
+
128
+ if (result.findings.length > 0) {
129
+ console.log(`\n🔍 Findings (${result.findings.length}):`);
130
+ for (const finding of result.findings) {
131
+ const icon = {
132
+ critical: "🔴",
133
+ high: "🟠",
134
+ medium: "🟡",
135
+ low: "🟢",
136
+ info: "⚪",
137
+ }[finding.severity] ?? "⚪";
138
+ console.log(` ${icon} [${finding.severity.toUpperCase()}] ${finding.title}`);
139
+ }
140
+ } else {
141
+ console.log("\n✅ No findings detected");
142
+ }
143
+ }
144
+ } catch (err) {
145
+ console.error("❌ Failed to get report:", err instanceof Error ? err.message : String(err));
146
+ process.exit(1);
147
+ }
148
+ });
149
+
150
+ ctx.cli
151
+ .command("security.stop")
152
+ .description("Stop HexStrike AI server")
153
+ .action(async () => {
154
+ ctx.logger.info("Stopping HexStrike AI server...");
155
+ await serverManager.stop();
156
+ console.log("✅ HexStrike AI server stopped");
157
+ });
158
+
159
+ return {
160
+ name: "hexstrike-ai",
161
+ version: "2026.3.13",
162
+ async onShutdown() {
163
+ ctx.logger.info("Stopping HexStrike AI server...");
164
+ await serverManager.stop();
165
+ },
166
+ };
167
+ }
168
+
169
+ export { HexStrikeServerManager, HexStrikeClient };
170
+ export type { HexStrikeConfig };