@poolzin/pool-bot 2026.3.11 → 2026.3.14
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.
- package/CHANGELOG.md +121 -0
- package/dist/.buildstamp +1 -1
- package/dist/agents/checkpoint-manager.js +291 -0
- package/dist/agents/poolbot-tools.js +5 -0
- package/dist/agents/subagent-announce-reliability.js +160 -0
- package/dist/agents/tool-result-truncation.js +299 -0
- package/dist/agents/tools/nodes-file-tool.js +197 -0
- package/dist/build-info.json +3 -3
- package/dist/cli/config-cli.js +60 -0
- package/dist/cron/cron-improvements.js +195 -0
- package/dist/discord/discord-improvements.js +167 -0
- package/dist/gateway/auth-rate-limit.js +19 -0
- package/dist/gateway/auth.js +41 -0
- package/dist/gateway/gateway-improvements.js +294 -0
- package/dist/gateway/node-command-policy.js +7 -2
- package/dist/infra/net/ssrf.js +15 -2
- package/dist/infra/shell-security.js +201 -0
- package/dist/memory/memory-improvements.js +239 -0
- package/dist/node-host/runner.js +146 -79
- package/dist/security/prototype-pollution.js +141 -0
- package/dist/security/webhook-security.js +253 -0
- package/dist/shared/net/ip.js +52 -1
- package/dist/slack/slack-improvements.js +225 -0
- package/dist/telegram/telegram-improvements.js +220 -0
- package/dist/ui-plugins/ui-plugins-improvements.js +191 -0
- package/docs/ANALISE_OPENCLAW_PROFISSIONAL.md +520 -0
- package/docs/competitive-analysis.md +421 -0
- package/docs/implementation-analysis.md +393 -0
- package/docs/plans/2026-03-11-file-operations-security-hardening.md +307 -0
- package/docs/plans/2026-03-11-integracao-projetos-poolbot.md +666 -0
- package/docs/refactor/plugin-development-guide.md +281 -0
- package/extensions/agency-agents/README.md +301 -0
- package/extensions/agency-agents/agents/CONTRIBUTING.md +353 -0
- package/extensions/agency-agents/agents/README.md +602 -0
- package/extensions/agency-agents/agents/design/design-brand-guardian.md +320 -0
- package/extensions/agency-agents/agents/design/design-image-prompt-engineer.md +234 -0
- package/extensions/agency-agents/agents/design/design-ui-designer.md +381 -0
- package/extensions/agency-agents/agents/design/design-ux-architect.md +467 -0
- package/extensions/agency-agents/agents/design/design-ux-researcher.md +327 -0
- package/extensions/agency-agents/agents/design/design-visual-storyteller.md +147 -0
- package/extensions/agency-agents/agents/design/design-whimsy-injector.md +436 -0
- package/extensions/agency-agents/agents/engineering/engineering-ai-engineer.md +144 -0
- package/extensions/agency-agents/agents/engineering/engineering-backend-architect.md +233 -0
- package/extensions/agency-agents/agents/engineering/engineering-devops-automator.md +374 -0
- package/extensions/agency-agents/agents/engineering/engineering-frontend-developer.md +223 -0
- package/extensions/agency-agents/agents/engineering/engineering-mobile-app-builder.md +491 -0
- package/extensions/agency-agents/agents/engineering/engineering-rapid-prototyper.md +460 -0
- package/extensions/agency-agents/agents/engineering/engineering-security-engineer.md +275 -0
- package/extensions/agency-agents/agents/engineering/engineering-senior-developer.md +174 -0
- package/extensions/agency-agents/agents/examples/README.md +48 -0
- package/extensions/agency-agents/agents/examples/nexus-spatial-discovery.md +852 -0
- package/extensions/agency-agents/agents/examples/workflow-landing-page.md +119 -0
- package/extensions/agency-agents/agents/examples/workflow-startup-mvp.md +155 -0
- package/extensions/agency-agents/agents/integrations/README.md +117 -0
- package/extensions/agency-agents/agents/integrations/aider/README.md +38 -0
- package/extensions/agency-agents/agents/integrations/antigravity/README.md +49 -0
- package/extensions/agency-agents/agents/integrations/claude-code/README.md +31 -0
- package/extensions/agency-agents/agents/integrations/cursor/README.md +38 -0
- package/extensions/agency-agents/agents/integrations/gemini-cli/README.md +36 -0
- package/extensions/agency-agents/agents/integrations/opencode/README.md +58 -0
- package/extensions/agency-agents/agents/integrations/windsurf/README.md +26 -0
- package/extensions/agency-agents/agents/marketing/marketing-app-store-optimizer.md +319 -0
- package/extensions/agency-agents/agents/marketing/marketing-content-creator.md +52 -0
- package/extensions/agency-agents/agents/marketing/marketing-growth-hacker.md +52 -0
- package/extensions/agency-agents/agents/marketing/marketing-instagram-curator.md +111 -0
- package/extensions/agency-agents/agents/marketing/marketing-reddit-community-builder.md +121 -0
- package/extensions/agency-agents/agents/marketing/marketing-social-media-strategist.md +123 -0
- package/extensions/agency-agents/agents/marketing/marketing-tiktok-strategist.md +123 -0
- package/extensions/agency-agents/agents/marketing/marketing-twitter-engager.md +124 -0
- package/extensions/agency-agents/agents/marketing/marketing-wechat-official-account.md +143 -0
- package/extensions/agency-agents/agents/marketing/marketing-xiaohongshu-specialist.md +136 -0
- package/extensions/agency-agents/agents/marketing/marketing-zhihu-strategist.md +160 -0
- package/extensions/agency-agents/agents/product/product-feedback-synthesizer.md +117 -0
- package/extensions/agency-agents/agents/product/product-sprint-prioritizer.md +152 -0
- package/extensions/agency-agents/agents/product/product-trend-researcher.md +157 -0
- package/extensions/agency-agents/agents/project-management/project-management-experiment-tracker.md +196 -0
- package/extensions/agency-agents/agents/project-management/project-management-project-shepherd.md +192 -0
- package/extensions/agency-agents/agents/project-management/project-management-studio-operations.md +198 -0
- package/extensions/agency-agents/agents/project-management/project-management-studio-producer.md +201 -0
- package/extensions/agency-agents/agents/project-management/project-manager-senior.md +133 -0
- package/extensions/agency-agents/agents/scripts/convert.sh +362 -0
- package/extensions/agency-agents/agents/scripts/install.sh +465 -0
- package/extensions/agency-agents/agents/scripts/lint-agents.sh +115 -0
- package/extensions/agency-agents/agents/spatial-computing/macos-spatial-metal-engineer.md +335 -0
- package/extensions/agency-agents/agents/spatial-computing/terminal-integration-specialist.md +68 -0
- package/extensions/agency-agents/agents/spatial-computing/visionos-spatial-engineer.md +52 -0
- package/extensions/agency-agents/agents/spatial-computing/xr-cockpit-interaction-specialist.md +30 -0
- package/extensions/agency-agents/agents/spatial-computing/xr-immersive-developer.md +30 -0
- package/extensions/agency-agents/agents/spatial-computing/xr-interface-architect.md +30 -0
- package/extensions/agency-agents/agents/specialized/agentic-identity-trust.md +367 -0
- package/extensions/agency-agents/agents/specialized/agents-orchestrator.md +365 -0
- package/extensions/agency-agents/agents/specialized/data-analytics-reporter.md +52 -0
- package/extensions/agency-agents/agents/specialized/data-consolidation-agent.md +58 -0
- package/extensions/agency-agents/agents/specialized/lsp-index-engineer.md +312 -0
- package/extensions/agency-agents/agents/specialized/report-distribution-agent.md +63 -0
- package/extensions/agency-agents/agents/specialized/sales-data-extraction-agent.md +65 -0
- package/extensions/agency-agents/agents/strategy/EXECUTIVE-BRIEF.md +95 -0
- package/extensions/agency-agents/agents/strategy/QUICKSTART.md +194 -0
- package/extensions/agency-agents/agents/strategy/coordination/agent-activation-prompts.md +401 -0
- package/extensions/agency-agents/agents/strategy/coordination/handoff-templates.md +357 -0
- package/extensions/agency-agents/agents/strategy/nexus-strategy.md +1110 -0
- package/extensions/agency-agents/agents/strategy/playbooks/phase-0-discovery.md +178 -0
- package/extensions/agency-agents/agents/strategy/playbooks/phase-1-strategy.md +238 -0
- package/extensions/agency-agents/agents/strategy/playbooks/phase-2-foundation.md +278 -0
- package/extensions/agency-agents/agents/strategy/playbooks/phase-3-build.md +286 -0
- package/extensions/agency-agents/agents/strategy/playbooks/phase-4-hardening.md +332 -0
- package/extensions/agency-agents/agents/strategy/playbooks/phase-5-launch.md +277 -0
- package/extensions/agency-agents/agents/strategy/playbooks/phase-6-operate.md +318 -0
- package/extensions/agency-agents/agents/strategy/runbooks/scenario-enterprise-feature.md +157 -0
- package/extensions/agency-agents/agents/strategy/runbooks/scenario-incident-response.md +217 -0
- package/extensions/agency-agents/agents/strategy/runbooks/scenario-marketing-campaign.md +187 -0
- package/extensions/agency-agents/agents/strategy/runbooks/scenario-startup-mvp.md +154 -0
- package/extensions/agency-agents/agents/support/support-analytics-reporter.md +363 -0
- package/extensions/agency-agents/agents/support/support-executive-summary-generator.md +210 -0
- package/extensions/agency-agents/agents/support/support-finance-tracker.md +440 -0
- package/extensions/agency-agents/agents/support/support-infrastructure-maintainer.md +616 -0
- package/extensions/agency-agents/agents/support/support-legal-compliance-checker.md +586 -0
- package/extensions/agency-agents/agents/support/support-support-responder.md +583 -0
- package/extensions/agency-agents/agents/testing/testing-accessibility-auditor.md +313 -0
- package/extensions/agency-agents/agents/testing/testing-api-tester.md +304 -0
- package/extensions/agency-agents/agents/testing/testing-evidence-collector.md +208 -0
- package/extensions/agency-agents/agents/testing/testing-performance-benchmarker.md +266 -0
- package/extensions/agency-agents/agents/testing/testing-reality-checker.md +236 -0
- package/extensions/agency-agents/agents/testing/testing-test-results-analyzer.md +303 -0
- package/extensions/agency-agents/agents/testing/testing-tool-evaluator.md +392 -0
- package/extensions/agency-agents/agents/testing/testing-workflow-optimizer.md +448 -0
- package/extensions/agency-agents/index.ts +733 -0
- package/extensions/agency-agents/node_modules/.bin/jiti +21 -0
- package/extensions/agency-agents/node_modules/.bin/tsc +21 -0
- package/extensions/agency-agents/node_modules/.bin/tsserver +21 -0
- package/extensions/agency-agents/node_modules/.bin/tsx +21 -0
- package/extensions/agency-agents/node_modules/.bin/vite +21 -0
- package/extensions/agency-agents/node_modules/.bin/vitest +21 -0
- package/extensions/agency-agents/node_modules/.bin/yaml +21 -0
- package/extensions/agency-agents/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/extensions/agency-agents/package.json +25 -0
- package/extensions/agency-agents/src/AgencyAgentsService.test.ts +443 -0
- package/extensions/agency-agents/src/AgencyAgentsService.ts +288 -0
- package/extensions/agency-agents/src/types.ts +147 -0
- package/extensions/agency-agents/vitest.config.ts +8 -0
- package/extensions/hexstrike-ai/README.md +98 -0
- package/extensions/hexstrike-ai/node_modules/.bin/tsc +21 -0
- package/extensions/hexstrike-ai/node_modules/.bin/tsserver +21 -0
- package/extensions/hexstrike-ai/package.json +29 -0
- package/extensions/hexstrike-ai/poolbot.plugin.json +31 -0
- package/extensions/hexstrike-ai/src/client.ts +91 -0
- package/extensions/hexstrike-ai/src/index.ts +170 -0
- package/extensions/hexstrike-ai/src/server/hexstrike_mcp.py +5470 -0
- package/extensions/hexstrike-ai/src/server/hexstrike_server.py +17289 -0
- package/extensions/hexstrike-ai/src/server/requirements.txt +84 -0
- package/extensions/hexstrike-ai/src/server-manager.ts +83 -0
- package/extensions/hexstrike-ai/tsconfig.json +20 -0
- package/extensions/hexstrike-bridge/package.json +1 -1
- package/extensions/hexstrike-bridge/poolbot.plugin.json +23 -0
- package/extensions/mcp-server/poolbot.plugin.json +10 -0
- package/extensions/page-agent/README.md +159 -0
- package/extensions/page-agent/index.ts +595 -0
- package/extensions/page-agent/node_modules/.bin/jiti +21 -0
- package/extensions/page-agent/node_modules/.bin/playwright +21 -0
- package/extensions/page-agent/node_modules/.bin/tsc +21 -0
- package/extensions/page-agent/node_modules/.bin/tsserver +21 -0
- package/extensions/page-agent/node_modules/.bin/tsx +21 -0
- package/extensions/page-agent/node_modules/.bin/vitest +21 -0
- package/extensions/page-agent/node_modules/.bin/yaml +21 -0
- package/extensions/page-agent/package.json +43 -0
- package/extensions/page-agent/src/PageAgentService.test.ts +517 -0
- package/extensions/page-agent/src/PageAgentService.ts +636 -0
- package/extensions/page-agent/src/PoolBotPageController.test.ts +358 -0
- package/extensions/page-agent/src/PoolBotPageController.ts +245 -0
- package/extensions/page-agent/src/index.ts +20 -0
- package/extensions/page-agent/src/tools.test.ts +231 -0
- package/extensions/page-agent/src/tools.ts +167 -0
- package/extensions/page-agent/src/types.ts +198 -0
- package/extensions/template/README.md +101 -0
- package/extensions/template/index.ts +38 -0
- package/extensions/template/package.json +15 -0
- package/extensions/template/poolbot.plugin.json +10 -0
- package/extensions/xyops/README.md +227 -0
- package/extensions/xyops/index.ts +342 -0
- package/extensions/xyops/node_modules/.bin/jiti +21 -0
- package/extensions/xyops/node_modules/.bin/tsc +21 -0
- package/extensions/xyops/node_modules/.bin/tsserver +21 -0
- package/extensions/xyops/node_modules/.bin/tsx +21 -0
- package/extensions/xyops/node_modules/.bin/vitest +21 -0
- package/extensions/xyops/node_modules/.bin/yaml +21 -0
- package/extensions/xyops/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/extensions/xyops/package.json +39 -0
- package/extensions/xyops/src/client.test.ts +467 -0
- package/extensions/xyops/src/client.ts +157 -0
- package/extensions/xyops/src/types.ts +147 -0
- package/extensions/xyops/vitest.config.ts +8 -0
- package/package.json +1 -1
- package/extensions/mavalie/README.md +0 -97
- package/extensions/mavalie/package.json +0 -15
- package/extensions/mavalie/src/index.ts +0 -62
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
XYOpsConfig,
|
|
3
|
+
XYOpsJob,
|
|
4
|
+
XYOpsSchedule,
|
|
5
|
+
XYOpsEvent,
|
|
6
|
+
XYOpsPlugin,
|
|
7
|
+
XYOpsStatus,
|
|
8
|
+
} from "./types.js";
|
|
9
|
+
|
|
10
|
+
export class XYOpsClient {
|
|
11
|
+
private baseUrl: string;
|
|
12
|
+
private apiKey?: string;
|
|
13
|
+
private timeout: number;
|
|
14
|
+
|
|
15
|
+
constructor(config: XYOpsConfig) {
|
|
16
|
+
this.baseUrl = config.baseUrl.replace(/\/$/, "");
|
|
17
|
+
this.apiKey = config.apiKey;
|
|
18
|
+
this.timeout = config.timeout ?? 30000;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
private async request<T>(
|
|
22
|
+
method: string,
|
|
23
|
+
path: string,
|
|
24
|
+
body?: unknown
|
|
25
|
+
): Promise<T> {
|
|
26
|
+
const url = `${this.baseUrl}/api${path}`;
|
|
27
|
+
const headers: Record<string, string> = {
|
|
28
|
+
"Content-Type": "application/json",
|
|
29
|
+
Accept: "application/json",
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
if (this.apiKey) {
|
|
33
|
+
headers["Authorization"] = `Bearer ${this.apiKey}`;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const controller = new AbortController();
|
|
37
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
38
|
+
|
|
39
|
+
try {
|
|
40
|
+
const response = await fetch(url, {
|
|
41
|
+
method,
|
|
42
|
+
headers,
|
|
43
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
44
|
+
signal: controller.signal,
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
clearTimeout(timeoutId);
|
|
48
|
+
|
|
49
|
+
if (!response.ok) {
|
|
50
|
+
const errorText = await response.text();
|
|
51
|
+
throw new Error(
|
|
52
|
+
`XYOps API error: ${response.status} ${response.statusText} - ${errorText}`
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Handle empty responses
|
|
57
|
+
const contentType = response.headers.get("content-type");
|
|
58
|
+
if (!contentType?.includes("application/json")) {
|
|
59
|
+
return undefined as T;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return (await response.json()) as T;
|
|
63
|
+
} catch (error) {
|
|
64
|
+
clearTimeout(timeoutId);
|
|
65
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
66
|
+
throw new Error(`XYOps request timeout after ${this.timeout}ms`);
|
|
67
|
+
}
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// Jobs
|
|
73
|
+
async listJobs(offset = 0, limit = 50): Promise<XYOpsJob[]> {
|
|
74
|
+
return this.request<XYOpsJob[]>(
|
|
75
|
+
"GET",
|
|
76
|
+
`/jobs?offset=${offset}&limit=${limit}`
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
async getJob(jobId: string): Promise<XYOpsJob> {
|
|
81
|
+
return this.request<XYOpsJob>("GET", `/jobs/${jobId}`);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
async createJob(
|
|
85
|
+
jobData: Omit<XYOpsJob, "id" | "created" | "modified">
|
|
86
|
+
): Promise<XYOpsJob> {
|
|
87
|
+
return this.request<XYOpsJob>("POST", "/jobs", jobData);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
async updateJob(
|
|
91
|
+
jobId: string,
|
|
92
|
+
updates: Partial<Omit<XYOpsJob, "id" | "created" | "modified">>
|
|
93
|
+
): Promise<XYOpsJob> {
|
|
94
|
+
return this.request<XYOpsJob>("PUT", `/jobs/${jobId}`, updates);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
async deleteJob(jobId: string): Promise<void> {
|
|
98
|
+
await this.request<void>("DELETE", `/jobs/${jobId}`);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
async runJob(
|
|
102
|
+
jobId: string,
|
|
103
|
+
params?: Record<string, unknown>
|
|
104
|
+
): Promise<{ eventId: string }> {
|
|
105
|
+
return this.request<{ eventId: string }>(
|
|
106
|
+
"POST",
|
|
107
|
+
`/jobs/${jobId}/run`,
|
|
108
|
+
params ? { params } : undefined
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Schedules
|
|
113
|
+
async listSchedules(jobId?: string): Promise<XYOpsSchedule[]> {
|
|
114
|
+
const query = jobId ? `?jobId=${jobId}` : "";
|
|
115
|
+
return this.request<XYOpsSchedule[]>("GET", `/schedules${query}`);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
async createSchedule(
|
|
119
|
+
scheduleData: Omit<XYOpsSchedule, "id" | "created">
|
|
120
|
+
): Promise<XYOpsSchedule> {
|
|
121
|
+
return this.request<XYOpsSchedule>("POST", "/schedules", scheduleData);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
async deleteSchedule(scheduleId: string): Promise<void> {
|
|
125
|
+
await this.request<void>("DELETE", `/schedules/${scheduleId}`);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Events
|
|
129
|
+
async listEvents(
|
|
130
|
+
jobId?: string,
|
|
131
|
+
limit = 50,
|
|
132
|
+
offset = 0
|
|
133
|
+
): Promise<XYOpsEvent[]> {
|
|
134
|
+
const params = new URLSearchParams();
|
|
135
|
+
if (jobId) params.append("jobId", jobId);
|
|
136
|
+
params.append("limit", String(limit));
|
|
137
|
+
params.append("offset", String(offset));
|
|
138
|
+
return this.request<XYOpsEvent[]>("GET", `/events?${params.toString()}`);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
async getEvent(eventId: string): Promise<XYOpsEvent> {
|
|
142
|
+
return this.request<XYOpsEvent>("GET", `/events/${eventId}`);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
async abortEvent(eventId: string): Promise<void> {
|
|
146
|
+
await this.request<void>("POST", `/events/${eventId}/abort`);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// System
|
|
150
|
+
async getStatus(): Promise<XYOpsStatus> {
|
|
151
|
+
return this.request<XYOpsStatus>("GET", "/status");
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
async listPlugins(): Promise<XYOpsPlugin[]> {
|
|
155
|
+
return this.request<XYOpsPlugin[]>("GET", "/plugins");
|
|
156
|
+
}
|
|
157
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// XYOps Type Definitions
|
|
2
|
+
|
|
3
|
+
export interface XYOpsConfig {
|
|
4
|
+
/** XYOps server base URL */
|
|
5
|
+
baseUrl: string;
|
|
6
|
+
/** API key for authentication */
|
|
7
|
+
apiKey?: string;
|
|
8
|
+
/** Request timeout in ms */
|
|
9
|
+
timeout?: number;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface XYOpsJob {
|
|
13
|
+
/** Unique job ID */
|
|
14
|
+
id: string;
|
|
15
|
+
/** Job title */
|
|
16
|
+
title: string;
|
|
17
|
+
/** Job category */
|
|
18
|
+
category: string;
|
|
19
|
+
/** Plugin to execute */
|
|
20
|
+
plugin: string;
|
|
21
|
+
/** Plugin parameters */
|
|
22
|
+
params: Record<string, unknown>;
|
|
23
|
+
/** Whether job is enabled */
|
|
24
|
+
enabled: boolean;
|
|
25
|
+
/** Creation timestamp */
|
|
26
|
+
created: number;
|
|
27
|
+
/** Last modified timestamp */
|
|
28
|
+
modified: number;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface XYOpsSchedule {
|
|
32
|
+
/** Unique schedule ID */
|
|
33
|
+
id: string;
|
|
34
|
+
/** Associated job ID */
|
|
35
|
+
jobId: string;
|
|
36
|
+
/** Cron expression */
|
|
37
|
+
cron: string;
|
|
38
|
+
/** Whether schedule is enabled */
|
|
39
|
+
enabled: boolean;
|
|
40
|
+
/** Creation timestamp */
|
|
41
|
+
created: number;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface XYOpsEvent {
|
|
45
|
+
/** Unique event ID */
|
|
46
|
+
id: string;
|
|
47
|
+
/** Associated job ID */
|
|
48
|
+
jobId: string;
|
|
49
|
+
/** Event status */
|
|
50
|
+
status: "pending" | "running" | "success" | "error" | "aborted";
|
|
51
|
+
/** Start timestamp */
|
|
52
|
+
startTime: number;
|
|
53
|
+
/** End timestamp (if completed) */
|
|
54
|
+
endTime?: number;
|
|
55
|
+
/** Event output/log */
|
|
56
|
+
output?: string;
|
|
57
|
+
/** Error message (if failed) */
|
|
58
|
+
error?: string;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export interface XYOpsPlugin {
|
|
62
|
+
/** Plugin name */
|
|
63
|
+
name: string;
|
|
64
|
+
/** Plugin title */
|
|
65
|
+
title: string;
|
|
66
|
+
/** Plugin description */
|
|
67
|
+
description?: string;
|
|
68
|
+
/** Parameter schema */
|
|
69
|
+
params?: Record<string, unknown>;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export interface XYOpsStatus {
|
|
73
|
+
/** Server version */
|
|
74
|
+
version: string;
|
|
75
|
+
/** Server uptime in seconds */
|
|
76
|
+
uptime: number;
|
|
77
|
+
/** Number of configured jobs */
|
|
78
|
+
jobCount: number;
|
|
79
|
+
/** Number of active schedules */
|
|
80
|
+
scheduleCount: number;
|
|
81
|
+
/** Currently running events */
|
|
82
|
+
activeEvents: number;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Tool parameter types
|
|
86
|
+
export interface ListJobsParams {
|
|
87
|
+
offset?: number;
|
|
88
|
+
limit?: number;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export interface GetJobParams {
|
|
92
|
+
jobId: string;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export interface CreateJobParams {
|
|
96
|
+
title: string;
|
|
97
|
+
category: string;
|
|
98
|
+
plugin: string;
|
|
99
|
+
params?: Record<string, unknown>;
|
|
100
|
+
enabled?: boolean;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export interface UpdateJobParams {
|
|
104
|
+
jobId: string;
|
|
105
|
+
title?: string;
|
|
106
|
+
category?: string;
|
|
107
|
+
plugin?: string;
|
|
108
|
+
params?: Record<string, unknown>;
|
|
109
|
+
enabled?: boolean;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export interface DeleteJobParams {
|
|
113
|
+
jobId: string;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export interface RunJobParams {
|
|
117
|
+
jobId: string;
|
|
118
|
+
params?: Record<string, unknown>;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export interface ListSchedulesParams {
|
|
122
|
+
jobId?: string;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export interface CreateScheduleParams {
|
|
126
|
+
jobId: string;
|
|
127
|
+
cron: string;
|
|
128
|
+
enabled?: boolean;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export interface DeleteScheduleParams {
|
|
132
|
+
scheduleId: string;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export interface ListEventsParams {
|
|
136
|
+
jobId?: string;
|
|
137
|
+
limit?: number;
|
|
138
|
+
offset?: number;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export interface GetEventParams {
|
|
142
|
+
eventId: string;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export interface AbortEventParams {
|
|
146
|
+
eventId: string;
|
|
147
|
+
}
|
package/package.json
CHANGED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
# Mavalie Plugin for PoolBot
|
|
2
|
-
|
|
3
|
-
Plugin template válido para PoolBot.
|
|
4
|
-
|
|
5
|
-
## Estrutura
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
extensions/mavalie/
|
|
9
|
-
├── package.json # Manifest do plugin
|
|
10
|
-
├── src/
|
|
11
|
-
│ └── index.ts # Entry point
|
|
12
|
-
└── README.md # Esta documentação
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Instalação
|
|
16
|
-
|
|
17
|
-
1. **Build do plugin:**
|
|
18
|
-
```bash
|
|
19
|
-
cd extensions/mavalie
|
|
20
|
-
npm install
|
|
21
|
-
npm run build # ou pnpm build
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
2. **Ativação no PoolBot:**
|
|
25
|
-
O plugin é carregado automaticamente pelo PoolBot quando:
|
|
26
|
-
- O diretório está em `extensions/mavalie/`
|
|
27
|
-
- O `package.json` tem a seção `poolbot.extensions` configurada
|
|
28
|
-
- O entry point (`dist/index.js`) existe
|
|
29
|
-
|
|
30
|
-
## Configuração
|
|
31
|
-
|
|
32
|
-
O plugin usa `emptyPluginConfigSchema()`, ou seja, não requer configuração.
|
|
33
|
-
|
|
34
|
-
Para adicionar configurações, substitua por:
|
|
35
|
-
|
|
36
|
-
```typescript
|
|
37
|
-
import { z } from "zod";
|
|
38
|
-
|
|
39
|
-
const configSchema = z.object({
|
|
40
|
-
apiKey: z.string().optional(),
|
|
41
|
-
endpoint: z.string().url().default("https://api.mavalie.com"),
|
|
42
|
-
});
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## Desenvolvimento
|
|
46
|
-
|
|
47
|
-
### Padrões de Plugin
|
|
48
|
-
|
|
49
|
-
O PoolBot suporta 4 tipos de extensões:
|
|
50
|
-
|
|
51
|
-
1. **Provider** - Adiciona novos modelos LLM
|
|
52
|
-
2. **Channel** - Adiciona canais de comunicação (Discord, Slack, etc)
|
|
53
|
-
3. **Tool** - Adiciona ferramentas para agentes
|
|
54
|
-
4. **Hook** - Intercepta eventos do ciclo de vida
|
|
55
|
-
|
|
56
|
-
### Exemplo: Registrando um Provider
|
|
57
|
-
|
|
58
|
-
```typescript
|
|
59
|
-
api.registerProvider({
|
|
60
|
-
id: "mavalie",
|
|
61
|
-
label: "Mavalie AI",
|
|
62
|
-
auth: [{
|
|
63
|
-
id: "api-key",
|
|
64
|
-
kind: "apiKey",
|
|
65
|
-
run: async (ctx) => {
|
|
66
|
-
const key = await ctx.prompter.password({
|
|
67
|
-
message: "Mavalie API Key:"
|
|
68
|
-
});
|
|
69
|
-
return {
|
|
70
|
-
profiles: [{
|
|
71
|
-
profileId: "mavalie:default",
|
|
72
|
-
credential: { type: "apiKey", key: String(key) }
|
|
73
|
-
}]
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
}]
|
|
77
|
-
});
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
## Troubleshooting
|
|
81
|
-
|
|
82
|
-
### "plugin manifest not found"
|
|
83
|
-
- Verifique se `package.json` existe e tem `poolbot.extensions`
|
|
84
|
-
- Verifique se o caminho em `extensions` aponta para o arquivo correto
|
|
85
|
-
|
|
86
|
-
### "extension entry escapes package directory"
|
|
87
|
-
- O entry point deve estar dentro do diretório do plugin
|
|
88
|
-
- Use `./dist/index.js` (não `./src/index.ts` para produção)
|
|
89
|
-
|
|
90
|
-
### Erros de TypeScript "Cannot find module 'poolbot/plugin-sdk'"
|
|
91
|
-
- Normal durante desenvolvimento - o alias só resolve após build
|
|
92
|
-
- O build do PoolBot principal resolve essas dependências
|
|
93
|
-
|
|
94
|
-
## Referências
|
|
95
|
-
|
|
96
|
-
- [Plugin SDK Documentation](../../docs/refactor/plugin-sdk.md)
|
|
97
|
-
- [Exemplos de Plugins](../discord/, ../slack/, etc.)
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@poolbot/mavalie",
|
|
3
|
-
"version": "2026.3.11",
|
|
4
|
-
"type": "module",
|
|
5
|
-
"description": "Mavalie plugin for PoolBot - custom integration",
|
|
6
|
-
"poolbot": {
|
|
7
|
-
"extensions": [
|
|
8
|
-
"./src/index.ts"
|
|
9
|
-
]
|
|
10
|
-
},
|
|
11
|
-
"dependencies": {},
|
|
12
|
-
"devDependencies": {
|
|
13
|
-
"poolbot": "workspace:*"
|
|
14
|
-
}
|
|
15
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { emptyPluginConfigSchema } from "poolbot/plugin-sdk";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Mavalie Plugin for PoolBot
|
|
5
|
-
*
|
|
6
|
-
* Template mínimo válido de plugin para PoolBot.
|
|
7
|
-
* Este plugin registra um provider customizado que pode ser expandido
|
|
8
|
-
* conforme necessidades específicas.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
const mavaliePlugin = {
|
|
12
|
-
id: "mavalie",
|
|
13
|
-
name: "Mavalie",
|
|
14
|
-
description: "Custom Mavalie integration for PoolBot",
|
|
15
|
-
configSchema: emptyPluginConfigSchema(),
|
|
16
|
-
|
|
17
|
-
register(api) {
|
|
18
|
-
// Log de registro do plugin
|
|
19
|
-
api.runtime?.log?.("Mavalie plugin registered");
|
|
20
|
-
|
|
21
|
-
// TODO: Adicione aqui o registro de:
|
|
22
|
-
// - Providers (modelos customizados)
|
|
23
|
-
// - Canais (integrações de mensageria)
|
|
24
|
-
// - Ferramentas (tools para agentes)
|
|
25
|
-
// - Hooks (eventos do ciclo de vida)
|
|
26
|
-
|
|
27
|
-
// Exemplo de registro de provider (descomente e adapte):
|
|
28
|
-
/*
|
|
29
|
-
api.registerProvider({
|
|
30
|
-
id: "mavalie",
|
|
31
|
-
label: "Mavalie Provider",
|
|
32
|
-
docsPath: "/providers/models",
|
|
33
|
-
auth: [
|
|
34
|
-
{
|
|
35
|
-
id: "api-key",
|
|
36
|
-
label: "API Key",
|
|
37
|
-
kind: "apiKey",
|
|
38
|
-
run: async (ctx) => {
|
|
39
|
-
const key = await ctx.prompter.password({
|
|
40
|
-
message: "Enter your Mavalie API key:",
|
|
41
|
-
});
|
|
42
|
-
return {
|
|
43
|
-
profiles: [
|
|
44
|
-
{
|
|
45
|
-
profileId: "mavalie:default",
|
|
46
|
-
credential: {
|
|
47
|
-
type: "apiKey",
|
|
48
|
-
provider: "mavalie",
|
|
49
|
-
key: String(key),
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
],
|
|
53
|
-
};
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
],
|
|
57
|
-
});
|
|
58
|
-
*/
|
|
59
|
-
},
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
export default mavaliePlugin;
|