@aws/nx-plugin 0.90.1 → 0.91.0
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/generators.json +8 -0
- package/package.json +1 -1
- package/src/connection/generator.js +6 -3
- package/src/connection/generator.js.map +1 -1
- package/src/ts/react-website/runtime-config/__snapshots__/generator.spec.ts.snap +3 -1
- package/src/ts/react-website/runtime-config/files/app/components/RuntimeConfig/index.tsx.template +1 -1
- package/src/ts/strands-agent/react-connection/__snapshots__/generator.spec.ts.snap +376 -0
- package/src/ts/strands-agent/react-connection/files/src/components/__agentNameClassName__AgentClientProvider.tsx.template +117 -0
- package/src/ts/strands-agent/react-connection/files/src/hooks/use__agentNameClassName__Agent.tsx.template +18 -0
- package/src/ts/strands-agent/react-connection/generator.d.ts +10 -0
- package/src/ts/strands-agent/react-connection/generator.js +129 -0
- package/src/ts/strands-agent/react-connection/generator.js.map +1 -0
- package/src/ts/strands-agent/react-connection/schema.d.ts +15 -0
- package/src/ts/strands-agent/react-connection/schema.json +26 -0
- package/src/ts/strands-agent/react-connection/serve-local.d.ts +17 -0
- package/src/ts/strands-agent/react-connection/serve-local.js +45 -0
- package/src/ts/strands-agent/react-connection/serve-local.js.map +1 -0
package/generators.json
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"connection/react-fastapi",
|
|
14
14
|
"connection/react-trpc",
|
|
15
15
|
"connection/react-smithy",
|
|
16
|
+
"connection/react-ts-strands-agent",
|
|
16
17
|
"connection/ts-strands-agent-mcp"
|
|
17
18
|
]
|
|
18
19
|
},
|
|
@@ -190,6 +191,13 @@
|
|
|
190
191
|
"description": "Add a Strands Agent to a TypeScript project",
|
|
191
192
|
"metric": "g30"
|
|
192
193
|
},
|
|
194
|
+
"ts#strands-agent#react-connection": {
|
|
195
|
+
"factory": "./src/ts/strands-agent/react-connection/generator",
|
|
196
|
+
"schema": "./src/ts/strands-agent/react-connection/schema.json",
|
|
197
|
+
"description": "Connect a React website to a TypeScript Strands Agent",
|
|
198
|
+
"metric": "g33",
|
|
199
|
+
"hidden": true
|
|
200
|
+
},
|
|
193
201
|
"ts#strands-agent#mcp-connection": {
|
|
194
202
|
"factory": "./src/ts/strands-agent/mcp-connection/generator",
|
|
195
203
|
"schema": "./src/ts/strands-agent/mcp-connection/schema.json",
|
package/package.json
CHANGED
|
@@ -16,7 +16,8 @@ const generator_3 = require("../smithy/project/generator");
|
|
|
16
16
|
const generator_4 = require("../smithy/ts/api/generator");
|
|
17
17
|
const generator_5 = tslib_1.__importDefault(require("../smithy/react-connection/generator"));
|
|
18
18
|
const generator_6 = tslib_1.__importDefault(require("../ts/strands-agent/mcp-connection/generator"));
|
|
19
|
-
const generator_7 = tslib_1.__importDefault(require("../
|
|
19
|
+
const generator_7 = tslib_1.__importDefault(require("../ts/strands-agent/react-connection/generator"));
|
|
20
|
+
const generator_8 = tslib_1.__importDefault(require("../py/strands-agent/mcp-connection/generator"));
|
|
20
21
|
/**
|
|
21
22
|
* List of supported source and target project types for connections.
|
|
22
23
|
* These can be project-level types (determined by introspection) or
|
|
@@ -41,6 +42,7 @@ const SUPPORTED_CONNECTIONS = [
|
|
|
41
42
|
{ source: 'react', target: 'ts#trpc-api' },
|
|
42
43
|
{ source: 'react', target: 'py#fast-api' },
|
|
43
44
|
{ source: 'react', target: 'smithy' },
|
|
45
|
+
{ source: 'react', target: 'ts#strands-agent' },
|
|
44
46
|
{ source: 'ts#strands-agent', target: 'ts#mcp-server' },
|
|
45
47
|
{ source: 'ts#strands-agent', target: 'py#mcp-server' },
|
|
46
48
|
{ source: 'py#strands-agent', target: 'ts#mcp-server' },
|
|
@@ -59,10 +61,11 @@ const CONNECTION_GENERATORS = {
|
|
|
59
61
|
frontendProjectName: options.sourceProject,
|
|
60
62
|
smithyModelOrBackendProjectName: options.targetProject,
|
|
61
63
|
}),
|
|
64
|
+
'react -> ts#strands-agent': (tree, options) => (0, generator_7.default)(tree, options),
|
|
62
65
|
'ts#strands-agent -> ts#mcp-server': (tree, options) => (0, generator_6.default)(tree, options),
|
|
63
66
|
'ts#strands-agent -> py#mcp-server': (tree, options) => (0, generator_6.default)(tree, options),
|
|
64
|
-
'py#strands-agent -> ts#mcp-server': (tree, options) => (0,
|
|
65
|
-
'py#strands-agent -> py#mcp-server': (tree, options) => (0,
|
|
67
|
+
'py#strands-agent -> ts#mcp-server': (tree, options) => (0, generator_8.default)(tree, options),
|
|
68
|
+
'py#strands-agent -> py#mcp-server': (tree, options) => (0, generator_8.default)(tree, options),
|
|
66
69
|
};
|
|
67
70
|
/**
|
|
68
71
|
* Generator for a connection between two projects
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/connection/generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/connection/generator.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCAA2E;AAE3E,gFAAyD;AACzD,sCAAoD;AACpD,wCAAyC;AACzC,uFAAmE;AACnE,oCAGqB;AACrB,2DAA4E;AAC5E,0DAA0E;AAC1E,6FAAkF;AAClF,qGAAgG;AAChG,uGAAoG;AACpG,qGAAgG;AAEhG;;;;GAIG;AACH,MAAM,uBAAuB,GAAG;IAC9B,aAAa;IACb,aAAa;IACb,OAAO;IACP,QAAQ;CACA,CAAC;AAMX;;;GAGG;AACU,QAAA,0BAA0B,GAAG,GAAG,CAAC;AAY9C;;;GAGG;AACH,MAAM,qBAAqB,GAAG;IAC5B,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE;IAC1C,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE;IAC1C,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;IACrC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE;IAC/C,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,eAAe,EAAE;IACvD,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,eAAe,EAAE;IACvD,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,eAAe,EAAE;IACvD,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,eAAe,EAAE;CACf,CAAC;AAqB3C,MAAM,qBAAqB,GAAG;IAC5B,sBAAsB,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACxC,IAAA,mBAAkB,EAAC,IAAI,EAAE;QACvB,mBAAmB,EAAE,OAAO,CAAC,aAAa;QAC1C,kBAAkB,EAAE,OAAO,CAAC,aAAa;KAC1C,CAAC;IACJ,sBAAsB,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACxC,IAAA,mBAAqB,EAAC,IAAI,EAAE;QAC1B,mBAAmB,EAAE,OAAO,CAAC,aAAa;QAC1C,kBAAkB,EAAE,OAAO,CAAC,aAAa;KAC1C,CAAC;IACJ,iBAAiB,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACnC,IAAA,mBAA8B,EAAC,IAAI,EAAE;QACnC,mBAAmB,EAAE,OAAO,CAAC,aAAa;QAC1C,+BAA+B,EAAE,OAAO,CAAC,aAAa;KACvD,CAAC;IACJ,2BAA2B,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAC7C,IAAA,mBAAsC,EAAC,IAAI,EAAE,OAAO,CAAC;IACvD,mCAAmC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACrD,IAAA,mBAAoC,EAAC,IAAI,EAAE,OAAO,CAAC;IACrD,mCAAmC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACrD,IAAA,mBAAoC,EAAC,IAAI,EAAE,OAAO,CAAC;IACrD,mCAAmC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACrD,IAAA,mBAAoC,EAAC,IAAI,EAAE,OAAO,CAAC;IACrD,mCAAmC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACrD,IAAA,mBAAoC,EAAC,IAAI,EAAE,OAAO,CAAC;CAItD,CAAC;AAEF;;GAEG;AACI,MAAM,mBAAmB,GAAG,KAAK,EACtC,IAAU,EACV,OAAkC,EAClC,EAAE;IACF,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAiB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAExD,MAAM,aAAa,GACjB,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAmB,CAAC;IAEpF,OAAO,MAAM,qBAAqB,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE;QACtD,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,eAAe,EAAE,QAAQ,CAAC,eAAe;QACzC,eAAe,EAAE,QAAQ,CAAC,eAAe;KAC1C,CAAC,CAAC;AACL,CAAC,CAAC;AAfW,QAAA,mBAAmB,uBAe9B;AAEF;;;GAGG;AACI,MAAM,uBAAuB,GAAG,CACrC,oBAA0C,EAC1C,YAAoB,EACW,EAAE;IACjC,MAAM,UAAU,GACb,oBAAoB,CAAC,QAAgB,EAAE,UAAU,IAAI,EAAE,CAAC;IAE3D,OAAO,CACL,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC;QAC/C,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC;QAC/C,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,YAAY,CAAC,CACrD,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,uBAAuB,2BAYlC;AAoBF;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,KAAK,EAC5B,IAAU,EACV,aAAmC,EACH,EAAE;IAClC,MAAM,WAAW,GAAG,MAAM,8BAA8B,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC9E,MAAM,UAAU,GACb,aAAa,CAAC,QAAgB,EAAE,UAAU,IAAI,EAAE,CAAC;IAEpD,OAAO;QACL,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,SAAS,CAAC,SAAS;YACzB,SAAS;SACV,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,iBAAiB,GAAG,CACxB,YAAgC,EAChC,aAAmC,EACnC,IAAyB,EACzB,EAAE;IACF,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,kCAA0B;QAAE,OAAO;IACzE,MAAM,KAAK,GAAG,IAAA,+BAAuB,EAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IACnE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,UAAU,GACb,aAAa,CAAC,QAAgB,EAAE,UAAU,IAAI,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,cAAc,YAAY,kBAAkB,IAAI,YAAY,aAAa,CAAC,IAAI,IAAI;YAChF,yBAAyB,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CACtH,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,+CAA+C,GAAG,CACtD,YAAgC,EAChC,aAAmC,EACnC,UAAiC,EACjC,oBAA2C,EAC3C,IAAyB,EACF,EAAE;IACzB,IAAI,CAAC,YAAY;QAAE,OAAO,UAAU,CAAC;IACrC,IAAI,YAAY,KAAK,kCAA0B,EAAE,CAAC;QAChD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,SAAS,GAAG,IAAA,+BAAuB,EAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IACvE,IAAI,CAAC,SAAS;QAAE,OAAO,UAAU,CAAC;IAClC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,IAAI,CACvD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,SAAS,CACvC,CAAC;IACF,IAAI,CAAC,uBAAuB;QAAE,OAAO,UAAU,CAAC;IAChD,uFAAuF;IACvF,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF;;GAEG;AACI,MAAM,iBAAiB,GAAG,KAAK,EACpC,IAAU,EACV,OAAkC,EAClC,uBAA8C,qBAAqB,EACtC,EAAE;IAC/B,MAAM,YAAY,GAAG,IAAA,wCAAmC,EACtD,IAAI,EACJ,OAAO,CAAC,aAAa,CACtB,CAAC;IACF,MAAM,YAAY,GAAG,IAAA,wCAAmC,EACtD,IAAI,EACJ,OAAO,CAAC,aAAa,CACtB,CAAC;IAEF,iDAAiD;IACjD,iBAAiB,CAAC,OAAO,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IACnE,iBAAiB,CAAC,OAAO,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAEnE,+BAA+B;IAC/B,MAAM,gBAAgB,GAAG,+CAA+C,CACtE,OAAO,CAAC,eAAe,EACvB,YAAY,EACZ,MAAM,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,EAC1C,oBAAoB,EACpB,QAAQ,CACT,CAAC;IACF,MAAM,gBAAgB,GAAG,+CAA+C,CACtE,OAAO,CAAC,eAAe,EACvB,YAAY,EACZ,MAAM,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,EAC1C,oBAAoB,EACpB,QAAQ,CACT,CAAC;IAEF,0DAA0D;IAC1D,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACtC,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAC5D,CAAC;YACF,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC;oBACX,UAAU,EAAE,KAAK;oBACjB,eAAe,EAAE,MAAM,CAAC,SAAS;oBACjC,eAAe,EAAE,MAAM,CAAC,SAAS;iBAClC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,IAAI,KAAK,CACb,qDAAqD,OAAO,CAAC,aAAa,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,OAAO,CAAC,aAAa,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACvO,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,sBAAsB,GAAG,OAAO;aACnC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,UAAU,GAAG,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC;YAC3C,MAAM,UAAU,GAAG,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC;YAC3C,MAAM,WAAW,GAAG,UAAU;gBAC5B,CAAC,CAAC,GAAG,UAAU,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG;gBAC1C,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;YACxB,MAAM,WAAW,GAAG,UAAU;gBAC5B,CAAC,CAAC,GAAG,UAAU,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG;gBAC1C,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;YACxB,OAAO,GAAG,WAAW,OAAO,WAAW,EAAE,CAAC;QAC5C,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,KAAK,CACb,6BAA6B,OAAO,CAAC,aAAa,OAAO,OAAO,CAAC,aAAa,IAAI;YAChF,yCAAyC,sBAAsB,IAAI;YACnE,wEAAwE,CAC3E,CAAC;IACJ,CAAC;IAED,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU;QACjC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe;QAC3C,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe;KAC5C,CAAC;AACJ,CAAC,CAAC;AArFW,QAAA,iBAAiB,qBAqF5B;AAEF;;GAEG;AACI,MAAM,oBAAoB,GAAG,KAAK,EACvC,IAAU,EACV,WAAmB,EACe,EAAE;IACpC,MAAM,oBAAoB,GAAG,IAAA,wCAAmC,EAC9D,IAAI,EACJ,WAAW,CACZ,CAAC;IACF,OAAO,MAAM,8BAA8B,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;AAC1E,CAAC,CAAC;AATW,QAAA,oBAAoB,wBAS/B;AAEF;;GAEG;AACH,MAAM,8BAA8B,GAAG,KAAK,EAC1C,IAAU,EACV,oBAA0C,EACR,EAAE;IACpC,wEAAwE;IACxE,6DAA6D;IAE7D,IAAI,MAAM,SAAS,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAChD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,SAAS,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAC1C,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAC5C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,oBAA0C,EAAE,EAAE,CAChE,oBAAoB,CAAC,UAAU;IAC/B,IAAA,0BAAiB,EAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAEtD,MAAM,SAAS,GAAG,KAAK,EACrB,IAAU,EACV,oBAA0C,EACxB,EAAE;IACpB,8EAA8E;IAC9E,IAAK,oBAAoB,CAAC,QAAgB,EAAE,OAAO,KAAK,MAAM,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wBAAwB;IACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CACvB,IAAA,0BAAiB,EAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,UAAU,CAAC,EAC/D,OAAO,CACR,CAAC;IACF,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0DAA0D;IAC1D,IAAI,MAAM,IAAA,0BAAoB,EAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kGAAkG;IAClG,MAAM,UAAU,GACd,IAAI,CAAC,IAAI,CACP,IAAA,0BAAiB,EAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,WAAW,CAAC,EAChE,OAAO,CACR;QACD,IAAI,CAAC,IAAI,CACP,IAAA,0BAAiB,EACf,UAAU,CAAC,oBAAoB,CAAC,EAChC,SAAS,EACT,WAAW,CACZ,EACD,OAAO,CACR,CAAC;IAEJ,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,IAAA,0BAAoB,EAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CACd,IAAU,EACV,oBAA0C,EACjC,EAAE;IACX,0CAA0C;IAC1C,OAAO,IAAI,CAAC,MAAM,CAChB,IAAA,0BAAiB,EAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,UAAU,CAAC,CAChE,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAChB,IAAU,EACV,oBAA0C,EACjC,EAAE;IACX,8EAA8E;IAC9E,IAAK,oBAAoB,CAAC,QAAgB,EAAE,OAAO,KAAK,UAAU,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAAG,IAAA,0BAAiB,EACrC,oBAAoB,CAAC,IAAI,EACzB,gBAAgB,CACjB,CAAC;IACF,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAA,eAAQ,EAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAChD,IAAI,CAAE,SAAiB,EAAE,OAAO,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1E,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAClB,KAAW,EACX,oBAA0C,EACjC,EAAE;IACX,+DAA+D;IAC/D,OAAO;QACL,yCAA6B,CAAC,EAAE;QAChC,wCAA4B,CAAC,EAAE;KAChC,CAAC,QAAQ,CAAC,CAAE,oBAAoB,CAAC,QAAgB,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;AACvE,CAAC,CAAC;AAEF,kBAAe,2BAAmB,CAAC"}
|
|
@@ -46,7 +46,9 @@ const RuntimeConfigProvider: React.FC<PropsWithChildren> = ({ children }) => {
|
|
|
46
46
|
applyOverrides(await (await fetch('/runtime-config.json')).json()),
|
|
47
47
|
);
|
|
48
48
|
} catch {
|
|
49
|
-
setRuntimeConfig(
|
|
49
|
+
setRuntimeConfig(
|
|
50
|
+
applyOverrides({ apis: {}, agentRuntimes: {} } as any),
|
|
51
|
+
);
|
|
50
52
|
}
|
|
51
53
|
})();
|
|
52
54
|
}, [setRuntimeConfig]);
|
package/src/ts/react-website/runtime-config/files/app/components/RuntimeConfig/index.tsx.template
CHANGED
|
@@ -34,7 +34,7 @@ const RuntimeConfigProvider: React.FC<PropsWithChildren> = ({ children }) => {
|
|
|
34
34
|
try {
|
|
35
35
|
setRuntimeConfig(applyOverrides(await (await fetch('/runtime-config.json')).json()));
|
|
36
36
|
} catch {
|
|
37
|
-
setRuntimeConfig(applyOverrides({ apis: {} } as any));
|
|
37
|
+
setRuntimeConfig(applyOverrides({ apis: {}, agentRuntimes: {} } as any));
|
|
38
38
|
}
|
|
39
39
|
})();
|
|
40
40
|
}, [setRuntimeConfig]);
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
|
+
|
|
3
|
+
exports[`ts strands agent react connection generator > should generate strands agent react connection files > TestAgentAgentClientProvider.tsx 1`] = `
|
|
4
|
+
"import type { AppRouter } from 'agent-project/src/agent/router.js';
|
|
5
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
6
|
+
import { createTRPCOptionsProxy } from '@trpc/tanstack-react-query';
|
|
7
|
+
import { createContext, FC, PropsWithChildren, useMemo } from 'react';
|
|
8
|
+
import { useRuntimeConfig } from '../hooks/useRuntimeConfig';
|
|
9
|
+
import {
|
|
10
|
+
TRPCClient,
|
|
11
|
+
createTRPCClient,
|
|
12
|
+
createWSClient,
|
|
13
|
+
wsLink,
|
|
14
|
+
} from '@trpc/client';
|
|
15
|
+
import { useSigV4 } from '../hooks/useSigV4';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Build a WebSocket URL from a Bedrock AgentCore Runtime ARN
|
|
19
|
+
*/
|
|
20
|
+
function buildAgentCoreWsUrl(agentRuntimeArn: string): string {
|
|
21
|
+
const region = agentRuntimeArn.split(':')[3];
|
|
22
|
+
return \`wss://bedrock-agentcore.\${region}.amazonaws.com/runtimes/\${encodeURIComponent(agentRuntimeArn)}/ws\`;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface TestAgentAgentTRPCContextValue {
|
|
26
|
+
optionsProxy: ReturnType<typeof createTRPCOptionsProxy<AppRouter>>;
|
|
27
|
+
client: TRPCClient<AppRouter>;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export const TestAgentAgentTRPCContext =
|
|
31
|
+
createContext<TestAgentAgentTRPCContextValue | null>(null);
|
|
32
|
+
|
|
33
|
+
export const TestAgentAgentClientProvider: FC<PropsWithChildren> = ({
|
|
34
|
+
children,
|
|
35
|
+
}) => {
|
|
36
|
+
const queryClient = useQueryClient();
|
|
37
|
+
const runtimeConfig = useRuntimeConfig();
|
|
38
|
+
const agentRuntimeValue = runtimeConfig.agentRuntimes.TestAgent;
|
|
39
|
+
const sigv4Client = useSigV4();
|
|
40
|
+
|
|
41
|
+
const container = useMemo<TestAgentAgentTRPCContextValue>(() => {
|
|
42
|
+
// If the value is an ARN, convert it to a WebSocket URL
|
|
43
|
+
const wsUrl = agentRuntimeValue.startsWith('arn:')
|
|
44
|
+
? buildAgentCoreWsUrl(agentRuntimeValue)
|
|
45
|
+
: agentRuntimeValue;
|
|
46
|
+
|
|
47
|
+
const wsClient = createWSClient({
|
|
48
|
+
url: async () => {
|
|
49
|
+
const signedRequest = await sigv4Client.sign(wsUrl, {
|
|
50
|
+
method: 'GET',
|
|
51
|
+
aws: { signQuery: true },
|
|
52
|
+
});
|
|
53
|
+
return signedRequest.url;
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
const client = createTRPCClient<AppRouter>({
|
|
58
|
+
links: [wsLink({ client: wsClient })],
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
const optionsProxy = createTRPCOptionsProxy<AppRouter>({
|
|
62
|
+
client,
|
|
63
|
+
queryClient,
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
return { optionsProxy, client };
|
|
67
|
+
}, [agentRuntimeValue, queryClient, sigv4Client]);
|
|
68
|
+
|
|
69
|
+
return (
|
|
70
|
+
<TestAgentAgentTRPCContext.Provider value={container}>
|
|
71
|
+
{children}
|
|
72
|
+
</TestAgentAgentTRPCContext.Provider>
|
|
73
|
+
);
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export default TestAgentAgentClientProvider;
|
|
77
|
+
"
|
|
78
|
+
`;
|
|
79
|
+
|
|
80
|
+
exports[`ts strands agent react connection generator > should generate strands agent react connection files > useTestAgentAgent.tsx 1`] = `
|
|
81
|
+
"import { useContext } from 'react';
|
|
82
|
+
import {
|
|
83
|
+
TestAgentAgentTRPCContext,
|
|
84
|
+
type TestAgentAgentTRPCContextValue,
|
|
85
|
+
} from '../components/TestAgentAgentClientProvider';
|
|
86
|
+
|
|
87
|
+
export const useTestAgentAgent =
|
|
88
|
+
(): TestAgentAgentTRPCContextValue['optionsProxy'] => {
|
|
89
|
+
const container = useContext(TestAgentAgentTRPCContext);
|
|
90
|
+
if (!container) {
|
|
91
|
+
throw new Error(
|
|
92
|
+
'useTestAgentAgent must be used within TestAgentAgentClientProvider',
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
return container.optionsProxy;
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
export const useTestAgentAgentClient =
|
|
99
|
+
(): TestAgentAgentTRPCContextValue['client'] => {
|
|
100
|
+
const container = useContext(TestAgentAgentTRPCContext);
|
|
101
|
+
if (!container) {
|
|
102
|
+
throw new Error(
|
|
103
|
+
'useTestAgentAgentClient must be used within TestAgentAgentClientProvider',
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
return container.client;
|
|
107
|
+
};
|
|
108
|
+
"
|
|
109
|
+
`;
|
|
110
|
+
|
|
111
|
+
exports[`ts strands agent react connection generator > should handle Cognito auth option > TestAgentAgentClientProvider-Cognito.tsx 1`] = `
|
|
112
|
+
"import type { AppRouter } from 'agent-project/src/agent/router.js';
|
|
113
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
114
|
+
import { createTRPCOptionsProxy } from '@trpc/tanstack-react-query';
|
|
115
|
+
import { createContext, FC, PropsWithChildren, useMemo } from 'react';
|
|
116
|
+
import { useRuntimeConfig } from '../hooks/useRuntimeConfig';
|
|
117
|
+
import {
|
|
118
|
+
TRPCClient,
|
|
119
|
+
createTRPCClient,
|
|
120
|
+
createWSClient,
|
|
121
|
+
wsLink,
|
|
122
|
+
} from '@trpc/client';
|
|
123
|
+
import { useAuth } from 'react-oidc-context';
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Utility to base64url-encode a string (for JWT in WebSocket protocol header)
|
|
127
|
+
*/
|
|
128
|
+
function base64UrlEncode(str: string): string {
|
|
129
|
+
return btoa(str).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '');
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Build a WebSocket URL from a Bedrock AgentCore Runtime ARN
|
|
134
|
+
*/
|
|
135
|
+
function buildAgentCoreWsUrl(agentRuntimeArn: string): string {
|
|
136
|
+
const region = agentRuntimeArn.split(':')[3];
|
|
137
|
+
return \`wss://bedrock-agentcore.\${region}.amazonaws.com/runtimes/\${encodeURIComponent(agentRuntimeArn)}/ws\`;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export interface TestAgentAgentTRPCContextValue {
|
|
141
|
+
optionsProxy: ReturnType<typeof createTRPCOptionsProxy<AppRouter>>;
|
|
142
|
+
client: TRPCClient<AppRouter>;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export const TestAgentAgentTRPCContext =
|
|
146
|
+
createContext<TestAgentAgentTRPCContextValue | null>(null);
|
|
147
|
+
|
|
148
|
+
export const TestAgentAgentClientProvider: FC<PropsWithChildren> = ({
|
|
149
|
+
children,
|
|
150
|
+
}) => {
|
|
151
|
+
const queryClient = useQueryClient();
|
|
152
|
+
const runtimeConfig = useRuntimeConfig();
|
|
153
|
+
const agentRuntimeValue = runtimeConfig.agentRuntimes.TestAgent;
|
|
154
|
+
const auth = useAuth();
|
|
155
|
+
const accessToken = auth?.user?.access_token;
|
|
156
|
+
|
|
157
|
+
const container = useMemo<TestAgentAgentTRPCContextValue>(() => {
|
|
158
|
+
// If the value is an ARN, convert it to a WebSocket URL
|
|
159
|
+
const wsUrl = agentRuntimeValue.startsWith('arn:')
|
|
160
|
+
? buildAgentCoreWsUrl(agentRuntimeValue)
|
|
161
|
+
: agentRuntimeValue;
|
|
162
|
+
|
|
163
|
+
const wsClient = createWSClient({
|
|
164
|
+
url: wsUrl,
|
|
165
|
+
WebSocket: class extends WebSocket {
|
|
166
|
+
constructor(url: string | URL, protocols?: string | string[]) {
|
|
167
|
+
const existingProtocols = protocols
|
|
168
|
+
? Array.isArray(protocols)
|
|
169
|
+
? protocols
|
|
170
|
+
: [protocols]
|
|
171
|
+
: [];
|
|
172
|
+
if (accessToken) {
|
|
173
|
+
const base64Token = base64UrlEncode(accessToken);
|
|
174
|
+
super(url, [
|
|
175
|
+
...existingProtocols,
|
|
176
|
+
\`base64UrlBearerAuthorization.\${base64Token}\`,
|
|
177
|
+
'base64UrlBearerAuthorization',
|
|
178
|
+
]);
|
|
179
|
+
} else {
|
|
180
|
+
super(url, existingProtocols);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
const client = createTRPCClient<AppRouter>({
|
|
187
|
+
links: [wsLink({ client: wsClient })],
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
const optionsProxy = createTRPCOptionsProxy<AppRouter>({
|
|
191
|
+
client,
|
|
192
|
+
queryClient,
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
return { optionsProxy, client };
|
|
196
|
+
}, [agentRuntimeValue, queryClient, accessToken]);
|
|
197
|
+
|
|
198
|
+
return (
|
|
199
|
+
<TestAgentAgentTRPCContext.Provider value={container}>
|
|
200
|
+
{children}
|
|
201
|
+
</TestAgentAgentTRPCContext.Provider>
|
|
202
|
+
);
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
export default TestAgentAgentClientProvider;
|
|
206
|
+
"
|
|
207
|
+
`;
|
|
208
|
+
|
|
209
|
+
exports[`ts strands agent react connection generator > should handle IAM auth option > TestAgentAgentClientProvider-IAM.tsx 1`] = `
|
|
210
|
+
"import type { AppRouter } from 'agent-project/src/agent/router.js';
|
|
211
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
212
|
+
import { createTRPCOptionsProxy } from '@trpc/tanstack-react-query';
|
|
213
|
+
import { createContext, FC, PropsWithChildren, useMemo } from 'react';
|
|
214
|
+
import { useRuntimeConfig } from '../hooks/useRuntimeConfig';
|
|
215
|
+
import {
|
|
216
|
+
TRPCClient,
|
|
217
|
+
createTRPCClient,
|
|
218
|
+
createWSClient,
|
|
219
|
+
wsLink,
|
|
220
|
+
} from '@trpc/client';
|
|
221
|
+
import { useSigV4 } from '../hooks/useSigV4';
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Build a WebSocket URL from a Bedrock AgentCore Runtime ARN
|
|
225
|
+
*/
|
|
226
|
+
function buildAgentCoreWsUrl(agentRuntimeArn: string): string {
|
|
227
|
+
const region = agentRuntimeArn.split(':')[3];
|
|
228
|
+
return \`wss://bedrock-agentcore.\${region}.amazonaws.com/runtimes/\${encodeURIComponent(agentRuntimeArn)}/ws\`;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
export interface TestAgentAgentTRPCContextValue {
|
|
232
|
+
optionsProxy: ReturnType<typeof createTRPCOptionsProxy<AppRouter>>;
|
|
233
|
+
client: TRPCClient<AppRouter>;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
export const TestAgentAgentTRPCContext =
|
|
237
|
+
createContext<TestAgentAgentTRPCContextValue | null>(null);
|
|
238
|
+
|
|
239
|
+
export const TestAgentAgentClientProvider: FC<PropsWithChildren> = ({
|
|
240
|
+
children,
|
|
241
|
+
}) => {
|
|
242
|
+
const queryClient = useQueryClient();
|
|
243
|
+
const runtimeConfig = useRuntimeConfig();
|
|
244
|
+
const agentRuntimeValue = runtimeConfig.agentRuntimes.TestAgent;
|
|
245
|
+
const sigv4Client = useSigV4();
|
|
246
|
+
|
|
247
|
+
const container = useMemo<TestAgentAgentTRPCContextValue>(() => {
|
|
248
|
+
// If the value is an ARN, convert it to a WebSocket URL
|
|
249
|
+
const wsUrl = agentRuntimeValue.startsWith('arn:')
|
|
250
|
+
? buildAgentCoreWsUrl(agentRuntimeValue)
|
|
251
|
+
: agentRuntimeValue;
|
|
252
|
+
|
|
253
|
+
const wsClient = createWSClient({
|
|
254
|
+
url: async () => {
|
|
255
|
+
const signedRequest = await sigv4Client.sign(wsUrl, {
|
|
256
|
+
method: 'GET',
|
|
257
|
+
aws: { signQuery: true },
|
|
258
|
+
});
|
|
259
|
+
return signedRequest.url;
|
|
260
|
+
},
|
|
261
|
+
});
|
|
262
|
+
|
|
263
|
+
const client = createTRPCClient<AppRouter>({
|
|
264
|
+
links: [wsLink({ client: wsClient })],
|
|
265
|
+
});
|
|
266
|
+
|
|
267
|
+
const optionsProxy = createTRPCOptionsProxy<AppRouter>({
|
|
268
|
+
client,
|
|
269
|
+
queryClient,
|
|
270
|
+
});
|
|
271
|
+
|
|
272
|
+
return { optionsProxy, client };
|
|
273
|
+
}, [agentRuntimeValue, queryClient, sigv4Client]);
|
|
274
|
+
|
|
275
|
+
return (
|
|
276
|
+
<TestAgentAgentTRPCContext.Provider value={container}>
|
|
277
|
+
{children}
|
|
278
|
+
</TestAgentAgentTRPCContext.Provider>
|
|
279
|
+
);
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
export default TestAgentAgentClientProvider;
|
|
283
|
+
"
|
|
284
|
+
`;
|
|
285
|
+
|
|
286
|
+
exports[`ts strands agent react connection generator > should handle no auth option > TestAgentAgentClientProvider-NoAuth.tsx 1`] = `
|
|
287
|
+
"import type { AppRouter } from 'agent-project/src/agent/router.js';
|
|
288
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
289
|
+
import { createTRPCOptionsProxy } from '@trpc/tanstack-react-query';
|
|
290
|
+
import { createContext, FC, PropsWithChildren, useMemo } from 'react';
|
|
291
|
+
import { useRuntimeConfig } from '../hooks/useRuntimeConfig';
|
|
292
|
+
import {
|
|
293
|
+
TRPCClient,
|
|
294
|
+
createTRPCClient,
|
|
295
|
+
createWSClient,
|
|
296
|
+
wsLink,
|
|
297
|
+
} from '@trpc/client';
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Build a WebSocket URL from a Bedrock AgentCore Runtime ARN
|
|
301
|
+
*/
|
|
302
|
+
function buildAgentCoreWsUrl(agentRuntimeArn: string): string {
|
|
303
|
+
const region = agentRuntimeArn.split(':')[3];
|
|
304
|
+
return \`wss://bedrock-agentcore.\${region}.amazonaws.com/runtimes/\${encodeURIComponent(agentRuntimeArn)}/ws\`;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
export interface TestAgentAgentTRPCContextValue {
|
|
308
|
+
optionsProxy: ReturnType<typeof createTRPCOptionsProxy<AppRouter>>;
|
|
309
|
+
client: TRPCClient<AppRouter>;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
export const TestAgentAgentTRPCContext =
|
|
313
|
+
createContext<TestAgentAgentTRPCContextValue | null>(null);
|
|
314
|
+
|
|
315
|
+
export const TestAgentAgentClientProvider: FC<PropsWithChildren> = ({
|
|
316
|
+
children,
|
|
317
|
+
}) => {
|
|
318
|
+
const queryClient = useQueryClient();
|
|
319
|
+
const runtimeConfig = useRuntimeConfig();
|
|
320
|
+
const agentRuntimeValue = runtimeConfig.agentRuntimes.TestAgent;
|
|
321
|
+
|
|
322
|
+
const container = useMemo<TestAgentAgentTRPCContextValue>(() => {
|
|
323
|
+
// If the value is an ARN, convert it to a WebSocket URL
|
|
324
|
+
const wsUrl = agentRuntimeValue.startsWith('arn:')
|
|
325
|
+
? buildAgentCoreWsUrl(agentRuntimeValue)
|
|
326
|
+
: agentRuntimeValue;
|
|
327
|
+
|
|
328
|
+
const wsClient = createWSClient({
|
|
329
|
+
url: wsUrl,
|
|
330
|
+
});
|
|
331
|
+
|
|
332
|
+
const client = createTRPCClient<AppRouter>({
|
|
333
|
+
links: [wsLink({ client: wsClient })],
|
|
334
|
+
});
|
|
335
|
+
|
|
336
|
+
const optionsProxy = createTRPCOptionsProxy<AppRouter>({
|
|
337
|
+
client,
|
|
338
|
+
queryClient,
|
|
339
|
+
});
|
|
340
|
+
|
|
341
|
+
return { optionsProxy, client };
|
|
342
|
+
}, [agentRuntimeValue, queryClient]);
|
|
343
|
+
|
|
344
|
+
return (
|
|
345
|
+
<TestAgentAgentTRPCContext.Provider value={container}>
|
|
346
|
+
{children}
|
|
347
|
+
</TestAgentAgentTRPCContext.Provider>
|
|
348
|
+
);
|
|
349
|
+
};
|
|
350
|
+
|
|
351
|
+
export default TestAgentAgentClientProvider;
|
|
352
|
+
"
|
|
353
|
+
`;
|
|
354
|
+
|
|
355
|
+
exports[`ts strands agent react connection generator > should modify main.tsx correctly > main.tsx 1`] = `
|
|
356
|
+
"import TestAgentAgentClientProvider from './components/TestAgentAgentClientProvider';
|
|
357
|
+
import QueryClientProvider from './components/QueryClientProvider';
|
|
358
|
+
import RuntimeConfigProvider from './components/RuntimeConfig';
|
|
359
|
+
|
|
360
|
+
import { RouterProvider } from '@tanstack/react-router';
|
|
361
|
+
|
|
362
|
+
const App = () => <RouterProvider router={router} />;
|
|
363
|
+
|
|
364
|
+
export function Main() {
|
|
365
|
+
return (
|
|
366
|
+
<RuntimeConfigProvider>
|
|
367
|
+
<QueryClientProvider>
|
|
368
|
+
<TestAgentAgentClientProvider>
|
|
369
|
+
<App />
|
|
370
|
+
</TestAgentAgentClientProvider>
|
|
371
|
+
</QueryClientProvider>
|
|
372
|
+
</RuntimeConfigProvider>
|
|
373
|
+
);
|
|
374
|
+
}
|
|
375
|
+
"
|
|
376
|
+
`;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { AppRouter } from "<%- agentProjectAlias %>/<%- agentPath %>/router.js";
|
|
2
|
+
import { useQueryClient } from "@tanstack/react-query";
|
|
3
|
+
import { createTRPCOptionsProxy } from "@trpc/tanstack-react-query";
|
|
4
|
+
import { createContext, FC, PropsWithChildren, useMemo } from "react";
|
|
5
|
+
import { useRuntimeConfig } from "../hooks/useRuntimeConfig";
|
|
6
|
+
import { TRPCClient, createTRPCClient, createWSClient, wsLink } from "@trpc/client";
|
|
7
|
+
<%_ if (auth === 'IAM') { _%>
|
|
8
|
+
import { useSigV4 } from "../hooks/useSigV4";
|
|
9
|
+
<%_ } else if (auth === 'Cognito') { _%>
|
|
10
|
+
import { useAuth } from "react-oidc-context";
|
|
11
|
+
<%_ } _%>
|
|
12
|
+
<%_ if (auth === 'Cognito') { _%>
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Utility to base64url-encode a string (for JWT in WebSocket protocol header)
|
|
16
|
+
*/
|
|
17
|
+
function base64UrlEncode(str: string): string {
|
|
18
|
+
return btoa(str)
|
|
19
|
+
.replace(/\+/g, '-')
|
|
20
|
+
.replace(/\//g, '_')
|
|
21
|
+
.replace(/=/g, '');
|
|
22
|
+
}
|
|
23
|
+
<%_ } _%>
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Build a WebSocket URL from a Bedrock AgentCore Runtime ARN
|
|
27
|
+
*/
|
|
28
|
+
function buildAgentCoreWsUrl(agentRuntimeArn: string): string {
|
|
29
|
+
const region = agentRuntimeArn.split(':')[3];
|
|
30
|
+
return `wss://bedrock-agentcore.${region}.amazonaws.com/runtimes/${encodeURIComponent(agentRuntimeArn)}/ws`;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface <%= agentNameClassName %>AgentTRPCContextValue {
|
|
34
|
+
optionsProxy: ReturnType<typeof createTRPCOptionsProxy<AppRouter>>;
|
|
35
|
+
client: TRPCClient<AppRouter>;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export const <%= agentNameClassName %>AgentTRPCContext = createContext<<%= agentNameClassName %>AgentTRPCContextValue | null>(null);
|
|
39
|
+
|
|
40
|
+
export const <%= agentNameClassName %>AgentClientProvider: FC<PropsWithChildren> = ({
|
|
41
|
+
children,
|
|
42
|
+
}) => {
|
|
43
|
+
const queryClient = useQueryClient();
|
|
44
|
+
const runtimeConfig = useRuntimeConfig();
|
|
45
|
+
const agentRuntimeValue = runtimeConfig.agentRuntimes.<%= agentNameClassName %>;
|
|
46
|
+
<%_ if (auth === 'IAM') { _%>
|
|
47
|
+
const sigv4Client = useSigV4();
|
|
48
|
+
<%_ } else if (auth === 'Cognito') { _%>
|
|
49
|
+
const auth = useAuth();
|
|
50
|
+
const accessToken = auth?.user?.access_token;
|
|
51
|
+
<%_ } _%>
|
|
52
|
+
|
|
53
|
+
const container = useMemo<<%= agentNameClassName %>AgentTRPCContextValue>(() => {
|
|
54
|
+
// If the value is an ARN, convert it to a WebSocket URL
|
|
55
|
+
const wsUrl = agentRuntimeValue.startsWith('arn:')
|
|
56
|
+
? buildAgentCoreWsUrl(agentRuntimeValue)
|
|
57
|
+
: agentRuntimeValue;
|
|
58
|
+
|
|
59
|
+
<%_ if (auth === 'IAM') { _%>
|
|
60
|
+
const wsClient = createWSClient({
|
|
61
|
+
url: async () => {
|
|
62
|
+
const signedRequest = await sigv4Client.sign(wsUrl, {
|
|
63
|
+
method: 'GET',
|
|
64
|
+
aws: { signQuery: true },
|
|
65
|
+
});
|
|
66
|
+
return signedRequest.url;
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
<%_ } else if (auth === 'Cognito') { _%>
|
|
70
|
+
const wsClient = createWSClient({
|
|
71
|
+
url: wsUrl,
|
|
72
|
+
WebSocket: class extends WebSocket {
|
|
73
|
+
constructor(url: string | URL, protocols?: string | string[]) {
|
|
74
|
+
const existingProtocols = protocols
|
|
75
|
+
? Array.isArray(protocols)
|
|
76
|
+
? protocols
|
|
77
|
+
: [protocols]
|
|
78
|
+
: [];
|
|
79
|
+
if (accessToken) {
|
|
80
|
+
const base64Token = base64UrlEncode(accessToken);
|
|
81
|
+
super(url, [
|
|
82
|
+
...existingProtocols,
|
|
83
|
+
`base64UrlBearerAuthorization.${base64Token}`,
|
|
84
|
+
'base64UrlBearerAuthorization',
|
|
85
|
+
]);
|
|
86
|
+
} else {
|
|
87
|
+
super(url, existingProtocols);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
<%_ } else { _%>
|
|
93
|
+
const wsClient = createWSClient({
|
|
94
|
+
url: wsUrl,
|
|
95
|
+
});
|
|
96
|
+
<%_ } _%>
|
|
97
|
+
|
|
98
|
+
const client = createTRPCClient<AppRouter>({
|
|
99
|
+
links: [wsLink({ client: wsClient })],
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
const optionsProxy = createTRPCOptionsProxy<AppRouter>({
|
|
103
|
+
client,
|
|
104
|
+
queryClient,
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
return { optionsProxy, client };
|
|
108
|
+
}, [agentRuntimeValue, queryClient<% if (auth === 'IAM') { %>, sigv4Client<% } else if (auth === 'Cognito') { %>, accessToken<% } %>]);
|
|
109
|
+
|
|
110
|
+
return (
|
|
111
|
+
<<%= agentNameClassName %>AgentTRPCContext.Provider value={container}>
|
|
112
|
+
{children}
|
|
113
|
+
</<%= agentNameClassName %>AgentTRPCContext.Provider>
|
|
114
|
+
);
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
export default <%= agentNameClassName %>AgentClientProvider;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { <%= agentNameClassName %>AgentTRPCContext, type <%= agentNameClassName %>AgentTRPCContextValue } from '../components/<%- agentNameClassName %>AgentClientProvider';
|
|
3
|
+
|
|
4
|
+
export const use<%- agentNameClassName %>Agent = (): <%= agentNameClassName %>AgentTRPCContextValue['optionsProxy'] => {
|
|
5
|
+
const container = useContext(<%= agentNameClassName %>AgentTRPCContext);
|
|
6
|
+
if (!container) {
|
|
7
|
+
throw new Error('use<%- agentNameClassName %>Agent must be used within <%= agentNameClassName %>AgentClientProvider');
|
|
8
|
+
}
|
|
9
|
+
return container.optionsProxy;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export const use<%- agentNameClassName %>AgentClient = (): <%= agentNameClassName %>AgentTRPCContextValue['client'] => {
|
|
13
|
+
const container = useContext(<%= agentNameClassName %>AgentTRPCContext);
|
|
14
|
+
if (!container) {
|
|
15
|
+
throw new Error('use<%- agentNameClassName %>AgentClient must be used within <%= agentNameClassName %>AgentClientProvider');
|
|
16
|
+
}
|
|
17
|
+
return container.client;
|
|
18
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { Tree } from '@nx/devkit';
|
|
6
|
+
import { NxGeneratorInfo } from '../../../utils/nx';
|
|
7
|
+
import { ResolvedConnectionOptions } from '../../../connection/generator';
|
|
8
|
+
export declare const TS_STRANDS_AGENT_REACT_CONNECTION_GENERATOR_INFO: NxGeneratorInfo;
|
|
9
|
+
export declare function tsStrandsAgentReactConnectionGenerator(tree: Tree, options: ResolvedConnectionOptions): Promise<() => void>;
|
|
10
|
+
export default tsStrandsAgentReactConnectionGenerator;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TS_STRANDS_AGENT_REACT_CONNECTION_GENERATOR_INFO = void 0;
|
|
4
|
+
exports.tsStrandsAgentReactConnectionGenerator = tsStrandsAgentReactConnectionGenerator;
|
|
5
|
+
/**
|
|
6
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
7
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
8
|
+
*/
|
|
9
|
+
const devkit_1 = require("@nx/devkit");
|
|
10
|
+
const generator_1 = require("../../react-website/runtime-config/generator");
|
|
11
|
+
const npm_scope_1 = require("../../../utils/npm-scope");
|
|
12
|
+
const versions_1 = require("../../../utils/versions");
|
|
13
|
+
const ast_1 = require("../../../utils/ast");
|
|
14
|
+
const names_1 = require("../../../utils/names");
|
|
15
|
+
const format_1 = require("../../../utils/format");
|
|
16
|
+
const nx_1 = require("../../../utils/nx");
|
|
17
|
+
const metrics_1 = require("../../../utils/metrics");
|
|
18
|
+
const serve_local_1 = require("./serve-local");
|
|
19
|
+
exports.TS_STRANDS_AGENT_REACT_CONNECTION_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
20
|
+
async function tsStrandsAgentReactConnectionGenerator(tree, options) {
|
|
21
|
+
const frontendProjectConfig = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.sourceProject);
|
|
22
|
+
const agentProjectConfig = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.targetProject);
|
|
23
|
+
const targetComponent = options.targetComponent;
|
|
24
|
+
// Extract agent metadata from the target component or project metadata
|
|
25
|
+
const metadata = agentProjectConfig.metadata;
|
|
26
|
+
const agentName = targetComponent?.name ?? 'agent';
|
|
27
|
+
const agentNameClassName = targetComponent?.rc ?? (0, names_1.toClassName)(agentName);
|
|
28
|
+
const agentPort = targetComponent?.port ?? metadata?.ports?.[0] ?? 8081;
|
|
29
|
+
const auth = targetComponent?.auth ?? metadata?.auth ?? 'IAM';
|
|
30
|
+
const agentProjectAlias = (0, npm_scope_1.toScopeAlias)(agentProjectConfig.name);
|
|
31
|
+
const agentPath = targetComponent?.path ?? 'src/agent';
|
|
32
|
+
// Ensure the agent project has a wildcard path entry in tsconfig.base.json
|
|
33
|
+
// so that deep imports (e.g., for the router type) resolve correctly
|
|
34
|
+
ensureWildcardPathEntry(tree, agentProjectConfig.name, agentProjectConfig.root);
|
|
35
|
+
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files'), frontendProjectConfig.root, {
|
|
36
|
+
agentName,
|
|
37
|
+
agentNameClassName,
|
|
38
|
+
auth,
|
|
39
|
+
agentProjectAlias,
|
|
40
|
+
agentPath,
|
|
41
|
+
}, {
|
|
42
|
+
overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
|
|
43
|
+
});
|
|
44
|
+
// Generate the tanstack query provider if it does not exist already
|
|
45
|
+
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../../../utils/files/website/components/tanstack-query'), (0, devkit_1.joinPathFragments)(frontendProjectConfig.sourceRoot, 'components'), {}, {
|
|
46
|
+
overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
|
|
47
|
+
});
|
|
48
|
+
if (auth === 'IAM') {
|
|
49
|
+
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../../../utils/files/website/hooks/sigv4'), (0, devkit_1.joinPathFragments)(frontendProjectConfig.sourceRoot, 'hooks'), {}, {
|
|
50
|
+
overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
await (0, generator_1.runtimeConfigGenerator)(tree, {
|
|
54
|
+
project: frontendProjectConfig.name,
|
|
55
|
+
});
|
|
56
|
+
// update main.tsx
|
|
57
|
+
const mainTsxPath = (0, devkit_1.joinPathFragments)(frontendProjectConfig.sourceRoot, 'main.tsx');
|
|
58
|
+
await (0, ast_1.addSingleImport)(tree, mainTsxPath, 'QueryClientProvider', './components/QueryClientProvider');
|
|
59
|
+
const clientProviderName = `${agentNameClassName}AgentClientProvider`;
|
|
60
|
+
await (0, ast_1.addSingleImport)(tree, mainTsxPath, clientProviderName, `./components/${clientProviderName}`);
|
|
61
|
+
// Wrap <App /> in QueryClientProvider if not already present
|
|
62
|
+
if (!(await (0, ast_1.matchGritQL)(tree, mainTsxPath, '`<QueryClientProvider>$_</QueryClientProvider>`'))) {
|
|
63
|
+
await (0, ast_1.applyGritQL)(tree, mainTsxPath, '`<App />` => `<QueryClientProvider><App /></QueryClientProvider>`');
|
|
64
|
+
}
|
|
65
|
+
// Wrap <App /> in the agent client provider if not already present
|
|
66
|
+
if (!(await (0, ast_1.matchGritQL)(tree, mainTsxPath, `\`<${clientProviderName}>$_</${clientProviderName}>\``))) {
|
|
67
|
+
await (0, ast_1.applyGritQL)(tree, mainTsxPath, `\`<App />\` => \`<${clientProviderName}><App /></${clientProviderName}>\``);
|
|
68
|
+
}
|
|
69
|
+
await (0, serve_local_1.addStrandsAgentTargetToServeLocal)(tree, frontendProjectConfig.name, agentProjectConfig.name, {
|
|
70
|
+
agentName,
|
|
71
|
+
agentNameClassName,
|
|
72
|
+
port: agentPort,
|
|
73
|
+
targetComponent,
|
|
74
|
+
});
|
|
75
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, (0, versions_1.withVersions)([
|
|
76
|
+
'@trpc/client',
|
|
77
|
+
'@tanstack/react-query',
|
|
78
|
+
'@tanstack/react-query-devtools',
|
|
79
|
+
'@trpc/tanstack-react-query',
|
|
80
|
+
...(auth === 'IAM'
|
|
81
|
+
? [
|
|
82
|
+
'oidc-client-ts',
|
|
83
|
+
'aws4fetch',
|
|
84
|
+
'@aws-sdk/credential-providers',
|
|
85
|
+
'react-oidc-context',
|
|
86
|
+
]
|
|
87
|
+
: []),
|
|
88
|
+
...(auth === 'Cognito' ? ['react-oidc-context'] : []),
|
|
89
|
+
]), (0, versions_1.withVersions)(['@smithy/types']));
|
|
90
|
+
await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [
|
|
91
|
+
exports.TS_STRANDS_AGENT_REACT_CONNECTION_GENERATOR_INFO,
|
|
92
|
+
]);
|
|
93
|
+
await (0, format_1.formatFilesInSubtree)(tree);
|
|
94
|
+
return () => {
|
|
95
|
+
(0, devkit_1.installPackagesTask)(tree);
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
exports.default = tsStrandsAgentReactConnectionGenerator;
|
|
99
|
+
/**
|
|
100
|
+
* Ensures a wildcard path entry exists in tsconfig.base.json for the given project,
|
|
101
|
+
* allowing deep imports (e.g., `:scope/project/src/agent/router.js`).
|
|
102
|
+
* Both the scope alias and npm package name forms are added.
|
|
103
|
+
*/
|
|
104
|
+
function ensureWildcardPathEntry(tree, projectName, projectRoot) {
|
|
105
|
+
const tsconfigPath = ['tsconfig.base.json', 'tsconfig.json'].find((p) => tree.exists(p));
|
|
106
|
+
if (!tsconfigPath)
|
|
107
|
+
return;
|
|
108
|
+
const wildcardValue = [`./${projectRoot}/*`];
|
|
109
|
+
const scopeAlias = (0, npm_scope_1.toScopeAlias)(projectName);
|
|
110
|
+
(0, devkit_1.updateJson)(tree, tsconfigPath, (json) => {
|
|
111
|
+
const paths = json.compilerOptions?.paths ?? {};
|
|
112
|
+
// Add wildcard for the scope alias (used by generated templates)
|
|
113
|
+
const scopeWildcardKey = `${scopeAlias}/*`;
|
|
114
|
+
if (!paths[scopeWildcardKey]) {
|
|
115
|
+
paths[scopeWildcardKey] = wildcardValue;
|
|
116
|
+
}
|
|
117
|
+
// Also add wildcard for the npm package name
|
|
118
|
+
const npmWildcardKey = `${projectName}/*`;
|
|
119
|
+
if (!paths[npmWildcardKey]) {
|
|
120
|
+
paths[npmWildcardKey] = wildcardValue;
|
|
121
|
+
}
|
|
122
|
+
json.compilerOptions = {
|
|
123
|
+
...json.compilerOptions,
|
|
124
|
+
paths,
|
|
125
|
+
};
|
|
126
|
+
return json;
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/strands-agent/react-connection/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { ComponentMetadata } from '../../../utils/nx';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* TypeScript types for options defined in schema.json
|
|
9
|
+
*/
|
|
10
|
+
export interface TsStrandsAgentReactConnectionGeneratorSchema {
|
|
11
|
+
sourceProject: string;
|
|
12
|
+
targetProject: string;
|
|
13
|
+
sourceComponent?: ComponentMetadata;
|
|
14
|
+
targetComponent?: ComponentMetadata;
|
|
15
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
|
+
"$id": "ts#strands-agent#react-connection",
|
|
4
|
+
"title": "ts#strands-agent#react-connection",
|
|
5
|
+
"description": "Connect a React website to a TypeScript Strands Agent",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"sourceProject": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "The React website project"
|
|
11
|
+
},
|
|
12
|
+
"targetProject": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "The project containing the Strands Agent"
|
|
15
|
+
},
|
|
16
|
+
"sourceComponent": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "The source component name"
|
|
19
|
+
},
|
|
20
|
+
"targetComponent": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "The Strands Agent component name"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"required": ["sourceProject", "targetProject"]
|
|
26
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { Tree } from '@nx/devkit';
|
|
6
|
+
import { ComponentMetadata } from '../../../utils/nx';
|
|
7
|
+
export interface StrandsAgentServeLocalOptions {
|
|
8
|
+
agentName: string;
|
|
9
|
+
agentNameClassName: string;
|
|
10
|
+
port: number;
|
|
11
|
+
targetComponent?: ComponentMetadata;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Adds the given strands agent target project to the source project's serve-local target
|
|
15
|
+
* Updates the runtime config provider (if it exists) to point to the local WebSocket URL
|
|
16
|
+
*/
|
|
17
|
+
export declare const addStrandsAgentTargetToServeLocal: (tree: Tree, sourceProjectName: string, targetProjectName: string, options: StrandsAgentServeLocalOptions) => Promise<void>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addStrandsAgentTargetToServeLocal = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
6
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
+
*/
|
|
8
|
+
const devkit_1 = require("@nx/devkit");
|
|
9
|
+
const ast_1 = require("../../../utils/ast");
|
|
10
|
+
const nx_1 = require("../../../utils/nx");
|
|
11
|
+
/**
|
|
12
|
+
* Adds the given strands agent target project to the source project's serve-local target
|
|
13
|
+
* Updates the runtime config provider (if it exists) to point to the local WebSocket URL
|
|
14
|
+
*/
|
|
15
|
+
const addStrandsAgentTargetToServeLocal = async (tree, sourceProjectName, targetProjectName, options) => {
|
|
16
|
+
const sourceProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, sourceProjectName);
|
|
17
|
+
const targetProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, targetProjectName);
|
|
18
|
+
// Determine the serve-local target name for the agent component
|
|
19
|
+
const agentServeLocalTargetName = options.targetComponent?.name
|
|
20
|
+
? `${options.targetComponent.name}-serve-local`
|
|
21
|
+
: 'agent-serve-local';
|
|
22
|
+
// Target project must have the agent serve-local target which is continuous
|
|
23
|
+
if (!(targetProject.targets?.[agentServeLocalTargetName]?.continuous &&
|
|
24
|
+
sourceProject.targets?.['serve-local'])) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
// Add a dependency on the agent serve-local target (so that the agent's
|
|
28
|
+
// own serve-local dependencies, such as MCP servers, are also started)
|
|
29
|
+
sourceProject.targets['serve-local'].dependsOn = [
|
|
30
|
+
...(sourceProject.targets['serve-local'].dependsOn ?? []),
|
|
31
|
+
{
|
|
32
|
+
projects: [targetProject.name],
|
|
33
|
+
target: agentServeLocalTargetName,
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
(0, devkit_1.updateProjectConfiguration)(tree, sourceProject.name, sourceProject);
|
|
37
|
+
// Add an override to runtime-config for the serve-local target to use the local WebSocket url
|
|
38
|
+
const runtimeConfigProvider = (0, devkit_1.joinPathFragments)(sourceProject.root, 'src', 'components', 'RuntimeConfig', 'index.tsx');
|
|
39
|
+
if (tree.exists(runtimeConfigProvider)) {
|
|
40
|
+
const localUrl = `ws://localhost:${options.port}/ws`;
|
|
41
|
+
await (0, ast_1.applyGritQL)(tree, runtimeConfigProvider, `\`if ($cond) { $stmts }\` => raw\`if ($cond) {\n $stmts\n runtimeConfig.agentRuntimes.${options.agentNameClassName} = '${localUrl}';\n }\` where { $cond <: contains \`'serve-local'\`, $stmts <: within \`const applyOverrides = $_\` }`);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
exports.addStrandsAgentTargetToServeLocal = addStrandsAgentTargetToServeLocal;
|
|
45
|
+
//# sourceMappingURL=serve-local.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve-local.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/strands-agent/react-connection/serve-local.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAIoB;AACpB,4CAAiD;AACjD,0CAG2B;AAS3B;;;GAGG;AACI,MAAM,iCAAiC,GAAG,KAAK,EACpD,IAAU,EACV,iBAAyB,EACzB,iBAAyB,EACzB,OAAsC,EACtC,EAAE;IACF,MAAM,aAAa,GAAG,IAAA,wCAAmC,EACvD,IAAI,EACJ,iBAAiB,CAClB,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,wCAAmC,EACvD,IAAI,EACJ,iBAAiB,CAClB,CAAC;IAEF,gEAAgE;IAChE,MAAM,yBAAyB,GAAG,OAAO,CAAC,eAAe,EAAE,IAAI;QAC7D,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,cAAc;QAC/C,CAAC,CAAC,mBAAmB,CAAC;IAExB,4EAA4E;IAC5E,IACE,CAAC,CACC,aAAa,CAAC,OAAO,EAAE,CAAC,yBAAyB,CAAC,EAAE,UAAU;QAC9D,aAAa,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,CACvC,EACD,CAAC;QACD,OAAO;IACT,CAAC;IAED,wEAAwE;IACxE,uEAAuE;IACvE,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,SAAS,GAAG;QAC/C,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;QACzD;YACE,QAAQ,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;YAC9B,MAAM,EAAE,yBAAyB;SAClC;KACF,CAAC;IACF,IAAA,mCAA0B,EAAC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAEpE,8FAA8F;IAC9F,MAAM,qBAAqB,GAAG,IAAA,0BAAiB,EAC7C,aAAa,CAAC,IAAI,EAClB,KAAK,EACL,YAAY,EACZ,eAAe,EACf,WAAW,CACZ,CAAC;IACF,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,kBAAkB,OAAO,CAAC,IAAI,KAAK,CAAC;QACrD,MAAM,IAAA,iBAAW,EACf,IAAI,EACJ,qBAAqB,EACrB,+FAA+F,OAAO,CAAC,kBAAkB,OAAO,QAAQ,yGAAyG,CAClP,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAzDW,QAAA,iCAAiC,qCAyD5C"}
|