@@ -12,6 +12,7 @@ export interface GlobalOpts {
12
12
BaseURL ?: string
13
13
DefaultModel ?: string
14
14
DefaultModelProvider ?: string
15
+ DatasetToolRepo ?: string
15
16
Env ?: string [ ]
16
17
}
17
18
@@ -390,6 +391,84 @@ export class GPTScript {
390
391
await r . text ( )
391
392
}
392
393
394
+ // Dataset methods
395
+
396
+ async listDatasets ( workspace : string ) : Promise < Array < DatasetMeta > > {
397
+ if ( workspace == "" ) {
398
+ workspace = process . env . GPTSCRIPT_WORKSPACE_DIR ?? ""
399
+ }
400
+
401
+ const r : Run = new RunSubcommand ( "datasets" , "" , { URL : this . opts . URL , Token : this . opts . Token } )
402
+ r . request ( { input : "{}" , workspace : workspace , datasetToolRepo : this . opts . DatasetToolRepo ?? "" } )
403
+ const result = await r . text ( )
404
+ return JSON . parse ( result ) as Array < DatasetMeta >
405
+ }
406
+
407
+ async createDataset ( workspace : string , name : string , description : string ) : Promise < Dataset > {
408
+ if ( workspace == "" ) {
409
+ workspace = process . env . GPTSCRIPT_WORKSPACE_DIR ?? ""
410
+ }
411
+
412
+ const r : Run = new RunSubcommand ( "datasets/create" , "" , { URL : this . opts . URL , Token : this . opts . Token } )
413
+ r . request ( {
414
+ input : JSON . stringify ( { datasetName : name , datasetDescription : description } ) ,
415
+ workspace : workspace ,
416
+ datasetToolRepo : this . opts . DatasetToolRepo ?? ""
417
+ } )
418
+ const result = await r . text ( )
419
+ return JSON . parse ( result ) as Dataset
420
+ }
421
+
422
+ async addDatasetElement ( workspace : string , datasetID : string , elementName : string , elementDescription : string , elementContent : string ) : Promise < DatasetElementMeta > {
423
+ if ( workspace == "" ) {
424
+ workspace = process . env . GPTSCRIPT_WORKSPACE_DIR ?? ""
425
+ }
426
+
427
+ const r : Run = new RunSubcommand ( "datasets/add-element" , "" , { URL : this . opts . URL , Token : this . opts . Token } )
428
+ r . request ( {
429
+ input : JSON . stringify ( {
430
+ datasetID,
431
+ elementName,
432
+ elementDescription,
433
+ elementContent
434
+ } ) ,
435
+ workspace : workspace ,
436
+ datasetToolRepo : this . opts . DatasetToolRepo ?? ""
437
+ } )
438
+ const result = await r . text ( )
439
+ return JSON . parse ( result ) as DatasetElementMeta
440
+ }
441
+
442
+ async listDatasetElements ( workspace : string , datasetID : string ) : Promise < Array < DatasetElementMeta > > {
443
+ if ( workspace == "" ) {
444
+ workspace = process . env . GPTSCRIPT_WORKSPACE_DIR ?? ""
445
+ }
446
+
447
+ const r : Run = new RunSubcommand ( "datasets/list-elements" , "" , { URL : this . opts . URL , Token : this . opts . Token } )
448
+ r . request ( {
449
+ input : JSON . stringify ( { datasetID} ) ,
450
+ workspace : workspace ,
451
+ datasetToolRepo : this . opts . DatasetToolRepo ?? ""
452
+ } )
453
+ const result = await r . text ( )
454
+ return JSON . parse ( result ) as Array < DatasetElementMeta >
455
+ }
456
+
457
+ async getDatasetElement ( workspace : string , datasetID : string , elementName : string ) : Promise < DatasetElement > {
458
+ if ( workspace == "" ) {
459
+ workspace = process . env . GPTSCRIPT_WORKSPACE_DIR ?? ""
460
+ }
461
+
462
+ const r : Run = new RunSubcommand ( "datasets/get-element" , "" , { URL : this . opts . URL , Token : this . opts . Token } )
463
+ r . request ( {
464
+ input : JSON . stringify ( { datasetID, element : elementName } ) ,
465
+ workspace : workspace ,
466
+ datasetToolRepo : this . opts . DatasetToolRepo ?? ""
467
+ } )
468
+ const result = await r . text ( )
469
+ return JSON . parse ( result ) as DatasetElement
470
+ }
471
+
393
472
/**
394
473
* Helper method to handle the common logic for loading.
395
474
*
@@ -1103,3 +1182,29 @@ function jsonToCredential(cred: string): Credential {
1103
1182
refreshToken : c . refreshToken
1104
1183
}
1105
1184
}
1185
+
1186
+ // Dataset types
1187
+
1188
+ export interface DatasetElementMeta {
1189
+ name : string
1190
+ description : string
1191
+ }
1192
+
1193
+ export interface DatasetElement {
1194
+ name : string
1195
+ description : string
1196
+ contents : string
1197
+ }
1198
+
1199
+ export interface DatasetMeta {
1200
+ id : string
1201
+ name : string
1202
+ description : string
1203
+ }
1204
+
1205
+ export interface Dataset {
1206
+ id : string
1207
+ name : string
1208
+ description : string
1209
+ elements : Record < string , DatasetElementMeta >
1210
+ }
0 commit comments