aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/chatbot/tools/CreateCSVTool.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/nodes/chatbot/tools/CreateCSVTool.ts')
-rw-r--r--src/client/views/nodes/chatbot/tools/CreateCSVTool.ts45
1 files changed, 26 insertions, 19 deletions
diff --git a/src/client/views/nodes/chatbot/tools/CreateCSVTool.ts b/src/client/views/nodes/chatbot/tools/CreateCSVTool.ts
index d3ded0de0..b321d98ba 100644
--- a/src/client/views/nodes/chatbot/tools/CreateCSVTool.ts
+++ b/src/client/views/nodes/chatbot/tools/CreateCSVTool.ts
@@ -1,40 +1,47 @@
import { BaseTool } from './BaseTool';
import { Networking } from '../../../../Network';
+import { Observation } from '../types/types';
+import { ParametersType } from './ToolTypes';
-export class CreateCSVTool extends BaseTool<{ csvData: string; filename: string }> {
+const createCSVToolParams = [
+ {
+ name: 'csvData',
+ type: 'string',
+ description: 'A string of comma-separated values representing the CSV data.',
+ required: true,
+ },
+ {
+ name: 'filename',
+ type: 'string',
+ description: 'The base name of the CSV file to be created. Should end in ".csv".',
+ required: true,
+ },
+] as const;
+
+type CreateCSVToolParamsType = typeof createCSVToolParams;
+
+export class CreateCSVTool extends BaseTool<CreateCSVToolParamsType> {
private _handleCSVResult: (url: string, filename: string, id: string, data: string) => void;
constructor(handleCSVResult: (url: string, title: string, id: string, data: string) => void) {
super(
'createCSV',
'Creates a CSV file from raw CSV data and saves it to the server',
- {
- type: 'object',
- properties: {
- csvData: {
- type: 'string',
- description: 'A string of comma-separated values representing the CSV data.',
- },
- filename: {
- type: 'string',
- description: 'The base name of the CSV file to be created. Should end in ".csv".',
- },
- },
- required: ['csvData', 'filename'],
- },
+ createCSVToolParams,
'Provide a CSV string and a filename to create a CSV file.',
'Creates a CSV file from the provided CSV string and saves it to the server with a unique identifier, returning the file URL and UUID.'
);
this._handleCSVResult = handleCSVResult;
}
- async execute(args: { csvData: string; filename: string }): Promise<unknown> {
+ async execute(args: ParametersType<CreateCSVToolParamsType>): Promise<Observation[]> {
try {
console.log('Creating CSV file:', args.filename, ' with data:', args.csvData);
- // Post the raw CSV data to the createCSV endpoint on the server
- const { fileUrl, id } = await Networking.PostToServer('/createCSV', { filename: args.filename, data: args.csvData });
+ const { fileUrl, id } = await Networking.PostToServer('/createCSV', {
+ filename: args.filename,
+ data: args.csvData,
+ });
- // Handle the result by invoking the callback
this._handleCSVResult(fileUrl, args.filename, id, args.csvData);
return [