@stacksjs/ts-cloud 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +98 -13
- package/dist/aws/acm.d.ts +129 -0
- package/dist/aws/application-autoscaling.d.ts +282 -0
- package/dist/aws/bedrock.d.ts +2292 -0
- package/dist/aws/client.d.ts +79 -0
- package/dist/aws/cloudformation.d.ts +105 -0
- package/dist/aws/cloudfront.d.ts +265 -0
- package/dist/aws/cloudwatch-logs.d.ts +48 -0
- package/dist/aws/comprehend.d.ts +505 -0
- package/dist/aws/connect.d.ts +377 -0
- package/dist/aws/deploy-imap.d.ts +14 -0
- package/dist/aws/dynamodb.d.ts +176 -0
- package/dist/aws/ec2.d.ts +272 -0
- package/dist/aws/ecr.d.ts +149 -0
- package/dist/aws/ecs.d.ts +162 -0
- package/dist/aws/elasticache.d.ts +71 -0
- package/dist/aws/elbv2.d.ts +248 -0
- package/dist/aws/email.d.ts +175 -0
- package/dist/aws/eventbridge.d.ts +142 -0
- package/dist/aws/iam.d.ts +638 -0
- package/dist/aws/imap-server.d.ts +119 -0
- package/{src/aws/index.ts → dist/aws/index.d.ts} +62 -83
- package/{src/aws/kendra.ts → dist/aws/kendra.d.ts} +71 -386
- package/dist/aws/lambda.d.ts +232 -0
- package/dist/aws/opensearch.d.ts +87 -0
- package/dist/aws/personalize.d.ts +516 -0
- package/dist/aws/polly.d.ts +214 -0
- package/dist/aws/rds.d.ts +240 -0
- package/dist/aws/rekognition.d.ts +543 -0
- package/dist/aws/route53-domains.d.ts +113 -0
- package/dist/aws/route53.d.ts +215 -0
- package/dist/aws/s3.d.ts +212 -0
- package/dist/aws/scheduler.d.ts +140 -0
- package/dist/aws/secrets-manager.d.ts +170 -0
- package/dist/aws/ses.d.ts +288 -0
- package/dist/aws/setup-phone.d.ts +0 -0
- package/dist/aws/setup-sms.d.ts +115 -0
- package/dist/aws/sms.d.ts +304 -0
- package/dist/aws/smtp-server.d.ts +61 -0
- package/dist/aws/sns.d.ts +117 -0
- package/dist/aws/sqs.d.ts +65 -0
- package/dist/aws/ssm.d.ts +179 -0
- package/dist/aws/sts.d.ts +15 -0
- package/dist/aws/support.d.ts +104 -0
- package/dist/aws/test-imap.d.ts +0 -0
- package/dist/aws/textract.d.ts +403 -0
- package/dist/aws/transcribe.d.ts +60 -0
- package/dist/aws/translate.d.ts +358 -0
- package/dist/aws/voice.d.ts +219 -0
- package/dist/bin/cli.js +1724 -0
- package/dist/config.d.ts +7 -0
- package/dist/deploy/index.d.ts +2 -0
- package/dist/deploy/static-site-external-dns.d.ts +51 -0
- package/dist/deploy/static-site.d.ts +71 -0
- package/dist/dns/cloudflare.d.ts +52 -0
- package/dist/dns/godaddy.d.ts +38 -0
- package/dist/dns/index.d.ts +45 -0
- package/dist/dns/porkbun.d.ts +18 -0
- package/dist/dns/route53-adapter.d.ts +38 -0
- package/{src/dns/types.ts → dist/dns/types.d.ts} +26 -63
- package/dist/dns/validator.d.ts +78 -0
- package/dist/generators/index.d.ts +1 -0
- package/dist/generators/infrastructure.d.ts +30 -0
- package/{src/index.ts → dist/index.d.ts} +70 -93
- package/dist/index.js +7881 -0
- package/dist/push/apns.d.ts +60 -0
- package/dist/push/fcm.d.ts +117 -0
- package/dist/push/index.d.ts +14 -0
- package/dist/security/pre-deploy-scanner.d.ts +69 -0
- package/dist/ssl/acme-client.d.ts +67 -0
- package/dist/ssl/index.d.ts +2 -0
- package/dist/ssl/letsencrypt.d.ts +48 -0
- package/dist/types.d.ts +1 -0
- package/dist/utils/cli.d.ts +123 -0
- package/dist/validation/index.d.ts +1 -0
- package/dist/validation/template.d.ts +23 -0
- package/package.json +8 -8
- package/bin/cli.ts +0 -133
- package/bin/commands/analytics.ts +0 -328
- package/bin/commands/api.ts +0 -379
- package/bin/commands/assets.ts +0 -221
- package/bin/commands/audit.ts +0 -501
- package/bin/commands/backup.ts +0 -682
- package/bin/commands/cache.ts +0 -294
- package/bin/commands/cdn.ts +0 -281
- package/bin/commands/config.ts +0 -202
- package/bin/commands/container.ts +0 -105
- package/bin/commands/cost.ts +0 -208
- package/bin/commands/database.ts +0 -401
- package/bin/commands/deploy.ts +0 -674
- package/bin/commands/domain.ts +0 -397
- package/bin/commands/email.ts +0 -423
- package/bin/commands/environment.ts +0 -285
- package/bin/commands/events.ts +0 -424
- package/bin/commands/firewall.ts +0 -145
- package/bin/commands/function.ts +0 -116
- package/bin/commands/generate.ts +0 -280
- package/bin/commands/git.ts +0 -139
- package/bin/commands/iam.ts +0 -464
- package/bin/commands/index.ts +0 -48
- package/bin/commands/init.ts +0 -120
- package/bin/commands/logs.ts +0 -148
- package/bin/commands/network.ts +0 -579
- package/bin/commands/notify.ts +0 -489
- package/bin/commands/queue.ts +0 -407
- package/bin/commands/scheduler.ts +0 -370
- package/bin/commands/secrets.ts +0 -54
- package/bin/commands/server.ts +0 -629
- package/bin/commands/shared.ts +0 -97
- package/bin/commands/ssl.ts +0 -138
- package/bin/commands/stack.ts +0 -325
- package/bin/commands/status.ts +0 -385
- package/bin/commands/storage.ts +0 -450
- package/bin/commands/team.ts +0 -96
- package/bin/commands/tunnel.ts +0 -489
- package/bin/commands/utils.ts +0 -202
- package/build.ts +0 -15
- package/cloud +0 -2
- package/src/aws/acm.ts +0 -768
- package/src/aws/application-autoscaling.ts +0 -845
- package/src/aws/bedrock.ts +0 -4074
- package/src/aws/client.ts +0 -878
- package/src/aws/cloudformation.ts +0 -896
- package/src/aws/cloudfront.ts +0 -1531
- package/src/aws/cloudwatch-logs.ts +0 -154
- package/src/aws/comprehend.ts +0 -839
- package/src/aws/connect.ts +0 -1056
- package/src/aws/deploy-imap.ts +0 -384
- package/src/aws/dynamodb.ts +0 -340
- package/src/aws/ec2.ts +0 -1385
- package/src/aws/ecr.ts +0 -621
- package/src/aws/ecs.ts +0 -615
- package/src/aws/elasticache.ts +0 -301
- package/src/aws/elbv2.ts +0 -942
- package/src/aws/email.ts +0 -928
- package/src/aws/eventbridge.ts +0 -248
- package/src/aws/iam.ts +0 -1689
- package/src/aws/imap-server.ts +0 -2100
- package/src/aws/lambda.ts +0 -786
- package/src/aws/opensearch.ts +0 -158
- package/src/aws/personalize.ts +0 -977
- package/src/aws/polly.ts +0 -559
- package/src/aws/rds.ts +0 -888
- package/src/aws/rekognition.ts +0 -846
- package/src/aws/route53-domains.ts +0 -359
- package/src/aws/route53.ts +0 -1046
- package/src/aws/s3.ts +0 -2318
- package/src/aws/scheduler.ts +0 -571
- package/src/aws/secrets-manager.ts +0 -769
- package/src/aws/ses.ts +0 -1081
- package/src/aws/setup-phone.ts +0 -104
- package/src/aws/setup-sms.ts +0 -580
- package/src/aws/sms.ts +0 -1735
- package/src/aws/smtp-server.ts +0 -531
- package/src/aws/sns.ts +0 -758
- package/src/aws/sqs.ts +0 -382
- package/src/aws/ssm.ts +0 -807
- package/src/aws/sts.ts +0 -92
- package/src/aws/support.ts +0 -391
- package/src/aws/test-imap.ts +0 -86
- package/src/aws/textract.ts +0 -780
- package/src/aws/transcribe.ts +0 -108
- package/src/aws/translate.ts +0 -641
- package/src/aws/voice.ts +0 -1379
- package/src/config.ts +0 -35
- package/src/deploy/index.ts +0 -7
- package/src/deploy/static-site-external-dns.ts +0 -906
- package/src/deploy/static-site.ts +0 -1125
- package/src/dns/godaddy.ts +0 -412
- package/src/dns/index.ts +0 -183
- package/src/dns/porkbun.ts +0 -362
- package/src/dns/route53-adapter.ts +0 -414
- package/src/dns/validator.ts +0 -369
- package/src/generators/index.ts +0 -5
- package/src/generators/infrastructure.ts +0 -1660
- package/src/push/apns.ts +0 -452
- package/src/push/fcm.ts +0 -506
- package/src/push/index.ts +0 -58
- package/src/ssl/acme-client.ts +0 -478
- package/src/ssl/index.ts +0 -7
- package/src/ssl/letsencrypt.ts +0 -747
- package/src/types.ts +0 -2
- package/src/utils/cli.ts +0 -398
- package/src/validation/index.ts +0 -5
- package/src/validation/template.ts +0 -405
- package/test/index.test.ts +0 -128
- package/tsconfig.json +0 -18
|
@@ -1,16 +1,16 @@
|
|
|
1
|
+
import { AWSClient } from './client';
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
-
* Enterprise search service
|
|
4
|
-
* No external SDK dependencies - implements AWS Signature V4 directly
|
|
3
|
+
* Quick search
|
|
5
4
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
export declare function search(indexId: string, query: string, options?: { region?: string; pageSize?: number }): Promise<Array<{ title: string; excerpt: string; uri: string; score: string }>>;
|
|
6
|
+
/**
|
|
7
|
+
* Retrieve for RAG
|
|
8
|
+
*/
|
|
9
|
+
export declare function retrieveForRag(indexId: string, query: string, options?: { region?: string; pageSize?: number }): Promise<Array<{ content: string; uri: string; score: string }>>;
|
|
9
10
|
// ============================================================================
|
|
10
11
|
// Types
|
|
11
12
|
// ============================================================================
|
|
12
|
-
|
|
13
|
-
export interface CreateIndexCommandInput {
|
|
13
|
+
export declare interface CreateIndexCommandInput {
|
|
14
14
|
Name: string
|
|
15
15
|
Edition?: 'DEVELOPER_EDITION' | 'ENTERPRISE_EDITION'
|
|
16
16
|
RoleArn: string
|
|
@@ -40,16 +40,13 @@ export interface CreateIndexCommandInput {
|
|
|
40
40
|
UserGroupResolutionMode: 'AWS_SSO' | 'NONE'
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
|
|
44
|
-
export interface CreateIndexCommandOutput {
|
|
43
|
+
export declare interface CreateIndexCommandOutput {
|
|
45
44
|
Id?: string
|
|
46
45
|
}
|
|
47
|
-
|
|
48
|
-
export interface DescribeIndexCommandInput {
|
|
46
|
+
export declare interface DescribeIndexCommandInput {
|
|
49
47
|
Id: string
|
|
50
48
|
}
|
|
51
|
-
|
|
52
|
-
export interface Index {
|
|
49
|
+
export declare interface Index {
|
|
53
50
|
Name?: string
|
|
54
51
|
Id?: string
|
|
55
52
|
Edition?: 'DEVELOPER_EDITION' | 'ENTERPRISE_EDITION'
|
|
@@ -112,8 +109,7 @@ export interface Index {
|
|
|
112
109
|
UserGroupResolutionMode?: 'AWS_SSO' | 'NONE'
|
|
113
110
|
}
|
|
114
111
|
}
|
|
115
|
-
|
|
116
|
-
export interface DescribeIndexCommandOutput {
|
|
112
|
+
export declare interface DescribeIndexCommandOutput {
|
|
117
113
|
Name?: string
|
|
118
114
|
Id?: string
|
|
119
115
|
Edition?: 'DEVELOPER_EDITION' | 'ENTERPRISE_EDITION'
|
|
@@ -130,13 +126,11 @@ export interface DescribeIndexCommandOutput {
|
|
|
130
126
|
ErrorMessage?: string
|
|
131
127
|
CapacityUnits?: Index['CapacityUnits']
|
|
132
128
|
}
|
|
133
|
-
|
|
134
|
-
export interface ListIndicesCommandInput {
|
|
129
|
+
export declare interface ListIndicesCommandInput {
|
|
135
130
|
NextToken?: string
|
|
136
131
|
MaxResults?: number
|
|
137
132
|
}
|
|
138
|
-
|
|
139
|
-
export interface IndexSummary {
|
|
133
|
+
export declare interface IndexSummary {
|
|
140
134
|
Name?: string
|
|
141
135
|
Id?: string
|
|
142
136
|
Edition?: 'DEVELOPER_EDITION' | 'ENTERPRISE_EDITION'
|
|
@@ -144,21 +138,17 @@ export interface IndexSummary {
|
|
|
144
138
|
UpdatedAt?: string
|
|
145
139
|
Status?: 'CREATING' | 'ACTIVE' | 'DELETING' | 'FAILED' | 'UPDATING' | 'SYSTEM_UPDATING'
|
|
146
140
|
}
|
|
147
|
-
|
|
148
|
-
export interface ListIndicesCommandOutput {
|
|
141
|
+
export declare interface ListIndicesCommandOutput {
|
|
149
142
|
IndexConfigurationSummaryItems?: IndexSummary[]
|
|
150
143
|
NextToken?: string
|
|
151
144
|
}
|
|
152
|
-
|
|
153
|
-
export interface DeleteIndexCommandInput {
|
|
145
|
+
export declare interface DeleteIndexCommandInput {
|
|
154
146
|
Id: string
|
|
155
147
|
}
|
|
148
|
+
export declare interface DeleteIndexCommandOutput {
|
|
156
149
|
|
|
157
|
-
export interface DeleteIndexCommandOutput {
|
|
158
|
-
// Empty
|
|
159
150
|
}
|
|
160
|
-
|
|
161
|
-
export interface CreateDataSourceCommandInput {
|
|
151
|
+
export declare interface CreateDataSourceCommandInput {
|
|
162
152
|
Name: string
|
|
163
153
|
IndexId: string
|
|
164
154
|
Type: 'S3' | 'SHAREPOINT' | 'DATABASE' | 'SALESFORCE' | 'ONEDRIVE' | 'SERVICENOW' | 'CUSTOM' | 'CONFLUENCE' | 'GOOGLEDRIVE' | 'WEBCRAWLER' | 'WORKDOCS' | 'FSX' | 'SLACK' | 'BOX' | 'QUIP' | 'JIRA' | 'GITHUB' | 'ALFRESCO' | 'TEMPLATE'
|
|
@@ -320,17 +310,14 @@ export interface CreateDataSourceCommandInput {
|
|
|
320
310
|
RoleArn?: string
|
|
321
311
|
}
|
|
322
312
|
}
|
|
323
|
-
|
|
324
|
-
export interface CreateDataSourceCommandOutput {
|
|
313
|
+
export declare interface CreateDataSourceCommandOutput {
|
|
325
314
|
Id?: string
|
|
326
315
|
}
|
|
327
|
-
|
|
328
|
-
export interface DescribeDataSourceCommandInput {
|
|
316
|
+
export declare interface DescribeDataSourceCommandInput {
|
|
329
317
|
Id: string
|
|
330
318
|
IndexId: string
|
|
331
319
|
}
|
|
332
|
-
|
|
333
|
-
export interface DataSource {
|
|
320
|
+
export declare interface DataSource {
|
|
334
321
|
Id?: string
|
|
335
322
|
IndexId?: string
|
|
336
323
|
Name?: string
|
|
@@ -350,16 +337,15 @@ export interface DataSource {
|
|
|
350
337
|
LanguageCode?: string
|
|
351
338
|
CustomDocumentEnrichmentConfiguration?: Record<string, unknown>
|
|
352
339
|
}
|
|
340
|
+
export declare interface DescribeDataSourceCommandOutput extends DataSource {
|
|
353
341
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
export interface ListDataSourcesCommandInput {
|
|
342
|
+
}
|
|
343
|
+
export declare interface ListDataSourcesCommandInput {
|
|
357
344
|
IndexId: string
|
|
358
345
|
NextToken?: string
|
|
359
346
|
MaxResults?: number
|
|
360
347
|
}
|
|
361
|
-
|
|
362
|
-
export interface DataSourceSummary {
|
|
348
|
+
export declare interface DataSourceSummary {
|
|
363
349
|
Name?: string
|
|
364
350
|
Id?: string
|
|
365
351
|
Type?: string
|
|
@@ -368,31 +354,25 @@ export interface DataSourceSummary {
|
|
|
368
354
|
Status?: 'CREATING' | 'DELETING' | 'FAILED' | 'UPDATING' | 'ACTIVE'
|
|
369
355
|
LanguageCode?: string
|
|
370
356
|
}
|
|
371
|
-
|
|
372
|
-
export interface ListDataSourcesCommandOutput {
|
|
357
|
+
export declare interface ListDataSourcesCommandOutput {
|
|
373
358
|
SummaryItems?: DataSourceSummary[]
|
|
374
359
|
NextToken?: string
|
|
375
360
|
}
|
|
376
|
-
|
|
377
|
-
export interface StartDataSourceSyncJobCommandInput {
|
|
361
|
+
export declare interface StartDataSourceSyncJobCommandInput {
|
|
378
362
|
Id: string
|
|
379
363
|
IndexId: string
|
|
380
364
|
}
|
|
381
|
-
|
|
382
|
-
export interface StartDataSourceSyncJobCommandOutput {
|
|
365
|
+
export declare interface StartDataSourceSyncJobCommandOutput {
|
|
383
366
|
ExecutionId?: string
|
|
384
367
|
}
|
|
385
|
-
|
|
386
|
-
export interface StopDataSourceSyncJobCommandInput {
|
|
368
|
+
export declare interface StopDataSourceSyncJobCommandInput {
|
|
387
369
|
Id: string
|
|
388
370
|
IndexId: string
|
|
389
371
|
}
|
|
372
|
+
export declare interface StopDataSourceSyncJobCommandOutput {
|
|
390
373
|
|
|
391
|
-
export interface StopDataSourceSyncJobCommandOutput {
|
|
392
|
-
// Empty
|
|
393
374
|
}
|
|
394
|
-
|
|
395
|
-
export interface QueryCommandInput {
|
|
375
|
+
export declare interface QueryCommandInput {
|
|
396
376
|
IndexId: string
|
|
397
377
|
QueryText?: string
|
|
398
378
|
AttributeFilter?: {
|
|
@@ -517,8 +497,7 @@ export interface QueryCommandInput {
|
|
|
517
497
|
}
|
|
518
498
|
}
|
|
519
499
|
}
|
|
520
|
-
|
|
521
|
-
export interface QueryResultItem {
|
|
500
|
+
export declare interface QueryResultItem {
|
|
522
501
|
Id?: string
|
|
523
502
|
Type?: 'DOCUMENT' | 'QUESTION_ANSWER' | 'ANSWER'
|
|
524
503
|
Format?: 'TABLE' | 'TEXT'
|
|
@@ -594,8 +573,7 @@ export interface QueryResultItem {
|
|
|
594
573
|
ExpandedResults?: QueryResultItem[]
|
|
595
574
|
}
|
|
596
575
|
}
|
|
597
|
-
|
|
598
|
-
export interface FacetResult {
|
|
576
|
+
export declare interface FacetResult {
|
|
599
577
|
DocumentAttributeKey?: string
|
|
600
578
|
DocumentAttributeValueType?: 'STRING_VALUE' | 'STRING_LIST_VALUE' | 'LONG_VALUE' | 'DATE_VALUE'
|
|
601
579
|
DocumentAttributeValueCountPairs?: Array<{
|
|
@@ -609,8 +587,7 @@ export interface FacetResult {
|
|
|
609
587
|
FacetResults?: FacetResult[]
|
|
610
588
|
}>
|
|
611
589
|
}
|
|
612
|
-
|
|
613
|
-
export interface QueryCommandOutput {
|
|
590
|
+
export declare interface QueryCommandOutput {
|
|
614
591
|
QueryId?: string
|
|
615
592
|
ResultItems?: QueryResultItem[]
|
|
616
593
|
FacetResults?: FacetResult[]
|
|
@@ -663,8 +640,7 @@ export interface QueryCommandOutput {
|
|
|
663
640
|
FeedbackToken?: string
|
|
664
641
|
}>
|
|
665
642
|
}
|
|
666
|
-
|
|
667
|
-
export interface RetrieveCommandInput {
|
|
643
|
+
export declare interface RetrieveCommandInput {
|
|
668
644
|
IndexId: string
|
|
669
645
|
QueryText: string
|
|
670
646
|
AttributeFilter?: QueryCommandInput['AttributeFilter']
|
|
@@ -674,8 +650,7 @@ export interface RetrieveCommandInput {
|
|
|
674
650
|
PageSize?: number
|
|
675
651
|
UserContext?: QueryCommandInput['UserContext']
|
|
676
652
|
}
|
|
677
|
-
|
|
678
|
-
export interface RetrieveResultItem {
|
|
653
|
+
export declare interface RetrieveResultItem {
|
|
679
654
|
Id?: string
|
|
680
655
|
DocumentId?: string
|
|
681
656
|
DocumentTitle?: string
|
|
@@ -694,13 +669,11 @@ export interface RetrieveResultItem {
|
|
|
694
669
|
ScoreConfidence?: 'VERY_HIGH' | 'HIGH' | 'MEDIUM' | 'LOW' | 'NOT_AVAILABLE'
|
|
695
670
|
}
|
|
696
671
|
}
|
|
697
|
-
|
|
698
|
-
export interface RetrieveCommandOutput {
|
|
672
|
+
export declare interface RetrieveCommandOutput {
|
|
699
673
|
QueryId?: string
|
|
700
674
|
ResultItems?: RetrieveResultItem[]
|
|
701
675
|
}
|
|
702
|
-
|
|
703
|
-
export interface BatchPutDocumentCommandInput {
|
|
676
|
+
export declare interface BatchPutDocumentCommandInput {
|
|
704
677
|
IndexId: string
|
|
705
678
|
RoleArn?: string
|
|
706
679
|
Documents: Array<{
|
|
@@ -739,16 +712,14 @@ export interface BatchPutDocumentCommandInput {
|
|
|
739
712
|
}>
|
|
740
713
|
CustomDocumentEnrichmentConfiguration?: CreateDataSourceCommandInput['CustomDocumentEnrichmentConfiguration']
|
|
741
714
|
}
|
|
742
|
-
|
|
743
|
-
export interface BatchPutDocumentCommandOutput {
|
|
715
|
+
export declare interface BatchPutDocumentCommandOutput {
|
|
744
716
|
FailedDocuments?: Array<{
|
|
745
717
|
Id?: string
|
|
746
718
|
ErrorCode?: 'InternalError' | 'InvalidRequest'
|
|
747
719
|
ErrorMessage?: string
|
|
748
720
|
}>
|
|
749
721
|
}
|
|
750
|
-
|
|
751
|
-
export interface BatchDeleteDocumentCommandInput {
|
|
722
|
+
export declare interface BatchDeleteDocumentCommandInput {
|
|
752
723
|
IndexId: string
|
|
753
724
|
DocumentIdList: string[]
|
|
754
725
|
DataSourceSyncJobMetricTarget?: {
|
|
@@ -756,342 +727,56 @@ export interface BatchDeleteDocumentCommandInput {
|
|
|
756
727
|
DataSourceSyncJobId?: string
|
|
757
728
|
}
|
|
758
729
|
}
|
|
759
|
-
|
|
760
|
-
export interface BatchDeleteDocumentCommandOutput {
|
|
730
|
+
export declare interface BatchDeleteDocumentCommandOutput {
|
|
761
731
|
FailedDocuments?: Array<{
|
|
762
732
|
Id?: string
|
|
763
733
|
ErrorCode?: 'InternalError' | 'InvalidRequest'
|
|
764
734
|
ErrorMessage?: string
|
|
765
735
|
}>
|
|
766
736
|
}
|
|
767
|
-
|
|
768
737
|
// ============================================================================
|
|
769
738
|
// Kendra Client
|
|
770
739
|
// ============================================================================
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
private
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
},
|
|
791
|
-
body: JSON.stringify(params),
|
|
792
|
-
})
|
|
793
|
-
}
|
|
794
|
-
|
|
795
|
-
// -------------------------------------------------------------------------
|
|
796
|
-
// Index Management
|
|
797
|
-
// -------------------------------------------------------------------------
|
|
798
|
-
|
|
799
|
-
async createIndex(params: CreateIndexCommandInput): Promise<CreateIndexCommandOutput> {
|
|
800
|
-
return this.request('CreateIndex', params as unknown as Record<string, unknown>)
|
|
801
|
-
}
|
|
802
|
-
|
|
803
|
-
async describeIndex(params: DescribeIndexCommandInput): Promise<DescribeIndexCommandOutput> {
|
|
804
|
-
return this.request('DescribeIndex', params as unknown as Record<string, unknown>)
|
|
805
|
-
}
|
|
806
|
-
|
|
807
|
-
async listIndices(params?: ListIndicesCommandInput): Promise<ListIndicesCommandOutput> {
|
|
808
|
-
return this.request('ListIndices', (params || {}) as unknown as Record<string, unknown>)
|
|
809
|
-
}
|
|
810
|
-
|
|
811
|
-
async deleteIndex(params: DeleteIndexCommandInput): Promise<DeleteIndexCommandOutput> {
|
|
812
|
-
return this.request('DeleteIndex', params as unknown as Record<string, unknown>)
|
|
813
|
-
}
|
|
814
|
-
|
|
815
|
-
// -------------------------------------------------------------------------
|
|
816
|
-
// Data Source Management
|
|
817
|
-
// -------------------------------------------------------------------------
|
|
818
|
-
|
|
819
|
-
async createDataSource(params: CreateDataSourceCommandInput): Promise<CreateDataSourceCommandOutput> {
|
|
820
|
-
return this.request('CreateDataSource', params as unknown as Record<string, unknown>)
|
|
821
|
-
}
|
|
822
|
-
|
|
823
|
-
async describeDataSource(params: DescribeDataSourceCommandInput): Promise<DescribeDataSourceCommandOutput> {
|
|
824
|
-
return this.request('DescribeDataSource', params as unknown as Record<string, unknown>)
|
|
825
|
-
}
|
|
826
|
-
|
|
827
|
-
async listDataSources(params: ListDataSourcesCommandInput): Promise<ListDataSourcesCommandOutput> {
|
|
828
|
-
return this.request('ListDataSources', params as unknown as Record<string, unknown>)
|
|
829
|
-
}
|
|
830
|
-
|
|
831
|
-
async startDataSourceSyncJob(params: StartDataSourceSyncJobCommandInput): Promise<StartDataSourceSyncJobCommandOutput> {
|
|
832
|
-
return this.request('StartDataSourceSyncJob', params as unknown as Record<string, unknown>)
|
|
833
|
-
}
|
|
834
|
-
|
|
835
|
-
async stopDataSourceSyncJob(params: StopDataSourceSyncJobCommandInput): Promise<StopDataSourceSyncJobCommandOutput> {
|
|
836
|
-
return this.request('StopDataSourceSyncJob', params as unknown as Record<string, unknown>)
|
|
837
|
-
}
|
|
838
|
-
|
|
839
|
-
// -------------------------------------------------------------------------
|
|
840
|
-
// Search
|
|
841
|
-
// -------------------------------------------------------------------------
|
|
842
|
-
|
|
843
|
-
async query(params: QueryCommandInput): Promise<QueryCommandOutput> {
|
|
844
|
-
return this.request('Query', params as unknown as Record<string, unknown>)
|
|
845
|
-
}
|
|
846
|
-
|
|
847
|
-
async retrieve(params: RetrieveCommandInput): Promise<RetrieveCommandOutput> {
|
|
848
|
-
return this.request('Retrieve', params as unknown as Record<string, unknown>)
|
|
849
|
-
}
|
|
850
|
-
|
|
851
|
-
// -------------------------------------------------------------------------
|
|
852
|
-
// Document Management
|
|
853
|
-
// -------------------------------------------------------------------------
|
|
854
|
-
|
|
855
|
-
async batchPutDocument(params: BatchPutDocumentCommandInput): Promise<BatchPutDocumentCommandOutput> {
|
|
856
|
-
return this.request('BatchPutDocument', params as unknown as Record<string, unknown>)
|
|
857
|
-
}
|
|
858
|
-
|
|
859
|
-
async batchDeleteDocument(params: BatchDeleteDocumentCommandInput): Promise<BatchDeleteDocumentCommandOutput> {
|
|
860
|
-
return this.request('BatchDeleteDocument', params as unknown as Record<string, unknown>)
|
|
861
|
-
}
|
|
862
|
-
|
|
863
|
-
// -------------------------------------------------------------------------
|
|
864
|
-
// Convenience Methods
|
|
865
|
-
// -------------------------------------------------------------------------
|
|
866
|
-
|
|
867
|
-
/**
|
|
868
|
-
* Simple search query
|
|
869
|
-
*/
|
|
870
|
-
async search(indexId: string, queryText: string, options?: {
|
|
740
|
+
export declare class KendraClient {
|
|
741
|
+
private client: AWSClient;
|
|
742
|
+
private region: string;
|
|
743
|
+
constructor(region?: string);
|
|
744
|
+
private request<T>(action: string, params: Record<string, unknown>): Promise<T>;
|
|
745
|
+
createIndex(params: CreateIndexCommandInput): Promise<CreateIndexCommandOutput>;
|
|
746
|
+
describeIndex(params: DescribeIndexCommandInput): Promise<DescribeIndexCommandOutput>;
|
|
747
|
+
listIndices(params?: ListIndicesCommandInput): Promise<ListIndicesCommandOutput>;
|
|
748
|
+
deleteIndex(params: DeleteIndexCommandInput): Promise<DeleteIndexCommandOutput>;
|
|
749
|
+
createDataSource(params: CreateDataSourceCommandInput): Promise<CreateDataSourceCommandOutput>;
|
|
750
|
+
describeDataSource(params: DescribeDataSourceCommandInput): Promise<DescribeDataSourceCommandOutput>;
|
|
751
|
+
listDataSources(params: ListDataSourcesCommandInput): Promise<ListDataSourcesCommandOutput>;
|
|
752
|
+
startDataSourceSyncJob(params: StartDataSourceSyncJobCommandInput): Promise<StartDataSourceSyncJobCommandOutput>;
|
|
753
|
+
stopDataSourceSyncJob(params: StopDataSourceSyncJobCommandInput): Promise<StopDataSourceSyncJobCommandOutput>;
|
|
754
|
+
query(params: QueryCommandInput): Promise<QueryCommandOutput>;
|
|
755
|
+
retrieve(params: RetrieveCommandInput): Promise<RetrieveCommandOutput>;
|
|
756
|
+
batchPutDocument(params: BatchPutDocumentCommandInput): Promise<BatchPutDocumentCommandOutput>;
|
|
757
|
+
batchDeleteDocument(params: BatchDeleteDocumentCommandInput): Promise<BatchDeleteDocumentCommandOutput>;
|
|
758
|
+
search(indexId: string, queryText: string, options?: {
|
|
871
759
|
pageSize?: number
|
|
872
760
|
pageNumber?: number
|
|
873
761
|
attributeFilter?: QueryCommandInput['AttributeFilter']
|
|
874
|
-
}): Promise<QueryResultItem[]
|
|
875
|
-
|
|
876
|
-
IndexId: indexId,
|
|
877
|
-
QueryText: queryText,
|
|
878
|
-
PageSize: options?.pageSize,
|
|
879
|
-
PageNumber: options?.pageNumber,
|
|
880
|
-
AttributeFilter: options?.attributeFilter,
|
|
881
|
-
})
|
|
882
|
-
return result.ResultItems || []
|
|
883
|
-
}
|
|
884
|
-
|
|
885
|
-
/**
|
|
886
|
-
* Retrieve documents (for RAG)
|
|
887
|
-
*/
|
|
888
|
-
async retrieveDocuments(indexId: string, queryText: string, options?: {
|
|
762
|
+
}): Promise<QueryResultItem[]>;
|
|
763
|
+
retrieveDocuments(indexId: string, queryText: string, options?: {
|
|
889
764
|
pageSize?: number
|
|
890
765
|
pageNumber?: number
|
|
891
|
-
}): Promise<RetrieveResultItem[]
|
|
892
|
-
|
|
893
|
-
IndexId: indexId,
|
|
894
|
-
QueryText: queryText,
|
|
895
|
-
PageSize: options?.pageSize,
|
|
896
|
-
PageNumber: options?.pageNumber,
|
|
897
|
-
})
|
|
898
|
-
return result.ResultItems || []
|
|
899
|
-
}
|
|
900
|
-
|
|
901
|
-
/**
|
|
902
|
-
* Add a text document to the index
|
|
903
|
-
*/
|
|
904
|
-
async addDocument(indexId: string, document: {
|
|
766
|
+
}): Promise<RetrieveResultItem[]>;
|
|
767
|
+
addDocument(indexId: string, document: {
|
|
905
768
|
id: string
|
|
906
769
|
title?: string
|
|
907
770
|
content: string
|
|
908
771
|
attributes?: Record<string, string | string[] | number>
|
|
909
|
-
}): Promise<void
|
|
910
|
-
|
|
911
|
-
? Object.entries(document.attributes).map(([key, value]) => ({
|
|
912
|
-
Key: key,
|
|
913
|
-
Value: typeof value === 'number'
|
|
914
|
-
? { LongValue: value }
|
|
915
|
-
: Array.isArray(value)
|
|
916
|
-
? { StringListValue: value }
|
|
917
|
-
: { StringValue: value },
|
|
918
|
-
}))
|
|
919
|
-
: undefined
|
|
920
|
-
|
|
921
|
-
const result = await this.batchPutDocument({
|
|
922
|
-
IndexId: indexId,
|
|
923
|
-
Documents: [
|
|
924
|
-
{
|
|
925
|
-
Id: document.id,
|
|
926
|
-
Title: document.title,
|
|
927
|
-
Blob: new TextEncoder().encode(document.content),
|
|
928
|
-
ContentType: 'PLAIN_TEXT',
|
|
929
|
-
Attributes: attributes,
|
|
930
|
-
},
|
|
931
|
-
],
|
|
932
|
-
})
|
|
933
|
-
|
|
934
|
-
if (result.FailedDocuments?.length) {
|
|
935
|
-
throw new Error(`Failed to add document: ${result.FailedDocuments[0].ErrorMessage}`)
|
|
936
|
-
}
|
|
937
|
-
}
|
|
938
|
-
|
|
939
|
-
/**
|
|
940
|
-
* Add multiple documents
|
|
941
|
-
*/
|
|
942
|
-
async addDocuments(indexId: string, documents: Array<{
|
|
772
|
+
}): Promise<void>;
|
|
773
|
+
addDocuments(indexId: string, documents: Array<{
|
|
943
774
|
id: string
|
|
944
775
|
title?: string
|
|
945
776
|
content: string
|
|
946
777
|
attributes?: Record<string, string | string[] | number>
|
|
947
|
-
}>): Promise<{ succeeded: number; failed: Array<{ id: string; error: string }> }
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
Value: typeof value === 'number'
|
|
953
|
-
? { LongValue: value }
|
|
954
|
-
: Array.isArray(value)
|
|
955
|
-
? { StringListValue: value }
|
|
956
|
-
: { StringValue: value },
|
|
957
|
-
}))
|
|
958
|
-
: undefined
|
|
959
|
-
|
|
960
|
-
return {
|
|
961
|
-
Id: doc.id,
|
|
962
|
-
Title: doc.title,
|
|
963
|
-
Blob: new TextEncoder().encode(doc.content),
|
|
964
|
-
ContentType: 'PLAIN_TEXT' as const,
|
|
965
|
-
Attributes: attributes,
|
|
966
|
-
}
|
|
967
|
-
})
|
|
968
|
-
|
|
969
|
-
const result = await this.batchPutDocument({
|
|
970
|
-
IndexId: indexId,
|
|
971
|
-
Documents: docs,
|
|
972
|
-
})
|
|
973
|
-
|
|
974
|
-
const failed = result.FailedDocuments?.map(f => ({
|
|
975
|
-
id: f.Id || 'unknown',
|
|
976
|
-
error: f.ErrorMessage || 'Unknown error',
|
|
977
|
-
})) || []
|
|
978
|
-
|
|
979
|
-
return {
|
|
980
|
-
succeeded: documents.length - failed.length,
|
|
981
|
-
failed,
|
|
982
|
-
}
|
|
983
|
-
}
|
|
984
|
-
|
|
985
|
-
/**
|
|
986
|
-
* Delete documents
|
|
987
|
-
*/
|
|
988
|
-
async deleteDocuments(indexId: string, documentIds: string[]): Promise<void> {
|
|
989
|
-
const result = await this.batchDeleteDocument({
|
|
990
|
-
IndexId: indexId,
|
|
991
|
-
DocumentIdList: documentIds,
|
|
992
|
-
})
|
|
993
|
-
|
|
994
|
-
if (result.FailedDocuments?.length) {
|
|
995
|
-
throw new Error(`Failed to delete documents: ${result.FailedDocuments.map(f => f.Id).join(', ')}`)
|
|
996
|
-
}
|
|
997
|
-
}
|
|
998
|
-
|
|
999
|
-
/**
|
|
1000
|
-
* Wait for index to be active
|
|
1001
|
-
*/
|
|
1002
|
-
async waitForIndex(
|
|
1003
|
-
indexId: string,
|
|
1004
|
-
options?: { maxWaitMs?: number; pollIntervalMs?: number },
|
|
1005
|
-
): Promise<Index> {
|
|
1006
|
-
const maxWaitMs = options?.maxWaitMs ?? 3600000 // 1 hour
|
|
1007
|
-
const pollIntervalMs = options?.pollIntervalMs ?? 30000
|
|
1008
|
-
const startTime = Date.now()
|
|
1009
|
-
|
|
1010
|
-
while (Date.now() - startTime < maxWaitMs) {
|
|
1011
|
-
const result = await this.describeIndex({ Id: indexId })
|
|
1012
|
-
|
|
1013
|
-
if (result.Status === 'ACTIVE') {
|
|
1014
|
-
return result as Index
|
|
1015
|
-
}
|
|
1016
|
-
if (result.Status === 'FAILED') {
|
|
1017
|
-
throw new Error(`Index creation failed: ${result.ErrorMessage}`)
|
|
1018
|
-
}
|
|
1019
|
-
|
|
1020
|
-
await new Promise(resolve => setTimeout(resolve, pollIntervalMs))
|
|
1021
|
-
}
|
|
1022
|
-
|
|
1023
|
-
throw new Error(`Timeout waiting for index ${indexId}`)
|
|
1024
|
-
}
|
|
1025
|
-
|
|
1026
|
-
/**
|
|
1027
|
-
* Wait for data source to be active
|
|
1028
|
-
*/
|
|
1029
|
-
async waitForDataSource(
|
|
1030
|
-
indexId: string,
|
|
1031
|
-
dataSourceId: string,
|
|
1032
|
-
options?: { maxWaitMs?: number; pollIntervalMs?: number },
|
|
1033
|
-
): Promise<DataSource> {
|
|
1034
|
-
const maxWaitMs = options?.maxWaitMs ?? 1800000 // 30 minutes
|
|
1035
|
-
const pollIntervalMs = options?.pollIntervalMs ?? 30000
|
|
1036
|
-
const startTime = Date.now()
|
|
1037
|
-
|
|
1038
|
-
while (Date.now() - startTime < maxWaitMs) {
|
|
1039
|
-
const result = await this.describeDataSource({
|
|
1040
|
-
Id: dataSourceId,
|
|
1041
|
-
IndexId: indexId,
|
|
1042
|
-
})
|
|
1043
|
-
|
|
1044
|
-
if (result.Status === 'ACTIVE') {
|
|
1045
|
-
return result
|
|
1046
|
-
}
|
|
1047
|
-
if (result.Status === 'FAILED') {
|
|
1048
|
-
throw new Error(`Data source creation failed: ${result.ErrorMessage}`)
|
|
1049
|
-
}
|
|
1050
|
-
|
|
1051
|
-
await new Promise(resolve => setTimeout(resolve, pollIntervalMs))
|
|
1052
|
-
}
|
|
1053
|
-
|
|
1054
|
-
throw new Error(`Timeout waiting for data source ${dataSourceId}`)
|
|
1055
|
-
}
|
|
1056
|
-
}
|
|
1057
|
-
|
|
1058
|
-
// ============================================================================
|
|
1059
|
-
// Helper Functions
|
|
1060
|
-
// ============================================================================
|
|
1061
|
-
|
|
1062
|
-
/**
|
|
1063
|
-
* Quick search
|
|
1064
|
-
*/
|
|
1065
|
-
export async function search(
|
|
1066
|
-
indexId: string,
|
|
1067
|
-
query: string,
|
|
1068
|
-
options?: { region?: string; pageSize?: number },
|
|
1069
|
-
): Promise<Array<{ title: string; excerpt: string; uri: string; score: string }>> {
|
|
1070
|
-
const client = new KendraClient(options?.region || 'us-east-1')
|
|
1071
|
-
const results = await client.search(indexId, query, { pageSize: options?.pageSize })
|
|
1072
|
-
|
|
1073
|
-
return results.map(r => ({
|
|
1074
|
-
title: r.DocumentTitle?.Text || '',
|
|
1075
|
-
excerpt: r.DocumentExcerpt?.Text || '',
|
|
1076
|
-
uri: r.DocumentURI || '',
|
|
1077
|
-
score: r.ScoreAttributes?.ScoreConfidence || 'NOT_AVAILABLE',
|
|
1078
|
-
}))
|
|
1079
|
-
}
|
|
1080
|
-
|
|
1081
|
-
/**
|
|
1082
|
-
* Retrieve for RAG
|
|
1083
|
-
*/
|
|
1084
|
-
export async function retrieveForRag(
|
|
1085
|
-
indexId: string,
|
|
1086
|
-
query: string,
|
|
1087
|
-
options?: { region?: string; pageSize?: number },
|
|
1088
|
-
): Promise<Array<{ content: string; uri: string; score: string }>> {
|
|
1089
|
-
const client = new KendraClient(options?.region || 'us-east-1')
|
|
1090
|
-
const results = await client.retrieveDocuments(indexId, query, { pageSize: options?.pageSize })
|
|
1091
|
-
|
|
1092
|
-
return results.map(r => ({
|
|
1093
|
-
content: r.Content || '',
|
|
1094
|
-
uri: r.DocumentURI || '',
|
|
1095
|
-
score: r.ScoreAttributes?.ScoreConfidence || 'NOT_AVAILABLE',
|
|
1096
|
-
}))
|
|
1097
|
-
}
|
|
778
|
+
}>): Promise<{ succeeded: number; failed: Array<{ id: string; error: string }> }>;
|
|
779
|
+
deleteDocuments(indexId: string, documentIds: string[]): Promise<void>;
|
|
780
|
+
waitForIndex(indexId: string, options?: { maxWaitMs?: number; pollIntervalMs?: number }): Promise<Index>;
|
|
781
|
+
waitForDataSource(indexId: string, dataSourceId: string, options?: { maxWaitMs?: number; pollIntervalMs?: number }): Promise<DataSource>;
|
|
782
|
+
}
|