@elvatis_com/openclaw-ispconfig 0.1.2 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,11 +1,14 @@
1
1
  # @elvatis_com/openclaw-ispconfig
2
2
 
3
+ **Current version:** 0.2.1
4
+
3
5
  OpenClaw plugin to manage ISPConfig via the Remote JSON API.
4
6
 
5
7
  ## Features
6
8
 
7
9
  - Session-based API client with auto-reconnect
8
10
  - 31 tools for read, write, and one-command provisioning
11
+ - `/ispconfig` chat command for quick help and tool reference
9
12
  - Safety guards via `readOnly` and `allowedOperations`
10
13
  - Live integration tests against a real ISPConfig host (read-only)
11
14
 
@@ -54,45 +57,96 @@ npm install @elvatis_com/openclaw-ispconfig
54
57
  - `allowedOperations` (default `[]`): whitelist of tool names
55
58
  - `verifySsl` (default `true`): TLS certificate verification
56
59
 
60
+ ## Chat Command
61
+
62
+ ### `/ispconfig`
63
+
64
+ Type `/ispconfig` in any connected chat to display the full list of available tools, the plugin version, and the connected ISPConfig hostname (credentials are never shown).
65
+
66
+ Example output:
67
+
68
+ ```
69
+ 🖥️ ISPConfig Plugin
70
+ Version 0.2.0 | Connected to isp.elvatis.com
71
+
72
+ 📋 Read Commands
73
+ • isp_system_info — Server-Info
74
+ • isp_client_list — Alle Clients
75
+ ...
76
+
77
+ ✏️ Write Commands
78
+ • isp_client_add — Client anlegen
79
+ ...
80
+
81
+ 🚀 Provisioning
82
+ • isp_provision_site — Alles auf einmal (domain, clientName, clientEmail)
83
+ ```
84
+
85
+ ## OpenClaw Plugin API
86
+
87
+ This plugin uses the modern OpenClaw Plugin API (`api.*`) instead of the legacy `(runtime, config)` registration pattern.
88
+
89
+ The entry point exports a default plugin object with a `register(api)` function:
90
+
91
+ ```ts
92
+ export default {
93
+ manifest: pluginManifest,
94
+ register(api: PluginApi): void {
95
+ // Register tools
96
+ api.registerTool({ name, description, parameters, execute });
97
+
98
+ // Register chat commands
99
+ api.registerCommand({ name, description, usage, handler });
100
+ },
101
+ };
102
+ ```
103
+
104
+ Key API methods used:
105
+
106
+ - `api.registerTool({ name, description, parameters, execute })` — exposes an AI-callable tool with JSON Schema parameters
107
+ - `api.registerCommand({ name, description, usage, handler })` — registers a `/command` for chat
108
+ - `api.pluginConfig` — typed plugin configuration from `openclaw.json`
109
+ - `api.logger` — structured logger (info, warn, error)
110
+
57
111
  ## Tools
58
112
 
59
- ### Read tools
60
-
61
- - `isp_methods_list` params: none
62
- - `isp_system_info` params: none
63
- - `isp_client_list` params: optional filter fields
64
- - `isp_client_get` params: `client_id`
65
- - `isp_sites_list` params: optional filters accepted by `sites_web_domain_get`
66
- - `isp_site_get` params: `primary_id` (or `site_id`, `domain_id`)
67
- - `isp_domains_list` params: none
68
- - `isp_dns_zone_list` params: user-related filter params
69
- - `isp_dns_record_list` params: `zone_id`
70
- - `isp_mail_domain_list` params: optional filters
71
- - `isp_mail_user_list` params: optional filters
72
- - `isp_db_list` params: user-related filters
73
- - `isp_ssl_status` params: none
74
- - `isp_quota_check` params: `client_id`
75
- - `isp_backup_list` params: none (returns skipped if API method unavailable)
76
- - `isp_cron_list` params: optional filters
77
-
78
- ### Write tools
79
-
80
- - `isp_client_add` params: ISPConfig `client_add` payload
81
- - `isp_site_add` params: ISPConfig `sites_web_domain_add` payload
82
- - `isp_domain_add` params: alias for `isp_site_add`
83
- - `isp_dns_zone_add` params: ISPConfig `dns_zone_add` payload
84
- - `isp_dns_record_add` params: include `type` (`A`, `AAAA`, `MX`, `TXT`, `CNAME`) and matching payload
85
- - `isp_dns_record_delete` params: include `type` and matching delete payload
86
- - `isp_mail_domain_add` params: ISPConfig `mail_domain_add` payload
87
- - `isp_mail_user_add` params: ISPConfig `mail_user_add` payload
88
- - `isp_mail_user_delete` params: ISPConfig `mail_user_delete` payload
89
- - `isp_db_add` params: ISPConfig `sites_database_add` payload
90
- - `isp_db_user_add` params: ISPConfig `sites_database_user_add` payload
91
- - `isp_shell_user_add` params: ISPConfig `sites_shell_user_add` payload
92
- - `isp_ftp_user_add` params: ISPConfig `sites_ftp_user_add` payload
93
- - `isp_cron_add` params: ISPConfig `sites_cron_add` payload
94
-
95
- ### Provisioning tool
113
+ ### Read tools (15)
114
+
115
+ - `isp_system_info` params: none
116
+ - `isp_methods_list` params: none
117
+ - `isp_client_list` params: optional filter fields
118
+ - `isp_client_get` params: `client_id`
119
+ - `isp_sites_list` params: optional filters accepted by `sites_web_domain_get`
120
+ - `isp_site_get` params: `primary_id` (or `site_id`, `domain_id`)
121
+ - `isp_domains_list` params: none
122
+ - `isp_dns_zone_list` params: user-related filter params
123
+ - `isp_dns_record_list` params: `zone_id`
124
+ - `isp_mail_domain_list` params: optional filters
125
+ - `isp_mail_user_list` params: optional filters
126
+ - `isp_db_list` params: user-related filters
127
+ - `isp_ssl_status` params: none
128
+ - `isp_quota_check` params: `client_id`
129
+ - `isp_cron_list` params: optional filters
130
+
131
+ ### Write tools (15)
132
+
133
+ - `isp_client_add` — params: ISPConfig `client_add` payload
134
+ - `isp_site_add` params: ISPConfig `sites_web_domain_add` payload
135
+ - `isp_domain_add` alias for `isp_site_add`
136
+ - `isp_dns_zone_add` params: ISPConfig `dns_zone_add` payload
137
+ - `isp_dns_record_add` params: include `type` (`A`, `AAAA`, `MX`, `TXT`, `CNAME`) and matching payload
138
+ - `isp_dns_record_delete` params: include `type` and matching delete payload
139
+ - `isp_mail_domain_add` params: ISPConfig `mail_domain_add` payload
140
+ - `isp_mail_user_add` params: ISPConfig `mail_user_add` payload
141
+ - `isp_mail_user_delete` params: ISPConfig `mail_user_delete` payload
142
+ - `isp_db_add` params: ISPConfig `sites_database_add` payload
143
+ - `isp_db_user_add` params: ISPConfig `sites_database_user_add` payload
144
+ - `isp_shell_user_add` params: ISPConfig `sites_shell_user_add` payload
145
+ - `isp_ftp_user_add` params: ISPConfig `sites_ftp_user_add` payload
146
+ - `isp_cron_add` params: ISPConfig `sites_cron_add` payload
147
+ - `isp_backup_list` params: none (returns skipped if API method unavailable)
148
+
149
+ ### Provisioning tool (1)
96
150
 
97
151
  - `isp_provision_site`
98
152
  - Required params:
@@ -115,11 +169,48 @@ Workflow:
115
169
  6. Optionally create DB user and database
116
170
  7. Ensure SSL flags are enabled on the site
117
171
 
172
+ **Total: 31 tools** (15 read + 14 write + 1 alias + 1 provisioning)
173
+
118
174
  ## Safety
119
175
 
120
176
  - `readOnly=true` blocks all write and provisioning tools
121
177
  - `allowedOperations=[...]` allows only named tools
122
178
 
179
+ ## Roadmap
180
+
181
+ ISPConfig's Remote JSON API supports many more methods not yet covered by this plugin. Planned additions:
182
+
183
+ ### Client Management
184
+ - `client_update` — update existing client fields
185
+ - `client_delete` — remove a client
186
+
187
+ ### Website / Domain Management
188
+ - `sites_web_domain_delete` — delete a website
189
+ - `sites_web_domain_update` — update site config (internal helper exists, but no dedicated tool yet)
190
+
191
+ ### Mail
192
+ - `mail_alias_add` / `mail_alias_delete` / `mail_alias_get` — mail aliases
193
+ - `mail_forward_add` / `mail_forward_delete` / `mail_forward_get` — mail forwards
194
+ - `mail_domain_delete` — remove a mail domain
195
+ - `mail_domain_update` — update mail domain settings
196
+
197
+ ### DNS
198
+ - `dns_zone_delete` — remove a DNS zone
199
+ - `dns_zone_update` — update zone settings (TTL, SOA, etc.)
200
+ - `dns_a_update` / `dns_aaaa_update` / `dns_cname_update` / `dns_mx_update` / `dns_txt_update` — update individual DNS records (currently only add/delete is supported)
201
+
202
+ ### Databases
203
+ - `sites_database_delete` — remove a database
204
+ - `sites_database_user_delete` — remove a database user
205
+
206
+ ### FTP / Shell
207
+ - `sites_ftp_user_delete` — remove an FTP user
208
+ - `sites_shell_user_delete` — remove a shell user
209
+
210
+ ### Cron
211
+ - `sites_cron_delete` — remove a cron job
212
+ - `sites_cron_update` — update an existing cron job
213
+
123
214
  ## Development
124
215
 
125
216
  ```bash
@@ -133,6 +224,27 @@ For live tests, provide environment variables:
133
224
  - `ISPCONFIG_USER`
134
225
  - `ISPCONFIG_PASS`
135
226
 
227
+ ## Shared Template
228
+
229
+ For automation that creates GitHub issues, use `src/templates/github-issue-helper.ts`.
230
+ It provides `isValidIssueRepoSlug()`, `resolveIssueRepo()`, and `buildGhIssueCreateCommand()`.
231
+
232
+ ## Changelog
233
+
234
+ ### 0.2.1 (2026-03-15)
235
+
236
+ **Bug fix:** Resolve `"Cannot read properties of undefined (reading 'properties')"` crash in OpenClaw UI.
237
+
238
+ - **Added JSON Schema `parameters` to all 31 tool definitions** — previously tools only had `name`, `description`, and `run`, causing the UI to crash when accessing `tool.parameters.properties`
239
+ - **Fixed `registerViaApi()` to pass `parameters` through** to `api.registerTool()` — schemas were defined but never forwarded to OpenClaw
240
+ - **Changed tool registration from `run` to `execute`** — OpenClaw's plugin API expects `execute(params)`, not `run(params)`
241
+ - **Updated `BoundTool` interface** to include optional `parameters` field
242
+ - **Updated `ToolDefinition` interface** to include optional `parameters` field
243
+
244
+ ### 0.2.0 (2026-03-07)
245
+
246
+ - Initial release with 31 tools, `/ispconfig` command, safety guards
247
+
136
248
  ## License
137
249
 
138
250
  MIT
package/dist/index.d.ts CHANGED
@@ -3,69 +3,80 @@ import { ISPConfigPluginConfig, JsonMap } from "./types";
3
3
  export interface OpenClawRuntimeLike {
4
4
  registerTool: (name: string, definition: {
5
5
  description: string;
6
+ parameters?: Record<string, unknown>;
6
7
  run: (params: JsonMap) => Promise<unknown>;
7
8
  }) => void;
8
9
  }
9
10
  export interface BoundTool {
10
11
  name: string;
11
12
  description: string;
13
+ parameters?: {
14
+ type: "object";
15
+ properties: Record<string, unknown>;
16
+ required?: string[];
17
+ };
12
18
  run: (params: JsonMap) => Promise<unknown>;
13
19
  }
14
20
  export declare function buildToolset(config: Partial<ISPConfigPluginConfig>): BoundTool[];
15
21
  export declare function registerAllTools(runtime: OpenClawRuntimeLike, config: Partial<ISPConfigPluginConfig>): void;
22
+ declare function registerViaApi(api: any): void;
16
23
  declare const plugin: {
17
24
  manifest: {
18
25
  name: string;
26
+ id: string;
19
27
  version: string;
20
28
  description: string;
21
- config: {
22
- apiUrl: {
23
- type: string;
24
- description: string;
25
- required: boolean;
26
- };
27
- username: {
28
- type: string;
29
- description: string;
30
- required: boolean;
31
- };
32
- password: {
33
- type: string;
34
- description: string;
35
- required: boolean;
36
- secret: boolean;
37
- };
38
- serverId: {
39
- type: string;
40
- description: string;
41
- default: number;
42
- };
43
- defaultServerIp: {
44
- type: string;
45
- description: string;
46
- };
47
- readOnly: {
48
- type: string;
49
- description: string;
50
- default: boolean;
51
- };
52
- allowedOperations: {
53
- type: string;
54
- description: string;
55
- items: {
29
+ tools: string[];
30
+ configSchema: {
31
+ $schema: string;
32
+ type: string;
33
+ additionalProperties: boolean;
34
+ required: string[];
35
+ properties: {
36
+ apiUrl: {
56
37
  type: string;
38
+ description: string;
39
+ };
40
+ username: {
41
+ type: string;
42
+ description: string;
43
+ };
44
+ password: {
45
+ type: string;
46
+ description: string;
47
+ secret: boolean;
48
+ };
49
+ serverId: {
50
+ type: string;
51
+ description: string;
52
+ default: number;
53
+ };
54
+ defaultServerIp: {
55
+ type: string;
56
+ description: string;
57
+ };
58
+ readOnly: {
59
+ type: string;
60
+ description: string;
61
+ default: boolean;
62
+ };
63
+ allowedOperations: {
64
+ type: string;
65
+ description: string;
66
+ default: never[];
67
+ items: {
68
+ type: string;
69
+ };
70
+ };
71
+ verifySsl: {
72
+ type: string;
73
+ description: string;
74
+ default: boolean;
57
75
  };
58
- default: never[];
59
- };
60
- verifySsl: {
61
- type: string;
62
- description: string;
63
- default: boolean;
64
76
  };
65
77
  };
66
- tools: string[];
67
78
  };
68
- register: typeof registerAllTools;
79
+ register: typeof registerViaApi;
69
80
  };
70
81
  export default plugin;
71
82
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE9E,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;CACvH;AAoBD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5C;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,SAAS,EAAE,CAQhF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAQ3G;AAED,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGX,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE9E,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;CAC7J;AAoBD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5C;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,SAAS,EAAE,CAShF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAS3G;AAGD,iBAAS,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA0EtC;AAED,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGX,CAAC;AAEF,eAAe,MAAM,CAAC"}
package/dist/index.js CHANGED
@@ -33,6 +33,7 @@ function buildToolset(config) {
33
33
  return (0, tools_1.createTools)().map((tool) => ({
34
34
  name: tool.name,
35
35
  description: tool.description,
36
+ parameters: tool.parameters ?? { type: "object", properties: {} },
36
37
  run: (params) => tool.run(params, context),
37
38
  }));
38
39
  }
@@ -41,13 +42,87 @@ function registerAllTools(runtime, config) {
41
42
  for (const tool of tools) {
42
43
  runtime.registerTool(tool.name, {
43
44
  description: tool.description,
45
+ parameters: tool.parameters,
44
46
  run: (params) => tool.run(params),
45
47
  });
46
48
  }
47
49
  }
50
+ // OpenClaw PluginApi adapter
51
+ function registerViaApi(api) {
52
+ const config = (api.pluginConfig ?? {});
53
+ const tools = buildToolset(config);
54
+ for (const tool of tools) {
55
+ api.registerTool({
56
+ name: tool.name,
57
+ description: tool.description,
58
+ parameters: tool.parameters,
59
+ execute: (params) => tool.run(params),
60
+ });
61
+ }
62
+ // Command: /ispconfig — show plugin help
63
+ api.registerCommand({
64
+ name: "ispconfig",
65
+ description: "Show ISPConfig plugin help and list of available tools.",
66
+ usage: "/ispconfig",
67
+ requireAuth: false,
68
+ acceptsArgs: false,
69
+ handler: async () => {
70
+ const rawUrl = (config.apiUrl ?? "").trim();
71
+ // Extract hostname only — never expose credentials
72
+ let displayHost = "(not configured)";
73
+ try {
74
+ if (rawUrl) {
75
+ displayHost = new URL(rawUrl).hostname;
76
+ }
77
+ }
78
+ catch {
79
+ displayHost = rawUrl.replace(/^https?:\/\//, "").split("/")[0] ?? rawUrl;
80
+ }
81
+ const version = openclaw_plugin_json_1.default.version ?? "0.2.0";
82
+ const text = [
83
+ `🖥️ *ISPConfig Plugin*`,
84
+ `Version ${version} | Connected to ${displayHost}`,
85
+ ``,
86
+ `📋 *Read Commands*`,
87
+ `• isp_system_info — Server-Info`,
88
+ `• isp_client_list — Alle Clients`,
89
+ `• isp_client_get — Client Details (client_id)`,
90
+ `• isp_sites_list — Alle Websites`,
91
+ `• isp_site_get — Site Details (site_id)`,
92
+ `• isp_domains_list — Alle Domains`,
93
+ `• isp_dns_zone_list — DNS Zonen`,
94
+ `• isp_dns_record_list — DNS Records (zone_id)`,
95
+ `• isp_mail_domain_list — Mail-Domains`,
96
+ `• isp_mail_user_list — Mail-User`,
97
+ `• isp_db_list — Datenbanken`,
98
+ `• isp_cron_list — Cron Jobs`,
99
+ `• isp_ssl_status — SSL/LE Status`,
100
+ `• isp_quota_check — Quota (client_id)`,
101
+ `• isp_methods_list — Verfügbare API-Methoden`,
102
+ ``,
103
+ `✏️ *Write Commands*`,
104
+ `• isp_client_add — Client anlegen`,
105
+ `• isp_site_add — Website anlegen`,
106
+ `• isp_dns_zone_add — DNS Zone`,
107
+ `• isp_dns_record_add — DNS Record (type: A/AAAA/MX/TXT/CNAME)`,
108
+ `• isp_dns_record_delete — DNS Record löschen`,
109
+ `• isp_mail_domain_add — Mail-Domain`,
110
+ `• isp_mail_user_add / _delete — Mail-User`,
111
+ `• isp_db_add / isp_db_user_add — Datenbank`,
112
+ `• isp_ftp_user_add — FTP User`,
113
+ `• isp_shell_user_add — Shell User`,
114
+ `• isp_cron_add — Cron Job`,
115
+ ``,
116
+ `🚀 *Provisioning*`,
117
+ `• isp_provision_site — Alles auf einmal (domain, clientName, clientEmail)`,
118
+ ].join("\n");
119
+ return { text };
120
+ },
121
+ });
122
+ }
48
123
  const plugin = {
49
124
  manifest: openclaw_plugin_json_1.default,
50
- register: registerAllTools,
125
+ register: registerViaApi,
51
126
  };
52
127
  exports.default = plugin;
53
128
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAiCA,oCAQC;AAED,4CAQC;AAnDD,mFAAqD;AACrD,mCAA8E;AAArE,wGAAA,cAAc,OAAA;AAAsB,wGAAA,cAAc,OAAA;AAC3D,mCAAsC;AAOtC,SAAS,YAAY,CAAC,MAAsC;IAC1D,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAED,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC;QAC9B,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK;QAClC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,EAAE;QACjD,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;QACnC,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;AACJ,CAAC;AAQD,SAAgB,YAAY,CAAC,MAAsC;IACjE,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACvC,OAAO,IAAA,mBAAW,GAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,GAAG,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;KACpD,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAA4B,EAAE,MAAsC;IACnG,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE;YAC9B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,GAAG,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,MAAM,GAAG;IACb,QAAQ,EAAE,8BAAc;IACxB,QAAQ,EAAE,gBAAgB;CAC3B,CAAC;AAEF,kBAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare function shellQuote(value: string): string;
2
+ export declare function isValidIssueRepoSlug(value: string): boolean;
3
+ export declare function resolveIssueRepo(configValue: unknown, envValue: unknown, defaultRepo: string): string;
4
+ export declare function buildGhIssueCreateCommand(args: {
5
+ repo: string;
6
+ title: string;
7
+ body: string;
8
+ labels?: string[];
9
+ }): string;
10
+ //# sourceMappingURL=github-issue-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-issue-helper.d.ts","sourceRoot":"","sources":["../../src/templates/github-issue-helper.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAUrG;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,GAAG,MAAM,CAmBT"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.shellQuote = shellQuote;
4
+ exports.isValidIssueRepoSlug = isValidIssueRepoSlug;
5
+ exports.resolveIssueRepo = resolveIssueRepo;
6
+ exports.buildGhIssueCreateCommand = buildGhIssueCreateCommand;
7
+ const ISSUE_REPO_SLUG_RE = /^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/;
8
+ function shellQuote(value) {
9
+ return `'${String(value).replace(/'/g, `"'"'`)}'`;
10
+ }
11
+ function isValidIssueRepoSlug(value) {
12
+ return ISSUE_REPO_SLUG_RE.test(value.trim());
13
+ }
14
+ function resolveIssueRepo(configValue, envValue, defaultRepo) {
15
+ const candidates = [configValue, envValue, defaultRepo];
16
+ for (const candidate of candidates) {
17
+ if (typeof candidate !== "string")
18
+ continue;
19
+ const trimmed = candidate.trim();
20
+ if (trimmed && isValidIssueRepoSlug(trimmed)) {
21
+ return trimmed;
22
+ }
23
+ }
24
+ return defaultRepo;
25
+ }
26
+ function buildGhIssueCreateCommand(args) {
27
+ const repo = args.repo.trim();
28
+ if (!isValidIssueRepoSlug(repo)) {
29
+ throw new Error(`Invalid issue repository slug: ${args.repo}`);
30
+ }
31
+ const labels = (args.labels ?? []).map((label) => label.trim()).filter(Boolean);
32
+ const parts = [
33
+ "gh issue create",
34
+ `-R ${shellQuote(repo)}`,
35
+ `--title ${shellQuote(args.title)}`,
36
+ `--body ${shellQuote(args.body)}`,
37
+ ];
38
+ if (labels.length > 0) {
39
+ parts.push(`--label ${shellQuote(labels.join(","))}`);
40
+ }
41
+ return parts.join(" ");
42
+ }
43
+ //# sourceMappingURL=github-issue-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-issue-helper.js","sourceRoot":"","sources":["../../src/templates/github-issue-helper.ts"],"names":[],"mappings":";;AAEA,gCAEC;AAED,oDAEC;AAED,4CAUC;AAED,8DAwBC;AA9CD,MAAM,kBAAkB,GAAG,oCAAoC,CAAC;AAEhE,SAAgB,UAAU,CAAC,KAAa;IACtC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;AACpD,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAAa;IAChD,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,gBAAgB,CAAC,WAAoB,EAAE,QAAiB,EAAE,WAAmB;IAC3F,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACxD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,OAAO,SAAS,KAAK,QAAQ;YAAE,SAAS;QAC5C,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAgB,yBAAyB,CAAC,IAKzC;IACC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChF,MAAM,KAAK,GAAG;QACZ,iBAAiB;QACjB,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE;QACxB,WAAW,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACnC,UAAU,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;KAClC,CAAC;IAEF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,WAAW,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,cAAc,EAAE,MAAM,SAAS,CAAC;AAkE/D,wBAAgB,WAAW,IAAI,cAAc,EAAE,CA+V9C"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,cAAc,EAAE,MAAM,SAAS,CAAC;AAkE/D,wBAAgB,WAAW,IAAI,cAAc,EAAE,CAsgB9C"}
package/dist/tools.js CHANGED
@@ -69,6 +69,7 @@ function createTools() {
69
69
  {
70
70
  name: "isp_methods_list",
71
71
  description: "Discover available ISPConfig API methods (dynamic via get_function_list, falls back to probing known methods)",
72
+ parameters: { type: "object", properties: {} },
72
73
  run: async (_params, context) => withClient(context, "isp_methods_list", async (client) => {
73
74
  // Try dynamic discovery first (ISPConfig 3.2+)
74
75
  try {
@@ -115,6 +116,7 @@ function createTools() {
115
116
  {
116
117
  name: "isp_system_info",
117
118
  description: "Get ISPConfig server list and server details",
119
+ parameters: { type: "object", properties: {} },
118
120
  run: async (_params, context) => withClient(context, "isp_system_info", async (client) => {
119
121
  const servers = await client.call("server_get_all", {});
120
122
  const details = [];
@@ -130,6 +132,19 @@ function createTools() {
130
132
  {
131
133
  name: "isp_provision_site",
132
134
  description: "Provision client, site, DNS, mail and database in one workflow",
135
+ parameters: {
136
+ type: "object",
137
+ properties: {
138
+ domain: { type: "string", description: "Domain name to provision" },
139
+ clientName: { type: "string", description: "Client company/contact name" },
140
+ clientEmail: { type: "string", description: "Client email address" },
141
+ serverIp: { type: "string", description: "Server IP address for DNS A record" },
142
+ createMail: { type: "boolean", description: "Whether to create mail domain and users (default: true)" },
143
+ createDb: { type: "boolean", description: "Whether to create a database and user (default: true)" },
144
+ serverId: { type: "number", description: "ISPConfig server ID (default: 1)" },
145
+ },
146
+ required: ["domain", "clientName", "clientEmail"],
147
+ },
133
148
  run: async (params, context) => withClient(context, "isp_provision_site", async (client) => {
134
149
  const domain = String(params.domain ?? "").trim();
135
150
  const clientName = String(params.clientName ?? "").trim();
@@ -212,6 +227,7 @@ function createTools() {
212
227
  {
213
228
  name: "isp_client_list",
214
229
  description: "List clients with details",
230
+ parameters: { type: "object", properties: {} },
215
231
  run: async (_params, context) => withClient(context, "isp_client_list", async (client) => {
216
232
  const clients = await client.call("client_get_all", {});
217
233
  const details = [];
@@ -226,16 +242,32 @@ function createTools() {
226
242
  {
227
243
  name: "isp_client_add",
228
244
  description: "Create a new ISPConfig client",
245
+ parameters: {
246
+ type: "object",
247
+ properties: {
248
+ company_name: { type: "string", description: "Client company name" },
249
+ contact_name: { type: "string", description: "Contact person name" },
250
+ email: { type: "string", description: "Client email address" },
251
+ },
252
+ },
229
253
  run: async (params, context) => withClient(context, "isp_client_add", (client) => client.call("client_add", { reseller_id: 0, params })),
230
254
  },
231
255
  {
232
256
  name: "isp_client_get",
233
257
  description: "Get client details by client_id",
258
+ parameters: {
259
+ type: "object",
260
+ properties: {
261
+ client_id: { type: "number", description: "Client ID" },
262
+ },
263
+ required: ["client_id"],
264
+ },
234
265
  run: async (params, context) => withClient(context, "isp_client_get", (client) => client.call("client_get", { client_id: toNumber(params.client_id ?? params.clientId) })),
235
266
  },
236
267
  {
237
268
  name: "isp_sites_list",
238
269
  description: "List web sites with optional filters",
270
+ parameters: { type: "object", properties: {} },
239
271
  run: async (params, context) => withClient(context, "isp_sites_list", async (client) => {
240
272
  if (Object.keys(params).length > 0) {
241
273
  return client.call("sites_web_domain_get", params);
@@ -246,16 +278,33 @@ function createTools() {
246
278
  {
247
279
  name: "isp_site_get",
248
280
  description: "Get one site by primary_id",
281
+ parameters: {
282
+ type: "object",
283
+ properties: {
284
+ primary_id: { type: "number", description: "Site ID" },
285
+ domain_id: { type: "number", description: "Alias for primary_id" },
286
+ site_id: { type: "number", description: "Alias for primary_id" },
287
+ },
288
+ },
249
289
  run: async (params, context) => withClient(context, "isp_site_get", (client) => client.call("sites_web_domain_get", { primary_id: toNumber(params.primary_id ?? params.domain_id ?? params.site_id) })),
250
290
  },
251
291
  {
252
292
  name: "isp_site_add",
253
293
  description: "Create web site",
294
+ parameters: {
295
+ type: "object",
296
+ properties: {
297
+ client_id: { type: "number", description: "Client ID" },
298
+ params: { type: "object", description: "Site parameters" },
299
+ },
300
+ required: ["client_id", "params"],
301
+ },
254
302
  run: async (params, context) => withClient(context, "isp_site_add", (client) => client.call("sites_web_domain_add", params)),
255
303
  },
256
304
  {
257
305
  name: "isp_domains_list",
258
306
  description: "List all web domains",
307
+ parameters: { type: "object", properties: {} },
259
308
  run: async (_params, context) => withClient(context, "isp_domains_list", async (client) => {
260
309
  const sites = await fetchSites(client);
261
310
  return sites.map((s) => ({ domain_id: s.domain_id, domain: s.domain, active: s.active }));
@@ -264,26 +313,59 @@ function createTools() {
264
313
  {
265
314
  name: "isp_domain_add",
266
315
  description: "Alias for isp_site_add",
316
+ parameters: {
317
+ type: "object",
318
+ properties: {
319
+ client_id: { type: "number", description: "Client ID" },
320
+ params: { type: "object", description: "Domain/site parameters" },
321
+ },
322
+ required: ["client_id", "params"],
323
+ },
267
324
  run: async (params, context) => withClient(context, "isp_domain_add", (client) => client.call("sites_web_domain_add", params)),
268
325
  },
269
326
  {
270
327
  name: "isp_dns_zone_list",
271
328
  description: "List DNS zones by user",
329
+ parameters: { type: "object", properties: {} },
272
330
  run: async (params, context) => withClient(context, "isp_dns_zone_list", (client) => client.call("dns_zone_get_by_user", params)),
273
331
  },
274
332
  {
275
333
  name: "isp_dns_zone_add",
276
334
  description: "Create DNS zone",
335
+ parameters: {
336
+ type: "object",
337
+ properties: {
338
+ client_id: { type: "number", description: "Client ID" },
339
+ params: { type: "object", description: "DNS zone parameters" },
340
+ },
341
+ required: ["client_id", "params"],
342
+ },
277
343
  run: async (params, context) => withClient(context, "isp_dns_zone_add", (client) => client.call("dns_zone_add", params)),
278
344
  },
279
345
  {
280
346
  name: "isp_dns_record_list",
281
347
  description: "List DNS records by zone_id",
348
+ parameters: {
349
+ type: "object",
350
+ properties: {
351
+ zone_id: { type: "number", description: "DNS zone ID" },
352
+ },
353
+ required: ["zone_id"],
354
+ },
282
355
  run: async (params, context) => withClient(context, "isp_dns_record_list", (client) => client.call("dns_rr_get_all_by_zone", { zone_id: toNumber(params.zone_id ?? params.zoneId) })),
283
356
  },
284
357
  {
285
358
  name: "isp_dns_record_add",
286
359
  description: "Add DNS record using type-specific method",
360
+ parameters: {
361
+ type: "object",
362
+ properties: {
363
+ type: { type: "string", enum: ["A", "AAAA", "MX", "TXT", "CNAME"], description: "DNS record type" },
364
+ client_id: { type: "number", description: "Client ID" },
365
+ params: { type: "object", description: "DNS record parameters" },
366
+ },
367
+ required: ["type"],
368
+ },
287
369
  run: async (params, context) => withClient(context, "isp_dns_record_add", (client) => {
288
370
  const method = dnsMethodForType(String(params.type ?? ""), "add");
289
371
  return client.call(method, params);
@@ -292,6 +374,15 @@ function createTools() {
292
374
  {
293
375
  name: "isp_dns_record_delete",
294
376
  description: "Delete DNS record using type-specific method",
377
+ parameters: {
378
+ type: "object",
379
+ properties: {
380
+ type: { type: "string", enum: ["A", "AAAA", "MX", "TXT", "CNAME"], description: "DNS record type" },
381
+ primary_id: { type: "number", description: "DNS record primary ID to delete" },
382
+ client_id: { type: "number", description: "Client ID" },
383
+ },
384
+ required: ["type"],
385
+ },
295
386
  run: async (params, context) => withClient(context, "isp_dns_record_delete", (client) => {
296
387
  const method = dnsMethodForType(String(params.type ?? ""), "delete");
297
388
  return client.call(method, params);
@@ -300,46 +391,89 @@ function createTools() {
300
391
  {
301
392
  name: "isp_mail_domain_list",
302
393
  description: "List mail domains",
394
+ parameters: { type: "object", properties: {} },
303
395
  run: async (params, context) => withClient(context, "isp_mail_domain_list", (client) => client.call("mail_domain_get", params)),
304
396
  },
305
397
  {
306
398
  name: "isp_mail_domain_add",
307
399
  description: "Create mail domain",
400
+ parameters: {
401
+ type: "object",
402
+ properties: {
403
+ client_id: { type: "number", description: "Client ID" },
404
+ params: { type: "object", description: "Mail domain parameters" },
405
+ },
406
+ required: ["client_id", "params"],
407
+ },
308
408
  run: async (params, context) => withClient(context, "isp_mail_domain_add", (client) => client.call("mail_domain_add", params)),
309
409
  },
310
410
  {
311
411
  name: "isp_mail_user_list",
312
412
  description: "List mail users",
413
+ parameters: { type: "object", properties: {} },
313
414
  run: async (params, context) => withClient(context, "isp_mail_user_list", (client) => client.call("mail_user_get", params)),
314
415
  },
315
416
  {
316
417
  name: "isp_mail_user_add",
317
418
  description: "Create mail user",
419
+ parameters: {
420
+ type: "object",
421
+ properties: {
422
+ client_id: { type: "number", description: "Client ID" },
423
+ params: { type: "object", description: "Mail user parameters" },
424
+ },
425
+ required: ["client_id", "params"],
426
+ },
318
427
  run: async (params, context) => withClient(context, "isp_mail_user_add", (client) => client.call("mail_user_add", params)),
319
428
  },
320
429
  {
321
430
  name: "isp_mail_user_delete",
322
431
  description: "Delete mail user",
432
+ parameters: {
433
+ type: "object",
434
+ properties: {
435
+ primary_id: { type: "number", description: "Mail user ID to delete" },
436
+ },
437
+ required: ["primary_id"],
438
+ },
323
439
  run: async (params, context) => withClient(context, "isp_mail_user_delete", (client) => client.call("mail_user_delete", params)),
324
440
  },
325
441
  {
326
442
  name: "isp_db_list",
327
443
  description: "List databases by user",
444
+ parameters: { type: "object", properties: {} },
328
445
  run: async (params, context) => withClient(context, "isp_db_list", (client) => client.call("sites_database_get_all_by_user", params)),
329
446
  },
330
447
  {
331
448
  name: "isp_db_add",
332
449
  description: "Create database",
450
+ parameters: {
451
+ type: "object",
452
+ properties: {
453
+ client_id: { type: "number", description: "Client ID" },
454
+ params: { type: "object", description: "Database parameters" },
455
+ },
456
+ required: ["client_id", "params"],
457
+ },
333
458
  run: async (params, context) => withClient(context, "isp_db_add", (client) => client.call("sites_database_add", params)),
334
459
  },
335
460
  {
336
461
  name: "isp_db_user_add",
337
462
  description: "Create database user",
463
+ parameters: {
464
+ type: "object",
465
+ properties: {
466
+ client_id: { type: "number", description: "Client ID" },
467
+ params: { type: "object", description: "Database user parameters" },
468
+ },
469
+ required: ["client_id", "params"],
470
+ },
338
471
  run: async (params, context) => withClient(context, "isp_db_user_add", (client) => client.call("sites_database_user_add", params)),
339
472
  },
340
473
  {
341
474
  name: "isp_ssl_status",
342
475
  description: "Check SSL and Let's Encrypt status for sites",
476
+ parameters: { type: "object", properties: {} },
343
477
  run: async (_params, context) => withClient(context, "isp_ssl_status", async (client) => {
344
478
  const sites = await fetchSites(client);
345
479
  const status = (sites ?? []).map((site) => ({
@@ -354,6 +488,13 @@ function createTools() {
354
488
  {
355
489
  name: "isp_quota_check",
356
490
  description: "Check quota values for a client",
491
+ parameters: {
492
+ type: "object",
493
+ properties: {
494
+ client_id: { type: "number", description: "Client ID" },
495
+ },
496
+ required: ["client_id"],
497
+ },
357
498
  run: async (params, context) => withClient(context, "isp_quota_check", async (client) => {
358
499
  const details = await client.call("client_get", { client_id: toNumber(params.client_id ?? params.clientId) });
359
500
  return {
@@ -367,6 +508,7 @@ function createTools() {
367
508
  {
368
509
  name: "isp_backup_list",
369
510
  description: "Backup list if API supports backup methods",
511
+ parameters: { type: "object", properties: {} },
370
512
  run: async (_params, context) => withClient(context, "isp_backup_list", async () => ({
371
513
  skipped: true,
372
514
  reason: "No backup list method discovered in ISPConfig API",
@@ -375,21 +517,46 @@ function createTools() {
375
517
  {
376
518
  name: "isp_shell_user_add",
377
519
  description: "Create shell user",
520
+ parameters: {
521
+ type: "object",
522
+ properties: {
523
+ client_id: { type: "number", description: "Client ID" },
524
+ params: { type: "object", description: "Shell user parameters" },
525
+ },
526
+ required: ["client_id", "params"],
527
+ },
378
528
  run: async (params, context) => withClient(context, "isp_shell_user_add", (client) => client.call("sites_shell_user_add", params)),
379
529
  },
380
530
  {
381
531
  name: "isp_ftp_user_add",
382
532
  description: "Create FTP user",
533
+ parameters: {
534
+ type: "object",
535
+ properties: {
536
+ client_id: { type: "number", description: "Client ID" },
537
+ params: { type: "object", description: "FTP user parameters" },
538
+ },
539
+ required: ["client_id", "params"],
540
+ },
383
541
  run: async (params, context) => withClient(context, "isp_ftp_user_add", (client) => client.call("sites_ftp_user_add", params)),
384
542
  },
385
543
  {
386
544
  name: "isp_cron_list",
387
545
  description: "List cron jobs",
546
+ parameters: { type: "object", properties: {} },
388
547
  run: async (params, context) => withClient(context, "isp_cron_list", (client) => client.call("sites_cron_get", params)),
389
548
  },
390
549
  {
391
550
  name: "isp_cron_add",
392
551
  description: "Create cron job",
552
+ parameters: {
553
+ type: "object",
554
+ properties: {
555
+ client_id: { type: "number", description: "Client ID" },
556
+ params: { type: "object", description: "Cron job parameters" },
557
+ },
558
+ required: ["client_id", "params"],
559
+ },
393
560
  run: async (params, context) => withClient(context, "isp_cron_add", (client) => client.call("sites_cron_add", params)),
394
561
  },
395
562
  ];
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -125,6 +125,11 @@ export interface ToolContext {
125
125
  export interface ToolDefinition {
126
126
  name: string;
127
127
  description: string;
128
+ parameters?: {
129
+ type: "object";
130
+ properties: Record<string, unknown>;
131
+ required?: string[];
132
+ };
128
133
  run: (params: JsonMap, context: ToolContext) => Promise<unknown>;
129
134
  }
130
135
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,CAAC;CACd;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAErC,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,IAAI;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAClE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,50 +1,8 @@
1
1
  {
2
2
  "name": "ISPConfig",
3
- "version": "0.1.2",
3
+ "id": "openclaw-ispconfig",
4
+ "version": "0.2.1",
4
5
  "description": "Manage ISPConfig servers: automated site provisioning, domains, mailboxes, DNS, databases, SSL, backups, and more.",
5
- "config": {
6
- "apiUrl": {
7
- "type": "string",
8
- "description": "ISPConfig Remote JSON API URL (e.g. https://server:8080/remote/json.php)",
9
- "required": true
10
- },
11
- "username": {
12
- "type": "string",
13
- "description": "ISPConfig remote API username",
14
- "required": true
15
- },
16
- "password": {
17
- "type": "string",
18
- "description": "ISPConfig remote API password",
19
- "required": true,
20
- "secret": true
21
- },
22
- "serverId": {
23
- "type": "number",
24
- "description": "Default ISPConfig server ID (usually 1 for single-server setups)",
25
- "default": 1
26
- },
27
- "defaultServerIp": {
28
- "type": "string",
29
- "description": "Default server IP for DNS A records"
30
- },
31
- "readOnly": {
32
- "type": "boolean",
33
- "description": "If true, only read operations are allowed",
34
- "default": false
35
- },
36
- "allowedOperations": {
37
- "type": "array",
38
- "description": "Whitelist of allowed tool names. Empty = all allowed.",
39
- "items": { "type": "string" },
40
- "default": []
41
- },
42
- "verifySsl": {
43
- "type": "boolean",
44
- "description": "Verify SSL certificate of ISPConfig server",
45
- "default": true
46
- }
47
- },
48
6
  "tools": [
49
7
  "isp_methods_list",
50
8
  "isp_system_info",
@@ -77,5 +35,57 @@
77
35
  "isp_ftp_user_add",
78
36
  "isp_cron_list",
79
37
  "isp_cron_add"
80
- ]
38
+ ],
39
+ "configSchema": {
40
+ "$schema": "http://json-schema.org/draft-07/schema#",
41
+ "type": "object",
42
+ "additionalProperties": false,
43
+ "required": [
44
+ "apiUrl",
45
+ "username",
46
+ "password"
47
+ ],
48
+ "properties": {
49
+ "apiUrl": {
50
+ "type": "string",
51
+ "description": "ISPConfig Remote JSON API URL (e.g. https://server:8080/remote/json.php)"
52
+ },
53
+ "username": {
54
+ "type": "string",
55
+ "description": "ISPConfig remote API username"
56
+ },
57
+ "password": {
58
+ "type": "string",
59
+ "description": "ISPConfig remote API password",
60
+ "secret": true
61
+ },
62
+ "serverId": {
63
+ "type": "number",
64
+ "description": "Default ISPConfig server ID (usually 1 for single-server setups)",
65
+ "default": 1
66
+ },
67
+ "defaultServerIp": {
68
+ "type": "string",
69
+ "description": "Default server IP for DNS A records"
70
+ },
71
+ "readOnly": {
72
+ "type": "boolean",
73
+ "description": "If true, only read operations are allowed",
74
+ "default": false
75
+ },
76
+ "allowedOperations": {
77
+ "type": "array",
78
+ "description": "Whitelist of allowed tool names. Empty = all allowed.",
79
+ "default": [],
80
+ "items": {
81
+ "type": "string"
82
+ }
83
+ },
84
+ "verifySsl": {
85
+ "type": "boolean",
86
+ "description": "Verify SSL certificate of ISPConfig server",
87
+ "default": true
88
+ }
89
+ }
90
+ }
81
91
  }
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@elvatis_com/openclaw-ispconfig",
3
- "version": "0.1.2",
3
+ "version": "0.2.1",
4
4
  "description": "OpenClaw plugin for ISPConfig server management - domains, mailboxes, databases, DNS, websites",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
8
8
  "build": "tsc",
9
- "test": "jest",
10
- "prepublishOnly": "npm run build"
9
+ "test": "vitest run",
10
+ "prepublishOnly": "npm run build",
11
+ "test:watch": "vitest"
11
12
  },
12
13
  "files": [
13
14
  "dist",
@@ -28,17 +29,17 @@
28
29
  "type": "git",
29
30
  "url": "git+https://github.com/elvatis/openclaw-ispconfig.git"
30
31
  },
31
- "dependencies": {},
32
32
  "devDependencies": {
33
- "typescript": "^5.7.0",
34
33
  "@types/node": "^22.0.0",
35
- "jest": "^29.7.0",
36
- "ts-jest": "^29.2.0",
37
- "@types/jest": "^29.5.0"
34
+ "typescript": "^5.7.0",
35
+ "vitest": "^3.0.0"
38
36
  },
39
37
  "openclaw": {
40
38
  "extensions": [
41
39
  "./src/index.ts"
42
40
  ]
41
+ },
42
+ "overrides": {
43
+ "test-exclude": "^7.0.1"
43
44
  }
44
45
  }