@indemn/cli 1.4.0 → 1.6.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/cli/functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2U/D"}
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/cli/functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4LpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwZ/D"}
@@ -1,7 +1,173 @@
1
+ import chalk from 'chalk';
1
2
  import ora from 'ora';
3
+ import { readFileSync, existsSync } from 'node:fs';
2
4
  import { IndemnClient } from '../sdk/client.js';
3
5
  import { FunctionsSDK } from '../sdk/functions.js';
4
6
  import { formatTable, printJson, printError, printSuccess, confirm } from './utils/output.js';
7
+ const REST_API_TYPE = 'rest_api';
8
+ const CUSTOM_TOOL_TYPE = 'custom_tool';
9
+ const TRANSFER_CALL_TYPE = 'transfer_call';
10
+ // Server expects kebab-case auth types (see copilot-server/utils/constants.js
11
+ // AI_FUNCTIONS_REST_API_HEADERS). Snake_case values pass validation but silently
12
+ // produce no Authorization header.
13
+ const VALID_AUTH_TYPES = ['api-key', 'basic-auth', 'bearer-token', 'no-auth'];
14
+ const VALID_HTTP_METHODS = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'];
15
+ function loadConfigFile(filePath) {
16
+ if (!existsSync(filePath)) {
17
+ throw new Error(`--config file not found: ${filePath}`);
18
+ }
19
+ const content = readFileSync(filePath, 'utf-8');
20
+ let parsed;
21
+ try {
22
+ parsed = JSON.parse(content);
23
+ }
24
+ catch {
25
+ throw new Error(`--config file is not valid JSON: ${filePath}`);
26
+ }
27
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
28
+ throw new Error(`--config file must contain a JSON object: ${filePath}`);
29
+ }
30
+ const obj = parsed;
31
+ // Auto-unwrap if the file is a full BotFunction dump rather than just configurationSchema contents.
32
+ // (e.g. user piped `functions list --json` into a file). Detected by presence of the wrapping key.
33
+ if (obj.configurationSchema && typeof obj.configurationSchema === 'object' && !Array.isArray(obj.configurationSchema)) {
34
+ return obj.configurationSchema;
35
+ }
36
+ return obj;
37
+ }
38
+ function loadPayloadString(opts) {
39
+ if (opts.payload !== undefined && opts.payloadFile !== undefined) {
40
+ throw new Error('--payload and --payload-file are mutually exclusive');
41
+ }
42
+ if (opts.payload !== undefined)
43
+ return opts.payload;
44
+ if (opts.payloadFile !== undefined) {
45
+ if (!existsSync(opts.payloadFile)) {
46
+ throw new Error(`--payload-file not found: ${opts.payloadFile}`);
47
+ }
48
+ return readFileSync(opts.payloadFile, 'utf-8');
49
+ }
50
+ return undefined;
51
+ }
52
+ function buildAuthorization(opts) {
53
+ if (opts.authType === undefined)
54
+ return undefined;
55
+ // Accept snake_case as a user-friendly alias for kebab-case (idiomatic CLI variants).
56
+ const authType = opts.authType.replace(/_/g, '-');
57
+ if (!VALID_AUTH_TYPES.includes(authType)) {
58
+ throw new Error(`--auth-type must be one of: ${VALID_AUTH_TYPES.join(', ')}`);
59
+ }
60
+ if (authType === 'no-auth')
61
+ return { type: 'no-auth' };
62
+ if (authType === 'api-key') {
63
+ if (!opts.authKey || !opts.authValue) {
64
+ throw new Error('--auth-key and --auth-value are required when --auth-type is api-key');
65
+ }
66
+ return { type: 'api-key', key: opts.authKey, value: opts.authValue };
67
+ }
68
+ if (authType === 'basic-auth') {
69
+ if (!opts.authUsername || !opts.authPassword) {
70
+ throw new Error('--auth-username and --auth-password are required when --auth-type is basic-auth');
71
+ }
72
+ return { type: 'basic-auth', username: opts.authUsername, password: opts.authPassword };
73
+ }
74
+ if (authType === 'bearer-token') {
75
+ if (!opts.authToken) {
76
+ throw new Error('--auth-token is required when --auth-type is bearer-token');
77
+ }
78
+ return { type: 'bearer-token', token: opts.authToken };
79
+ }
80
+ return undefined;
81
+ }
82
+ function validateTypeFlagCompatibility(type, opts) {
83
+ // REST-only flags must not be used with non-rest_api types — point them at --config instead.
84
+ const restOnlyFlags = [
85
+ ['endpoint', '--endpoint'],
86
+ ['method', '--method'],
87
+ ['payload', '--payload'],
88
+ ['payloadFile', '--payload-file'],
89
+ ['responseField', '--response-field'],
90
+ ['authType', '--auth-type'],
91
+ ['authKey', '--auth-key'],
92
+ ['authValue', '--auth-value'],
93
+ ['authUsername', '--auth-username'],
94
+ ['authPassword', '--auth-password'],
95
+ ['authToken', '--auth-token'],
96
+ ];
97
+ if (type !== REST_API_TYPE) {
98
+ for (const [opt, flag] of restOnlyFlags) {
99
+ if (opts[opt] !== undefined) {
100
+ throw new Error(`${flag} is only valid for --type rest_api. Use --config for other function types.`);
101
+ }
102
+ }
103
+ }
104
+ if (type !== TRANSFER_CALL_TYPE && opts.handoffNumber !== undefined) {
105
+ throw new Error('--handoff-number is only valid for --type transfer_call. Use --config for other function types.');
106
+ }
107
+ if (opts.method !== undefined) {
108
+ const upper = opts.method.toUpperCase();
109
+ if (!VALID_HTTP_METHODS.includes(upper)) {
110
+ throw new Error(`--method must be one of: ${VALID_HTTP_METHODS.join(', ')}`);
111
+ }
112
+ }
113
+ }
114
+ function buildConfigurationSchema(opts, type) {
115
+ // Start from --config file if provided; layer individual flags on top so CLI wins.
116
+ const result = opts.config ? loadConfigFile(opts.config) : {};
117
+ if (type === REST_API_TYPE) {
118
+ if (opts.endpoint !== undefined)
119
+ result.endpoint = opts.endpoint;
120
+ if (opts.method !== undefined)
121
+ result.method = opts.method.toUpperCase();
122
+ const payloadStr = loadPayloadString(opts);
123
+ if (payloadStr !== undefined)
124
+ result.payload = payloadStr;
125
+ if (opts.responseField !== undefined)
126
+ result.responseField = opts.responseField;
127
+ const auth = buildAuthorization(opts);
128
+ if (auth !== undefined)
129
+ result.authorization = auth;
130
+ // Server's validateRestApiPayload requires authorization.type. Default to "no-auth"
131
+ // so callers don't have to pass --auth-type explicitly for unauthenticated APIs.
132
+ if (result.authorization === undefined) {
133
+ result.authorization = { type: 'no-auth' };
134
+ }
135
+ }
136
+ if (type === REST_API_TYPE || type === CUSTOM_TOOL_TYPE) {
137
+ if (opts.outputInstructions !== undefined)
138
+ result.outputInstructions = opts.outputInstructions;
139
+ if (opts.craftResponse !== undefined)
140
+ result.craftResponse = !!opts.craftResponse;
141
+ }
142
+ if (type === TRANSFER_CALL_TYPE) {
143
+ // Server's validateTransferCallPayload requires `handoffNumber` (the destination
144
+ // phone number for the call transfer). copilot-server/services/botToolsValidationService.js:52
145
+ if (opts.handoffNumber !== undefined)
146
+ result.handoffNumber = opts.handoffNumber;
147
+ if (opts.outputInstructions !== undefined)
148
+ result.outputInstructions = opts.outputInstructions;
149
+ }
150
+ return Object.keys(result).length > 0 ? result : undefined;
151
+ }
152
+ function applyConfigSchemaOptions(cmd) {
153
+ return cmd
154
+ .option('--endpoint <url>', 'REST API endpoint URL')
155
+ .option('--method <method>', 'HTTP method (GET|POST|PUT|DELETE|PATCH)')
156
+ .option('--payload <json>', 'Request body as JSON string (server JSON.parses at execution)')
157
+ .option('--payload-file <path>', 'Path to file containing request body JSON (alt to --payload)')
158
+ .option('--response-field <path>', 'Dot-path for extracting from response (e.g. data.result)')
159
+ .option('--output-instructions <text>', 'Instructions for how the LLM uses the response')
160
+ .option('--craft-response', 'Have LLM craft response (use --no-craft-response to return data directly)')
161
+ .option('--no-craft-response', 'Return data directly without LLM crafting')
162
+ .option('--auth-type <type>', 'Auth type: api-key | basic-auth | bearer-token | no-auth')
163
+ .option('--auth-key <name>', 'Header name for api-key auth (e.g. X-API-Key)')
164
+ .option('--auth-value <value>', 'Header value for api-key auth')
165
+ .option('--auth-username <user>', 'Username for basic-auth')
166
+ .option('--auth-password <pass>', 'Password for basic-auth')
167
+ .option('--auth-token <token>', 'Token for bearer-token auth')
168
+ .option('--handoff-number <number>', 'Destination phone number for --type transfer_call (E.164, e.g. +15551234567)')
169
+ .option('--config <path>', 'JSON file with full configurationSchema (individual flags override file values)');
170
+ }
5
171
  export function registerFunctionCommands(program) {
6
172
  const functions = program.command('functions').description('Manage agent functions/tools');
7
173
  functions
@@ -47,63 +213,118 @@ export function registerFunctionCommands(program) {
47
213
  process.exit(1);
48
214
  }
49
215
  });
50
- functions
216
+ applyConfigSchemaOptions(functions
51
217
  .command('create')
52
218
  .argument('<agent-id>', 'Agent ID')
53
219
  .description('Create a function for an agent')
54
220
  .requiredOption('--type <type>', 'Function type')
55
221
  .option('--name <name>', 'Function name')
56
- .option('--description <description>', 'Function description')
222
+ .option('--description <description>', 'Function description'))
57
223
  .action(async (agentId, options) => {
58
224
  try {
225
+ validateTypeFlagCompatibility(options.type, options);
226
+ const configurationSchema = buildConfigurationSchema(options, options.type);
227
+ // For rest_api on create, require endpoint+method (unless supplied via --config).
228
+ if (options.type === REST_API_TYPE) {
229
+ if (!configurationSchema || !configurationSchema.endpoint) {
230
+ throw new Error('--endpoint (or --config with endpoint) is required for --type rest_api');
231
+ }
232
+ if (!configurationSchema.method) {
233
+ throw new Error('--method (or --config with method) is required for --type rest_api');
234
+ }
235
+ }
236
+ // For transfer_call on create, require handoffNumber (server validation rejects without it).
237
+ if (options.type === TRANSFER_CALL_TYPE) {
238
+ if (!configurationSchema || !configurationSchema.handoffNumber) {
239
+ throw new Error('--handoff-number (or --config with handoffNumber) is required for --type transfer_call');
240
+ }
241
+ }
59
242
  const client = new IndemnClient();
60
243
  const sdk = new FunctionsSDK(client);
61
244
  const spinner = ora('Creating function...').start();
245
+ // Step 1: POST skeleton (server's createBotTool doesn't convert configurationSchema —
246
+ // only the update path does. So a two-step create is needed for the function to be executable.)
62
247
  const func = await sdk.createFunction(agentId, {
63
248
  type: options.type,
64
249
  name: options.name,
65
250
  description: options.description,
66
251
  });
252
+ // Step 2: PUT configurationSchema so the server converts it into executionSchema.
253
+ let finalFunc = func;
254
+ if (configurationSchema) {
255
+ spinner.text = 'Configuring function...';
256
+ try {
257
+ finalFunc = await sdk.updateFunction(agentId, func._id, {
258
+ type: options.type,
259
+ description: options.description || '',
260
+ configurationSchema,
261
+ });
262
+ }
263
+ catch (err) {
264
+ spinner.fail(`Function created (${func._id}) but configuration step failed.`);
265
+ printError(err);
266
+ console.log(chalk.dim(`Retry: indemn functions update <agent-id> ${func._id} ...`));
267
+ console.log(chalk.dim(`Or remove: indemn functions delete <agent-id> ${func._id}`));
268
+ process.exit(1);
269
+ }
270
+ }
67
271
  spinner.stop();
68
- printSuccess(`Function created: ${func._id}`);
69
- console.log(` Name: ${func.name || '(none)'}`);
70
- console.log(` Type: ${func.type}`);
272
+ printSuccess(`Function created: ${finalFunc._id}`);
273
+ console.log(` Name: ${finalFunc.name || '(none)'}`);
274
+ console.log(` Type: ${finalFunc.type}`);
71
275
  }
72
276
  catch (err) {
73
277
  printError(err);
74
278
  process.exit(1);
75
279
  }
76
280
  });
77
- functions
281
+ applyConfigSchemaOptions(functions
78
282
  .command('update')
79
283
  .argument('<agent-id>', 'Agent ID')
80
284
  .argument('<func-id>', 'Function ID')
81
285
  .description('Update a function')
82
286
  .option('--name <name>', 'Function name')
83
- .option('--description <description>', 'Function description')
287
+ .option('--description <description>', 'Function description'))
84
288
  .action(async (agentId, funcId, options) => {
85
289
  try {
86
- const input = {};
87
- if (options.name)
88
- input.name = options.name;
89
- if (options.description)
90
- input.description = options.description;
91
- if (Object.keys(input).length === 0) {
92
- printError('No update options provided. Use --name or --description.');
93
- process.exit(1);
94
- }
95
290
  const client = new IndemnClient();
96
291
  const sdk = new FunctionsSDK(client);
97
- const spinner = ora('Updating function...').start();
98
- // Server requires type and description on updates — fetch current values as defaults
292
+ // Fetch current function — required so we can preserve type/description and merge configurationSchema.
293
+ const fetchSpinner = ora('Fetching current function...').start();
99
294
  const functions = await sdk.listFunctions(agentId);
100
295
  const current = functions.find((f) => f._id === funcId);
101
- if (current) {
102
- if (!input.type)
103
- input.type = current.type;
104
- if (!input.description)
105
- input.description = current.description;
296
+ fetchSpinner.stop();
297
+ if (!current) {
298
+ printError(`Function ${funcId} not found.`);
299
+ process.exit(1);
106
300
  }
301
+ validateTypeFlagCompatibility(current.type, options);
302
+ const input = {
303
+ // Server requires type + description on every update.
304
+ type: current.type,
305
+ description: options.description || current.description || '',
306
+ };
307
+ if (options.name)
308
+ input.name = options.name;
309
+ // Build configurationSchema patch from flags + --config, then shallow-merge over current.
310
+ // Server replaces executionSchema wholesale on each update, so we must send the full merged schema —
311
+ // otherwise `update --endpoint X` would wipe everything else.
312
+ const patch = buildConfigurationSchema(options, current.type);
313
+ if (patch) {
314
+ input.configurationSchema = {
315
+ ...(current.configurationSchema || {}),
316
+ ...patch,
317
+ };
318
+ }
319
+ // Anything actually changing? type+description are always set; require at least one explicit option.
320
+ const hasUserChanges = options.name !== undefined ||
321
+ options.description !== undefined ||
322
+ patch !== undefined;
323
+ if (!hasUserChanges) {
324
+ printError('No update options provided. Use --name, --description, --endpoint, --config, etc.');
325
+ process.exit(1);
326
+ }
327
+ const spinner = ora('Updating function...').start();
107
328
  await sdk.updateFunction(agentId, funcId, input);
108
329
  spinner.stop();
109
330
  printSuccess(`Function ${funcId} updated.`);
@@ -147,8 +368,17 @@ export function registerFunctionCommands(program) {
147
368
  try {
148
369
  const client = new IndemnClient();
149
370
  const sdk = new FunctionsSDK(client);
371
+ // Server's /test-rest-api endpoint expects the configurationSchema in the request body
372
+ // (it re-converts via convertPayloadToExecutionSchema). It does NOT read the stored
373
+ // schema from the DB. So we fetch the function's current configurationSchema and send it.
150
374
  const spinner = ora('Testing function...').start();
151
- const result = await sdk.testFunction(agentId, funcId);
375
+ const all = await sdk.listFunctions(agentId);
376
+ const current = all.find((f) => f._id === funcId);
377
+ if (!current) {
378
+ spinner.fail(`Function ${funcId} not found.`);
379
+ process.exit(1);
380
+ }
381
+ const result = await sdk.testFunction(agentId, funcId, current.configurationSchema || {});
152
382
  spinner.stop();
153
383
  if (options.json) {
154
384
  printJson(result);
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/cli/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/cli/functions.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -16,7 +16,7 @@ const program = new Command();
16
16
  program
17
17
  .name('indemn')
18
18
  .description('CLI for managing Indemn AI agents')
19
- .version('1.4.0');
19
+ .version('1.5.0');
20
20
  program.option('--env <environment>', 'Environment (dev or production)');
21
21
  program.option('--no-banner', 'Suppress the active-org banner');
22
22
  // Commands that already surface org identity themselves — no banner needed.
@@ -85,6 +85,8 @@ export interface BotFunction {
85
85
  headers?: Record<string, string>;
86
86
  body?: Record<string, unknown>;
87
87
  parameters?: FunctionParameter[];
88
+ configurationSchema?: Record<string, unknown>;
89
+ executionSchema?: Record<string, unknown>;
88
90
  id_bot?: string;
89
91
  createdAt?: string;
90
92
  updatedAt?: string;
@@ -100,14 +102,17 @@ export interface CreateFunctionInput {
100
102
  type: string;
101
103
  description?: string;
102
104
  name?: string;
105
+ configurationSchema?: Record<string, unknown>;
103
106
  url?: string;
104
107
  method?: string;
105
108
  headers?: Record<string, string>;
106
109
  body?: Record<string, unknown>;
107
110
  }
108
111
  export interface UpdateFunctionInput {
112
+ type?: string;
109
113
  description?: string;
110
114
  name?: string;
115
+ configurationSchema?: Record<string, unknown>;
111
116
  url?: string;
112
117
  method?: string;
113
118
  headers?: Record<string, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sdk/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sdk/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@indemn/cli",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "description": "CLI, MCP server, and plugin for managing Indemn AI agents",
5
5
  "type": "module",
6
6
  "main": "./dist/sdk/index.js",
@@ -1,9 +1,191 @@
1
1
  import { Command } from 'commander';
2
+ import chalk from 'chalk';
2
3
  import ora from 'ora';
4
+ import { readFileSync, existsSync } from 'node:fs';
3
5
  import { IndemnClient } from '../sdk/client.js';
4
6
  import { FunctionsSDK } from '../sdk/functions.js';
5
7
  import { formatTable, printJson, printError, printSuccess, confirm } from './utils/output.js';
6
8
 
9
+ const REST_API_TYPE = 'rest_api';
10
+ const CUSTOM_TOOL_TYPE = 'custom_tool';
11
+ const TRANSFER_CALL_TYPE = 'transfer_call';
12
+ // Server expects kebab-case auth types (see copilot-server/utils/constants.js
13
+ // AI_FUNCTIONS_REST_API_HEADERS). Snake_case values pass validation but silently
14
+ // produce no Authorization header.
15
+ const VALID_AUTH_TYPES = ['api-key', 'basic-auth', 'bearer-token', 'no-auth'] as const;
16
+ const VALID_HTTP_METHODS = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'] as const;
17
+
18
+ interface ConfigSchemaOptions {
19
+ config?: string;
20
+ endpoint?: string;
21
+ method?: string;
22
+ payload?: string;
23
+ payloadFile?: string;
24
+ responseField?: string;
25
+ outputInstructions?: string;
26
+ craftResponse?: boolean;
27
+ authType?: string;
28
+ authKey?: string;
29
+ authValue?: string;
30
+ authUsername?: string;
31
+ authPassword?: string;
32
+ authToken?: string;
33
+ handoffNumber?: string;
34
+ }
35
+
36
+ function loadConfigFile(filePath: string): Record<string, unknown> {
37
+ if (!existsSync(filePath)) {
38
+ throw new Error(`--config file not found: ${filePath}`);
39
+ }
40
+ const content = readFileSync(filePath, 'utf-8');
41
+ let parsed: unknown;
42
+ try {
43
+ parsed = JSON.parse(content);
44
+ } catch {
45
+ throw new Error(`--config file is not valid JSON: ${filePath}`);
46
+ }
47
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
48
+ throw new Error(`--config file must contain a JSON object: ${filePath}`);
49
+ }
50
+ const obj = parsed as Record<string, unknown>;
51
+ // Auto-unwrap if the file is a full BotFunction dump rather than just configurationSchema contents.
52
+ // (e.g. user piped `functions list --json` into a file). Detected by presence of the wrapping key.
53
+ if (obj.configurationSchema && typeof obj.configurationSchema === 'object' && !Array.isArray(obj.configurationSchema)) {
54
+ return obj.configurationSchema as Record<string, unknown>;
55
+ }
56
+ return obj;
57
+ }
58
+
59
+ function loadPayloadString(opts: ConfigSchemaOptions): string | undefined {
60
+ if (opts.payload !== undefined && opts.payloadFile !== undefined) {
61
+ throw new Error('--payload and --payload-file are mutually exclusive');
62
+ }
63
+ if (opts.payload !== undefined) return opts.payload;
64
+ if (opts.payloadFile !== undefined) {
65
+ if (!existsSync(opts.payloadFile)) {
66
+ throw new Error(`--payload-file not found: ${opts.payloadFile}`);
67
+ }
68
+ return readFileSync(opts.payloadFile, 'utf-8');
69
+ }
70
+ return undefined;
71
+ }
72
+
73
+ function buildAuthorization(opts: ConfigSchemaOptions): Record<string, unknown> | undefined {
74
+ if (opts.authType === undefined) return undefined;
75
+ // Accept snake_case as a user-friendly alias for kebab-case (idiomatic CLI variants).
76
+ const authType = opts.authType.replace(/_/g, '-');
77
+ if (!(VALID_AUTH_TYPES as readonly string[]).includes(authType)) {
78
+ throw new Error(`--auth-type must be one of: ${VALID_AUTH_TYPES.join(', ')}`);
79
+ }
80
+ if (authType === 'no-auth') return { type: 'no-auth' };
81
+ if (authType === 'api-key') {
82
+ if (!opts.authKey || !opts.authValue) {
83
+ throw new Error('--auth-key and --auth-value are required when --auth-type is api-key');
84
+ }
85
+ return { type: 'api-key', key: opts.authKey, value: opts.authValue };
86
+ }
87
+ if (authType === 'basic-auth') {
88
+ if (!opts.authUsername || !opts.authPassword) {
89
+ throw new Error('--auth-username and --auth-password are required when --auth-type is basic-auth');
90
+ }
91
+ return { type: 'basic-auth', username: opts.authUsername, password: opts.authPassword };
92
+ }
93
+ if (authType === 'bearer-token') {
94
+ if (!opts.authToken) {
95
+ throw new Error('--auth-token is required when --auth-type is bearer-token');
96
+ }
97
+ return { type: 'bearer-token', token: opts.authToken };
98
+ }
99
+ return undefined;
100
+ }
101
+
102
+ function validateTypeFlagCompatibility(type: string, opts: ConfigSchemaOptions): void {
103
+ // REST-only flags must not be used with non-rest_api types — point them at --config instead.
104
+ const restOnlyFlags: Array<[keyof ConfigSchemaOptions, string]> = [
105
+ ['endpoint', '--endpoint'],
106
+ ['method', '--method'],
107
+ ['payload', '--payload'],
108
+ ['payloadFile', '--payload-file'],
109
+ ['responseField', '--response-field'],
110
+ ['authType', '--auth-type'],
111
+ ['authKey', '--auth-key'],
112
+ ['authValue', '--auth-value'],
113
+ ['authUsername', '--auth-username'],
114
+ ['authPassword', '--auth-password'],
115
+ ['authToken', '--auth-token'],
116
+ ];
117
+ if (type !== REST_API_TYPE) {
118
+ for (const [opt, flag] of restOnlyFlags) {
119
+ if (opts[opt] !== undefined) {
120
+ throw new Error(`${flag} is only valid for --type rest_api. Use --config for other function types.`);
121
+ }
122
+ }
123
+ }
124
+ if (type !== TRANSFER_CALL_TYPE && opts.handoffNumber !== undefined) {
125
+ throw new Error('--handoff-number is only valid for --type transfer_call. Use --config for other function types.');
126
+ }
127
+ if (opts.method !== undefined) {
128
+ const upper = opts.method.toUpperCase();
129
+ if (!(VALID_HTTP_METHODS as readonly string[]).includes(upper)) {
130
+ throw new Error(`--method must be one of: ${VALID_HTTP_METHODS.join(', ')}`);
131
+ }
132
+ }
133
+ }
134
+
135
+ function buildConfigurationSchema(opts: ConfigSchemaOptions, type: string): Record<string, unknown> | undefined {
136
+ // Start from --config file if provided; layer individual flags on top so CLI wins.
137
+ const result: Record<string, unknown> = opts.config ? loadConfigFile(opts.config) : {};
138
+
139
+ if (type === REST_API_TYPE) {
140
+ if (opts.endpoint !== undefined) result.endpoint = opts.endpoint;
141
+ if (opts.method !== undefined) result.method = opts.method.toUpperCase();
142
+ const payloadStr = loadPayloadString(opts);
143
+ if (payloadStr !== undefined) result.payload = payloadStr;
144
+ if (opts.responseField !== undefined) result.responseField = opts.responseField;
145
+ const auth = buildAuthorization(opts);
146
+ if (auth !== undefined) result.authorization = auth;
147
+ // Server's validateRestApiPayload requires authorization.type. Default to "no-auth"
148
+ // so callers don't have to pass --auth-type explicitly for unauthenticated APIs.
149
+ if (result.authorization === undefined) {
150
+ result.authorization = { type: 'no-auth' };
151
+ }
152
+ }
153
+
154
+ if (type === REST_API_TYPE || type === CUSTOM_TOOL_TYPE) {
155
+ if (opts.outputInstructions !== undefined) result.outputInstructions = opts.outputInstructions;
156
+ if (opts.craftResponse !== undefined) result.craftResponse = !!opts.craftResponse;
157
+ }
158
+
159
+ if (type === TRANSFER_CALL_TYPE) {
160
+ // Server's validateTransferCallPayload requires `handoffNumber` (the destination
161
+ // phone number for the call transfer). copilot-server/services/botToolsValidationService.js:52
162
+ if (opts.handoffNumber !== undefined) result.handoffNumber = opts.handoffNumber;
163
+ if (opts.outputInstructions !== undefined) result.outputInstructions = opts.outputInstructions;
164
+ }
165
+
166
+ return Object.keys(result).length > 0 ? result : undefined;
167
+ }
168
+
169
+ function applyConfigSchemaOptions(cmd: Command): Command {
170
+ return cmd
171
+ .option('--endpoint <url>', 'REST API endpoint URL')
172
+ .option('--method <method>', 'HTTP method (GET|POST|PUT|DELETE|PATCH)')
173
+ .option('--payload <json>', 'Request body as JSON string (server JSON.parses at execution)')
174
+ .option('--payload-file <path>', 'Path to file containing request body JSON (alt to --payload)')
175
+ .option('--response-field <path>', 'Dot-path for extracting from response (e.g. data.result)')
176
+ .option('--output-instructions <text>', 'Instructions for how the LLM uses the response')
177
+ .option('--craft-response', 'Have LLM craft response (use --no-craft-response to return data directly)')
178
+ .option('--no-craft-response', 'Return data directly without LLM crafting')
179
+ .option('--auth-type <type>', 'Auth type: api-key | basic-auth | bearer-token | no-auth')
180
+ .option('--auth-key <name>', 'Header name for api-key auth (e.g. X-API-Key)')
181
+ .option('--auth-value <value>', 'Header value for api-key auth')
182
+ .option('--auth-username <user>', 'Username for basic-auth')
183
+ .option('--auth-password <pass>', 'Password for basic-auth')
184
+ .option('--auth-token <token>', 'Token for bearer-token auth')
185
+ .option('--handoff-number <number>', 'Destination phone number for --type transfer_call (E.164, e.g. +15551234567)')
186
+ .option('--config <path>', 'JSON file with full configurationSchema (individual flags override file values)');
187
+ }
188
+
7
189
  export function registerFunctionCommands(program: Command): void {
8
190
  const functions = program.command('functions').description('Manage agent functions/tools');
9
191
 
@@ -55,65 +237,133 @@ export function registerFunctionCommands(program: Command): void {
55
237
  }
56
238
  });
57
239
 
58
- functions
59
- .command('create')
60
- .argument('<agent-id>', 'Agent ID')
61
- .description('Create a function for an agent')
62
- .requiredOption('--type <type>', 'Function type')
63
- .option('--name <name>', 'Function name')
64
- .option('--description <description>', 'Function description')
240
+ applyConfigSchemaOptions(
241
+ functions
242
+ .command('create')
243
+ .argument('<agent-id>', 'Agent ID')
244
+ .description('Create a function for an agent')
245
+ .requiredOption('--type <type>', 'Function type')
246
+ .option('--name <name>', 'Function name')
247
+ .option('--description <description>', 'Function description')
248
+ )
65
249
  .action(async (agentId: string, options) => {
66
250
  try {
251
+ validateTypeFlagCompatibility(options.type, options);
252
+ const configurationSchema = buildConfigurationSchema(options, options.type);
253
+
254
+ // For rest_api on create, require endpoint+method (unless supplied via --config).
255
+ if (options.type === REST_API_TYPE) {
256
+ if (!configurationSchema || !configurationSchema.endpoint) {
257
+ throw new Error('--endpoint (or --config with endpoint) is required for --type rest_api');
258
+ }
259
+ if (!configurationSchema.method) {
260
+ throw new Error('--method (or --config with method) is required for --type rest_api');
261
+ }
262
+ }
263
+
264
+ // For transfer_call on create, require handoffNumber (server validation rejects without it).
265
+ if (options.type === TRANSFER_CALL_TYPE) {
266
+ if (!configurationSchema || !configurationSchema.handoffNumber) {
267
+ throw new Error('--handoff-number (or --config with handoffNumber) is required for --type transfer_call');
268
+ }
269
+ }
270
+
67
271
  const client = new IndemnClient();
68
272
  const sdk = new FunctionsSDK(client);
69
273
  const spinner = ora('Creating function...').start();
70
274
 
275
+ // Step 1: POST skeleton (server's createBotTool doesn't convert configurationSchema —
276
+ // only the update path does. So a two-step create is needed for the function to be executable.)
71
277
  const func = await sdk.createFunction(agentId, {
72
278
  type: options.type,
73
279
  name: options.name,
74
280
  description: options.description,
75
281
  });
282
+
283
+ // Step 2: PUT configurationSchema so the server converts it into executionSchema.
284
+ let finalFunc = func;
285
+ if (configurationSchema) {
286
+ spinner.text = 'Configuring function...';
287
+ try {
288
+ finalFunc = await sdk.updateFunction(agentId, func._id, {
289
+ type: options.type,
290
+ description: options.description || '',
291
+ configurationSchema,
292
+ });
293
+ } catch (err) {
294
+ spinner.fail(`Function created (${func._id}) but configuration step failed.`);
295
+ printError(err);
296
+ console.log(chalk.dim(`Retry: indemn functions update <agent-id> ${func._id} ...`));
297
+ console.log(chalk.dim(`Or remove: indemn functions delete <agent-id> ${func._id}`));
298
+ process.exit(1);
299
+ }
300
+ }
76
301
  spinner.stop();
77
302
 
78
- printSuccess(`Function created: ${func._id}`);
79
- console.log(` Name: ${func.name || '(none)'}`);
80
- console.log(` Type: ${func.type}`);
303
+ printSuccess(`Function created: ${finalFunc._id}`);
304
+ console.log(` Name: ${finalFunc.name || '(none)'}`);
305
+ console.log(` Type: ${finalFunc.type}`);
81
306
  } catch (err) {
82
307
  printError(err);
83
308
  process.exit(1);
84
309
  }
85
310
  });
86
311
 
87
- functions
88
- .command('update')
89
- .argument('<agent-id>', 'Agent ID')
90
- .argument('<func-id>', 'Function ID')
91
- .description('Update a function')
92
- .option('--name <name>', 'Function name')
93
- .option('--description <description>', 'Function description')
312
+ applyConfigSchemaOptions(
313
+ functions
314
+ .command('update')
315
+ .argument('<agent-id>', 'Agent ID')
316
+ .argument('<func-id>', 'Function ID')
317
+ .description('Update a function')
318
+ .option('--name <name>', 'Function name')
319
+ .option('--description <description>', 'Function description')
320
+ )
94
321
  .action(async (agentId: string, funcId: string, options) => {
95
322
  try {
96
- const input: Record<string, unknown> = {};
97
- if (options.name) input.name = options.name;
98
- if (options.description) input.description = options.description;
99
-
100
- if (Object.keys(input).length === 0) {
101
- printError('No update options provided. Use --name or --description.');
102
- process.exit(1);
103
- }
104
-
105
323
  const client = new IndemnClient();
106
324
  const sdk = new FunctionsSDK(client);
107
- const spinner = ora('Updating function...').start();
108
325
 
109
- // Server requires type and description on updates — fetch current values as defaults
326
+ // Fetch current function — required so we can preserve type/description and merge configurationSchema.
327
+ const fetchSpinner = ora('Fetching current function...').start();
110
328
  const functions = await sdk.listFunctions(agentId);
111
329
  const current = functions.find((f) => f._id === funcId);
112
- if (current) {
113
- if (!input.type) input.type = current.type;
114
- if (!input.description) input.description = current.description;
330
+ fetchSpinner.stop();
331
+ if (!current) {
332
+ printError(`Function ${funcId} not found.`);
333
+ process.exit(1);
334
+ }
335
+
336
+ validateTypeFlagCompatibility(current.type, options);
337
+
338
+ const input: Record<string, unknown> = {
339
+ // Server requires type + description on every update.
340
+ type: current.type,
341
+ description: options.description || current.description || '',
342
+ };
343
+ if (options.name) input.name = options.name;
344
+
345
+ // Build configurationSchema patch from flags + --config, then shallow-merge over current.
346
+ // Server replaces executionSchema wholesale on each update, so we must send the full merged schema —
347
+ // otherwise `update --endpoint X` would wipe everything else.
348
+ const patch = buildConfigurationSchema(options, current.type);
349
+ if (patch) {
350
+ input.configurationSchema = {
351
+ ...(current.configurationSchema || {}),
352
+ ...patch,
353
+ };
354
+ }
355
+
356
+ // Anything actually changing? type+description are always set; require at least one explicit option.
357
+ const hasUserChanges =
358
+ options.name !== undefined ||
359
+ options.description !== undefined ||
360
+ patch !== undefined;
361
+ if (!hasUserChanges) {
362
+ printError('No update options provided. Use --name, --description, --endpoint, --config, etc.');
363
+ process.exit(1);
115
364
  }
116
365
 
366
+ const spinner = ora('Updating function...').start();
117
367
  await sdk.updateFunction(agentId, funcId, input);
118
368
  spinner.stop();
119
369
 
@@ -161,9 +411,18 @@ export function registerFunctionCommands(program: Command): void {
161
411
  try {
162
412
  const client = new IndemnClient();
163
413
  const sdk = new FunctionsSDK(client);
164
- const spinner = ora('Testing function...').start();
165
414
 
166
- const result = await sdk.testFunction(agentId, funcId);
415
+ // Server's /test-rest-api endpoint expects the configurationSchema in the request body
416
+ // (it re-converts via convertPayloadToExecutionSchema). It does NOT read the stored
417
+ // schema from the DB. So we fetch the function's current configurationSchema and send it.
418
+ const spinner = ora('Testing function...').start();
419
+ const all = await sdk.listFunctions(agentId);
420
+ const current = all.find((f) => f._id === funcId);
421
+ if (!current) {
422
+ spinner.fail(`Function ${funcId} not found.`);
423
+ process.exit(1);
424
+ }
425
+ const result = await sdk.testFunction(agentId, funcId, current.configurationSchema || {});
167
426
  spinner.stop();
168
427
 
169
428
  if (options.json) {
package/src/cli/index.ts CHANGED
@@ -18,7 +18,7 @@ const program = new Command();
18
18
  program
19
19
  .name('indemn')
20
20
  .description('CLI for managing Indemn AI agents')
21
- .version('1.4.0');
21
+ .version('1.5.0');
22
22
 
23
23
  program.option('--env <environment>', 'Environment (dev or production)');
24
24
  program.option('--no-banner', 'Suppress the active-org banner');
package/src/sdk/types.ts CHANGED
@@ -103,6 +103,8 @@ export interface BotFunction {
103
103
  headers?: Record<string, string>;
104
104
  body?: Record<string, unknown>;
105
105
  parameters?: FunctionParameter[];
106
+ configurationSchema?: Record<string, unknown>;
107
+ executionSchema?: Record<string, unknown>;
106
108
  id_bot?: string;
107
109
  createdAt?: string;
108
110
  updatedAt?: string;
@@ -120,6 +122,10 @@ export interface CreateFunctionInput {
120
122
  type: string;
121
123
  description?: string;
122
124
  name?: string;
125
+ // Server stores configurationSchema and converts to executionSchema in the update path.
126
+ // Note: url/method/headers/body at the root are unused legacy fields — actual REST API
127
+ // config lives inside configurationSchema. See AI-369.
128
+ configurationSchema?: Record<string, unknown>;
123
129
  url?: string;
124
130
  method?: string;
125
131
  headers?: Record<string, string>;
@@ -127,8 +133,10 @@ export interface CreateFunctionInput {
127
133
  }
128
134
 
129
135
  export interface UpdateFunctionInput {
136
+ type?: string;
130
137
  description?: string;
131
138
  name?: string;
139
+ configurationSchema?: Record<string, unknown>;
132
140
  url?: string;
133
141
  method?: string;
134
142
  headers?: Record<string, string>;