1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
import { DocCast } from '../../../../../fields/Types';
import { DocServer } from '../../../../DocServer';
import { Docs } from '../../../../documents/Documents';
import { DocumentView } from '../../DocumentView';
import { OpenWhere } from '../../OpenWhere';
import { BaseTool } from './BaseTool';
export class GetDocsContentTool extends BaseTool<{ title: string; document_ids: string[] }> {
private _docView: DocumentView;
constructor(docView: DocumentView) {
super(
'retrieveDocs',
'Retrieves the contents of all Documents that the user is interacting with in Dash ',
{
title: {
type: 'string',
description: 'the title of the collection that you will be making',
required: 'true',
max_inputs: '1',
},
},
'Provide a mathematical expression to calculate that would work with JavaScript eval().',
'Runs a calculation and returns the number - uses JavaScript so be sure to use floating point syntax if necessary'
);
this._docView = docView;
}
async execute(args: { title: string; document_ids: string[] }): Promise<unknown> {
// Note: Using eval() can be dangerous. Consider using a safer alternative.
const docs = args.document_ids.map(doc_id => DocCast(DocServer.GetCachedRefField(doc_id)));
const collection = Docs.Create.FreeformDocument(docs, { title: args.title });
this._docView._props.addDocTab(collection, OpenWhere.addRight); //in future, create popup prompting user where to add
return [{ type: 'text', text: 'Collection created in Dash called ' + args.title }];
}
}
//export function create_collection(docView: DocumentView, document_ids: string[], title: string): string {}
|