@botuyo/mcp 0.3.16 → 0.3.22
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 +119 -28
- package/dist/__tests__/client.spec.js +50 -0
- package/dist/__tests__/client.spec.js.map +1 -1
- package/dist/client.d.ts +15 -1
- package/dist/client.js +49 -7
- package/dist/client.js.map +1 -1
- package/dist/commands/auth.js +17 -17
- package/dist/index.js +75 -2
- package/dist/index.js.map +1 -1
- package/dist/tools/configure_agent_tool.js +4 -4
- package/dist/tools/example_agent.d.ts +5 -3
- package/dist/tools/example_agent.js +10 -8
- package/dist/tools/example_agent.js.map +1 -1
- package/dist/tools/switch_tenant.js +1 -1
- package/dist/tools/switch_tenant.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,39 +6,49 @@ Create and manage BotUyo AI agents directly from your AI coding tools — **no c
|
|
|
6
6
|
|
|
7
7
|
## Quickstart
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
The fastest way — one command configures your editor **and** logs you in:
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
```sh
|
|
12
|
+
npx @botuyo/mcp setup
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
It auto-detects your editor (Cursor, VS Code / Antigravity, Claude Desktop), writes the MCP config, and walks you through authentication.
|
|
12
16
|
|
|
13
|
-
###
|
|
17
|
+
### Manual setup
|
|
14
18
|
|
|
15
|
-
|
|
19
|
+
**1. Add the BotUyo server to your MCP client config:**
|
|
16
20
|
|
|
17
21
|
```json
|
|
18
22
|
{
|
|
19
23
|
"mcpServers": {
|
|
20
24
|
"botuyo": {
|
|
21
25
|
"command": "npx",
|
|
22
|
-
"args": ["-y", "@botuyo/mcp"]
|
|
23
|
-
"env": {
|
|
24
|
-
"BOTUYO_API_KEY": "pk_live_your_key_here"
|
|
25
|
-
}
|
|
26
|
+
"args": ["-y", "@botuyo/mcp"]
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
```
|
|
30
31
|
|
|
31
|
-
|
|
32
|
+
> No API key goes in the config — authentication is handled by the `auth`/`login` commands below. Some clients (Cursor, VS Code) use the `servers` key instead of `mcpServers`.
|
|
32
33
|
|
|
33
|
-
|
|
|
34
|
+
| Client | Config file |
|
|
34
35
|
|---|---|
|
|
35
|
-
| **
|
|
36
|
-
| **
|
|
37
|
-
| **
|
|
36
|
+
| **Cursor** | `.cursor/mcp.json` |
|
|
37
|
+
| **VS Code / Antigravity** | `.vscode/mcp.json` |
|
|
38
|
+
| **Claude Desktop** | `~/.config/claude/claude_desktop_config.json` (Windows: `%AppData%\Claude\claude_desktop_config.json`) |
|
|
38
39
|
| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` |
|
|
39
|
-
| **Continue** | `.continue/config.json` |
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
**2. Authenticate once** — saves a token to `~/.botuyo/credentials.json`:
|
|
42
|
+
|
|
43
|
+
```sh
|
|
44
|
+
npx @botuyo/mcp auth # browser OAuth (recommended)
|
|
45
|
+
# or
|
|
46
|
+
npx @botuyo/mcp login # email + password in the terminal
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The running MCP server picks up your session automatically — no restart needed. Tokens last 7 days; re-run `auth` or `login` to refresh.
|
|
50
|
+
|
|
51
|
+
### Start building agents
|
|
42
52
|
|
|
43
53
|
Once connected, ask your AI assistant things like:
|
|
44
54
|
|
|
@@ -48,19 +58,98 @@ Once connected, ask your AI assistant things like:
|
|
|
48
58
|
> *"Enable the EscalateToHuman and SearchKnowledgeBase tools on Mar"*
|
|
49
59
|
> *"Publish the agent"*
|
|
50
60
|
|
|
51
|
-
##
|
|
61
|
+
## CLI commands
|
|
62
|
+
|
|
63
|
+
```sh
|
|
64
|
+
npx @botuyo/mcp setup # Configure your editor + authenticate (recommended)
|
|
65
|
+
npx @botuyo/mcp auth # Login via browser (OAuth)
|
|
66
|
+
npx @botuyo/mcp login # Login via email + password
|
|
67
|
+
npx @botuyo/mcp tenants # List your tenants
|
|
68
|
+
npx @botuyo/mcp switch-tenant # Switch the active tenant
|
|
69
|
+
npx @botuyo/mcp whoami # Show the current session
|
|
70
|
+
npx @botuyo/mcp logout # Clear stored credentials
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
The server resolves your JWT from `BOTUYO_TOKEN`, falling back to `~/.botuyo/credentials.json`. The backend URL defaults to `https://api.botuyo.com` (override with `BOTUYO_API_URL`).
|
|
74
|
+
|
|
75
|
+
## Available tools
|
|
76
|
+
|
|
77
|
+
The server exposes **30 tools**. Read tools (`list_*`, `get_*`, `export_*`) need `viewer+`; write/publish tools need `developer+` (see [Roles](#roles)).
|
|
78
|
+
|
|
79
|
+
### Agents
|
|
52
80
|
|
|
53
|
-
| Tool | Description |
|
|
54
|
-
|
|
55
|
-
| `list_agents` | List all agents
|
|
56
|
-
| `get_agent` | Get
|
|
57
|
-
| `get_agent_status` | Channel status + admin link
|
|
58
|
-
| `create_agent` | Create a new agent |
|
|
59
|
-
| `update_agent` | Update identity (tone, language,
|
|
60
|
-
| `
|
|
61
|
-
| `
|
|
62
|
-
| `
|
|
63
|
-
|
|
81
|
+
| Tool | Description |
|
|
82
|
+
|---|---|
|
|
83
|
+
| `list_agents` | List all agents in the tenant |
|
|
84
|
+
| `get_agent` | Get an agent's full config (identity, stages, enabled tools) |
|
|
85
|
+
| `get_agent_status` | Channel connection status + admin link to connect missing channels |
|
|
86
|
+
| `create_agent` | Create a new agent |
|
|
87
|
+
| `update_agent` | Update identity (tone, language, objective, custom instructions) |
|
|
88
|
+
| `delete_agent` | Soft-delete an agent (irreversible; requires explicit confirmation) |
|
|
89
|
+
| `publish_agent` | Publish or unpublish an agent (live vs draft) |
|
|
90
|
+
| `example_agent` | Return a fully documented example agent config (read-only reference) |
|
|
91
|
+
|
|
92
|
+
### Conversation flow
|
|
93
|
+
|
|
94
|
+
| Tool | Description |
|
|
95
|
+
|---|---|
|
|
96
|
+
| `upsert_stage` | Create or update a named stage in the agent's conversation graph |
|
|
97
|
+
|
|
98
|
+
### Tools & capabilities
|
|
99
|
+
|
|
100
|
+
| Tool | Description |
|
|
101
|
+
|---|---|
|
|
102
|
+
| `list_available_tools` | List tools available to your tenant (core + custom) |
|
|
103
|
+
| `update_enabled_tools` | Enable/disable tools on an agent |
|
|
104
|
+
| `get_tools_catalog` | Full tool catalog with metadata (configurable, multi-instance, schema, required integrations) |
|
|
105
|
+
| `configure_agent_tool` | Create/update a tool's config on an agent (single or multi-instance) |
|
|
106
|
+
| `list_tool_configs` | List an agent's tool configs, grouped |
|
|
107
|
+
| `get_tool_config` | View the full config of a specific tool on an agent |
|
|
108
|
+
| `remove_tool_config` | Remove a tool's configuration |
|
|
109
|
+
|
|
110
|
+
### Knowledge base
|
|
111
|
+
|
|
112
|
+
| Tool | Description |
|
|
113
|
+
|---|---|
|
|
114
|
+
| `list_knowledge_documents` | List knowledge base documents |
|
|
115
|
+
| `ingest_knowledge_url` | Ingest a URL into the knowledge base |
|
|
116
|
+
| `associate_knowledge_to_agent` | Link knowledge document IDs to an agent |
|
|
117
|
+
| `delete_knowledge_document` | Delete a knowledge document and all its chunks |
|
|
118
|
+
|
|
119
|
+
### Templates
|
|
120
|
+
|
|
121
|
+
| Tool | Description |
|
|
122
|
+
|---|---|
|
|
123
|
+
| `list_templates` | List agent templates by industry |
|
|
124
|
+
| `create_from_template` | Create a new agent from a template |
|
|
125
|
+
|
|
126
|
+
### Import / export
|
|
127
|
+
|
|
128
|
+
| Tool | Description |
|
|
129
|
+
|---|---|
|
|
130
|
+
| `export_agent_json` | Export an agent's full config as editable JSON |
|
|
131
|
+
| `import_agent_json` | Replace an agent's full config from JSON (full overwrite) |
|
|
132
|
+
|
|
133
|
+
### Avatar & media
|
|
134
|
+
|
|
135
|
+
| Tool | Description |
|
|
136
|
+
|---|---|
|
|
137
|
+
| `list_avatars` | List the free 3D avatars in the catalog |
|
|
138
|
+
| `select_avatar` | Set a 3D avatar for an agent (catalog ID or custom .glb/.vrm URL) |
|
|
139
|
+
| `upload_agent_media` | Upload a local image to the CDN as an agent's avatar/logo |
|
|
140
|
+
|
|
141
|
+
### Versioning
|
|
142
|
+
|
|
143
|
+
| Tool | Description |
|
|
144
|
+
|---|---|
|
|
145
|
+
| `list_agent_versions` | List an agent's saved version snapshots |
|
|
146
|
+
| `restore_agent_version` | Roll back an agent to a previous version |
|
|
147
|
+
|
|
148
|
+
### Account
|
|
149
|
+
|
|
150
|
+
| Tool | Description |
|
|
151
|
+
|---|---|
|
|
152
|
+
| `switch_tenant` | Switch the active tenant for the session |
|
|
64
153
|
|
|
65
154
|
## Roles
|
|
66
155
|
|
|
@@ -88,8 +177,10 @@ npm run build
|
|
|
88
177
|
|
|
89
178
|
## Test with MCP Inspector
|
|
90
179
|
|
|
180
|
+
Authenticate first (`npx @botuyo/mcp login`), then run:
|
|
181
|
+
|
|
91
182
|
```sh
|
|
92
|
-
|
|
183
|
+
npm run inspect
|
|
93
184
|
```
|
|
94
185
|
|
|
95
186
|
## Contributing
|
|
@@ -134,6 +134,56 @@ describe('BotuyoApiClient', () => {
|
|
|
134
134
|
expect(err.status).toBe(502);
|
|
135
135
|
}
|
|
136
136
|
});
|
|
137
|
+
it('detects an HTML proxy/firewall block and throws a clear error', async () => {
|
|
138
|
+
vi.stubGlobal('fetch', vi.fn().mockResolvedValue({
|
|
139
|
+
status: 200,
|
|
140
|
+
ok: true,
|
|
141
|
+
text: async () => '<!DOCTYPE html><html><body>Access blocked by network proxy</body></html>'
|
|
142
|
+
}));
|
|
143
|
+
await expect(client.get('/api/v1/mcp/agents')).rejects.toThrow(/proxy|firewall/i);
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
// ── retry / backoff ─────────────────────────────────────────────────
|
|
147
|
+
describe('retry / backoff', () => {
|
|
148
|
+
function client0() {
|
|
149
|
+
return new BotuyoApiClient({ apiUrl: 'http://localhost:8080', token: 't', retry: { retries: 2, baseDelayMs: 0 } });
|
|
150
|
+
}
|
|
151
|
+
it('retries on a 5xx then succeeds', async () => {
|
|
152
|
+
const fn = vi.fn()
|
|
153
|
+
.mockResolvedValueOnce({ status: 503, ok: false, text: async () => JSON.stringify({ error: 'down' }) })
|
|
154
|
+
.mockResolvedValueOnce({ status: 200, ok: true, text: async () => JSON.stringify({ success: true, data: 1 }) });
|
|
155
|
+
vi.stubGlobal('fetch', fn);
|
|
156
|
+
const res = await client0().get('/api/v1/mcp/agents');
|
|
157
|
+
expect(res.success).toBe(true);
|
|
158
|
+
expect(fn).toHaveBeenCalledTimes(2);
|
|
159
|
+
});
|
|
160
|
+
it('gives up after exhausting retries on persistent 5xx', async () => {
|
|
161
|
+
const fn = vi.fn().mockResolvedValue({ status: 503, ok: false, text: async () => JSON.stringify({ error: 'down' }) });
|
|
162
|
+
vi.stubGlobal('fetch', fn);
|
|
163
|
+
await expect(client0().get('/api/v1/mcp/agents')).rejects.toMatchObject({ status: 503 });
|
|
164
|
+
expect(fn).toHaveBeenCalledTimes(3); // 1 + 2 retries
|
|
165
|
+
});
|
|
166
|
+
it('does NOT retry on 4xx', async () => {
|
|
167
|
+
const fn = vi.fn().mockResolvedValue({ status: 400, ok: false, text: async () => JSON.stringify({ error: 'bad' }) });
|
|
168
|
+
vi.stubGlobal('fetch', fn);
|
|
169
|
+
await expect(client0().get('/api/v1/mcp/agents')).rejects.toMatchObject({ status: 400 });
|
|
170
|
+
expect(fn).toHaveBeenCalledTimes(1);
|
|
171
|
+
});
|
|
172
|
+
it('retries on a thrown network error then succeeds', async () => {
|
|
173
|
+
const fn = vi.fn()
|
|
174
|
+
.mockRejectedValueOnce(new Error('ECONNRESET'))
|
|
175
|
+
.mockResolvedValueOnce({ status: 200, ok: true, text: async () => JSON.stringify({ success: true }) });
|
|
176
|
+
vi.stubGlobal('fetch', fn);
|
|
177
|
+
const res = await client0().get('/api/v1/mcp/agents');
|
|
178
|
+
expect(res.success).toBe(true);
|
|
179
|
+
expect(fn).toHaveBeenCalledTimes(2);
|
|
180
|
+
});
|
|
181
|
+
it('throws an ApiError after a persistent network error', async () => {
|
|
182
|
+
const fn = vi.fn().mockRejectedValue(new Error('ENOTFOUND'));
|
|
183
|
+
vi.stubGlobal('fetch', fn);
|
|
184
|
+
await expect(client0().get('/api/v1/mcp/agents')).rejects.toBeInstanceOf(ApiError);
|
|
185
|
+
expect(fn).toHaveBeenCalledTimes(3);
|
|
186
|
+
});
|
|
137
187
|
});
|
|
138
188
|
});
|
|
139
189
|
//# sourceMappingURL=client.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.spec.js","sourceRoot":"","sources":["../../src/__tests__/client.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.spec.js","sourceRoot":"","sources":["../../src/__tests__/client.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -12,6 +12,11 @@ export declare class ApiError extends Error {
|
|
|
12
12
|
export interface BotuyoClientConfig {
|
|
13
13
|
apiUrl: string;
|
|
14
14
|
token: string;
|
|
15
|
+
/** Optional retry/backoff tuning for transient failures (network errors + 5xx). Defaults: 2 retries, 300ms base. */
|
|
16
|
+
retry?: {
|
|
17
|
+
retries?: number;
|
|
18
|
+
baseDelayMs?: number;
|
|
19
|
+
};
|
|
15
20
|
}
|
|
16
21
|
export interface AuthInfo {
|
|
17
22
|
tenantId: string;
|
|
@@ -22,11 +27,12 @@ export interface AuthInfo {
|
|
|
22
27
|
export declare class BotuyoApiClient {
|
|
23
28
|
private config;
|
|
24
29
|
private authInfo;
|
|
30
|
+
private activeTenantId;
|
|
25
31
|
constructor(config: BotuyoClientConfig);
|
|
26
32
|
/** Get the current JWT token */
|
|
27
33
|
getToken(): string;
|
|
28
34
|
/** Hot-swap the JWT token (used by switch_tenant) */
|
|
29
|
-
setToken(token: string): void;
|
|
35
|
+
setToken(token: string, tenantId?: string): void;
|
|
30
36
|
/** Verify the stored JWT is still valid by calling GET /api/auth/me */
|
|
31
37
|
verify(): Promise<AuthInfo>;
|
|
32
38
|
/** Make an authenticated GET request */
|
|
@@ -37,6 +43,14 @@ export declare class BotuyoApiClient {
|
|
|
37
43
|
put<T = any>(path: string, data: unknown): Promise<T>;
|
|
38
44
|
/** Make an authenticated DELETE request */
|
|
39
45
|
delete<T = any>(path: string): Promise<T>;
|
|
46
|
+
private sleep;
|
|
47
|
+
/**
|
|
48
|
+
* fetch wrapper with bounded exponential backoff.
|
|
49
|
+
* Retries on thrown network errors and 5xx responses; never retries 4xx.
|
|
50
|
+
*/
|
|
51
|
+
private fetchWithRetry;
|
|
52
|
+
/** Heuristic: the body is an HTML document (e.g. a proxy/firewall block page), not an API response. */
|
|
53
|
+
private looksLikeHtml;
|
|
40
54
|
private handleResponse;
|
|
41
55
|
/** Upload a file via multipart POST to the media API */
|
|
42
56
|
uploadMedia(fileBuffer: Buffer, fileName: string, category: string): Promise<string>;
|
package/dist/client.js
CHANGED
|
@@ -16,6 +16,7 @@ export class ApiError extends Error {
|
|
|
16
16
|
export class BotuyoApiClient {
|
|
17
17
|
config;
|
|
18
18
|
authInfo = null;
|
|
19
|
+
activeTenantId = null; // Track tenant set by switch_tenant
|
|
19
20
|
constructor(config) {
|
|
20
21
|
this.config = config;
|
|
21
22
|
}
|
|
@@ -24,9 +25,11 @@ export class BotuyoApiClient {
|
|
|
24
25
|
return this.config.token;
|
|
25
26
|
}
|
|
26
27
|
/** Hot-swap the JWT token (used by switch_tenant) */
|
|
27
|
-
setToken(token) {
|
|
28
|
+
setToken(token, tenantId) {
|
|
28
29
|
this.config = { ...this.config, token };
|
|
29
30
|
this.authInfo = null; // reset cached auth info
|
|
31
|
+
if (tenantId)
|
|
32
|
+
this.activeTenantId = tenantId;
|
|
30
33
|
}
|
|
31
34
|
/** Verify the stored JWT is still valid by calling GET /api/auth/me */
|
|
32
35
|
async verify() {
|
|
@@ -40,24 +43,26 @@ export class BotuyoApiClient {
|
|
|
40
43
|
throw new Error(`Session expired or invalid: ${body.error || 'Unknown error'}. Run: npx @botuyo/mcp auth (browser) or npx @botuyo/mcp login (terminal)`);
|
|
41
44
|
}
|
|
42
45
|
const user = body.data.user;
|
|
46
|
+
// Use activeTenantId (from switch_tenant) if set, otherwise fall back to first tenant
|
|
47
|
+
const resolvedTenantId = this.activeTenantId || user.tenantIds?.[0] || '';
|
|
43
48
|
this.authInfo = {
|
|
44
|
-
tenantId:
|
|
49
|
+
tenantId: resolvedTenantId,
|
|
45
50
|
tenantName: '', // Will be enriched from credentials
|
|
46
|
-
role: user.roles?.[0]?.role || 'member',
|
|
51
|
+
role: user.roles?.find((r) => r.tenantId === resolvedTenantId)?.role || user.roles?.[0]?.role || 'member',
|
|
47
52
|
email: user.email
|
|
48
53
|
};
|
|
49
54
|
return this.authInfo;
|
|
50
55
|
}
|
|
51
56
|
/** Make an authenticated GET request */
|
|
52
57
|
async get(path) {
|
|
53
|
-
const res = await
|
|
58
|
+
const res = await this.fetchWithRetry(`${this.config.apiUrl}${path}`, {
|
|
54
59
|
headers: { Authorization: `Bearer ${this.config.token}` }
|
|
55
60
|
});
|
|
56
61
|
return this.handleResponse(res);
|
|
57
62
|
}
|
|
58
63
|
/** Make an authenticated POST request */
|
|
59
64
|
async post(path, data) {
|
|
60
|
-
const res = await
|
|
65
|
+
const res = await this.fetchWithRetry(`${this.config.apiUrl}${path}`, {
|
|
61
66
|
method: 'POST',
|
|
62
67
|
headers: {
|
|
63
68
|
Authorization: `Bearer ${this.config.token}`,
|
|
@@ -69,7 +74,7 @@ export class BotuyoApiClient {
|
|
|
69
74
|
}
|
|
70
75
|
/** Make an authenticated PUT request */
|
|
71
76
|
async put(path, data) {
|
|
72
|
-
const res = await
|
|
77
|
+
const res = await this.fetchWithRetry(`${this.config.apiUrl}${path}`, {
|
|
73
78
|
method: 'PUT',
|
|
74
79
|
headers: {
|
|
75
80
|
Authorization: `Bearer ${this.config.token}`,
|
|
@@ -81,7 +86,7 @@ export class BotuyoApiClient {
|
|
|
81
86
|
}
|
|
82
87
|
/** Make an authenticated DELETE request */
|
|
83
88
|
async delete(path) {
|
|
84
|
-
const res = await
|
|
89
|
+
const res = await this.fetchWithRetry(`${this.config.apiUrl}${path}`, {
|
|
85
90
|
method: 'DELETE',
|
|
86
91
|
headers: {
|
|
87
92
|
Authorization: `Bearer ${this.config.token}`
|
|
@@ -89,6 +94,40 @@ export class BotuyoApiClient {
|
|
|
89
94
|
});
|
|
90
95
|
return this.handleResponse(res);
|
|
91
96
|
}
|
|
97
|
+
async sleep(ms) {
|
|
98
|
+
if (ms > 0)
|
|
99
|
+
await new Promise((resolve) => setTimeout(resolve, ms));
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* fetch wrapper with bounded exponential backoff.
|
|
103
|
+
* Retries on thrown network errors and 5xx responses; never retries 4xx.
|
|
104
|
+
*/
|
|
105
|
+
async fetchWithRetry(url, init) {
|
|
106
|
+
const retries = this.config.retry?.retries ?? 2;
|
|
107
|
+
const baseDelayMs = this.config.retry?.baseDelayMs ?? 300;
|
|
108
|
+
for (let attempt = 0;; attempt++) {
|
|
109
|
+
try {
|
|
110
|
+
const res = await fetch(url, init);
|
|
111
|
+
if (res.status >= 500 && attempt < retries) {
|
|
112
|
+
await this.sleep(baseDelayMs * 2 ** attempt);
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
return res;
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
if (attempt < retries) {
|
|
119
|
+
await this.sleep(baseDelayMs * 2 ** attempt);
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
123
|
+
throw new ApiError(`Network error after ${retries + 1} attempt(s): ${detail}`, 0);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/** Heuristic: the body is an HTML document (e.g. a proxy/firewall block page), not an API response. */
|
|
128
|
+
looksLikeHtml(text) {
|
|
129
|
+
return /^\s*<(?:!doctype\s+html|html|head|body)\b/i.test(text);
|
|
130
|
+
}
|
|
92
131
|
async handleResponse(res) {
|
|
93
132
|
const text = await res.text();
|
|
94
133
|
let json;
|
|
@@ -96,6 +135,9 @@ export class BotuyoApiClient {
|
|
|
96
135
|
json = JSON.parse(text);
|
|
97
136
|
}
|
|
98
137
|
catch {
|
|
138
|
+
if (this.looksLikeHtml(text)) {
|
|
139
|
+
throw new ApiError(`Request blocked or returned non-JSON (possible network proxy/firewall). HTTP ${res.status}: ${text.slice(0, 120)}`, res.status);
|
|
140
|
+
}
|
|
99
141
|
throw new ApiError(`HTTP ${res.status}: ${text.slice(0, 200)}`, res.status);
|
|
100
142
|
}
|
|
101
143
|
if (!res.ok) {
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjB,MAAM,CAAQ;IAC9B,YAAY,OAAe,EAAE,MAAc;QACzC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/auth.js
CHANGED
|
@@ -95,24 +95,24 @@ function startCallbackServer() {
|
|
|
95
95
|
if (url.pathname === '/callback') {
|
|
96
96
|
const code = url.searchParams.get('code');
|
|
97
97
|
const html = code
|
|
98
|
-
? `<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
|
99
|
-
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;600;700&display=swap" rel="stylesheet">
|
|
100
|
-
<style>*{margin:0;padding:0;box-sizing:border-box}body{font-family:'Plus Jakarta Sans',sans-serif;min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8fafc,#eef2ff,#f8fafc);color:#0f172a}
|
|
101
|
-
.card{text-align:center;max-width:420px;padding:48px 32px;background:#fff;border-radius:20px;border:1px solid #e2e8f0;box-shadow:0 25px 50px rgba(0,0,0,.08)}
|
|
102
|
-
.icon{width:64px;height:64px;margin:0 auto 20px;background:#f0fdf4;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:28px}
|
|
103
|
-
h2{font-size:22px;font-weight:700;margin-bottom:8px}p{color:#64748b;font-size:15px;line-height:1.6}
|
|
104
|
-
.badge{display:inline-block;margin-top:16px;background:#eef2ff;color:#4f46e5;padding:6px 16px;border-radius:8px;font-size:13px;font-weight:600}</style></head>
|
|
105
|
-
<body><div class="card"><div class="icon">✅</div><h2>BotUyo CLI Autorizado</h2>
|
|
106
|
-
<p>Podés cerrar esta pestaña y volver a la terminal.</p>
|
|
98
|
+
? `<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
|
99
|
+
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;600;700&display=swap" rel="stylesheet">
|
|
100
|
+
<style>*{margin:0;padding:0;box-sizing:border-box}body{font-family:'Plus Jakarta Sans',sans-serif;min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8fafc,#eef2ff,#f8fafc);color:#0f172a}
|
|
101
|
+
.card{text-align:center;max-width:420px;padding:48px 32px;background:#fff;border-radius:20px;border:1px solid #e2e8f0;box-shadow:0 25px 50px rgba(0,0,0,.08)}
|
|
102
|
+
.icon{width:64px;height:64px;margin:0 auto 20px;background:#f0fdf4;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:28px}
|
|
103
|
+
h2{font-size:22px;font-weight:700;margin-bottom:8px}p{color:#64748b;font-size:15px;line-height:1.6}
|
|
104
|
+
.badge{display:inline-block;margin-top:16px;background:#eef2ff;color:#4f46e5;padding:6px 16px;border-radius:8px;font-size:13px;font-weight:600}</style></head>
|
|
105
|
+
<body><div class="card"><div class="icon">✅</div><h2>BotUyo CLI Autorizado</h2>
|
|
106
|
+
<p>Podés cerrar esta pestaña y volver a la terminal.</p>
|
|
107
107
|
<span class="badge">Sesión activa</span></div></body></html>`
|
|
108
|
-
: `<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
|
109
|
-
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;600;700&display=swap" rel="stylesheet">
|
|
110
|
-
<style>*{margin:0;padding:0;box-sizing:border-box}body{font-family:'Plus Jakarta Sans',sans-serif;min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8fafc,#fff1f2,#f8fafc);color:#0f172a}
|
|
111
|
-
.card{text-align:center;max-width:420px;padding:48px 32px;background:#fff;border-radius:20px;border:1px solid #e2e8f0;box-shadow:0 25px 50px rgba(0,0,0,.08)}
|
|
112
|
-
.icon{width:64px;height:64px;margin:0 auto 20px;background:#fef2f2;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:28px}
|
|
113
|
-
h2{font-size:22px;font-weight:700;margin-bottom:8px}p{color:#64748b;font-size:15px;line-height:1.6}
|
|
114
|
-
code{background:#f1f5f9;padding:2px 8px;border-radius:4px;font-size:13px}</style></head>
|
|
115
|
-
<body><div class="card"><div class="icon">❌</div><h2>Autorización fallida</h2>
|
|
108
|
+
: `<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
|
109
|
+
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;600;700&display=swap" rel="stylesheet">
|
|
110
|
+
<style>*{margin:0;padding:0;box-sizing:border-box}body{font-family:'Plus Jakarta Sans',sans-serif;min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8fafc,#fff1f2,#f8fafc);color:#0f172a}
|
|
111
|
+
.card{text-align:center;max-width:420px;padding:48px 32px;background:#fff;border-radius:20px;border:1px solid #e2e8f0;box-shadow:0 25px 50px rgba(0,0,0,.08)}
|
|
112
|
+
.icon{width:64px;height:64px;margin:0 auto 20px;background:#fef2f2;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:28px}
|
|
113
|
+
h2{font-size:22px;font-weight:700;margin-bottom:8px}p{color:#64748b;font-size:15px;line-height:1.6}
|
|
114
|
+
code{background:#f1f5f9;padding:2px 8px;border-radius:4px;font-size:13px}</style></head>
|
|
115
|
+
<body><div class="card"><div class="icon">❌</div><h2>Autorización fallida</h2>
|
|
116
116
|
<p>No se recibió el código. Ejecutá <code>npx @botuyo/mcp auth</code> de nuevo.</p></div></body></html>`;
|
|
117
117
|
res.writeHead(200, { 'Content-Type': 'text/html' });
|
|
118
118
|
res.end(html);
|
package/dist/index.js
CHANGED
|
@@ -22,6 +22,9 @@ import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprot
|
|
|
22
22
|
import { BotuyoApiClient, ApiError } from './client.js';
|
|
23
23
|
import { ALL_TOOLS, TOOL_HANDLERS } from './tools/index.js';
|
|
24
24
|
import { resolveToken, readCredentials, clearCredentials, isTokenExpired, resolveApiUrl } from './commands/credentials.js';
|
|
25
|
+
import { watch, existsSync, mkdirSync } from 'fs';
|
|
26
|
+
import { join } from 'path';
|
|
27
|
+
import { homedir } from 'os';
|
|
25
28
|
// ─── Sub-command routing ──────────────────────────────────────────────────────
|
|
26
29
|
const [, , cmd, ...rest] = process.argv;
|
|
27
30
|
async function main() {
|
|
@@ -103,6 +106,9 @@ async function startMcpServer() {
|
|
|
103
106
|
else {
|
|
104
107
|
const creds = await readCredentials();
|
|
105
108
|
client = new BotuyoApiClient({ token, apiUrl });
|
|
109
|
+
// Restore active tenant from prior switch_tenant session
|
|
110
|
+
if (creds?.tenantId)
|
|
111
|
+
client.setToken(token, creds.tenantId);
|
|
106
112
|
console.error(`[botuyo-mcp] API: ${apiUrl}`);
|
|
107
113
|
try {
|
|
108
114
|
const auth = await client.verify();
|
|
@@ -118,6 +124,39 @@ async function startMcpServer() {
|
|
|
118
124
|
}
|
|
119
125
|
}
|
|
120
126
|
const AUTH_ERROR_MSG = 'No autenticado. El usuario debe ejecutar: npx @botuyo/mcp login';
|
|
127
|
+
// ── Hot-reload: try to authenticate from disk credentials ─────────────
|
|
128
|
+
async function tryHotReload() {
|
|
129
|
+
const freshToken = await resolveToken();
|
|
130
|
+
if (!freshToken)
|
|
131
|
+
return false;
|
|
132
|
+
const freshCreds = await readCredentials();
|
|
133
|
+
const freshApiUrl = freshCreds?.apiUrl || apiUrl;
|
|
134
|
+
// Create or update client
|
|
135
|
+
if (!client) {
|
|
136
|
+
client = new BotuyoApiClient({ token: freshToken, apiUrl: freshApiUrl });
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
client.setToken(freshToken, freshCreds?.tenantId);
|
|
140
|
+
}
|
|
141
|
+
try {
|
|
142
|
+
const auth = await client.verify();
|
|
143
|
+
const tenantName = freshCreds?.tenantName || auth.tenantId;
|
|
144
|
+
const role = freshCreds?.role || auth.role;
|
|
145
|
+
console.error(`[botuyo-mcp] 🔄 Hot-reload: conectado a "${tenantName}" como ${role}`);
|
|
146
|
+
authenticated = true;
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
catch (err) {
|
|
150
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
151
|
+
console.error(`[botuyo-mcp] 🔄 Hot-reload: auth failed: ${msg}`);
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// ── Watch credentials file for changes (auto-restart on login/auth) ───
|
|
156
|
+
watchCredentialsFile(async () => {
|
|
157
|
+
console.error('[botuyo-mcp] 🔄 Credentials file changed — reloading authentication...');
|
|
158
|
+
await tryHotReload();
|
|
159
|
+
});
|
|
121
160
|
// ── MCP Server — starts ALWAYS, even without valid auth ────────────────
|
|
122
161
|
const server = new Server({ name: 'botuyo-mcp', version: '0.3.0' }, { capabilities: { tools: {} } });
|
|
123
162
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: ALL_TOOLS }));
|
|
@@ -127,9 +166,12 @@ async function startMcpServer() {
|
|
|
127
166
|
if (!handler) {
|
|
128
167
|
return { content: [{ type: 'text', text: `Unknown tool: ${name}` }], isError: true };
|
|
129
168
|
}
|
|
130
|
-
// Guard: if not authenticated,
|
|
169
|
+
// Guard: if not authenticated, attempt hot-reload from disk before rejecting
|
|
131
170
|
if (!authenticated || !client) {
|
|
132
|
-
|
|
171
|
+
const reloaded = await tryHotReload();
|
|
172
|
+
if (!reloaded || !client) {
|
|
173
|
+
return { content: [{ type: 'text', text: AUTH_ERROR_MSG }], isError: true };
|
|
174
|
+
}
|
|
133
175
|
}
|
|
134
176
|
try {
|
|
135
177
|
const result = await handler(client, args || {});
|
|
@@ -167,6 +209,37 @@ async function startMcpServer() {
|
|
|
167
209
|
await server.connect(transport);
|
|
168
210
|
console.error('[botuyo-mcp] Server running via stdio');
|
|
169
211
|
}
|
|
212
|
+
// ── Credentials file watcher ─────────────────────────────────────────────────
|
|
213
|
+
// Watches ~/.botuyo/credentials.json for changes. When the user runs `login` or
|
|
214
|
+
// `auth` in a separate terminal, the file is written and we auto-reload auth.
|
|
215
|
+
// Uses a debounce to handle rapid/duplicate fs events on Windows.
|
|
216
|
+
function watchCredentialsFile(onChanged) {
|
|
217
|
+
const configDir = join(homedir(), '.botuyo');
|
|
218
|
+
const credFile = join(configDir, 'credentials.json');
|
|
219
|
+
// Ensure the directory exists (login may not have run yet)
|
|
220
|
+
if (!existsSync(configDir)) {
|
|
221
|
+
mkdirSync(configDir, { recursive: true });
|
|
222
|
+
}
|
|
223
|
+
let debounceTimer = null;
|
|
224
|
+
try {
|
|
225
|
+
// Watch the directory (more reliable than watching a file that may not exist)
|
|
226
|
+
watch(configDir, (eventType, filename) => {
|
|
227
|
+
if (filename !== 'credentials.json')
|
|
228
|
+
return;
|
|
229
|
+
// Debounce: fs.watch fires multiple events per write on Windows
|
|
230
|
+
if (debounceTimer)
|
|
231
|
+
clearTimeout(debounceTimer);
|
|
232
|
+
debounceTimer = setTimeout(() => {
|
|
233
|
+
onChanged();
|
|
234
|
+
}, 500);
|
|
235
|
+
});
|
|
236
|
+
console.error(`[botuyo-mcp] 👁 Watching ${credFile} for auth changes`);
|
|
237
|
+
}
|
|
238
|
+
catch (err) {
|
|
239
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
240
|
+
console.error(`[botuyo-mcp] ⚠ Could not watch credentials file: ${msg}`);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
170
243
|
main().catch((err) => {
|
|
171
244
|
console.error('[botuyo-mcp] Fatal error:', err);
|
|
172
245
|
process.exit(1);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAA;AAClG,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export const CONFIGURE_AGENT_TOOL = {
|
|
2
2
|
name: 'configure_agent_tool',
|
|
3
|
-
description: `Crea o actualiza la config de un tool para un agente. Si la tool no está en \`enabledTools\`, la agrega automáticamente.
|
|
4
|
-
|
|
5
|
-
Dos modos:
|
|
6
|
-
- **Single-instance**: configura una tool existente (ej. \`send_email\`) con params fijos.
|
|
3
|
+
description: `Crea o actualiza la config de un tool para un agente. Si la tool no está en \`enabledTools\`, la agrega automáticamente.
|
|
4
|
+
|
|
5
|
+
Dos modos:
|
|
6
|
+
- **Single-instance**: configura una tool existente (ej. \`send_email\`) con params fijos.
|
|
7
7
|
- **Multi-instance**: crea una instancia virtual con nombre propio basada en una tool real (requiere \`baseTool\`). Ej: \`webhook_pedidos\` basada en \`call_webhook\`.`,
|
|
8
8
|
inputSchema: {
|
|
9
9
|
type: 'object',
|
|
@@ -178,13 +178,15 @@ export declare function exampleAgentHandler(): Promise<{
|
|
|
178
178
|
showPromptAvatar: boolean;
|
|
179
179
|
avatar3dUrl: string;
|
|
180
180
|
avatarAnimations: {
|
|
181
|
+
default: string;
|
|
181
182
|
happy: string;
|
|
182
183
|
thinking: string;
|
|
183
|
-
|
|
184
|
+
angry: string;
|
|
184
185
|
};
|
|
185
186
|
avatar2dAnimations: {
|
|
186
|
-
|
|
187
|
-
|
|
187
|
+
default: string;
|
|
188
|
+
happy: string;
|
|
189
|
+
confused: string;
|
|
188
190
|
};
|
|
189
191
|
cssVariables: {
|
|
190
192
|
primary: string;
|
|
@@ -243,15 +243,17 @@ export async function exampleAgentHandler() {
|
|
|
243
243
|
showPromptAvatar: true,
|
|
244
244
|
// -- 3D Avatar for Voice Calls --
|
|
245
245
|
avatar3dUrl: 'https://example.com/model.glb',
|
|
246
|
-
// --
|
|
246
|
+
// -- 2D Emotion Images (shown based on bot emotional state) --
|
|
247
247
|
avatarAnimations: {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
248
|
+
default: 'https://cdn.botuyo.com/emotions/default.webp',
|
|
249
|
+
happy: 'https://cdn.botuyo.com/emotions/happy.webp',
|
|
250
|
+
thinking: 'https://cdn.botuyo.com/emotions/thinking.webp',
|
|
251
|
+
angry: 'https://cdn.botuyo.com/emotions/angry.webp'
|
|
251
252
|
},
|
|
252
253
|
avatar2dAnimations: {
|
|
253
|
-
|
|
254
|
-
|
|
254
|
+
default: 'https://cdn.botuyo.com/emotions/2d-default.webp',
|
|
255
|
+
happy: 'https://cdn.botuyo.com/emotions/2d-happy.webp',
|
|
256
|
+
confused: 'https://cdn.botuyo.com/emotions/2d-confused.webp'
|
|
255
257
|
},
|
|
256
258
|
// -- Light Mode CSS Variables --
|
|
257
259
|
cssVariables: {
|
|
@@ -324,8 +326,8 @@ export async function exampleAgentHandler() {
|
|
|
324
326
|
logoUrl: 'Optional. String. Widget logo URL. Use upload_agent_media tool with mediaType "logo" to upload and auto-assign.',
|
|
325
327
|
inputPlaceholder: 'Optional. String. Placeholder text in the chat input field.',
|
|
326
328
|
theme: 'Optional. "light" | "dark" | "auto". Controls widget color scheme. "auto" follows the host page prefers-color-scheme.',
|
|
327
|
-
avatarAnimations: 'Optional. Object. Keys are emotion
|
|
328
|
-
avatar2dAnimations: 'Optional. Object.
|
|
329
|
+
avatarAnimations: 'Optional. Object. Keys are emotion states (default, happy, angry, thinking, confused, sorry, writing, wink, love), values are image URLs. Shown based on bot emotional state via [emotion:X] tags.',
|
|
330
|
+
avatar2dAnimations: 'Optional. Object. Same emotion keys as avatarAnimations. Separate set of 2D emotion images (used as fallback or alternative rendering).',
|
|
329
331
|
cssVariables: 'HSL values WITHOUT the hsl() wrapper. "primary" and "primaryForeground" are your brand colors — they are preserved in both light and dark mode.',
|
|
330
332
|
darkCssVariables: 'Optional. Overrides ONLY the surface colors (background, card, muted, border, etc.) for dark mode. ' +
|
|
331
333
|
'primary/primaryForeground from cssVariables are ALWAYS preserved. Dark mode activates automatically when the host page uses prefers-color-scheme: dark.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example_agent.js","sourceRoot":"","sources":["../../src/tools/example_agent.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"example_agent.js","sourceRoot":"","sources":["../../src/tools/example_agent.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAS;IACtC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE;;;;;;;;;;6FAU8E;IAC3F,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb;CACF,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,SAAS,GAAG;QAChB,sEAAsE;QACtE,gCAAgC;QAChC,kEAAkE;QAClE,6DAA6D;QAC7D,sEAAsE;QAEtE,kEAAkE;QAClE,IAAI,EAAE,sBAAsB;QAC5B,SAAS,EAAE,wEAAwE;QAEnF,QAAQ,EAAE;YACR,IAAI,EAAE,wEAAwE;YAC9E,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,mFAAmF;YAC9F,kBAAkB,EAAE,+GAA+G;SACpI;QACD,aAAa,EAAE;YACb,IAAI,EAAE,oFAAoF;YAC1F,QAAQ,EAAE,0FAA0F;YACpG,SAAS,EAAE,iEAAiE;YAC5E,kBAAkB,EAAE,kGAAkG;SACvH;QAED,kEAAkE;QAClE,MAAM,EAAE;YACN;gBACE,EAAE,EAAE,UAAU;gBACd,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,wEAAwE;gBACrF,KAAK,EAAE,EAAE;aACV;YACD;gBACE,EAAE,EAAE,iBAAiB;gBACrB,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2DAA2D;gBACxE,KAAK,EAAE,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;aAC1D;YACD;gBACE,EAAE,EAAE,eAAe;gBACnB,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oIAAoI;gBACjJ,KAAK,EAAE,EAAE;aACV;YACD;gBACE,EAAE,EAAE,eAAe;gBACnB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4CAA4C;gBACzD,KAAK,EAAE,CAAC,wBAAwB,EAAE,2BAA2B,CAAC;aAC/D;YACD;gBACE,EAAE,EAAE,UAAU;gBACd,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,wDAAwD;gBACrE,KAAK,EAAE,EAAE;aACV;SACF;QACD,WAAW,EAAE;YACX,EAAE,EAAE,gEAAgE;YACpE,IAAI,EAAE,+DAA+D;YACrE,IAAI,EAAE,qGAAqG;YAC3G,WAAW,EAAE,wFAAwF;YACrG,KAAK,EAAE,0FAA0F;SAClG;QACD,eAAe,EAAE;YACf,KAAK,EAAE;gBACL,OAAO,EAAE,wFAAwF;gBACjG,QAAQ,EAAE,iGAAiG;gBAC3G,QAAQ,EAAE,sFAAsF;gBAChG,WAAW,EAAE,qEAAqE;gBAClF,aAAa,EAAE,wFAAwF;aACxG;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,mFAAmF;gBAC5F,QAAQ,EAAE,qJAAqJ;gBAC/J,QAAQ,EAAE,6GAA6G;gBACvH,WAAW,EAAE,0DAA0D;gBACvE,aAAa,EAAE,gJAAgJ;aAChK;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,gHAAgH;gBACzH,QAAQ,EAAE,kMAAkM;gBAC5M,QAAQ,EAAE,6HAA6H;gBACvI,WAAW,EAAE,uEAAuE;gBACpF,aAAa,EAAE,sLAAsL;aACtM;YACD,GAAG,EAAE;gBACH,OAAO,EAAE,4DAA4D;gBACrE,QAAQ,EAAE,oHAAoH;gBAC9H,QAAQ,EAAE,wFAAwF;gBAClG,WAAW,EAAE,kHAAkH;gBAC/H,aAAa,EAAE,wFAAwF;aACxG;YACD,QAAQ,EAAE,gEAAgE;gBACxE,mGAAmG;gBACnG,2EAA2E;SAC9E;QAED,WAAW,EAAE;YACX,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE;YACtE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE;YAC3E,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,2CAA2C,EAAE;YACrI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,sDAAsD,EAAE;YAC3I,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,sDAAsD,EAAE;YAClJ,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,gCAAgC,EAAE;SACtH;QACD,gBAAgB,EAAE;YAChB,EAAE,EAAE,qCAAqC;YACzC,IAAI,EAAE,+CAA+C;YACrD,EAAE,EAAE,2CAA2C;YAC/C,IAAI,EAAE,wGAAwG;YAC9G,SAAS,EAAE,oGAAoG;SAChH;QAED,kEAAkE;QAClE,YAAY,EAAE;YACZ,KAAK,EAAE;gBACL,WAAW,EAAE;oBACX,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE;oBAC5E,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,4BAA4B,EAAE;iBAC1H;aACF;SACF;QACD,iBAAiB,EAAE,qGAAqG;YACtH,uIAAuI;YACvI,0EAA0E;YAC1E,kGAAkG;QAEpG,kEAAkE;QAClE,YAAY,EAAE;YACZ,uBAAuB;YACvB,2BAA2B;YAC3B,wBAAwB;YACxB,uBAAuB;YACvB,uBAAuB;YACvB,qBAAqB;YACrB,iBAAiB;SAClB;QACD,iBAAiB,EAAE,2EAA2E;YAC5F,iEAAiE;YACjE,0GAA0G;YAC1G,wEAAwE;QAE1E,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC;QACtC,aAAa,EAAE,sHAAsH;YACnI,uHAAuH;YACvH,gHAAgH;QAElH,mEAAmE;QACnE,WAAW,EAAE;YACX,gEAAgE;YAChE,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,SAAS,EAAE,uBAAuB;oBAClC,QAAQ,EAAE,oBAAoB;iBAC/B;gBACD,WAAW,EAAE,8DAA8D;aAC5E;YACD,4DAA4D;YAC5D,eAAe,EAAE;gBACf,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE;oBACN,GAAG,EAAE,4CAA4C;oBACjD,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;iBACnC;gBACD,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAClF,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;oBACvE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE;iBAChH;gBACD,WAAW,EAAE,6EAA6E;aAC3F;SACF;QACD,gBAAgB,EAAE;YAChB,SAAS,EAAE,sEAAsE;YACjF,cAAc,EAAE;gBACd,WAAW,EAAE,uEAAuE;oBAClF,2FAA2F;gBAC7F,OAAO,EAAE,mEAAmE;aAC7E;YACD,aAAa,EAAE;gBACb,WAAW,EAAE,6EAA6E;oBACxF,gFAAgF;oBAChF,yEAAyE;oBACzE,uDAAuD;gBACzD,OAAO,EAAE,uFAAuF;aACjG;YACD,OAAO,EAAE;gBACP,QAAQ,EAAE,8GAA8G;gBACxH,MAAM,EAAE,iGAAiG;gBACzG,MAAM,EAAE,2GAA2G;gBACnH,WAAW,EAAE,qEAAqE;aACnF;YACD,gBAAgB,EAAE;gBAChB,IAAI,EAAE,oDAAoD;gBAC1D,IAAI,EAAE,8DAA8D;gBACpE,KAAK,EAAE,yCAAyC;gBAChD,QAAQ,EAAE,iEAAiE;gBAC3E,WAAW,EAAE,mEAAmE;gBAChF,UAAU,EAAE,uDAAuD;gBACnE,UAAU,EAAE,mEAAmE;aAChF;YACD,gBAAgB,EAAE;gBAChB,2FAA2F;gBAC3F,4DAA4D;gBAC5D,+CAA+C;gBAC/C,2FAA2F;gBAC3F,+FAA+F;aAChG;SACF;QAED,kEAAkE;QAClE,YAAY,EAAE;YACZ,mBAAmB;YACnB,cAAc,EAAE,6DAA6D;YAC7E,gBAAgB,EAAE,uBAAuB;YACzC,QAAQ,EAAE,cAAc;YACxB,KAAK,EAAE,MAAM;YACb,UAAU,EAAE,cAAc;YAC1B,aAAa,EAAE,mBAAmB;YAClC,aAAa,EAAE,IAAI;YAEnB,4BAA4B;YAC5B,SAAS,EAAE,mDAAmD;YAC9D,OAAO,EAAE,iDAAiD;YAC1D,WAAW,EAAE,GAAG;YAChB,gBAAgB,EAAE,IAAI;YAEtB,kCAAkC;YAClC,WAAW,EAAE,+BAA+B;YAE5C,+DAA+D;YAC/D,gBAAgB,EAAE;gBAChB,OAAO,EAAE,8CAA8C;gBACvD,KAAK,EAAE,4CAA4C;gBACnD,QAAQ,EAAE,+CAA+C;gBACzD,KAAK,EAAE,4CAA4C;aACpD;YACD,kBAAkB,EAAE;gBAClB,OAAO,EAAE,iDAAiD;gBAC1D,KAAK,EAAE,+CAA+C;gBACtD,QAAQ,EAAE,kDAAkD;aAC7D;YAED,iCAAiC;YACjC,YAAY,EAAE;gBACZ,uDAAuD;gBACvD,OAAO,EAAE,cAAc;gBACvB,iBAAiB,EAAE,WAAW;gBAE9B,sBAAsB;gBACtB,UAAU,EAAE,WAAW;gBACvB,UAAU,EAAE,aAAa;gBACzB,IAAI,EAAE,WAAW;gBACjB,cAAc,EAAE,aAAa;gBAC7B,KAAK,EAAE,aAAa;gBACpB,eAAe,EAAE,aAAa;gBAC9B,MAAM,EAAE,aAAa;gBACrB,WAAW,EAAE,WAAW;gBAExB,SAAS;gBACT,MAAM,EAAE,SAAS;gBACjB,kBAAkB,EAAE,MAAM;gBAC1B,oBAAoB,EAAE,KAAK;gBAC3B,YAAY,EAAE,OAAO;gBACrB,YAAY,EAAE,MAAM;gBAEpB,0BAA0B;gBAC1B,QAAQ,EAAE,SAAS;gBACnB,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,SAAS;gBACnB,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,SAAS;gBACnB,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,SAAS;gBACnB,QAAQ,EAAE,MAAM;aACjB;YAED,iEAAiE;YACjE,gBAAgB,EAAE;gBAChB,UAAU,EAAE,YAAY;gBACxB,UAAU,EAAE,aAAa;gBACzB,IAAI,EAAE,aAAa;gBACnB,cAAc,EAAE,aAAa;gBAC7B,KAAK,EAAE,aAAa;gBACpB,eAAe,EAAE,aAAa;gBAC9B,MAAM,EAAE,aAAa;gBACrB,WAAW,EAAE,WAAW;aACzB;YAED,mBAAmB;YACnB,UAAU,EAAE;gBACV,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,QAAQ;gBACtB,eAAe,EAAE,MAAM;gBACvB,aAAa,EAAE,IAAI;gBACnB,YAAY,EAAE,IAAI;gBAClB,iBAAiB,EAAE,IAAI;gBACvB,aAAa,EAAE,IAAI;gBACnB,eAAe,EAAE,GAAG;gBACpB,YAAY,EAAE,EAAE;aACjB;YAED,uBAAuB;YACvB,OAAO,EAAE;gBACP,aAAa,EAAE,IAAI;gBACnB,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,IAAI;gBACjB,cAAc,EAAE,IAAI;gBACpB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,KAAK;gBAChB,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,IAAI;aACrB;SACF;QACD,iBAAiB,EAAE;YACjB,SAAS,EAAE,yIAAyI;YACpJ,OAAO,EAAE,iHAAiH;YAC1H,gBAAgB,EAAE,6DAA6D;YAC/E,KAAK,EAAE,uHAAuH;YAC9H,gBAAgB,EAAE,oMAAoM;YACtN,kBAAkB,EAAE,yIAAyI;YAC7J,YAAY,EAAE,iJAAiJ;YAC/J,gBAAgB,EAAE,qGAAqG;gBACrH,yJAAyJ;YAC3J,WAAW,EAAE,yKAAyK;YACtL,WAAW,EAAE,uEAAuE;YACpF,gBAAgB,EAAE,2EAA2E;YAC7F,aAAa,EAAE,mEAAmE;YAClF,aAAa,EAAE,uFAAuF;YACtG,UAAU,EAAE;gBACV,OAAO,EAAE,+CAA+C;gBACxD,YAAY,EAAE,0EAA0E;gBACxF,eAAe,EAAE,+EAA+E;gBAChG,eAAe,EAAE,qDAAqD;gBACtE,YAAY,EAAE,wEAAwE;aACvF;YACD,OAAO,EAAE;gBACP,aAAa,EAAE,4CAA4C;gBAC3D,SAAS,EAAE,6CAA6C;gBACxD,SAAS,EAAE,iFAAiF;gBAC5F,YAAY,EAAE,4CAA4C;gBAC1D,cAAc,EAAE,sDAAsD;aACvE;YACD,WAAW,EAAE;gBACX,yFAAyF;gBACzF,6CAA6C;gBAC7C,+DAA+D;aAChE;SACF;QAED,kEAAkE;QAClE,KAAK,EAAE;YACL,OAAO,EAAE,sBAAsB;YAC/B,iBAAiB,EAAE,IAAI;SACxB;QACD,UAAU,EAAE;YACV,OAAO,EAAE,gGAAgG;YACzG,iBAAiB,EAAE,8EAA8E;YACjG,kBAAkB,EAAE;gBAClB,sBAAsB;gBACtB,mBAAmB;gBACnB,iBAAiB;gBACjB,sBAAsB;gBACtB,kBAAkB;gBAClB,kBAAkB;gBAClB,oBAAoB;gBACpB,eAAe;aAChB;YACD,WAAW,EAAE,iIAAiI;SAC/I;QAED,kEAAkE;QAClE,cAAc,EAAE;YACd,QAAQ,EAAE,mGAAmG;YAC7G,KAAK,EAAE,+FAA+F;SACvG;QACD,mBAAmB,EAAE,4HAA4H;YAC/I,gHAAgH;QAElH,kEAAkE;QAClE,oBAAoB,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;QAClD,yBAAyB,EAAE,sEAAsE;YAC/F,oGAAoG;YACpG,oGAAoG;QAEtG,kEAAkE;QAClE,cAAc,EAAE,CAAC,uBAAuB,EAAE,2BAA2B,CAAC;QACtE,mBAAmB,EAAE,8DAA8D;YACjF,6FAA6F;YAC7F,gFAAgF;QAElF,iEAAiE;QACjE,eAAe,EAAE;YACf,MAAM,EAAE,oCAAoC;YAC5C,IAAI,EAAE,qJAAqJ;SAC5J;KACF,CAAA;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,4IAA4I;YACnJ,uGAAuG;KAC1G,CAAA;AACH,CAAC"}
|
|
@@ -126,7 +126,7 @@ export async function switchTenantHandler(client, args) {
|
|
|
126
126
|
expiresAt: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000).toISOString()
|
|
127
127
|
});
|
|
128
128
|
// Hot-swap the token in the running client so it takes effect immediately
|
|
129
|
-
client.setToken(newToken);
|
|
129
|
+
client.setToken(newToken, targetTenantId);
|
|
130
130
|
return {
|
|
131
131
|
success: true,
|
|
132
132
|
message: `Switched to tenant "${tenantName}" (${newRole}). The new tenant is now active.`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch_tenant.js","sourceRoot":"","sources":["../../src/tools/switch_tenant.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"switch_tenant.js","sourceRoot":"","sources":["../../src/tools/switch_tenant.ts"],"names":[],"mappings":"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"}
|