mcp-quickbase 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +82 -0
- package/LICENSE +21 -0
- package/README.md +301 -0
- package/dist/client/quickbase.d.ts +28 -0
- package/dist/client/quickbase.js +235 -0
- package/dist/client/quickbase.js.map +1 -0
- package/dist/mcp/index.d.ts +4 -0
- package/dist/mcp/index.js +21 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +19 -0
- package/dist/mcp/server.js +102 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp-stdio-server.d.ts +2 -0
- package/dist/mcp-stdio-server.js +168 -0
- package/dist/mcp-stdio-server.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.js +318 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/apps/create_app.d.ts +87 -0
- package/dist/tools/apps/create_app.js +87 -0
- package/dist/tools/apps/create_app.js.map +1 -0
- package/dist/tools/apps/index.d.ts +9 -0
- package/dist/tools/apps/index.js +40 -0
- package/dist/tools/apps/index.js.map +1 -0
- package/dist/tools/apps/list_tables.d.ts +108 -0
- package/dist/tools/apps/list_tables.js +100 -0
- package/dist/tools/apps/list_tables.js.map +1 -0
- package/dist/tools/apps/update_app.d.ts +91 -0
- package/dist/tools/apps/update_app.js +99 -0
- package/dist/tools/apps/update_app.js.map +1 -0
- package/dist/tools/base.d.ts +47 -0
- package/dist/tools/base.js +63 -0
- package/dist/tools/base.js.map +1 -0
- package/dist/tools/configure_cache.d.ts +81 -0
- package/dist/tools/configure_cache.js +77 -0
- package/dist/tools/configure_cache.js.map +1 -0
- package/dist/tools/fields/create_field.d.ts +121 -0
- package/dist/tools/fields/create_field.js +102 -0
- package/dist/tools/fields/create_field.js.map +1 -0
- package/dist/tools/fields/index.d.ts +8 -0
- package/dist/tools/fields/index.js +37 -0
- package/dist/tools/fields/index.js.map +1 -0
- package/dist/tools/fields/update_field.d.ts +112 -0
- package/dist/tools/fields/update_field.js +114 -0
- package/dist/tools/fields/update_field.js.map +1 -0
- package/dist/tools/files/download_file.d.ts +111 -0
- package/dist/tools/files/download_file.js +173 -0
- package/dist/tools/files/download_file.js.map +1 -0
- package/dist/tools/files/index.d.ts +8 -0
- package/dist/tools/files/index.js +37 -0
- package/dist/tools/files/index.js.map +1 -0
- package/dist/tools/files/upload_file.d.ts +107 -0
- package/dist/tools/files/upload_file.js +211 -0
- package/dist/tools/files/upload_file.js.map +1 -0
- package/dist/tools/index.d.ts +18 -0
- package/dist/tools/index.js +65 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/records/bulk_create_records.d.ts +75 -0
- package/dist/tools/records/bulk_create_records.js +104 -0
- package/dist/tools/records/bulk_create_records.js.map +1 -0
- package/dist/tools/records/bulk_update_records.d.ts +77 -0
- package/dist/tools/records/bulk_update_records.js +102 -0
- package/dist/tools/records/bulk_update_records.js.map +1 -0
- package/dist/tools/records/create_record.d.ts +68 -0
- package/dist/tools/records/create_record.js +123 -0
- package/dist/tools/records/create_record.js.map +1 -0
- package/dist/tools/records/index.d.ts +11 -0
- package/dist/tools/records/index.js +46 -0
- package/dist/tools/records/index.js.map +1 -0
- package/dist/tools/records/query_records.d.ts +164 -0
- package/dist/tools/records/query_records.js +261 -0
- package/dist/tools/records/query_records.js.map +1 -0
- package/dist/tools/records/update_record.d.ts +81 -0
- package/dist/tools/records/update_record.js +99 -0
- package/dist/tools/records/update_record.js.map +1 -0
- package/dist/tools/registry.d.ts +41 -0
- package/dist/tools/registry.js +66 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/reports/index.d.ts +6 -0
- package/dist/tools/reports/index.js +31 -0
- package/dist/tools/reports/index.js.map +1 -0
- package/dist/tools/reports/run_report.d.ts +70 -0
- package/dist/tools/reports/run_report.js +72 -0
- package/dist/tools/reports/run_report.js.map +1 -0
- package/dist/tools/tables/create_table.d.ts +142 -0
- package/dist/tools/tables/create_table.js +119 -0
- package/dist/tools/tables/create_table.js.map +1 -0
- package/dist/tools/tables/get_table_fields.d.ts +108 -0
- package/dist/tools/tables/get_table_fields.js +96 -0
- package/dist/tools/tables/get_table_fields.js.map +1 -0
- package/dist/tools/tables/index.d.ts +9 -0
- package/dist/tools/tables/index.js +40 -0
- package/dist/tools/tables/index.js.map +1 -0
- package/dist/tools/tables/update_table.d.ts +91 -0
- package/dist/tools/tables/update_table.js +99 -0
- package/dist/tools/tables/update_table.js.map +1 -0
- package/dist/tools/test_connection.d.ts +51 -0
- package/dist/tools/test_connection.js +101 -0
- package/dist/tools/test_connection.js.map +1 -0
- package/dist/types/api.d.ts +70 -0
- package/dist/types/api.js +6 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/config.d.ts +49 -0
- package/dist/types/config.js +3 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/mcp.d.ts +55 -0
- package/dist/types/mcp.js +3 -0
- package/dist/types/mcp.js.map +1 -0
- package/dist/utils/cache.d.ts +87 -0
- package/dist/utils/cache.js +211 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/file.d.ts +40 -0
- package/dist/utils/file.js +167 -0
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/logger.d.ts +37 -0
- package/dist/utils/logger.js +144 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/retry.d.ts +39 -0
- package/dist/utils/retry.js +88 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/validation.d.ts +32 -0
- package/dist/utils/validation.js +227 -0
- package/dist/utils/validation.js.map +1 -0
- package/docs/README.md +41 -0
- package/docs/architecture.md +94 -0
- package/docs/claude-prompts.md +218 -0
- package/docs/deployment.md +244 -0
- package/docs/developer-guide.md +537 -0
- package/docs/final-qa-report.md +243 -0
- package/docs/performance-benchmarks.md +306 -0
- package/docs/quick-reference.md +109 -0
- package/docs/quickstart.md +183 -0
- package/docs/security-review.md +263 -0
- package/docs/tools.md +269 -0
- package/package.json +68 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { McpTool } from '../types/mcp';
|
|
2
|
+
import { ApiResponse } from '../types/api';
|
|
3
|
+
import { QuickbaseClient } from '../client/quickbase';
|
|
4
|
+
/**
|
|
5
|
+
* Base class for MCP tools
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class BaseTool<TParams, TResult> implements McpTool<TParams, TResult> {
|
|
8
|
+
/**
|
|
9
|
+
* Tool name
|
|
10
|
+
*/
|
|
11
|
+
abstract name: string;
|
|
12
|
+
/**
|
|
13
|
+
* Tool description
|
|
14
|
+
*/
|
|
15
|
+
abstract description: string;
|
|
16
|
+
/**
|
|
17
|
+
* Parameter schema for the tool
|
|
18
|
+
*/
|
|
19
|
+
abstract paramSchema: Record<string, unknown>;
|
|
20
|
+
/**
|
|
21
|
+
* QuickBase client instance
|
|
22
|
+
*/
|
|
23
|
+
protected client: QuickbaseClient;
|
|
24
|
+
/**
|
|
25
|
+
* Constructor
|
|
26
|
+
* @param client QuickBase client instance
|
|
27
|
+
*/
|
|
28
|
+
constructor(client: QuickbaseClient);
|
|
29
|
+
/**
|
|
30
|
+
* Validate parameters against schema using Zod
|
|
31
|
+
* @param params Parameters to validate
|
|
32
|
+
* @returns Validated parameters
|
|
33
|
+
*/
|
|
34
|
+
protected validateParams(params: unknown): TParams;
|
|
35
|
+
/**
|
|
36
|
+
* Execute the tool
|
|
37
|
+
* @param params Tool parameters
|
|
38
|
+
* @returns Tool result
|
|
39
|
+
*/
|
|
40
|
+
execute(params: TParams): Promise<ApiResponse<TResult>>;
|
|
41
|
+
/**
|
|
42
|
+
* Implement the tool's functionality
|
|
43
|
+
* @param params Tool parameters
|
|
44
|
+
* @returns Tool result
|
|
45
|
+
*/
|
|
46
|
+
protected abstract run(params: TParams): Promise<TResult>;
|
|
47
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseTool = void 0;
|
|
4
|
+
const logger_1 = require("../utils/logger");
|
|
5
|
+
const validation_1 = require("../utils/validation");
|
|
6
|
+
const logger = (0, logger_1.createLogger)('BaseTool');
|
|
7
|
+
/**
|
|
8
|
+
* Base class for MCP tools
|
|
9
|
+
*/
|
|
10
|
+
class BaseTool {
|
|
11
|
+
/**
|
|
12
|
+
* Constructor
|
|
13
|
+
* @param client QuickBase client instance
|
|
14
|
+
*/
|
|
15
|
+
constructor(client) {
|
|
16
|
+
this.client = client;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Validate parameters against schema using Zod
|
|
20
|
+
* @param params Parameters to validate
|
|
21
|
+
* @returns Validated parameters
|
|
22
|
+
*/
|
|
23
|
+
validateParams(params) {
|
|
24
|
+
return (0, validation_1.validateParams)(params, this.paramSchema, this.name);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Execute the tool
|
|
28
|
+
* @param params Tool parameters
|
|
29
|
+
* @returns Tool result
|
|
30
|
+
*/
|
|
31
|
+
async execute(params) {
|
|
32
|
+
try {
|
|
33
|
+
logger.debug(`Executing tool: ${this.name}`, { params });
|
|
34
|
+
// Validate parameters
|
|
35
|
+
const validatedParams = this.validateParams(params);
|
|
36
|
+
// Execute the tool implementation
|
|
37
|
+
const result = await this.run(validatedParams);
|
|
38
|
+
logger.debug(`Tool ${this.name} executed successfully`, { result });
|
|
39
|
+
return {
|
|
40
|
+
success: true,
|
|
41
|
+
data: result
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
46
|
+
const errorType = error instanceof Error ? error.name : 'UnknownError';
|
|
47
|
+
logger.error(`Error executing tool ${this.name}`, {
|
|
48
|
+
error: errorMessage,
|
|
49
|
+
type: errorType,
|
|
50
|
+
stack: error instanceof Error ? error.stack : undefined
|
|
51
|
+
});
|
|
52
|
+
return {
|
|
53
|
+
success: false,
|
|
54
|
+
error: {
|
|
55
|
+
message: errorMessage,
|
|
56
|
+
type: errorType
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.BaseTool = BaseTool;
|
|
63
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/tools/base.ts"],"names":[],"mappings":";;;AAGA,4CAA+C;AAC/C,oDAAqD;AAErD,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,UAAU,CAAC,CAAC;AAExC;;GAEG;AACH,MAAsB,QAAQ;IAqB5B;;;OAGG;IACH,YAAY,MAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACO,cAAc,CAAC,MAAe;QACtC,OAAO,IAAA,2BAAc,EAAU,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO,CAAC,MAAe;QAClC,IAAI,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAEzD,sBAAsB;YACtB,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAEpD,kCAAkC;YAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAE/C,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,wBAAwB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAEpE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,MAAM,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;YAEvE,MAAM,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,IAAI,EAAE,EAAE;gBAChD,KAAK,EAAE,YAAY;gBACnB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;aACxD,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,OAAO,EAAE,YAAY;oBACrB,IAAI,EAAE,SAAS;iBAChB;aACF,CAAC;QACJ,CAAC;IACH,CAAC;CAQF;AArFD,4BAqFC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { BaseTool } from './base';
|
|
2
|
+
import { QuickbaseClient } from '../client/quickbase';
|
|
3
|
+
import { CacheService } from '../utils/cache';
|
|
4
|
+
/**
|
|
5
|
+
* Configure cache parameters
|
|
6
|
+
*/
|
|
7
|
+
export interface ConfigureCacheParams {
|
|
8
|
+
/**
|
|
9
|
+
* Whether to enable caching
|
|
10
|
+
*/
|
|
11
|
+
enabled?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Whether to clear the cache
|
|
14
|
+
*/
|
|
15
|
+
clear?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* TTL for cache entries in seconds
|
|
18
|
+
*/
|
|
19
|
+
ttl?: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Configure cache result
|
|
23
|
+
*/
|
|
24
|
+
export interface ConfigureCacheResult {
|
|
25
|
+
/**
|
|
26
|
+
* Whether caching is enabled
|
|
27
|
+
*/
|
|
28
|
+
cacheEnabled: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Whether the cache was cleared
|
|
31
|
+
*/
|
|
32
|
+
cacheCleared: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Current TTL setting (in seconds)
|
|
35
|
+
*/
|
|
36
|
+
cacheTtl?: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Tool for configuring the caching behavior of the Quickbase connector
|
|
40
|
+
*/
|
|
41
|
+
export declare class ConfigureCacheTool extends BaseTool<ConfigureCacheParams, ConfigureCacheResult> {
|
|
42
|
+
name: string;
|
|
43
|
+
description: string;
|
|
44
|
+
/**
|
|
45
|
+
* Parameter schema for configure_cache
|
|
46
|
+
*/
|
|
47
|
+
paramSchema: {
|
|
48
|
+
type: string;
|
|
49
|
+
properties: {
|
|
50
|
+
enabled: {
|
|
51
|
+
type: string;
|
|
52
|
+
description: string;
|
|
53
|
+
};
|
|
54
|
+
clear: {
|
|
55
|
+
type: string;
|
|
56
|
+
description: string;
|
|
57
|
+
};
|
|
58
|
+
ttl: {
|
|
59
|
+
type: string;
|
|
60
|
+
description: string;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
required: never[];
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Cache service instance
|
|
67
|
+
*/
|
|
68
|
+
private cacheService;
|
|
69
|
+
/**
|
|
70
|
+
* Constructor
|
|
71
|
+
* @param client Quickbase client
|
|
72
|
+
* @param cacheService Cache service
|
|
73
|
+
*/
|
|
74
|
+
constructor(client: QuickbaseClient, cacheService: CacheService);
|
|
75
|
+
/**
|
|
76
|
+
* Run the configure_cache tool
|
|
77
|
+
* @param params Tool parameters
|
|
78
|
+
* @returns Configuration result
|
|
79
|
+
*/
|
|
80
|
+
protected run(params: ConfigureCacheParams): Promise<ConfigureCacheResult>;
|
|
81
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConfigureCacheTool = void 0;
|
|
4
|
+
const base_1 = require("./base");
|
|
5
|
+
const logger_1 = require("../utils/logger");
|
|
6
|
+
const logger = (0, logger_1.createLogger)('ConfigureCacheTool');
|
|
7
|
+
/**
|
|
8
|
+
* Tool for configuring the caching behavior of the Quickbase connector
|
|
9
|
+
*/
|
|
10
|
+
class ConfigureCacheTool extends base_1.BaseTool {
|
|
11
|
+
/**
|
|
12
|
+
* Constructor
|
|
13
|
+
* @param client Quickbase client
|
|
14
|
+
* @param cacheService Cache service
|
|
15
|
+
*/
|
|
16
|
+
constructor(client, cacheService) {
|
|
17
|
+
super(client);
|
|
18
|
+
this.name = 'configure_cache';
|
|
19
|
+
this.description = 'Configures caching behavior for Quickbase operations';
|
|
20
|
+
/**
|
|
21
|
+
* Parameter schema for configure_cache
|
|
22
|
+
*/
|
|
23
|
+
this.paramSchema = {
|
|
24
|
+
type: 'object',
|
|
25
|
+
properties: {
|
|
26
|
+
enabled: {
|
|
27
|
+
type: 'boolean',
|
|
28
|
+
description: 'Whether to enable caching (default: true)'
|
|
29
|
+
},
|
|
30
|
+
clear: {
|
|
31
|
+
type: 'boolean',
|
|
32
|
+
description: 'Whether to clear all existing caches (default: false)'
|
|
33
|
+
},
|
|
34
|
+
ttl: {
|
|
35
|
+
type: 'number',
|
|
36
|
+
description: 'Cache time-to-live in seconds'
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
required: []
|
|
40
|
+
};
|
|
41
|
+
this.cacheService = cacheService;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Run the configure_cache tool
|
|
45
|
+
* @param params Tool parameters
|
|
46
|
+
* @returns Configuration result
|
|
47
|
+
*/
|
|
48
|
+
async run(params) {
|
|
49
|
+
logger.info('Configuring cache', params);
|
|
50
|
+
const result = {
|
|
51
|
+
cacheEnabled: this.cacheService.isEnabled(),
|
|
52
|
+
cacheCleared: false
|
|
53
|
+
};
|
|
54
|
+
// Clear cache if requested
|
|
55
|
+
if (params.clear) {
|
|
56
|
+
this.cacheService.clear();
|
|
57
|
+
result.cacheCleared = true;
|
|
58
|
+
logger.info('Cache cleared');
|
|
59
|
+
}
|
|
60
|
+
// Enable/disable cache if specified
|
|
61
|
+
if (params.enabled !== undefined) {
|
|
62
|
+
this.cacheService.setEnabled(params.enabled);
|
|
63
|
+
result.cacheEnabled = params.enabled;
|
|
64
|
+
logger.info(`Cache ${params.enabled ? 'enabled' : 'disabled'}`);
|
|
65
|
+
}
|
|
66
|
+
// Set TTL if specified
|
|
67
|
+
if (params.ttl !== undefined && params.ttl > 0) {
|
|
68
|
+
// Here we would set TTL
|
|
69
|
+
// This requires extending the CacheService to support changing TTL
|
|
70
|
+
logger.info(`Cache TTL set to ${params.ttl} seconds`);
|
|
71
|
+
result.cacheTtl = params.ttl;
|
|
72
|
+
}
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.ConfigureCacheTool = ConfigureCacheTool;
|
|
77
|
+
//# sourceMappingURL=configure_cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure_cache.js","sourceRoot":"","sources":["../../src/tools/configure_cache.ts"],"names":[],"mappings":";;;AAAA,iCAAkC;AAGlC,4CAA+C;AAE/C,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,oBAAoB,CAAC,CAAC;AA0ClD;;GAEG;AACH,MAAa,kBAAmB,SAAQ,eAAoD;IA+B1F;;;;OAIG;IACH,YAAY,MAAuB,EAAE,YAA0B;QAC7D,KAAK,CAAC,MAAM,CAAC,CAAC;QApCT,SAAI,GAAG,iBAAiB,CAAC;QACzB,gBAAW,GAAG,sDAAsD,CAAC;QAE5E;;WAEG;QACI,gBAAW,GAAG;YACnB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,2CAA2C;iBACzD;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,uDAAuD;iBACrE;gBACD,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+BAA+B;iBAC7C;aACF;YACD,QAAQ,EAAE,EAAE;SACb,CAAC;QAcA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,GAAG,CAAC,MAA4B;QAC9C,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAEzC,MAAM,MAAM,GAAyB;YACnC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;YAC3C,YAAY,EAAE,KAAK;SACpB,CAAC;QAEF,2BAA2B;QAC3B,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC/B,CAAC;QAED,oCAAoC;QACpC,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,uBAAuB;QACvB,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;YAC/C,wBAAwB;YACxB,mEAAmE;YACnE,MAAM,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC;YACtD,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC;QAC/B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA9ED,gDA8EC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { BaseTool } from '../base';
|
|
2
|
+
import { QuickbaseClient } from '../../client/quickbase';
|
|
3
|
+
/**
|
|
4
|
+
* Field property definitions for various field types
|
|
5
|
+
*/
|
|
6
|
+
export interface FieldProperties {
|
|
7
|
+
maxLength?: number;
|
|
8
|
+
defaultValue?: string | number;
|
|
9
|
+
precision?: number;
|
|
10
|
+
format?: string;
|
|
11
|
+
choices?: {
|
|
12
|
+
label: string;
|
|
13
|
+
value: string;
|
|
14
|
+
}[];
|
|
15
|
+
targetTableId?: string;
|
|
16
|
+
targetFieldId?: string;
|
|
17
|
+
appearsByDefault?: boolean;
|
|
18
|
+
findEnabled?: boolean;
|
|
19
|
+
[key: string]: any;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Parameters for create_field tool
|
|
23
|
+
*/
|
|
24
|
+
export interface CreateFieldParams {
|
|
25
|
+
/**
|
|
26
|
+
* ID of the table to create the field in
|
|
27
|
+
*/
|
|
28
|
+
table_id: string;
|
|
29
|
+
/**
|
|
30
|
+
* Name of the field
|
|
31
|
+
*/
|
|
32
|
+
field_name: string;
|
|
33
|
+
/**
|
|
34
|
+
* Type of the field (e.g., text, numeric, date, etc.)
|
|
35
|
+
*/
|
|
36
|
+
field_type: string;
|
|
37
|
+
/**
|
|
38
|
+
* Description of the field
|
|
39
|
+
*/
|
|
40
|
+
description?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Additional options and properties for the field
|
|
43
|
+
*/
|
|
44
|
+
options?: FieldProperties;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Response from creating a field
|
|
48
|
+
*/
|
|
49
|
+
export interface CreateFieldResult {
|
|
50
|
+
/**
|
|
51
|
+
* The ID of the created field
|
|
52
|
+
*/
|
|
53
|
+
fieldId: string;
|
|
54
|
+
/**
|
|
55
|
+
* The label/name of the created field
|
|
56
|
+
*/
|
|
57
|
+
label: string;
|
|
58
|
+
/**
|
|
59
|
+
* The type of the created field
|
|
60
|
+
*/
|
|
61
|
+
fieldType: string;
|
|
62
|
+
/**
|
|
63
|
+
* The description of the created field
|
|
64
|
+
*/
|
|
65
|
+
description?: string;
|
|
66
|
+
/**
|
|
67
|
+
* The ID of the table the field was created in
|
|
68
|
+
*/
|
|
69
|
+
tableId: string;
|
|
70
|
+
/**
|
|
71
|
+
* Additional details about the created field
|
|
72
|
+
*/
|
|
73
|
+
[key: string]: any;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Tool for creating a new field in a Quickbase table
|
|
77
|
+
*/
|
|
78
|
+
export declare class CreateFieldTool extends BaseTool<CreateFieldParams, CreateFieldResult> {
|
|
79
|
+
name: string;
|
|
80
|
+
description: string;
|
|
81
|
+
/**
|
|
82
|
+
* Parameter schema for create_field
|
|
83
|
+
*/
|
|
84
|
+
paramSchema: {
|
|
85
|
+
type: string;
|
|
86
|
+
properties: {
|
|
87
|
+
table_id: {
|
|
88
|
+
type: string;
|
|
89
|
+
description: string;
|
|
90
|
+
};
|
|
91
|
+
field_name: {
|
|
92
|
+
type: string;
|
|
93
|
+
description: string;
|
|
94
|
+
};
|
|
95
|
+
field_type: {
|
|
96
|
+
type: string;
|
|
97
|
+
description: string;
|
|
98
|
+
};
|
|
99
|
+
description: {
|
|
100
|
+
type: string;
|
|
101
|
+
description: string;
|
|
102
|
+
};
|
|
103
|
+
options: {
|
|
104
|
+
type: string;
|
|
105
|
+
description: string;
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
required: string[];
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Constructor
|
|
112
|
+
* @param client Quickbase client
|
|
113
|
+
*/
|
|
114
|
+
constructor(client: QuickbaseClient);
|
|
115
|
+
/**
|
|
116
|
+
* Run the create_field tool
|
|
117
|
+
* @param params Tool parameters
|
|
118
|
+
* @returns Created field details
|
|
119
|
+
*/
|
|
120
|
+
protected run(params: CreateFieldParams): Promise<CreateFieldResult>;
|
|
121
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateFieldTool = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
const logger_1 = require("../../utils/logger");
|
|
6
|
+
const logger = (0, logger_1.createLogger)('CreateFieldTool');
|
|
7
|
+
/**
|
|
8
|
+
* Tool for creating a new field in a Quickbase table
|
|
9
|
+
*/
|
|
10
|
+
class CreateFieldTool extends base_1.BaseTool {
|
|
11
|
+
/**
|
|
12
|
+
* Constructor
|
|
13
|
+
* @param client Quickbase client
|
|
14
|
+
*/
|
|
15
|
+
constructor(client) {
|
|
16
|
+
super(client);
|
|
17
|
+
this.name = 'create_field';
|
|
18
|
+
this.description = 'Creates a new field in a Quickbase table';
|
|
19
|
+
/**
|
|
20
|
+
* Parameter schema for create_field
|
|
21
|
+
*/
|
|
22
|
+
this.paramSchema = {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
table_id: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
description: 'The ID of the table'
|
|
28
|
+
},
|
|
29
|
+
field_name: {
|
|
30
|
+
type: 'string',
|
|
31
|
+
description: 'Name of the field'
|
|
32
|
+
},
|
|
33
|
+
field_type: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
description: 'Type of the field (e.g., text, number, date)'
|
|
36
|
+
},
|
|
37
|
+
description: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
description: 'Description of the field'
|
|
40
|
+
},
|
|
41
|
+
options: {
|
|
42
|
+
type: 'object',
|
|
43
|
+
description: 'Additional field options'
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
required: ['table_id', 'field_name', 'field_type']
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Run the create_field tool
|
|
51
|
+
* @param params Tool parameters
|
|
52
|
+
* @returns Created field details
|
|
53
|
+
*/
|
|
54
|
+
async run(params) {
|
|
55
|
+
const { table_id, field_name, field_type, description, options } = params;
|
|
56
|
+
logger.info('Creating new field in Quickbase table', {
|
|
57
|
+
tableId: table_id,
|
|
58
|
+
fieldName: field_name,
|
|
59
|
+
fieldType: field_type
|
|
60
|
+
});
|
|
61
|
+
// Prepare request body
|
|
62
|
+
const body = {
|
|
63
|
+
label: field_name,
|
|
64
|
+
fieldType: field_type,
|
|
65
|
+
description: description || ''
|
|
66
|
+
};
|
|
67
|
+
// Add properties if provided
|
|
68
|
+
if (options) {
|
|
69
|
+
body.properties = { ...options };
|
|
70
|
+
}
|
|
71
|
+
// Create the field
|
|
72
|
+
const response = await this.client.request({
|
|
73
|
+
method: 'POST',
|
|
74
|
+
path: `/fields?tableId=${table_id}`,
|
|
75
|
+
body
|
|
76
|
+
});
|
|
77
|
+
if (!response.success || !response.data) {
|
|
78
|
+
logger.error('Failed to create field', {
|
|
79
|
+
error: response.error,
|
|
80
|
+
tableId: table_id,
|
|
81
|
+
fieldName: field_name
|
|
82
|
+
});
|
|
83
|
+
throw new Error(response.error?.message || 'Failed to create field');
|
|
84
|
+
}
|
|
85
|
+
const field = response.data;
|
|
86
|
+
logger.info('Successfully created field', {
|
|
87
|
+
fieldId: field.id,
|
|
88
|
+
tableId: table_id,
|
|
89
|
+
fieldName: field.label
|
|
90
|
+
});
|
|
91
|
+
return {
|
|
92
|
+
fieldId: field.id,
|
|
93
|
+
label: field.label,
|
|
94
|
+
fieldType: field.fieldType,
|
|
95
|
+
description: field.description,
|
|
96
|
+
tableId: table_id,
|
|
97
|
+
...field
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
exports.CreateFieldTool = CreateFieldTool;
|
|
102
|
+
//# sourceMappingURL=create_field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_field.js","sourceRoot":"","sources":["../../../src/tools/fields/create_field.ts"],"names":[],"mappings":";;;AAAA,kCAAmC;AAEnC,+CAAkD;AAElD,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,iBAAiB,CAAC,CAAC;AAqG/C;;GAEG;AACH,MAAa,eAAgB,SAAQ,eAA8C;IAkCjF;;;OAGG;IACH,YAAY,MAAuB;QACjC,KAAK,CAAC,MAAM,CAAC,CAAC;QAtCT,SAAI,GAAG,cAAc,CAAC;QACtB,gBAAW,GAAG,0CAA0C,CAAC;QAEhE;;WAEG;QACI,gBAAW,GAAG;YACnB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qBAAqB;iBACnC;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mBAAmB;iBACjC;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8CAA8C;iBAC5D;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0BAA0B;iBACxC;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0BAA0B;iBACxC;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC;SACnD,CAAC;IAQF,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,GAAG,CAAC,MAAyB;QAC3C,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAE1E,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE;YACnD,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,UAAU;YACrB,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;QAEH,uBAAuB;QACvB,MAAM,IAAI,GAAwB;YAChC,KAAK,EAAE,UAAU;YACjB,SAAS,EAAE,UAAU;YACrB,WAAW,EAAE,WAAW,IAAI,EAAE;SAC/B,CAAC;QAEF,6BAA6B;QAC7B,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QACnC,CAAC;QAED,mBAAmB;QACnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,mBAAmB,QAAQ,EAAE;YACnC,IAAI;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE;gBACrC,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,OAAO,EAAE,QAAQ;gBACjB,SAAS,EAAE,UAAU;aACtB,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,wBAAwB,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,IAA2B,CAAC;QAEnD,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;YACxC,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,KAAK,CAAC,KAAK;SACvB,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,OAAO,EAAE,QAAQ;YACjB,GAAG,KAAK;SACT,CAAC;IACJ,CAAC;CACF;AArGD,0CAqGC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { QuickbaseClient } from '../../client/quickbase';
|
|
2
|
+
/**
|
|
3
|
+
* Register all field management tools with the registry
|
|
4
|
+
* @param client Quickbase client
|
|
5
|
+
*/
|
|
6
|
+
export declare function registerFieldTools(client: QuickbaseClient): void;
|
|
7
|
+
export * from './create_field';
|
|
8
|
+
export * from './update_field';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.registerFieldTools = registerFieldTools;
|
|
18
|
+
const registry_1 = require("../registry");
|
|
19
|
+
const create_field_1 = require("./create_field");
|
|
20
|
+
const update_field_1 = require("./update_field");
|
|
21
|
+
const logger_1 = require("../../utils/logger");
|
|
22
|
+
const logger = (0, logger_1.createLogger)('FieldTools');
|
|
23
|
+
/**
|
|
24
|
+
* Register all field management tools with the registry
|
|
25
|
+
* @param client Quickbase client
|
|
26
|
+
*/
|
|
27
|
+
function registerFieldTools(client) {
|
|
28
|
+
logger.info('Registering field management tools');
|
|
29
|
+
// Register individual tools
|
|
30
|
+
registry_1.toolRegistry.registerTool(new create_field_1.CreateFieldTool(client));
|
|
31
|
+
registry_1.toolRegistry.registerTool(new update_field_1.UpdateFieldTool(client));
|
|
32
|
+
logger.info('Field management tools registered');
|
|
33
|
+
}
|
|
34
|
+
// Export all tools
|
|
35
|
+
__exportStar(require("./create_field"), exports);
|
|
36
|
+
__exportStar(require("./update_field"), exports);
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/fields/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAYA,gDAQC;AAnBD,0CAA2C;AAC3C,iDAAiD;AACjD,iDAAiD;AACjD,+CAAkD;AAElD,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,YAAY,CAAC,CAAC;AAE1C;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,MAAuB;IACxD,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IAElD,4BAA4B;IAC5B,uBAAY,CAAC,YAAY,CAAC,IAAI,8BAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IACvD,uBAAY,CAAC,YAAY,CAAC,IAAI,8BAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvD,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;AACnD,CAAC;AAED,mBAAmB;AACnB,iDAA+B;AAC/B,iDAA+B"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { BaseTool } from '../base';
|
|
2
|
+
import { QuickbaseClient } from '../../client/quickbase';
|
|
3
|
+
import { FieldProperties } from './create_field';
|
|
4
|
+
/**
|
|
5
|
+
* Parameters for update_field tool
|
|
6
|
+
*/
|
|
7
|
+
export interface UpdateFieldParams {
|
|
8
|
+
/**
|
|
9
|
+
* The ID of the table containing the field
|
|
10
|
+
*/
|
|
11
|
+
table_id: string;
|
|
12
|
+
/**
|
|
13
|
+
* The ID of the field to update
|
|
14
|
+
*/
|
|
15
|
+
field_id: string;
|
|
16
|
+
/**
|
|
17
|
+
* New name for the field
|
|
18
|
+
*/
|
|
19
|
+
name?: string;
|
|
20
|
+
/**
|
|
21
|
+
* New description for the field
|
|
22
|
+
*/
|
|
23
|
+
description?: string;
|
|
24
|
+
/**
|
|
25
|
+
* New field type (only allowed for certain field type conversions)
|
|
26
|
+
*/
|
|
27
|
+
field_type?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Additional options and properties to update
|
|
30
|
+
*/
|
|
31
|
+
options?: FieldProperties;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Response from updating a field
|
|
35
|
+
*/
|
|
36
|
+
export interface UpdateFieldResult {
|
|
37
|
+
/**
|
|
38
|
+
* The ID of the updated field
|
|
39
|
+
*/
|
|
40
|
+
fieldId: string;
|
|
41
|
+
/**
|
|
42
|
+
* The updated label/name of the field
|
|
43
|
+
*/
|
|
44
|
+
label?: string;
|
|
45
|
+
/**
|
|
46
|
+
* The updated type of the field
|
|
47
|
+
*/
|
|
48
|
+
fieldType?: string;
|
|
49
|
+
/**
|
|
50
|
+
* The updated description of the field
|
|
51
|
+
*/
|
|
52
|
+
description?: string;
|
|
53
|
+
/**
|
|
54
|
+
* The ID of the table containing the field
|
|
55
|
+
*/
|
|
56
|
+
tableId: string;
|
|
57
|
+
/**
|
|
58
|
+
* Additional details about the updated field
|
|
59
|
+
*/
|
|
60
|
+
[key: string]: any;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Tool for updating an existing field in a Quickbase table
|
|
64
|
+
*/
|
|
65
|
+
export declare class UpdateFieldTool extends BaseTool<UpdateFieldParams, UpdateFieldResult> {
|
|
66
|
+
name: string;
|
|
67
|
+
description: string;
|
|
68
|
+
/**
|
|
69
|
+
* Parameter schema for update_field
|
|
70
|
+
*/
|
|
71
|
+
paramSchema: {
|
|
72
|
+
type: string;
|
|
73
|
+
properties: {
|
|
74
|
+
table_id: {
|
|
75
|
+
type: string;
|
|
76
|
+
description: string;
|
|
77
|
+
};
|
|
78
|
+
field_id: {
|
|
79
|
+
type: string;
|
|
80
|
+
description: string;
|
|
81
|
+
};
|
|
82
|
+
name: {
|
|
83
|
+
type: string;
|
|
84
|
+
description: string;
|
|
85
|
+
};
|
|
86
|
+
field_type: {
|
|
87
|
+
type: string;
|
|
88
|
+
description: string;
|
|
89
|
+
};
|
|
90
|
+
description: {
|
|
91
|
+
type: string;
|
|
92
|
+
description: string;
|
|
93
|
+
};
|
|
94
|
+
options: {
|
|
95
|
+
type: string;
|
|
96
|
+
description: string;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
required: string[];
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Constructor
|
|
103
|
+
* @param client Quickbase client
|
|
104
|
+
*/
|
|
105
|
+
constructor(client: QuickbaseClient);
|
|
106
|
+
/**
|
|
107
|
+
* Run the update_field tool
|
|
108
|
+
* @param params Tool parameters
|
|
109
|
+
* @returns Updated field details
|
|
110
|
+
*/
|
|
111
|
+
protected run(params: UpdateFieldParams): Promise<UpdateFieldResult>;
|
|
112
|
+
}
|