@aws/nx-plugin 1.0.0-rc.10 → 1.0.0-rc.11
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/package.json +1 -1
- package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +7 -16
- package/src/smithy/ts/api/generator.js +1 -1
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +135 -76
- package/src/ts/dynamodb/files/dynamodb.config.json +14 -0
- package/src/ts/dynamodb/files/scripts/create-local-table.ts.template +14 -7
- package/src/ts/dynamodb/files/src/index.ts.template +0 -1
- package/src/ts/dynamodb/generator.js +3 -1
- package/src/ts/dynamodb/generator.js.map +1 -1
- package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +1 -4
- package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +1 -16
- package/src/ts/react-website/agui/generator.js +0 -1
- package/src/ts/react-website/agui/generator.js.map +1 -1
- package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +1 -0
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
- package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +17 -3
- package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +11 -14
- package/src/utils/versions.d.ts +5 -5
- package/src/utils/versions.js +4 -4
- package/src/ts/dynamodb/files/src/gsi.ts.template +0 -14
package/package.json
CHANGED
|
@@ -257,7 +257,6 @@ export default AguiProvider;
|
|
|
257
257
|
exports[`py strands agent react connection generator - AG-UI protocol > should generate a shared AguiProvider and a per-agent hook for AG-UI agents > useAguiTestAgent.tsx 1`] = `
|
|
258
258
|
"import { HttpAgent } from '@ag-ui/client';
|
|
259
259
|
import type { AbstractAgent, RunAgentInput } from '@ag-ui/client';
|
|
260
|
-
import { Observable } from 'rxjs';
|
|
261
260
|
import { useMemo } from 'react';
|
|
262
261
|
import { useRuntimeConfig } from './useRuntimeConfig';
|
|
263
262
|
import { useSigV4, type SigV4Client } from './useSigV4';
|
|
@@ -279,7 +278,13 @@ class SigV4HttpAgent extends HttpAgent {
|
|
|
279
278
|
config: ConstructorParameters<typeof HttpAgent>[0],
|
|
280
279
|
sigV4Client: SigV4Client,
|
|
281
280
|
) {
|
|
282
|
-
super(
|
|
281
|
+
super({
|
|
282
|
+
...config,
|
|
283
|
+
fetch: sigV4Client.fetch as (
|
|
284
|
+
url: string,
|
|
285
|
+
init: RequestInit,
|
|
286
|
+
) => Promise<Response>,
|
|
287
|
+
});
|
|
283
288
|
this.sigV4Client = sigV4Client;
|
|
284
289
|
}
|
|
285
290
|
|
|
@@ -292,20 +297,6 @@ class SigV4HttpAgent extends HttpAgent {
|
|
|
292
297
|
return init;
|
|
293
298
|
}
|
|
294
299
|
|
|
295
|
-
// Remove this override once https://github.com/ag-ui-protocol/ag-ui/issues/1316 is fixed.
|
|
296
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
297
|
-
override run(input: RunAgentInput): any {
|
|
298
|
-
const sigV4Fetch = this.sigV4Client.fetch as typeof window.fetch;
|
|
299
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
300
|
-
return new Observable<any>((subscriber) => {
|
|
301
|
-
const originalFetch = window.fetch;
|
|
302
|
-
window.fetch = sigV4Fetch;
|
|
303
|
-
const sub = super.run(input).subscribe(subscriber);
|
|
304
|
-
window.fetch = originalFetch;
|
|
305
|
-
return () => sub.unsubscribe();
|
|
306
|
-
});
|
|
307
|
-
}
|
|
308
|
-
|
|
309
300
|
override clone(): SigV4HttpAgent {
|
|
310
301
|
const cloned = super.clone() as SigV4HttpAgent;
|
|
311
302
|
cloned.sigV4Client = this.sigV4Client;
|
|
@@ -203,7 +203,7 @@ const tsSmithyApiGenerator = async (tree, options) => {
|
|
|
203
203
|
...(options.auth === 'custom'
|
|
204
204
|
? ['@aws-lambda-powertools/parser']
|
|
205
205
|
: []),
|
|
206
|
-
]), (0, versions_1.withVersions)(['@types/aws-lambda']));
|
|
206
|
+
]), (0, versions_1.withVersions)(['@types/aws-lambda', 'tsx']));
|
|
207
207
|
await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [exports.TS_SMITHY_API_GENERATOR_INFO]);
|
|
208
208
|
await (0, format_1.formatFilesInSubtree)(tree);
|
|
209
209
|
return () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/smithy/ts/api/generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/smithy/ts/api/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,20 @@ exports[`ts#dynamodb generator > should generate scripts for finch engine > pack
|
|
|
9
9
|
ResourceInUseException,
|
|
10
10
|
UpdateTableCommand,
|
|
11
11
|
} from '@aws-sdk/client-dynamodb';
|
|
12
|
-
import {
|
|
12
|
+
import { readFileSync } from 'fs';
|
|
13
|
+
import { join, dirname } from 'path';
|
|
14
|
+
import { fileURLToPath } from 'url';
|
|
15
|
+
|
|
16
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
17
|
+
const { globalSecondaryIndexes } = JSON.parse(
|
|
18
|
+
readFileSync(join(__dirname, '../dynamodb.config.json'), 'utf-8'),
|
|
19
|
+
) as {
|
|
20
|
+
globalSecondaryIndexes: {
|
|
21
|
+
indexName: string;
|
|
22
|
+
partitionKey: string;
|
|
23
|
+
sortKey?: string;
|
|
24
|
+
}[];
|
|
25
|
+
};
|
|
13
26
|
|
|
14
27
|
const [tableName, port] = process.argv.slice(2);
|
|
15
28
|
const endpoint = \`http://localhost:\${port}\`;
|
|
@@ -48,11 +61,13 @@ const waitForTableActive = async (
|
|
|
48
61
|
const ensureTable = async (
|
|
49
62
|
tblClient: DynamoDBClient,
|
|
50
63
|
tblName: string,
|
|
51
|
-
gsIs: { indexName: string; partitionKey: string; sortKey
|
|
64
|
+
gsIs: { indexName: string; partitionKey: string; sortKey?: string }[],
|
|
52
65
|
): Promise<void> => {
|
|
53
66
|
const gsiAttributeDefinitions = gsIs.flatMap((gsi) => [
|
|
54
67
|
{ AttributeName: gsi.partitionKey, AttributeType: 'S' as const },
|
|
55
|
-
|
|
68
|
+
...(gsi.sortKey
|
|
69
|
+
? [{ AttributeName: gsi.sortKey, AttributeType: 'S' as const }]
|
|
70
|
+
: []),
|
|
56
71
|
]);
|
|
57
72
|
const attributeDefinitions = [
|
|
58
73
|
{ AttributeName: 'pk', AttributeType: 'S' as const },
|
|
@@ -66,7 +81,9 @@ const ensureTable = async (
|
|
|
66
81
|
IndexName: gsi.indexName,
|
|
67
82
|
KeySchema: [
|
|
68
83
|
{ AttributeName: gsi.partitionKey, KeyType: 'HASH' as const },
|
|
69
|
-
|
|
84
|
+
...(gsi.sortKey
|
|
85
|
+
? [{ AttributeName: gsi.sortKey, KeyType: 'RANGE' as const }]
|
|
86
|
+
: []),
|
|
70
87
|
],
|
|
71
88
|
Projection: { ProjectionType: 'ALL' as const },
|
|
72
89
|
}));
|
|
@@ -133,7 +150,14 @@ const ensureTable = async (
|
|
|
133
150
|
TableName: tblName,
|
|
134
151
|
AttributeDefinitions: [
|
|
135
152
|
{ AttributeName: gsi.partitionKey, AttributeType: 'S' },
|
|
136
|
-
|
|
153
|
+
...(gsi.sortKey
|
|
154
|
+
? [
|
|
155
|
+
{
|
|
156
|
+
AttributeName: gsi.sortKey,
|
|
157
|
+
AttributeType: 'S' as const,
|
|
158
|
+
},
|
|
159
|
+
]
|
|
160
|
+
: []),
|
|
137
161
|
],
|
|
138
162
|
GlobalSecondaryIndexUpdates: [
|
|
139
163
|
{
|
|
@@ -141,7 +165,9 @@ const ensureTable = async (
|
|
|
141
165
|
IndexName: gsi.indexName,
|
|
142
166
|
KeySchema: [
|
|
143
167
|
{ AttributeName: gsi.partitionKey, KeyType: 'HASH' },
|
|
144
|
-
|
|
168
|
+
...(gsi.sortKey
|
|
169
|
+
? [{ AttributeName: gsi.sortKey, KeyType: 'RANGE' }]
|
|
170
|
+
: []),
|
|
145
171
|
],
|
|
146
172
|
Projection: { ProjectionType: 'ALL' },
|
|
147
173
|
},
|
|
@@ -161,7 +187,7 @@ const ensureTable = async (
|
|
|
161
187
|
}
|
|
162
188
|
};
|
|
163
189
|
|
|
164
|
-
await ensureTable(client, tableName,
|
|
190
|
+
await ensureTable(client, tableName, globalSecondaryIndexes);
|
|
165
191
|
"
|
|
166
192
|
`;
|
|
167
193
|
|
|
@@ -458,6 +484,16 @@ variable "enable_key_rotation" {
|
|
|
458
484
|
default = true
|
|
459
485
|
}
|
|
460
486
|
|
|
487
|
+
locals {
|
|
488
|
+
dynamodb_config = jsondecode(file("\${path.module}/../../../../../../../packages/my-table/dynamodb.config.json"))
|
|
489
|
+
global_secondary_indexes = [for gsi in local.dynamodb_config.globalSecondaryIndexes : {
|
|
490
|
+
name = gsi.indexName
|
|
491
|
+
hash_key = gsi.partitionKey
|
|
492
|
+
range_key = try(gsi.sortKey, null)
|
|
493
|
+
projection_type = "ALL"
|
|
494
|
+
}]
|
|
495
|
+
}
|
|
496
|
+
|
|
461
497
|
module "dynamodb_table" {
|
|
462
498
|
source = "../../../core/dynamodb"
|
|
463
499
|
name = "proj-my-table"
|
|
@@ -465,20 +501,7 @@ module "dynamodb_table" {
|
|
|
465
501
|
point_in_time_recovery_enabled = var.point_in_time_recovery_enabled
|
|
466
502
|
deletion_protection_enabled = var.deletion_protection_enabled
|
|
467
503
|
enable_key_rotation = var.enable_key_rotation
|
|
468
|
-
global_secondary_indexes
|
|
469
|
-
{
|
|
470
|
-
name = "gsi1pk-gsi1sk-index"
|
|
471
|
-
hash_key = "gsi1pk"
|
|
472
|
-
range_key = "gsi1sk"
|
|
473
|
-
projection_type = "ALL"
|
|
474
|
-
},
|
|
475
|
-
{
|
|
476
|
-
name = "gsi2pk-gsi2sk-index"
|
|
477
|
-
hash_key = "gsi2pk"
|
|
478
|
-
range_key = "gsi2sk"
|
|
479
|
-
projection_type = "ALL"
|
|
480
|
-
},
|
|
481
|
-
]
|
|
504
|
+
global_secondary_indexes = local.global_secondary_indexes
|
|
482
505
|
}
|
|
483
506
|
|
|
484
507
|
module "add_to_runtime_config" {
|
|
@@ -502,7 +525,20 @@ exports[`ts#dynamodb generator > should generate the dynamodb project > packages
|
|
|
502
525
|
ResourceInUseException,
|
|
503
526
|
UpdateTableCommand,
|
|
504
527
|
} from '@aws-sdk/client-dynamodb';
|
|
505
|
-
import {
|
|
528
|
+
import { readFileSync } from 'fs';
|
|
529
|
+
import { join, dirname } from 'path';
|
|
530
|
+
import { fileURLToPath } from 'url';
|
|
531
|
+
|
|
532
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
533
|
+
const { globalSecondaryIndexes } = JSON.parse(
|
|
534
|
+
readFileSync(join(__dirname, '../dynamodb.config.json'), 'utf-8'),
|
|
535
|
+
) as {
|
|
536
|
+
globalSecondaryIndexes: {
|
|
537
|
+
indexName: string;
|
|
538
|
+
partitionKey: string;
|
|
539
|
+
sortKey?: string;
|
|
540
|
+
}[];
|
|
541
|
+
};
|
|
506
542
|
|
|
507
543
|
const [tableName, port] = process.argv.slice(2);
|
|
508
544
|
const endpoint = \`http://localhost:\${port}\`;
|
|
@@ -541,11 +577,13 @@ const waitForTableActive = async (
|
|
|
541
577
|
const ensureTable = async (
|
|
542
578
|
tblClient: DynamoDBClient,
|
|
543
579
|
tblName: string,
|
|
544
|
-
gsIs: { indexName: string; partitionKey: string; sortKey
|
|
580
|
+
gsIs: { indexName: string; partitionKey: string; sortKey?: string }[],
|
|
545
581
|
): Promise<void> => {
|
|
546
582
|
const gsiAttributeDefinitions = gsIs.flatMap((gsi) => [
|
|
547
583
|
{ AttributeName: gsi.partitionKey, AttributeType: 'S' as const },
|
|
548
|
-
|
|
584
|
+
...(gsi.sortKey
|
|
585
|
+
? [{ AttributeName: gsi.sortKey, AttributeType: 'S' as const }]
|
|
586
|
+
: []),
|
|
549
587
|
]);
|
|
550
588
|
const attributeDefinitions = [
|
|
551
589
|
{ AttributeName: 'pk', AttributeType: 'S' as const },
|
|
@@ -559,7 +597,9 @@ const ensureTable = async (
|
|
|
559
597
|
IndexName: gsi.indexName,
|
|
560
598
|
KeySchema: [
|
|
561
599
|
{ AttributeName: gsi.partitionKey, KeyType: 'HASH' as const },
|
|
562
|
-
|
|
600
|
+
...(gsi.sortKey
|
|
601
|
+
? [{ AttributeName: gsi.sortKey, KeyType: 'RANGE' as const }]
|
|
602
|
+
: []),
|
|
563
603
|
],
|
|
564
604
|
Projection: { ProjectionType: 'ALL' as const },
|
|
565
605
|
}));
|
|
@@ -626,7 +666,14 @@ const ensureTable = async (
|
|
|
626
666
|
TableName: tblName,
|
|
627
667
|
AttributeDefinitions: [
|
|
628
668
|
{ AttributeName: gsi.partitionKey, AttributeType: 'S' },
|
|
629
|
-
|
|
669
|
+
...(gsi.sortKey
|
|
670
|
+
? [
|
|
671
|
+
{
|
|
672
|
+
AttributeName: gsi.sortKey,
|
|
673
|
+
AttributeType: 'S' as const,
|
|
674
|
+
},
|
|
675
|
+
]
|
|
676
|
+
: []),
|
|
630
677
|
],
|
|
631
678
|
GlobalSecondaryIndexUpdates: [
|
|
632
679
|
{
|
|
@@ -634,7 +681,9 @@ const ensureTable = async (
|
|
|
634
681
|
IndexName: gsi.indexName,
|
|
635
682
|
KeySchema: [
|
|
636
683
|
{ AttributeName: gsi.partitionKey, KeyType: 'HASH' },
|
|
637
|
-
|
|
684
|
+
...(gsi.sortKey
|
|
685
|
+
? [{ AttributeName: gsi.sortKey, KeyType: 'RANGE' }]
|
|
686
|
+
: []),
|
|
638
687
|
],
|
|
639
688
|
Projection: { ProjectionType: 'ALL' },
|
|
640
689
|
},
|
|
@@ -654,7 +703,7 @@ const ensureTable = async (
|
|
|
654
703
|
}
|
|
655
704
|
};
|
|
656
705
|
|
|
657
|
-
await ensureTable(client, tableName,
|
|
706
|
+
await ensureTable(client, tableName, globalSecondaryIndexes);
|
|
658
707
|
"
|
|
659
708
|
`;
|
|
660
709
|
|
|
@@ -889,24 +938,6 @@ exports[`ts#dynamodb generator > should generate the dynamodb project > packages
|
|
|
889
938
|
"
|
|
890
939
|
`;
|
|
891
940
|
|
|
892
|
-
exports[`ts#dynamodb generator > should generate the dynamodb project > packages/my-table/src/gsi.ts 1`] = `
|
|
893
|
-
"// GSIs to synchronize on the local table at startup and provision in infrastructure.
|
|
894
|
-
// ElectroDB names GSI keys gsi{n}pk / gsi{n}sk — add one entry per index defined in your entities.
|
|
895
|
-
export const GLOBAL_SECONDARY_INDEXES = [
|
|
896
|
-
{
|
|
897
|
-
indexName: 'gsi1pk-gsi1sk-index',
|
|
898
|
-
partitionKey: 'gsi1pk',
|
|
899
|
-
sortKey: 'gsi1sk',
|
|
900
|
-
},
|
|
901
|
-
{
|
|
902
|
-
indexName: 'gsi2pk-gsi2sk-index',
|
|
903
|
-
partitionKey: 'gsi2pk',
|
|
904
|
-
sortKey: 'gsi2sk',
|
|
905
|
-
},
|
|
906
|
-
];
|
|
907
|
-
"
|
|
908
|
-
`;
|
|
909
|
-
|
|
910
941
|
exports[`ts#dynamodb generator > should generate the dynamodb project > packages/my-table/src/index.ts 1`] = `
|
|
911
942
|
"export {
|
|
912
943
|
PACKAGE_NAME,
|
|
@@ -917,7 +948,6 @@ exports[`ts#dynamodb generator > should generate the dynamodb project > packages
|
|
|
917
948
|
LOCAL_TABLE_NAME,
|
|
918
949
|
} from './constants.js';
|
|
919
950
|
export { getDynamoDBClient, resolveTableName } from './client.js';
|
|
920
|
-
export { GLOBAL_SECONDARY_INDEXES } from './gsi.js';
|
|
921
951
|
export * from './entities/index.js';
|
|
922
952
|
"
|
|
923
953
|
`;
|
|
@@ -1036,9 +1066,13 @@ export abstract class DynamoDBTable extends Construct {
|
|
|
1036
1066
|
|
|
1037
1067
|
exports[`ts#dynamodb generator > should generate the dynamodb project 2`] = `
|
|
1038
1068
|
"import { Construct } from 'constructs';
|
|
1039
|
-
import { PACKAGE_NAME
|
|
1069
|
+
import { PACKAGE_NAME } from ':proj/my-table';
|
|
1040
1070
|
import { AttributeType, ProjectionType } from 'aws-cdk-lib/aws-dynamodb';
|
|
1041
1071
|
import { DynamoDBTable, DynamoDBTableProps } from '../../core/dynamodb.js';
|
|
1072
|
+
import { findWorkspaceRoot } from '../../core/workspace.js';
|
|
1073
|
+
import { readFileSync } from 'fs';
|
|
1074
|
+
import { join } from 'path';
|
|
1075
|
+
import { fileURLToPath } from 'url';
|
|
1042
1076
|
|
|
1043
1077
|
export type MyTableProps = Omit<DynamoDBTableProps, 'runtimeConfigKey'>;
|
|
1044
1078
|
|
|
@@ -1049,11 +1083,29 @@ export class MyTable extends DynamoDBTable {
|
|
|
1049
1083
|
runtimeConfigKey: PACKAGE_NAME,
|
|
1050
1084
|
});
|
|
1051
1085
|
|
|
1052
|
-
|
|
1086
|
+
const { globalSecondaryIndexes } = JSON.parse(
|
|
1087
|
+
readFileSync(
|
|
1088
|
+
join(
|
|
1089
|
+
findWorkspaceRoot(fileURLToPath(new URL(import.meta.url))),
|
|
1090
|
+
'packages/my-table/dynamodb.config.json',
|
|
1091
|
+
),
|
|
1092
|
+
'utf-8',
|
|
1093
|
+
),
|
|
1094
|
+
) as {
|
|
1095
|
+
globalSecondaryIndexes: {
|
|
1096
|
+
indexName: string;
|
|
1097
|
+
partitionKey: string;
|
|
1098
|
+
sortKey?: string;
|
|
1099
|
+
}[];
|
|
1100
|
+
};
|
|
1101
|
+
|
|
1102
|
+
for (const gsi of globalSecondaryIndexes) {
|
|
1053
1103
|
this.table.addGlobalSecondaryIndex({
|
|
1054
1104
|
indexName: gsi.indexName,
|
|
1055
1105
|
partitionKey: { name: gsi.partitionKey, type: AttributeType.STRING },
|
|
1056
|
-
|
|
1106
|
+
...(gsi.sortKey && {
|
|
1107
|
+
sortKey: { name: gsi.sortKey, type: AttributeType.STRING },
|
|
1108
|
+
}),
|
|
1057
1109
|
projectionType: ProjectionType.ALL,
|
|
1058
1110
|
});
|
|
1059
1111
|
}
|
|
@@ -1081,7 +1133,20 @@ exports[`ts#dynamodb generator > should generate with infra=none then upgrade to
|
|
|
1081
1133
|
ResourceInUseException,
|
|
1082
1134
|
UpdateTableCommand,
|
|
1083
1135
|
} from '@aws-sdk/client-dynamodb';
|
|
1084
|
-
import {
|
|
1136
|
+
import { readFileSync } from 'fs';
|
|
1137
|
+
import { join, dirname } from 'path';
|
|
1138
|
+
import { fileURLToPath } from 'url';
|
|
1139
|
+
|
|
1140
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
1141
|
+
const { globalSecondaryIndexes } = JSON.parse(
|
|
1142
|
+
readFileSync(join(__dirname, '../dynamodb.config.json'), 'utf-8'),
|
|
1143
|
+
) as {
|
|
1144
|
+
globalSecondaryIndexes: {
|
|
1145
|
+
indexName: string;
|
|
1146
|
+
partitionKey: string;
|
|
1147
|
+
sortKey?: string;
|
|
1148
|
+
}[];
|
|
1149
|
+
};
|
|
1085
1150
|
|
|
1086
1151
|
const [tableName, port] = process.argv.slice(2);
|
|
1087
1152
|
const endpoint = \`http://localhost:\${port}\`;
|
|
@@ -1120,11 +1185,13 @@ const waitForTableActive = async (
|
|
|
1120
1185
|
const ensureTable = async (
|
|
1121
1186
|
tblClient: DynamoDBClient,
|
|
1122
1187
|
tblName: string,
|
|
1123
|
-
gsIs: { indexName: string; partitionKey: string; sortKey
|
|
1188
|
+
gsIs: { indexName: string; partitionKey: string; sortKey?: string }[],
|
|
1124
1189
|
): Promise<void> => {
|
|
1125
1190
|
const gsiAttributeDefinitions = gsIs.flatMap((gsi) => [
|
|
1126
1191
|
{ AttributeName: gsi.partitionKey, AttributeType: 'S' as const },
|
|
1127
|
-
|
|
1192
|
+
...(gsi.sortKey
|
|
1193
|
+
? [{ AttributeName: gsi.sortKey, AttributeType: 'S' as const }]
|
|
1194
|
+
: []),
|
|
1128
1195
|
]);
|
|
1129
1196
|
const attributeDefinitions = [
|
|
1130
1197
|
{ AttributeName: 'pk', AttributeType: 'S' as const },
|
|
@@ -1138,7 +1205,9 @@ const ensureTable = async (
|
|
|
1138
1205
|
IndexName: gsi.indexName,
|
|
1139
1206
|
KeySchema: [
|
|
1140
1207
|
{ AttributeName: gsi.partitionKey, KeyType: 'HASH' as const },
|
|
1141
|
-
|
|
1208
|
+
...(gsi.sortKey
|
|
1209
|
+
? [{ AttributeName: gsi.sortKey, KeyType: 'RANGE' as const }]
|
|
1210
|
+
: []),
|
|
1142
1211
|
],
|
|
1143
1212
|
Projection: { ProjectionType: 'ALL' as const },
|
|
1144
1213
|
}));
|
|
@@ -1205,7 +1274,14 @@ const ensureTable = async (
|
|
|
1205
1274
|
TableName: tblName,
|
|
1206
1275
|
AttributeDefinitions: [
|
|
1207
1276
|
{ AttributeName: gsi.partitionKey, AttributeType: 'S' },
|
|
1208
|
-
|
|
1277
|
+
...(gsi.sortKey
|
|
1278
|
+
? [
|
|
1279
|
+
{
|
|
1280
|
+
AttributeName: gsi.sortKey,
|
|
1281
|
+
AttributeType: 'S' as const,
|
|
1282
|
+
},
|
|
1283
|
+
]
|
|
1284
|
+
: []),
|
|
1209
1285
|
],
|
|
1210
1286
|
GlobalSecondaryIndexUpdates: [
|
|
1211
1287
|
{
|
|
@@ -1213,7 +1289,9 @@ const ensureTable = async (
|
|
|
1213
1289
|
IndexName: gsi.indexName,
|
|
1214
1290
|
KeySchema: [
|
|
1215
1291
|
{ AttributeName: gsi.partitionKey, KeyType: 'HASH' },
|
|
1216
|
-
|
|
1292
|
+
...(gsi.sortKey
|
|
1293
|
+
? [{ AttributeName: gsi.sortKey, KeyType: 'RANGE' }]
|
|
1294
|
+
: []),
|
|
1217
1295
|
],
|
|
1218
1296
|
Projection: { ProjectionType: 'ALL' },
|
|
1219
1297
|
},
|
|
@@ -1233,7 +1311,7 @@ const ensureTable = async (
|
|
|
1233
1311
|
}
|
|
1234
1312
|
};
|
|
1235
1313
|
|
|
1236
|
-
await ensureTable(client, tableName,
|
|
1314
|
+
await ensureTable(client, tableName, globalSecondaryIndexes);
|
|
1237
1315
|
"
|
|
1238
1316
|
`;
|
|
1239
1317
|
|
|
@@ -1468,24 +1546,6 @@ exports[`ts#dynamodb generator > should generate with infra=none then upgrade to
|
|
|
1468
1546
|
"
|
|
1469
1547
|
`;
|
|
1470
1548
|
|
|
1471
|
-
exports[`ts#dynamodb generator > should generate with infra=none then upgrade to infra=dynamodb > packages/my-table/src/gsi.ts 1`] = `
|
|
1472
|
-
"// GSIs to synchronize on the local table at startup and provision in infrastructure.
|
|
1473
|
-
// ElectroDB names GSI keys gsi{n}pk / gsi{n}sk — add one entry per index defined in your entities.
|
|
1474
|
-
export const GLOBAL_SECONDARY_INDEXES = [
|
|
1475
|
-
{
|
|
1476
|
-
indexName: 'gsi1pk-gsi1sk-index',
|
|
1477
|
-
partitionKey: 'gsi1pk',
|
|
1478
|
-
sortKey: 'gsi1sk',
|
|
1479
|
-
},
|
|
1480
|
-
{
|
|
1481
|
-
indexName: 'gsi2pk-gsi2sk-index',
|
|
1482
|
-
partitionKey: 'gsi2pk',
|
|
1483
|
-
sortKey: 'gsi2sk',
|
|
1484
|
-
},
|
|
1485
|
-
];
|
|
1486
|
-
"
|
|
1487
|
-
`;
|
|
1488
|
-
|
|
1489
1549
|
exports[`ts#dynamodb generator > should generate with infra=none then upgrade to infra=dynamodb > packages/my-table/src/index.ts 1`] = `
|
|
1490
1550
|
"export {
|
|
1491
1551
|
PACKAGE_NAME,
|
|
@@ -1496,7 +1556,6 @@ exports[`ts#dynamodb generator > should generate with infra=none then upgrade to
|
|
|
1496
1556
|
LOCAL_TABLE_NAME,
|
|
1497
1557
|
} from './constants.js';
|
|
1498
1558
|
export { getDynamoDBClient, resolveTableName } from './client.js';
|
|
1499
|
-
export { GLOBAL_SECONDARY_INDEXES } from './gsi.js';
|
|
1500
1559
|
export * from './entities/index.js';
|
|
1501
1560
|
"
|
|
1502
1561
|
`;
|
|
@@ -6,7 +6,14 @@ import {
|
|
|
6
6
|
ResourceInUseException,
|
|
7
7
|
UpdateTableCommand,
|
|
8
8
|
} from '@aws-sdk/client-dynamodb';
|
|
9
|
-
import {
|
|
9
|
+
import { readFileSync } from 'fs';
|
|
10
|
+
import { join, dirname } from 'path';
|
|
11
|
+
import { fileURLToPath } from 'url';
|
|
12
|
+
|
|
13
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
14
|
+
const { globalSecondaryIndexes } = JSON.parse(
|
|
15
|
+
readFileSync(join(__dirname, '../dynamodb.config.json'), 'utf-8'),
|
|
16
|
+
) as { globalSecondaryIndexes: { indexName: string; partitionKey: string; sortKey?: string }[] };
|
|
10
17
|
|
|
11
18
|
const [tableName, port] = process.argv.slice(2);
|
|
12
19
|
const endpoint = `http://localhost:${port}`;
|
|
@@ -45,11 +52,11 @@ const waitForTableActive = async (
|
|
|
45
52
|
const ensureTable = async (
|
|
46
53
|
tblClient: DynamoDBClient,
|
|
47
54
|
tblName: string,
|
|
48
|
-
gsIs: { indexName: string; partitionKey: string; sortKey
|
|
55
|
+
gsIs: { indexName: string; partitionKey: string; sortKey?: string }[],
|
|
49
56
|
): Promise<void> => {
|
|
50
57
|
const gsiAttributeDefinitions = gsIs.flatMap((gsi) => [
|
|
51
58
|
{ AttributeName: gsi.partitionKey, AttributeType: 'S' as const },
|
|
52
|
-
{ AttributeName: gsi.sortKey, AttributeType: 'S' as const },
|
|
59
|
+
...(gsi.sortKey ? [{ AttributeName: gsi.sortKey, AttributeType: 'S' as const }] : []),
|
|
53
60
|
]);
|
|
54
61
|
const attributeDefinitions = [
|
|
55
62
|
{ AttributeName: 'pk', AttributeType: 'S' as const },
|
|
@@ -63,7 +70,7 @@ const ensureTable = async (
|
|
|
63
70
|
IndexName: gsi.indexName,
|
|
64
71
|
KeySchema: [
|
|
65
72
|
{ AttributeName: gsi.partitionKey, KeyType: 'HASH' as const },
|
|
66
|
-
{ AttributeName: gsi.sortKey, KeyType: 'RANGE' as const },
|
|
73
|
+
...(gsi.sortKey ? [{ AttributeName: gsi.sortKey, KeyType: 'RANGE' as const }] : []),
|
|
67
74
|
],
|
|
68
75
|
Projection: { ProjectionType: 'ALL' as const },
|
|
69
76
|
}));
|
|
@@ -130,7 +137,7 @@ const ensureTable = async (
|
|
|
130
137
|
TableName: tblName,
|
|
131
138
|
AttributeDefinitions: [
|
|
132
139
|
{ AttributeName: gsi.partitionKey, AttributeType: 'S' },
|
|
133
|
-
{ AttributeName: gsi.sortKey, AttributeType: 'S' },
|
|
140
|
+
...(gsi.sortKey ? [{ AttributeName: gsi.sortKey, AttributeType: 'S' as const }] : []),
|
|
134
141
|
],
|
|
135
142
|
GlobalSecondaryIndexUpdates: [
|
|
136
143
|
{
|
|
@@ -138,7 +145,7 @@ const ensureTable = async (
|
|
|
138
145
|
IndexName: gsi.indexName,
|
|
139
146
|
KeySchema: [
|
|
140
147
|
{ AttributeName: gsi.partitionKey, KeyType: 'HASH' },
|
|
141
|
-
{ AttributeName: gsi.sortKey, KeyType: 'RANGE' },
|
|
148
|
+
...(gsi.sortKey ? [{ AttributeName: gsi.sortKey, KeyType: 'RANGE' }] : []),
|
|
142
149
|
],
|
|
143
150
|
Projection: { ProjectionType: 'ALL' },
|
|
144
151
|
},
|
|
@@ -158,4 +165,4 @@ const ensureTable = async (
|
|
|
158
165
|
}
|
|
159
166
|
};
|
|
160
167
|
|
|
161
|
-
await ensureTable(client, tableName,
|
|
168
|
+
await ensureTable(client, tableName, globalSecondaryIndexes);
|
|
@@ -88,13 +88,15 @@ const tsDynamoDBGenerator = async (tree, options) => {
|
|
|
88
88
|
nameKebabCase,
|
|
89
89
|
dynamoPackageAlias: (0, npm_scope_1.toScopeAlias)(fullyQualifiedName),
|
|
90
90
|
tableName: localTableName,
|
|
91
|
+
projectRoot: dir,
|
|
91
92
|
});
|
|
92
93
|
}
|
|
93
94
|
(0, devkit_1.addDependenciesToPackageJson)(tree, (0, versions_1.withVersions)([
|
|
94
95
|
'@aws-sdk/client-dynamodb',
|
|
95
96
|
'electrodb',
|
|
96
97
|
'@aws-lambda-powertools/parameters',
|
|
97
|
-
|
|
98
|
+
'@aws-sdk/client-appconfigdata',
|
|
99
|
+
]), (0, versions_1.withVersions)(['tsx', '@types/aws-lambda', '@types/node']));
|
|
98
100
|
await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [exports.TS_DYNAMODB_GENERATOR_INFO]);
|
|
99
101
|
await (0, format_1.formatFilesInSubtree)(tree);
|
|
100
102
|
return () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/dynamodb/generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/dynamodb/generator.ts"],"names":[],"mappings":"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"}
|
package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
<%_ if (auth === 'iam') { _%>
|
|
2
2
|
import { HttpAgent } from '@ag-ui/client';
|
|
3
3
|
import type { AbstractAgent, RunAgentInput } from '@ag-ui/client';
|
|
4
|
-
import { Observable } from 'rxjs';
|
|
5
4
|
import { useMemo } from 'react';
|
|
6
5
|
import { useRuntimeConfig } from './useRuntimeConfig';
|
|
7
6
|
import { useSigV4, type SigV4Client } from './useSigV4';
|
|
@@ -36,7 +35,7 @@ class SigV4HttpAgent extends HttpAgent {
|
|
|
36
35
|
config: ConstructorParameters<typeof HttpAgent>[0],
|
|
37
36
|
sigV4Client: SigV4Client,
|
|
38
37
|
) {
|
|
39
|
-
super(config);
|
|
38
|
+
super({ ...config, fetch: sigV4Client.fetch as (url: string, init: RequestInit) => Promise<Response> });
|
|
40
39
|
this.sigV4Client = sigV4Client;
|
|
41
40
|
}
|
|
42
41
|
|
|
@@ -49,20 +48,6 @@ class SigV4HttpAgent extends HttpAgent {
|
|
|
49
48
|
return init;
|
|
50
49
|
}
|
|
51
50
|
|
|
52
|
-
// Remove this override once https://github.com/ag-ui-protocol/ag-ui/issues/1316 is fixed.
|
|
53
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
54
|
-
override run(input: RunAgentInput): any {
|
|
55
|
-
const sigV4Fetch = this.sigV4Client.fetch as typeof window.fetch;
|
|
56
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
57
|
-
return new Observable<any>((subscriber) => {
|
|
58
|
-
const originalFetch = window.fetch;
|
|
59
|
-
window.fetch = sigV4Fetch;
|
|
60
|
-
const sub = super.run(input).subscribe(subscriber);
|
|
61
|
-
window.fetch = originalFetch;
|
|
62
|
-
return () => sub.unsubscribe();
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
|
|
66
51
|
override clone(): SigV4HttpAgent {
|
|
67
52
|
const cloned = super.clone() as SigV4HttpAgent;
|
|
68
53
|
cloned.sigV4Client = this.sigV4Client;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/react-website/agui/generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/react-website/agui/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export interface AddDynamoDBConstructOptions {
|
|
|
10
10
|
nameKebabCase: string;
|
|
11
11
|
dynamoPackageAlias: string;
|
|
12
12
|
tableName: string;
|
|
13
|
+
projectRoot: string;
|
|
13
14
|
}
|
|
14
15
|
export declare const addDynamoDBInfra: (tree: Tree, options: AddDynamoDBConstructOptions & {
|
|
15
16
|
iac: Iac;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamodb-constructs.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/dynamodb-constructs/dynamodb-constructs.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAOoB;AACpB,gCAAuC;AAEvC,8BAA0D;AAC1D,gFAIwC;
|
|
1
|
+
{"version":3,"file":"dynamodb-constructs.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/dynamodb-constructs/dynamodb-constructs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { Construct } from 'constructs';
|
|
2
|
-
import { PACKAGE_NAME
|
|
2
|
+
import { PACKAGE_NAME } from '<%= dynamoPackageAlias %>';
|
|
3
3
|
import { AttributeType, ProjectionType } from 'aws-cdk-lib/aws-dynamodb';
|
|
4
4
|
import {
|
|
5
5
|
DynamoDBTable,
|
|
6
6
|
DynamoDBTableProps,
|
|
7
7
|
} from '../../core/dynamodb.js';
|
|
8
|
+
import { findWorkspaceRoot } from '../../core/workspace.js';
|
|
9
|
+
import { readFileSync } from 'fs';
|
|
10
|
+
import { join } from "path";
|
|
11
|
+
import { fileURLToPath } from "url";
|
|
8
12
|
|
|
9
13
|
export type <%= nameClassName %>Props = Omit<
|
|
10
14
|
DynamoDBTableProps,
|
|
@@ -18,11 +22,21 @@ export class <%= nameClassName %> extends DynamoDBTable {
|
|
|
18
22
|
runtimeConfigKey: PACKAGE_NAME,
|
|
19
23
|
});
|
|
20
24
|
|
|
21
|
-
|
|
25
|
+
const { globalSecondaryIndexes } = JSON.parse(
|
|
26
|
+
readFileSync(
|
|
27
|
+
join(
|
|
28
|
+
findWorkspaceRoot(fileURLToPath(new URL(import.meta.url))),
|
|
29
|
+
'<%= projectRoot %>/dynamodb.config.json',
|
|
30
|
+
),
|
|
31
|
+
'utf-8',
|
|
32
|
+
),
|
|
33
|
+
) as { globalSecondaryIndexes: { indexName: string; partitionKey: string; sortKey?: string }[] };
|
|
34
|
+
|
|
35
|
+
for (const gsi of globalSecondaryIndexes) {
|
|
22
36
|
this.table.addGlobalSecondaryIndex({
|
|
23
37
|
indexName: gsi.indexName,
|
|
24
38
|
partitionKey: { name: gsi.partitionKey, type: AttributeType.STRING },
|
|
25
|
-
sortKey: { name: gsi.sortKey, type: AttributeType.STRING },
|
|
39
|
+
...(gsi.sortKey && { sortKey: { name: gsi.sortKey, type: AttributeType.STRING } }),
|
|
26
40
|
projectionType: ProjectionType.ALL,
|
|
27
41
|
});
|
|
28
42
|
}
|
|
@@ -31,6 +31,16 @@ variable "enable_key_rotation" {
|
|
|
31
31
|
default = true
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
locals {
|
|
35
|
+
dynamodb_config = jsondecode(file("${path.module}/../../../../../../../<%= projectRoot %>/dynamodb.config.json"))
|
|
36
|
+
global_secondary_indexes = [for gsi in local.dynamodb_config.globalSecondaryIndexes : {
|
|
37
|
+
name = gsi.indexName
|
|
38
|
+
hash_key = gsi.partitionKey
|
|
39
|
+
range_key = try(gsi.sortKey, null)
|
|
40
|
+
projection_type = "ALL"
|
|
41
|
+
}]
|
|
42
|
+
}
|
|
43
|
+
|
|
34
44
|
module "dynamodb_table" {
|
|
35
45
|
source = "../../../core/dynamodb"
|
|
36
46
|
name = "<%= tableName %>"
|
|
@@ -38,20 +48,7 @@ module "dynamodb_table" {
|
|
|
38
48
|
point_in_time_recovery_enabled = var.point_in_time_recovery_enabled
|
|
39
49
|
deletion_protection_enabled = var.deletion_protection_enabled
|
|
40
50
|
enable_key_rotation = var.enable_key_rotation
|
|
41
|
-
global_secondary_indexes
|
|
42
|
-
{
|
|
43
|
-
name = "gsi1pk-gsi1sk-index"
|
|
44
|
-
hash_key = "gsi1pk"
|
|
45
|
-
range_key = "gsi1sk"
|
|
46
|
-
projection_type = "ALL"
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
name = "gsi2pk-gsi2sk-index"
|
|
50
|
-
hash_key = "gsi2pk"
|
|
51
|
-
range_key = "gsi2sk"
|
|
52
|
-
projection_type = "ALL"
|
|
53
|
-
},
|
|
54
|
-
]
|
|
51
|
+
global_secondary_indexes = local.global_secondary_indexes
|
|
55
52
|
}
|
|
56
53
|
|
|
57
54
|
module "add_to_runtime_config" {
|
package/src/utils/versions.d.ts
CHANGED
|
@@ -33,11 +33,11 @@ export declare const TS_VERSIONS: {
|
|
|
33
33
|
readonly '@modelcontextprotocol/sdk': "1.29.0";
|
|
34
34
|
readonly '@modelcontextprotocol/inspector': "0.19.0";
|
|
35
35
|
readonly '@ag-ui/aws-strands': "0.1.0";
|
|
36
|
-
readonly '@ag-ui/client': "0.0.
|
|
37
|
-
readonly '@ag-ui/core': "0.0.
|
|
38
|
-
readonly '@ag-ui/encoder': "0.0.
|
|
36
|
+
readonly '@ag-ui/client': "0.0.56";
|
|
37
|
+
readonly '@ag-ui/core': "0.0.56";
|
|
38
|
+
readonly '@ag-ui/encoder': "0.0.56";
|
|
39
39
|
readonly 'agent-chat-cli': "0.2.0";
|
|
40
|
-
readonly '@copilotkit/react-core': "1.
|
|
40
|
+
readonly '@copilotkit/react-core': "1.60.0";
|
|
41
41
|
readonly rxjs: "7.8.2";
|
|
42
42
|
readonly '@strands-agents/sdk': "1.4.0";
|
|
43
43
|
readonly '@tanstack/react-router': "1.170.15";
|
|
@@ -126,7 +126,7 @@ export type ITsDepVersion = keyof typeof TS_VERSIONS;
|
|
|
126
126
|
* Add versions to the given dependencies
|
|
127
127
|
*/
|
|
128
128
|
export declare const withVersions: (deps: ITsDepVersion[]) => {
|
|
129
|
-
[k: string]: "0.3.13" | "0.11.0" | "3.1063.0" | "3.972.42" | "1.0.0-alpha.10" | "2.33.1" | "7.6.5" | "22.2.0" | "10.2.1" | "22.7.5" | "1.29.0" | "0.19.0" | "0.1.0" | "0.0.
|
|
129
|
+
[k: string]: "0.3.13" | "0.11.0" | "3.1063.0" | "3.972.42" | "1.0.0-alpha.10" | "2.33.1" | "7.6.5" | "22.2.0" | "10.2.1" | "22.7.5" | "1.29.0" | "0.19.0" | "0.1.0" | "0.0.56" | "0.2.0" | "1.60.0" | "7.8.2" | "1.4.0" | "1.170.15" | "1.168.18" | "1.167.17" | "1.162.0" | "1.162.2" | "3.0.189" | "1.0.138" | "3.0.1308" | "1.0.59" | "5.101.0" | "11.17.0" | "25.9.2" | "8.10.162" | "2.8.19" | "8.20.0" | "8.18.1" | "5.0.6" | "4.5.6" | "4.4.6" | "4.7.7" | "4.14.3" | "4.1.8" | "5.0.7" | "0.39.3" | "6.4.4" | "1.0.20" | "2.1126.0" | "2.258.0" | "3.12.0" | "10.6.0" | "2.8.6" | "5.6.2" | "0.7.1" | "2.1.1" | "14.0.3" | "3.9.0" | "0.28.0" | "1.0.31" | "1.0.5" | "2.4.16" | "7.8.0" | "5.2.1" | "3.3.3" | "9.1.7" | "11.3.5" | "11.0.4" | "4.0.0" | "3.5.2" | "2.0.0" | "19.6.6" | "3.5.0" | "8.21.0" | "3.3.1" | "19.2.7" | "6.1.3" | "1.0.3" | "3.36.0" | "0.5.21" | "0.26.1" | "4.2.2" | "4.22.4" | "1.17.0" | "1.5.0" | "4.10.0" | "3.6.0" | "8.0.16" | "6.0.3" | "4.4.3";
|
|
130
130
|
};
|
|
131
131
|
/**
|
|
132
132
|
* Versions for Python dependencies added by generators
|
package/src/utils/versions.js
CHANGED
|
@@ -36,11 +36,11 @@ exports.TS_VERSIONS = {
|
|
|
36
36
|
'@modelcontextprotocol/sdk': '1.29.0',
|
|
37
37
|
'@modelcontextprotocol/inspector': '0.19.0',
|
|
38
38
|
'@ag-ui/aws-strands': '0.1.0',
|
|
39
|
-
'@ag-ui/client': '0.0.
|
|
40
|
-
'@ag-ui/core': '0.0.
|
|
41
|
-
'@ag-ui/encoder': '0.0.
|
|
39
|
+
'@ag-ui/client': '0.0.56',
|
|
40
|
+
'@ag-ui/core': '0.0.56',
|
|
41
|
+
'@ag-ui/encoder': '0.0.56',
|
|
42
42
|
'agent-chat-cli': '0.2.0',
|
|
43
|
-
'@copilotkit/react-core': '1.
|
|
43
|
+
'@copilotkit/react-core': '1.60.0',
|
|
44
44
|
rxjs: '7.8.2',
|
|
45
45
|
'@strands-agents/sdk': '1.4.0',
|
|
46
46
|
'@tanstack/react-router': '1.170.15',
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
// GSIs to synchronize on the local table at startup and provision in infrastructure.
|
|
2
|
-
// ElectroDB names GSI keys gsi{n}pk / gsi{n}sk — add one entry per index defined in your entities.
|
|
3
|
-
export const GLOBAL_SECONDARY_INDEXES = [
|
|
4
|
-
{
|
|
5
|
-
indexName: 'gsi1pk-gsi1sk-index',
|
|
6
|
-
partitionKey: 'gsi1pk',
|
|
7
|
-
sortKey: 'gsi1sk',
|
|
8
|
-
},
|
|
9
|
-
{
|
|
10
|
-
indexName: 'gsi2pk-gsi2sk-index',
|
|
11
|
-
partitionKey: 'gsi2pk',
|
|
12
|
-
sortKey: 'gsi2sk',
|
|
13
|
-
},
|
|
14
|
-
];
|