impreza-mcp 0.2.1 → 0.3.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/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Impreza Host
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Impreza Host
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,170 +1,179 @@
1
- # impreza-mcp
2
-
3
- [Model Context Protocol](https://modelcontextprotocol.io) server for
4
- [Impreza Host](https://imprezahost.com). Lets AI coding tools (Claude
5
- Code, Cursor, Codex CLI, Continue, Zed, ...) deploy customer-built
6
- apps to managed Impreza VPSes without leaving the chat.
7
-
8
- When you say "deploy this for me" to Claude with this MCP server
9
- loaded, Claude calls `impreza_deploy_custom` directly — packages your
10
- project, uploads it, builds + runs on your Impreza VPS, and reports
11
- back the URL.
12
-
13
- ## Status
14
-
15
- **Full surface live.** All 13 tools shipped + a setup wizard
16
- that generates ready-to-paste config snippets for 5 AI tools.
17
- Roadmap context lives in
18
- [`docs/PLAN_AI_INTEGRATION_ROADMAP.md`](https://git.imprezahost.com/impreza/impreza-platform/-/blob/main/docs/PLAN_AI_INTEGRATION_ROADMAP.md)
19
- of the impreza-platform repo.
20
-
21
- | Tool | Wraps |
22
- |------|-------|
23
- | `impreza_list_servers` | `GET /v1/platform/servers` |
24
- | `impreza_list_apps` | `GET /v1/platform/apps` |
25
- | `impreza_list_deployments` | `GET /v1/platform/deployments` + `/custom` (merged) |
26
- | `impreza_deploy_custom` | `POST /v1/platform/deployments/custom` (3 modes) |
27
- | `impreza_deploy_catalog_app` | `POST /v1/platform/deployments` |
28
- | `impreza_uninstall_deployment` | `POST .../uninstall` |
29
- | `impreza_get_logs` | `POST .../logs` (sync tail, last N lines) |
30
- | `impreza_restart_deployment` | `POST .../restart` |
31
- | `impreza_add_onion` | `POST .../onion/add` |
32
- | `impreza_change_domain` | `POST .../domain` |
33
- | `impreza_git_webhook_status` | `GET .../custom/{id}/git-webhook` |
34
- | `impreza_git_webhook_connect` | `POST .../custom/{id}/git-webhook/connect` |
35
- | `impreza_git_webhook_disconnect` | `POST .../custom/{id}/git-webhook/disconnect` |
36
-
37
- ## Install + setup
38
-
39
- ### Prerequisites
40
-
41
- - Node 20
42
- - An Impreza Host account with an API key + secret
43
- (clientarea API Keys; the IP of the machine running this MCP
44
- server must be whitelisted under the key)
45
-
46
- ### One-shot via `npx`
47
-
48
- No global install needed `npx impreza-mcp` works.
49
-
50
- ### Or install globally
51
-
52
- ```sh
53
- npm install -g impreza-mcp
54
- ```
55
-
56
- ### Get a ready-to-paste config snippet
57
-
58
- The fastest path: ask the binary itself.
59
-
60
- ```sh
61
- npx impreza-mcp setup --tool claude-code
62
- # also: cursor | continue | zed | codex-cli
63
- ```
64
-
65
- The wizard prints the JSON block to drop into your AI tool's MCP
66
- config + the exact file path + the post-config step (usually "fully
67
- quit + re-open the AI tool"). It does NOT write to disk — paste it
68
- yourself so you don't accidentally clobber an existing config with
69
- other MCP servers.
70
-
71
- ### Or wire it in manually
72
-
73
- **Claude Code** add to `~/Library/Application Support/Claude/claude_desktop_config.json`
74
- (macOS) or `%APPDATA%/Claude/claude_desktop_config.json` (Windows):
75
-
76
- ```json
77
- {
78
- "mcpServers": {
79
- "impreza": {
80
- "command": "npx",
81
- "args": ["-y", "impreza-mcp"],
82
- "env": {
83
- "IMPREZA_API_KEY": "imp_...",
84
- "IMPREZA_API_SECRET": "..."
85
- }
86
- }
87
- }
88
- }
89
- ```
90
-
91
- Restart Claude Code. The tools appear under the MCP icon.
92
-
93
- **Cursor** — add to `~/.cursor/mcp.json` (same shape as above).
94
-
95
- **Continue** — add to `~/.continue/config.json`:
96
-
97
- ```json
98
- {
99
- "experimental": {
100
- "modelContextProtocolServers": [
101
- {
102
- "transport": {
103
- "type": "stdio",
104
- "command": "npx",
105
- "args": ["-y", "impreza-mcp"],
106
- "env": {
107
- "IMPREZA_API_KEY": "imp_...",
108
- "IMPREZA_API_SECRET": "..."
109
- }
110
- }
111
- }
112
- ]
113
- }
114
- }
115
- ```
116
-
117
- **Zed** — add to your settings:
118
-
119
- ```json
120
- {
121
- "context_servers": {
122
- "impreza": {
123
- "command": {
124
- "path": "npx",
125
- "args": ["-y", "impreza-mcp"],
126
- "env": {
127
- "IMPREZA_API_KEY": "imp_...",
128
- "IMPREZA_API_SECRET": "..."
129
- }
130
- }
131
- }
132
- }
133
- }
134
- ```
135
-
136
- ## Usage in chat
137
-
138
- After setup, talk to your AI naturally:
139
-
140
- > *"List my Impreza servers."* → calls `impreza_list_servers`
141
- >
142
- > *"Deploy this directory to my Impreza VPS, expose via .onion."* →
143
- > packages the cwd as a Dockerfile-mode custom deploy, uploads, deploys
144
- > with `onion=true`, reports the .onion address.
145
- >
146
- > *"What apps are running on my agent?"* → calls
147
- > `impreza_list_deployments` filtered to the right server.
148
-
149
- ## Auth + security
150
-
151
- `IMPREZA_API_KEY` + `IMPREZA_API_SECRET` live in the AI tool's MCP
152
- config env — not in any file on disk owned by `impreza-mcp` itself.
153
- The MCP server holds the secret only in memory and only attaches it
154
- as HTTP request headers.
155
-
156
- The IP of the machine running this MCP server (almost always your
157
- laptop) must be on the API key's whitelist. Manage the whitelist in
158
- your Impreza clientarea.
159
-
160
- ## Build
161
-
162
- ```sh
163
- npm install
164
- npm run build
165
- # dist/server.js is the entry point
166
- ```
167
-
168
- ## License
169
-
170
- MIT — see `LICENSE`.
1
+ # impreza-mcp
2
+
3
+ [Model Context Protocol](https://modelcontextprotocol.io) server for
4
+ [Impreza Host](https://imprezahost.com). Lets AI coding tools (Claude
5
+ Code, Cursor, Codex CLI, Continue, Zed, ...) deploy customer-built
6
+ apps to managed Impreza VPSes without leaving the chat.
7
+
8
+ When you say "deploy this for me" to Claude with this MCP server
9
+ loaded, Claude calls `impreza_deploy_custom` directly — packages your
10
+ project, uploads it, builds + runs on your Impreza VPS, and reports
11
+ back the URL.
12
+
13
+ > **No-install alternative:** if your AI client supports remote MCP
14
+ > connectors (e.g. Claude), you can skip this package and add the hosted
15
+ > connector `https://mcp.imprezahost.com/mcp` instead authorize in your
16
+ > Impreza clientarea, no API key and no IP whitelist. It exposes the same
17
+ > full toolset, gated by the scopes you grant on consent (read / deploy /
18
+ > manage). Install this package when you want a local server — e.g. to deploy
19
+ > a project folder straight from your machine, which the hosted connector can't.
20
+
21
+ ## Status
22
+
23
+ **Full surface live.** All 14 tools shipped + a setup wizard
24
+ that generates ready-to-paste config snippets for 5 AI tools.
25
+
26
+ | Tool | Wraps |
27
+ |------|-------|
28
+ | `impreza_list_servers` | `GET /v1/platform/servers` |
29
+ | `impreza_list_apps` | `GET /v1/platform/apps` |
30
+ | `impreza_list_deployments` | `GET /v1/platform/deployments` + `/custom` (merged) |
31
+ | `impreza_deploy_custom` | `POST /v1/platform/deployments/custom` (3 modes) |
32
+ | `impreza_deploy_catalog_app` | `POST /v1/platform/deployments` |
33
+ | `impreza_uninstall_deployment` | `POST .../uninstall` |
34
+ | `impreza_get_logs` | `POST .../logs` (sync tail, last N lines) |
35
+ | `impreza_restart_deployment` | `POST .../restart` |
36
+ | `impreza_redeploy_deployment` | `POST .../custom/{id}/redeploy` (in-place rebuild, same domain) |
37
+ | `impreza_add_onion` | `POST .../onion/add` |
38
+ | `impreza_change_domain` | `POST .../domain` |
39
+ | `impreza_git_webhook_status` | `GET .../custom/{id}/git-webhook` |
40
+ | `impreza_git_webhook_connect` | `POST .../custom/{id}/git-webhook/connect` |
41
+ | `impreza_git_webhook_disconnect` | `POST .../custom/{id}/git-webhook/disconnect` |
42
+
43
+ ## Install + setup
44
+
45
+ ### Prerequisites
46
+
47
+ - Node ≥ 20
48
+ - An Impreza Host account with an API key + secret (clientarea →
49
+ Impreza API). The key's IP factor is per-key: `whitelist` (default —
50
+ add this machine's IP), `tofu` (trust-on-first-use — auto-pins the
51
+ first IP), or `keyonly` (no IP factor)
52
+
53
+ ### One-shot via `npx`
54
+
55
+ No global install needed — `npx impreza-mcp` works.
56
+
57
+ ### Or install globally
58
+
59
+ ```sh
60
+ npm install -g impreza-mcp
61
+ ```
62
+
63
+ ### Get a ready-to-paste config snippet
64
+
65
+ The fastest path: ask the binary itself.
66
+
67
+ ```sh
68
+ npx impreza-mcp setup --tool claude-code
69
+ # also: cursor | continue | zed | codex-cli
70
+ ```
71
+
72
+ The wizard prints the JSON block to drop into your AI tool's MCP
73
+ config + the exact file path + the post-config step (usually "fully
74
+ quit + re-open the AI tool"). It does NOT write to disk — paste it
75
+ yourself so you don't accidentally clobber an existing config with
76
+ other MCP servers.
77
+
78
+ ### Or wire it in manually
79
+
80
+ **Claude Code** — add to `~/Library/Application Support/Claude/claude_desktop_config.json`
81
+ (macOS) or `%APPDATA%/Claude/claude_desktop_config.json` (Windows):
82
+
83
+ ```json
84
+ {
85
+ "mcpServers": {
86
+ "impreza": {
87
+ "command": "npx",
88
+ "args": ["-y", "impreza-mcp"],
89
+ "env": {
90
+ "IMPREZA_API_KEY": "imp_...",
91
+ "IMPREZA_API_SECRET": "..."
92
+ }
93
+ }
94
+ }
95
+ }
96
+ ```
97
+
98
+ Restart Claude Code. The tools appear under the MCP icon.
99
+
100
+ **Cursor** — add to `~/.cursor/mcp.json` (same shape as above).
101
+
102
+ **Continue** — add to `~/.continue/config.json`:
103
+
104
+ ```json
105
+ {
106
+ "experimental": {
107
+ "modelContextProtocolServers": [
108
+ {
109
+ "transport": {
110
+ "type": "stdio",
111
+ "command": "npx",
112
+ "args": ["-y", "impreza-mcp"],
113
+ "env": {
114
+ "IMPREZA_API_KEY": "imp_...",
115
+ "IMPREZA_API_SECRET": "..."
116
+ }
117
+ }
118
+ }
119
+ ]
120
+ }
121
+ }
122
+ ```
123
+
124
+ **Zed** — add to your settings:
125
+
126
+ ```json
127
+ {
128
+ "context_servers": {
129
+ "impreza": {
130
+ "command": {
131
+ "path": "npx",
132
+ "args": ["-y", "impreza-mcp"],
133
+ "env": {
134
+ "IMPREZA_API_KEY": "imp_...",
135
+ "IMPREZA_API_SECRET": "..."
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
141
+ ```
142
+
143
+ ## Usage in chat
144
+
145
+ After setup, talk to your AI naturally:
146
+
147
+ > *"List my Impreza servers."* calls `impreza_list_servers`
148
+ >
149
+ > *"Deploy this directory to my Impreza VPS, expose via .onion."* →
150
+ > packages the cwd as a Dockerfile-mode custom deploy, uploads, deploys
151
+ > with `onion=true`, reports the .onion address.
152
+ >
153
+ > *"What apps are running on my agent?"* calls
154
+ > `impreza_list_deployments` filtered to the right server.
155
+
156
+ ## Auth + security
157
+
158
+ `IMPREZA_API_KEY` + `IMPREZA_API_SECRET` live in the AI tool's MCP
159
+ config env — not in any file on disk owned by `impreza-mcp` itself.
160
+ The MCP server holds the secret only in memory and only attaches it
161
+ as HTTP request headers.
162
+
163
+ The API key's IP second factor is per-key: leave it on `whitelist` and
164
+ add this machine's IP, or pick `tofu` (auto-pins the first IP) or
165
+ `keyonly` (no IP factor) in your Impreza clientarea — so the whitelist
166
+ step is now optional. Tokens issued via the hosted OAuth connector are
167
+ scoped and revocable under clientarea → Impreza API → Connected Apps.
168
+
169
+ ## Build
170
+
171
+ ```sh
172
+ npm install
173
+ npm run build
174
+ # dist/server.js is the entry point
175
+ ```
176
+
177
+ ## License
178
+
179
+ MIT — see `LICENSE`.
@@ -0,0 +1,11 @@
1
+ export interface StoredCredentials {
2
+ apiKey: string;
3
+ apiSecret: string;
4
+ baseURL?: string;
5
+ }
6
+ export declare function credentialsDir(): string;
7
+ export declare function credentialsPath(): string;
8
+ /** Load stored credentials, or null when absent / unreadable / malformed. */
9
+ export declare function loadStoredCredentials(): StoredCredentials | null;
10
+ /** Write credentials 0600 under ~/.impreza (created 0700). Returns the path. */
11
+ export declare function saveCredentials(creds: StoredCredentials): string;
@@ -0,0 +1,53 @@
1
+ // Local credential store for device-pairing (Tier 1).
2
+ //
3
+ // `impreza-mcp login --code …` exchanges a pairing code for an API key and
4
+ // writes it here so the MCP server can authenticate WITHOUT the secret ever
5
+ // being pasted into a tool config by hand. The file is created 0600 (owner
6
+ // read/write only) under ~/.impreza; the env vars still win when set, so the
7
+ // manual `setup` path is unaffected. (A future hardening step can move this
8
+ // into the OS keychain — Keychain / Credential Manager / libsecret.)
9
+ import { homedir } from 'node:os';
10
+ import { join } from 'node:path';
11
+ import { mkdirSync, readFileSync, writeFileSync, chmodSync } from 'node:fs';
12
+ export function credentialsDir() {
13
+ return join(homedir(), '.impreza');
14
+ }
15
+ export function credentialsPath() {
16
+ return join(credentialsDir(), 'credentials.json');
17
+ }
18
+ /** Load stored credentials, or null when absent / unreadable / malformed. */
19
+ export function loadStoredCredentials() {
20
+ try {
21
+ const parsed = JSON.parse(readFileSync(credentialsPath(), 'utf8'));
22
+ if (parsed &&
23
+ typeof parsed === 'object' &&
24
+ typeof parsed.apiKey === 'string' &&
25
+ typeof parsed.apiSecret === 'string') {
26
+ const rec = parsed;
27
+ const out = { apiKey: rec.apiKey, apiSecret: rec.apiSecret };
28
+ if (typeof rec.baseURL === 'string') {
29
+ out.baseURL = rec.baseURL;
30
+ }
31
+ return out;
32
+ }
33
+ }
34
+ catch {
35
+ // absent / unreadable / not JSON → treat as "no stored credentials"
36
+ }
37
+ return null;
38
+ }
39
+ /** Write credentials 0600 under ~/.impreza (created 0700). Returns the path. */
40
+ export function saveCredentials(creds) {
41
+ mkdirSync(credentialsDir(), { recursive: true, mode: 0o700 });
42
+ const path = credentialsPath();
43
+ writeFileSync(path, JSON.stringify(creds, null, 2) + '\n', { mode: 0o600 });
44
+ try {
45
+ // writeFileSync's mode is not applied to a pre-existing file; force it.
46
+ chmodSync(path, 0o600);
47
+ }
48
+ catch {
49
+ // best-effort — Windows ignores POSIX modes (ACL-based instead)
50
+ }
51
+ return path;
52
+ }
53
+ //# sourceMappingURL=credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,EAAE;AACF,2EAA2E;AAC3E,4EAA4E;AAC5E,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,qEAAqE;AAErE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAQ5E,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,kBAAkB,CAAC,CAAC;AACpD,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,qBAAqB;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5E,IACE,MAAM;YACN,OAAO,MAAM,KAAK,QAAQ;YAC1B,OAAQ,MAAkC,CAAC,MAAM,KAAK,QAAQ;YAC9D,OAAQ,MAAkC,CAAC,SAAS,KAAK,QAAQ,EACjE,CAAC;YACD,MAAM,GAAG,GAAG,MAAiC,CAAC;YAC9C,MAAM,GAAG,GAAsB,EAAE,MAAM,EAAE,GAAG,CAAC,MAAgB,EAAE,SAAS,EAAE,GAAG,CAAC,SAAmB,EAAE,CAAC;YACpG,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACpC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;YAC5B,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAAC,KAAwB;IACtD,SAAS,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5E,IAAI,CAAC;QACH,wEAAwE;QACxE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,gEAAgE;IAClE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function runLogin(argv: readonly string[]): Promise<never>;
package/dist/login.js ADDED
@@ -0,0 +1,130 @@
1
+ // `npx impreza-mcp login --code pair_…` — device-pairing exchange (Tier 1).
2
+ //
3
+ // Trades a single-use pairing code (generated in the Impreza clientarea →
4
+ // "Connect an AI assistant") for a scoped, expiring API key, and stores it
5
+ // locally so the MCP server authenticates without the customer ever copying
6
+ // a secret by hand. The api_secret is NEVER printed.
7
+ import { saveCredentials } from './credentials.js';
8
+ import { VERSION } from './version.js';
9
+ export async function runLogin(argv) {
10
+ const opts = parseFlags(argv);
11
+ if (opts.help) {
12
+ printHelp();
13
+ process.exit(0);
14
+ }
15
+ if (!opts.code) {
16
+ console.error('error: --code <pair_…> is required');
17
+ console.error('');
18
+ printHelp();
19
+ process.exit(2);
20
+ }
21
+ const baseURL = (opts.baseURL ?? 'https://api.imprezahost.com').replace(/\/+$/, '');
22
+ if (!baseURL.startsWith('https://')) {
23
+ // Credentials travel in headers on every later call — refuse a
24
+ // downgraded endpoint, same rule the server enforces on IMPREZA_BASE_URL.
25
+ console.error('error: --base-url must be an https:// URL');
26
+ process.exit(2);
27
+ }
28
+ let data;
29
+ try {
30
+ const res = await fetch(`${baseURL}/v1/mcp/pair`, {
31
+ method: 'POST',
32
+ headers: {
33
+ 'Content-Type': 'application/json',
34
+ Accept: 'application/json',
35
+ 'User-Agent': `impreza-mcp/${VERSION}`,
36
+ },
37
+ body: JSON.stringify({ code: opts.code }),
38
+ });
39
+ const text = await res.text();
40
+ let env;
41
+ try {
42
+ env = JSON.parse(text);
43
+ }
44
+ catch {
45
+ console.error(`error: unexpected response from ${baseURL} (HTTP ${res.status})`);
46
+ process.exit(1);
47
+ }
48
+ if (!res.ok || env.success === false || env.error) {
49
+ console.error(`error: ${env.error?.message ?? `pairing failed (HTTP ${res.status})`}`);
50
+ process.exit(1);
51
+ }
52
+ data = env.data ?? {};
53
+ }
54
+ catch (err) {
55
+ console.error(`error: could not reach ${baseURL} — ${err.message}`);
56
+ process.exit(1);
57
+ }
58
+ const apiKey = data.api_key;
59
+ const apiSecret = data.api_secret;
60
+ if (typeof apiKey !== 'string' || typeof apiSecret !== 'string') {
61
+ console.error('error: server did not return a key + secret');
62
+ process.exit(1);
63
+ }
64
+ const resolvedBase = typeof data.base_url === 'string' ? data.base_url.replace(/\/v1\/?$/, '') : baseURL;
65
+ const path = saveCredentials({ apiKey, apiSecret, baseURL: resolvedBase });
66
+ // Success — never echo the secret.
67
+ const scope = Array.isArray(data.scopes) && data.scopes.length ? data.scopes.join(', ') : '(full)';
68
+ const expiry = typeof data.expires_at === 'string' ? data.expires_at : null;
69
+ console.log('Paired. Credentials stored (owner-readable only) at:');
70
+ console.log(` ${path}`);
71
+ console.log(` scope: ${scope}${expiry ? ` expires: ${expiry}` : ''}`);
72
+ console.log('');
73
+ console.log('Add impreza-mcp to your AI tool — no API key needed, it loads from the stored file:');
74
+ console.log('');
75
+ console.log(JSON.stringify({ mcpServers: { impreza: { command: 'npx', args: ['-y', 'impreza-mcp'] } } }, null, 2));
76
+ console.log('');
77
+ console.log('Then restart your AI tool and ask it to run `impreza_list_servers`.');
78
+ process.exit(0);
79
+ }
80
+ function parseFlags(argv) {
81
+ const out = { help: false };
82
+ for (let i = 0; i < argv.length; i++) {
83
+ const a = argv[i];
84
+ if (a === undefined)
85
+ continue;
86
+ if (a === '--help' || a === '-h') {
87
+ out.help = true;
88
+ }
89
+ else if (a === '--code') {
90
+ const next = argv[i + 1];
91
+ if (next === undefined) {
92
+ console.error('error: --code requires a value');
93
+ process.exit(2);
94
+ }
95
+ out.code = next;
96
+ i++;
97
+ }
98
+ else if (a.startsWith('--code=')) {
99
+ out.code = a.slice('--code='.length);
100
+ }
101
+ else if (a === '--base-url') {
102
+ const next = argv[i + 1];
103
+ if (next === undefined) {
104
+ console.error('error: --base-url requires a value');
105
+ process.exit(2);
106
+ }
107
+ out.baseURL = next;
108
+ i++;
109
+ }
110
+ else if (a.startsWith('--base-url=')) {
111
+ out.baseURL = a.slice('--base-url='.length);
112
+ }
113
+ else {
114
+ console.error(`error: unknown flag "${a}"`);
115
+ process.exit(2);
116
+ }
117
+ }
118
+ return out;
119
+ }
120
+ function printHelp() {
121
+ console.log('Usage: npx impreza-mcp login --code pair_xxxxxxxx');
122
+ console.log('');
123
+ console.log('Generate a pairing code in your Impreza clientarea → "Connect an AI');
124
+ console.log('assistant", then run this command to store a scoped API key locally.');
125
+ console.log('');
126
+ console.log('Flags:');
127
+ console.log(' --code <pair_…> The single-use pairing code (required).');
128
+ console.log(' --base-url <url> Override the API base (default https://api.imprezahost.com).');
129
+ }
130
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -208,6 +208,19 @@ const TOOLS = [
208
208
  additionalProperties: false,
209
209
  },
210
210
  },
211
+ {
212
+ name: 'impreza_redeploy_deployment',
213
+ description: 'Rebuild a CUSTOM deployment in place from its current source — re-pull the image, re-clone the watched git ref at its new HEAD, or rebuild — and swap the container with near-zero downtime. Reuses the same deployment, so the domain, host port, and URL never change. This is the in-place way to ship a new build of a running custom app the customer changed — PREFER it over uninstall + recreate. Optional `vars` are merged into the stored environment before the rebuild (rotate a secret / add a var without a teardown); system vars (DEPLOYMENT_ID, DOMAIN_URL, HOST_PORT, ...) are preserved. The source itself is not changed here — to change the image ref or git URL, recreate under the same name (the *.imprezaapps.com domain is preserved either way). Custom deployments only; returns the deployment flipped to `updating` — poll impreza_list_deployments for running/failed.',
214
+ inputSchema: {
215
+ type: 'object',
216
+ properties: {
217
+ deployment_id: { type: 'string', description: 'The dpl_... id of the custom deployment to rebuild.' },
218
+ vars: { type: 'object', description: 'Optional env vars merged into the deployment before the rebuild. System vars are preserved.' },
219
+ },
220
+ required: ['deployment_id'],
221
+ additionalProperties: false,
222
+ },
223
+ },
211
224
  {
212
225
  name: 'impreza_change_domain',
213
226
  description: 'Re-route a RUNNING deployment to a new clearnet hostname without touching its container or data. The agent regenerates its Caddy fragment + reloads zero-downtime; Let\'s Encrypt issues a fresh cert on the first hit. Use to migrate from an auto-subdomain to a custom domain, or vice-versa, or just to rename. Deployment must be in status=running (Phase 9.19).',
@@ -354,6 +367,16 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
354
367
  return toError('deployment_id is required');
355
368
  return toResult(await impreza.post(`/v1/platform/deployments/${encodeURIComponent(dep)}/restart`, {}));
356
369
  }
370
+ case 'impreza_redeploy_deployment': {
371
+ const dep = String(args.deployment_id ?? '');
372
+ if (!dep)
373
+ return toError('deployment_id is required');
374
+ const body = {};
375
+ if (args.vars && typeof args.vars === 'object') {
376
+ body.vars = args.vars;
377
+ }
378
+ return toResult(await impreza.post(`/v1/platform/deployments/custom/${encodeURIComponent(dep)}/redeploy`, body));
379
+ }
357
380
  case 'impreza_change_domain': {
358
381
  const dep = String(args.deployment_id ?? '');
359
382
  const newDomain = String(args.domain ?? '');
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AACA,EAAE;AACF,gEAAgE;AAChE,EAAE;AACF,sEAAsE;AACtE,wEAAwE;AACxE,qEAAqE;AACrE,8CAA8C;AAC9C,EAAE;AACF,cAAc;AACd,2EAA2E;AAC3E,qDAAqD;AACrD,wDAAwD;AACxD,EAAE;AACF,eAAe;AACf,yEAAyE;AACzE,4EAA4E;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,aAAa,EAMb,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,wEAAwE;AACxE,sEAAsE;AACtE,wEAAwE;AAExE,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;IACpB,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,2DAA2D;AAC7D,CAAC;AACD,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,CAAC,wFAAwF,CAAC,CAAC;IACtG,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,CAAC,8FAA8F,CAAC,CAAC;IAC5G,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,wEAAwE;AACxE,iBAAiB;AACjB,wEAAwE;AAExE,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,gDAAgD,CAAC;IACpF,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,gCAAgC,CAAC;IACxE,uEAAuE;IACvE,qEAAqE;IACrE,gEAAgE;IAChE,sEAAsE;IACtE,+DAA+D;IAC/D,gBAAgB,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,GAAG,EAAE;SACL,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,0CAA0C,CAAC;SACnF,OAAO,CAAC,6BAA6B,CAAC;CAC1C,CAAC,CAAC;AAEH,IAAI,GAA8B,CAAC;AACnC,IAAI,CAAC;IACH,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACb,wEAAwE;IACxE,IAAI,GAAG,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACtD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,CAAC,KAAK,CACX,iFAAiF,CAClF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC;IAChC,OAAO,EAAE,GAAG,CAAC,gBAAgB;IAC7B,MAAM,EAAE,GAAG,CAAC,eAAe;IAC3B,SAAS,EAAE,GAAG,CAAC,kBAAkB;CAClC,CAAC,CAAC;AAEH,wEAAwE;AACxE,mBAAmB;AACnB,wEAAwE;AAExE,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,EACzC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;AAEF,sEAAsE;AACtE,uEAAuE;AACvE,yEAAyE;AAEzE,MAAM,KAAK,GAAG;IACZ;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EACT,6GAA6G;YAC7G,2EAA2E;YAC3E,4EAA4E;QAC9E,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;YACd,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,0FAA0F;YAC1F,4EAA4E;YAC5E,0FAA0F;QAC5F,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mEAAmE,EAAE;gBAC5G,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0DAA0D,EAAE;aACtG;YACD,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD;QACE,IAAI,EAAE,0BAA0B;QAChC,WAAW,EACT,+EAA+E;YAC/E,uDAAuD;YACvD,uGAAuG;QACzG,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sCAAsC,EAAE;gBACjF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gEAAgE,EAAE;aAC1G;YACD,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EACT,wFAAwF;YACxF,oFAAoF;YACpF,oGAAoG;YACpG,sGAAsG;YACtG,uGAAuG;YACvG,4EAA4E;YAC5E,2GAA2G;YAC3G,+FAA+F;YAC/F,gGAAgG;QAClG,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2DAA2D,EAAE;gBAClG,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kDAAkD,EAAE;gBAC7F,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE;gBAChG,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oEAAoE,EAAE;gBAC7G,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,sDAAsD,EAAE;gBAC/F,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6DAA6D,EAAE;gBACpG,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8CAA8C,EAAE;gBAC1F,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6CAA6C,EAAE;gBAC3F,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qDAAqD,EAAE;gBAC5F,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0DAA0D,EAAE;gBAClG,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4FAA4F,EAAE;gBAClI,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+JAA+J,EAAE;gBACzM,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mDAAmD,EAAE;gBAC7F,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,kFAAkF,EAAE;gBACzK,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qFAAqF,EAAE;gBAC/H,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gFAAgF,EAAE;gBAClI,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wDAAwD,EAAE;aACpG;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC;YACtC,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD;QACE,IAAI,EAAE,8BAA8B;QACpC,WAAW,EACT,iEAAiE;YACjE,qEAAqE;YACrE,+EAA+E;QACjF,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;gBAC3E,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,0CAA0C,EAAE;aACzF;YACD,QAAQ,EAAE,CAAC,eAAe,CAAC;YAC3B,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,mTAAmT;YACnT,0YAA0Y;QAC5Y,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;gBACzE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iDAAiD,EAAE;gBACzF,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0DAA0D,EAAE;aAC3G;YACD,QAAQ,EAAE,CAAC,eAAe,CAAC;YAC3B,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EACT,yOAAyO;QAC3O,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;aAC7E;YACD,QAAQ,EAAE,CAAC,eAAe,CAAC;YAC3B,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD;QACE,IAAI,EAAE,6BAA6B;QACnC,WAAW,EACT,y2BAAy2B;QAC32B,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qDAAqD,EAAE;gBACrG,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6FAA6F,EAAE;aACrI;YACD,QAAQ,EAAE,CAAC,eAAe,CAAC;YAC3B,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EACT,wWAAwW;QAC1W,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;gBAC7E,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sEAAsE,EAAE;aAChH;YACD,QAAQ,EAAE,CAAC,eAAe,EAAE,QAAQ,CAAC;YACrC,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,+bAA+b;QACjc,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;aAC5E;YACD,QAAQ,EAAE,CAAC,eAAe,CAAC;YAC3B,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EACT,8aAA8a;QAChb,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;aACzF;YACD,QAAQ,EAAE,CAAC,eAAe,CAAC;YAC3B,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD;QACE,IAAI,EAAE,6BAA6B;QACnC,WAAW,EACT,o2BAAo2B;QACt2B,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uEAAuE,EAAE;gBACvH,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6PAA6P,EAAE;aAC3S;YACD,QAAQ,EAAE,CAAC,eAAe,CAAC;YAC3B,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD;QACE,IAAI,EAAE,gCAAgC;QACtC,WAAW,EACT,ocAAoc;QACtc,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;gBAC/E,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yFAAyF,EAAE;aACvI;YACD,QAAQ,EAAE,CAAC,eAAe,CAAC;YAC3B,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EACT,gYAAgY;QAClY,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;gBACnF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;gBACjE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qDAAqD,EAAE;gBACnG,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yEAAyE,EAAE;gBAClH,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,8CAA8C,EAAE;gBACvF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gDAAgD,EAAE;aACxF;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;YAClC,oBAAoB,EAAE,KAAK;SAC5B;KACF;CACO,CAAC;AAEX,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAA0C,EAAE,CAAC,CAAC,CAAC;AAEtH,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IAC5D,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;IAChD,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;IAExD,IAAI,CAAC;QACH,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,sBAAsB;gBACzB,OAAO,QAAQ,CAAC,MAAM,OAAO,CAAC,GAAG,CAAa,sBAAsB,CAAC,CAAC,CAAC;YAEzE,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,MAAM,KAAK,GAA2B,EAAE,CAAC;gBACzC,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;oBAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAChE,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;oBAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACtE,OAAO,QAAQ,CAAC,MAAM,OAAO,CAAC,GAAG,CAAiC,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAAC;YACjG,CAAC;YAED,KAAK,0BAA0B,CAAC,CAAC,CAAC;gBAChC,MAAM,KAAK,GAA2B,EAAE,CAAC;gBACzC,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;oBAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACtE,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;oBAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAChE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAC1C,OAAO,CAAC,GAAG,CAAiB,0BAA0B,EAAE,KAAK,CAAC;oBAC9D,OAAO;yBACJ,GAAG,CAAiB,iCAAiC,EAAE,KAAK,CAAC;wBAC9D,2DAA2D;wBAC3D,wDAAwD;wBACxD,+BAA+B;yBAC9B,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAmB,CAAC;iBAClE,CAAC,CAAC;gBACH,OAAO,QAAQ,CAAC;oBACd,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;oBAC5D,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;oBACnC,aAAa,EAAE,OAAO,CAAC,KAAK;oBAC5B,YAAY,EAAE,MAAM,CAAC,KAAK;iBAC3B,CAAC,CAAC;YACL,CAAC;YAED,KAAK,uBAAuB;gBAC1B,OAAO,QAAQ,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YAE5C,KAAK,8BAA8B,CAAC,CAAC,CAAC;gBACpC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;gBAC7C,IAAI,CAAC,GAAG;oBAAE,OAAO,OAAO,CAAC,2BAA2B,CAAC,CAAC;gBACtD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;gBACvC,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAClD,OAAO,QAAQ,CACb,MAAM,OAAO,CAAC,IAAI,CAChB,4BAA4B,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAC/D,IAAI,CACL,CACF,CAAC;YACJ,CAAC;YAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;gBAC7C,IAAI,CAAC,GAAG;oBAAE,OAAO,OAAO,CAAC,2BAA2B,CAAC,CAAC;gBACtD,MAAM,IAAI,GAA+C,EAAE,CAAC;gBAC5D,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;oBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC5D,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;oBAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;gBACpF,OAAO,QAAQ,CACb,MAAM,OAAO,CAAC,IAAI,CAChB,4BAA4B,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAC1D,IAAI,CACL,CACF,CAAC;YACJ,CAAC;YAED,KAAK,4BAA4B,CAAC,CAAC,CAAC;gBAClC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;gBAC7C,IAAI,CAAC,GAAG;oBAAE,OAAO,OAAO,CAAC,2BAA2B,CAAC,CAAC;gBACtD,OAAO,QAAQ,CACb,MAAM,OAAO,CAAC,IAAI,CAChB,4BAA4B,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAC7D,EAAE,CACH,CACF,CAAC;YACJ,CAAC;YAED,KAAK,6BAA6B,CAAC,CAAC,CAAC;gBACnC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;gBAC7C,IAAI,CAAC,GAAG;oBAAE,OAAO,OAAO,CAAC,2BAA2B,CAAC,CAAC;gBACtD,MAAM,IAAI,GAAuC,EAAE,CAAC;gBACpD,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAA+B,CAAC;gBACnD,CAAC;gBACD,OAAO,QAAQ,CACb,MAAM,OAAO,CAAC,IAAI,CAOhB,mCAAmC,kBAAkB,CAAC,GAAG,CAAC,WAAW,EACrE,IAAI,CACL,CACF,CAAC;YACJ,CAAC;YAED,KAAK,uBAAuB,CAAC,CAAC,CAAC;gBAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;gBAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,GAAG;oBAAE,OAAO,OAAO,CAAC,2BAA2B,CAAC,CAAC;gBACtD,IAAI,CAAC,SAAS;oBAAE,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC;gBACrD,OAAO,QAAQ,CACb,MAAM,OAAO,CAAC,IAAI,CAChB,4BAA4B,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAC5D,EAAE,MAAM,EAAE,SAAS,EAAE,CACtB,CACF,CAAC;YACJ,CAAC;YAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;gBAC7C,IAAI,CAAC,GAAG;oBAAE,OAAO,OAAO,CAAC,2BAA2B,CAAC,CAAC;gBACtD,OAAO,QAAQ,CACb,MAAM,OAAO,CAAC,IAAI,CAChB,4BAA4B,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAC/D,EAAE,CACH,CACF,CAAC;YACJ,CAAC;YAED,KAAK,4BAA4B,CAAC,CAAC,CAAC;gBAClC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;gBAC7C,IAAI,CAAC,GAAG;oBAAE,OAAO,OAAO,CAAC,2BAA2B,CAAC,CAAC;gBACtD,OAAO,QAAQ,CACb,MAAM,OAAO,CAAC,GAAG,CAOd,mCAAmC,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,CAC7E,CAAC;YACJ,CAAC;YAED,KAAK,6BAA6B,CAAC,CAAC,CAAC;gBACnC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;gBAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;gBAC1C,IAAI,CAAC,GAAG;oBAAE,OAAO,OAAO,CAAC,2BAA2B,CAAC,CAAC;gBACtD,uEAAuE;gBACvE,yEAAyE;gBACzE,OAAO,QAAQ,CACb,MAAM,OAAO,CAAC,IAAI,CAQhB,mCAAmC,kBAAkB,CAAC,GAAG,CAAC,sBAAsB,EAChF,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAC/B,CACF,CAAC;YACJ,CAAC;YAED,KAAK,gCAAgC,CAAC,CAAC,CAAC;gBACtC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;gBAC7C,IAAI,CAAC,GAAG;oBAAE,OAAO,OAAO,CAAC,2BAA2B,CAAC,CAAC;gBACtD,MAAM,IAAI,GAA4B,EAAE,CAAC;gBACzC,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE,CAAC;oBAClE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACpC,CAAC;gBACD,OAAO,QAAQ,CACb,MAAM,OAAO,CAAC,IAAI,CAChB,mCAAmC,kBAAkB,CAAC,GAAG,CAAC,yBAAyB,EACnF,IAAI,CACL,CACF,CAAC;YACJ,CAAC;YAED,KAAK,4BAA4B,CAAC,CAAC,CAAC;gBAClC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;gBAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,OAAO;oBAAE,OAAO,OAAO,CAAC,sBAAsB,CAAC,CAAC;gBACrD,IAAI,CAAC,OAAO;oBAAE,OAAO,OAAO,CAAC,sBAAsB,CAAC,CAAC;gBACrD,MAAM,IAAI,GAA4B,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;gBAC/E,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;oBAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC9E,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;oBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC/D,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS;oBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC7D,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;oBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACtE,OAAO,QAAQ,CACb,MAAM,OAAO,CAAC,IAAI,CAAa,0BAA0B,EAAE,IAAI,CAAC,CACjE,CAAC;YACJ,CAAC;YAED;gBACE,OAAO,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;AACH,CAAC,CAAC,CAAC;AA0BH,KAAK,UAAU,YAAY,CAAC,IAA6B;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,IAAI,GAAqB,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACjE,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;QAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC/D,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC7D,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACzD,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;QAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACxE,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;QAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC9E,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAA+B,CAAC;IAEjG,IAAI,SAAS,GAAG,EAAE,CAAC;IAEnB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;YAC7E,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,MAAM;QAER,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,IAAI,MAAM,EAAE,CAAC;gBACX,iEAAiE;gBACjE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;gBACtB,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO;oBAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAClF,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC;gBAChH,IAAI,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACpD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBACtE,CAAC;gBACD,IAAI,MAAM,KAAK,MAAM;oBAAE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;gBACrD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;oBACrB,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;wBACtD,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAC;oBAC/G,CAAC;oBACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC9B,CAAC;gBACD,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,KAAK,YAAY,EAAE,CAAC;oBAC9G,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;gBAC9C,CAAC;gBACD,SAAS;oBACP,MAAM,KAAK,YAAY;wBACrB,CAAC,CAAC,4GAA4G;wBAC9G,CAAC,CAAC,UAAU,MAAM,GAAG,CAAC;YAC5B,CAAC;iBAAM,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACpD,mEAAmE;gBACnE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC7C,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAClC,0CAA0C,EAC1C,kBAAkB,EAClB,MAAM,CAAC,KAAK,CACb,CAAC;oBACF,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;oBACpC,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,KAAK,YAAY,EAAE,CAAC;wBAC9G,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;oBAC9C,CAAC;oBACD,SAAS,GAAG,cAAc,MAAM,CAAC,SAAS,QAAQ,MAAM,CAAC,UAAU,GAAG,CAAC;gBACzE,CAAC;wBAAS,CAAC;oBACT,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACzB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;YACtG,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,UAAU;YACb,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACxD,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAC;YACzG,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,MAAM;QAER;YACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,4CAA4C,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAa,iCAAiC,EAAE,IAAI,CAAC,CAAC;IACxF,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC;IACxD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,wEAAwE;AACxE,mEAAmE;AACnE,wEAAwE;AAExE,SAAS,QAAQ,CAAC,OAAgB;IAChC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,OAAe;IAC9B,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1C,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,OAAO;AACP,wEAAwE;AAExE,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,kEAAkE;IAClE,gDAAgD;AAClD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "impreza-mcp",
3
- "version": "0.2.1",
4
- "description": "Model Context Protocol server for Impreza Host — lets Claude Code / Cursor / Codex / Continue / Zed deploy customer-built apps to managed Impreza VPSes without leaving the chat.",
3
+ "version": "0.3.1",
4
+ "description": "Model Context Protocol server for Impreza Host — deploy your apps to your own VPS from Claude / Cursor / Codex / Continue / Zed, right in the chat. Install locally with an API key, or use the hosted remote MCP + OAuth connector (same full toolset, no install).",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "bin": {