aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/ChatBox/tools/CreateCollectionTool.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/nodes/ChatBox/tools/CreateCollectionTool.ts')
-rw-r--r--src/client/views/nodes/ChatBox/tools/CreateCollectionTool.ts35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/client/views/nodes/ChatBox/tools/CreateCollectionTool.ts b/src/client/views/nodes/ChatBox/tools/CreateCollectionTool.ts
new file mode 100644
index 000000000..26ac0d7cc
--- /dev/null
+++ b/src/client/views/nodes/ChatBox/tools/CreateCollectionTool.ts
@@ -0,0 +1,35 @@
+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',
+ },
+ },
+ '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<any> {
+ // 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 {}