@indemn/cli 1.7.7 → 1.7.9
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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/.mcp.json +1 -1
- package/README.md +5 -3
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +95 -62
- package/dist/cli/auth.js.map +1 -1
- package/dist/mcp/registry.d.ts +12 -0
- package/dist/mcp/registry.d.ts.map +1 -1
- package/dist/mcp/registry.js +36 -3
- package/dist/mcp/registry.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +15 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-meta.d.ts.map +1 -1
- package/dist/mcp/tool-meta.js +47 -2
- package/dist/mcp/tool-meta.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +139 -4
- package/dist/mcp/tools.js.map +1 -1
- package/dist/sdk/access.d.ts +60 -0
- package/dist/sdk/access.d.ts.map +1 -0
- package/dist/sdk/access.js +115 -0
- package/dist/sdk/access.js.map +1 -0
- package/dist/sdk/auth.d.ts +7 -0
- package/dist/sdk/auth.d.ts.map +1 -1
- package/dist/sdk/auth.js +21 -2
- package/dist/sdk/auth.js.map +1 -1
- package/dist/sdk/browser-login.d.ts +49 -0
- package/dist/sdk/browser-login.d.ts.map +1 -0
- package/dist/sdk/browser-login.js +159 -0
- package/dist/sdk/browser-login.js.map +1 -0
- package/dist/sdk/campaigns.d.ts +82 -3
- package/dist/sdk/campaigns.d.ts.map +1 -1
- package/dist/sdk/campaigns.js +106 -4
- package/dist/sdk/campaigns.js.map +1 -1
- package/dist/sdk/client.d.ts +2 -0
- package/dist/sdk/client.d.ts.map +1 -1
- package/dist/sdk/client.js +31 -3
- package/dist/sdk/client.js.map +1 -1
- package/dist/sdk/credentials.d.ts +2 -0
- package/dist/sdk/credentials.d.ts.map +1 -1
- package/dist/sdk/credentials.js +4 -0
- package/dist/sdk/credentials.js.map +1 -1
- package/dist/sdk/eval.d.ts +3 -3
- package/dist/sdk/eval.js +3 -3
- package/dist/sdk/types.d.ts +3 -0
- package/dist/sdk/types.d.ts.map +1 -1
- package/dist/sdk/types.js +0 -1
- package/dist/sdk/types.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/auth.ts +93 -63
- package/src/mcp/registry.ts +43 -4
- package/src/mcp/server.ts +20 -1
- package/src/mcp/tool-meta.ts +49 -2
- package/src/mcp/tools.ts +177 -5
- package/src/sdk/access.ts +143 -0
- package/src/sdk/auth.ts +23 -2
- package/src/sdk/browser-login.ts +193 -0
- package/src/sdk/campaigns.ts +125 -4
- package/src/sdk/client.ts +25 -3
- package/src/sdk/credentials.ts +5 -0
- package/src/sdk/eval.ts +3 -3
- package/src/sdk/types.ts +3 -0
- package/test/mcp/__snapshots__/tools-snapshot.test.ts.snap +7 -0
- package/test/mcp/access.test.ts +158 -0
- package/test/mcp/campaigns.test.ts +165 -0
- package/test/mcp/tools-snapshot.test.ts +2 -2
- package/test/sdk/auth.test.ts +2 -1
- package/test/sdk/browser-login.test.ts +147 -0
- package/test/sdk/campaigns.test.ts +76 -18
- package/test/sdk/client.test.ts +134 -1
- package/test/sdk/credentials.test.ts +6 -1
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
"name": "Indemn",
|
|
6
6
|
"email": "support@indemn.com"
|
|
7
7
|
},
|
|
8
|
-
"version": "1.7.
|
|
8
|
+
"version": "1.7.9",
|
|
9
9
|
"plugins": [
|
|
10
10
|
{
|
|
11
11
|
"name": "indemn-cli",
|
|
12
12
|
"description": "Manage Indemn AI agents \u2014 create, configure, evaluate, and chat with agents programmatically",
|
|
13
|
-
"version": "1.7.
|
|
13
|
+
"version": "1.7.9",
|
|
14
14
|
"author": {
|
|
15
15
|
"name": "Indemn",
|
|
16
16
|
"email": "support@indemn.com"
|
package/.mcp.json
CHANGED
package/README.md
CHANGED
|
@@ -15,7 +15,9 @@ indemn login --env dev # or --env production
|
|
|
15
15
|
indemn whoami
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
`indemn login` opens the dashboard in your browser. Sign in there as usual (with the emailed code if your account uses it) and click **Approve**; the browser hands a one-time code back to the CLI on this computer (`127.0.0.1`), and the CLI exchanges it for its own session. No password is typed in the terminal and no token travels in a URL. Only approve a sign-in you started yourself. On a machine without a browser, `indemn login --password` still asks for email, password and the emailed code in the terminal.
|
|
19
|
+
|
|
20
|
+
The CLI session lasts 24 hours; no API key and no refresh token are kept. It is stored in `~/.indemn/config.json` (the folder and file are readable only by you), together with your role in each organization, which `indemn whoami` shows. Your role decides nothing on this machine: the servers check every request, and the CLI and MCP server only use it to hide tools you can't use anywhere and to explain a refusal. The session is never renewed: when it ends, or the platform rejects it, commands stop with exit code 3 and ask you to run `indemn login` again. `indemn logout` revokes the session on the server and deletes the file, so nothing usable is left.
|
|
19
21
|
|
|
20
22
|
The platform (dev or production) is the one you logged in to. There is no per-command switch.
|
|
21
23
|
|
|
@@ -38,7 +40,7 @@ indemn unlink
|
|
|
38
40
|
|
|
39
41
|
- **Every chat is a test conversation.** `indemn chat` and the MCP `chat_with_agent` mark the conversation as a test, show the tester's name in the dashboard, and read the stored conversation back before the first message; if it was stored as live or in another org, nothing is sent.
|
|
40
42
|
- **Changes ask first.** Deleting, importing, replacing a prompt or model, changing lifecycle, attaching numbers and starting paid runs show what would happen and ask. Scripts pass `--yes`. Published agents also need `--confirm-published`, and an agent whose status cannot be read is treated as published. Changing a skill or the webhook of an agent that may be live asks first too. MCP tools return a dry run until the user agrees; hosts that support elicitation ask the user directly.
|
|
41
|
-
- **Read-only areas.** Billing
|
|
43
|
+
- **Read-only areas.** Billing is read-only. Campaigns are read-only in the terminal; the MCP tools also create and change campaigns, touchpoints, templates, template skills and books (each change approved, in orgs with Solutions on; never sending or deleting). Phone numbers are bought only after a person confirms that exact number (`agents numbers buy`, or the approval form in MCP; an AI cannot confirm a purchase itself); searching is free. Shared V2 catalogs (components, connectors) are read-only.
|
|
42
44
|
- **Exit codes.** 0 success, 1 error, 2 a choice is needed, 3 log in again.
|
|
43
45
|
|
|
44
46
|
## Commands
|
|
@@ -56,7 +58,7 @@ indemn unlink
|
|
|
56
58
|
| Analytics and settings | `analytics metrics\|performance\|volume\|handoffs\|feedback\|conversations\|charts\|chart`, `org config get\|timezone\|business-hours\|holidays`, `audit list` |
|
|
57
59
|
| Tickets | `tickets list\|get\|create\|update\|assign\|resolve\|link\|archive`, `tickets rules list\|create\|update\|delete` |
|
|
58
60
|
| Billing (read-only) | `billing status\|invoices\|usage-forecast\|plans` |
|
|
59
|
-
| Campaigns
|
|
61
|
+
| Campaigns | `campaigns list\|get\|counts\|forecast\|next-touchpoints\|versions`, `campaigns templates list\|get\|skills` (terminal: read-only); MCP: `save_campaign`, `set_touchpoint`, `publish_campaign`, `set_campaign_status`, `save_campaign_template`, `save_template_skill`, `save_book` |
|
|
60
62
|
| Evaluations | `eval run\|status\|results\|list\|trends\|compare\|report\|export\|metrics\|transcript\|prod-calls\|datasets\|evaluators`, `rubric ...`, `testset ...` |
|
|
61
63
|
| V2 platform and Jarvis | `platform agents\|templates\|components\|connectors\|bindings\|scenarios\|simulations\|org-evaluations`, `jarvis chat`, `jarvis jobs create\|list\|get` |
|
|
62
64
|
|
package/dist/cli/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAkI5C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoF3D"}
|
package/dist/cli/auth.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import { Option } from 'commander';
|
|
1
2
|
import chalk from 'chalk';
|
|
2
3
|
import ora from 'ora';
|
|
3
4
|
import * as readline from 'readline';
|
|
4
5
|
import { Writable } from 'node:stream';
|
|
5
|
-
import { customHosts, login, logout, whoami } from '../sdk/auth.js';
|
|
6
|
+
import { customHosts, login, loginWithBrowser, logout, whoami } from '../sdk/auth.js';
|
|
7
|
+
import { currentAccess, refreshAccess } from '../sdk/access.js';
|
|
8
|
+
import { IndemnClient } from '../sdk/client.js';
|
|
6
9
|
import { findLinkFile } from '../core/org-resolver.js';
|
|
7
10
|
import { getOrgFlag } from '../core/scope.js';
|
|
8
11
|
import { SessionExpiredError } from '../core/runtime.js';
|
|
@@ -59,71 +62,93 @@ function describeOrgRule(info) {
|
|
|
59
62
|
return `asked for each command; you belong to ${info.orgs.length}. Use --org <id> or \`indemn link\`.`;
|
|
60
63
|
return 'looked up on first use';
|
|
61
64
|
}
|
|
65
|
+
async function browserLogin(env) {
|
|
66
|
+
const spinner = ora();
|
|
67
|
+
try {
|
|
68
|
+
const result = await loginWithBrowser(env, {
|
|
69
|
+
showUrl: (url, opened) => {
|
|
70
|
+
console.log(opened ? 'Opening your browser to sign in…' : 'Open this link in your browser to sign in:');
|
|
71
|
+
console.log(chalk.dim(` ${url}`));
|
|
72
|
+
spinner.start('Waiting for you to approve in the browser (5 minutes)…');
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
spinner.stop();
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
spinner.fail('Sign-in failed');
|
|
80
|
+
throw err;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
async function passwordLogin(env) {
|
|
84
|
+
const email = await prompt('Email: ');
|
|
85
|
+
if (!email) {
|
|
86
|
+
printError('Email is required');
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
const password = await promptPassword('Password: ');
|
|
90
|
+
if (!password) {
|
|
91
|
+
printError('Password is required');
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
const spinner = ora('Authenticating...').start();
|
|
95
|
+
try {
|
|
96
|
+
return await login(email, password, env, {
|
|
97
|
+
mfaCodePrompt: async () => {
|
|
98
|
+
spinner.stop();
|
|
99
|
+
console.log(chalk.yellow('MFA code sent to your email.'));
|
|
100
|
+
const code = await prompt('MFA Code: ');
|
|
101
|
+
if (!code) {
|
|
102
|
+
throw new Error('MFA code is required');
|
|
103
|
+
}
|
|
104
|
+
spinner.start('Verifying MFA code...');
|
|
105
|
+
return code;
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
spinner.fail('Authentication failed');
|
|
111
|
+
throw err;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function printLoginResult(result) {
|
|
115
|
+
printSuccess(`Logged in as ${result.email} on ${result.environment}`);
|
|
116
|
+
if (result.expiresAt) {
|
|
117
|
+
console.log(chalk.dim(` Session valid until ${new Date(result.expiresAt).toLocaleString()}; run \`indemn login\` again after that.`));
|
|
118
|
+
}
|
|
119
|
+
if (result.orgs.length === 0) {
|
|
120
|
+
console.log(chalk.yellow(' You are not a member of any organization yet. Ask an admin to add you.'));
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
console.log(chalk.dim(` Organizations (${result.orgs.length}):`));
|
|
124
|
+
for (const o of result.orgs)
|
|
125
|
+
console.log(chalk.dim(` ${o.id} ${o.name}`));
|
|
126
|
+
if (result.orgs.length > 1) {
|
|
127
|
+
console.log(chalk.dim(' Choose one per command with --org <id>, or pin a project folder with `indemn link --org <id>`.'));
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
62
131
|
export function registerAuthCommands(program) {
|
|
63
132
|
program
|
|
64
133
|
.command('login')
|
|
65
|
-
.description('
|
|
134
|
+
.description('Sign in through your browser (the dashboard approves this computer)')
|
|
66
135
|
.option('--env <environment>', 'Target environment')
|
|
136
|
+
// Email/password/emailed-code prompts in the terminal; kept for one or two releases.
|
|
137
|
+
.addOption(new Option('--password', 'Sign in with email and password in the terminal').hideHelp())
|
|
67
138
|
.action(async (options) => {
|
|
139
|
+
const env = (options.env || process.env.INDEMN_ENV || 'dev');
|
|
140
|
+
if (env !== 'dev' && env !== 'production') {
|
|
141
|
+
printError('Environment must be "dev" or "production"');
|
|
142
|
+
process.exit(1);
|
|
143
|
+
}
|
|
68
144
|
try {
|
|
69
|
-
const
|
|
70
|
-
if (
|
|
71
|
-
printError('Environment must be "dev" or "production"');
|
|
72
|
-
process.exit(1);
|
|
73
|
-
}
|
|
74
|
-
const email = await prompt('Email: ');
|
|
75
|
-
if (!email) {
|
|
76
|
-
printError('Email is required');
|
|
77
|
-
process.exit(1);
|
|
78
|
-
}
|
|
79
|
-
const password = await promptPassword('Password: ');
|
|
80
|
-
if (!password) {
|
|
81
|
-
printError('Password is required');
|
|
145
|
+
const result = options.password ? await passwordLogin(env) : await browserLogin(env);
|
|
146
|
+
if (!result)
|
|
82
147
|
process.exit(1);
|
|
83
|
-
|
|
84
|
-
const spinner = ora('Authenticating...').start();
|
|
85
|
-
try {
|
|
86
|
-
const result = await login(email, password, env, {
|
|
87
|
-
mfaCodePrompt: async () => {
|
|
88
|
-
spinner.stop();
|
|
89
|
-
console.log(chalk.yellow('MFA code sent to your email.'));
|
|
90
|
-
const code = await prompt('MFA Code: ');
|
|
91
|
-
if (!code) {
|
|
92
|
-
throw new Error('MFA code is required');
|
|
93
|
-
}
|
|
94
|
-
spinner.start('Verifying MFA code...');
|
|
95
|
-
return code;
|
|
96
|
-
},
|
|
97
|
-
});
|
|
98
|
-
spinner.succeed(`Logged in as ${result.email} on ${result.environment}`);
|
|
99
|
-
if (result.expiresAt) {
|
|
100
|
-
console.log(chalk.dim(` Session valid until ${new Date(result.expiresAt).toLocaleString()}; run \`indemn login\` again after that.`));
|
|
101
|
-
}
|
|
102
|
-
if (result.orgs.length === 0) {
|
|
103
|
-
console.log(chalk.yellow(' You are not a member of any organization yet. Ask an admin to add you.'));
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
console.log(chalk.dim(` Organizations (${result.orgs.length}):`));
|
|
107
|
-
for (const o of result.orgs)
|
|
108
|
-
console.log(chalk.dim(` ${o.id} ${o.name}`));
|
|
109
|
-
if (result.orgs.length > 1) {
|
|
110
|
-
console.log(chalk.dim(' Choose one per command with --org <id>, or pin a project folder with `indemn link --org <id>`.'));
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
catch (err) {
|
|
115
|
-
spinner.fail('Authentication failed');
|
|
116
|
-
if (err instanceof Error) {
|
|
117
|
-
printError(err.message);
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
printError(err);
|
|
121
|
-
}
|
|
122
|
-
process.exit(1);
|
|
123
|
-
}
|
|
148
|
+
printLoginResult(result);
|
|
124
149
|
}
|
|
125
150
|
catch (err) {
|
|
126
|
-
printError(err);
|
|
151
|
+
printError(err instanceof Error ? err.message : err);
|
|
127
152
|
process.exit(1);
|
|
128
153
|
}
|
|
129
154
|
});
|
|
@@ -144,15 +169,18 @@ export function registerAuthCommands(program) {
|
|
|
144
169
|
.command('whoami')
|
|
145
170
|
.description('Display current user and environment info')
|
|
146
171
|
.option('--json', 'Output as JSON')
|
|
147
|
-
.action((options) => {
|
|
172
|
+
.action(async (options) => {
|
|
148
173
|
try {
|
|
149
174
|
const info = whoami();
|
|
150
175
|
if (!info) {
|
|
151
176
|
printError(new SessionExpiredError('Not logged in. Run `indemn login` first.'));
|
|
152
177
|
process.exit(3);
|
|
153
178
|
}
|
|
179
|
+
// Roles as copilot reports them now (display only; the servers decide each request).
|
|
180
|
+
const c = new IndemnClient();
|
|
181
|
+
const access = (await refreshAccess(c)) ?? currentAccess(c);
|
|
154
182
|
if (options.json) {
|
|
155
|
-
printJson({ ...info, org_rule: describeOrgRule(info) });
|
|
183
|
+
printJson({ ...info, org_rule: describeOrgRule(info), access: access ?? undefined });
|
|
156
184
|
return;
|
|
157
185
|
}
|
|
158
186
|
console.log(chalk.bold('Current login'));
|
|
@@ -164,10 +192,15 @@ export function registerAuthCommands(program) {
|
|
|
164
192
|
console.log(` Session: valid until ${new Date(info.sessionExpiresAt).toLocaleString()} (then \`indemn login\`)`);
|
|
165
193
|
}
|
|
166
194
|
console.log(` Org here: ${describeOrgRule(info)}`);
|
|
167
|
-
if (
|
|
195
|
+
if (access?.is_indemn_staff)
|
|
196
|
+
console.log(` Indemn staff: yes`);
|
|
197
|
+
const orgs = access ? access.orgs.map((o) => ({ id: o.org_id, name: o.org_name, role: o.role })) : info.orgs;
|
|
198
|
+
if (orgs.length) {
|
|
168
199
|
console.log(` Orgs:`);
|
|
169
|
-
for (const o of
|
|
170
|
-
|
|
200
|
+
for (const o of orgs) {
|
|
201
|
+
const role = 'role' in o && o.role ? chalk.dim(` (${o.role})`) : '';
|
|
202
|
+
console.log(` ${o.id} ${o.name}${role}`);
|
|
203
|
+
}
|
|
171
204
|
}
|
|
172
205
|
// The servers only when one is not the platform's default: the usual ones are noise.
|
|
173
206
|
const custom = customHosts(info);
|
package/dist/cli/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/registry.d.ts
CHANGED
|
@@ -55,12 +55,24 @@ export declare function createRegistry(server: McpServer, opts: {
|
|
|
55
55
|
names: Record<string, string>;
|
|
56
56
|
missing?: string[];
|
|
57
57
|
}>;
|
|
58
|
+
/**
|
|
59
|
+
* Role awareness (display only; the servers still decide): hide tools the person can't use
|
|
60
|
+
* anywhere, refuse early with the reason when the person's access says so, and name the
|
|
61
|
+
* person's role when a server refuses.
|
|
62
|
+
*/
|
|
63
|
+
access?: {
|
|
64
|
+
visible: (name: string) => boolean;
|
|
65
|
+
deny: (name: string, orgId?: string) => Promise<string | null>;
|
|
66
|
+
explain: (orgId?: string) => Promise<string | null>;
|
|
67
|
+
};
|
|
58
68
|
}): {
|
|
59
69
|
tool(name: string, description: string, shape: Shape, handler: Handler, extra?: {
|
|
60
70
|
preview?: (args: Args) => Promise<string>;
|
|
61
71
|
guardWhen?: (args: Args) => Promise<boolean>;
|
|
62
72
|
}): void;
|
|
63
73
|
names(): string[];
|
|
74
|
+
/** Show only the tools the person can use somewhere; the host is told when the list changes. */
|
|
75
|
+
applyVisibility(): void;
|
|
64
76
|
};
|
|
65
77
|
export type Registry = ReturnType<typeof createRegistry>;
|
|
66
78
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/mcp/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,KAAK,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/mcp/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/registry.js
CHANGED
|
@@ -135,6 +135,15 @@ function defaultPreview(name, meta, args) {
|
|
|
135
135
|
export function createRegistry(server, opts) {
|
|
136
136
|
const metaTable = opts.meta ?? TOOL_META;
|
|
137
137
|
const registered = [];
|
|
138
|
+
const handles = new Map();
|
|
139
|
+
// A refusal from the servers names the person's role (handlers report errors as results).
|
|
140
|
+
const withRoleNote = async (result, orgId) => {
|
|
141
|
+
const first = result.isError ? result.content?.[0] : undefined;
|
|
142
|
+
if (!opts.access || !first || first.type !== 'text' || !/^Error: (Not allowed|Access denied)/.test(first.text))
|
|
143
|
+
return result;
|
|
144
|
+
const role = await opts.access.explain(orgId).catch(() => null);
|
|
145
|
+
return role ? { ...result, content: [{ ...first, text: `${first.text} ${role}` }, ...result.content.slice(1)] } : result;
|
|
146
|
+
};
|
|
138
147
|
return {
|
|
139
148
|
tool(name, description, shape, handler, extra = {}) {
|
|
140
149
|
const meta = metaTable[name];
|
|
@@ -162,9 +171,15 @@ export function createRegistry(server, opts) {
|
|
|
162
171
|
.optional()
|
|
163
172
|
.describe('Set true only after the user has agreed to the dry run. Ignored when the host can ask the user itself.');
|
|
164
173
|
}
|
|
165
|
-
server.registerTool(name, { title: meta.title, description, inputSchema, annotations: meta.annotations }, (async (args) => {
|
|
174
|
+
const handle = server.registerTool(name, { title: meta.title, description, inputSchema, annotations: meta.annotations }, (async (args) => {
|
|
175
|
+
let orgId;
|
|
166
176
|
try {
|
|
167
177
|
const org = orgScoped ? await opts.resolveOrg(typeof args.org_id === 'string' ? args.org_id : undefined) : undefined;
|
|
178
|
+
orgId = org?.id;
|
|
179
|
+
const refusal = opts.access ? await opts.access.deny(name, org?.id) : null;
|
|
180
|
+
if (refusal) {
|
|
181
|
+
return { content: [{ type: 'text', text: `Error: Not allowed: ${refusal} Nothing was changed.` }], isError: true };
|
|
182
|
+
}
|
|
168
183
|
return await runWithOrg(org?.id, async () => {
|
|
169
184
|
let confirmedByPerson = false;
|
|
170
185
|
// A guarded tool asks every time, or only when guardWhen says so (e.g. the agent may be live).
|
|
@@ -188,7 +203,7 @@ export function createRegistry(server, opts) {
|
|
|
188
203
|
return gate.result;
|
|
189
204
|
confirmedByPerson = gate.byPerson;
|
|
190
205
|
}
|
|
191
|
-
const result = await handler(args, { confirmedByPerson });
|
|
206
|
+
const result = await withRoleNote(await handler(args, { confirmedByPerson }), orgId);
|
|
192
207
|
return withContext(result, { ...(await opts.context()), ...(confirmedByPerson ? { approved_by_person: true } : {}) }, paginate ? { limit: Number(args.limit ?? 50), page: Number(args.page ?? 1) } : undefined);
|
|
193
208
|
});
|
|
194
209
|
}
|
|
@@ -198,15 +213,33 @@ export function createRegistry(server, opts) {
|
|
|
198
213
|
const message = err.message.replace('Choose one with --org <id>', 'Call again with org_id set to one of the ids below');
|
|
199
214
|
return text({ needs_input: true, message, choices: err.choices, to_proceed: 'Ask the user which organization to use, then call again with org_id set to its id.' });
|
|
200
215
|
}
|
|
201
|
-
|
|
216
|
+
let message = err instanceof Error ? err.message : String(err);
|
|
217
|
+
if (opts.access && /^(Not allowed|Access denied)/.test(message)) {
|
|
218
|
+
const role = await opts.access.explain(orgId).catch(() => null);
|
|
219
|
+
if (role)
|
|
220
|
+
message = `${message} ${role}`;
|
|
221
|
+
}
|
|
202
222
|
return { content: [{ type: 'text', text: `Error: ${message}` }], isError: true };
|
|
203
223
|
}
|
|
204
224
|
}));
|
|
205
225
|
registered.push(name);
|
|
226
|
+
handles.set(name, handle);
|
|
206
227
|
},
|
|
207
228
|
names() {
|
|
208
229
|
return [...registered];
|
|
209
230
|
},
|
|
231
|
+
/** Show only the tools the person can use somewhere; the host is told when the list changes. */
|
|
232
|
+
applyVisibility() {
|
|
233
|
+
if (!opts.access)
|
|
234
|
+
return;
|
|
235
|
+
for (const [name, handle] of handles) {
|
|
236
|
+
const show = opts.access.visible(name);
|
|
237
|
+
if (show && !handle.enabled)
|
|
238
|
+
handle.enable();
|
|
239
|
+
else if (!show && handle.enabled)
|
|
240
|
+
handle.disable();
|
|
241
|
+
}
|
|
242
|
+
},
|
|
210
243
|
};
|
|
211
244
|
}
|
|
212
245
|
//# sourceMappingURL=registry.js.map
|
package/dist/mcp/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/mcp/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/mcp/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAE,SAAS,EAAuB,MAAM,oCAAoC,CAAC;AAEpF,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAiB,MAAM,gBAAgB,CAAC;AAgB1D,sGAAsG;AACtG,SAAS,IAAI,CAAC,IAAa,EAAE,OAAO,GAAG,KAAK;IAC1C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5G,CAAC;AAED;;;;GAIG;AACH,0EAA0E;AAC1E,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEvC,kGAAkG;AAClG,SAAS,GAAG,CAAC,IAA+C;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,IAAI,CAAC,MAAM,IAAI,gBAAgB;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,6FAA6F,CAAC;IAC3G,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,IAAqC,EAAE,KAAK,CAAC;IACvG,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,sFAAsF;QACtF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,IAAI,CAAC,IAAgC,CAAC;QACpF,yGAAyG;QACzG,2DAA2D;QAC3D,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;YAC5F,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,IAAI,mBAAmB,IAAI,CAAC,MAAM,qCAAqC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,4BAA4B,EAAE;YACvO,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACtL,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QACvB,OAAO,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,gBAAgB;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;QACzG,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,qBAAqB,IAAI,CAAC,MAAM,GAAG,gBAAgB,qBAAqB,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC;AAClK,CAAC;AAED,SAAS,WAAW,CAAC,MAAsB,EAAE,OAAsB,EAAE,IAAsC;IACzG,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACtG,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,+EAA+E;IAC/E,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAK,IAAkC,CAAC,WAAW,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAChH,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC;QACjB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACtD,MAAM,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QACjC,2FAA2F;QAC3F,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,+BAA+B,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IACxI,CAAC;IACD,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,6FAA6F;AAC7F,MAAM,YAAY,GAA2B;IAC3C,MAAM,EAAE,8CAA8C;IACtD,gGAAgG;IAChG,OAAO,EAAE,iKAAiK;IAC1K,MAAM,EAAE,6OAA6O;CACtP,CAAC;AAEF;;;;;GAKG;AACH,2GAA2G;AAC3G,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,QAAQ,GAAG,CAAC,EAAE,OAAO,GAAG,GAAG;IAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,uFAAuF;IACvF,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;IACzD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5G,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9G,CAAC;AAED,kHAAkH;AAClH,mGAAmG;AACnG,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;AACpC,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,IAAU,EAAE,EAAE,CAClD,GAAG,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAEpH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAiB,EACjB,QAAgB,EAChB,IAAU,EACV,OAAe,EACf,WAAmB,OAAO;IAE1B,IAAI,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,WAAW,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;gBAC7C,OAAO,EAAE,GAAG,QAAQ,WAAW;gBAC/B,eAAe,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,yGAAyG;oBACzG,+FAA+F;oBAC/F,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,+DAA+D,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;oBAC3J,QAAQ,EAAE,CAAC,SAAS,CAAC;iBACtB;aACF,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;YACnC,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC7G,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QACtI,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAAqC,EAAE,IAAI,KAAK,SAAS,CAAC,cAAc,EAAE,CAAC;gBAC9E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,mDAAmD,EAAE,CAAC,EAAE,CAAC;YAC9J,CAAC;YACD,+FAA+F;YAC/F,8CAA8C;YAC9C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,oGAAoG,EAAE,CAAC,EAAE,CAAC;QAC/M,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACvC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC9F,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,IAAI,CAAC;YACX,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,8EAA8E;SAC3F,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,IAAc,EAAE,IAAU;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SAC/B,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,QAAQ,CAAC;SAClD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;SACxE,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAiB,EACjB,IAoBC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;IACzC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAElD,0FAA0F;IAC1F,MAAM,YAAY,GAAG,KAAK,EAAE,MAAsB,EAAE,KAAc,EAA2B,EAAE;QAC7F,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,qCAAqC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC;QAC9H,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3H,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,CAAC,IAAY,EAAE,WAAmB,EAAE,KAAY,EAAE,OAAgB,EAAE,QAAqG,EAAE;YAC7K,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,gCAAgC,CAAC,CAAC;YAE9E,MAAM,WAAW,GAAU,EAAE,GAAG,KAAK,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACvE,IAAI,SAAS,EAAE,CAAC;gBACd,WAAW,CAAC,MAAM,GAAG,CAAC;qBACnB,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,gHAAgH,CAAC,CAAC;YAChI,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC3D,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,iEAAiE,CAAC,CAAC;YACtG,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,QAAQ,EAAE,CAAC;gBACb,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;gBACxG,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;YACxF,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,WAAW,CAAC,OAAO,GAAG,CAAC;qBACpB,OAAO,EAAE;qBACT,QAAQ,EAAE;qBACV,QAAQ,CAAC,wGAAwG,CAAC,CAAC;YACxH,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAChC,IAAI,EACJ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAC9E,CAAC,KAAK,EAAE,IAAU,EAAE,EAAE;gBACpB,IAAI,KAAyB,CAAC;gBAC9B,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,UAAW,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACtH,KAAK,GAAG,GAAG,EAAE,EAAE,CAAC;oBAChB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC3E,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,OAAO,uBAAuB,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oBACrH,CAAC;oBACD,OAAO,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE;wBAC1C,IAAI,iBAAiB,GAAG,KAAK,CAAC;wBAC9B,+FAA+F;wBAC/F,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;4BACpE,8EAA8E;4BAC9E,MAAM,KAAK,GAA0D,IAAI,CAAC,YAAY;gCACpF,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gCACrE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;4BAClB,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gCAC1B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,oGAAoG,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;4BACjN,CAAC;4BACD,MAAM,KAAK,GAA2B,KAAK,CAAC,KAAK,CAAC;4BAClD,6EAA6E;4BAC7E,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CACvD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE,IAAI,KAAK,GAAG,CAAC,EACrI,CAAC,CACF,CAAC;4BACF,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;4BACvI,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;4BACjC,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;4BACvE,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,QAAQ,eAAe,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,WAAW,GAAG,CAAC;4BAC/G,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;4BAC7F,IAAI,CAAC,IAAI,CAAC,OAAO;gCAAE,OAAO,IAAI,CAAC,MAAM,CAAC;4BACtC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACpC,CAAC;wBACD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;wBACrF,OAAO,WAAW,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBAClN,CAAC,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;wBACnC,uEAAuE;wBACvE,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,EAAE,oDAAoD,CAAC,CAAC;wBACxH,OAAO,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,oFAAoF,EAAE,CAAC,CAAC;oBACtK,CAAC;oBACD,IAAI,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC/D,IAAI,IAAI,CAAC,MAAM,IAAI,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;wBAChE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;wBAChE,IAAI,IAAI;4BAAE,OAAO,GAAG,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC;oBAC3C,CAAC;oBACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBACnF,CAAC;YACH,CAAC,CAAU,CACZ,CAAC;YACF,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC;QACD,KAAK;YACH,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC;QACzB,CAAC;QACD,gGAAgG;QAChG,eAAe;YACb,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACzB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACrC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;oBAAE,MAAM,CAAC,MAAM,EAAE,CAAC;qBACxC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO;oBAAE,MAAM,CAAC,OAAO,EAAE,CAAC;YACrD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/mcp/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1D;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CA6CnD;AAUD,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BjD"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -2,6 +2,7 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
|
2
2
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
3
|
import { IndemnClient } from '../sdk/client.js';
|
|
4
4
|
import { registerTools } from './tools.js';
|
|
5
|
+
import { refreshAccess } from '../sdk/access.js';
|
|
5
6
|
import { setAskers } from '../core/scope.js';
|
|
6
7
|
import { cliVersion, PERSON_TIMEOUT_MS } from '../core/runtime.js';
|
|
7
8
|
/**
|
|
@@ -76,8 +77,21 @@ export async function startServer() {
|
|
|
76
77
|
version: cliVersion(),
|
|
77
78
|
}, { instructions: SERVER_INSTRUCTIONS });
|
|
78
79
|
setAskers(mcpAskers(server));
|
|
79
|
-
registerTools(server, client);
|
|
80
|
+
const registry = registerTools(server, client);
|
|
81
|
+
// A host session (INDEMN_TOKEN) may be a different identity than any saved login,
|
|
82
|
+
// so never hide tools for it — deny() still refuses with the reason when a call
|
|
83
|
+
// isn't allowed. A saved login hides from what it already knows, before the host
|
|
84
|
+
// lists tools, then keeps it fresh.
|
|
85
|
+
const ownLogin = client.getCredential()?.source === 'config';
|
|
86
|
+
if (ownLogin)
|
|
87
|
+
registry.applyVisibility();
|
|
80
88
|
const transport = new StdioServerTransport();
|
|
81
89
|
await server.connect(transport);
|
|
90
|
+
const refresh = () => refreshAccess(client).then(() => { if (ownLogin)
|
|
91
|
+
registry.applyVisibility(); }, () => undefined);
|
|
92
|
+
void refresh();
|
|
93
|
+
setInterval(() => void refresh(), ACCESS_REFRESH_MS).unref();
|
|
82
94
|
}
|
|
95
|
+
/** How often a running MCP server asks again what the person may do. */
|
|
96
|
+
const ACCESS_REFRESH_MS = 15 * 60_000;
|
|
83
97
|
//# sourceMappingURL=server.js.map
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-meta.d.ts","sourceRoot":"","sources":["../../src/mcp/tool-meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,eAAe,CAAC;IAC7B,6EAA6E;IAC7E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IACrD,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mGAAmG;IACnG,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"tool-meta.d.ts","sourceRoot":"","sources":["../../src/mcp/tool-meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,eAAe,CAAC;IAC7B,6EAA6E;IAC7E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IACrD,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mGAAmG;IACnG,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA6BD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAgR9C,CAAC"}
|
package/dist/mcp/tool-meta.js
CHANGED
|
@@ -6,6 +6,15 @@ const write = (title, extra = {}) => ({
|
|
|
6
6
|
title,
|
|
7
7
|
annotations: { title, readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false, ...extra },
|
|
8
8
|
});
|
|
9
|
+
/** The parts a call changes, in words: "audience, channel policy". */
|
|
10
|
+
const parts = (a, keys) => keys.filter((k) => a[k] !== undefined && a[k] !== '').map((k) => k.replace(/_/g, ' ')).join(', ');
|
|
11
|
+
/** A book change with its new values, so the person sees what they approve: "field map to Company → account.name". */
|
|
12
|
+
const bookChanges = (a) => [
|
|
13
|
+
a.source !== undefined && `source to ${a.source?.kind ?? JSON.stringify(a.source)}`,
|
|
14
|
+
Array.isArray(a.field_map) && `field map to ${a.field_map.map((m) => `${m.source_path} → ${m.schema_key}`).join(', ')}`,
|
|
15
|
+
Array.isArray(a.identity_keys) && `identity keys to ${a.identity_keys.join(', ')}`,
|
|
16
|
+
a.display && `display to ${['primary', 'secondary'].filter((k) => Array.isArray(a.display[k])).map((k) => `${k} ${a.display[k].join(', ')}`).join('; ')}`,
|
|
17
|
+
].filter(Boolean).join('; ');
|
|
9
18
|
/** Overwrites or removes something that cannot be restored from the tool itself. */
|
|
10
19
|
const destroy = (title, extra = {}) => ({
|
|
11
20
|
title,
|
|
@@ -182,8 +191,44 @@ export const TOOL_META = {
|
|
|
182
191
|
delete_ticket_rule: { ...destroy('Delete ticket rule'), guard: true, describe: (a) => `This will delete ticket rule ${a.rule_id}; agents stop opening tickets for it.` },
|
|
183
192
|
// Billing (read-only)
|
|
184
193
|
get_billing: read('Billing status, invoices, usage or plans'),
|
|
185
|
-
// Campaigns
|
|
186
|
-
get_campaigns: read('Read campaigns and
|
|
194
|
+
// Campaigns: each change is approved on a card; nothing here sends a message, and nothing deletes.
|
|
195
|
+
get_campaigns: read('Read campaigns, templates and books'),
|
|
196
|
+
save_campaign: {
|
|
197
|
+
...write('Create or change campaign'), guard: true,
|
|
198
|
+
describe: (a) => a.campaign_id
|
|
199
|
+
? `This will change the ${parts(a, ['audience', 'escalation_policy', 'channel_policy'])} in the draft of campaign ${a.campaign_id} (it takes effect when the campaign is published).`
|
|
200
|
+
: `This will create campaign "${a.name}" as a draft; it sends nothing until it is published and started.`,
|
|
201
|
+
},
|
|
202
|
+
set_touchpoint: {
|
|
203
|
+
...write('Add or change touchpoint', { idempotentHint: true }), guard: true,
|
|
204
|
+
describe: (a) => `This will add or change touchpoint "${a.key}" in the draft of campaign ${a.campaign_id}${a.channel ? ` (${a.channel})` : ''}${a.terminal_action === 'send' ? '. It is set to SEND to customers directly once the campaign is published and running' : ''}.`,
|
|
205
|
+
},
|
|
206
|
+
publish_campaign: { ...write('Publish campaign'), guard: true, describe: (a) => `This will publish the draft of campaign ${a.campaign_id} as its next version; if it is running, it uses it from its next run.` },
|
|
207
|
+
set_campaign_status: {
|
|
208
|
+
...write('Start, pause or archive campaign'), guard: true,
|
|
209
|
+
describe: (a) => a.status === 'running'
|
|
210
|
+
? `This will START campaign ${a.campaign_id}: it enrols the matching records of its book and runs its touchpoints (touchpoints set to send reach real customers).`
|
|
211
|
+
: a.status === 'archived' ? `This will archive campaign ${a.campaign_id} for good: it cannot be started again.`
|
|
212
|
+
: `This will pause campaign ${a.campaign_id}: its touchpoints stop until it is started again.`,
|
|
213
|
+
},
|
|
214
|
+
save_campaign_template: {
|
|
215
|
+
...write('Create or change campaign template'), guard: true,
|
|
216
|
+
describe: (a) => a.template_id
|
|
217
|
+
? `This will save a new version of template ${a.template_id} (${parts(a, ['subject', 'body', 'html', 'uses_variables', 'skills', 'selection_tags'])}); touchpoints keep the version they are set to until it is set again.`
|
|
218
|
+
: `This will create ${a.channel} template "${a.name}".`,
|
|
219
|
+
},
|
|
220
|
+
save_template_skill: {
|
|
221
|
+
...write('Create or change template skill'), guard: true,
|
|
222
|
+
describe: (a) => a.template_skill_id
|
|
223
|
+
? `This will change template skill ${a.template_skill_id} (${parts(a, ['name', 'instructions'])}); templates using it write with it from their campaigns' next run.`
|
|
224
|
+
: `This will create template skill "${a.name}".`,
|
|
225
|
+
},
|
|
226
|
+
save_book: {
|
|
227
|
+
...write('Create or change book'), guard: true,
|
|
228
|
+
describe: (a) => a.book_id
|
|
229
|
+
? `This will change book ${a.book_id}: ${bookChanges(a)}.`
|
|
230
|
+
: `This will create book "${a.name}" for this solution.`,
|
|
231
|
+
},
|
|
187
232
|
// V2 platform and Jarvis (Darwin)
|
|
188
233
|
platform_list: read('List V2 platform items'),
|
|
189
234
|
platform_get: read('Get a V2 platform item'),
|