@stacksjs/ts-cloud 0.1.3 → 0.1.6

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.
Files changed (187) hide show
  1. package/README.md +98 -13
  2. package/dist/aws/acm.d.ts +129 -0
  3. package/dist/aws/application-autoscaling.d.ts +282 -0
  4. package/dist/aws/bedrock.d.ts +2292 -0
  5. package/dist/aws/client.d.ts +79 -0
  6. package/dist/aws/cloudformation.d.ts +105 -0
  7. package/dist/aws/cloudfront.d.ts +265 -0
  8. package/dist/aws/cloudwatch-logs.d.ts +48 -0
  9. package/dist/aws/comprehend.d.ts +505 -0
  10. package/dist/aws/connect.d.ts +377 -0
  11. package/dist/aws/deploy-imap.d.ts +14 -0
  12. package/dist/aws/dynamodb.d.ts +176 -0
  13. package/dist/aws/ec2.d.ts +272 -0
  14. package/dist/aws/ecr.d.ts +149 -0
  15. package/dist/aws/ecs.d.ts +162 -0
  16. package/dist/aws/elasticache.d.ts +71 -0
  17. package/dist/aws/elbv2.d.ts +248 -0
  18. package/dist/aws/email.d.ts +175 -0
  19. package/dist/aws/eventbridge.d.ts +142 -0
  20. package/dist/aws/iam.d.ts +638 -0
  21. package/dist/aws/imap-server.d.ts +119 -0
  22. package/{src/aws/index.ts → dist/aws/index.d.ts} +62 -83
  23. package/{src/aws/kendra.ts → dist/aws/kendra.d.ts} +71 -386
  24. package/dist/aws/lambda.d.ts +232 -0
  25. package/dist/aws/opensearch.d.ts +87 -0
  26. package/dist/aws/personalize.d.ts +516 -0
  27. package/dist/aws/polly.d.ts +214 -0
  28. package/dist/aws/rds.d.ts +240 -0
  29. package/dist/aws/rekognition.d.ts +543 -0
  30. package/dist/aws/route53-domains.d.ts +113 -0
  31. package/dist/aws/route53.d.ts +215 -0
  32. package/dist/aws/s3.d.ts +212 -0
  33. package/dist/aws/scheduler.d.ts +140 -0
  34. package/dist/aws/secrets-manager.d.ts +170 -0
  35. package/dist/aws/ses.d.ts +288 -0
  36. package/dist/aws/setup-phone.d.ts +0 -0
  37. package/dist/aws/setup-sms.d.ts +115 -0
  38. package/dist/aws/sms.d.ts +304 -0
  39. package/dist/aws/smtp-server.d.ts +61 -0
  40. package/dist/aws/sns.d.ts +117 -0
  41. package/dist/aws/sqs.d.ts +65 -0
  42. package/dist/aws/ssm.d.ts +179 -0
  43. package/dist/aws/sts.d.ts +15 -0
  44. package/dist/aws/support.d.ts +104 -0
  45. package/dist/aws/test-imap.d.ts +0 -0
  46. package/dist/aws/textract.d.ts +403 -0
  47. package/dist/aws/transcribe.d.ts +60 -0
  48. package/dist/aws/translate.d.ts +358 -0
  49. package/dist/aws/voice.d.ts +219 -0
  50. package/dist/bin/cli.js +1724 -0
  51. package/dist/config.d.ts +7 -0
  52. package/dist/deploy/index.d.ts +2 -0
  53. package/dist/deploy/static-site-external-dns.d.ts +51 -0
  54. package/dist/deploy/static-site.d.ts +71 -0
  55. package/dist/dns/cloudflare.d.ts +52 -0
  56. package/dist/dns/godaddy.d.ts +38 -0
  57. package/dist/dns/index.d.ts +45 -0
  58. package/dist/dns/porkbun.d.ts +18 -0
  59. package/dist/dns/route53-adapter.d.ts +38 -0
  60. package/{src/dns/types.ts → dist/dns/types.d.ts} +26 -63
  61. package/dist/dns/validator.d.ts +78 -0
  62. package/dist/generators/index.d.ts +1 -0
  63. package/dist/generators/infrastructure.d.ts +30 -0
  64. package/{src/index.ts → dist/index.d.ts} +70 -93
  65. package/dist/index.js +7881 -0
  66. package/dist/push/apns.d.ts +60 -0
  67. package/dist/push/fcm.d.ts +117 -0
  68. package/dist/push/index.d.ts +14 -0
  69. package/dist/security/pre-deploy-scanner.d.ts +69 -0
  70. package/dist/ssl/acme-client.d.ts +67 -0
  71. package/dist/ssl/index.d.ts +2 -0
  72. package/dist/ssl/letsencrypt.d.ts +48 -0
  73. package/dist/types.d.ts +1 -0
  74. package/dist/utils/cli.d.ts +123 -0
  75. package/dist/validation/index.d.ts +1 -0
  76. package/dist/validation/template.d.ts +23 -0
  77. package/package.json +8 -8
  78. package/bin/cli.ts +0 -133
  79. package/bin/commands/analytics.ts +0 -328
  80. package/bin/commands/api.ts +0 -379
  81. package/bin/commands/assets.ts +0 -221
  82. package/bin/commands/audit.ts +0 -501
  83. package/bin/commands/backup.ts +0 -682
  84. package/bin/commands/cache.ts +0 -294
  85. package/bin/commands/cdn.ts +0 -281
  86. package/bin/commands/config.ts +0 -202
  87. package/bin/commands/container.ts +0 -105
  88. package/bin/commands/cost.ts +0 -208
  89. package/bin/commands/database.ts +0 -401
  90. package/bin/commands/deploy.ts +0 -674
  91. package/bin/commands/domain.ts +0 -397
  92. package/bin/commands/email.ts +0 -423
  93. package/bin/commands/environment.ts +0 -285
  94. package/bin/commands/events.ts +0 -424
  95. package/bin/commands/firewall.ts +0 -145
  96. package/bin/commands/function.ts +0 -116
  97. package/bin/commands/generate.ts +0 -280
  98. package/bin/commands/git.ts +0 -139
  99. package/bin/commands/iam.ts +0 -464
  100. package/bin/commands/index.ts +0 -48
  101. package/bin/commands/init.ts +0 -120
  102. package/bin/commands/logs.ts +0 -148
  103. package/bin/commands/network.ts +0 -579
  104. package/bin/commands/notify.ts +0 -489
  105. package/bin/commands/queue.ts +0 -407
  106. package/bin/commands/scheduler.ts +0 -370
  107. package/bin/commands/secrets.ts +0 -54
  108. package/bin/commands/server.ts +0 -629
  109. package/bin/commands/shared.ts +0 -97
  110. package/bin/commands/ssl.ts +0 -138
  111. package/bin/commands/stack.ts +0 -325
  112. package/bin/commands/status.ts +0 -385
  113. package/bin/commands/storage.ts +0 -450
  114. package/bin/commands/team.ts +0 -96
  115. package/bin/commands/tunnel.ts +0 -489
  116. package/bin/commands/utils.ts +0 -202
  117. package/build.ts +0 -15
  118. package/cloud +0 -2
  119. package/src/aws/acm.ts +0 -768
  120. package/src/aws/application-autoscaling.ts +0 -845
  121. package/src/aws/bedrock.ts +0 -4074
  122. package/src/aws/client.ts +0 -878
  123. package/src/aws/cloudformation.ts +0 -896
  124. package/src/aws/cloudfront.ts +0 -1531
  125. package/src/aws/cloudwatch-logs.ts +0 -154
  126. package/src/aws/comprehend.ts +0 -839
  127. package/src/aws/connect.ts +0 -1056
  128. package/src/aws/deploy-imap.ts +0 -384
  129. package/src/aws/dynamodb.ts +0 -340
  130. package/src/aws/ec2.ts +0 -1385
  131. package/src/aws/ecr.ts +0 -621
  132. package/src/aws/ecs.ts +0 -615
  133. package/src/aws/elasticache.ts +0 -301
  134. package/src/aws/elbv2.ts +0 -942
  135. package/src/aws/email.ts +0 -928
  136. package/src/aws/eventbridge.ts +0 -248
  137. package/src/aws/iam.ts +0 -1689
  138. package/src/aws/imap-server.ts +0 -2100
  139. package/src/aws/lambda.ts +0 -786
  140. package/src/aws/opensearch.ts +0 -158
  141. package/src/aws/personalize.ts +0 -977
  142. package/src/aws/polly.ts +0 -559
  143. package/src/aws/rds.ts +0 -888
  144. package/src/aws/rekognition.ts +0 -846
  145. package/src/aws/route53-domains.ts +0 -359
  146. package/src/aws/route53.ts +0 -1046
  147. package/src/aws/s3.ts +0 -2318
  148. package/src/aws/scheduler.ts +0 -571
  149. package/src/aws/secrets-manager.ts +0 -769
  150. package/src/aws/ses.ts +0 -1081
  151. package/src/aws/setup-phone.ts +0 -104
  152. package/src/aws/setup-sms.ts +0 -580
  153. package/src/aws/sms.ts +0 -1735
  154. package/src/aws/smtp-server.ts +0 -531
  155. package/src/aws/sns.ts +0 -758
  156. package/src/aws/sqs.ts +0 -382
  157. package/src/aws/ssm.ts +0 -807
  158. package/src/aws/sts.ts +0 -92
  159. package/src/aws/support.ts +0 -391
  160. package/src/aws/test-imap.ts +0 -86
  161. package/src/aws/textract.ts +0 -780
  162. package/src/aws/transcribe.ts +0 -108
  163. package/src/aws/translate.ts +0 -641
  164. package/src/aws/voice.ts +0 -1379
  165. package/src/config.ts +0 -35
  166. package/src/deploy/index.ts +0 -7
  167. package/src/deploy/static-site-external-dns.ts +0 -906
  168. package/src/deploy/static-site.ts +0 -1125
  169. package/src/dns/godaddy.ts +0 -412
  170. package/src/dns/index.ts +0 -183
  171. package/src/dns/porkbun.ts +0 -362
  172. package/src/dns/route53-adapter.ts +0 -414
  173. package/src/dns/validator.ts +0 -369
  174. package/src/generators/index.ts +0 -5
  175. package/src/generators/infrastructure.ts +0 -1660
  176. package/src/push/apns.ts +0 -452
  177. package/src/push/fcm.ts +0 -506
  178. package/src/push/index.ts +0 -58
  179. package/src/ssl/acme-client.ts +0 -478
  180. package/src/ssl/index.ts +0 -7
  181. package/src/ssl/letsencrypt.ts +0 -747
  182. package/src/types.ts +0 -2
  183. package/src/utils/cli.ts +0 -398
  184. package/src/validation/index.ts +0 -5
  185. package/src/validation/template.ts +0 -405
  186. package/test/index.test.ts +0 -128
  187. package/tsconfig.json +0 -18
@@ -1,16 +1,16 @@
1
+ import { AWSClient } from './client';
1
2
  /**
2
- * AWS Kendra Client
3
- * Enterprise search service
4
- * No external SDK dependencies - implements AWS Signature V4 directly
3
+ * Quick search
5
4
  */
6
-
7
- import { AWSClient } from './client'
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
- export interface DescribeDataSourceCommandOutput extends DataSource {}
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
- export class KendraClient {
773
- private client: AWSClient
774
- private region: string
775
-
776
- constructor(region: string = 'us-east-1') {
777
- this.region = region
778
- this.client = new AWSClient()
779
- }
780
-
781
- private async request<T>(action: string, params: Record<string, unknown>): Promise<T> {
782
- return this.client.request({
783
- service: 'kendra',
784
- region: this.region,
785
- method: 'POST',
786
- path: '/',
787
- headers: {
788
- 'Content-Type': 'application/x-amz-json-1.1',
789
- 'X-Amz-Target': `AWSKendraFrontendService.${action}`,
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
- const result = await this.query({
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
- const result = await this.retrieve({
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
- const attributes = document.attributes
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
- const docs = documents.map(doc => {
949
- const attributes = doc.attributes
950
- ? Object.entries(doc.attributes).map(([key, value]) => ({
951
- Key: key,
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
+ }