@@ -3,31 +3,49 @@ const fs = require('fs');
3
3
const { execSync } = require ( 'child_process' ) ;
4
4
const path = require ( 'path' ) ;
5
5
6
- const gitRoot = execSync ( 'git rev-parse --show-toplevel' , { encoding : 'utf-8' } ) . trim ( ) ;
6
+ const cpkPath = process . argv [ 2 ] ;
7
+ if ( ! cpkPath ) {
8
+ console . error ( 'Usage: node link-cpk.js <cpk-path>' ) ;
9
+ process . exit ( 1 ) ;
10
+ }
11
+
12
+ if ( ! fs . existsSync ( cpkPath ) ) {
13
+ console . error ( `copilot kit repo path ${ cpkPath } does not exist` ) ;
14
+ process . exit ( 1 ) ;
15
+ }
16
+
17
+
18
+ const gitRoot = execSync ( 'git rev-parse --show-toplevel' , { encoding : 'utf-8' , cwd : __dirname } ) . trim ( ) ;
7
19
const dojoDir = path . join ( gitRoot , 'typescript-sdk/apps/dojo' ) ;
20
+ const cpkPackageDir = path . join ( cpkPath , 'CopilotKit' , 'packages' ) ;
21
+ const relative = `./${ path . relative ( dojoDir , cpkPackageDir ) } ` ;
8
22
9
23
function linkCopilotKit ( ) {
10
24
const pkgPath = path . join ( dojoDir , 'package.json' ) ;
11
25
const pkg = JSON . parse ( fs . readFileSync ( pkgPath , 'utf8' ) ) ;
12
26
const packages = Object . keys ( pkg . dependencies ) . filter ( pkg => pkg . startsWith ( '@copilotkit/' ) ) ;
13
27
14
28
success = true ;
15
- packages . forEach ( pkg => {
16
- console . log ( `Linking ${ pkg } ` ) ;
17
- try {
18
- execSync ( `pnpm link ${ pkg } ` , { cwd : dojoDir } ) ;
19
- console . log ( `Linked ${ pkg } ` ) ;
20
- } catch ( e ) {
21
- console . error ( `Error linking ${ pkg } : ${ e } ` ) ;
29
+ packages . forEach ( packageName => {
30
+ const packageFolderName = packageName . replace ( '@copilotkit/' , '' ) ;
31
+
32
+ if ( ! fs . existsSync ( path . join ( cpkPackageDir , packageFolderName ) ) ) {
33
+ console . error ( `Package ${ packageName } does not exist in ${ cpkPackageDir } !!` ) ;
22
34
success = false ;
23
35
}
24
36
37
+ pkg . dependencies [ packageName ] = path . join ( relative , packageFolderName ) ;
25
38
} ) ;
26
39
40
+
41
+
27
42
if ( ! success ) {
43
+ console . error ( 'One or more packages do not exist in the copilot kit repo!' ) ;
28
44
process . exit ( 1 ) ;
29
45
}
30
46
47
+ fs . writeFileSync ( pkgPath , JSON . stringify ( pkg , null , 2 ) ) ;
48
+
31
49
}
32
50
33
51
linkCopilotKit ( ) ;
0 commit comments