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 { // 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 {}